好吧,最后还是解决了,总结一下
我首先想联系温控仪厂商沟通一样,因为之前都是看操作手册和通讯手册,怀疑温控仪有特殊要求,不过没能联系上,在重看仪表手册时发现手册讲解的非常详细,感觉仪表方出错的不太可能,于是怀疑起FX2N-485BD能否使用MODBUS RTU协议通讯,官网上称协议选择中没有此协议,具体查看相应手册,于是又去查看485BD的手册,发现通道格式之类的写法存在错误的可能行不大,最后怀疑起MODBUS协议,最后查到RTU和ASC2的区别,最终成功
我因为网上的MODBUS协议案例多是ASC2模式的,RTU的很少,所以产生了一定的误区,虽然在寻找答案的时候绕了很大一个圈,不过还是很庆幸能做到了最后
目前我看到3个比较明显的错误:
1:RS指令 [RS D200 K18 D500 K16] 说明你要发送的数是18个,接受16个,实际上你没准备18个数发送。
2:不明白你是不是一个WORD的低8为(BYTE)有效?还是16位全有效?如果低8位有效的话,你应该设置 M8161=1。否则,你需要把你的数据串填满整个16位(整个字有效)
3:看你协议,应该是MUDBUS RTU模式,那样,你是不需要ASC的,直接按照16进制发送即可,也就是说,你发送D190开始的8个BYTE即可。你写ASC,HEX,对RTU模式来说,就把数据变幻错了
再查查MODBUS协议资料和FX 的RS指令资料,应该很顺利的。