《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > S7-200與MCS51單片機(jī)的通訊簡(jiǎn)介
S7-200與MCS51單片機(jī)的通訊簡(jiǎn)介
摘要: S7-200PLC是串行通訊方式最為豐富的小型PLC,支持多種通信協(xié)議,,如點(diǎn)對(duì)點(diǎn)接口協(xié)議(PPI協(xié)議)、多點(diǎn)接口協(xié)議(MPI協(xié)議)和PROFIBUS協(xié)議以及自由通信協(xié)議等,。
關(guān)鍵詞: 接口IC S7-200 MCS51 串行通訊
Abstract:
Key words :

1 引言
  PLC因?yàn)榉€(wěn)定可靠,、結(jié)構(gòu)緊湊,、簡(jiǎn)單易學(xué),、功能強(qiáng)大和使用方便已經(jīng)成為應(yīng)用面最廣、最廣泛的通用工業(yè)控制裝置,,成為現(xiàn)代工業(yè)自動(dòng)化控制的主要支柱之一,。而單片機(jī)因?yàn)槌杀镜土褂渺`活,,功能多樣,,在自動(dòng)化領(lǐng)域應(yīng)用及其廣泛,往往在一個(gè)控制系統(tǒng)中可能會(huì)出現(xiàn)單片機(jī)和PLC共存的情況,,如果使二者互相聯(lián)系,,互相通信,具有非常重要的現(xiàn)實(shí)意義,。

2 硬件以及通訊原理分析
  西門(mén)子S7-200系列PLC擁有RS-485串行口,,所以要使MCS51單片機(jī)與S7-PLC進(jìn)行通訊,可以采用幾種通訊方式,。其中之一就是可以通過(guò)MCS-51的串行口與MAX485芯片相接,,然后與S7-200 PLC的RS-485口進(jìn)行通訊,其硬件連接如圖1所示,。
  S7-200 PLC是串行通訊方式最為豐富的小型PLC,,支持多種通信協(xié)議,如點(diǎn)對(duì)點(diǎn)接口協(xié)議(PPI協(xié)議),、多點(diǎn)接口協(xié)議(MPI協(xié)議)和PROFIBUS協(xié)議以及自由通信協(xié)議等,。其中自由通信協(xié)議又叫用戶定義協(xié)議,利用自由端口模式,,可以實(shí)現(xiàn)用戶定義的通信協(xié)議,,連接多種智能設(shè)備,使用起來(lái)非?!》奖?,在第三方工程接入中取得了巨大的成功。
  在自由端口模式下,,PLC的串行通信接口由用戶來(lái)控制,,通過(guò)梯形圖程序以及和單片機(jī)的匯編語(yǔ)言進(jìn)行配合,來(lái)使用完成中斷,、字符接收中斷,、發(fā)送完成中斷等,通信協(xié)議由用戶完全控制,。這時(shí)單片機(jī)處于主機(jī)狀態(tài),,由單片機(jī)主動(dòng)發(fā)送握手信號(hào),,PLC接到信號(hào)后被動(dòng)反饋信息即可。

圖1 MCS-51單片機(jī)與S7-200的硬件接線圖

3 通信系統(tǒng)設(shè)計(jì)
  3.1 通信協(xié)議設(shè)計(jì)
  定義根據(jù)經(jīng)驗(yàn)和有關(guān)參考資料,,定義協(xié)議結(jié)構(gòu)和參數(shù),。
  (1)通信波特率為9.6kbps,,無(wú)校驗(yàn),,8個(gè)數(shù)據(jù)位,1個(gè)可編程位,,1位起始位,,1位停止位。
 ?。?)定義通信協(xié)議的數(shù)據(jù)流結(jié)構(gòu)的格式為起始碼,、命令碼、元件首址,、字節(jié)數(shù),、數(shù)據(jù)塊、BCC校驗(yàn)碼和結(jié)束碼,。
  ● 起始碼:表示單片機(jī)與PLC開(kāi)始發(fā)送數(shù)據(jù),,是數(shù)據(jù)流第一個(gè)字符,告訴PLC開(kāi)始進(jìn)行通信了,,可以用00H表示
  ● 命令碼:表示單片機(jī)對(duì)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)部的元件類(lèi)型以及寄存器的地址(但不能表示一個(gè)位地址),。前兩個(gè)字節(jié)表示寄存器類(lèi)型,,后兩個(gè)字節(jié)表示寄存器號(hào)。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)備讀取或者寫(xiě)入PLC的數(shù)據(jù)或狀態(tài),;
  ● BCC校驗(yàn)碼:在傳輸過(guò)程中,,指令有可能受到任何的干擾而使原來(lái)的數(shù)據(jù)信號(hào)發(fā)生扭曲,,此時(shí)的指令當(dāng)然是錯(cuò)誤的,,為了偵測(cè)指令在傳輸過(guò)程中發(fā)生的錯(cuò)誤,接收方必須對(duì)指令作進(jìn)一步的確認(rèn)工作,,以防止錯(cuò)誤的指令被執(zhí)行,,最簡(jiǎn)單的方法就是使用校驗(yàn)碼。BCC校驗(yàn)碼的方法就是將要傳送的字符串的ASCII碼以字節(jié)為單位作異或和,,并將此異或和作為指令的一部分傳送出去,;同樣地,接收方在接到指令后,,以相同的方式對(duì)接收到的字符串作異或和,,并與傳送方所送過(guò)來(lái)的值作對(duì)比,若其值相等,,則代表接收到的指令是正確的,,反之則是錯(cuò)誤的
  ● 結(jié)束碼:結(jié)束字符標(biāo)志著指令的結(jié)束,在本例中被定義為FFH,,不同的PLC從站可以定義不同的結(jié)束字符以接收針對(duì)該P(yáng)LC的指令,。
  3.2 通信程序的實(shí)現(xiàn)
  (1)單片機(jī)端程序的實(shí)現(xiàn),。單片機(jī)在主程序中初始化,,采用串行口工作方式,波特率為9.6kbps,,采用單片機(jī)作為主機(jī),,向PLC進(jìn)行呼叫,定期讀取數(shù)據(jù)或者寫(xiě)入數(shù)據(jù),,其程序流程圖參見(jiàn)圖2,。

圖2 單片機(jī)端通訊程序流程圖

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

圖3 PLC端通訊程序流程圖

4 結(jié)束語(yǔ)
  本文利用單片機(jī)與PLC的串行通信方法,,成功的應(yīng)用于多個(gè)項(xiàng)目中,,實(shí)際表明該方法簡(jiǎn)單可靠,成本低,,而且易于擴(kuò)充經(jīng)濟(jì)實(shí)用的其它功能,,如A/D、D/A等功能,,取得了較好的社會(huì)效益和經(jīng)濟(jì)效益,。
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。