quote:以下是引用SHANGRILA在2012-05-03 17:47:08的发言:modbus的初始化程序和数据读写指令都要放在主程序中,对于需要使用子程序调用的读写指令,可以将读写程序放到子程序中,但子程序必须一直被调用(SM0.0),而子程序中的读写指令是否要被执行则要添加一个条件用于激活第一条读写指令,如果一台设备要读取的数据地址连续可以将COUNT值设置所有数据的总和,如一个数据是浮点型则COUNT=2,如果有10个数据则COUNT=20,这样就可以减少10条数据读取的时间和编程量。如果不通过SM0.0一直调用MB读取程序而是有选择的调用则可能出现问题。另外可以通过修改
modbus的参数mMobusRetries(请求重试的次数)来缩短程序的读写速度,一般次值为3次,及当通信失败后会重复发送三次读写指令,然后跳到下一跳,但最好不要修改。目前我在使用中没有发现问题。目前用CPU224XP与7台仪表进行通信,每个仪表读取8个参数。
请问你那个7台仪表的通讯是怎么写的?都写在主程序理还是用子程序调用?如果可以的话能发一份然我学一下吗?我现在是一台通讯可以,但是2台就不行了,也不知道怎么回事。邮箱:yzj6718@163.com