PLC's Quantum, Momentum M340 and M580, UnityPro
- Name: ControlExpert
- Version: 1.7.0.0
- Protocol: MODBUS RTU, ASCII and TCP
- Interface: TCP/IP and Serial
- Runtime: Multiplatform
- Configuration:
- Devices / Protocols
Overview
Communication with PLC and IO devices compatible with Modbus Open Standard protocol. It operates as a Master on TCP/IP or serial networks. The communications blocks are dynamically created according to the pooling cycle defined on the AccessType for each Device Point.
Supported Operands
Operand | Read | Write | Data Type | Address size |
0 – %Q or %M - Coils | Yes | Yes | Bit | 1 bit |
1 – %I - Input Status | Yes | - | Bit | 1 bit |
3 – %IW - Input Registers | Yes | - | Word | 2 bytes |
4 – %MW - Holding Registers | Yes | Yes | Word | 2 bytes |
Channel Configuration
Protocol Options
The driver uses 4 ProtocolOptions fields (all positional via DrvParams):
DrvParams[0]= MsgFormat (string): Encoding/protocol format —"RTU TCP","RTU", or"ASC"(ASCII). Default:"RTU TCP".DrvParams[1]= SingleWrite (string): Write mode —"Use Single Write"for individual writes, anything else for block writes. Default: block write.DrvParams[2]= WriteFFonCoils (string): If"FF", writes 0xFF instead of 0x01 for coil ON state (required by some PLCs). Default: 0x01.DrvParams[3]= OffsetAddress (boolean): If true, adds +1 offset to Modbus addresses (for PLCs that use 1-based addressing). Default:
Encoding: Determines how the information will be packed into the message fields and decoded. The options are:
- RTU: Remote Terminal Unit mode, where each 8–bit byte in a message contains two 4–bit hexadecimal characters.
- ASCII: The message is encoded in ASCII mode, where each 8–bit byte in a message is sent as two ASCII characters.
- RTU TCP: The default transmission mode when the message is carried on a MODBUS TCP/IP network. It contains information to allow the recipient to recognize message boundaries even if the message has been split into multiple packets
- SingleWrite: Indicates the driver behavior for the writings with only one item:
- Use block write : The driver uses the 0x0F command for Coils, or the 0x10 command for Holding Registers
- Use single write: The driver uses the 0x05 command for Coils, or the 0x06 command for Holding Registers
Settings
Serial and MultiSerial channels:
- Default configuration for ASCII mode:
- DataBits: 7
- StopBits: 1 if parity is used; 2 if no parity is used
- Default configuration for RTU mode:
- DataBits: 8
- StopBits: 1 if parity is used; 2 if no parity is used
Set the other fields according to your Serial or MultiSerial port configuration
TCP/IP channels:
- NodeConnections: Defines the maximum number of parallel requests that will be sent to each node (asynchronous communication)
Node Configuration
Station Configuration
- SlaveId: Set this field with the address of the slave device in the network. They can be addressed from 1 to 247 for serial nodes, or 0 to 255 for TCP/IP nodes. The address 0 is used for the broadcast.
Serial channels:
- Station syntax: <SlaveId>
E.g.: 1
MultiSerial channels:
- Station syntax: <Com Port> ; <SlaveId>
Where:
- <Com Port>: the serial port number
E.g.: com1 ; 1
TCP/IP channels:
- Station syntax: <IP address> ; <Port number> ; <SlaveId>
Where :
- <IP address>: IP address of the slave device in the modbus network
- <Port number>: TCP port where the slave device is listening (default is 502)
E.g.: 192.168.1.101 ; 502 ; 1
Points Configuration
The syntax for the UnityPro communication points is: <Operand><Address>
Where:
- <Operand>: indicates the memory area, the valid values are:
Operand |
|---|
0 – %Q or %M - Coils |
1 – %I - Input Status |
3 – %IW - Input Registers |
4 – %MW - Holding Registers |
For more information about the valid operands, see the Supported Operands table aforementioned.
- <Address>: indicates the data address in the memory area, from 1 to 65535
E.g.: 400001 (Operand = 4 (%MW), Address = 1)
Troubleshoot
Modbus protocol error codes | ||
|---|---|---|
Error | Name | Description |
1 | ILLEGAL FUNCTION | The function code received in the query is not allowable. |
2 | ILLEGAL DATA ADDRESS | The data address received in the query is not allowable. |
3 | ILLEGAL DATA VALUE | A value contained in the query data field is not allowable. |
4 | SLAVE DEVICE FAILURE | Error while attempting to perform the requested action. |
5 | ACKNOWLEDGE | Request accepted, but a long duration of time will be required. |
6 | SLAVE DEVICE BUSY | The slave is engaged in a long–duration program command. |
7 | NEGATIVE ACKNOWLEDGE | Cannot perform the program function received in the query. |
8 | MEMORY PARITY ERROR | Parity error in the extended memory. |
Driver Revision History
UnityPro Revision History | |
|---|---|
Version | Notes |
1.7.0.0 | Initial release on new documentation standards. |
In this section...