我刚开始学串口通信,我想请问一下各位大神,我要用一个串口同时控制12台串联的气体流量计,每台流量计的机器号都不一样,因为要实现在一个界面去同时控制所有流量计的读写操作,用的RS485协议,我把每一台机器的读操作都放在顺序平铺结构里面了,然后前面板就是一次只能读一台机器的流量,此时如果我要执行写操作,比如写设定流量值的大小,我就只能在读相邻机器的流量之间加一个时间延时,这样程序就会非常难用,通常要点好几次才能将写操作指令顺利传输进去,我想求助各位大佬,碰到这种很多台相同的仪器需要串联一个串口通信,同时又要实现可以每台单独读写的操作,这种labview算法该怎么去设计呢?
附一个我自己写的程序图
最上面的平铺结构是12个机器的读操作,一台一台读,性能很差


这是程序的源代码
*附件:S600-BR223MB-2(1).zip
该怎么去优化这些功能呢?
1
举报
你用的同一个串口,只不过设备地址不同。
对于读取,看样子,你是要实时监测,放在一个循环里一直读取倒是可行,但是,对单独的设备地址,可以简化一下,你现在是读两次,可以读一次,多读几个寄存器位,然后数据处理一下,得到你要的信息,这样,读取部分的串口操作次数可以减少一倍。
对于数据写入,你用一个循环就行,用个状态机,不同的事件操作与相应的设备地址关联好就行,如,设备地址01,前面板的三个按钮事件写入的命令,全部用01,其他的也是一样的。
这样,最后你就剩两个循环。循环外配置串口信息,一个循环用来监视设备的状态,一个循环用来控制设备的运行。
2
举报
更多回帖