Software Tools

This Technical Support Notice relates to the release of the SCADAPack ES RTU.

Product or product change Features

This Technical Support Notice highlights the differences in the implementation of ISaGRAF between the current range of SCADAPack RTUs and the SCADAPack ES RTU.

Product or product change Details

The existing SCADAPack range of RTU's and the SCADAPack ES RTU implement IEC 61131-3 using ISaGRAF. All product in the SCADAPack range use ISaGRAF Workbench 3.5 for the development and compiling of ISaGRAF applications.
Communication between ISaGRAF Workbench and the ISaGRAF Kernel
Non-ES SCADAPack: All communication between ISaGRAF Workbench and the ISaGRAF Kernel in the RTU is performed using the TeleBUS driver. The TeleBUS driver allows communications via Modbus (direct serial and TCP/IP), SCADA Server, DNP3, and ClearSCADA. When connecting ISaGRAF Workbench to the RTU:

  • Always select TeleBUS Driver for the Communications Port in the Link Setup dialog.
  • Configure the TeleBUS driver as per the connection to the RTU (Refer to xxx documentation)
    SCADAPack ES: communication between ISaGRAF Workbench and the ISaGRAF Kernel in the RTU is performed either using the standard ISaGRAF Workbench Communication Port options, or by using DNP3 Virtual Terminal Objects.
    When connecting ISaGRAF Workbench to the RTU using a serial connection:
  • You must connect to a port on the RTU configured with a Function of ISaGRAF
  • In ISaGRAF Workbench, you must select one of the COM x options for the Communications Port (Note: This method of communication limits you to the first 4 COM ports of the PC)
    When connecting ISaGRAF Workbench to the RTU using Ethernet:
  • You must configure one of the Ethernet ports of the SCADAPack ES with an IP address accessible from the PC running ISaGRAF Workbench
  • You must enable ISaGRAF TCP/IP in the Enabled TCP/IP Services of the SCADAPack ES
  • In ISaGRAF Workbench, you must select Ethernet as the Communications Port and configure with the IP address of the SCADAPack ES
    When connecting ISaGRAF Workbench to the RTU using DNP3:
  • You must have E-Series Configurator installed on the PC running ISaGRAF Workbench with the appropriate ISaGRAF DLL's installed (refer to the E-Series Configurator installation manual)
  • Establish communications between E-Series Configurator and the SCADAPack ES (typically by reading the Status page)
  • In ISaGRAF Workbench, you must select RTUConfig as the Communications Port
    Accessing Physical I/O
    Non-ES SCADAPack: Physical I/O is controlled directly by the ISaGRAF kernel using Boards and/or Equipments configured in the I/O Connections of the application. There is no way to read or control the physical I/O without having an ISaGRAF application running in the RTU.
    SCADAPack ES: Physical I/O is controlled by the I/O Processor task of the RTU. The physical I/O is exposed to ISaGRAF as points in the Point Database of the RTU. The ISaGRAF kernel communicates with the I/O Processor using Boards configured in the I/O Connections of the application.
    Note: Accessing the physical I/O of a SCADAPack ES is identical to accessing derived points in the Point Database of the RTU. Refer to Accessing derived points/registers (Non-Physical I/O) below for further detail.
    Accessing derived points/registers (Non-Physical I/O)
    Non-ES SCADAPack: Any variable defined in the ISaGRAF application which is configured with a Network Address is accessible by other tasks running in the RTU (Modbus & DNP3 drivers for example). Refer to Exposing ISaGRAF variables to the communications drivers for further detail.
    SCADAPack ES: All points which are to be accessible by multiple tasks (ISaGRAF, Modbus driver, DNP3 driver etc) must be configured in the Point Database of the RTU before they can be accessed. All tasks interface to the Point Database via the I/O Processor task running in the RTU.
    To access any point in the Point Database from within your ISaGRAF application, you must first create and configure the appropriate rtu I/O board. For example, to access derived analog point 10000 as an input to your ISaGRAF application, you would create an rtu1ai board and configure it with a board address of 10000. You may access multiple, consecutive, points using larger I/O boards.
    Note: Every I/O board, which has variables attached, configured in the ISaGRAF application must have at least one point configured in the Point Database. For example, if you create an rtu16di board with a board_address of 20000, you must configure at least one point between 20000 and 20015 in the Point Database of the RTU. If this condition is not met, the ISaGRAF application will generate a Cannot Open Board error and will not start.
    Exposing ISaGRAF variables to the communications drivers
    Non-ES SCADAPack: Communications drivers request points from Register Providers . Each register provider maintains its own database of registers. Typical register providers are ISaGRAF, the permanent, non-volatile registers, and the C/C++ user applications (RealFLO for example). The register providers are queried in a fixed order until one of them returns a value for the requested register. If multiple register providers contain the same point, only the value returned by the first register provider containing that point will be returned to the communications driver.
    The ISaGRAF register database is configured by specifying a Network Address in the configuration of the variable in the ISaGRAF dictionary. Physical I/O is mapped to registers (thus exposing them to the communications drivers) by connecting an input or output variable to an I/O board or equipment and giving the variable a network address. Internal ISaGRAF variables are exposed to the communication drivers by giving them a network address. This results in a very low I/O count in the compiled ISaGRAF application.

    SCADAPack ES: In the SCADAPack ES, the communications drivers read points from the Point Database . The Point Database contains all points configured in the SCADAPack ES. Tasks (ISaGRAF, communications drivers etc) write values to the Point Database via the I/O Processor . The I/O Processor is responsible for ensuring that multiple tasks cannot write to the same points in the Point Database simultaneously. The I/O Processor places no restriction on read access to the Point Database.

    In order to access points in the Point Database, variables in the ISaGRAF application must be mapped to points in the Point Database through ISaGRAF I/O Boards. This means that every variable in the ISaGRAF application which is exposed to the communications drivers must be defined as either an input or output variable in ISaGRAF - This significantly increases the I/O Count of the compiled application.

    Configuration of the RTU
    Non-ES SCADAPack: All configuration of the RTU is performed within ISaGRAF Workbench via the Controller sub-menu of the Tools menu.
    SCADAPack ES: As described in previous sections, the SCADAPack ES has a Point Database which must be configured prior to the ISaGRAF application starting. The Point Database is configured using either E-Series Configurator or ClearSCADA .
    Retaining ISaGRAF variables when loading an ISaGRAF application or power-cycling the RTU
    Non-ES SCADAPack: ISaGRAF variables that are configured to be retained are only retained through a restart of the ISaGRAF application. If a new application is loaded (even if the variable name and network address are the same), the retained variables will be cleared before the new application begins its first scan.
    In order to retain ISaGRAF variables between program upgrades, or power cycling:
  • Select the ISaGRAF variables you wish to retain
  • Use the setreg function blocks to save these variables to the permanent, non-volatile register space of the SCADAPack at the end of each ISaGRAF scan.
  • Use the getreg function blocks to read these variables from the non-volatile register space of the SCADAPack at the start of the first ISaGRAF scan.
    SCADAPack ES: In the SCADAPack ES, the entire Point Database is non-volatile, so any values written by the ISaGRAF application to the Point Database will remain when the application is reset or upgraded. However, values written to the Point Database (output variables tied to output boards) are not read from the point database when the ISaGRAF application starts. These ISaGRAF variables will be re-initialized to zero when the ISaGRAF application starts. As a result, at the end of the first scan, ISaGRAF will write zero values to these registers.
    In order to retain ISaGRAF variables between program upgrades, or power cycling:
  • Select the ISaGRAF variables you wish to retain
  • Create matching ISaGRAF input variables for these variables
  • Create ISaGRAF Input Boards (or Output Status Boards for physical outputs) with the same configuration as the Output Boards connected to the variables you wish to retain.
  • During the first scan, copy the values of the variables attached to the Input/Output Status Boards to the corresponding variables on the Output Boards.
    Preventing physical outputs from dropping during a reset or program load
    Non-ES SCADAPack: Physical outputs are held when the ISaGRAF application is restarted or halted. However, there is no means of reading the current states of the physical outputs via the I/O Equipment. If the values/states of the physical outputs needs to be known after the ISaGRAF application restarts, you must store the values/states of the physical outputs in the permanent, non-volatile registers with setreg at the end of scan, and read them using getreg during the first scan (see Retaining ISaGRAF variables when loading an ISaGRAF application or power-cycling the RTU ).
    SCADAPack ES: The I/O Processor of the SCADAPack ES will turn off any physical outputs used by the ISaGRAF application when the ISaGRAF application is restarted or halted. In order to prevent the I/O Processor from dropping the physical outputs, you will need to use the Remote Control Interlock to relinquish control of the outputs from ISaGRAF. The Remote Control Interlock is a binary point (either physical or derived) that when on, causes control of all ISaGRAF output points interlock by that point to be no longer controlled by ISaGRAF. Multiple points can be configured with the same Remote Control Interlock Point, allowing you to release control of all physical outputs by activating a single point.
    Unlike other SCADAPack RTU's, the SCADAPack ES will allow you to read the values/states of the physical outputs by using Output Status Boards . Therefore, to retain the values/states of the physical outputs between ISaGRAF application restarts or upgrades, you would perform the same procedure as outlined in Retaining ISaGRAF variables when loading an ISaGRAF application or power-cycling the RTU .

Product or product change Applications

This Technical Support Notice relates to all installations in which ISaGRAF is used.