一个串口双线程循环如何顺序发送命令

2019-07-18 02:44发布

在一个485串口中有多个仪器需要通讯,如何实现在两个循环线程对一个串口进行发送命令?比如,在一个主循环中定时查询一个仪器的参数,当这个参数超过某个值时,通知另一个次循环,对同一串口中的另 一个仪器开启一个动作,现在的问题是主循环一直占用了串口,次循环就没有办法进行发送指令操作了。这种情况该怎么做呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
imcu2007
2019-07-18 07:09
楼主,你的485总线确定配置好可以同时和各台仪表通信了么?
1.你可以使用USB-485的转换器通过串口调试助手和仪表通信,测试RS485的网络是否可以用
因为RS485网络的寻址应该是通过仪表本身的控制命令是否带有地址码,RS485主设备向外广播。
为什么我这么提问,因为一般RS485总线使用都是通过MODBU来和多台通讯,我是想确认一下楼主的方案是否可行。

2,关于问题,通讯的时候,串口初始化打开后,就不要关闭,把串口的VISA资源放入移位寄存器中,供不同的状态机使用,是不会冲突的。好的程序框架式成功的要素。

遇到这种案子,建议用串口卡或者GPIB通讯,串口卡一对一,GPIB可以总线寻址。

评分

参与人数 1威望 +2 +19 积分 +19 收起 理由 sushu + 2 + 19 + 19 善用状态机。很实用。

查看全部评分

一周热门 更多>