亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        力控組態(tài)軟件與VB和下位機之間的通訊方法研究

        2018-09-23 08:05:16豆勤勤
        關(guān)鍵詞:窗體驅(qū)動程序控件

        豆勤勤

        前言

        力控組態(tài)軟件是對現(xiàn)場生產(chǎn)進行監(jiān)控和數(shù)據(jù)采集的一種軟件,可以與現(xiàn)場總線模塊、智能模塊等多種輸入輸出I/O設(shè)備進行通信,本文采用的力控組態(tài)軟件對于采用不同協(xié)議通信的I/O設(shè)備,提供具有針對性的I/O驅(qū)動程序.實時數(shù)據(jù)庫就借助于I/O驅(qū)動程序?qū)/O設(shè)備執(zhí)行數(shù)據(jù)的采集與回送,與I/O驅(qū)動程序構(gòu)成服務(wù)器與客戶端的結(jié)構(gòu)模式[1].

        該項目是基于某大型鋼廠鋼坯標(biāo)識碼的讀碼監(jiān)控系統(tǒng).由于項目中采用的是國外的某款掃碼槍設(shè)備,在力控組態(tài)軟件中并沒有提供其通訊驅(qū)動程序,而開發(fā)驅(qū)動程序工作量較大,因此需要采取其他方法實現(xiàn)與上位機的通信.對于力控不提供驅(qū)動程序的I/O設(shè)備,本項目采用的是借助于VB應(yīng)用程序軟件,利用力控向控制層和管理層提供的軟、硬件全部接口實現(xiàn)間接控制的方法.

        VB中提供有WinSock控件[2],此控件能夠通過TCP協(xié)議連接到遠程的機器并進行數(shù)據(jù)交換.而力控組態(tài)軟件和VB之間又可以通過DDE協(xié)議來實現(xiàn)通信.整個工程項目實現(xiàn)過程如圖1所示.

        圖1

        1 VB使用WinSock控件與下位機設(shè)備通訊

        VB是一個可視化的窗口開發(fā)環(huán)境,可以方便的應(yīng)用到很多控制系統(tǒng)中.在使用WinSock控件時,可以使用的協(xié)議包括TCP和UDP.兩種協(xié)議之間的重要區(qū)別在于它們的連接狀態(tài).TCP協(xié)議是一種基于連接的協(xié)議,可以將它同電話系統(tǒng)相比.在開始數(shù)據(jù)輸出之前,用戶必須先建立連接.UDP協(xié)議是一種無連接協(xié)議,兩臺計算機之間的傳輸類似于傳遞郵件,消息從一臺計算機發(fā)送到另一臺計算機,但是兩者之間沒有明確的連接.在應(yīng)用程序使用TCP協(xié)議,首先必須決定應(yīng)用程序是服務(wù)器還是客戶端.如果要創(chuàng)建一個服務(wù)器端,那么應(yīng)用程序需要“監(jiān)聽”指定的端口.當(dāng)客戶端提出連接請求時,服務(wù)器端能夠接受請求并建立連接.在連接建立之后,客戶端與服務(wù)器端可以自由地互相通訊.本項目中VB是作為客戶端,與掃碼設(shè)備進行數(shù)據(jù)通訊.

        在VB中,由于WinSock通信控件不是內(nèi)置控件,在使用時,需要將其添加到工具箱中.選擇工程-部件-控件,選中Microsoft WinSock Control復(fù)選框,點擊確定,就添加成功了.此時選擇WinSock控件,添加到窗體上,利用此控件編程就可實現(xiàn)VB和設(shè)備通信.使用控件時,先對WinSock控件設(shè)置相應(yīng)的屬性和事件.首先必須知道服務(wù)器計算機名或IP地址及服務(wù)器進行偵聽的端口,然后調(diào)用Connect方法.

        WinSock控件的參數(shù)設(shè)置如下:

        Private Sub Command1_Click()

        Dim StartTime

        Winsock1.RemoteHost="169.254.6.244"

        Winsock1.RemotePort=23

        Winsock1.Connect

        StartTime=Timer

        Do While ((Timer<StartTime+2)And(Winsock1.State<> 7))

        DoEvents

        Loop

        If(Winsock1.State = 7)Then

        Text5.Text= "Connected"

        Text7.Text= "1"

        Text5.BackColor= &HFF00&

        Command1.Enabled = False

        Else

        Text5.Text="Can't connect to"+Text1.Text

        Text5.BackColor= &HFF

        Text7.Text= "0"

        End If

        End Sub

        接收數(shù)據(jù)程序如下:

        Private Sub Command4_Click()

        If(Winsock1.State=7)Then

        StartLow=Val(Text2.Text)Mod 256

        StartHigh=Val(Text2.Text)256

        LengthLow=Val(Text3.Text)Mod 256

        LengthHigh=Val(Text3.Text)256

        MbusWriteQuery=Chr(0)+Chr(0)+Chr(0)+Chr(0)+Chr(0)+Chr(7+2*Val(Text3.Text))+Chr(1)+Chr(16)+Chr(StartHigh)+Chr(Start-Low)+Chr(0)+Chr(Val(Text3.Text))

        For i=0 To Val(Text3.Text)-1

        ByteLow=Val(Text4(i).Text)Mod 256

        ByteHigh=Val(Text4(i).Text)256

        MbusWriteQuery=MbusWriteQuery+Chr(ByteHigh)+Chr(ByteLow)

        Next i

        MbusRead=False

        MbusWrite=True

        Winsock1.SendData MbusWriteQuery

        ModbusWait=True

        ModbusTimeOut=0

        Timer1.Enabled=True

        Else

        MsgBox("Device not connected via TCP/IP")

        End If

        End Sub

        2 VB通訊程序與力控組態(tài)軟件的通信

        VB與力控進行通信數(shù)據(jù)傳輸可以通過動態(tài)數(shù)據(jù)交換DDE來進行.

        2.1 DDE動態(tài)數(shù)據(jù)交換

        動態(tài)數(shù)據(jù)交換(DDE)[3,4]是微軟的一種數(shù)據(jù)通信形式,它使用共享的內(nèi)存在應(yīng)用程序之間進行數(shù)據(jù)交換,能夠及時更新數(shù)據(jù),在兩個應(yīng)用程序之間信息是自動更新的,無須用戶參與.兩個同時運行的程序間通過DDE方式交換數(shù)據(jù)時他們之間是客戶端/服務(wù)器關(guān)系;數(shù)據(jù)通信時,接收信息的應(yīng)用程序稱作客戶端,提供信息的應(yīng)用程序稱作服務(wù)器.一個應(yīng)用程序可以是DDE客戶端或是DDE服務(wù)器,也可以兩者都是.一旦客戶端和服務(wù)器建立起來連接關(guān)系,則當(dāng)服務(wù)器中的數(shù)據(jù)發(fā)生變化后就會馬上通知客戶端.通過DDE方式建立的數(shù)據(jù)連接通道是雙向的,即客戶端不但能夠讀取服務(wù)器中的數(shù)據(jù),而且可以對其進行修改.

        DDE有兩種數(shù)據(jù)交換方式,即冷連接和熱連接.冷連接(Cool Link)指數(shù)據(jù)交換是一次性數(shù)據(jù)傳輸,與剪貼板相同.當(dāng)服務(wù)器中的數(shù)據(jù)發(fā)生變化后不通知客戶端,但客戶端可以隨時從服務(wù)器讀寫數(shù)據(jù).熱連接(Hot Link)指當(dāng)服務(wù)器中的數(shù)據(jù)發(fā)生變化后馬上通知客戶端,同時將變化的數(shù)據(jù)直接送給客戶.

        VB與力控組態(tài)軟件進行DDE對話是通過機器名、應(yīng)用程序名、主題名和項目名進行約定的.

        2.2 VB與力控建立DDE會話的過程

        在VB中新建一個工程,將窗體命名為“DDEServer”;其中,LinkMode 設(shè)為“1-Source(表示此程序作為服務(wù)端)”;LinkTopic為窗體的名字(即DDEServer).建立窗體如圖2所示.VB應(yīng)用程序中采用文本框控件和力控進行DDE通訊.

        在力控組態(tài)軟件中定義一個I/O設(shè)備DDE.服務(wù)名稱設(shè)定為VB應(yīng)用程序名,“工程1”,主題名稱指定為VB應(yīng)用程序窗體名稱“DDESERVE”.鏈接模式為熱連接,如圖3和圖4所示.

        圖2

        圖3

        圖4

        在數(shù)據(jù)庫中創(chuàng)建三個數(shù)據(jù)庫點:A1,A2和A3,這幾個數(shù)據(jù)點的數(shù)據(jù)連接項中的DDE分別指定為VB窗體中的文本框的名字,如圖5所示.

        先啟動VB程序,然后啟動力控運行程序,就可以實現(xiàn)VB與力控組態(tài)軟件之間的DDE數(shù)據(jù)交換.整個系統(tǒng)運行如圖6所示.

        結(jié)束語

        圖5

        圖6

        本文采用VB中WinSock控件和DDE通訊技術(shù)很好的實現(xiàn)了力控組態(tài)軟件與下位機掃碼設(shè)備之間的通信,較好地解決了對于力控組態(tài)程序沒有驅(qū)動程序支持的設(shè)備之間數(shù)據(jù)的通信問題.采用力控組態(tài)軟件編寫了上位機監(jiān)控界面,人機交互直觀、方便.在實際項目中得到了很好地應(yīng)用,實用價值很高.

        猜你喜歡
        窗體驅(qū)動程序控件
        試談Access 2007數(shù)據(jù)庫在林業(yè)檔案管理中的應(yīng)用
        檔案天地(2019年5期)2019-06-12 05:12:02
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        基于LayeredWindow的異形窗體局部刷新
        中文信息(2014年2期)2014-03-06 23:49:14
        巧設(shè)WPS窗體控件讓表格填寫更規(guī)范
        就這樣玩會VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        驅(qū)動程序更新與推薦
        驅(qū)動程序更新與推薦
        驅(qū)動程序更新與推薦
        WinCE.net下圖形用戶界面的開發(fā)
        驅(qū)動程序的真心話和大冒險
        激情五月婷婷一区二区| 2021久久精品国产99国产精品| 男女肉粗暴进来120秒动态图| 亚洲欧美日韩高清中文在线| 韩日无码不卡| 网址视频在线成人亚洲| 国产精品一区二区三区播放| 成 人 免 费 黄 色| 亚洲成av人片在线观看麦芽| 久久伊人影院| av天堂手机在线免费| 亚洲av狠狠爱一区二区三区| 视频在线观看免费一区二区| 青春草在线视频免费观看| 欧美日韩成人在线| 国产久视频| 国产毛片一区二区三区| 国产区女主播一区在线| 风韵多水的老熟妇| 亚洲最大在线精品| 激情视频在线播放一区二区三区| 水蜜桃在线观看一区二区| 少妇愉情理伦片| 久久九九久精品国产| 久久婷婷综合色拍亚洲| 粉嫩的18在线观看极品精品| av免费网站免费久久网| 蜜臀性色av免费| AV无码最在线播放| 加勒比亚洲视频在线播放| 青青草骚视频在线观看| 成人特黄a级毛片免费视频| 无码人妻一区二区三区免费n鬼沢| 亚洲综合国产成人丁香五月小说| 中文字幕一区二区三区四区| 人妻熟女一区二区三区app下载| 九九99久久精品在免费线18| 亚洲AV秘 片一区二区三区| 国产黑丝美女办公室激情啪啪| 97久久超碰国产精品旧版| 日本污视频|