今天下午自动化的赵工讲解了iFIX5.1的编程初步,但收获挺大的。
经过摸索,可以通过编程来随意控制读写。
具体实现过程:
⒈ 建立连接,通过“Topic Configuration...”,就是建立与具体模块的连接,还可以用别名连接;
注意:一定要选对具体的模块。
⒉ 配置OPC,当然也可以是专有的协议;可以是本地的,也可以是远程的(即别人的,也可是上位机);
没有的话就新建:
⒊ 配置OPC里面的具体连接,注意三点:
① 别忘记使能;
② 点击编辑可以编辑具体的ITEM,点击查看可以判断ITEM是否正常;
③ 注意选择启用输出(输入变量可以这么选)。
⒋ 在主界面下先进行“系统配置应用”,然后是“数据库管理器”,下面就可以定制画面和编程了。
⒌ 数据库管理器,用于将定义好的模块接口添加引用,分为输入变量、输出变量。
上面是配置变量的界面,下面是具体定义画面:
注意要关联到具体的模块下的输入和输出。
选择“启用输出”后就可以读写一起进行。
界面下支持的种类,我使用了“数据链接”、“按钮”、“文本”、“OLE对象”,其他的位图可以添加图片作为装饰、定义变量等等。
程序比较简单,支持VBScipt语言,我使用的是OLE控件来获取键盘输入。
Private Sub CommandButton2_Click()
'写,解除报警
writeValue 1, "Fix32.TEST_DI.F_CV"
End Sub
Private Sub CommandButton1_Click()
'写,报警
writeValue 0, "Fix32.TEST_DI.F_CV"
End Sub
Private Sub CommandButton3_Click()
'写,将文本框的值转换后写入七号模块
writeValue Val(TextBox1.Text), "Fix32.TESTIII.F_CV"
End Sub
Private Sub DataLink1_Click()
'写,将文本框的值转换后写入七号模块
'writeValue Val(DataLink1.Caption) + 12, "Fix32.TESTIII.F_CV"
writeValue Val(TextBox1.Text), "Fix32.TESTIII.F_CV"
End Sub
ReadValue是读数据。
可以直接取值,比如:TextBox1.text=Fix32.TESTIII.F_CV。(TESTIII是变量名)
注意位操作,比如:7号模块(4个输入是一组)的3号位是报警位,即3号位为1就报警,那么输入4即可报警,4在二进制里是0100,输入其他值也可以,只要保证3号位为1就行。
今天还是比较有收获的,了解了自动化的上位机和下位机的编程,都可以通过代码来自如控制现场的设备。
RSLogix5000针对现场器件进行编程,主要通过梯形图和代码的方式。
iFIX针对现场器件进行编程,主要通过各种画面和代码(VBA)的方式,更丰富,比如可以在VBA里面进行API的调用来完成一些有点难度的想法、应用其他语言编写的OCX控件等等。