厦门海为科技有限公司 - 工业物联网|国产PLC|HMI|SCADA

廈門(mén)海為科技有限公司

請(qǐng)上傳logo 請(qǐng)上傳logo

國(guó)產(chǎn)PLC—Haiwell(海為)PLC與VB通訊源程序講解

2008-05-07 11:09:14 haiwell 989

在做自動(dòng)化工程項(xiàng)目時(shí)常常需要用上位機(jī)對(duì)PLC進(jìn)行監(jiān)控,如果是大的工程項(xiàng)目可以使用組態(tài)軟件來(lái)完成,但對(duì)中小項(xiàng)目為了節(jié)約成本,可以采用自己寫(xiě)上位機(jī)程序來(lái)完成對(duì)PLC的監(jiān)控。


海為提供了一個(gè)海為PLC的通訊控件,通過(guò)這個(gè)控件實(shí)現(xiàn)上位機(jī)與海為PLC之間的通訊十分方便,它封裝了Modbus通訊協(xié)議和HaiwellBus協(xié)議,以點(diǎn)的形式實(shí)現(xiàn)對(duì)海為PLC的數(shù)據(jù)訪問(wèn),對(duì)每個(gè)點(diǎn)可以定義它的名稱(chēng)/數(shù)據(jù)類(lèi)型/小數(shù)長(zhǎng)度/點(diǎn)注釋等,不必去了解Modbus通訊協(xié)議和HaiwellBus協(xié)議的具體內(nèi)容,只要有上位機(jī)編程經(jīng)驗(yàn)就可以完成。

海為PLC的通訊控件和例子源程序可以到海為網(wǎng)站(http://www.m.hzcjl.com/download.asp)的“下載中心”下載。

 

下面以VB為例介紹該控件的使用,新建一個(gè)VB工程,添加2個(gè)窗口:

lQLPJxaJeo9MmU3NATLNAjCwLOMkAFDexwEC4k-9_sAnAA_560_306.png


lQLPJxaJeo9MmT_M2M0BdLAEmitl4IqTugLiT74KgNIA_372_216.png


窗口1的程序如下:

Option Explicit

'啟動(dòng)跑馬燈按鈕

Private Sub Command1_Click()

    '啟動(dòng)跑馬燈,M0置1,點(diǎn)序號(hào)30

    HWPLCComm1.HWPLCs(1).SetPointValue 30, 1

End Sub

'停止跑馬燈按鈕

Private Sub Command2_Click()

    '停止跑馬燈,M1置1,點(diǎn)序號(hào)31

    HWPLCComm1.HWPLCs(1).SetPointValue 31, 1

End Sub

'啟動(dòng)采樣按鈕

Private Sub Command3_Click()

' HWPLCComm1是海為PLC通訊控件名稱(chēng),Timer1是畫(huà)面刷新定時(shí)器

    HWPLCComm1.Run Not HWPLCComm1.RunFlag

    Timer1.Enabled = HWPLCComm1.RunFlag

    If HWPLCComm1.RunFlag Then

        Command3.Caption = "停止采樣"

        Shape2.FillColor = vbGreen ‘采樣指示燈綠色

    Else

        Command3.Caption = "啟動(dòng)采樣"

        Shape2.FillColor = vbWhite ‘采樣指示燈紅色

    End If

End Sub

'窗口1裝載

Private Sub Form_Load()

    Dim i As Long

    '添加1臺(tái)PLC,PLC地址為1,名稱(chēng)為“1號(hào)PLC”

    HWPLCComm1.HWPLCs.AddPLC 1, "1號(hào)PLC"

    '在“1號(hào)PLC”下增加采樣點(diǎn)

    For i = 0 To 15

        HWPLCComm1.HWPLCs(1).AddPoint "y" & i '增加采樣點(diǎn)Y0-Y15

Next i

'在“1號(hào)PLC”下增加其他離散的采樣點(diǎn)

    HWPLCComm1.HWPLCs(1).AddPoint "sv0", , "當(dāng)前掃描時(shí)間 單位0.1ms"

    HWPLCComm1.HWPLCs(1).AddPoint "sv1", , "最小掃描時(shí)間 單位0.1ms"

    HWPLCComm1.HWPLCs(1).AddPoint "sv2", , "最大掃描時(shí)間 單位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", "時(shí)"

    HWPLCComm1.HWPLCs(1).AddPoint "sv16", "Minute", "分"

    HWPLCComm1.HWPLCs(1).AddPoint "sv17", "Second", "秒"

    HWPLCComm1.HWPLCs(1).AddPoint "sv18", "Week", "星期"

    HWPLCComm1.HWPLCs(1).AddPoint "sm3", , "10ms時(shí)鐘脈沖"

    HWPLCComm1.HWPLCs(1).AddPoint "sm4", , "100ms時(shí)鐘脈沖"

    HWPLCComm1.HWPLCs(1).AddPoint "sm5", , "1s時(shí)鐘脈沖"

    HWPLCComm1.HWPLCs(1).AddPoint "m0", "Start", "跑馬燈啟動(dòng)"

    HWPLCComm1.HWPLCs(1).AddPoint "m1", "Stop", "跑馬燈停止"

    HWPLCComm1.HWPLCs(1).AddPoint "v0"

    HWPLCComm1.HWPLCs(1).AddPoint "v2"

    HWPLCComm1.HWPLCs(1).AddPoint "v100", , "實(shí)數(shù)例子", [REAL ] '實(shí)數(shù)類(lèi)型為5

    HWPLCComm1.HWPLCs(1).AddPoint "ccv50", , "32位計(jì)數(shù)器"

    HWPLCComm1.HWPLCs(1).AddPoint "ccv100", , "16位計(jì)數(shù)器"

    '將點(diǎn)加到Listview中顯示, Y0-Y15 16個(gè)點(diǎn)不加入,用指示燈來(lái)顯示狀態(tài)

    Dim Newitem As ListItem

    For i = 17 To HWPLCComm1.HWPLCs(1).PointCount

        Set Newitem = ListView1.ListItems.Add(, , i)

        Newitem.SubItems(1) = HWPLCComm1.HWPLCs(1).iPoints(i).PointAddress

        Newitem.SubItems(2) = HWPLCComm1.HWPLCs(1).iPoints(i).PointName

        Newitem.SubItems(4) = HWPLCComm1.HWPLCs(1).iPoints(i).PointNote

    Next i

'將PLC地址和名稱(chēng)用標(biāo)簽顯示

    Label3(0) = HWPLCComm1.HWPLCs(1).PLCAddress

    Label3(1) = HWPLCComm1.HWPLCs(1).PLCName

'將16只指示燈的標(biāo)簽以點(diǎn)名稱(chēng)顯示(Y0~Y15)

    For i = 1 To 16

        Label1(i - 1) = HWPLCComm1.HWPLCs(1).iPoints(i).PointName

    Next i

End Sub

'雙擊列表中的點(diǎn)打開(kāi)窗口2,對(duì)該點(diǎn)的值進(jìn)行修改

Private Sub ListView1_DblClick()

    Dim i As Long

    If Not ListView1.SelectedItem Is Nothing Then

        i = ListView1.SelectedItem.Index + 16

        Form2.vPointIndex = i

        Form2.Caption = "寫(xiě)入值 " & HWPLCComm1.HWPLCs(1).iPoints(i).PointName

        Form2.Label1.Caption = "寫(xiě)入值 " & HWPLCComm1.HWPLCs(1).iPoints(i).PointName & ":"

        Form2.Text1 = HWPLCComm1.HWPLCs(1).iPoints(i).PointValue

        Form2.Show 1

    End If

End Sub

' Timer1是畫(huà)面刷新定時(shí)器

Private Sub Timer1_Timer()

    '刷新值

    Dim i As Long

    '刷新Y0-Y15值

    For i = 1 To 16

        If HWPLCComm1.HWPLCs(1).iPoints(i).PointValue = 1 Then

            Shape1(i - 1).FillColor = vbRed '值=1,為真

        Else

            Shape1(i - 1).FillColor = vbWhite '值=0,為假

        End If

    Next i

    '刷新其他點(diǎn)值

    For i = 17 To HWPLCComm1.HWPLCs(1).PointCount

        ListView1.ListItems(i - 16).SubItems(3) = HWPLCComm1.HWPLCs(1).iPoints(i).PointValue

    Next i

End Sub

窗口2的程序如下:

Option Explicit

Public vPointIndex As Long '公共變量,存儲(chǔ)被雙擊點(diǎn)的序號(hào)

'確定按鈕

Private Sub Command1_Click()

    If Text1.Text = "" Then Exit Sub

'按確定,則寫(xiě)入點(diǎn)的值

    Form1.HWPLCComm1.HWPLCs(1).SetPointValue vPointIndex, Text1.Text

    Unload Me

End Sub

'取消按鈕

Private Sub Command2_Click()

    Unload Me

End Sub

Private Sub Text1_GotFocus()

    Text1.SelStart = 0

    Text1.SelLength = Len(Text1)

End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)

    If KeyAscii = 13 Then

        Command1_Click

    End If

End Sub


運(yùn)行結(jié)果如下圖:


lQLPJxaJeo9Ml9DNAUrNAjCwcnyozf1ciXgC4k-92ICEAA_560_330.png

微信技術(shù)客服:08:30-21:00
0592-3278716
關(guān)注我們

海為公眾號(hào)

海為云APP

主站蜘蛛池模板: 实木全屋定制|整木定制|整木家装|实木护墙板-浩冠家具官网 | 金华银焊条-金华银焊丝-银焊片制造商-银焊环批发商-浙江焊丝生产商-焊环厂家-浙江永旺焊材制造有限公司 | 上饶环亚电脑会计培训学校--电脑学校|上饶电脑学校|上饶电脑培训|会计培训|上饶会计培训|上饶县会计培训|广丰会计培训|玉山会计培训|横峰会计培训|上饶网店培训 上进电缆(嘉兴)股份有限公司官网 - 光伏电缆|防火电缆|电力电缆|铝合金电缆专业生产厂家 | 石英砂过滤器_砂滤器_石家庄工泉水处理科技有限公司 | 消字号牙膏代加工|面膜代加工|凝胶贴牌|漱口水贴牌-南京三盾药业有限公司-消字号牙膏代加工|面膜代加工|凝胶贴牌|漱口水贴牌-南京三盾药业有限公司 | 随车吊/洒水车/低平板运输车-程力专用汽车股份有限公司 | 卡压式管件_不锈钢卡压式管件_双卡压管件_不锈钢沟槽管件_承插焊管件_温州市中达阀门管件有限公司 | 呼吸家官网|肺功能检测仪生产厂家|国产肺功能仪知名品牌|肺功能检测仪|肺功能测试仪|婴幼儿肺功能仪|弥散残气肺功能仪|肺功能测试系统|广州红象医疗科技有限公司|便携式肺功能仪|大肺功能仪|呼吸康复一体机|儿童肺功能仪|肺活量计|医用简易肺功能仪|呼吸康复系统|肺功能仪|弥散肺功能仪(大肺)|便携式肺功能检测仪|肺康复|呼吸肌力测定肺功能仪|肺功能测定仪|呼吸神经肌肉刺激仪|便携式肺功能 | 皮带输送机-宁津县浩发链条有限公司| 厌氧培养系统_厌氧工作站_厌氧培养装置_智能厌氧培养_常州普莱实验系统 | 网络广播_公共广播系统_校园,学校数字ip,itc智能广播系统方案 | 纸箱抗压测定仪|电脑测控耐破度仪|电脑抗张试验仪|杭州华翰仪器百科 | 河南反渗透设备-河南EDI超纯水设备-郑州纯净水设备-郑州友邦水处理设备有限公司 | 武汉牛凸科技有限公司 | 微机继电保护测试仪,单相继电保护测试仪,三相继电保护测试仪,六相继电保护测试仪,介质损耗测试仪,氧化锌避雷器测试仪,无线核相仪-扬州豪泰电力科技有限公司 | 涂料分散剂_水墨分散剂-厚洹化学水性色浆助剂厂家 | 数据采集卡_北京科尔特兴业测控技术研究所| 昆明集装箱-云南住人集装箱活动房厂家|移动板房出租赁定制 | 医疗器械招标网—打造医械厂家专业服务平台| 上海纽森工业科技有限公司| 膨胀节_波纹膨胀节_非金属膨胀节_波纹管补偿器_膨胀节厂家-江苏苏创管业科技有限公司 | 中国C919飞机橡胶接头供应商-上海淞江减震器集团有限公司官方网站 | 無谷轻食官网_沙拉轻食加盟_轻食加盟总部_轻食加盟费用 | 上饶建盛建设,建盛建设,上饶市建盛建设工程质量检测有限公司-房屋鉴定 | 水上游乐设备 - 郑州亿浪水上乐园设备有限公司 | 项目可行性研究报告_稳评能评节能报告_节能报告收费标准-智汇中经(上海)管理咨询有限公司 | 名片印刷,名片制作,名片设计,印刷彩色名片,数码快印名片-北京瑞思凯信息咨询公司 | 硝酸铵钙|山西硝酸钙|硝酸钾|太原硝酸钙镁|硝酸钾钙|亚硝酸钠-山西玉彤化工有限公司 | 塑料托盘 塑料周转箱零件盒生产销售-江苏卡尔富塑业科技有限公司 | 西安真石漆_无机涂料厂家_无机涂料多少钱一个平方—陕西秦森环保科技有限公司 | 真空干燥箱厂家-热风循环烘箱生产厂家-鼓风烘干箱价格-南京火燥机械科技有限公司 | 长沙设计公司丨品牌策划设计服务丨画册设计-石青|长沙画册设计 | 爬架网@建筑爬架网@冲孔建筑爬架网片@工地冲孔建筑爬架网片@工地冲孔建筑爬架网片厂家@工地冲孔建筑爬架网片生产厂家-安平县诺德金属制品有限公司 | 长春互联网运营值选星广传媒,长春短视频运营,长春新媒体运营,长春互联网运营,长春抖音运营,吉林视频号代运营,吉林快手代运营,短视频推广公司,公众号运营,微博运营,新媒体运营 | 水平转头微孔板离心机-米欧微孔板离心机-北京乾明基因技术 | 青岛大倾角输送带厂家_橡胶挡边输送带_波纹状挡边输送带_大倾角输送带型号-青岛朗森橡胶有限公司 | 呼吸家官网|肺功能检测仪生产厂家|国产肺功能仪知名品牌|肺功能检测仪|肺功能测试仪|婴幼儿肺功能仪|弥散残气肺功能仪|肺功能测试系统|广州红象医疗科技有限公司|便携式肺功能仪|大肺功能仪|呼吸康复一体机|儿童肺功能仪|肺活量计|医用简易肺功能仪|呼吸康复系统|肺功能仪|弥散肺功能仪(大肺)|便携式肺功能检测仪|肺康复|呼吸肌力测定肺功能仪|肺功能测定仪|呼吸神经肌肉刺激仪|便携式肺功能 | 衢州装饰公司_衢州装修公司_衢州创美装饰工程有限公司 - Powered by www.qzcmzs.com | 无线对讲系统-海能达对讲机-广州中达慧通科技有限公司 | 鸟语林-百鸟园-不锈钢丝绳网-钢丝网-瓦片防坠网-围网-河北中重钢结构工程有限公司 | 山东优科机械设备有限公司,养鸡设备,湿帘设备,通风降温加湿设备,山东养鸡设备,山东湿帘设备 |