ABBAC900F学习笔记201:modbus通讯12
2022-04-04 18:12阅读:
接着学习,还是那文档,第四章4.7,modbus串口主站写线圈MODM_W1C、MODM_W8C、MODM_W16C

功能:写二进制值。这三个功能块都参数定义对话框是类似的,就用MODM_W16C功能块作为代表学习记录。功能块通过freelance的串口或者TCP向外部系统写布尔数据(线圈)。使用modbus功能码05或者15.
| 功能码05 |
写线圈状态 |
MODM_W1C,传输1个bool类型freelance变量 |
| 功能码15 |
写线圈状态 |
MODM_W8C、MODM_W16C传输ui多8个或者16个BOO变量 |
BOOL数据类型 所需的报文数据在输入 w01 至 W16 处按顺序提供。
双击打开此功能块参数定义对话框
自动请求选项的不同选择决定了不同的发送行为模式。输入端REQ为1时开始传输数据。如果输出DSR为1,表示传输已经完成。该功能块不能显示为面板,也不能在freelance
operations运行时进行操作。
下面介绍其他参数
优先级:1-5,如果选择“-”,则没有消息内容。
提示:输入提示信息,这个和其它功能块用法一样。
消息文本:消息输出文本,直接填写或者从下拉列表选择。
超时:输入等待响应的最大毫秒单位时间,范围0-9999。输入0表示没有超时。
重试:超时或者报文错误发生时,最大的重试次数,范围0-9.
接口:硬件组态时,modbus串口通讯主站对象的名字。这个必须填写(红色底色的必须填写)
自动请求:勾选表示自动请求模式,输入REQ不能切换。
不勾选表示未处理功能块,即没有输入REQ。
涂黑表示没有自动请求,即REQ为1就开始数据传输。
Modbus功能15(因为上图以MODM_W16C举例子,所以不是modbus功能05(只有MODM_W1C使用modbus功能码05)
从站地址:输入从站地址,范围是0至247.
线圈地址:输入变量块的线圈地址。
技术:输入发送报文中线圈(BOOL)变量的数量。MODM_W1C填写1,MODM_W8C最大为8,MODM_W16C最大为16.
功能块数据
| 名字 |
数据类型 |
配置 |
访问 |
注释 |
| 输入端 |
|
|
|
|
| EN |
BOOL |
YES |
RW |
使能
TRUE:功能块可以处理 |
| REQ |
BOOL |
NO |
RW |
TRUE:报文读写开始信号 |
| W01至W16 |
BOOL |
NO |
RW |
freelance报文数据 |
| 输出端 |
|
|
|
|
| ENO |
BOOL |
NO |
RO |
处理状态
TRUE:功能块处理完毕 |
| DSR |
BOOL |
NO |
RO |
TRUE:REQ输入,用于写入报文控制的信号 |
| OVR |
BOOL |
NO |
RO |
超限信号 |
| RSP |
DINT |
NO |
RO |
响应时间 |
| ERR |
BOOL |
NO |
RO |
错误状态。TRUE:功能块出错 |
| STA |
INT |
NO |
RO |
功能块错误代码 |
| 定义对话框参数 |
|
|
|
|
| TONT |
INT |
YES |
RW |
超时 |
| RETRYS |
INT |
YES |
RW |
重试次数 |
| ADDR |
BYTE |
YES |
RW |
从站地址 |
| COILSTART |
WORD |
YES |
RW |
起始地址 |
| COILCNT |
WORD |
YES |
RW |
计数 |
| TAGNAME |
TEXT |
YES |
RW |
接口名称 |