dataidz123
如果 那么 也許 就會(huì) 好一點(diǎn) www.dataie.com
級別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 92 個(gè)
工控威望: 66 點(diǎn)
下載積分: 3273 分
在線時(shí)間: 22(小時(shí))
注冊時(shí)間: 2013-04-28
最后登錄: 2023-11-06
查看dataidz123的 主題 / 回貼
樓主  發(fā)表于: 2013-05-03 17:42
圖片:
基于單片機(jī)與PLC通信的海量數(shù)據(jù)存儲(chǔ)
技術(shù)設(shè)計(jì)文檔
一、 選型說明:
這個(gè)說明是查閱資料后編寫的,如有相關(guān)意見可以修改。
整個(gè)需求分三部分:
1. 是利用現(xiàn)有的成熟的PLC技術(shù),對各設(shè)備的監(jiān)控點(diǎn)數(shù)據(jù)進(jìn)行采集;
2. 再使用單片機(jī)技術(shù),對PLC采集后的數(shù)據(jù)進(jìn)行讀取,并按照一定的格式存儲(chǔ)在存儲(chǔ)設(shè)備中,存儲(chǔ)設(shè)備可以是U盤,存儲(chǔ)卡等;
3. 使用讀卡設(shè)備將存儲(chǔ)的數(shù)據(jù)讀出,并導(dǎo)入普通PC中,對讀取數(shù)據(jù)進(jìn)行分析。
二、 基本組成圖:

圖1 總框圖
三、 PLC數(shù)據(jù)采集:
采用成熟的PLC技術(shù),不需開發(fā),使用西門子S7-200系列。
S7-200 PLC是串行通訊方式最為豐富的小型PLC,支持多種通信協(xié)議,如點(diǎn)對點(diǎn)接口協(xié)議(PPI協(xié)議)、多點(diǎn)接口協(xié)議(MPI協(xié)議)和PROFIBUS協(xié)議以及自由通信協(xié)議等。其中自由通信協(xié)議又叫用戶定義協(xié)議,利用自由端口模式,可以實(shí)現(xiàn)用戶定義的通信協(xié)議,連接多種智能設(shè)備,使用起來非常方便,在第三方工程接入中取得了巨大的成功。
四、 單片機(jī)數(shù)據(jù)存儲(chǔ)
此部分為整個(gè)技術(shù)的重點(diǎn)之一,他要完成的主要功能為,從PLC采集數(shù)據(jù),并將數(shù)據(jù)按預(yù)先規(guī)定格式寫入存儲(chǔ)設(shè)備中,存儲(chǔ)設(shè)備可設(shè)計(jì)成存儲(chǔ)卡,U盤之類的。
以下為我所查資料的一些設(shè)想,只作為參考,如可行也可以作為使用。
1、 單片機(jī)與PLC通訊
單片機(jī)選用MCS51,MCS-51的串行口與MAX485芯片相接,然后與S7-200 PLC的RS-485口進(jìn)行通訊,如圖1所示:

圖1 MCS-51單片機(jī)與S7-200的硬件接線圖
在自由端口模式下,PLC的串行通信接口由用戶來控制,通過梯形圖程序以及和單片機(jī)的匯編語言進(jìn)行配合,來使用完成中斷、字符接收中斷、發(fā)送完成中斷等,通信協(xié)議由用戶完全控制。這時(shí)單片機(jī)處于主機(jī)狀態(tài),由單片機(jī)主動(dòng)發(fā)送握手信號,PLC接到信號后被動(dòng)反饋信息即可。
a) 通信協(xié)議設(shè)計(jì)
定義根據(jù)經(jīng)驗(yàn)和有關(guān)參考資料,定義協(xié)議結(jié)構(gòu)和參數(shù)。
(1)通信波特率為9.6kbps,無校驗(yàn),8個(gè)數(shù)據(jù)位,1個(gè)可編程位,1位起始位,1位停止位。
(2)定義通信協(xié)議的數(shù)據(jù)流結(jié)構(gòu)的格式為起始碼、命令碼、元件首址、字節(jié)數(shù)、數(shù)據(jù)塊、BCC校驗(yàn)碼和結(jié)束碼。
● 起始碼:表示單片機(jī)與PLC開始發(fā)送數(shù)據(jù),是數(shù)據(jù)流第一個(gè)字符,告訴PLC開始進(jìn)行通信了,可以用00H表示
● 命令碼:表示單片機(jī)對PLC的各種操作:
    40H:讀取目標(biāo)元件 I、Q、V、M、SM、L、T、C等的數(shù)據(jù)或狀態(tài);
    41H:修改目標(biāo)元件 I、Q、V、M、SM、L、T、C等的數(shù)據(jù)或狀態(tài);
    42H:強(qiáng)制目標(biāo)單元為ON;
    43H:強(qiáng)制目標(biāo)單元為OFF;
● 元件首址:表示PLC內(nèi)部的元件類型以及寄存器的地址(但不能表示一個(gè)位地址)。前兩個(gè)字節(jié)表示寄存器類型,后兩個(gè)字節(jié)表示寄存器號。00 00(H):I寄存器區(qū) 01 00(H):Q寄存器區(qū)。02 00(H):M寄存器區(qū) 08 00(H):V寄存器區(qū);
● 字節(jié)數(shù):從元件首地址起,讀取或?qū)懭隤LC元件的數(shù)據(jù)個(gè)數(shù)數(shù)據(jù)塊:準(zhǔn)備讀取或者寫入PLC的數(shù)據(jù)或狀態(tài);
● BCC校驗(yàn)碼:在傳輸過程中,指令有可能受到任何的干擾而使原來的數(shù)據(jù)信號發(fā)生扭曲,此時(shí)的指令當(dāng)然是錯(cuò)誤的,為了偵測指令在傳輸過程中發(fā)生的錯(cuò)誤,接收方必須對指令作進(jìn)一步的確認(rèn)工作,以防止錯(cuò)誤的指令被執(zhí)行,最簡單的方法就是使用校驗(yàn)碼。BCC校驗(yàn)碼的方法就是將要傳送的字符串的ASCII碼以字節(jié)為單位作異或和,并將此異或和作為指令的一部分傳送出去;同樣地,接收方在接到指令后,以相同的方式對接收到的字符串作異或和,并與傳送方所送過來的值作對比,若其值相等,則代表接收到的指令是正確的,反之則是錯(cuò)誤的
● 結(jié)束碼:結(jié)束字符標(biāo)志著指令的結(jié)束,在本例中被定義為FFH,不同的PLC從站可以定義不同的結(jié)束字符以接收針對該P(yáng)LC的指令。
b) 通信程序的實(shí)現(xiàn)
(1)單片機(jī)端程序的實(shí)現(xiàn)。單片機(jī)在主程序中初始化,采用串行口工作方式3[2],波特率為9.6kbps,采用單片機(jī)作為主機(jī),向PLC進(jìn)行呼叫,定期讀取數(shù)據(jù)或者寫入數(shù)據(jù),其程序流程圖參見圖2。

圖2 單片機(jī)端通訊程序流程圖
(2)PLC端程序流程圖的實(shí)現(xiàn)。PLC端作為從機(jī),采用梯形圖或者STL編程,主要是先設(shè)置通訊協(xié)議,然后按照協(xié)議把采集到的數(shù)據(jù)進(jìn)行處理,再發(fā)送給主機(jī)單片機(jī),其具體的程序流程圖如圖3所示。

圖3 PLC端通訊程序流程圖
2、 單片機(jī)數(shù)據(jù)存儲(chǔ)實(shí)現(xiàn)
采用西安達(dá)泰電子的單片機(jī)讀寫U盤的模塊 USB118AD,接線圖如圖4:
 

瀟湘風(fēng)竹
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 58 個(gè)
工控威望: 183 點(diǎn)
下載積分: 5835 分
在線時(shí)間: 31(小時(shí))
注冊時(shí)間: 2012-10-29
最后登錄: 2023-05-21
查看瀟湘風(fēng)竹的 主題 / 回貼
1樓  發(fā)表于: 2013-05-04 16:45
牛逼!