自己想编写个简单的MODBUS-RTU通讯程序来读仪表,结果试了两天,不论是用仪表,还是ModSim32软件,都不能跳入接收完成中断,并且sm186.6=1,用ModSim32也有数据返回。仪表接的1号通讯口,电脑接的0号通讯口。哪位大神能看看咋回事吗。自己实在是想不明白了= =
图片说明:
最佳答案
哈哈,又是一个典型的错误。
一般在调用通讯参数时,空闲线时间、信息定时器用的是字类似的数据,而再调用通讯数量时,仍然习惯性的也用字类型的指令传送给SMB94。
注意!modbus通讯一次最大数为255个字节!使用这个传送只能用MOV_B指令。
提问者对于答案的评价:
真是太感谢了,修改后就成功了。当时查帮助手册的时候没细看,见smw90,smw92都是字类型,理所当然的smb94也选用了字类型。就是有一点还没明白,哪些情况下sm86.6=1,输入参数错误。难道是SMB86至smb94其中的参数输入不符合要求就会报这样的错误嘛?
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc370757.html