串口属性设置_Labview串口资源浪费解析

  什么是串口:

        串行接口是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信,从而大大降低了成本,特别适用于远距离通信,但传送速度比较慢。而一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯接口,串行通讯接口的特点是:数据位的传送,按位顺序进行,最少只需一根传输线即可完成,成本低但传送速度慢。

            我们使用串口通讯时候通常使用VISA,由于在VISA第三方资源问题,Labview连续不断地查询串口直到串口接收到数据为止。这增加了处理器和资源占用,导致程序汇总其他循环不能流畅地运行。我们应该如何防止Labview连续不断地查询串口呢?

            可以通过VISA事件编程来解决,通过VISAEnableEvent这个vi来解决,当串口接收到字符串的时候,VISA会产生一个事件,在While循环中,我们可以在VISA Read 函数只有在端口上有数据的时候才会被执行。通过制定待读取的字这些函数可以在Labview函数选版中找到。

ca50c84eca7da38cd75b45ae4844bcc4.png

通过VISA配置串口VI配置串口。然后通过VISA启用事件和VISA放弃事件函数配置Serial-Break事件。在While循环中使用VISA等待事件函数等待事件发生。 

事件处理选板上的VI和函数用于处理VISA事件。如需处理VISA事件,必须对VISA启用事件函数启用事件队列机制。队列与单个会话和事件类型对应,所以必须对处理事件的每个会话启用队列机制。

通过VISA等待事件函数可以从队列中获取事件。如发生了指定类型的事件,都将立即调用“VISA等待事件”返回事件,与超时参数的值无关。

还可通过“VISA等待事件”等待当前不在队列中的事件。“VISA等待事件”函数将在超时或要等待的事件到达后停止执行。应当为当前不在队列中的事件设置合理的等待时间

VISA等待事件”函数返回一个事件时,调用等待操作的会话句柄所在的事件队列中将不再包含返回的事件。但是,如其它VISA会话中已经启用事件队列,事件将停留在队列中直至它被提取出来。

通过VISA禁用事件函数可禁用某个VISA会话的事件队列。调用该函数时,会话的队列中将不会加入其它事件。队列中将保留已有的事件。用户可以决定提取或放弃这些事件。通过“VISA等待事件”函数可获取所需事件。通过VISA放弃事件函数可放弃事件。

VISA事件队列的默认长度为50。如队列已满而仍有新事件到达,新的事件将被放弃。VISA中的事件队列不会动态增长,但是用户可以通过General Settings:Maximum Queue Length属性以编程方式改变事件队列的长度。如需更改某个对话的事件队列长度,必须在调用“VISA启用事件”前进行该操作。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值