If you connect the GRD/cLAN to the Exemys Telemetry Server you don't need to read this section |
The MW has an internal Modbus slave that contains the values of inputs and outputs, the values read from this slave are those corresponding to the GRD/cLAN reports and not to the Historicals, these are not accessible via Modbus. In order to visualize the current GRD/cLAN values the desired reports in the equipment must be enabled. Access to the internal slave is through queries to slave number 247.
Queries to external slaves are made the same way as to the internal slave. Its map contains the values of 8 analog inputs, 8 digital inputs, 8 digital outputs, 2 pulse inputs and the state of all GRD/cLAN from ID 1 to 4000, this means that if the GRD/cLAN has more inputs/outputs we won’t be able to query them through this method. It is also possible to act on the digital outputs modifying their state at any instance.
Queries can be made, for example, from a SCADA.
The TCP port to accept the incomming queries must be configure on the MW's main screen. You can also chose here to use Modbus TCP, Modbus RTU over TCP or Modbus ASCII over TCP.

The information of each GRD can be visualized in different forms according to the type of parameter you want to see. Each GRD has a specific location in the Modbus map, this location is determined through the ID number.
In the input register we find the digital and analog inputs, as well as the value of digital outputs. Each GRD has a total of 16 register that contain the following information.
Record number |
Information |
Record 1 to 8 |
Analog 1 to 8 |
Record 9 |
Digital inputs |
Record 10 |
Digital outputs |
Records 11 to 14 |
Pulse inputs 1 to 2 |
Record 15 |
Reserved |
Record 16 |
State |
The calculation to determine the address of a record for a particular device is the following:
Records X = 30000 + (GRD_ID – 1) * 16 + Record number (1 to 16)
As an example, let’s suppose that we want to read the analog input 3 of the GRD with the ID = 87. Analog input 3 corresponds to record 3, then.
Record 3 (GRD 87) = 30000 + (87 - 1) * 16 + 3
To be able to see the desired value we have to access record 31379.
Digital inputs and outputs are grouped in a single record that contain in its bits the corresponding values, knowing that input 1 of the device corresponds to bit 0 of the record and input 16 corresponds to bit 15 of the record we can determine each one. The outputs are located in the records the same way.
To know the state of the connection we can read record 16 in bit 0, if this bit is 1 indicates that equipment is connected, while 0 indicates that the equipment is disconnected.
Pulse inputs are located in records 11 to 14, each one of the inputs takes 2 records to be able to cover the range 0 to 1000000000, the lower record represents the higher part of the number and the upper record represents the lower part of the pulse count.
All Input registers values are copied to holding registers. Use the same calculation to get the right address for every channel.
In the input status we can read the state of digital inputs of all GRD/cLAN. Each devices occupies 16 positions and the calculation to read the value of one of the inputs is the following.
Input X = 10000 + (GRD_ID – 1) * 16 + Input number (1 to 16)
For example, if we want to know the value of input 8 of the GRD with and ID =6 the calculation is the following.
Input 8 (GRD 6) = 10000 + (6 - 1) * 16 + 8
It is equivalent to address Modbus 10088.
In the coil status records we visualize the digital outputs of the equipment. To determine the address of the outputs for each GRD/cLAN we calculate:
Output X = (GRD_ID – 1) * 16 + Output number (1 to 16)
For example, if we want to access output 4 of the GRD with an ID = 45 the calculation is the following:
Output 4 (GRD 45) = (45 – 1) * 16 + 4 = 708
It is equivalent to address Modbus 708 of the coil status.
If we write on these records the state of the outputs are modified, this means that we can modify the state of the outputs of a device from the Internal Modbus slave.
2017-11-23