VB与海为PLC通讯源程序讲解 点击:2613 | 回复:12



海为

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:31帖 | 165回
  • 年度积分:0
  • 历史总积分:950
  • 注册:2006年11月11日
发表于:2008-02-22 14:01:00
楼主
    在做自动化工程项目时常常需要用上位机对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



liugang.org

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 305回
  • 年度积分:0
  • 历史总积分:511
  • 注册:2003年5月24日
发表于:2008-03-07 10:26:00
1楼
那这个封装的MODBUS协议是不是也能和别家的PLC进行MODBUS通迅啊?

youhm

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 709回
  • 年度积分:0
  • 历史总积分:2593
  • 注册:2005年2月16日
发表于:2008-03-07 11:22:00
2楼
我想应该可以支持其他PLC的MODBUS通讯

很好,支持了

海为

  • 精华:1帖
  • 求助:0帖
  • 帖子:31帖 | 165回
  • 年度积分:0
  • 历史总积分:950
  • 注册:2006年11月11日
发表于:2008-03-07 11:50:00
3楼
这个控件只支持海为PLC,因为它是以海为PLC的地址来转换为Modbus地址的,并且它会根据定义点的离散度自动使用Haiwellbus进行通讯以提高通讯效率,其他PLC不会支持Haiwellbus协议。

人生路

  • 精华:1帖
  • 求助:1帖
  • 帖子:29帖 | 202回
  • 年度积分:0
  • 历史总积分:1662
  • 注册:2005年9月13日
发表于:2008-11-04 17:21:50
4楼
这个控件在哪有?我想是有以下

海为

  • 精华:1帖
  • 求助:0帖
  • 帖子:31帖 | 165回
  • 年度积分:0
  • 历史总积分:950
  • 注册:2006年11月11日
发表于:2008-11-05 08:50:38
5楼

可以从海为网站www.haiwell.com 的"下载中心"下载

工控boy

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:115
  • 注册:2005年2月05日
发表于:2009-02-20 01:10:55
6楼

几乎无法使用,国产PLC的悲哀之处,处理不好通信问题

zmymessage

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 27回
  • 年度积分:1
  • 历史总积分:189
  • 注册:2008年1月04日
发表于:2009-04-10 16:04:13
7楼

楼上的这位大哥,你国产的用的过几个呀,想必也没用过海为的吧?海为的特点就是通讯强大.别说国内的不能比,国外的都达不到海为的通讯功能.

保留字符

  • 精华:0帖
  • 求助:0帖
  • 帖子:14帖 | 166回
  • 年度积分:0
  • 历史总积分:163
  • 注册:2008年8月02日
发表于:2009-06-04 14:07:45
8楼
感觉挺不错的,受教了!

flymanYL

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 9回
  • 年度积分:0
  • 历史总积分:106
  • 注册:2009年4月04日
发表于:2009-07-12 21:22:18
9楼

怎么没PLC端的程序呢?LZ能搞一个上来学习学习么?非常感谢!!

chinaplc

  • 精华:2帖
  • 求助:0帖
  • 帖子:15帖 | 322回
  • 年度积分:0
  • 历史总积分:1101
  • 注册:2000年12月01日
发表于:2009-07-13 08:41:18
10楼

海为PLC作为从机不需要写任何程序啊。。。。。。。

attfutte

  • 精华:0帖
  • 求助:0帖
  • 帖子:24帖 | 47回
  • 年度积分:0
  • 历史总积分:165
  • 注册:2002年3月17日
发表于:2012-11-22 20:51:46
11楼
有vc的程序没有,有的话提供下载点,谢谢。

wosth

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 84回
  • 年度积分:0
  • 历史总积分:122
  • 注册:2009年9月01日
发表于:2018-12-20 17:36:46
12楼

你好楼主!我正有个项目想用vb和你们的plc通讯  能不能给个联系方式


热门招聘
相关主题

官方公众号

智造工程师