国产PLC-VB与海为PLC通讯源程序讲解.doc_第1页
国产PLC-VB与海为PLC通讯源程序讲解.doc_第2页
国产PLC-VB与海为PLC通讯源程序讲解.doc_第3页
国产PLC-VB与海为PLC通讯源程序讲解.doc_第4页
国产PLC-VB与海为PLC通讯源程序讲解.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VB与海为PLC通讯源程序讲解作者:厦门海为科技有限公司在做自动化工程项目时常常需要用上位机对PLC进行监控,如果是大的工程项目可以使用组态软件来完成,但对中小项目为了节约成本,可以采用自己写上位机程序来完成对PLC的监控。海为提供了一个海为PLC的通讯控件,通过这个控件实现上位机与海为PLC之间的通讯十分方便,它封装了Modbus通讯协议和HaiwellBus协议,以点的形式实现对海为PLC的数据访问,对每个点可以定义它的名称/数据类型/小数长度/点注释等,不必去了解Modbus通讯协议和HaiwellBus协议的具体内容,只要有上位机编程经验就可以完成。海为PLC的通讯控件和例子源程序可以到海为网站(/download.asp)的“下载中心”下载。下面以VB为例介绍该控件的使用,新建一个VB工程,添加2个窗口如下图:窗口1的程序如下:Option Explicit启动跑马灯按钮Private Sub Command1_Click()启动跑马灯,M0置1,点序号30HWPLCComm1.HWPLCs(1).SetPointValue 30, 1EndSub停止跑马灯按钮Private Sub Command2_Click()停止跑马灯,M1置1,点序号31HWPLCComm1.HWPLCs(1).SetPointValue 31, 1EndSub启动采样按钮Private Sub Command3_Click()HWPLCComm1是海为PLC通讯控件名称,Timer1是画面刷新定时器HWPLCComm1.Run Not HWPLCComm1.RunFlagTimer1.Enabled = HWPLCComm1.RunFlagIf HWPLCComm1.RunFlag ThenCommand3.Caption = 停止采样Shape2.FillColor = vbGreen 采样指示灯绿色ElseCommand3.Caption = 启动采样Shape2.FillColor = vbWhite 采样指示灯红色End IfEndSub窗口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 15HWPLCComm1.HWPLCs(1).AddPoint y & i 增加采样点Y0-Y15Nexti在“1号PLC”下增加其他离散的采样点HWPLCComm1.HWPLCs(1).AddPoint sv0, , 当前扫描时间 单位0.1msHWPLCComm1.HWPLCs(1).AddPoint sv1, , 最小扫描时间 单位0.1msHWPLCComm1.HWPLCs(1).AddPoint sv2, , 最大扫描时间 单位0.1msHWPLCComm1.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, 星期HWPLCComm1.HWPLCs(1).AddPoint sm3, , 10ms时钟脉冲HWPLCComm1.HWPLCs(1).AddPoint sm4, , 100ms时钟脉冲HWPLCComm1.HWPLCs(1).AddPoint sm5, , 1s时钟脉冲HWPLCComm1.HWPLCs(1).AddPoint m0, Start, 跑马灯启动HWPLCComm1.HWPLCs(1).AddPoint m1, Stop, 跑马灯停止HWPLCComm1.HWPLCs(1).AddPoint v0HWPLCComm1.HWPLCs(1).AddPoint v2HWPLCComm1.HWPLCs(1).AddPoint v100, , 实数例子, REAL 实数类型为5HWPLCComm1.HWPLCs(1).AddPoint ccv50, , 32位计数器HWPLCComm1.HWPLCs(1).AddPoint ccv100, , 16位计数器将点加到Listview中显示, Y0-Y1516个点不加入,用指示灯来显示状态Dim Newitem As ListItemFor i = 17 ToHWPLCComm1.HWPLCs(1).PointCountSet Newitem = ListView1.ListItems.Add(, ,i)Newitem.SubItems(1) =HWPLCComm1.HWPLCs(1).iPoints(i).PointAddressNewitem.SubItems(2) =HWPLCComm1.HWPLCs(1).iPoints(i).PointNameNewitem.SubItems(4) =HWPLCComm1.HWPLCs(1).iPoints(i).PointNoteNext i将PLC地址和名称用标签显示Label3(0) = HWPLCComm1.HWPLCs(1).PLCAddressLabel3(1) = HWPLCComm1.HWPLCs(1).PLCName将16只指示灯的标签以点名称显示(Y0Y15)For i = 1 To 16Label1(i - 1) =HWPLCComm1.HWPLCs(1).iPoints(i).PointNameNext iEndSub双击列表中的点打开窗口2,对该点的值进行修改Private Sub ListView1_DblClick()Dim i As LongIf Not ListView1.SelectedItem Is NothingTheni = ListView1.SelectedItem.Index + 16Form2.vPointIndex = iForm2.Caption = 写入值 &HWPLCComm1.HWPLCs(1).iPoints(i).PointNameForm2.Label1.Caption = 写入值 &HWPLCComm1.HWPLCs(1).iPoints(i).PointName & :Form2.Text1 =HWPLCComm1.HWPLCs(1).iPoints(i).PointValueForm2.Show 1End IfEndSubTimer1是画面刷新定时器Private Sub Timer1_Timer()刷新值Dim i As Long刷新Y0-Y15值For i = 1 To 16If HWPLCComm1.HWPLCs(1).iPoints(i).PointValue = 1ThenShape1(i - 1).FillColor = vbRed 值=1,为真ElseShape1(i - 1).FillColor = vbWhite 值=0,为假End IfNext i刷新其他点值For i = 17 ToHWPLCComm1.HWPLCs(1).PointCountListView1.ListItems(i - 16).SubItems(3) =HWPLCComm1.HWPLCs(1).iPoints(i).PointValueNext iEndSub窗口2的程序如下:Option ExplicitPublic vPointIndex As Long 公共变量,存储被双击点的序号确定按钮Private Sub Command1_Click()If Text1.Text = Then Exit Sub按确定,则写入点的值Form1.HWPLCComm1.HWPLCs(1).SetPointValue vPointIndex,Text1.TextUnload MeEndSub取消按钮Private Sub Command2_Click()Unload MeE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论