发表于:2001-10-13 09:13:00
1楼
我不知道你的那个SNP是一个什么样的协议,但是我使用过VB写串口轮讯的程序。给我的经验是串口轮讯通讯受五方面的因素制约:
1、串口的通讯速率和通讯方式(全双工还是半双工),但是这些受下位机的通讯条件制约。我认为只要传输的数据量不是很大的情况下,这个不是主要的因素。
2、下位机终端在接收到上位机的指令后到应答这一过程的反应时间,这个受下位机处理数据的速度和其硬件电路的特性决定。这个影响的比较大。
3、轮讯设备的数量,下位机越多,就意味着整个系统的轮讯一遍的时间更长。
4、SNP协议对下位机在没有应答情况下的处理。我曾使用过的是,在下位机无应答时,我需要进行重复呼叫,直至三次都没有应答时我才能呼叫下一个的设备。这样无形中是增加了整个系统轮讯一遍的周期。
5、上位机轮讯程序的设计。尽可能的采用多线程技术控制串口和进可能的不在该程序中处理数据而是让其他的程序来完成数据转换和存储工作,以及其他一些技术减少上位机因处理数据而造成的时间延长。
上述5点仅仅是我个人的一些经验,但是对于不同的应用环境不一定能产生明显的效果,希望与大家交流。