| 作者 | 主题 |
|---|---|
|
驼铃6 游民 经验值:53 发帖数:30 精华帖:0 |
楼主
主题:CP340轮询时间问题
1台CP340通过RS422的方式轮询2台伺服驱动器,伺服驱动器的通讯协议为ASCII通讯,通讯速率设置9600,8个数据位,1个停止位,无奇偶校验,轮询轮询一周估计要多长时间
12
|
|
四书五经 侠圣 经验值:3667 发帖数:762 精华帖:58 |
楼
主题:回复:CP340轮询时间问题
上星期我也遇到了这样的问题,当时是自编的CP340 MODBUS SLAVE ,客户用MODSCAN 测试,用3号功能码,一次读10个字(40001-40009)没问题,但读20个字时出现问题了,最初是有超时帧,后来干脆就直接把超时了。当我把MODSCAN关掉的时候,CP340仍然在不停的发送数据。说明MODSCAN发送的查询帧太快了,CP340还没来得及响应,或者说CP340正在发送数据,MODSCAN又向CP340发送数据了,因为是半又工,这样肯定就出问题了。后来重新设置MODSCAN 从站响应时间和轮询时间就可以了。呵呵,客户一开始说是程序的问题,害的我还查了半天。
|
|
TB0806006 新手 经验值:33 发帖数:9 精华帖:1 |
楼
主题:回复:CP340轮询时间问题
既然是半双工,你可以控制收发,怎么会冲突?如果冲突 即是你程序处理的不好。
一般工程上先发,然后判断发送是否成功,发送成功后,就接收,校验完接收数据就判断接收是否成功,成功的话,继续发收,如果接收不成功,再发送,具体发送次数自己定义,也可以加定时器控制。超时即中断。然后再叫下一个站。 关键在数据格式上,保证字符间隔时间小于消息帧的时间即可以了,不会引起收发冲突的。 |