Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Also note that other units under the Internal Channel (Status RTU, Virtual RTU, Segment RTU) do not need to be polled for data. They reside under the Null Circuit, and their data simply appears in their own RTDBs automatically without being scanned.

Null Circuit

A Null Circuit object defines placeholder in the configuration, under which one or more Status/Control, Virtual, Segment, or Internal Master field units are defined for an Internal Channel.

AttributesFunction
Object TypeNullCircuit 
Parent(s)System → Clients → Master Channels → Internal Channel
InstanceMust be 0 or 1. (However, the Virtual Circuit must be instance 0, so if used with a Null Circuit, the Null Circuit must be instance 1.)


The Null Circuit should have at least one child Filed Unit object defined under it.

PropertiesValues
Circuit Type 

Placeholder for the circuit type as 'Null Circuit'.

Virtual Field Unit

A Virtual Field Unit object allows an additional Real-time Database (RTDB) to be defined for internal storage of data. This may be used as a data repository for the ISaGRAF program logic to store data values, and/or the RTDB may serve as the source of data for a Slave Channel definition.

Info

Note: The Virtual Field Unit will not automatically be marked alive for purposes of reporting via an MQTT client. To make sure the Virtual Field Unit is marked alive, one of the following needs to be done:

  • In the Internal Master Channel, define one scan for the Virtual unit (use Poll Record 1). Make sure the Scan Period is very long (longer than the Scan Effective Limit). Even though the poll will be marked as a timeout, the Virtual Unit will be marked alive because the Scan Table completes its cycle.
  • In the Internal Master Channel, if there is an Internal Master unit being scanned in addition to the Virtual unit, the Virtual unit will also be marked as alive. (This occurs because the Channel is required to complete one full scan cycle successfully.)
  • Or you could use a POD "SET RTU STATUS" or ISaGRAF 'setosval' function to set the Virtual unit to an alive state.
AttributesFunction
Object TypeFieldUnitVirtual  
Parent(s)System → Clients → Master Channels → Internal Channel → NullCircuit
InstanceMust be between 0 and 255, and should be unique under this Null Circuit among all Status, Virtual, and Internal Master field units.  
PropertiesValues
Unit Name

Enter the field unit name as an identifier for the Field Unit. 

Unit AddressEnter the Field Unit address. This should be a unique address from any other ISaGRAF, Status, or Internal Master field unit addresses on this Internal Channel. The default address is 3. 
ProtocolPlaceholder for field unit protocol type 'Repository Database Unit'.
Com RetriesThis parameter is a null field to retain compatibility with other field unit objects. The only option is 'N/A'. 
Comm Status  Holdreg

Enter the starting holding register to contain the communication status for this field unit. Typically, this field is unused for the Virtual Unit.

Each Comm Status takes 5 registers, beginning at the register configured in this parameter. The Comm Status Holdreg for each field unit in a configuration must be defined such that the five registers do not overlap other registers being used.

If the register is defined in the 30,xxx address range, the status values will be stored in the local device's RTDB (i.e., the RTDB defined as a child object to this ISaGRAF Field Unit.

If the register is in the 40,xxx range, the values will be stored in the Status/Control Field Unit RTDB.

The Comm Status Holdreg is optional, and can be set to 0 to disable the storage of status registers.

See the section Communication Status Registers, for a description of the five Comm Status Register contents. 

Produce RBEs

Select this option to determine whether to produce a Report by Exception (RBE) flag when data in this unit's RTDB changes.

In the RTDB, for every data point, there are potentially 4 RBE flags associated with every data point. When the data point changes, the RBE flags are set. These flags are used to determine when new data needs to be reported to the HCP. 

No PollsThis parameter is a null field to retain compatibility with other field unit objects. The only option is 'N/A'.

Internal Master Field Unit

...

The Internal Master is a special type of Field Unit which is designed to provide an easy mechanism for collecting and consolidating data from any other Field Unit RTDBs into the RTDB associated with the Internal Master unit. In theory, it operates like a Master Channel Field Unit, which polls data from an external device; but the Internal Master operates only to take data from one RTDB to another.

AttributesFunction
Object TypeFieldUnitInternalMast 
Parent(s)System → Clients → Master Channels → Internal Channel → NullCircuit
Instance

Must be between 0 and 256, and should be unique under this Null Circuit among all Status, Virtual, and Internal Master field units.

The Internal Master Field Unit should have a Modbus RTDB child object defined under it (see page ).   

PropertiesValues
Unit Name

Enter the field unit name.

Unit AddressEnter the field unit address. This should be a unique address from any other ISaGRAF, Status, Virtual, or Internal Master field unit addresses on the Internal Channel.  The default address is 5. 
Protocol

Select the Protocol type for the Internal Master field unit. The Protocol selection determines the rules by which a host can access the data in this Virtual Master's RTDB, via attachment to a Slave Channel. Available Protocol types are:

Read/Write Internal RTU, not to DBM. This allows a host to both read data from the RTDB and write data directly to the device configured in the Source Channel/RTU. Read/Only Internal RTU. This allows a host to read data from the RTDB, but writes are not allowed. Data in the RTDB can be changed by ISaGRAF or by Internal Master polls from other RTDB locations, but not by an external host connected via Slave Channel. R/W RTU or to DBM if no Remapped Poll Record. This allows a host to read data from the RTDB and write data directly to the device configured in the Source Channel/RTU if there are matching poll records; otherwise, write data is stored directly into this Internal Master's RTDB registers. 

Com RetriesEnter the number of communication retries after a failed poll attempt. If a poll attempt fails, poll will be sent again up to the configured number of "Com Retries" before the field unit is declared failed. 
Comm Status  HoldregEnter the starting holding register to contain the communication status for this field unit.  Each Comm Status takes 5 registers, beginning at the register configured in this parameter. The Comm Status Holdreg for each field unit in a configuration must be defined such that the five registers do not overlap other registers being used. 
If the register is defined in the 30,xxx address range, the status values will be stored in the local device's RTDB (i.e., the RTDB defined as a child to this Field unit).  If the register is in the 40,xxx range, the values will be stored in the Status/Control Field Unit RTDB. The Comm Status Holdreg is optional, and can be set to 0 to disable the storage of status registers. See the section Communication Status Registers, for a description of the five Comm Status Register contents. 
Produce RBEsSelect this option to determine whether to produce a Report by Exception (RBE) flag when data in this unit's RTDB changes. In the RTDB, for every data point, there are potentially 4 RBE flags associated with every data point. When the data point changes, the RBE flags are set. These flags are used to determine when new data needs to be reported to the HCP. 
Poll Table

Click the Edit Table button to define the Modbus polls to be sent to this unit. Note that the Poll Table only defines how the Modbus protocol is defined to operate for each set of data defined in the polls. The Poll Table doesn't actually do any of the polling itself. If you want any of these polls to be sent to the Field Unit on a regular basis, it should be referenced in one or more Scan Table entries in the Master Channel. 

Src Chan – Enter the Channel number of the RTDB containing the source data. This is either a Master Channel or Internal Channel instance number that must be defined under the Master Channels placeholder. 

Src RTU – Enter the Field Unit number of the RTDB containing the source data. This is the Unit Address configured in the properties of the field unit, not the instance number of the field unit ACE object, if they are different. 

Src Data – Enter the source register number for the starting register in the Field Unit's RTDB to begin retrieving data. 

Src Type - Enter the data type of the data being requested. See below for a discussion of Src Type options in the Master Channel. 

Src Count – Enter the number of registers to retrieve. The maximum number allowed in any poll is the same as for Modbus polls: 2000 Boolean registers, 125 registers of 16-bit type, or 62 registers of 32-bit type.  The Count includes the number of register values being requested, starting at the Src Data register. 

Dest Data – Enter the starting destination register within this Internal Master's RTDB to place the polled data. Ensure that there is a large enough quantity of registers in the RTDB to store the count. The destination register type should be chosen based on the Source Format of the data.  Booleans should be stored into Boolean RTDB registers. 16-bit values should be stored into 16-bit RTDB registers. 32-bit values or 16-bit pair values should be stored into 32-bit RTDB registers 
When reading data from internal databases, the Internal Master also reads the quality flag status for each point, and individually sets the quality flags on the destination data to match the source point status. 

 


Discussion on Source Type

Several Src Type options are provided in the Internal Master Field Unit. These provide a number of unique capabilities for copying and transforming data from one RTDB location to another.
The following table gives a list of the Internal Master Src Type options, and an explanation of how they are used.

Src Type

Source data

Dest data

Meaning

Boolean

Boolean

Boolean

Single on/off bit occupies a register

8 bit

 

 

Take lower 16-bits of an integer register.

16 bit

16 bit

16 bit

Typical 16-bit register type.

24 bit

32-bit

32-bit

Take lower 3 bytes of a 32-bit integer register

32 bit

32 bit

32 bit

 

Short String

STRING32

STRING32

 

Long String

STRING256

STRING256

 

UTF String

 

 

 

Event

 

 

 

Double-Float

64 bit

64 bit

 

Copy 16-Bit pairs into 32-Bit Regs

16 bit

32 bit

Registers are taken as pairs, and the Src Count should be the numbers of pairs of registers (32-bit entities). (Source registers are little-endian.)

Swap 16-Bit pairs into 32-Bit Regs

16 bit

32 bit

Registers are taken pairs, and the Src Count should be the numbers of pairs of registers (32-bit entities). (Source registers are big-endian.)

Split-Copy 32-bit Regs into 16-bit-Pair Regs

32 bit

16 bit

32-bit register is broken into pairs of 16-bit registers

Split-Swap 32-bit Regs into 16-bit-Pair Regs

32 bit

16 bit

same as above, but swapped

Boolean-Src to 16-Bit-Dest Hi to Lo Bits

Boolean

16 bit

Boolean source registers are taken in groups of 16, with the first register becoming the most-significant bit (MSB) in the 16-bit value.

16-Bit-Src to Boolean-Dest Hi to Lo Bits

16 bit

Boolean

16 bits in source register(s) are placed sequentially to Boolean registers, in the order of most-significant bit (MSB=1st destination register) to least-significant bit in each 16-bit word.

16-Bit-Src to Boolean-Dest Lo to Hi Bits

16 bit

Boolean

16 bits in source register(s) are placed sequentially to Boolean registers, in the order of least-significant bit (LSB=1st destination register) to most-significant bit in each 16-bit word.


The following source types reverse the direction of data from the other types listed above, allowing data to be copied from the Internal Master RTDB to a different Field Unit's RTDB location. Be sure to keep in mind that for these data types, the "Src" (source) and "Dest" (destination) data locations are reversed. Thus:

...

The source and destination data types should be the same.

Src Type

Meaning

Trigger Move Data from Local to Src Data

Choose this option to copy data from the Internal Master RTDB (Dest Data location) into another RTDB (Src Data location), based on a trigger value. The Trigger register is the last register in the specified set.
When the Trigger register is set to a non-zero value by any means (external host, ISaGRAF, POD, etc.), then the full Count of registers are copied from the Dest registers to the Source Chan/RTU/Data register location, and the Trigger register is set back to zero automatically.
Thus, if using a Dest Data register of 40,001 (in the Internal Master), and a Src Count of 17 registers, then the Internal Master RTDB register 40,017 is used as a trigger for the move operation.

Trigger Write Data from Local Data to Src Chan/RTU

Choose this option to write data from the Internal Master RTDB to a device on a Source Channel/RTU address, based on a trigger value. The Trigger register is the last register in the specified set.
When the Trigger register is set to a non-zero value by any means (external host, ISaGRAF, POD, etc.), then the all of the registers are written from the Dest registers to the Source Chan/RTU/Data register location using the device's protocol, and the Trigger register in the local RTDB is set back to zero automatically.

Always Move Data from Local to Src Data

Choose this option to constantly copy data from the Internal Master RTDB (Dest Data location) into another RTDB (Src Data location). No trigger register is used.

Always Write Data from Local Data to Src Chan/RTU

Choose this option to constantly write data from the Internal Master RTDB (Dest Data location) to a device on a Source Channel/RTU address/Src Data register whenever this poll is scanned by the Internal Master Channel. No trigger register is used.


The final Internal Master "Source Type" is a special function that tells the Internal Master process to run a POD logic routine. This POD program is run in the sequence of the scans that are triggered by the Internal Master. The POD program must complete before the Scan Table can move on to the next scan.

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="ffd344f9-9ba3-446f-922e-65a380e7c7ee"><ac:plain-text-body><![CDATA[

Run POD

[ Src Count ] Src Count Column value is Pod_Index. Each POD has a unique instance number, and when this Poll Table entry is trigged, the numbered POD routine runs in its entirety before control is returned to the Internal Channel for running subsequent polls.

]]></ac:plain-text-body></ac:structured-macro>


The POD object in the ACE configuration holds a set of programming instructions which can be used to manipulate or make decisions on data stored in RTDBs. Up to 9999 POD modules can be configured per Internal Master Channel, which are called by a Poll Table of an Internal Master RTU (which in turn is triggered by a Scan Table entry in the Internal Master Channel).

...

See the section Communication Status Registers for a description of the communication status registers stored for Field Units.

AttributesFunction
Object TypeFieldUnitSysCtrl 
Parent(s)System → Clients → Master Channels → Internal Channel → NullCircuit
InstanceMust be between 0 and 255, and should be unique under this Null Circuit among all Status, Virtual, and Internal Master field units. Only one Status Field Unit should be included in a configuration. 


The Status Field Unit should have a Modbus RTDB child object defined under it (see page ).

PropertiesValues
Unit Name

Enter the field unit name as an identifier. 

Unit AddressEnter the field unit address. This should be a unique address from any other ISaGRAF, Virtual, or Internal Master field unit addresses on the Internal Channel. Typically this address is set to 2. 
ProtocolPlaceholder for field unit protocol type 'System Control & Status Unit'. 
Com RetriesThis parameter is a null field to retain compatibility with other field unit objects. The only option is 'N/A'. 
Comm Status  HoldRegThis parameter is a null field to retain compatibility with other field unit objects. It should be set to 0. 
Produce RBEsSelect this option to determine whether to produce a Report by Exception (RBE) flag when data in this unit's RTDB changes. In the RTDB, for every data point, there are potentially 4 RBE flags associated with every data point. When the data point changes, the RBE flags are set. These flags are used to determine when new data needs to be reported to the HCP. 
No PollsThis parameter is a null field to retain compatibility with other field unit objects. The only option is 'N/A'.
Communication Status Registers

...

A Segment Field Unit object allows Segment databases (RTDB) to be defined with a more flexible structure than most RTDBs. Like the Virtual unit, the Segment Field Unit is simply a data repository and does not require any Internal Channel scans to be defined. The Segment unit is used to create a more granular list of registers with a mix of different data types.

AttributesFunction
Object TypeFieldUnitSegment 
Parent(s)System → Clients → Master Channels → Internal Channel → NullCircuit
Instance

Must be between 0 and 255, and should be unique under this Null Circuit among all Status, Virtual, and Internal Master field units. 
The Segment Field Unit should have a Segment RTDB child object defined under it. 

PropertiesValues
Unit Name

Enter the field unit name as an identifier for the Field Unit.

Unit AddressEnter the Field Unit address. This should be a unique address from any other ISaGRAF, Status, Virtual, or Internal Master field unit addresses on this Internal Channel. 
ProtocolPlaceholder for field unit protocol type 'Segment Database Unit'. 
No CommsUnused
Not Used Unused
No PollsUnused

 

Segment RTDB

 

A Segment RTDB (Real Time DataBase) defines the size of the virtual database reserved for the Segment Field Unit. The Segment RTDB contains some significant differences from other RTDB objects. It is more flexible in size and construction, and multiple Segment RTDBs may be configured under a single Segment Field Unit. The Segment RTDB also allows deadbands to be defined in the database by point number, rather than through a separate field-based Deadband object.

...

The collection of Segment RTDB objects together create a single RTDB as might exist under other Field Unit objects. The Segment RTDB is indexed with only a Point Count, not requiring a register address to be configured. The table below shows the comparison between a set of Segment RTDB objects as compared with a similarly configured RTDB for other field units.

Src TypeSource dataDest dataMeaning

Boolean

Boolean

Boolean

Single on/off bit occupies a register

8 bit

 

 

Take lower 16-bits of an integer register.

16 bit

16 bit

16 bit

Typical 16-bit register type.

24 bit

32-bit

32-bit

Take lower 3 bytes of a 32-bit integer register

32 bit

32 bit

32 bit

 

Short String

STRING32

STRING32

 

Long String

STRING256

STRING256

 

UTF String

 

 

 

Event

 

 

 

Double-Float

64 bit

64 bit

 

Copy 16-Bit pairs into 32-Bit Regs

16 bit

32 bit

Registers are taken as pairs, and the Src Count should be the numbers of pairs of registers (32-bit entities). (Source registers are little-endian.)

Swap 16-Bit pairs into 32-Bit Regs

16 bit

32 bit

Registers are taken pairs, and the Src Count should be the numbers of pairs of registers (32-bit entities). (Source registers are big-endian.)

Split-Copy 32-bit Regs into 16-bit-Pair Regs

32 bit

16 bit

32-bit register is broken into pairs of 16-bit registers

Split-Swap 32-bit Regs into 16-bit-Pair Regs

32 bit

16 bit

same as above, but swapped

Boolean-Src to 16-Bit-Dest

Boolean

16 bit

Boolean source registers are taken in groups of 16, with the first register becoming the most-significant bit (MSB) in the 16-bit value.

16-Bit-Src to Boolean-Dest

16 bit

Boolean

16 bits in source register(s) are placed sequentially to Boolean registers, in the order of most-significant bit (MSB=1st destination register) to least-significant bit in each 16-bit word.

 

The instance number and point count for each Segment RTDB implicitly defines the data addresses that can be used when referring to data values in the Segment RTU. Note that the registers in Segment RTDBs are defined in blocks of (multiples of) 300 points per instance number. If one Segment# includes more than 300 points, as with Segment #2 in the above example, you must not skip those Segment RTDB instance numbers to avoid an address conflict.

AttributesFunction
Object TypeRtdbSegmentFdb 
Parent(s)System → Clients → Master Channels → Internal Channel → NullCircuit → FieldUnitSegment
Instance

Must be between 1 and 255. 

PropertiesValues
Produce RBEsSelect this option to determine whether to produce a Report by Exception (RBE) flag when data in this unit's RTDB changes. In the RTDB, for every data point, there are potentially 4 RBE flags associated with every data point. When the data point changes, the RBE flags are set. These flags determine when new data needs to be reported to an MQTT server, HCP, or other hosts supporting RBE. 
Database

Click the Edit Table button to edit the details of the RTDB definition.

Definition  Point Count – Enter the number of data points of this type to be allocated space in the database. Point Format – Select the point data format: UINT8 – Unsigned 8-bit integer (0 to 255) SINT16 – Signed 16-bit integer (-32,768 to 32,767) UINT16 – Unsigned 16-bit integer (0 to 65,535) SINT32 – Signed 32-bit long integer UINT32 – Unsigned 32-bit long integer REAL32 – IEEE floating point (32-bit) 
Deadband – Enter the deadband value for the points defined on this row, which is the amount a value in the RTDB can change before it will be flagged as an RBE. Deadband value is entered as an integer or floating point value, which is handled as a 15-character (max) string. If IEEE floating point format is used, its entry must include a decimal point (such as 11.0). 
Comment - Optional column, allowing a descriptive comment to be entered for each row in the table. The Comment field is unused in the configuration.

 

DirectorPOD

Elecsys provides a separate manual to describe how PODs are configured and to explain each of the many function codes available. See the RediGate POD Programming Manual for further instructions.

...