作者 | 主题 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
不欲勿施 奇侠 经验值:8121 发帖数:842 精华帖:14 |
楼主 2021-01-01 17:50:55
主题:西门子CM PtP RS422/485 BA 6ES7 540-1AB00-0AA0 实现MODBUS RTU主站通信 一、 概述 本文描述的程序文件可以在西门子CM PtP RS422/485 BA 6ES7540-1AB00-0AA0通信模块实现MODBUS RTU 主站通信。 本程序特点: 1. 实现MODBUS RTU 功能号1、2、3、4、5、6、15、16。 2. 支持单台CPU下多台通信模块,一台通信模块使用一套程序,互不干扰。 3. 可单条或多条 轮询指令 离线,即从站掉电,可手动让其离线,减少轮询时间。 4. 可控制每条指令间的时间间隔。 5. 程序量再大也不必担心CPU扫描时间,因为未运行的指令会跳过。 6. 每条指令单独返回错误信息。 7. 不必担心程序块和数据块多,支持多重背景。 8. 程序组态直观,简单,方便,灵活。 9. 指令内集成端口配置指令,发送和接收配置指令,外部只需简单参数即可。 10. 在冗余系统上使用通过。 二、 硬件网络施工 关于通信网络施工,尽量选择西门子485紫皮电缆,你胡弄网络,网络就胡弄你,所以质量可靠的硬件是保证通信正常的前提。若通信线路过长,请使用RS485中继器,但请不要西门子RS485中继器,因为不支持MODBUS通信。具体接线方式请查阅相关资料。 CM PtP RS422/485 BA接线图:下表显示了 CM PtP RS422/485 BA 前面板上 15 针 sub-D 型插槽的针脚分配。 三、 硬件组态 现以CM PtP RS422/485 BA为例进行硬件组态说明 1. 添加CM PtP RS422/485 BA到机架,如图: 2. 在CM PtP RS422/485 BA对象属性中配置485接口操作模式。 3. 端口组态:协议选择自由口。端口参数根据需要进行修改。注意:受到硬件模块限制传输率最高只能设置为:9600bits/s。 4. 帧结束检测设置。选择在字符延时时间到达后40位时间 (4ms)就完成报文 5. 记下这里的地址,编程时需要用到。 四、 程序说明及使用方法 1. 您得到的程序如图: 这是由TIA V16归档后文件,打开TIA V16后,打开此文件,会提示新建文件夹,恢复后会看到项目已经打开。 2. 程序工作原理 3. 程序块功能说明: MbusPointerDB1:用户数据块。可以是单个数据块,也可以是多个数据块。从站返回的数据保存在这个数据里,向从站写入的数据也在这个数据块里。 MbusBufferDB1:缓冲区数据块。一个缓冲区数据块对应一个串口。将要发送的数据在这里进行校验操作,接收回的数据同样在这里校验操作。 MBrtuMasterMsg:主站轮询指令功能块。可以单个块运行,也可以多个块轮流运行。根据输入参数决定把哪些用户数据放入缓冲区数据块,再将从站返回数据放回用户数据块。注意:同一时刻只允许一个主站轮询指令工作,否同返回06错误。 MBrtuMasterCrtl:主站通信控制功能块。一个通信控制功能块对应一个串口。主要功能为发送和接收与从站的通信的报文。 4. 功能块参数说明 MBrtuMasterCrtl MBTcpMasterCtrl
MBrtuMasterMsg
MbusBufferDB 缓冲区数据块是一个400(不可小于400)个字节数据块,可以复制,可改符号,可改绝对地址 MbusPointerDB 用户数据块用户可自行定义,无要求。 五、 程序注意 符号地址和绝对地址都可更改。 当功能号为5时,用户数据块的字节地址的第0位有效。 当功能号为1,2,15时,用户数据块的字节地址的从第0位开始有效。 程序无法在仿真器内工作。 六、 程序高级应用 1.当有多台从站执行相同操作时,如读取相同数据寄存器。这时可将指令的完成位连接到读写请求位,将从站地址和用户数据块字节号做成变量,使用完成位改变这两个变量,就可以实现单指令轮询多主站。 2.当用通信控制设备启停等操作时,或多从站时快速刷新单个从站数据时,要求响应时间快一些,而有些程序没有这方面考虑。本程序在应对此方面可以将单一轮询指令的激活位置真,其它指令置假(用上升沿,仅一个扫描即可),这时不管其它指令在什么状态都会将串口使用权让出,优先让激活的指令运行。
13478405725
|