zhengf1989
级别: 略有小成
精华主题: 0
发帖数量: 142 个
工控威望: 273 点
下载积分: 686 分
在线时间: 486(小时)
注册时间: 2012-11-28
最后登录: 2024-11-11
查看zhengf1989的 主题 / 回贴
楼主  发表于: 2018-10-27 16:01
最近一直在研究通讯,突然感觉懂了一点,写写自己对于modbus 通讯的体会:
1.    经常听说的485,232,422,是指的是物理端口,modbus是通讯协议,也就是通讯的规则,就好象社会上有很多潜规则,服从这些规则才能混下去。
2.    modbus通讯分为主站和很多编了号的从站,例如主站对从站说,3号从站你家的第三个房间里住着谁?话音刚落,1号,2号,4号从站心里想:反正没有喊我,不关我的事,就通通装          死,3号从站听到后,回答说,我家的第三个房间里住着一条狗,这样一个通讯过程就完成了,跟主站读取从站某个寄存器的内容很类似。如果是广播命令,就是每个从站都要听着,不需要作出回答。
3.   通讯主要是通过 报文发送出去执行的。 地址+功能码。。。。。。西门子plc中有通讯库,三菱台达plc有通讯的方便指令,我通过串口调试工具测试,最终还是发出来标准的 报文,只是方便大家使用的。通讯的具体地址要看每种设备原件的厂家是怎样定义的,会应用就可以了。
4.   crc校验就是为了防止在通讯过程中会出现数据的丢失或者出错。就好象在生活中,甲对乙说:我还你5个硬币你数一数,乙收到钱后数了一下硬币,只有四个,乙就说你给的不对。
如果有能力用plc自己写个自由口通讯的块,或者单片机开发个通讯那就是大神了。
tingfenghu
级别: 工控侠客

精华主题: 0
发帖数量: 2845 个
工控威望: 3617 点
下载积分: 3517 分
在线时间: 3800(小时)
注册时间: 2007-11-04
最后登录: 2024-11-15
查看tingfenghu的 主题 / 回贴
1楼  发表于: 2018-10-28 12:14
单片机采用查询或者中断方式,
PLC就更加简单,
ASCII转换成ASCII再发送,校验加起来丢弃高位就可以。
CRC也没有多复杂,无非就逻辑运算加移位。

单片机资源比较紧张时,
有人用普通端口模拟串口使用。
二手PLC,触摸屏,伺服驱动,各类气动设备
http://shop58129605.taobao.com/