《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 用于卷煙機組的CAN總線實時監聽器的設計與實現
用于卷煙機組的CAN總線實時監聽器的設計與實現
中電網
向立莉 梁杰申 王星
摘要: 本文闡述了如何利用PCI-9810(非智能單路CAN卡)作為硬件接口,用DEPHI軟件開發平臺開發出友好的CAN總線實時監聽器來實現對CAN-BUS線路數據的實時的,準確的監聽以及根據工作人員的需要進行清楚易觀的實時分類顯示。
Abstract:
Key words :


引 言
  
卷煙生產中的卷煙機組主要包括兩大部分,上位機MLP,用于為控制系統和檢測系統提供操作和顯示的裝置,它包括一個工業PC和一個監視器。以及下位機SRP,包括傳感器,調節裝置或者檢測裝置。SRP主要包括四種結點1)SPS,2)HIP,3)CIS,4)SRM。上位機和下位機各結點之間的通信是頻繁的,數據對象眾多,數據種類也繁多,包括參數上傳,下傳,指令,域數據等等,所以在這之中,難免會因為操作人員操作失誤或者控制器本身的原因導致錯誤,但錯誤發生的時候需要盡快的分析,發現錯誤,解決錯誤。因此我們需要建立一個可靠的錯誤判斷機制。本文所討論的CANBUS實時監聽器正是應這種需求而產生的。工作人員根據實時監聽器所捕獲的并且友好顯示的線路上的適時數據便可分析出是哪一方出了問題,出了什么類型的問題。這對安全生產,準確控制起了舉足輕重的作用。

(一) 硬件實現
  
在實時監聽器的實現中,我們選擇采用了周立功公司的PCI-9810非智能CAN接口卡作為硬件接口用于接收捕獲CAN總線上的傳輸數據。如下圖
  
PCI-9810非智能CAN接口卡是具有高性能價格比的CAN-bus總線通訊適配卡,它使PC機方便的連接到CAN總線上,實現CAN2.0B協議的連接通訊。它是一款采用專用PCI接口轉換芯片設計的非智能型CAN接口卡,即插即用,符合PCI2.1規范。它采用中斷接收方式,可最大限度減輕占用PC的負荷;具有最多8幀的數據緩沖區。另外我們采用了周立功公司提供的Windows驅動程序升級版PCI-9810BWDM驅動文件將其驅動。


(二) 界面軟件實現
  
界面軟件實現主要包括四大方面,1)軟件平臺的選擇,2)對硬件接口CAN卡的使用,3)利用接口接收CANBUS線路上數據的實現,4)所接收數據的處理(主要是判斷和顯示)的實現。
  
〈1〉軟件平臺的選擇—DELPHI

系統的開發可利用多種程序設計語言,如DELPHI,VB,VC,PB等語言都是面向對象的程序設計語言,但把幾者相比較,DELPHI是唯一一套能夠同時適用于開發數據庫應用、網絡及WEB 應用等所有軟件的高效率開發環境,且第三方控件多,開發比較快,且設計界面比VB,VC,PB 靈活?;谝陨弦蛩兀紤]到所要監聽CANBUS線路的傳輸數據信息量大、種類多,以及信息之間相對獨立,又有關系且必須備有優良的圖形顯示等特點,我們選擇DELPHI作為軟件開發平臺。
  
〈2〉對硬件接口PCI-9810的操作的實現
  
在DELPHI程序中,我們是通過調用周立功提供的通用VCI動態鏈接庫來實現對硬件接口PCI-9810的操作的,該動態鏈接庫提供了界面軟件能在windows下運行必需的代碼和其他資源,其中主要包括十個接口函數如設備相關函數和CAN通訊相關函數以及相關的數據結構的定義。把動態鏈接庫文件夾添加到項目文件夾,然后把庫源文件添加到程序代碼的應用文件單元即可實現對動態鏈接庫的調用,也就實現了對PCI-9810卡的打開,關閉,啟動,復位,收發數據等操作。
  
〈3〉CANBUS線路上數據的實時接收
  
CANBUS線路上的數據對CAN卡來說有著不期性,所以要能對數據實時,準確的接收,必須要通過程序實現一種功能即線路上一旦有數據,就能捕獲。對于此,我們采用的方式是利用多線程。即在程序中專門開辟一個線程用于對線路的監聽,接收。
  
關于多線程
  
在32位的windows系統中,系統可以同時運行多個進程,一個調入內存并準備執行的應用程序稱為一個進程,它由裝入內存的程序代碼和操作系統及由此創建的應用程序執行環境組成,進程就是應用程序的運行實例。每個進程都有自己私有的虛擬地址空間和動態分配的內存,以及文件,線程和其它模塊。每個進程都有一個主線程,但可以建立另外的線程。進程中的線程是并行執行的,每個線程占用CPU的時間由系統來劃分,可以把線程看成是操作系統分配CPU時間的基本實體。每個進程也可以同時執行多個線程并由系統不停地在各個線程之間切換。
  
多線程的DELPHI實現
  
雖然Windows 提供了比較多的多線程設計的API 函數,但是直接使用API 函數一方面極其不方便,而且使用不當還容易出錯。為避免這個問題,我們采用了DEPHI所提供的方法即繼承TThread類產生線程對象。TThread由DELPHI的VCL類庫提供用于線程編程。在Tthread類中封裝了windows中關于線程機制的API函數,繼承TThread類產生的線程對象就代表了實際程序中的一個線程。線程對象通過封裝使用線程所需的內容大大簡化了多線程問題的處理。另外,在DELPHI中,Tthread在Classes單元中聲明,直接從Tobject繼承下來的,因此,它不是組件。Tthread是個抽象類,所以不能創建Tthread的實例,而只能創建其派生類的實例。在本程序中利用Ttread類來編寫多線程的步驟如下
  
(1)從Tthread類派生出一個新的線程類。即建立的TreceiveThread。
  
(2)創建線程對象。即在Types里面定義thread1:TreceiveThread。
  
(3)在DELPHI自動生成的用于保存派生類代碼的新的單獨的文件中重載Execute過程,在該過程中將對CAN線路上的數據實時接收并調用對接收到的數據進行處理的基本顯示和分類顯示函數。在Execute過程中使用了repeat…..until語句來判斷過程是否結束。
  
(4)如果Execute過程執行完畢,則該線程就結束了,并釋放線程占用的??臻g。
  
〈4〉對所接收的數據進行處理
  
對數據的實時處理包括兩方面:1)將接收到的數據楨按照接收數據的數據結構完全顯示,這包括楨類型,楨格式,楨ID,楨數據等等。2)將數據進行更深一層的分析判斷出數據的真實含義,并將其填入對應的文本框或者畫出對應的狀態圖等等。
  
(1)對于第一種基本顯示,我們采用的是用DELPHI提供的listbox控件進行
  
滾動顯示,listbox的容量足夠本顯示的需要,另外,我們還添加了一個按鈕控件用于按照操作人員的需要隨時清除listbox里面的內容。
  
(2)對于第二種分類顯示。對于不同的數據,我們將用不同的分析處理方法進行顯示。根據數據的現實含義,主要分為1)上,下傳參數。2)域請求和域數據,3)下傳指令和上傳消息。下面將分別介紹處理方法:

1 利用數據庫系統進行上,下傳參數的顯示
  
在CAN線路上傳輸的參數不僅多達近200種,而且有上傳和下傳之分,可見所要顯示的量之大,加上上下傳的參數有著相同的數據結構,所以我們采用查詢預先建立好的數據庫的方法來進行顯示。
  
關于數據庫系統 數據庫系統為我們提供了一種把與我們的工作和生活緊密相關的信息集合在一起的方法。它還提供了在某個集中的地方存儲和維護這些信息的方法。數據庫系統主要由三大部分組成:數據庫管理系統,數據庫應用程序,數據庫。
  
數據庫系統的DELPHI實現 (1)建立數據庫,在本項目中,我們是利用Microsoft Access 建立了一個關系數據庫(由若干表組成的數據庫)。其中包含了一張表,該表的字段分為id表示用以判斷的字符串,以及location表示參數值應填的文本框代號。(2)在應用程序中要實現對所建立的數據庫的訪問需要用到數據庫引擎和數據庫訪問組件以及數據庫控制組件,DELPHI7中提供了BDE,ADO數據引擎,考慮到項目中的數據庫應用相對簡單,我們選擇了常用的BDE(Borland Database Engine)控制讀取所建立的數據庫,具體操作為1)利用DEPHI7文件夾中的BDE Administer為所建立的數據庫創建別名。2)在窗體中添加數據庫訪問組件和數據庫控制組件(包括Data Access頁和BDE頁中的組件)來實現應用程序與數據庫之間的聯系。項目中,我們用Table組件來封裝數據表,通過BDE數據引擎從數據庫表格中取得數據(參數值應填的文本框代號)并通過DataSource組件將數據傳遞給數據控制組件TDBEdit,3)在程序中,我們通過TTable提供的Gotokey的方法實現對數據庫的查找,以及通過對TDBEdit中的數據的使用。實現了將不同參數值填到其唯一對應的文本框中。

2 域請求和域數據的處理
  
因為域數據的多類,多變性,以及不確定性,我們不能用處理參數一樣的數據庫或者其他統一處理的方法,所以在程序中我們使用的是用多層復合選擇語句進行判斷然后根據不同的域數據做出不同的處理,域數據是根據標識符上傳的,只有數據沒有別的判斷信息,對域數據的判斷決定于域請求的數據內容,因此在程序中首先判斷楨是否為域請求,如果是,則將楨數據賦值對應的變量,這些變量保存的便是域數據的判斷信息,而如果根據標識符判斷出為域數據,則根據變量保存的信息進行對應的處理。
  
在域數據的處理中,很多情況是要繪出曲線。對此,我們選擇了DELPHI的Tchart控件。利用其Series屬性里面的Fast-line,將收到的數據正確的繪成曲線。

3 指令和消息的處理
  
指令和消息的處理類似于域數據的處理,也是采用多層復合選擇語句進行判斷,然后做出相應的處理,在此,相應的處理即將指令,消息的相關信息填入文本框。
  
〈5〉軟件流程圖

  
數據處理函數dataprocess()流程圖

結 論
  
在本項目中,CAN卡PCI-9810的控制器是SJA1000,在收發數據方面它支持正常和只聽兩種模式,在監聽器的實際運行中我們選用只聽模式進行線路監聽,取的了不錯的效果,而且在界面的設計過程中上我們添加了發送部分,這是便于進行CAN卡的檢測 以及數據接收的調試,此時需要選擇正常模式。
  
本文作者的創新點:結合實際情況的具體需要,合理的選用了Delphi作為軟件開發平臺,在實時性方面,我們選擇了Delphi自身提供的線程類,而不是按照常規選擇windows提供的API函數,從而使程序的設計變的簡潔,另外在數據的處理方面,我們不僅采用了通常的數據庫方法,而且還根據實際需要采用了其他簡易可行的方法。很好地完成了需求。
  
總之,借鑒前者地經驗加上實際地創新我們成功設計了實時監聽器并通過了實際檢驗,本項目所設計的實時監聽器在實用性,實時性,準確性,以及友好性上都是很不錯的。

參考文獻: 
  
[1]饒運濤,鄒繼軍等,《現場總線CAN原理與應用技術》,北京航空航天大學出版社,2003
[2]劉瑞新,汪遠征等,《Delphi 程序設計教程》,機械工業出版社,2001
[3]張增強,劉成等,《Delphi7 數據庫開發完全手冊》,清華大學出版社,2003
[4]訾樹波,于德敏等《工業生產實施數據采集及管理數據庫模型設計》,微計算機信息,2005年第21卷第7-3期。

 

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          老司机免费视频一区二区| 国产一区二区0| 亚洲私人影院在线观看| 欧美一区二区观看视频| 亚洲精品老司机| 日韩视频一区二区三区在线播放免费观看| 尤物九九久久国产精品的分类| 国产精品一区免费在线观看| 国产女主播一区二区| 欧美丰满少妇xxxbbb| 亚洲欧美日韩电影| 欧美日韩午夜视频在线观看| 亚洲性视频h| 亚洲欧美日本日韩| 999在线观看精品免费不卡网站| 1769国内精品视频在线播放| 欧美性色视频在线| 国产亚洲精品综合一区91| 国产精品99久久不卡二区| 国产精品久久久一区二区三区| 久久国产精品亚洲77777| 亚洲日本成人| 亚洲视频久久| 日韩一区二区精品在线观看| 国产一区在线看| 国产精品一区二区在线| 99精品视频免费观看视频| 99精品国产在热久久| 久久精品视频在线免费观看| 在线日韩欧美视频| 日韩一二三在线视频播| 国产精品免费区二区三区观看| 久久精精品视频| 欧美一区二区三区视频免费播放| 亚洲欧美视频一区| 好吊日精品视频| 欧美伊人久久| 9人人澡人人爽人人精品| 一区二区在线观看视频在线观看| 免费观看成人鲁鲁鲁鲁鲁视频| 99亚洲视频| 国产日韩亚洲| 国产精品一区在线观看| 激情综合久久| 亚洲一区二区高清| 欧美日韩一区二区视频在线观看| 国产欧美另类| 亚洲黄色精品| 亚洲尤物在线视频观看| 国产精品视频一区二区高潮| 亚洲自拍偷拍网址| 国产精品成人在线观看| 欧美日韩1区| 亚洲一区二区三区精品在线| 欧美一区二区三区四区高清| 国产精品成人va在线观看| 亚洲欧美在线观看| 一区二区冒白浆视频| 久久久99精品免费观看不卡| 久久在线播放| 亚洲视屏一区| 亚洲日产国产精品| 亚洲高清精品中出| 久久久国产精品一区二区三区| 欧美电影资源| 国产欧美日韩另类视频免费观看| 久久久噜噜噜| 最新精品在线| 久久精品国产欧美亚洲人人爽| 亚洲午夜日本在线观看| 国产精品羞羞答答| 狠狠色综合网站久久久久久久| 另类春色校园亚洲| 亚洲网址在线| 亚洲欧美文学| 亚洲精品免费一区二区三区| 国产精品丝袜xxxxxxx| 亚洲一区二区免费在线| 国产精品日韩欧美一区二区| 欧美在线视频网站| 亚洲性感激情| 欧美日韩国产一中文字不卡| 先锋影音久久| 国产精品乱人伦一区二区| 欧美精品123区| 欧美一区二视频| 国产精品国产馆在线真实露脸| 国产精品麻豆成人av电影艾秋| 激情综合中文娱乐网| 国产综合亚洲精品一区二| 另类天堂视频在线观看| 欧美日韩一区二区视频在线观看| 欧美久久在线| 久久综合九九| 羞羞色国产精品| 国产精品久久久久9999高清| 久久av资源网站| 久久深夜福利| 日韩写真视频在线观看| 欧美永久精品| 亚洲一区二区三区精品视频| 欧美日韩综合视频网址| 国产亚洲福利| 欧美日韩高清一区| 国产综合久久久久久| 国产亚洲成人一区| 黄色工厂这里只有精品| 狠狠综合久久av一区二区小说| 久久国产精品99精品国产| 亚洲国产精品第一区二区| 国产在线高清精品| 好男人免费精品视频| 蜜桃久久精品乱码一区二区| 亚洲性人人天天夜夜摸| 激情视频一区二区三区| 久久精品午夜| 亚洲第一区色| 国产欧美日本| 99精品免费视频| 亚洲激情网站| 国产主播一区二区三区| 欧美高清视频www夜色资源网| 国模精品一区二区三区色天香| 久久午夜电影| 久久高清一区| 亚洲黄色在线视频| 久久久99精品免费观看不卡| 亚洲国产精品女人久久久| 在线观看国产日韩| 亚洲人体1000| 一区二区三区免费在线观看| 欧美日韩黄色大片| 亚洲精品一区二区三区不| 欧美性大战久久久久久久| 欧美国产日韩免费| 校园激情久久| 亚洲日本在线视频观看| 亚洲成人原创| 性做久久久久久久久| 亚洲高清视频一区| 国外精品视频| 99热精品在线| 亚洲视频在线观看视频| 国产精品二区影院| 亚洲最新在线视频| 欧美日韩在线播放一区| 久久人人看视频| 欧美人与禽性xxxxx杂性| 亚洲影院在线观看| 一区二区三区欧美在线| 欧美jizzhd精品欧美巨大免费| 国产一区二区| 欧美激情1区| 欧美日韩亚洲系列| 国产精品综合网站| 亚洲欧洲美洲综合色网| 国内成人精品视频| 欧美天天综合网| 欧美成人精品| 久久精品国产亚洲一区二区三区| 久久久久久久久久看片| 欧美黄色免费网站| 亚洲欧美综合一区| 午夜久久电影网| 亚洲一区亚洲| 一区二区三区产品免费精品久久75| 亚洲精品小视频| 国产精品一页| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美日韩精品中文字幕| 国产一在线精品一区在线观看| 在线亚洲欧美视频| 欧美激情精品久久久久久免费印度| 亚洲精品免费一二三区| 国产一区二区三区视频在线观看| 亚洲成人在线观看视频| 久久狠狠久久综合桃花| 国产一区二区三区直播精品电影| 久久久噜噜噜久噜久久| 国产精品日韩专区| 亚洲一区二区久久| 久久综合久久综合久久综合| 欧美与欧洲交xxxx免费观看| 国产一区二区三区不卡在线观看| 最新国产乱人伦偷精品免费网站| 国产在线播精品第三| 国语自产偷拍精品视频偷| 久久综合色88| 欧美一区二区三区四区在线观看| 亚洲综合二区| 久久青青草原一区二区| 最新国产拍偷乱拍精品| 最新国产成人av网站网址麻豆| 国产精品久在线观看| 欧美精品入口| 性娇小13――14欧美| 在线电影欧美日韩一区二区私密| 亚洲激情国产| 男男成人高潮片免费网站| 免费亚洲电影在线观看| 很黄很黄激情成人| 午夜精品福利电影| 日韩一区二区电影网| 久久久国产精品一区二区中文| 精品成人a区在线观看| 欧美日韩亚洲系列| 亚洲影视九九影院在线观看| 夜夜爽www精品| 另类专区欧美制服同性| 欧美高潮视频| 欧美国产精品va在线观看| 亚洲欧美精品一区| 久久国产精品99国产精| 亚洲欧美国产日韩天堂区| 欧美尤物巨大精品爽| 亚洲一区二区三区精品在线| 中文国产一区| 国产资源精品在线观看| 欧美大胆人体视频| 欧美日韩国产另类不卡| 久久免费视频网站| 亚洲视频图片小说| 欧美一级午夜免费电影| 久久免费高清视频| 亚洲人成网站777色婷婷| 免费人成精品欧美精品| 久久久久国色av免费看影院| 久久丁香综合五月国产三级网站| 免费在线欧美黄色| 亚洲自拍偷拍麻豆| 欧美91精品| 亚洲午夜高清视频| 亚洲国产精品一区二区久| 亚洲在线观看免费| 一区二区三区精品视频| 久久午夜国产精品| 欧美日韩一区二区三区视频| 欧美性大战久久久久久久蜜臀| 一卡二卡3卡四卡高清精品视频| 国产精品国产| 亚洲大片在线观看| 国产精品视频导航| 欧美激情成人在线| 国内精品视频在线播放| 亚洲视频在线二区| 欧美精品成人| 亚洲精品永久免费精品| 尹人成人综合网| 欧美黄色大片网站| 亚洲精品小视频| 国产性猛交xxxx免费看久久| 性18欧美另类| 国产一区二区三区日韩欧美| 国产精品国产三级国产专区53| 亚洲精品久久在线| 欧美片网站免费| 国产精品九九久久久久久久| 欧美777四色影视在线| 黄色亚洲精品| 欧美日韩在线视频一区二区| 国产精品99免视看9| 欧美裸体一区二区三区| 欧美日韩日日骚| 国产亚洲精品bt天堂精选| 欧美一区二区三区久久精品| 亚洲在线观看视频| 久久都是精品| 亚洲国产天堂久久国产91| 久久久免费精品视频| 欧美午夜不卡影院在线观看完整版免费| 欧美性天天影院| 欧美精品乱人伦久久久久久| 欧美日韩亚洲一区三区| 国产亚洲一区二区在线观看| 日韩网站免费观看| 国产欧美日韩精品丝袜高跟鞋| 国产精品一区二区三区久久久| 欧美日韩在线视频首页| 亚洲深夜影院| 午夜久久久久久久久久一区二区| 国产精品稀缺呦系列在线| 久久婷婷蜜乳一本欲蜜臀| 国产精品香蕉在线观看| 在线观看成人一级片| 国产精品久久婷婷六月丁香| 国产亚洲成av人在线观看导航| 欧美日韩视频一区二区三区| 国产精品乱码人人做人人爱| 久久精品亚洲| 99国产精品国产精品毛片| 另类亚洲自拍| 久久免费国产精品1| 欧美一区二区三区在线观看| 国产精品美女主播在线观看纯欲| 久久综合免费视频影院| 日韩亚洲欧美高清| 一区免费观看| 欧美日韩性生活视频| 欧美日韩国产欧美日美国产精品| 狠狠色丁香婷婷综合影院| 1769国内精品视频在线播放| 久久精品日韩一区二区三区| 久久精品一级爱片| 亚洲国产欧美一区二区三区同亚洲| 99国产精品久久久久久久成人热| 欧美一区二区高清| 亚洲国产精品久久久久久女王| 国产精品久久久久77777| 亚洲人成欧美中文字幕| 国产婷婷色综合av蜜臀av| 毛片av中文字幕一区二区| 午夜视频在线观看一区| 亚洲美女电影在线| 欧美大片在线观看一区二区| 国产偷国产偷亚洲高清97cao| 国产精品久久久久久久久动漫| 国产日韩欧美在线视频观看| 91久久久国产精品| 国产免费成人av| 黄色一区二区三区| 国产日韩欧美在线播放| 国产亚洲欧美日韩一区二区| 日韩视频中文| 欧美制服第一页| 亚洲高清久久网| 国产精品乱码| 亚洲无线一线二线三线区别av| 精品盗摄一区二区三区|