图书馆:IoDrvModbusTCP
除了在Modbus服务器通道选项卡中,此功能块允许在应用程序中动态执行其他命令。但是,对于这些通过编程创建的命令,没有 I/O映射,只有以下类型的输入/输出数据范围ARRAY OF BYTE
或者ARRAY OF WORD
。
表 13. 输入(VAR_INPUT)
姓名 | 数据类型 | 初始值 | 描述 |
---|
Slave
| ModbusTCPSlave
| | |
xExecute
| BOOL
| | 上升沿:动作开始。 下降沿:如果在功能块结束操作之前发生下降沿,则输出将复位。输出将照常运行,并且仅在操作结束或中止时复位(xAbort ),或者发生错误。在这种情况下,相应的输出值(xDone ,xError ,iError ) 在输出端存在恰好一个周期。 |
xAbort
| BOOL
| | TRUE :操作立即中止,所有输出均设置为其初始值。
|
usiUnitID
| UINT
| 16#FF
| 单元 ID 仅用于转发(网关)到 Modbus 串行总线。 对于 TCP/IP 协议,MODBUS 服务器通过 IP 地址寻址。在这种情况下,不使用 MODBUS 单元 ID(必须使用值 0xFF)。 对于串行连接,Modbus 设备的单元 ID 寻址范围为 1 至 247(0 用于广播地址)。 |
ModbusCommand
| ModbusCommand
| | 要执行的 Modbus 命令。支持位和字访问的功能块。 |
pSendData
| POINTER TO BYTE
| | 指向包含发送到服务器的数据的缓冲区的指针。 对于寄存器访问,缓冲区的类型为Array[0..ModbusCommand.uiWriteLen - 1] OF WORD 。对于位访问,缓冲区的类型为ARRAY[0..ModbusCommand.uiWriteLen / 8] OF BYTE 。 |
pRecvData
| POINTER TO BYTE
| | 指向缓冲区的指针,服务器接收到的数据写入该缓冲区。 对于寄存器访问,缓冲区的类型为ARRAY[0..ModbusCommand.uiReadLen - 1] OF WORD 。对于位访问,缓冲区的类型为ARRAY[0..ModbusCommand.uiReadLen / 8] OF BYTE 。 |
表 14. 输出(VAR_OUTPUT)
姓名 | 数据类型 | 初始值 | 描述 |
---|
xDone
| BOOL
| FALSE
| TRUE 如果请求成功结束
|
xBusy
| BOOL
| FALSE
| TRUE 请求正在处理中
|
xError
| BOOL
| FALSE
| TRUE 如果请求因错误而结束
|
xAborted
| BOOL
| FALSE
| TRUE 当用户中止请求时
|
ModbusError
| MB_ErrorCodes
| | 当前错误;定义在MB_ErrorCodes 枚举。 |