PLC:1215C DC/DC/DC
| 通讯模块CM1421 (rs422/rs485)
| 大寰机器人夹爪(型号忘了)
使用modbus通讯使夹爪初始化(第一步,后续基本基于这条)
程序写得不够标准,但能用,只是简单示意:
以上就是我主要的程序块,但触发写得不够好,因为只是简单调试,没有考虑使用;
status
为word数据,包括data_ptr;而且命名规则应以数据块意义命名再写该下应有数据,并且类型为struct关于MB_MASTER
这里主要遇到问题是区分读取和写入而切换mode状态,在这里应该参考西门子F1说明书中表格:
在本次编写中主要遇到问题忘了将mode切换0于1,而思考半天为啥不能修改初始化值,而在切换1之后才可以;因为我们本次主要用到的modbus功能地址是03读取和06写入,这两个的地址范围都在40001-49999和400001-465535,我们要根据自己所使用从站(我这里是夹爪)来计算地址为多少,在这里夹爪的初始化地址为十进制的256,如果为十六进制则需要换成十进制,我们这里需要将它与40001相加,得到modbus能识别到的地址40257,如果从站地址过于大可以与400001相加
我主要读取status状态值,我遇到的报错如下8180
,在这里8180提示的情况下,如果你确定modbus初始化的从站地址269是否为cm1241地址,如果是,请你检查组态是否出现问题,或重新删除cm1241的情况下重新将其组态,即可正常解决问题818B
,这个提示主要是告知你data_len的字节大小不正确818C
,这个主要是DB块的问题,在新版博图上需要在其DB块属性中关闭块优化,旧版博图则需要在创建DB时,将其兼容xx打勾
话外:如果状态长期busy,可能是你这个俩指令块的触发方式不是上升沿的问题,具体问题具体再分析,只是简单提一下
如果有不对的地方请在评论区指正
青益
并不是哦
2024年06月17日 20:45
回复
bertwaver
是玩嵌入式的大佬qwq
2024年06月11日 23:55
回复
Huo
你这个就很厉害呢,会写通讯协议。
2024年04月18日 23:42
回复
青益
哈哈哈哈,只是运用学习
2024年05月05日 01:25
回复
青益
我已经基本写完了,我要用的程序,但还是不能太能理解地址这方面的东西
2024年03月22日 10:51
回复