分享

ABBAC900F学习笔记189:Modbus通讯1

 知足常乐k2rrqy 2023-02-14 发布于山东
今天开始学习AC900F的Modbus通讯,这个在工作中也会遇到,这个学习主要参考《A_en_Freelance_Engineering_Communication_and_Fieldbusses》第四章第五章和《engineering manual system configuration》hardware章节。 modbus 通讯的联系需要实际硬件,模拟器里面就没法练习了。所以我得等到备件回来才可以实际动手做一下练习。前面先把基础知识学习记录一下。
Modbus主站可以使用的功能块列表如下:
功能块名字 功能块描述
MODM_DEV modbus串口主站接口配置
MODTCP_M modbus TCP(以太网)主站接口配置
MODM_VIEW modbus主站状态统计显示
MODM_R8C Modbus主站通讯读取8位线圈
MODM_R16C Modbus主站通讯读取16位线圈
MODM_W1C modbus主站通讯写1位线圈
MODM_W8C modbus主站通讯写8位线圈
MODM_W16C modbus主站通讯写16位线圈
MODM_R
1R
MODBUS主站读取1个寄存器
MODM_R8R MODBUS主站读取8个寄存器
MODM_R16R MODBUS主站读取16个寄存器
MODM_W1R MODBUS主站写1个寄存器
MODM_W8R MODBUS主站写8个寄存器
MODM_W16R MODBUS主站写16个寄存器
METOR 把位数和指数形式转换成实数形式
RTOME 把实数形式转换成尾数和指数
MODM_LBT 环路测试

modbus耦合主站
过程数据能够和其他系统通过freelance的串口或者TCP接口,使用modbus协议进行数据交换。此协议允许在主站或者从站进行数据传输。
能够使用modbus协议传输寄存器(WORD)或者线圈(BOOL)。在freelance,支持modbus指令代码01,02,03,04,05,06,08,15和16(古尔德,1985年1月发布,PI-MBUS_300 Rev.B)
数据传输可以选择RTU或者ASCII方式。RTU模式下数据吞吐量几乎是另一种的2倍。传输速率可以在600至38400波特率之间配置。依托freelance使用,物理上支持RS232或者RS485接线方式。包含一个主站在内,RS485总线上最多支持32个用户。冗余过程站两个CPU模板接入总线,就如同两个独立的用户,也就是说算成两个用户。关于链接的更多信息参见安装介绍。
注意:冗余控制系统过程站上modbus通讯的中断,对冗余切换无效,也就是说不会造成冗余切换。如果以太网接口收到通讯中断影响,仅会触发一条系统报警。
本章节中耦合描述,compact控制系统freelance扮演主站角色。关于modbus 从站耦合的信息在下一章节modbus从站描述。对于串口接口,在硬件结构精确配置一个MODM_DEV接口对象,在这个块定义接口特征参数。对于TCP(以太网)接口,在硬件结构精确配置一个MODTCP_M接口对象,在这个块定义接口特征参数。更多关于插入串口和以太网接口对象的信息,参考工程师手册-系统配置,硬件结构。主站通过分配给主站接口对象的读写功能块来读写从站的数据。每个modbus功能分配给功能块,这些功能块带有modbus功能号码。其账号相似,功能01、02、03、04被一个块隐藏(意思就是上述功能执行各自需要一个功能块,比如设置一次读取8个二进制线圈需要一个功能块MODM_R8C,设置一次读取16个二进制线圈需要另一个功能块MODM_R16C,以此类推,功能执行底层隐藏在相应块内)。单独一个块读取一个二进制线圈是无效的。单独的二进制线圈使用MODM_R8C来读取。
modbus 功能 描述 功能块
01,02 读取线圈 MODM_R8C,MODM_R16C
03,04 读取寄存器 MODM_R1R,MODM_R16R,MODM_R16R
05 写线圈 MODM_W1C
06 写寄存器 MODM_W1R
08 环路测试 MODM_LBT
15 写线圈 MODM_W8C ,MODM_W16C
此行空白 此行空白 此行空白

每一个modbus功能使用modbus报文来进行数据传输。modbus协议是问询/响应协议,每一个报文执行通讯监视。在每一个通讯块单独配置通讯监视参数。一个modbus保温里面只能是连续的寄存器(word)或者线圈(bool)地址。因此读写功能块链接的输入信号必须占用连续的寄存器或者线圈。为达到此目的,要在参数对话框输入起始地址和数据元素的数量。
警告:如果接口功能块的标签名做了修改,那么读写功能块里面“参考”不会自动修改。
当处理功能块或者modbus通讯发生错误,各自功能块的ERR会置为1,此外,输出STA会显示导致最近一次错误的错误代码。


提示:接口对象MODM_DEV和分配的静态块MODM_VIEW仅在接口本身发生错误时显示错误。IO变量可用于MODTCP_M接口对象的诊断。
数据传输中断对modbus协议接口功能没有影响。
内部modbus 错误
错误代码 接口上错误显示 R/W块上错误显示 错误原因
1 X X 接口无法初始化
2 X 太多的报文
3 X 协议错误:无响应
4 X 校验码错误
5 X 超时错误
6 X 其他错误
7 X 接收缓存区溢出
8 X X 以太网总线错误
9 X 报文作为加载过程站的结果被删除
10 X 冗余切换导致连接丢失
11 X X 接口分配
12 X X 通讯
模板EPROM版本错误
13 X 热启动导致连接丢失
14 X TCP连接中断。如果需要检查从站访问控制(MODTCP_S)
256 X 非法功能
512 X 非法数据地址
768 X 非法数据值
1024 X 关联设备错误
1280 X 确认
1536 X 忙,拒绝消息
此行为空白

为了避免一篇过长超过字数限制,这一篇暂时到此。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多