S7-200 Modbus RTU 主站库 V2.1

相对上一版的更新:
1、初始化时可选择通讯口,更换端口不必先删除POU再添加新库子程序
2、每端口支持两种通讯控制方式,可以简化调试过程
3、字符间超时时间由固定值改为初始化化时参数给定
4、数据处理与收发完全分离,对于小项目可以不必调用MBUS_MSG
5、支持外部帧(见改善Modbus通讯效率),外部帧与参数调用方式无缝整合
6、外部帧额外支持功能码 22/23(位屏蔽/同时读写多寄存器)
 
另外为 ASCII 传输模式准备了 3 个子程序,用于 LRC 计算、ASCII 和 RTU 帧格式互转。
但因目前没有 ASCII 传输方面的需求,也无相关的从站设备测试,本库暂不支持ASCII传输模式通讯,但通过很少量的改造即可使本库同时支持RTU、ASCII两种传输模式。待有空时先写一个 ASCII 从站库用 S7-200 作从站升级测试。
 
 
免责声明:
 
本库可以自由使用,作者不承担相关责任。
 
两种通讯控制方式:
 
1、使用 RCV 以信息为单位接收,错误检验机制比较全面,程序相对复杂,用于处理数据量大的通讯需求。
初始化时 bWay 参数选择 0/1 即为此方式(分别对应通讯口 0/1)。
 
2、使用接收字符中断,此方式用到地特殊寄存器只有 SMB30/130,容易调试,但会加重 CPU 负担。推荐数据量小且波特率低时才使用。或用于调试通讯,采用此方式可以监视接收字符中断程序,如收不到任何字符,可以断定主从站双方通讯参数不匹配或外部接线故障。
初始化时 bWay 参数选择 2/3 即为此方式(分别对应通讯口 0/1)。
  
例程简介:
 
send1 最简应用示例
send2 多任务轮询示例
send3 不同的调用方式、多任务自动轮询、使用外部帧、如何生成外部帧示例
ASCII  三个ASCII 相关的子程序应用示例
详情参考代码注释
 
2009-06-25 BUG报告
使用外部帧广播时,填写外部帧中第一字节期待应答字节数(本应为0)不能小于6,否则 MBUS_MSG 会返回5号错误。
临时解决办法:期待应答字节数改为不小于6的值(MBUS_CTRL处理广播时,并不等待应答,所以这个值非0没有关系)
参数调用方式发送广播不受此BUG影响。

以下说明属本文之一部分:
  本文出自:醉书生杂记 [www.tuxw.cn]

  本站所有原创文章均遵循 [创作共用 Creative Commons] 协议
  如未特别说明,本站文章可以转载(非商业用途),须 保持完整 并注明出处。
回复回复zts[2009-05-13 09:39 AM | 59.108.122.179 : 北京市 方正宽带 | del]
下载试用了,非常好使,帮了我的大忙。比原来增加了端口指定功能,楼主编程非常规范,可见功底深厚,谢谢。
发表评论
昵 称: 虽然发表评论不用注册,但是为了保护您的发言权,建议您 注册帐号.
密 码: 游客发言不需要密码.
验证码: 验证码 注册用户不必输入. (停留时间较长时请点击图片刷新验证码再输入)
内 容:
字数限制:400 字 | UBB代码:开启 | [img]标签:关闭 
选 项: