基于單片機與PLC通信的海量數據存儲 |
技術(shù)設計文檔 |
一、 選型說(shuō)明: |
這個(gè)說(shuō)明是查閱資料后編寫(xiě)的,如有相關(guān)意見(jiàn)可以修改。 整個(gè)需求分三部分: 1. 是利用現有的成熟的PLC技術(shù),對各設備的監控點(diǎn)數據進(jìn)行采集; 2. 再使用單片機技術(shù),對PLC采集后的數據進(jìn)行讀取,并按照一定的格式存儲在存儲設備中,存儲設備可以是U盤(pán),存儲卡等; 3. 使用讀卡設備將存儲的數據讀出,并導入普通PC中,對讀取數據進(jìn)行分析。
|
二、 基本組成圖: |
 圖1 總框圖
|
三、 PLC數據采集: |
采用成熟的PLC技術(shù),不需開(kāi)發(fā),使用西門(mén)子S7-200系列。 S7-200 PLC是串行通訊方式最為豐富的小型PLC,支持多種通信協(xié)議,如點(diǎn)對點(diǎn)接口協(xié)議(PPI協(xié)議)、多點(diǎn)接口協(xié)議(MPI協(xié)議)和PROFIBUS協(xié)議以及自由通信協(xié)議等。其中自由通信協(xié)議又叫用戶(hù)定義協(xié)議,利用自由端口模式,可以實(shí)現用戶(hù)定義的通信協(xié)議,連接多種智能設備,使用起來(lái)非常方便,在第三方工程接入中取得了巨大的成功。
|
四、 單片機數據存儲 |
此部分為整個(gè)技術(shù)的重點(diǎn)之一,他要完成的主要功能為,從PLC采集數據,并將數據按預先規定格式寫(xiě)入存儲設備中,存儲設備可設計成存儲卡,U盤(pán)之類(lèi)的。 以下為我所查資料的一些設想,只作為參考,如可行也可以作為使用。
|
1、 單片機與PLC通訊 |
單片機選用MCS51,MCS-51的串行口與MAX485芯片相接,然后與S7-200 PLC的RS-485口進(jìn)行通訊,如圖1所示:
|
 圖1 MCS-51單片機與S7-200的硬件接線(xiàn)圖
|
在自由端口模式下,PLC的串行通信接口由用戶(hù)來(lái)控制,通過(guò)梯形圖程序以及和單片機的匯編語(yǔ)言進(jìn)行配合,來(lái)使用完成中斷、字符接收中斷、發(fā)送完成中斷等,通信協(xié)議由用戶(hù)完全控制。這時(shí)單片機處于主機狀態(tài),由單片機主動(dòng)發(fā)送握手信號,PLC接到信號后被動(dòng)反饋信息即可。
|
a) 通信協(xié)議設計 |
定義根據經(jīng)驗和有關(guān)參考資料,定義協(xié)議結構和參數。
|
(1)通信波特率為9.6kbps,無(wú)校驗,8個(gè)數據位,1個(gè)可編程位,1位起始位,1位停止位。 (2)定義通信協(xié)議的數據流結構的格式為起始碼、命令碼、元件首址、字節數、數據塊、BCC校驗碼和結束碼。 ● 起始碼:表示單片機與PLC開(kāi)始發(fā)送數據,是數據流第一個(gè)字符,告訴PLC開(kāi)始進(jìn)行通信了,可以用00H表示 ● 命令碼:表示單片機對PLC的各種操作: 40H:讀取目標元件 I、Q、V、M、SM、L、T、C等的數據或狀態(tài); 41H:修改目標元件 I、Q、V、M、SM、L、T、C等的數據或狀態(tài); 42H:強制目標單元為ON; 43H:強制目標單元為OFF; ● 元件首址:表示PLC內部的元件類(lèi)型以及寄存器的地址(但不能表示一個(gè)位地址)。前兩個(gè)字節表示寄存器類(lèi)型,后兩個(gè)字節表示寄存器號。00 00(H):I寄存器區 01 00(H):Q寄存器區。02 00(H):M寄存器區 08 00(H):V寄存器區; ● 字節數:從元件首地址起,讀取或寫(xiě)入PLC元件的數據個(gè)數數據塊:準備讀取或者寫(xiě)入PLC的數據或狀態(tài); ● BCC校驗碼:在傳輸過(guò)程中,指令有可能受到任何的干擾而使原來(lái)的數據信號發(fā)生扭曲,此時(shí)的指令當然是錯誤的,為了偵測指令在傳輸過(guò)程中發(fā)生的錯誤,接收方必須對指令作進(jìn)一步的確認工作,以防止錯誤的指令被執行,最簡(jiǎn)單的方法就是使用校驗碼。BCC校驗碼的方法就是將要傳送的字符串的ASCII碼以字節為單位作異或和,并將此異或和作為指令的一部分傳送出去;同樣地,接收方在接到指令后,以相同的方式對接收到的字符串作異或和,并與傳送方所送過(guò)來(lái)的值作對比,若其值相等,則代表接收到的指令是正確的,反之則是錯誤的 ● 結束碼:結束字符標志著(zhù)指令的結束,在本例中被定義為FFH,不同的PLC從站可以定義不同的結束字符以接收針對該PLC的指令。
|
b) 通信程序的實(shí)現 |
(1)單片機端程序的實(shí)現。單片機在主程序中初始化,采用串行口工作方式3[2],波特率為9.6kbps,采用單片機作為主機,向PLC進(jìn)行呼叫,定期讀取數據或者寫(xiě)入數據,其程序流程圖參見(jiàn)圖2。
|
 圖2 單片機端通訊程序流程圖
|
(2)PLC端程序流程圖的實(shí)現。PLC端作為從機,采用梯形圖或者STL編程,主要是先設置通訊協(xié)議,然后按照協(xié)議把采集到的數據進(jìn)行處理,再發(fā)送給主機單片機,其具體的程序流程圖如圖3所示。
|
 圖3 PLC端通訊程序流程圖
|
2、 單片機數據存儲實(shí)現 |
采用西安達泰電子的單片機讀寫(xiě)U盤(pán)的模塊 USB118AD,接線(xiàn)圖如圖4:
|

|