quote:以下是引用妍妍在2009-09-22 10:32:21的发言:
这是你的轮询程序有问题!
估计是你的从站返回有点慢造成混乱,把定时脉冲设置长点
脉冲时间设置的是1s,最长了吧,并且现在收不到第一个变送器的数据了,2个接收数据块里的数据都是第1个变送器传来的,是不是第二个接收数据块被覆盖了呢?还是第二个发送指令根本就没触发?不能用第一个接收完成位触发REQ呢?
1s未必适合?我做过最慢的仪表通讯,超时设定为3s!
你可以用pc机连接上仪表运行串行模拟器软件,看发送和接收报文的时间(软件里面有时间标签的,减下),算算一个来回要多少时间就清楚了
程序的顺序要处理好,一个发送和接收完成,再来第二个。所以你现在用的定时时间很重要,一定要大于一个发送+接收的时间。