开封仪表有限公司,河南 开封 475000
摘 要:随着工业控制领域的慢慢发展,数据交互技术应用越来越广泛,在不断提高工业控制的智能化的同时也为了减少人力和提高工作效率,实现数据的实时控制与传输,本设计可以通过调用DLL文件实现电脑端与PLC端的数据共享,DLL文件称为动态链接库文件,它允许变量共享或共享特殊的执行任务。
关键词: Visual Basic Smart200 DLL动态链接库 TCP/IP网络传输
0 引言
当前仪表的自动化被应用到更多的工业领域,为解决上位机电脑控制端与下位机PLC端实时传输较大的数据量信息与数据的共享、交互等需求,提出调用DLL动态链接库的方法,本方法使用简单、方便、快捷,调用动态链接库不需要PLC端内部编写大量的程序代码只需要Visual Basic开发平台中调用DLL动态链接库中的特殊函数即可使用。
1 系统组成
Smart200控制器
下位机采用Smart200系列控制器,CPU的计算和处理速度快,控制指令比较丰富,此款CPU具有较多的输入控制点(DI)/输出控制点(DQ)、执行指令响应快,具有4路200KHz高速计数器适应于实时性比较高的数据采集场合;通讯能力强,可连接RS485等通讯设备,可靠性高。
DLL动态库函数
由于DLL动态链接库文件中的函数非常多,这里以西门子Smart200的网口通讯为例,把主要的(API)函数调用列举出来并说明函数调用方法及功能介绍;
1.2.1 首先必须先声明(API)函数:
Public Declare Function Cli_Create Lib "Snap7.dll" () As Long
Public Declare Function Cli_ConnectTo Lib "Snap7.dll" (ByVal Client As Long, ByVal Address As String, ByVal Rack As Long, ByVal Slot As Long) As Long
’声明Ethernet链接函数
Public Declare Function Cli_MBRead Lib "Snap7.dll" (ByVal Client As Long, ByVal Start As Long, ByVal Sizet As Long, ByVal Buffer As Long) As Long
’声明读PLC中M存储器函数
Public Declare Function Cli_MBWrite Lib "Snap7.dll" (ByVal Client As Long, ByVal Start As Long, ByVal Sizet As Long, ByVal Buffer As Long) As Long
’声明写PLC中M内部存储器函数
1.2.2 链接函数说明:
Client = Cli_Create()’创建网络链接
result = Cli_SetConnectionParams(Client, "192.168.2.1" + Chr$(0), &H200, &H200)’设置PLC的IP地址
result = Cli_Connect(Client) '链接客户端
Visual Basic 上位机软件开发平台
上位机利用Vsual Basic软件开发平台,此款高级编程软件是目前使用最广泛的软件开发语言之一,是开发效率很高,功能很强大的一种可视化、面向对象和采用事件驱动方式的结构化高级程序设计语言,可以充分的调用Windows系统中的应用程序接口(API)函数、动态链接库(DLL)等技术,并且可以高效、快速地运行于Windows环境下,强大的功能开发和丰富的图形界面的应用软件。
2 系统设计说明
系统结构框图如图1所示,具体功能以启、保、停控制电路为例来说明,系统控制流程图如图2所示。
图1 结构框图 图2 控制系统程序流程图
Fig.1 structure diagram Fig.2 Control system program flow chart
3 控制程序编写过程
3.1 下位机控制器Smart200程序设计
将电脑IP地址设置成与PLC同一个网关,如:192.168.2.5格式,打开STEP 7-MicroWIN SMART编程软件,点击通信设置,选择查找设备,找到设备时编写控制程序并下载到PLC。
3.2 上位机Visual Basic程序设计
Private Sub Timer1_Timer()’定时器程序
Dim result As Long
result = Cli_MBRead(Client, 1, 1, VarPtr(Buffer(0)))
If Buffer(0) = 1 Then
Shape1.BackColor = &HC0C0C0 ’指示灯亮
ElseIf Buffer(0) = 0 Then
Shape1.BackColor = &HFF00& ’指示灯灭
Else
Shape1.BackColor = &HFF00& ’状态灯灭
End If
End Sub
Private Sub Command1_Click()’写入数据参数
Dim result As Long
result = Cli_MBWrite(Client, 0, 1, VarPtr(1))
End Sub
Private Sub Command2_Click()
Dim result As Long
result = Cli_MBWrite(Client, 0, 1, VarPtr(0))
End Sub
Private Sub Command3_Click()’按下写停止命令
Dim result As Long
result = Cli_MBWrite(Client, 0, 1, VarPtr(2))
End Sub
4 结束
本设计详细的介绍了一种工业控制中经常使用上位机电脑端与下位机PLC端的数据交互功能,并且通过调用DLL动态链接库的方法实现Smart200与Visual Basic数据的交互,整体已经通过了测试,传输稳定、可靠,实现起来比较方便、快捷。
参考文献
[ 1 ] 王阿根编著.“西门子S7-200PLC编程实例精解”—北京:电子工业出版社,2011.11(工控技术精品丛书)
作者简介:王宝成(1989年12-) 男 吉林省 汉 本科 助理工程师 开封仪表有限公司 研究方向:电子