设备站号为3,MODBUS RTU协议,端口参数:9600、8 N 1,需要读取设备40100-40120地址数据。
请选用任一PLC实现与该设备的通讯。
本周末结贴,9个最优回帖分别获得20MP、10MP、10MP、10MP、20积分、20积分、20积分、20积分、20积分!
MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。
MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换)。
使用siemen s7-200是不错的选择。
西门子S7-200在V4.0 SP5以上的软件就集成了modbus主站库,该主站库使用的自由口指令实现的,所以当串口调用了modbus库之后,该口在运行情况下就不能编程通讯了,必须拨模式开关让PLC处于停止状态。当然推荐使用2口的CPU,比如CPU224XP或CPU226。下面就是用CPU226来实现楼主的功能。
使用PORT0与3号设备相连;PORT1与PC相连,实现在线监视变量的读取。
1、CPU选择
各参数意义如下:
a EN 使能 必须保证每一扫描周期都能被使能(SM0.0)
b Mode 模式 为1是时,使能modbus协议功能,为0时恢复系统PPI协议
c Baud 波特率 ,选择9600,与要求相符
d Parity 校验 ,校验方式选择,0无校验(就是楼主的N),1奇校验, 2偶校验
e Timeout ,超时,主站等待从站响应的时间,单位是ms,典型是1000ms,允许设置的范围是1~32767。这个值设置合理才能确保响应。
f Done ,完成位,初始化完成,该位自动置1.这样就可以启动MBUS_MSG 读写操作
g Error ,初始化错误代码(只有在Done位为1时才有效)
Modbus Master 指令库需要一个284个字节的全局 V 存储区。
正在写一个AC800M的modbus通讯编程文档,可惜还没写完
对于MODBUS的通讯,最好有MODSACN 32之类的软件进行辅助调试
同时也可以买一个USB TO COM RS232/485的转换器,方便笔记本调试。
最后,讲一下地址40000开头的应该是HOLDING REGISTER ,属于读/写数据
如果地址是30000开头那么是INPUT REGISTER ,属于读数据。
0000开头的属于COIL 属于DO/DI 读写
10000开头的属于INPUT STATUS ,属于DI ,读数据。
-----------------------------------
另外光写一个程序的擂台一点意思都没有,很多新手看了还是不懂。
正如我当初写程序的时候,那个地址就折腾了好久,什么40100里面的4是功能码,地址从100开始。
而且有些PLC还有OFFSET, 地址给的是40100,却要从099开始读起,等等。
----------------------------------
Modbus RTU协议与S7-200:
S7-200 CPU上的通讯口Port0可以支持Modbus RTU协议,成为Modbus RTU从站。此功能是通过S7-200的自由口通讯模式实现,因此可以通过无线数据电台等慢速通讯设备传输。
如果想在S7-200 CPU与其他支持Modbus RTU的设备使用Modbus RTU协议通讯,需要由有S7-200 CPU做Modbus主站。S7-200 CPU做主站必须由用户自己用自由口模式,按相关协议编程。
在S7-200控制系统应用中,Modbus RTU从站指令库只支持CPU上的通讯0口(Port0)。要实现Modbus RTU通讯,需要Step7-Micro/WIN32 V3.2以上版本的编程软件,而且须安装Step7-Micro/WIN32 V3.2 Instruction Library(指令库)。Modbus RTU功能是通过指令库中预先编好的程序功能块实现的。