最先还是那句老话,我也想把这帖子写好,但是资料太过庞杂,有疏漏加我微信提醒我,有需要交流的加我微信。我的微信we9322025,上面的内容参考福达新创的《DX2000快速入门手册》,附件为modbus的相关程序。
之前帖子链接:
modbus新起点1--基础篇:http://bbs.gongkong.com/d/201807/764982_1.shtml
modbus新起点连载2--modbus台达篇:http://bbs.gongkong.com/d/201807/765040_1.shtml
modbus的新起点连载3——台达PLC的modbus主站:http://bbs.gongkong.com/d/201807/765110_1.shtml
modbus新起点连载4--台达PLC以太网的数据交换:http://bbs.gongkong.com/D/201807/765957_1.shtml
modbus新起点连载5--台达PLC的modbusTCP客户端程序:http://bbs.gongkong.com/D/201807/765961_1.shtml
modbus新起点连载6——西门子200的modbusRTU: http://bbs.gongkong.com/D/201807/766167_1.shtml
西门子S7-200 modbus RTU由于西门子的软件安装有问题,考虑到西门子S7-200的modbus程序和smart s7-200的程序差异不大,所以在这先不讲写s7-200的modbus程序。
西门子smart S7-200 mdobus RTU 的使用介绍
西门子smart S7-200 mdobus RTU例子中使用的软件为STEP 7-Micro-WIN SmartV2.03的版本。其自带的modbus库文件如下:
在做RTU的测试之前要先了解一下Smart S7-200的PPI接口定义。其PPI本质上是一个RS485接口。引脚定义如下:
西门子smart PLC的RTU slave功能
先编写如下程序:
PS:具体函数引脚的定义可以查一下帮助。在这里设置波特率为9600,8,E,1。
如果没有分配库存储区的话,那么可能提示错误如下:
其中存储器分配地址尽量用没有分配的地址。在这里选择VB2000保存后下载到PLC。
打开modbus poll
完美通讯上
后面来测试modbus地址定义03功能码:(地址对应关系大家自己总结一下)
02的功能码
01功能码
西门子smart PLC的RTU Master功能
编写程序如下:
PS:具体管脚参数参看下一指令帮助按上一节中所示,分配下存储区。
然后把程序下载到PLC。
打开modbus slave设置参数如下:
并肩监控值改为并把slave设置到01的及监控区域。得到的监控日志如下:
参照基础篇中的modbus RTU的01功能码报文。