999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

用VB編寫CAN總線以太網通訊協議

2012-02-15 21:12:35韓立立
通信技術 2012年12期
關鍵詞:設備

韓立立

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

0 引言

隨著計算機、網絡技術、軟件工程、自動控制等多個高新技術的發展,越來越多的工業現場情況需要用計算機實現對CAN設備的監控。當CAN設備沒有通訊協議時,就需要編寫符合CAN總線傳輸的通訊協議。

文中將著重闡述該系統通訊方法的實現。由于計算機不能直接發送數據到CAN總線上去,必須經過CAN-以太網網關或CAN-232串口服務器轉換才能實現。

1 通訊介紹

控制器局域網絡(CAN,Control Area Network),它最初是由德國的 BOSCH公司為汽車監測、控制系統而設計的。目前,CAN總線是唯一已成為國際標準的,被公認為是幾種最有前途的現場總線之一。

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

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

1)00:A 口(一般CAN-以太網網關有1-4個CAN端口)收到的數據,0-3 對應A-D 4個CAN 端口,為報文接收到的第1個字節。

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

3)08:此CAN 數據包中的CAN 數據區長度(最大8 個字節)。

4)01 02 03 04 05 06 07 08:8 個字節的CAN數據區數據。

5)01:1 為擴展幀(CAN2.0B)格式,0 為標準幀(CAN2.0A)。

6)00:遠程傳輸位,0-非RTR 數據包,1-為RTR數據包。

7)00 00 00 00:保留的4 個數據字節,為報文接收的最后字節。

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

2 用VB進行以太網通訊

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

3 通訊協議的編寫

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

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

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

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

4 軟件通訊的實現

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

Private Sub Command1_Click()

Winsock1.Connect

End Sub

Private Sub Command2_Click()’發送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

接收數據代碼如下:

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 ‘將接收的數據放到Text1.Text里顯示

End Sub

將設備連接好,加電后,運行軟件點擊Command1,和 CAN設備建立通訊鏈路,點擊Command2,將數據發送到CAN設備。當CAN設備返回數據時,將自動顯示在Text1.Text里。

5 結語

用以上方法將數據讀上來后,可以自己編寫監控界面,也可以用DDE 或OPC的方式將采集數據放到任何組態軟件中,用組態軟件監控設備運行[4]?;谇度胧较到y的智能節點在CAN總線中的應用靈活穩定[5]。CAN總線技術下設計企業的生產監控系統,提高現代制造企業生產的信息化與網絡化水平。

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

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

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

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

[5] 蔡連君.基于 CAN總線的生產監控系統研究[J].通信技術,2009,42(10):151-152.

猜你喜歡
設備
諧響應分析在設備減振中的應用
調試新設備
當代工人(2020年13期)2020-09-27 23:04:20
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
廣播發射設備中平衡輸入與不平衡輸入的轉換
電子制作(2018年10期)2018-08-04 03:24:48
食之無味,棄之可惜 那些槽點滿滿的可穿戴智能設備
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
HTC斥資千萬美元入股虛擬現實設備商WEVR
IT時代周刊(2015年8期)2015-11-11 05:50:37
Automechanika Shanghai 2014 之“看” 汽保設備篇
如何在設備采購中節省成本
主站蜘蛛池模板: 第一页亚洲| 亚洲男人天堂2018| 中文字幕一区二区视频| 亚洲av无码牛牛影视在线二区| 欧美在线一级片| 亚洲视频免费在线| 日韩精品毛片| 制服无码网站| 天堂在线视频精品| 99re热精品视频中文字幕不卡| 久久国产精品影院| 青青国产在线| 91国内视频在线观看| 欧美精品一二三区| 亚洲成aⅴ人在线观看| 久草视频一区| 99久久精品国产精品亚洲| 91精品在线视频观看| 国产呦视频免费视频在线观看| 国模沟沟一区二区三区| 亚洲一区二区日韩欧美gif| 99成人在线观看| 免费观看精品视频999| 67194在线午夜亚洲| 国产精品99久久久久久董美香 | 久久福利网| 中文字幕人成人乱码亚洲电影| 亚洲天堂免费| 国产香蕉一区二区在线网站| 欧美色综合网站| www.91在线播放| 亚洲AV无码乱码在线观看裸奔| 搞黄网站免费观看| 日韩精品成人在线| 好久久免费视频高清| 亚洲三级a| 亚洲日韩AV无码一区二区三区人| 亚洲欧美日韩视频一区| 国产自在线播放| 18禁不卡免费网站| 久久人人97超碰人人澡爱香蕉| 久久国产香蕉| 亚洲精品在线观看91| 久久久亚洲色| 成人无码区免费视频网站蜜臀| 国产精品专区第一页在线观看| 亚洲第一视频网站| 国产精品永久在线| 制服丝袜在线视频香蕉| 欧美日本在线观看| 四虎精品黑人视频| 红杏AV在线无码| 欧美精品成人一区二区在线观看| 成人毛片在线播放| 福利国产在线| 国产成人一区| 久久这里只有精品国产99| 国产男女XX00免费观看| 欧美黄色网站在线看| 国产毛片基地| 精品国产福利在线| 久久99国产精品成人欧美| 日韩麻豆小视频| 全部无卡免费的毛片在线看| 欧洲极品无码一区二区三区| 99久久精彩视频| 91麻豆国产在线| 久久精品人妻中文视频| 日本一区二区三区精品AⅤ| 午夜在线不卡| 国产精品短篇二区| 国产chinese男男gay视频网| 欧美一区二区三区欧美日韩亚洲 | 国产97视频在线| 亚洲中文字幕久久无码精品A| 伊人久久久久久久久久| www中文字幕在线观看| 91麻豆精品国产91久久久久| 久久久久88色偷偷| 午夜限制老子影院888| 激情影院内射美女| 亚洲天堂在线免费|