在做自动化工程项目时常常需要用上位机对PLC进行监控,如果是大的工程项目可以使用组态软件来完成,但对中小项目为了节约成本,可以采用自己写上位机程序来完成对PLC的监控。
海为提供了一个海为PLC的通讯控件,通过这个控件实现上位机与海为PLC之间的通讯十分方便,它封装了Modbus通讯协议和HaiwellBus协议,以点的形式实现对海为PLC的数据访问,对每个点可以定义它的名称/数据类型/小数长度/点注释等,不必去了解Modbus通讯协议和HaiwellBus协议的具体内容,只要有上位机编程经验就可以完成。
海为PLC的通讯控件和例子源程序可以到海为网站(http://www.haiwell.com/download.asp)的“下载中心”下载。
下面以VB为例介绍该控件的使用,新建一个VB工程,添加2个窗口如下图:
窗口1的程序如下:
Option Explicit
'启动跑马灯按钮
Private Sub Command1_Click()
'启动跑马灯,M0置1,点序号30
HWPLCComm1.HWPLCs(1).SetPointValue 30, 1
End Sub
'停止跑马灯按钮
Private Sub Command2_Click()
'停止跑马灯,M1置1,点序号31
HWPLCComm1.HWPLCs(1).SetPointValue 31, 1
End Sub
'启动采样按钮
Private Sub Command3_Click()
' HWPLCComm1是海为PLC通讯控件名称,Timer1是画面刷新定时器
HWPLCComm1.Run Not HWPLCComm1.RunFlag
Timer1.Enabled = HWPLCComm1.RunFlag
If HWPLCComm1.RunFlag Then
Command3.Caption = "停止采样"
Shape2.FillColor = vbGreen ‘采样指示灯绿色
Else
Command3.Caption = "启动采样"
Shape2.FillColor = vbWhite ‘采样指示灯红色
End If
End Sub
'窗口1装载
Private Sub Form_Load()
Dim i As Long
'添加1台PLC,PLC地址为1,名称为“1号PLC”
HWPLCComm1.HWPLCs.AddPLC 1, "1号PLC"
'在“1号PLC”下增加采样点
For i = 0 To 15
HWPLCComm1.HWPLCs(1).AddPoint "y" & i '增加采样点Y0-Y15
Next i
'在“1号PLC”下增加其他离散的采样点
HWPLCComm1.HWPLCs(1).AddPoint "sv0", , "当前扫描时间 单位0.1ms"
HWPLCComm1.HWPLCs(1).AddPoint "sv1", , "最小扫描时间 单位0.1ms"
HWPLCComm1.HWPLCs(1).AddPoint "sv2", , "最大扫描时间 单位0.1ms"
HWPLCComm1.HWPLCs(1).AddPoint "sv12", "Year", "年"
HWPLCComm1.HWPLCs(1).AddPoint "sv13", "Month", "月"
HWPLCComm1.HWPLCs(1).AddPoint "sv14", "Day", "日"
HWPLCComm1.HWPLCs(1).AddPoint "sv15", "Hour", "时"
HWPLCComm1.HWPLCs(1).AddPoint "sv16", "Minute", "分"
HWPLCComm1.HWPLCs(1).AddPoint "sv17", "Second", "秒"
HWPLCComm1.HWPLCs(1).AddPoint "sv18", "Week", "星期"
&nb