国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

皮帶傳動設(shè)備故障檢測系統(tǒng)軟件設(shè)計

2016-05-30 10:48:04王師原
科技資訊 2016年16期
關(guān)鍵詞:自動檢測

王師原

摘 要:隨著皮帶傳動裝置的廣泛應(yīng)用,其故障檢測顯得至關(guān)重要。本文主要介紹了一種皮帶傳動設(shè)備故障檢測系統(tǒng)的軟件設(shè)計方法,采用C語言以及Modbus等主要技術(shù),包含主控制器與PC的通信、主控制器通過LCD顯示信息、主控制器將數(shù)據(jù)通過MODBUS協(xié)議重新打包并發(fā)送給每個站點及檢測控制模塊設(shè)計。主要功能是實現(xiàn)故障的自動檢測以及處理功能。

關(guān)鍵詞:C語言 皮帶傳動 自動檢測

中圖分類號:TP36 文獻標識碼:A 文章編號:1672-3791(2016)06(a)-0000-00

軟件系統(tǒng)總體結(jié)構(gòu)

1.1程序整體設(shè)計

整體程序采用分模塊設(shè)計法,各模塊主要包括:主函數(shù)模塊,數(shù)據(jù)包校驗?zāi)K,拉繩故障報警模塊,其它故障報警模塊,485串口接收中斷處理模塊,拉繩地址解析與控制繼電器模塊,其它地址解析與控制繼電器模塊,RTC實時時鐘模塊,EEPROM數(shù)據(jù)存儲模塊,MODBUS協(xié)議數(shù)據(jù)打包模塊以及各模塊串口及變量的賦值與定義。

1.2 數(shù)據(jù)包格式

數(shù)據(jù)包的包頭是FFFFFFAA,第五個字節(jié)是數(shù)據(jù)包的長度,第6個字節(jié)是終端電壓,第7個字節(jié)是校驗碼,第8個字節(jié)放的是節(jié)點電路板的個數(shù),第9個字節(jié)放的是拉繩開關(guān)量的個數(shù),第10個字節(jié)放的是其它故障的開關(guān)量的個數(shù),接下的1~16個字節(jié)是拉繩狀態(tài)每個開關(guān)量的狀態(tài),最后1~5個字節(jié)是其它狀態(tài)的開關(guān)量的狀態(tài)。所以數(shù)據(jù)包的長度最大為32個字節(jié)。拉升和其它狀態(tài)的節(jié)點排序與物理地址ID剛好相反。

2主要開發(fā)技術(shù)

2.1 C語言

C語言具有良好的程序結(jié)構(gòu),適用于模塊化程序設(shè)計,因此采用C語言設(shè)計單片機應(yīng)用系統(tǒng)程序時,首先要盡可能地采用結(jié)構(gòu)化的程序設(shè)計方法,將功能模塊化,由不同的模塊完成不同的功能,這樣可使整個應(yīng)用系統(tǒng)程序結(jié)構(gòu)清晰,易于調(diào)試和維護。不同的功能模塊,分別指定相應(yīng)的入口參數(shù)和出口參數(shù),對于一些要重復(fù)調(diào)用的程序一般把其編成函數(shù),這樣可以減少程序代碼的長度,又便于整個程序的管理,還可增強可讀性和移植性。

C語言是一種編譯型程序設(shè)計語言,它兼顧了多種高級語言的特點,并具備匯編語言的功能。C語言有功能豐富的庫函數(shù)、運算速度快、編譯效率高、有良好的可移植性,而且可以直接實現(xiàn)對系統(tǒng)硬件的控制。C語言也是一種結(jié)構(gòu)化程序設(shè)計語言,它支持當(dāng)前程序設(shè)計中廣泛采用的由頂向下結(jié)構(gòu)化程序設(shè)計技術(shù)。

2.2 Modbus協(xié)議

Modbus 協(xié)議是應(yīng)用于電子控制器上的一種通用語言。控制器能直接或經(jīng)由 Modem組網(wǎng)??刂破魍ㄐ攀褂弥鲝募夹g(shù),僅有一設(shè)備能初始化傳輸。其它設(shè)備根據(jù)主設(shè)備查詢提供的數(shù)據(jù)作出相應(yīng)應(yīng)答。當(dāng)使用modbus通信時,每個控制器須要知道它們的設(shè)備地址,識別按地址發(fā)來的消息,決定要產(chǎn)生何種行動。如果需要回應(yīng),控制器將生成反饋信息并用Modbus 協(xié)議發(fā)出。。

3 各模塊具體設(shè)計

3.1主函數(shù)模塊

當(dāng)執(zhí)行某個中斷程序時,CPU自動禁止其它中斷發(fā)生。執(zhí)行完后恢復(fù)。在接受485數(shù)據(jù)包的過程中禁止其它中斷,不允許其它任務(wù)發(fā)生。硬件規(guī)定的優(yōu)先級由高到低次序:UART1(485中斷),RTC(實時時鐘更新時間中斷,中斷間隔為一秒)。初始化后,如果數(shù)據(jù)包頭接收正確,則判斷485總線準備好接收信息,進行數(shù)據(jù)校驗,如果校驗正常則去解析故障信息,控制繼電器動作進行故障保護,重組PC包發(fā)到PC機顯示,在初始化值,如果校驗和不正常,則PC上顯示出網(wǎng)絡(luò)故障并且在LCD上顯示,還將數(shù)據(jù)包存儲到EEPROM,如果PC命令主控制器發(fā)回數(shù)據(jù),則主控制器將數(shù)據(jù)包通過MODBUS協(xié)議打包并且發(fā)送給PC,如果key_up按下進行對EEPROM數(shù)據(jù)包讀取,如果485沒接收則也是網(wǎng)絡(luò)出現(xiàn)故障。

3.2 485串口中斷接收模塊

把前級工作狀態(tài)計數(shù)器清零,看包頭是否完全正確,如果正確,則有效數(shù)據(jù)包組接收數(shù)據(jù),數(shù)據(jù)包的長度增加,看數(shù)據(jù)包的長度是否等于發(fā)送數(shù)據(jù)包的長度,如果相等的話則把數(shù)據(jù)包組的長度初值賦為5,完整接收數(shù)據(jù),把包頭完全接收標志清0,如果包頭接收不正確,則看三個FF是否接收正確,如果正確,則看AA是否正確,三個FF再逐一判斷是否正確。

3.3主控制器與PC通信模塊

每次進入中斷USART2接收PC發(fā)來的命令,命令總共是8個字節(jié)。接收完成后RECALL_OK2置1,并將記錄接收自己數(shù)接b_counter2置0。

3.4 MODBUS協(xié)議數(shù)據(jù)打包模塊

對于MODBUS協(xié)議,它是PC和主控制器的通信協(xié)議。從上述可知PC是通過USART2串口實現(xiàn)與主控制器通信的。每次接收到PC發(fā)到主控制器的命令80030000000D9A1E,總共八個字節(jié)。且通過crc校驗后得到整個八個字節(jié)的CRC碼為零,表示正確接收,主控制器會將最近一次故障數(shù)據(jù)通過MODBUS協(xié)議打包發(fā)回給PC。

3.5 皮帶拉繩地址解析與控制繼電器模塊

拉繩的長度模8取余。看是不是整數(shù)個字節(jié),如果是整數(shù)個字節(jié),就確定拉繩狀態(tài)用的字節(jié)數(shù),得到拉繩的狀態(tài)數(shù),如果皮帶有故障,首先控制處理并且控制繼電器動作。皮帶有故障判斷皮帶的地址,節(jié)點的排序與物理地址ID相反,則通過一種算法,實現(xiàn)節(jié)點排序到物理地址ID的轉(zhuǎn)化。如果不是整數(shù)個字節(jié),則出最后一個字節(jié)外用上述同樣的方法得到物理地址ID,最后一個字節(jié)用另一種算法實現(xiàn)排序到物理地址ID的轉(zhuǎn)化,并把故障寫到故障信息表。

3.6 數(shù)據(jù)包校驗?zāi)K

接收到數(shù)據(jù)包后要對數(shù)據(jù)包進行校驗,取到數(shù)據(jù)包校驗和,把接收到的數(shù)據(jù)以字節(jié)的形式一個字節(jié)一個字節(jié)得到,在模256取余,如果余數(shù)和取得的數(shù)據(jù)包校驗和相等,則數(shù)據(jù)包正確,否則不正確。

3.7 拉繩故障報警模塊

對接收的數(shù)據(jù)包進行拉繩部分的解析,如果故障表的字節(jié)數(shù)大于1,則把故障表的字節(jié)通過串口0送給PC機,PC機進行顯示。

3.8 LCD屏顯示模塊

LCD模塊包括以下功能:顯示實時時間,顯示實時有故障的站點號。

LCD顯示模塊每次發(fā)生事故的時候會在數(shù)據(jù)包分析的時候自動調(diào)用,輸出到LCD最上方是作者,每兩次輸出更新一次,并且每次顯示發(fā)送事故的時間,還有站點標號及出事故的記錄次數(shù)。

4 運行結(jié)果

設(shè)定拉繩的狀態(tài)個數(shù)是128,其它狀態(tài)的個數(shù)設(shè)置是60個,有故障是紅色,無故障是綠色。我們設(shè)定1,60,128拉繩狀態(tài)有故障,點擊數(shù)據(jù)包組合,點擊發(fā)送數(shù)據(jù)。

R2323的RX與TX分別與USART2的TX與RX,即就是PA2與PA3相連接。當(dāng)PC發(fā)送命令80030000000D9A1E,總字節(jié)數(shù)是八個。主控制器會將包含故障信息的數(shù)據(jù)包發(fā)回給PC,該數(shù)據(jù)包是通過MODBUS協(xié)議打包的。解析出的故障:01,3C,80,01,3C。十六進制數(shù)01,3C,80,01,3C正好是十進制的1,60,128,1,60??梢?,發(fā)送的故障和解析出的故障相同,硬件正常工作,運行結(jié)果正確。

參考文獻

[1] 沈文.《STM32單片機C語言開發(fā)入門指導(dǎo)》.清華大學(xué)出版社.2005

[2] 周俊杰.《嵌入式C編程與Atmel STM32》.北京. 清華大學(xué)出版社.2006

猜你喜歡
自動檢測
基于毫米波雷達的高速公路三急一速自動檢測算法
自動檢測移動分料溜槽的設(shè)計與應(yīng)用
基于無人機巡檢傾斜影像的絕緣子爆片自動檢測方法
角接觸球軸承外圈鎖口高度自動檢測規(guī)改進
哈爾濱軸承(2020年2期)2020-11-06 09:22:34
高速公路異常事件自動檢測系統(tǒng)設(shè)計
一種開關(guān)柜局部放電自動檢測裝置的研究
電子制作(2019年10期)2019-06-17 11:45:24
基于STM32的室內(nèi)有害氣體自動檢測與排風(fēng)系統(tǒng)
電子制作(2018年19期)2018-11-14 02:36:50
光電傳感器在自動檢測和分揀中的應(yīng)用
電子制作(2018年9期)2018-08-04 03:30:58
基于TestStand的自動檢測程序開發(fā)
電子測試(2018年11期)2018-06-26 05:56:16
K-F環(huán)自動檢測系統(tǒng)設(shè)計
鄯善县| 五莲县| 伊春市| 庆元县| 静乐县| 封开县| 阳曲县| 绿春县| 偃师市| 兴和县| 军事| 安义县| 扎鲁特旗| 罗平县| 上饶县| 会东县| 久治县| 溧水县| 晋江市| 南昌市| 榆社县| 扬中市| 柳河县| 五大连池市| 乐陵市| 江城| 娄底市| 大余县| 寿阳县| 湘潭县| 霍州市| 宜州市| 沧州市| 万源市| 苏州市| 东兰县| 同心县| 辽宁省| 阳新县| 钟山县| 抚州市|