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

        ?

        用VB編寫CAN總線以太網(wǎng)通訊協(xié)議

        2012-02-15 21:12:35韓立立
        通信技術(shù) 2012年12期
        關(guān)鍵詞:設(shè)備

        韓立立

        (中國石油大學(xué) 理學(xué)院實驗中心,山東 青島266580)

        0 引言

        隨著計算機(jī)、網(wǎng)絡(luò)技術(shù)、軟件工程、自動控制等多個高新技術(shù)的發(fā)展,越來越多的工業(yè)現(xiàn)場情況需要用計算機(jī)實現(xiàn)對CAN設(shè)備的監(jiān)控。當(dāng)CAN設(shè)備沒有通訊協(xié)議時,就需要編寫符合CAN總線傳輸?shù)耐ㄓ崊f(xié)議。

        文中將著重闡述該系統(tǒng)通訊方法的實現(xiàn)。由于計算機(jī)不能直接發(fā)送數(shù)據(jù)到CAN總線上去,必須經(jīng)過CAN-以太網(wǎng)網(wǎng)關(guān)或CAN-232串口服務(wù)器轉(zhuǎn)換才能實現(xiàn)。

        1 通訊介紹

        控制器局域網(wǎng)絡(luò)(CAN,Control Area Network),它最初是由德國的 BOSCH公司為汽車監(jiān)測、控制系統(tǒng)而設(shè)計的。目前,CAN總線是唯一已成為國際標(biāo)準(zhǔn)的,被公認(rèn)為是幾種最有前途的現(xiàn)場總線之一。

        CAN具有下列主要特性[1]:單根雙絞線最遠(yuǎn)傳輸距離10km/5kb/s,最高傳輸速率1Mb/s/40m。非破壞性總線仲裁技術(shù),采用干擾概率低的短幀結(jié)構(gòu)多地址傳送; CAN可與輸入輸出設(shè)備、單片機(jī)、控制器、收發(fā)器等多種設(shè)備配合使用。全系統(tǒng)數(shù)據(jù)兼容性;錯誤檢測和出錯信息自動判別、自動重發(fā)、自動脫離。

        在總線中傳送的報文,每幀由7 部分組成,詳細(xì)說明如下:

        1)00:A 口(一般CAN-以太網(wǎng)網(wǎng)關(guān)有1-4個CAN端口)收到的數(shù)據(jù),0-3 對應(yīng)A-D 4個CAN 端口,為報文接收到的第1個字節(jié)。

        2)10 00 00 00:接收到的CAN ID(CAN ID 為1,低位字節(jié)在前,高位在后)。

        3)08:此CAN 數(shù)據(jù)包中的CAN 數(shù)據(jù)區(qū)長度(最大8 個字節(jié))。

        4)01 02 03 04 05 06 07 08:8 個字節(jié)的CAN數(shù)據(jù)區(qū)數(shù)據(jù)。

        5)01:1 為擴(kuò)展幀(CAN2.0B)格式,0 為標(biāo)準(zhǔn)幀(CAN2.0A)。

        6)00:遠(yuǎn)程傳輸位,0-非RTR 數(shù)據(jù)包,1-為RTR數(shù)據(jù)包。

        7)00 00 00 00:保留的4 個數(shù)據(jù)字節(jié),為報文接收的最后字節(jié)。

        CAN協(xié)議支持兩種報文格式,其唯一的不同是標(biāo)識符(ID)長度不同,標(biāo)準(zhǔn)格式為11 位,擴(kuò)展格式為29 位。報文的尾部由幀結(jié)束標(biāo)出。在相鄰的兩條報文間有一很短的間隔位,如果這時沒有站進(jìn)行總線存取,總線將處于空閑狀態(tài)。

        2 用VB進(jìn)行以太網(wǎng)通訊

        VB中通過Winsock控件與遠(yuǎn)程計算機(jī)或以太網(wǎng)設(shè)備建立連接,并通過用戶數(shù)據(jù)交換協(xié)議(UDP)或者傳輸控制協(xié)議(TCP)進(jìn)行數(shù)據(jù)交換。Microsoft Access、Visual Basic、Visual c++等的開發(fā)人員都可使用它。用VB的Winsock 控件來編寫客戶端和服務(wù)器應(yīng)用程序,只需設(shè)置控件的屬性并調(diào)用其方法就可輕易連接到一臺遠(yuǎn)程機(jī)器上去;并且還可在兩應(yīng)用程序間進(jìn)行雙向交換數(shù)據(jù),完成兩機(jī)間的通信,編程簡單、快捷、安全[2]。

        3 通訊協(xié)議的編寫

        CAN的報文格式分兩種:擴(kuò)展幀和標(biāo)準(zhǔn)幀。標(biāo)準(zhǔn)幀每次只能傳送8個數(shù)據(jù)(16進(jìn)制),而現(xiàn)場需要傳輸?shù)臄?shù)據(jù)類型不僅有開關(guān)量,還有模擬量,且一般所需要傳輸?shù)臄?shù)據(jù)都很多。所以我們將CAN的8個數(shù)據(jù)(例如FFFF006E43301000)分成兩部分:前兩為FFFF代表開關(guān)量,如果將16進(jìn)制轉(zhuǎn)換成2進(jìn)制為1111 1111 1111 1111,代表16個開關(guān)量數(shù)據(jù),從左到右分別是 D1、D2…D16;后 6位006E43301000代表2個模擬量,前一個模擬量為整數(shù)(006E轉(zhuǎn)換成10進(jìn)制分別是110),后一個模擬量為小數(shù)編碼傳輸(43301000用IEEE754編碼,轉(zhuǎn)換成小數(shù)為176.0652,具體轉(zhuǎn)換方法如下:176.0652轉(zhuǎn)換成2進(jìn)制為10110000.0001,規(guī)格化二進(jìn)制數(shù):1.01100000001*2^7 (小數(shù)點移了7位),計算指數(shù):7+127=134 (127是個標(biāo)準(zhǔn)數(shù)值),按照IEEE754編碼排列為 0 10000110 01100000001 000000000000(不足32位,后面補(bǔ)0,直到補(bǔ)足32位),二進(jìn)制結(jié)果是0100 0011 0011 0000 0001 0000 0000 0000,十六進(jìn)制結(jié)果是0x43301000)。這樣每個CAN標(biāo)準(zhǔn)幀傳輸16個開關(guān)量和1個10進(jìn)制0—65535的整數(shù)值和1個10進(jìn)制任意的小數(shù)值(如果實際需要傳輸?shù)恼麛?shù)數(shù)據(jù)大于 65535,可以作為小數(shù)傳輸),實際需要傳輸?shù)拈_關(guān)量或模擬量有多少,就發(fā)送相應(yīng)倍率的CAN標(biāo)準(zhǔn)幀就可以了。例如實際需要傳輸500個開關(guān)量和70個模擬量,500除以16取整應(yīng)該是32;70除以2取整為35;所以應(yīng)該傳輸35個CAN標(biāo)準(zhǔn)幀。這35個CAN標(biāo)準(zhǔn)幀的區(qū)分就在CAN ID中,舉例說明(發(fā)送數(shù)據(jù)為P1—P600):

        軟件發(fā)送 001400000008FFFF006E43301000000 000000000到CAN設(shè)備。代表從上位電腦寫P1—P19到CAN設(shè)備其中P1-P16為1,P17為16進(jìn)制006E,10進(jìn)制為110;P38為16進(jìn)制43301000實際值為176.0652;

        軟件發(fā)送 001500000008FFFF006E43301000000 000000000到CAN設(shè)備。代表從上位電腦寫P21—P39到CAN設(shè)備其中P21-P36為1,P37為16進(jìn)制006E,10進(jìn)制為110;P38為16進(jìn)制43301000實際值為176.0652[3];

        每組20個數(shù)據(jù)(第20個數(shù)據(jù)不用),在編制軟件時用循環(huán)很容易完成。

        4 軟件通訊的實現(xiàn)

        將 CAN-以太網(wǎng)網(wǎng)關(guān)的工作模式設(shè)置成服務(wù)器方式;將CAN-以太網(wǎng)網(wǎng)關(guān)CAN總線的通訊速率設(shè)置成和CAN設(shè)備一樣的速率;將計算機(jī)的IP地址設(shè)置成和CAN-以太網(wǎng)網(wǎng)關(guān)同一個網(wǎng)段里的不同IP地址;用VB新建個工程,將Winsock控件添加到工程中,其屬性中的RemoteHost屬性設(shè)置成CAN-以太網(wǎng)網(wǎng)關(guān)的IP地址,其屬性中的 RemotePort屬性設(shè)置成 CAN-以太網(wǎng)網(wǎng)關(guān)的偵聽端口,在窗體上添加 Command1、Command2、Text1.Text3個控件,編寫代碼如下:

        Private Sub Command1_Click()

        Winsock1.Connect

        End Sub

        Private Sub Command2_Click()’發(fā)送0014000 00008FFFF006E00780064000000000000

        Dim X(19) As Byte

        'X(0) = &H0

        X(1) = &H14

        X(2) = &H0

        X(3) = &H0

        X(4) = &H0

        X(5) = &H8

        X(6) =&HFF

        X(7) = &HFF

        X(8) = &H0

        X(9) = &H6E

        X(10) = &H0

        X(11) = &H78

        X(12) = &H0

        X(13) = &H64

        X(14) = &H0

        X(15) = &H0

        X(16) = &H0

        X(17) = &H0

        X(18) = &H0

        X(19) = &H0

        Winsock1.SendData X()

        End Sub

        接收數(shù)據(jù)代碼如下:

        Private Sub Winsock 1_DataArrival (ByVal bytes Total as Long)

        Dim p1, buf, data1 As String

        Dim InByte, I

        Buf = ""

        Winsock 1.GetData data1

        InByte = data1

        For I = LBound(InByte) To UBound(InByte)

        If Len(Hex(InByte(I))) = 1 Then Buf = Buf+ "0" + Hex(InByte(I))

        If Len(Hex(InByte(I))) = 0 Then Buf = Buf+ "00"

        If Len(Hex(InByte(I))) = 2 Then Buf = Buf+ Hex(InByte(I))

        Next I

        Text1.Text = Buf ‘將接收的數(shù)據(jù)放到Text1.Text里顯示

        End Sub

        將設(shè)備連接好,加電后,運(yùn)行軟件點擊Command1,和 CAN設(shè)備建立通訊鏈路,點擊Command2,將數(shù)據(jù)發(fā)送到CAN設(shè)備。當(dāng)CAN設(shè)備返回數(shù)據(jù)時,將自動顯示在Text1.Text里。

        5 結(jié)語

        用以上方法將數(shù)據(jù)讀上來后,可以自己編寫監(jiān)控界面,也可以用DDE 或OPC的方式將采集數(shù)據(jù)放到任何組態(tài)軟件中,用組態(tài)軟件監(jiān)控設(shè)備運(yùn)行[4]。基于嵌入式系統(tǒng)的智能節(jié)點在CAN總線中的應(yīng)用靈活穩(wěn)定[5]。CAN總線技術(shù)下設(shè)計企業(yè)的生產(chǎn)監(jiān)控系統(tǒng),提高現(xiàn)代制造企業(yè)生產(chǎn)的信息化與網(wǎng)絡(luò)化水平。

        [1] 京金華(北京)有限公司.CAN產(chǎn)品配置手冊[M].北京:出版者不詳,2007:2-22.

        [2] 李天啟.Visual Basic 6學(xué)習(xí)捷徑[M].北京:清華大學(xué)出版社,1994:68-98.

        [3] 王道義.VisualBasic 6使用詳解[M].北京:機(jī)械工業(yè)出版社,1997:32-55.

        [4] 張亞娟.基于嵌入式系統(tǒng)的智能節(jié)點在 CAN總線中的應(yīng)用[J].通信技術(shù),2006(06):51-54.

        [5] 蔡連君.基于 CAN總線的生產(chǎn)監(jiān)控系統(tǒng)研究[J].通信技術(shù),2009,42(10):151-152.

        猜你喜歡
        設(shè)備
        諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
        調(diào)試新設(shè)備
        基于VB6.0+Access2010開發(fā)的設(shè)備管理信息系統(tǒng)
        基于MPU6050簡單控制設(shè)備
        電子制作(2018年11期)2018-08-04 03:26:08
        廣播發(fā)射設(shè)備中平衡輸入與不平衡輸入的轉(zhuǎn)換
        電子制作(2018年10期)2018-08-04 03:24:48
        食之無味,棄之可惜 那些槽點滿滿的可穿戴智能設(shè)備
        500kV輸變電設(shè)備運(yùn)行維護(hù)探討
        HTC斥資千萬美元入股虛擬現(xiàn)實設(shè)備商WEVR
        IT時代周刊(2015年8期)2015-11-11 05:50:37
        Automechanika Shanghai 2014 之“看” 汽保設(shè)備篇
        如何在設(shè)備采購中節(jié)省成本
        日本丰满熟妇videossex一| 日本熟妇精品一区二区三区| 国产一区二区av在线观看| 真实夫妻露脸爱视频九色网| 久久天天躁狠狠躁夜夜2020一| 狠狠人妻久久久久久综合| 26uuu欧美日本在线播放| 亚洲乱码中文字幕三四区| 国产aⅴ无码专区亚洲av| 国产成人精品日本亚洲| 国产午夜激情视频自拍| 亚洲精品国产av成拍色拍| 人妻少妇精品久久久久久| 中出内射颜射骚妇| 国产丝袜免费精品一区二区| 免费人成黄页在线观看视频国产| 无码AⅤ最新av无码专区| 日本一区二区不卡在线| 把女的下面扒开添视频| 国内精品九九久久久精品| 蜜桃av观看亚洲一区二区 | 亚洲精品中文字幕二区| 久久丝袜熟女av一区二区| 人人妻人人狠人人爽天天综合网| 国产视频毛片| 亚洲av一区二区网址| 国产精品无码翘臀在线观看| 国产99久久精品一区二区| 一区二区三区放荡人妻| 日本啪啪视频一区二区| 国产片精品av在线观看夜色| 人人狠狠综合久久亚洲婷婷| 久久精品国产亚洲av蜜桃av| 性色视频加勒比在线观看| 极品粉嫩小泬无遮挡20p| 久久这里都是精品一区| 91色综合久久熟女系列| 亚洲a∨无码男人的天堂| 中文字幕不卡在线播放| 加勒比一区二区三区av| 久久无码字幕中文久久无码|