新浪博客

ABBAC900F学习笔记202:modbus通讯13

2022-04-05 07:53阅读:
接着学习技术文档,第四章4.8,读寄存器功能块。 读寄存器有3个功能块,分别是MODM_R1R、MODM_R8R、MODM_R16R,表示读1个寄存器、读8个寄存器、读16个寄存器。以读16个寄存器为例子,功能块外形是这样子的:
ABBAC900F学习笔记202:modbus通讯13
功能:读取WORD变量,由于MODM_R1R、MODM_R8R、MODM_R16R三个功能块参数配置都是类似的,所以后面的内容就用MODM_R16R为例子学习记录。
功能块通过freelance的串口或者TCP接口从外部读取数据,并转换成16为数据(freelance的WORD类型)。使用modbus协议功能码03和04.
功能码 03 读保持型寄存器 从外部系统模拟量卡存储区读取模拟量值
功能码 04 读输入寄存器 从外部系统模拟量通道上直接读取模拟量值

MODM_R1C、MODM_R8C、MODM_R16C不同之处在于它们的输出数量不一样。功能块MODM_R1C只能够接受和分配一个报文数据。功能块MODM_R8R最多8个,MODM_
R16R最多16个。
报文数据元素在输出端按照R01至R16有序输出用作freelance 系统进一步处理。如果输出NDR为0,则发送报文数据可用。该功能块无法像别的功能块那样可视化,也无法在freelance operation运行时进行操作。
ABBAC900F学习笔记202:modbus通讯13
优先级:选择1-5,或者“-”(没有系统信息)
提示:输入提示文本,和其他功能块一致。
信息文本:消息输出文本,直接输入或者从下拉列表框选择。
超时:设置等待响应的最大毫秒单位时间,范围0-9999,输入0表示没有超时。
重试:超时错误或者报文错误发生时,最大的重试次数,范围0-9.
接口:硬件组态时,在modbus通讯主站对象的名字。这个是必填项目。
自动请求:勾选表示自动请求模式,输入REQ不能切换。
不选表示未处理功能块,即没有输入REQ
涂黑表示没有自动请求,即REQ为1就开始。
MODBUS功能03或者04
从站地址:输入从站地址,范围0-247
寄存器地址:输入变量块寄存器地址。
单选项:保持型寄存器,modbus功能03传输数据,针对AO或者MW地址类型
单选项:输入寄存器,modbus功能04传输数据,针对AI地址数据
计数:输入报文中寄存器数量。对于MODM_R1R,此数为1,对于MODM_R8R此数最大为8,对于MODM_R16R此数最大为16.
功能块数据
名字 数据类型 配置 访问 注释
输入
EN BOOL YES RW 使能
TRUE:此功能块可以处理。
REQ BOOL YES RW TRUE:报文读写开始信息。
OUTPUTS
ENO BOOL NO RO 处理状态。TRUE:处理完成。
NDR BOOL NO RO 读报文的输入REQ信号
R01至R16 WORD NO RO FREELANCE 报文数据
OVR BOOL NO RO 超限。
RSP DINT NO RO 响应时间
ERR BOOL NO RO 错误状态。TRUE:功能块出现错误
STA INT NO RO 错误代码。
参数定义对话框
TOUT INT YES RW 超时时间设定
RETRYS INT YES RW 重试次数
ADDR BYTE YES RW 从站地址
FCODE INT YES RW modbus功能码。0-保持型寄存器;1-输入寄存器
COILSTART WORD YES RW 寄存器起始地址
COILCNT WORD YES RW 计数
TAGNAME TEXT YES RW 接口名字
AP TEXT YES RW 消息

我的更多文章

下载客户端阅读体验更佳

APP专享