在iFIX中如何通过VBA编程实现RS485通讯?
最近有个网友遇到一个问题,现场有块仪表,采购的时候没有注意通讯协议。买到后发现仪表只支持RS485自由口协议。这样就不能用现有的Mb1驱动直接读数。需要自己开发程序。本文介绍了基于MScomm控件的串口通讯。
我们首先在iFIX后台添加一个窗体。选择窗体后。在菜单栏里找到“工具”。选择附加控件,向下滑动找到“Microsoft Communications Control version V6.0 SP”勾选上以后点击确定。然后你会发现工具箱多了一个电话一样的控件。将控件拖到窗体。
这时候发发现报错了。错误信息“对于指定的操作,该使用者不受信任”。出现这个问题的原因是windows的更新补丁限制了一些activex控件的使用。网上有很多解决办法。我这里操作的办法是:
第一:下载安装VB6.0企业版软件;
第二:安装VB6的SP6补丁,这个补丁可以独立下载安装。或者下载VB6.0的时候注意下载Visual Basic 6.0 SP6集成安装简体中文企业版。这个里面有SP6的补丁。直接安装就可以了。
第三:安装一个针对vb控件的更新包(Microsoft Visual Basic 6.0 Service Pack 6 Cumulative Update)。
以上三步完成后,再去拖拽MScomm控件,便可以使用了。
下面就可以编写通讯程序了。首先我们先查看仪表的通讯协议。我们看下发送的串行命令码包含哪些内容。我们这里以基恩士LS-7070激光测距传感器为例。
首先看通讯手册,设置串口参数,波特率:9600;数据长度:8;停止位:1;奇偶校验:无校验;如果读取仪表的测量值,需要发送的命令为“M q,r cr”。转换为16进制的话为:4D 71 2C 0D
编辑窗体的程序,如下:
这样便可以试着跟设备通讯了。当然这种方式仅仅是简单的实现通讯。如果想要持续、稳定的和设备保持长时间的通讯,还需要对上面的程序作出很多修改。
提交
新大陆自动识别精彩亮相2024华南国际工业博览会
派拓网络被Forrester评为XDR领域领导者
智能工控,存储强基 | 海康威视带来精彩主题演讲
展会|Lubeworks路博流体供料系统精彩亮相AMTS展会
中国联通首个量子通信产品“量子密信”亮相!