轎車總裝線物料分送自動提示系統(tǒng)_第1頁
轎車總裝線物料分送自動提示系統(tǒng)_第2頁
轎車總裝線物料分送自動提示系統(tǒng)_第3頁
轎車總裝線物料分送自動提示系統(tǒng)_第4頁
轎車總裝線物料分送自動提示系統(tǒng)_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、維修電工高級技師職業(yè)資格考評論文轎車總裝線物料分送自動提示系統(tǒng)作 者姜民強(qiáng)工作單位上海大眾汽車南京分公司2016年2月維修電工高級技師職業(yè)資格考評論文轎車總裝線物料分送自動提示系統(tǒng)作 者姜民強(qiáng)職業(yè)技能鑒定等級高 級 技 師工作單位上海大眾汽車南京分公司單位地址南京江寧區(qū)勝太西路66號指導(dǎo)老師姜 平2016年2月 目錄摘要41. 物料分送自動提示系統(tǒng)的總體框架52. FIS系統(tǒng)服務(wù)器和尾氣服務(wù)器之間的UDP通訊73. 尾氣儀服務(wù)器和FIS系統(tǒng)聯(lián)網(wǎng)程序界面 104. 通過OmniPeek網(wǎng)絡(luò)抓包分析軟件分析UDP通訊協(xié)議185. 應(yīng)用C51單片機(jī)系統(tǒng) 316. 通過VB上位機(jī)程序控制C51單片機(jī)3

2、77. 物料分送自動提示系統(tǒng)系統(tǒng)程序界面428. ACCESS數(shù)據(jù)庫設(shè)計 519. 亮燈系統(tǒng)中SQLSERVER數(shù)據(jù)庫設(shè)計 63小結(jié) 63參考文獻(xiàn) 63轎車總裝線物料分送自動提示系統(tǒng)摘要作者自制的用于上海大眾南京分公司總裝車間生產(chǎn)線的物料分送自動提示系統(tǒng),是為了幫助裝配工從多種相近的物料中選擇正確的物料,裝配工掃描車身上的條形碼,提示系統(tǒng)會自動在正確的料盒上點(diǎn)亮指示燈,裝配工再根據(jù)指示燈拿取物料,就可以保證汽車裝配零件正確。物料分送自動提示系統(tǒng)采用Visual Basic 6.0、SQLSERVER數(shù)據(jù)庫、ACCESS數(shù)據(jù)庫和C51單片機(jī)系統(tǒng)制作。下文圖1物料分送自動提示系統(tǒng)實(shí)物照片顯示了一個

3、從9種標(biāo)簽中自動選擇正確物料的設(shè)備樣貌,左邊是料盒,右邊是計算機(jī)。關(guān)鍵詞 自動分配物料、Visual Basic、SQLSERVER、ACCESS、C51單片機(jī)圖1 物料分送自動提示系統(tǒng)實(shí)物照片1. 物料分送自動提示系統(tǒng)的總體框架物料分送自動提示系統(tǒng)需要的詳細(xì)生產(chǎn)物流數(shù)據(jù)保存在FIS系統(tǒng)服務(wù)器中, 物料分送自動提示系統(tǒng)先利用尾氣服務(wù)器和FIS服務(wù)器聯(lián)網(wǎng)下載數(shù)據(jù),然后物料分送自動提示系統(tǒng)的計算機(jī)再和尾氣服務(wù)器聯(lián)網(wǎng),圖2中尾氣服務(wù)器和物料分送自動提示系統(tǒng)計算機(jī)軟件都是作者編寫的。尾氣檢測服務(wù)器通過UDP協(xié)議定時去FIS系統(tǒng)中查詢有沒有新的車身通過總裝車間M01點(diǎn)工位;如果有新車身經(jīng)過M01點(diǎn)工位,

4、尾氣檢測服務(wù)器的軟件將新的生產(chǎn)物流數(shù)據(jù)下載到SQLSERVER數(shù)據(jù)庫中,(尾氣檢測服務(wù)器的軟件還負(fù)責(zé)將尾氣檢測結(jié)果上傳到FIS系統(tǒng)中所以圖2中標(biāo)注的是雙箭頭)。物料分送自動提示系統(tǒng)圖2中功能是每輛車經(jīng)過工位時,從尾氣服務(wù)器的SQLSERVER數(shù)據(jù)庫將詳細(xì)的車輛配置信息表下載下來。物料分送自動提示系統(tǒng)程序通過條形碼對比車輛配置信息表查詢出這輛車應(yīng)該安裝什么零件,從而在相應(yīng)的零件盒上點(diǎn)亮指示燈。下面圖2網(wǎng)絡(luò)數(shù)據(jù)流圖介紹了車輛配置信息表如何傳送到工位電腦。(FIS服務(wù)器在上海,尾氣服務(wù)器和物料分送自動提示系統(tǒng)電腦則在南京工廠)圖2 網(wǎng)絡(luò)數(shù)據(jù)流圖物料分送自動提示系統(tǒng)使用Visual Basic 6.0

5、 編程,Visual Basic(簡稱VB)是Microsoft公司開發(fā)的一種通用的基于對象的程序設(shè)計語言。 FIS系統(tǒng)是上海大眾公司生產(chǎn)信息采集和物流管理控制系統(tǒng)的簡稱。FIS系統(tǒng)是一個集成系統(tǒng)它涉及工廠所有的車輛生產(chǎn)過程。生產(chǎn)過程的所有區(qū)域(車身、油漆及總裝車間)都引進(jìn)FIS系統(tǒng),目標(biāo)是控制生產(chǎn)并將每輛車的技術(shù)特性通知給生產(chǎn)和物流區(qū)域的各個過程,從而保證生產(chǎn)全過程信息的一致性以及生產(chǎn)信息跟蹤的及時性,保證生產(chǎn)過程有良好的監(jiān)控性。 2. FIS系統(tǒng)服務(wù)器和尾氣服務(wù)器之間的UDP通訊FIS系統(tǒng)服務(wù)器和尾氣服務(wù)器之間的通訊采用UDP協(xié)議,在Visual Basic 6.0對UDP協(xié)議編程,采用w

6、insock控件。設(shè)定winsock控件服務(wù)器地址的Visual Basic程序: Winsock1.RemoteHost = 23 Winsock1.RemotePort = 52477 Winsock1.LocalPort = 52477Winsock1.Bind 綁定套接字屬性Winsock 控件提供了訪問 TCP 和 UDP 網(wǎng)絡(luò)服務(wù)的方便途徑。Microsoft Access、Visual Basic、Visual C+ 或 Visual FoxPro 的開發(fā)人員都可使用它。為編寫客戶或服務(wù)器應(yīng)用程序,不必了解 TCP 的細(xì)節(jié)或調(diào)用低級的 Winsock API

7、s。通過設(shè)置控件的屬性并調(diào)用其方法就可輕易連接到一臺遠(yuǎn)程機(jī)器上去,并且還可雙向交換數(shù)據(jù)。如下圖3 UDP協(xié)議通訊原理圖所示。圖3 UDP協(xié)議通訊原理圖用戶數(shù)據(jù)文報協(xié)議 (UDP) 是一個無連接協(xié)議。跟 TCP 的操作不同,計算機(jī)并不建立連接。另外 UDP 應(yīng)用程序可以是客戶機(jī),也可以是服務(wù)器。為了傳輸數(shù)據(jù),首先要設(shè)置客戶計算機(jī)的 LocalPort 屬性。然后,服務(wù)器計算機(jī)只需將 RemoteHost 設(shè)置為客戶計算機(jī)的 Internet 地址,并將 RemotePort 屬性設(shè)置為跟客戶計算機(jī)的 LocalPort 屬性相同的端口,并調(diào)用 SendData 方法來著手發(fā)送信息。于是,客戶計算

8、機(jī)使用 DataArrival 事件內(nèi)的 GetData 方法來獲取已發(fā)送的信息。 軟件啟動,首先Ping服務(wù)器看服務(wù)器網(wǎng)絡(luò)是否通暢。下面是PING程序: If (Ping2(23) = OK) Then FIS Form1.txtFIS.BackColor = RGB(0, 255, 0) Form1.cyclestatus.FillColor = RGB(0, 255, 0) Else Form1.txtFIS.BackColor = RGB(255, 255, 255) Form1.cyclestatus.FillColor = RGB(255, 0, 0) 紅色

9、Form1.lblMs01.Caption = 與FIS服務(wù)器23之間網(wǎng)絡(luò)中斷 End If 下圖4為ping測試程序流程圖:圖4 ping測試程序流程圖 3. 尾氣儀服務(wù)器和FIS系統(tǒng)聯(lián)網(wǎng)程序界面 尾氣和FIS聯(lián)網(wǎng)程序界面如下圖5所示,前四行顯示程序的各個主要變量方便程序調(diào)試;5至9行顯示了FIS系統(tǒng)UDP協(xié)議通訊78到80通道的通訊狀態(tài);程序第10行顯示了從FIS下載了哪些輛車的配置信息;程序第11行顯示了上傳了哪些輛車的尾氣檢測結(jié)果。下圖5為尾氣和FIS聯(lián)網(wǎng)程序界面。圖5 尾氣和FIS服務(wù)器聯(lián)網(wǎng)程序界面VB6中編寫的依次打開各個通道源代碼:Timer4dakai定時

10、器設(shè)定為每秒啟動一次Private Sub Timer4dakai_Timer() 打開通道80 If (txtqingqiu78.BackColor = RGB(0, 255, 0) And (txtqingqiu77.BackColor = RGB(0, 255, 0) And (txtqingqiu79.BackColor = RGB(0, 255, 0) And (txtqingqiu81.BackColor = RGB(0, 255, 0) And (txtqingqiu80.BackColor RGB(0, 255, 0) Then OPENtongdao80 Timer4daka

11、i.Enabled = False OVER End If 打開通道81 If (txtqingqiu78.BackColor = RGB(0, 255, 0) And (txtqingqiu77.BackColor = RGB(0, 255, 0) And (txtqingqiu79.BackColor = RGB(0, 255, 0) And (txtqingqiu81.BackColor RGB(0, 255, 0) Then OPENtongdao81 End If 打開通道79 If (txtqingqiu78.BackColor = RGB(0, 255, 0) And (txtq

12、ingqiu77.BackColor = RGB(0, 255, 0) And (txtqingqiu79.BackColor RGB(0, 255, 0) Then OPENtongdao79 End If 打開通道77 If (txtqingqiu78.BackColor = RGB(0, 255, 0) And (txtqingqiu77.BackColor RGB(0, 255, 0) Then OPENtongdao77 End If 打開通道78 If txtqingqiu78.BackColor RGB(0, 255, 0) Then OPENtongdao78 End IfEn

13、d Sub程序說明:如果78通道沒有打開,打開78通道;如果78通道打開了且77通道沒有打開,打開77通道;如果78和77通道打開了且79通道沒有打開,打開79通道;如果78、 77和79通道打開了而81通道沒有打開,打開81通道;如果78、 77、79和81通道打開了而80通道沒有打開,打開80通道,關(guān)閉通道打開定時器 下圖6為尾氣服務(wù)器和FIS系統(tǒng)通訊逐個通道打開程序流程圖 圖6 逐個通道打開下圖7為通訊通道打開后程序顯示狀態(tài),因?yàn)橥ǖ拦δ懿煌蜷_后狀態(tài)也不同。 圖7 通道打開后程序顯示狀態(tài) Channels # Ch, Area, Base, Offs, Buffer, Port, Ty

14、pe, SNoT, SNoR, Segment, Timeout, Restart Point length, Description Ch1 = 77, PC, 0, 0, 512, 1, S, 0001, 0077, N, 20, 0, LIFE-SIGAL # Ch2 = 78, PC, 0, 0, 512, 1, S, 0002, 0078, Y, 20, 6, M01-Prevew # Ch3 = 79, PC, 0, 0, 512, 1, M, 0003, 0079, N, 20, 0, Fast Request# Ch4 = 80, PC, 0, 0, 512, 1, S, 00

15、04, 0080, Y, 20, 0, Fast answer # Ch5 = 81, PC, 0, 0, 512, 1, M, 0005, 0081, N, 20, 0, Result #通道1,77通道,心跳信號通道2,78通道,過M01點(diǎn)車輛信息通道3,79通道,發(fā)送快速查詢請求通道4,80通道,接收快速查詢的結(jié)果通道5,81通道,尾氣檢測結(jié)果上傳通道FIS系統(tǒng)UDP(用戶數(shù)據(jù)文報協(xié)議)的命令主要分為6種:SO 請求打開通道AO 確認(rèn)打開通道SD 發(fā)送數(shù)據(jù)AD 確認(rèn)接收到數(shù)據(jù)SC 請求關(guān)閉通道AC 確認(rèn)關(guān)閉通道 下圖8為和FIS系統(tǒng)通訊時,打開通訊通道的程序流程圖。 圖8 打開通道程序流

16、程圖在與FIS系統(tǒng)通訊中通道78最為重要,78通道負(fù)責(zé)將通過總裝車間M01點(diǎn)的車輛數(shù)據(jù)從FIS服務(wù)器傳送到尾氣服務(wù)器。程序流程如下,首先程序啟動,初始化變量,然后尾氣服務(wù)器向FIS服務(wù)器發(fā)送請求打開78通道命令,如:“2015-10-27 13:33:23 發(fā)送 000100020078SO000000000000000000000200051200060000000000”;0001代表是第一條通訊0002 在尾氣服務(wù)器上是第二通道0078 在FIS服務(wù)器是第78通道SO 命令SO 請求打開通道02 代表分片傳輸0512 最大數(shù)據(jù)塊長度為512 4. 通過OmniPeek網(wǎng)絡(luò)抓包分析軟件分析

17、UDP通訊協(xié)議為了了解FIS系統(tǒng)的運(yùn)行原理,我使用了WildPacketsOmniPeek網(wǎng)絡(luò)抓包分析軟件,去分析FIS系統(tǒng)的通訊協(xié)議。OmniPeek是一款WildPackets發(fā)布的有線和無線網(wǎng)絡(luò)分析和抓包軟件,OmniPeek和其他抓包軟件一樣,OmniPeek可以針對自己網(wǎng)卡接收和發(fā)送的每個數(shù)據(jù)包進(jìn)行分析和保存,另外還可以針對一些廣播數(shù)據(jù)包進(jìn)行分析,結(jié)合各種過濾規(guī)則可以讓我們更清楚的了解當(dāng)前網(wǎng)絡(luò)中存在的問題。OmniPeek下載完成之后,安裝過程就不介紹了,對于windows下的軟件安裝一般一路NEXT都能成功安裝。安裝完成后打開軟件。下圖9就是打開后的主界面。 圖9 OmniPeek

18、主界面 OmniPeek網(wǎng)絡(luò)統(tǒng)計窗口 OmniPeek有網(wǎng)絡(luò)統(tǒng)計功能,下圖10即網(wǎng)絡(luò)統(tǒng)計窗口 圖10 網(wǎng)絡(luò)統(tǒng)計窗口界面的左下角的網(wǎng)絡(luò)統(tǒng)計窗口有三個刻度盤與相應(yīng)的數(shù)字顯示。*網(wǎng)絡(luò)使用率(用百分比的方式表示)*數(shù)據(jù)流量(每秒數(shù)據(jù)包)*誤差率(每秒的總誤差) 下圖11是切換到“Value”選項卡,顯示的具體網(wǎng)絡(luò)信息: 圖11網(wǎng)絡(luò)狀態(tài)持續(xù)時間:此參數(shù)顯示經(jīng)過時間“小時:分鐘:秒:“自從你開始收集監(jiān)測數(shù)據(jù)格式。收到的數(shù)據(jù)包:此參數(shù)顯示收到的數(shù)據(jù)包從你開始收集監(jiān)測統(tǒng)計。接收的字節(jié)數(shù):此參數(shù)顯示收到的字節(jié)從你開始收集監(jiān)測統(tǒng)計。組播:此參數(shù)顯示包處理多播地址從你開始收集監(jiān)測統(tǒng)計。廣播:此參數(shù)顯示的數(shù)據(jù)包廣播地

19、址從你開始收集監(jiān)測統(tǒng)計。 OmniPeek個人日志窗口 OmniPeek擁有詳細(xì)的日志功能,下圖12為網(wǎng)絡(luò)日志界面: 圖12 網(wǎng)絡(luò)日志界面界面的右下角:當(dāng)程序啟動時,一個日志文件(稱為Peek.log)在ApplicationData文件夾中創(chuàng)建。三種類型的事件會被寫入這個日志文件中。* 程序的啟動或停止,或創(chuàng)建一個新的窗口捕捉。* 在設(shè)置對話框中指定的事件。* 活動指定發(fā)送的日志類型通知窗口的第一行,用不同的圖標(biāo)顏色顯示消息總數(shù)中的日志和故障的嚴(yán)重程度Messages:信息總數(shù)白色i:表示請求成功的信息。綠色!:表示輕微型提示(個人理解)黃色!:警告信息紅色x:錯誤信息那么我們可以對這些日志

20、做那些操作呢?(點(diǎn)擊某一條信息右鍵出現(xiàn)菜單)保存日志:選擇此選項將日志保存為一個文本文件(制表符分隔或逗號分隔值)。打印日志:選擇此選項可打印的登錄窗口。要更改默認(rèn)打印設(shè)置,選擇打印設(shè)置.從“文件”菜單上。復(fù)制:選擇此選項復(fù)制單獨(dú)的行日志文件為制表符分隔的文本復(fù)制到剪貼板。清除日志:選擇此選項可清除或清空日志文件。最大日志文件大?。哼x擇此選項可打開一個對話框,您可以在其中輸入新的日志文件的最大尺寸,以千字節(jié)為單位(默認(rèn)為4MB)。當(dāng)達(dá)到限制時,將刪除舊的日志項,以騰出空間給新的。自動滾屏:選擇此選項來切換日志的自動滾動功能。(注:如果不小心關(guān)閉了這個窗口,可以點(diǎn)擊工具欄上的ViewLog或菜單

21、欄ViewLogWindow)可以在StartPage窗口上點(diǎn)擊“newcapture”按鈕,創(chuàng)建一個新的數(shù)據(jù)捕捉,下圖13所示為OmniPeek數(shù)據(jù)捕捉界面 圖13 數(shù)據(jù)捕捉選項這里可以設(shè)置捕獲的名稱,文件保存的位置等。 由于電腦中有多個網(wǎng)卡,應(yīng)如下圖14所示的界面中選擇網(wǎng)卡: 圖14 選擇網(wǎng)卡 OmniPeek網(wǎng)絡(luò)抓包中,可以選擇某個通訊協(xié)議單獨(dú)進(jìn)行捕捉,如下圖15所示: 圖15 協(xié)議包的過濾 創(chuàng)建完成后,點(diǎn)擊數(shù)據(jù)捕捉窗口右上角的“StartCapture”按鈕。工具開始抓取所有經(jīng)過網(wǎng)卡的數(shù)據(jù)包。點(diǎn)擊“StopCapture”停止抓取。如下圖16所示,OmniPeek正在進(jìn)行網(wǎng)絡(luò)抓包:圖1

22、6 正在進(jìn)行網(wǎng)絡(luò)抓包Ominpeek能做哪些分析 1)主機(jī)排名,發(fā)現(xiàn)網(wǎng)絡(luò)中通信量最大的主機(jī),如圖17所示 圖17通信量最大的主機(jī) 2)協(xié)議排名,可以對監(jiān)控的所有協(xié)議進(jìn)行排名,找到使用最多的協(xié)議,如圖18所示: 圖18使用最多的協(xié)議3)主機(jī)在使用的協(xié)議。查看某一主機(jī)在使用哪些協(xié)議。在主機(jī)排名界面,雙擊某一主機(jī),顯示如圖19所示界面: 圖19主機(jī)在使用哪些協(xié)議 4)通過PeerMap網(wǎng)絡(luò)分布圖了解主機(jī)會話的實(shí)時情況,如圖20所示: 圖20主機(jī)會話 5) 深入解碼分析。OmniPeek可以進(jìn)行抓包,記錄下網(wǎng)卡的所有通訊,通過LOG文件可以進(jìn)行深入的解碼分析,如圖21所示: 圖21解碼分析 上海大眾汽

23、車FIS系統(tǒng)的UDP協(xié)議分析 圖22 協(xié)議分析Destination:00:12:00:40:E9:FF目的的適配器的mac地址為00:12:00:40:E9:FFSource:00:E0:81:02:CB:F0Tyan:02:CB:F0傳輸該幀到LAN上的適配器的mac地址為00:E0:81:02:CB:F0協(xié)議標(biāo)識域ProtocolType:0x0800IP表明封裝協(xié)議是IP協(xié)議 圖23所示是抓到的FIS系統(tǒng)中收發(fā)數(shù)據(jù)包分析: 圖23 報文截圖總之,通過Ominpeek的抓包分析,F(xiàn)IS生產(chǎn)系統(tǒng)的數(shù)據(jù)能夠正常下載到尾氣分析儀的服務(wù)器中,然后物料分送自動提示系統(tǒng)設(shè)備可以通過VB軟件對尾氣分析

24、儀服務(wù)器上的SQLSEVER數(shù)據(jù)庫根據(jù)VIN號或KRN號碼進(jìn)行搜索(車身上貼了2種號碼,掃描那種號碼根據(jù)操作工的喜好而定,兩種號碼都被軟件支持)查詢出車輛的具體配置信息。 配合Ominpeek使用的硬件設(shè)備端口鏡像交換機(jī) 本文使用的端口鏡像交換機(jī)是TP-LINK公司TL-SF2005型交換機(jī)。 端口鏡像是指將交換機(jī)的被監(jiān)控端口鏡像到指定的端口(鏡像端口)。被監(jiān)控口發(fā)送/接收的數(shù)據(jù),將拷貝一份轉(zhuǎn)發(fā)給鏡像端口,以便網(wǎng)管人員可以對被監(jiān)控端口的數(shù)據(jù)幀進(jìn)行分析、評估。端口鏡像功能被廣泛應(yīng)用于網(wǎng)絡(luò)監(jiān)控。TL-SF2005支持3個端口到一個端口的端口鏡像。5-port端口鏡像交換機(jī)提供5個固定的10/100

25、M自適應(yīng)RJ45端口,其與對端以太網(wǎng)口的連接過程如下:將網(wǎng)線一端連接到交換機(jī),另一端連接到對端設(shè)備,如圖24所示: 圖24 端口鏡像交換機(jī)端口鏡像交換機(jī)的上聯(lián)口(端口1)接外網(wǎng),監(jiān)控的筆記本電腦上運(yùn)行監(jiān)控軟件(Ominpeek)接監(jiān)控口(端口2),被監(jiān)控的電腦接端口3、端口4和端口5,如圖25所示: 圖25 端口鏡像交換機(jī)網(wǎng)絡(luò)圖 5. 應(yīng)用C51單片機(jī)系統(tǒng)物料分送自動提示系統(tǒng)的單片機(jī)繼電器輸出板選擇的是卓越物聯(lián)公司的HC10-16-RS232。單片機(jī)繼電器輸出板在在物料分送自動提示系統(tǒng)中的作用是點(diǎn)亮和關(guān)閉LED信號燈。HC10-16-RS232是一種51單片機(jī),51單片機(jī)是對目前所有兼容Int

26、el 8031指令系統(tǒng)的單片機(jī)的俗稱。該系列單片機(jī)的始祖是INTEL公司。80C51單片機(jī)目前已經(jīng)成為8位單片機(jī)的經(jīng)典代表,原因是INTEL公司將51單片機(jī)技術(shù)公開,授權(quán)給其他公司生產(chǎn)。隨著FLASH ROM技術(shù)的的發(fā)展,80C51單片機(jī)取得更長足的進(jìn)展,尤其是ATMEL公司的AT898系列,它廣泛應(yīng)用于工業(yè)測控系統(tǒng)之中,因?yàn)樗诵阅芊€(wěn)定之外,程序燒錄過程特別簡單。下圖26所示為系統(tǒng)中使用的單片機(jī)照片:圖26 系統(tǒng)中使用的單片機(jī)照片 物料分送自動提示系統(tǒng)的電腦通過VB上位機(jī)軟件控制單片機(jī)繼電器輸出板,打開和關(guān)閉料盒上的綠色LED信號燈,提示裝配工應(yīng)該選擇哪種物料,下圖27照片顯示了一個從9種

27、標(biāo)簽中自動選擇正確物料的設(shè)備樣貌,左邊是料盒,右邊是計算機(jī)。圖27 物料分送自動提示系統(tǒng)照片 指示燈的位置 單片機(jī)繼電器輸出板的廠家提供了范例程序,如下圖28所示:圖28 繼電器板測試本文作者使用AccessPort這款串口監(jiān)視工具分析廠家范例程序和單片機(jī)繼電器控制板之間的通訊,分析出單片機(jī)和上位機(jī)之間的通訊協(xié)議。第一步,打開ACCESSPORT軟件,點(diǎn)擊監(jiān)控菜單,點(diǎn)擊PORTS菜單,選擇計算機(jī)和單片機(jī)連接的那個串口,如圖29所示: 圖29 選擇捕捉的串口 第二步,點(diǎn)擊開始監(jiān)控按鈕,啟動被監(jiān)控軟件,ACCESSPORT畫面中開始顯示被監(jiān)控軟件交換的數(shù)據(jù)和觸發(fā)的計算機(jī)事件。依次點(diǎn)擊廠家(卓越物流

28、)提供的軟件中的第一路吸合、第二路吸合將廠家軟件中各個按鈕命令格式捕捉下來,就獲得一本完整的通訊協(xié)議,如圖30所示。圖30 數(shù)據(jù)抓包 第三步,點(diǎn)擊文件菜單下另存為按鈕,將串口數(shù)據(jù)抓包保存下來,如圖31所示。圖31 保存數(shù)據(jù)抓包第四步 分析捕捉的串口數(shù)據(jù),獲得如下規(guī)律:AA5A000100FF 打開繼電器1 AA5A000000FF 關(guān)閉繼電器1AA5A001100FF 打開繼電器2 AA5A001000FF 關(guān)閉繼電器2AA5A002100FF 打開繼電器3 AA5A002000FF 關(guān)閉繼電器3AA5A003100FF 打開繼電器4 AA5A003000FF 關(guān)閉繼電器4AA5A004100

29、FF 打開繼電器5 AA5A004000FF 關(guān)閉繼電器5AA5A005100FF 打開繼電器6 AA5A005000FF 關(guān)閉繼電器6AA5A006100FF 打開繼電器7 AA5A006000FF 關(guān)閉繼電器7AA5A007100FF 打開繼電器8 AA5A007000FF 關(guān)閉繼電器8AA5A008100FF 打開繼電器9 AA5A008000FF 關(guān)閉繼電器9AA5A009100FF 打開繼電器10 AA5A009000FF 關(guān)閉繼電器10AA5A00A100FF 打開繼電器11 AA5A00A000FF 關(guān)閉繼電器11AA5A00B100FF 打開繼電器12 AA5A00B000FF

30、 關(guān)閉繼電器12AA5A00C100FF 打開繼電器13 AA5A00C000FF 關(guān)閉繼電器13AA5A00D100FF 打開繼電器14 AA5A00D000FF 關(guān)閉繼電器14AA5A00E100FF 打開繼電器15 AA5A00E000FF 關(guān)閉繼電器15AA5A00F100FF 打開繼電器16 AA5A00F000FF 關(guān)閉繼電器16AA5A00FF00FF 打開所有繼電器 AA5A00FE00FF 關(guān)閉所有繼電器 6. 通過VB上位機(jī)控制C51單片機(jī)程序VB上位機(jī)程序設(shè)計,實(shí)現(xiàn)打開繼電器功能:打開繼電器命令一共有6位數(shù)據(jù),除了第4位OutByte(3)外,其他數(shù)據(jù)位內(nèi)容相同。程序如下

31、:Public Function 打開繼電器(ByVal 號碼 As Integer) Dim OutByte(5) As Byte OutByte(0) = &HAA OutByte(1) = &H5A OutByte(2) = &H0 OutByte(4) = &H0 OutByte(5) = &HFF Select Case 號碼 Case 0 OutByte(3) = &H1 Case 1 OutByte(3) = &H11 Case 2 OutByte(3) = &H21 Case 3 OutByte(3) = &H31 Case 4 OutByte(3) = &H41 Case 5

32、 OutByte(3) = &H51 Case 6 OutByte(3) = &H61 Case 7 OutByte(3) = &H71 Case 8 OutByte(3) = &H81 Case 9 OutByte(3) = &H91 Case 10 OutByte(3) = &HA1 Case 11 OutByte(3) = &HB1 Case 12 OutByte(3) = &HC1 Case 13 OutByte(3) = &HD1 Case 14 OutByte(3) = &HE1 Case 15 OutByte(3) = &HF1 End Select Form1.MSComm繼電

33、器16路.Output = OutByte Pause1.Delay 500 Form1.MSComm繼電器16路.Output = OutByte Pause1.Delay 500 Form1.MSComm繼電器16路.Output = OutByte Pause1.Delay 500 End Function關(guān)閉繼電器程序設(shè)計關(guān)閉繼電器命令一共有6位數(shù)據(jù),除了第4位OutByte(3)外,其他數(shù)據(jù)位內(nèi)容相同。程序如下:Public Function 關(guān)閉繼電器(ByVal 號碼 As Integer) Dim OutByte(5) As Byte OutByte(0) = &HAA Out

34、Byte(1) = &H5A OutByte(2) = &H0 OutByte(4) = &H0 OutByte(5) = &HFF Select Case 號碼 Case 0 OutByte(3) = &H0 Case 1 OutByte(3) = &H10 Case 2 OutByte(3) = &H20 Case 3 OutByte(3) = &H30 Case 4 OutByte(3) = &H40 Case 5 OutByte(3) = &H50 Case 6 OutByte(3) = &H60 Case 7 OutByte(3) = &H70 Case 8 OutByte(3) =

35、 &H80 Case 9 OutByte(3) = &H90 Case 10 OutByte(3) = &HA0 Case 11 OutByte(3) = &HB0 Case 12 OutByte(3) = &HC0 Case 13 OutByte(3) = &HD0 Case 14 OutByte(3) = &HE0 Case 15 OutByte(3) = &HF0 End Select Form1.MSComm繼電器16路.Output = OutByteEnd Function 7. 物料分送自動提示系統(tǒng)程序界面 物料分送自動提示系統(tǒng)程序應(yīng)用于油箱蓋標(biāo)簽自動分揀,第一行是測試單片機(jī)繼電

36、器打開和關(guān)閉功能,第二和第三行是從尾氣SQLSERVER查詢到的車輛配置信息,第四行是10個物料盒中點(diǎn)亮哪幾個物料盒的燈,第五行是串口1收到的條形碼,物料分送自動提示系統(tǒng)油箱蓋標(biāo)簽工位程序界面如下圖32所示:圖32 物料分送自動提示系統(tǒng)油箱蓋標(biāo)簽工位程序界面 連接條形碼掃描儀串口軟件編寫物料分送自動提示系統(tǒng)需要操作工對生產(chǎn)的每一輛車掃描一次條形碼,為了節(jié)省操作工的工作系,系統(tǒng)采用共享汽車加注機(jī)的條碼掃描儀數(shù)據(jù)的設(shè)計。具體為,將原加注機(jī)條形碼掃描儀接到物料分送自動提示系統(tǒng)電腦的串口上,每次條碼掃描儀掃描時,物料分送自動提示系統(tǒng)通過一根RS232串口通訊線將條碼立刻發(fā)送給加注機(jī)。這樣物料分送自動提

37、示系統(tǒng)和加注機(jī)兩臺設(shè)備操作工只需掃描一次條形碼。汽車上面有兩種條碼KRN和VIN,為了方便用戶,系統(tǒng)設(shè)計為KRN條碼和VIN條碼都可以使用。KRN條形碼以字符串”C2”開頭,VIN條形碼以字符串”LS”開頭,程序設(shè)計如下:Private Sub txt接收條形碼_Change() Text車型名稱.Text = Dim str1 As String str1 = txt接收條形碼.Text Form1.txt條碼長度.Text = Len(str1) str1 = UCase$(str1) log_txt (從數(shù)據(jù)庫接收到條碼: & str1) Dim head1 As String head

38、1 = Left$(str1, 2) 關(guān)閉全部繼電器 點(diǎn)亮物料的LED燈 If Len(str1) = 16 And head1 = C2 Then KRN碼 str1 = Left$(str1, 14) Form1.Textbox串口1接收.Text = Now() & 接收到KRN: & str1 & & Chr(13) & Chr(10) & Form1.Textbox串口1接收.Text 讀發(fā)動機(jī)類型byKRN (str1) End If If Len(str1) = 19 And head1 = LS Then VIN碼 str1 = Left$(str1, 17) Form1.Te

39、xtbox串口1接收.Text = Now() & 接收到VIN: & str1 & & Chr(13) & Chr(10) & Form1.Textbox串口1接收.Text 讀發(fā)動機(jī)類型byVIN (str1) End IfEnd Sub 物料分送自動提示系統(tǒng)和加注系統(tǒng)共享條碼掃描儀的實(shí)現(xiàn) 如下圖33所示,COM1(串口1)負(fù)責(zé)接收,條碼掃描儀接在COM1口; COM2(串口2)負(fù)責(zé)發(fā)送條形碼到加注機(jī),加注機(jī)的通訊口接在COM2口。物料分送自動提示系統(tǒng)收到的每個條碼都立刻轉(zhuǎn)發(fā)給了加注系統(tǒng),從而實(shí)現(xiàn)共享條碼掃描儀。圖33 與加注機(jī)通訊程序界面Private Sub MSComm1_OnCom

40、m() Select Case MSComm1.CommEvent Case comEvReceive 發(fā)生接收事件時 緩存 Dim buf As String buf = MSComm1.Input If Len(接收緩存1) 0 Then 接收緩存1 = 接收緩存1 & buf Else 接收緩存1 = buf End If Form1.txtcom1接收緩存.Text = 接收緩存1 Timer_com1rec.Enabled = True COM1count1 = 0 Case Else End SelectEnd Sub物料分送自動提示系統(tǒng)采用微軟的MSComm控件, MSComm

41、控件提供“事件驅(qū)動通訊”,“事件驅(qū)動通訊”是處理串行端口交互作用的一種非常有效的方法。在許多情況下,在事件發(fā)生時需要得到通知,例如,在 Carrier Detect (CD) 或 Request To Send (RTS) 線上一個字符到達(dá)或一個變化發(fā)生時。在這些情況下,可以利用 MSComm 控件的 OnComm 事件捕獲并處理這些通訊事件。OnComm 事件還可以檢查和處理通訊錯誤。程序中Case comEvReceive 代表收到數(shù)據(jù),觸發(fā)comEvReceive事件,至于收到幾個字符可以再控件的Rthreshold屬性中設(shè)置,這里Rthreshold屬性設(shè)置為1,MSComm控件每收到

42、1個字符,都會觸發(fā)一次comEvReceive事件。 通訊事件包括下列設(shè)置值:常數(shù)值描述comEvSend1在傳輸緩沖區(qū)中有比 Sthreshold 數(shù)少的字符。comEvReceive2收到 Rthreshold 個字符。該事件將持續(xù)產(chǎn)生直到用 Input 屬性從接收緩沖區(qū)中刪除數(shù)據(jù)。comEvCTS3Clear To Send 線的狀態(tài)發(fā)生變化。comEvDSR4Data Set Ready 線的狀態(tài)發(fā)生變化。該事件只在 DST 從 1 變到 0 時才發(fā)生。comEvCD5Carrier Detect 線的狀態(tài)發(fā)生變化。comEvRing6檢測到振鈴信號。一些 UART(通用異步接收 傳輸

43、)可能不支持該事件。comEvEOF7收到文件結(jié)束(ASCII 字符為 26)字符。If Len(接收緩存1) 0 Then 接收緩存1 = 接收緩存1 & buf Else 接收緩存1 = buf End If如果變量“接收緩存1”的長度小于等于0 說明是第一次接收,變量“接收緩存1”直接等于buf,否則“接收緩存1”等于 接收緩存1 加上buf。Timer_com1rec.Enabled = TrueCOM1count1 = 0如果MSComm1控件一直連續(xù)收到數(shù)據(jù),說明數(shù)據(jù)都是一個條型碼碼的此時計時器Timer_com1rec中的變量COM1count1=0被不斷置0;如果MSComm1

44、控件停止收到數(shù)據(jù),則變量COM1count1累加,當(dāng)COM1count1累加到2時說明MSComm1控件有1秒時間沒有收到數(shù)據(jù),程序則啟動COM1receive01子程序,處理串口收到的條形碼。Private Sub Timer_com1rec_Timer() COM1count1 = COM1count1 + 1 If COM1count1 2 Then COM1receive01 (接收緩存1) 接收緩存1 = Timer_com1rec.Enabled = False COM1count1 = 0 End IfEnd Sub VB程序接受條碼程序流程圖如圖34所示:圖34 接收條形碼程序

45、流程圖Public Sub COM1receive01(str1 As String) Form1.MSComm2.Output = str1 log_txt (發(fā)送到加注機(jī)_ & str1) 更新條形碼 (str1) Form1.Textbox串口1接收.Text = Now() & 接收到條形碼: & str1 & & Chr(13) & Chr(10) & Form1.Textbox串口1接收.Text End Sub 8. ACCESS數(shù)據(jù)庫設(shè)計為了調(diào)試方便物料分送自動提示系統(tǒng)程序分成兩部分 串口接收條形碼部分和主程序部分(控制單片機(jī)和網(wǎng)絡(luò)通信部分),兩部分之間用ACCESS數(shù)據(jù)庫進(jìn)行通訊。串口接收條形碼部分接收到新的條形碼就會立刻更新ACCEESS數(shù)據(jù)庫中“條形碼表”的“條形碼”字段,如下圖35所示,為ACCESS數(shù)據(jù)庫表設(shè)計:圖35

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論