Contents
MODBUS
Overview
MODBUS is a Dyalog namespace that builds the sequence of bytes required for the MODBUS protocol using the RTU (Remote Terminal Unit) frame format that is commonly used for connecting industrial electronic devices with computers. Those bytes can be communicated to the industrial device via a Serial Port or a serial device over TCP/IP while using those already made communication Dyalog classes. Modbus devices can be reliably used for home automation, data acquisition and process control. The Modicon Modbus Protocol Reference Guide is available at this link.
Here is the list of available commands from this namespace:
Method |
Description |
FORCE_COIL_ON |
Force ON a Single Coil |
FORCE_COIL_OFF |
Force OFF a Single Coil |
READ_REG_FLOAT |
Read One FLOAT Register |
READ_BYTE |
Read Multiple Registers as Bytes |
PRESET_REG_FLOAT |
Write a Float Value to a Register |
PRESET_REG_INT |
Write an Integer Value to a Register |
FORCE_COIL_ON Detailed Example
If you want to Force the Coil no 1 to ON on the Modbus serial slave device no 17 using the serial port no 2 at 9600 baud, 8 Data Bits, Even Parity and 1 Stop Bit:
⍝ Get a communication object. For serial use COM com ← ⎕NEW COM ⍝ Instantiate the class com.Open 2 9600 8 2 1 ⍝ Setup the serial communication ⍝ Send the Modbus command using the COM object: com MODBUS.FORCE_COIL_ON 17 1 ⍝ modbusAddr coilNumber
If you want to Force the Coil no 1 to ON on the Modbus serial slave device no 17 located at IP address '192.168.1.10' and port 22500 (in this case the baud rate, data bits, parity and stop bit will have to be setup separately according to the IP device):
⍝ Get a communication object. For serial over TCP/IP use TCP tcp ← ⎕NEW TCP ⍝ Instantiate the class tcp._SwitchingDelay ← 100 ⍝ Adjust according to the speed of the serial device tcp.Connect '192.168.1.10' 22500 ⍝ Connect with the serial device ⍝ Setup the serial communication (particular for each IP device) ⍝ Send the command using the TCP object: tcp MODBUS.FORCE_COIL_ON 17 1 ⍝ modbusAddr coilNumber
Internally FORCE_COIL_ON will use the SendReceive method that is common to the COM and TCP communication object. All the other methods of the namespace MODBUS are following the same scheme, see the comments of their corresponding individual methods for more information.
How to install MODBUS in your workspace
Download MODBUS.v1.0.txt
- Do a Select all (Ctrl+A) and a copy (Ctrl+C).
In your workspace execute )ed ⍟ MODBUS
- Paste (Ctrl+V) the text into the Dyalog editor
- Press Escape and ')save' your workspace
Version Information
Version 1.0 January 2016, Pierre Gilbert
Original author: |
Pierre Gilbert |
Responsible: |
|
Email: |
<apgil AT SPAMFREE videotron DOT ca> |