发表于:2008-11-11 15:24:22
楼主
通讯程序设计在自动化系统的应用越来越广泛,例如plc与操作界面的数据交换,通过通讯对变频器的控制,PLC的连网等等。要想实现plc的通讯编程,首先所选的plc必须有强大的通讯能力,就是说plc的操作系统能够支持多种通讯格式,通常一种品牌的plc如果能够提供给用户更多的编程自由度,那么这种品牌的技术开发能力就越强大,大多数品牌只能提供固定格式的通讯格式或协议,这就大大局限了plc与其他智能设备的数据交换。
提供电脑与三菱(MITSUBISHI)、欧姆龙(OMRON)、基恩斯(KEYENCE)等品牌的可编程控制器(PLC)通讯的原代码和动态链接库(Active Dll)。
动态链接库使用简单方便可靠,函数齐全,可对PLC进行读、写各种元件的操作,不同的程序语言工具都可调用,下面以VB与三菱FX系列PLC通讯动态链接库说明其使用方法:
1.将本人所提供的名为‘COMFXPLC.dll’的动态链接库文件拷贝到VB的工程文件中;
2.在‘开始’- ‘运行’的‘打开’输入文本框内输入:“regsvr32” + 空格 +动态链接库文
件路径 + “COMFXPLC.dll”,然后点击‘确定’进行注册;
3.打开在VB的工程,从‘工程’- ‘引用’的组件下找到‘COMFXPLC’打勾,然后点击‘应用’;
4.在工程要调用的模块或过程中声明,如:‘Dim ABC As New FXPLC’ ;
5.在要调用的位置写如调用函数,如:DEF = DI_Read(1,0);
VB调用例程: ‘读取X000-X007的状态,用‘DI_Read’函数:
Sub ReadDIO()
Dim Obj As New FXPLC ‘
Dim a, b,ReadData As Integer
a = Combo1.ListIndex + 1 ‘调用参数1:通讯端口号码 ,如电脑的COM1连接的PLC,则参数1应为1
b = Val(Combo2.Text) ‘调用参数2:要读取的状态的字节 ,此时应为0
ReadData = Obj.DI_Read(a, b) ‘此时‘ReadData’就等于X000-X007输入状态的值
If ReadData >= 1000 Then MsgBox"通讯超时!" ‘如返回的是1000,则读取错误
End Sub