Difference between revisions of "Modbus Interface"

From exigoWiki
Jump to navigation Jump to search
(Availability)
 
(31 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
This article describes the Modbus interface available in Exigo.
 
This article describes the Modbus interface available in Exigo.
  
{{Note}} ''The Modbus Interface is not official implemented.''
+
The Exigo Controller implements a Modbus TCP slave (server) interface on the standard '''Modbus port, TCP port 502'''. <br>
 
+
The Modbus interface in Exigo has two main features:
The Exigo Controller implements a Modbus TCP slave (server) interface on the standard Modbus port, TCP port 502. The Modbus interface in Exigo has two main features: <br>
+
* Status about amplifiers and panels connected to the Controller can be read from '''Modbus Input Register''' (16 bit).
* Status about amplifiers and panels connected to the Controller can be read from Modbus 16 bit input registers
+
* Pre-programmed PA calls and announcements can be triggered by writing to '''Modbus Coil Register'''.
* Pre-programmed PA calls and announcements can be triggered by writing to Modbus coil registers.
 
  
 
== Exigo status to Modbus ==  
 
== Exigo status to Modbus ==  
Selected Exigo failure statuses are exported to Modbus 16 bit input registers. The allocation of registers and bits is fixed. <br>
+
Selected Exigo failure statuses are exported to '''Modbus Input Register''' (16 bit). The allocation of registers and bits is fixed. <br>
 
There is no configuration of this feature (except for opening up Modbus in firewall). SCADA must poll these registers. A range of input registers can be read using Modbus function code 2.
 
There is no configuration of this feature (except for opening up Modbus in firewall). SCADA must poll these registers. A range of input registers can be read using Modbus function code 2.
  
 
There is one 16 bit register for each panel, amplifier and amplifier line. Physical devices like panels and amplifier have one 16 bit register describing the device level status. <br>
 
There is one 16 bit register for each panel, amplifier and amplifier line. Physical devices like panels and amplifier have one 16 bit register describing the device level status. <br>
Amplifiers have in addition one 16 bit register for each audio line. The index of each device and line is displayed in the [[:Category:EMT| Exigo Management Tool (EMT)]] in the "StInd" field.
+
Amplifiers have in addition one 16 bit register for each audio line. <br>
 +
The index of each device and line is displayed in the [[:Category:EMT| Exigo Management Tool (EMT)]] in the "StInd" field:
 +
[[File:Modbus StInd.png|thumb|left|500px|Modbus StInd Example]]
 +
<br style="clear:both;" />
 +
In the example above the controller will be located in Modbus Input Register 300018.
  
 
The 16 bit device/line statuses is interpreted as a bitmap:
 
The 16 bit device/line statuses is interpreted as a bitmap:
Line 25: Line 28:
 
SCADA set a "coil" bit (function code 5) to trig the action. Actions can be pre-programmed on both set (1) and clear (0), or just on one of the transitions.  
 
SCADA set a "coil" bit (function code 5) to trig the action. Actions can be pre-programmed on both set (1) and clear (0), or just on one of the transitions.  
  
Seen from SCADA these are discrete outputs. In Exigo those are seen as Modbus Coil Events.
+
Seen from SCADA these are discrete outputs. In Exigo those are seen as '''Modbus Coil Events'''.
  
 
At startup, the Modbus coil registers have value zero.
 
At startup, the Modbus coil registers have value zero.
  
A subset of physical Control Input actions is available for programming the Modbus Coil Events using Exigo Management Tool (EMT):
+
Input Actions currently available for configuration on '''Modbus Coil Events''' are:
* Play back a pre-loaded audio message to a set of zones
+
* [[Alarm Control]]
* Feed audio from an audio input to a set of zones
+
* [[Message Control]]
* Play a predefined alarm signal to a set of zones
+
* [[Audio Program Control]]
* Clear a specific call
+
* [[Recall, Control]]
* Clear all calls in given zones
+
* [[Recall, Record]]
 +
* [[Tick Tone Control]]
 +
* [[Local Mute Control]]
 +
* [[Line Measurement]]
 +
* [[Clear Activity]]
 +
* [[Volume Control]]
  
 
Unlike a physical Control Input, the matching Modbus action is triggered also when the same coil register value is written multiple times.
 
Unlike a physical Control Input, the matching Modbus action is triggered also when the same coil register value is written multiple times.
Line 45: Line 53:
 
=== EMT Configuration ===
 
=== EMT Configuration ===
  
To create configuration for Modbus Coil Event: Drag and drop Modbus Coil Event -> System -> Integration -> Modbus Coil Events:
+
To create configuration for Modbus Coil Event: Drag and drop '''Modbus Coil Event''' -> '''System''' -> '''Integration''' -> '''Modbus Coil Events''':
[[File:Modbus_1.png|thumb|left|700px|Modbus Coil Event]]
+
[[File:Modbus_1.png|thumb|left|500px|Modbus Coil Event]]
 
<br style="clear:both;" />
 
<br style="clear:both;" />
  
Line 74: Line 82:
 
[[File:Modbus_8.png|thumb|left|700px|Modbus Coil - On Action]]
 
[[File:Modbus_8.png|thumb|left|700px|Modbus Coil - On Action]]
 
<br style="clear:both;" />
 
<br style="clear:both;" />
 
 
Input Actions currently available for configuration on Modbus Coil Events are:
 
* Alarm Control
 
* Message Control
 
* Audio Program Control
 
* Recall, Control
 
* Recall, Record
 
* Tick Tone Control
 
* Local Mute Control
 
* Line Measurement
 
* Clear Activity
 
* Volume Control
 
  
 
== Test tool ==
 
== Test tool ==
Line 102: Line 97:
 
|mbpoll 1.2.3.4 -1 -t 3 -c 30
 
|mbpoll 1.2.3.4 -1 -t 3 -c 30
 
|}
 
|}
 
== Availability ==
 
The Modbus functionality is not yet official implemented. <br>
 
Please contact [mailto:alphasupport@zenitel.com AlphaSupport] if you are interested in the Modbus functionality.
 
  
 
[[Category:Exigo features]]
 
[[Category:Exigo features]]
 +
[[Category:Integration]]
 
[[Category:Input Actions]]
 
[[Category:Input Actions]]

Latest revision as of 07:18, 13 July 2021

This article describes the Modbus interface available in Exigo.

The Exigo Controller implements a Modbus TCP slave (server) interface on the standard Modbus port, TCP port 502.
The Modbus interface in Exigo has two main features:

  • Status about amplifiers and panels connected to the Controller can be read from Modbus Input Register (16 bit).
  • Pre-programmed PA calls and announcements can be triggered by writing to Modbus Coil Register.

Exigo status to Modbus

Selected Exigo failure statuses are exported to Modbus Input Register (16 bit). The allocation of registers and bits is fixed.
There is no configuration of this feature (except for opening up Modbus in firewall). SCADA must poll these registers. A range of input registers can be read using Modbus function code 2.

There is one 16 bit register for each panel, amplifier and amplifier line. Physical devices like panels and amplifier have one 16 bit register describing the device level status.
Amplifiers have in addition one 16 bit register for each audio line.
The index of each device and line is displayed in the Exigo Management Tool (EMT) in the "StInd" field:

Modbus StInd Example


In the example above the controller will be located in Modbus Input Register 300018.

The 16 bit device/line statuses is interpreted as a bitmap:

  • Bit 0 is set in all registers that represent a configured item. Unused registers read as zero.
    • Remaining bits may be set to indicate a fault situation.
  • Bit 1 on device level statuses means the controller has lost contact with the device.
  • Bit 2 on speaker line mean that the speaker line is faulty (voltage test).

Trig announcement in Exigo from Modbus

Modbus coil registers 1 - 100 in the controller can be assigned a pre-programmed action in Exigo.
SCADA set a "coil" bit (function code 5) to trig the action. Actions can be pre-programmed on both set (1) and clear (0), or just on one of the transitions.

Seen from SCADA these are discrete outputs. In Exigo those are seen as Modbus Coil Events.

At startup, the Modbus coil registers have value zero.

Input Actions currently available for configuration on Modbus Coil Events are:

Unlike a physical Control Input, the matching Modbus action is triggered also when the same coil register value is written multiple times.

Configuration

Firewall

To make the Exigo Controller able to receive Modbus connections, TCP port 502 have to be opened in "AlphaWeb" of the controller: https://wiki.zenitel.com/wiki/AlphaWeb#Filters.
First add TCP port 502 as new protocol, then open it for the desired interface(s).

EMT Configuration

To create configuration for Modbus Coil Event: Drag and drop Modbus Coil Event -> System -> Integration -> Modbus Coil Events:

Modbus Coil Event


A dialog box will appear where the Coil number can be set:

Modbus Coil #


Click "Done". Placeholders for event configuration will be added to the Configuration Tree:

Modbus Coil On Action/Off Action


It is possible to create multiple Modbus Coil Events:

Modbus Coil Events


Input Actions is configured the same way Control Input and Direct Access Keys:

Modbus Coil - On Action


Modbus Coil - On Action


It is also possible to drop the Input Action on the Modbus Coil event to automatically create Start/Stop Actions on "On Action" and "Off Action":

Modbus Coil - On Action


Modbus Coil - On Action


Test tool

For standalone testing of Modbus interface, the command line tool "mbpoll" is useful: https://github.com/epsilonrt/mbpoll

Set coil#2 to 1 mbpoll 1.2.3.4 -1 -t 0 -r 2 1
Set coil#2 to 0 mbpoll 1.2.3.4 -1 -t 0 -r 2 0
Read 30 first input registers mbpoll 1.2.3.4 -1 -t 3 -c 30