《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 設(shè)計(jì)應(yīng)用 > PLC與上位機(jī)的高速通信實(shí)現(xiàn)
PLC與上位機(jī)的高速通信實(shí)現(xiàn)
中國(guó)自動(dòng)化網(wǎng)
摘要: 本文先介紹了S7-200系列PLC的三種通信方式,,及其在網(wǎng)絡(luò)中通信的RS-232和RS-485標(biāo)準(zhǔn),。在實(shí)例中,采用西門(mén)子公司的S7-200系列PLC為下位機(jī),,按照RS-485標(biāo)準(zhǔn)與上位機(jī)通信;通信協(xié)議為以自由口模式創(chuàng)建用戶自定義的協(xié)議,,數(shù)據(jù)傳輸格式為16進(jìn)制ASCII編碼,求和校驗(yàn);上位機(jī)采用VC編程的可視化界面,,在編程過(guò)程中采用不可中斷方式和多緩沖區(qū)結(jié)構(gòu),,實(shí)現(xiàn)了可靠且高速的通信方式。
Abstract:
Key words :

摘 要:本文先介紹了S7-200系列PLC的三種通信方式,,及其在網(wǎng)絡(luò)中通信的RS-232和RS-485標(biāo)準(zhǔn),。在實(shí)例中,采用西門(mén)子公司的S7-200系列PLC為下位機(jī),按照RS-485標(biāo)準(zhǔn)與上位機(jī)通信;通信協(xié)議為以自由口模式創(chuàng)建用戶自定義的協(xié)議,,數(shù)據(jù)傳輸格式為16進(jìn)制ASCII編碼,,求和校驗(yàn);上位機(jī)采用VC編程的可視化界面,在編程過(guò)程中采用不可中斷方式和多緩沖區(qū)結(jié)構(gòu),,實(shí)現(xiàn)了可靠且高速的通信方式,。
關(guān)鍵詞:PLC;串行通信;高速通信;VC;自由口模式
0、引言
  工業(yè)控制領(lǐng)域中PLC作為一種高效,、靈活,、可靠的控制器,有著廣泛的應(yīng)用,。以PLC控制器為核心,,上位PC機(jī)為實(shí)時(shí)監(jiān)控體的控制系統(tǒng)已成為工業(yè)自動(dòng)化PLC控制系統(tǒng)的一個(gè)發(fā)展方向。實(shí)現(xiàn)PLC與PC的通信可以實(shí)現(xiàn)向上級(jí)提供諸如工藝流程圖,、動(dòng)態(tài)數(shù)據(jù)畫(huà)面,、報(bào)表顯示等多種窗口技術(shù),使PLC控制系統(tǒng)具有良好的人機(jī)界面,,通過(guò)上位機(jī)對(duì)PLC數(shù)據(jù)的讀寫(xiě)監(jiān)控實(shí)現(xiàn)現(xiàn)場(chǎng)數(shù)據(jù)的采集,、傳送以及生產(chǎn)過(guò)程調(diào)度的自動(dòng)化和信息化,其應(yīng)用前景十分廣闊,。常用的各種PLC網(wǎng)絡(luò)有差異,,但表現(xiàn)在 PLC 通信程序、系統(tǒng)聯(lián)結(jié)和系統(tǒng)配置等方面,,通信機(jī)理有統(tǒng)一性。目前市場(chǎng)上通信組態(tài)系統(tǒng)結(jié)構(gòu)復(fù)雜,,價(jià)格昂貴,,應(yīng)用繁瑣,不適應(yīng)用戶使用,。針對(duì)上述問(wèn)題筆者以西門(mén)子公司的S7-200系列的PLC為研究對(duì)象,,提出了一種用VC實(shí)現(xiàn)上位機(jī)與PLC的高速可靠的通信方法。
1,、S7-200系列PLC通信方式
  西門(mén)子S7-200系列性能優(yōu)良,,性價(jià)比較高,適用范圍很廣,,因此本文主要討論西門(mén)子7-200系列與計(jì)算機(jī)之間的通信,。S7-200系列通信方式有三種:
  (1) 點(diǎn)對(duì)點(diǎn)PPI方式與上位機(jī)通信:用于與西門(mén)子公司的PLC編程器或其他該公司人機(jī)接口產(chǎn)品的通信,。該種通信方式采用的是MSComm ActivcX控件,。PPI是主/從協(xié)議,網(wǎng)絡(luò)上的S7-200均為從站,其他CPU,、SIMATIC編程器或TD200為主站,。如果在用戶程序中允許PPI主站模式,一些S7-200CPU在RUN模式下可以作主站,,它們可以用網(wǎng)絡(luò)讀和網(wǎng)絡(luò)寫(xiě)指令讀寫(xiě)其他CPU中的數(shù)據(jù),。PPI沒(méi)有限制可以有多少個(gè)主站與一個(gè)從站通信,但是在網(wǎng)絡(luò)中最多只能有32個(gè)從站,。PPI通信協(xié)議是不公開(kāi)的;
 ?。?) Freeport方式與上位機(jī)通信:Freeport方式具有與外圍設(shè)備通信方便、自由,,易于微機(jī)開(kāi)發(fā)等特點(diǎn),,因此使用自由口方式實(shí)現(xiàn)與上位機(jī)通信的控制方案較多。但在該通信方式下,,上位機(jī)與PLC的最大通信能力為128bit/s,,這無(wú)法滿足高速通信的需要;
  (3) Profibus-DP方式與上位機(jī)通信:Profibus協(xié)議用于幾分布式I/O設(shè)備的高速通信,。S7-200CPU需通過(guò)EM277,。Profibus-DP模塊接入Profibus網(wǎng)絡(luò),網(wǎng)絡(luò)通常有一個(gè)主站和幾個(gè)I/O從站,。這種方式使得PLC可以通過(guò)Profibus的DP通信接口接入Profibus現(xiàn)場(chǎng)總線網(wǎng)絡(luò),,從而擴(kuò)大PLC的使用范圍。PPI協(xié)議和Profibus協(xié)議的結(jié)構(gòu)模型都是基于開(kāi)放系統(tǒng)互連參考模型的7層通信結(jié)構(gòu),。
2,、PLC網(wǎng)絡(luò)通信標(biāo)準(zhǔn)簡(jiǎn)介
  (1) RS-232C標(biāo)準(zhǔn)
  通信的連接接口與連接電纜的相互兼容是通信得以保證的前提,。它的實(shí)現(xiàn)方法發(fā)展迅速,,型式較多。其中RS-232C就是實(shí)際應(yīng)用較多的標(biāo)準(zhǔn)之一,,它是計(jì)算機(jī)或終端與調(diào)制解調(diào)器之間的標(biāo)準(zhǔn)接口,。RS-232C功能規(guī)范定義了電路之間的連接,以及它的含義,。RS-232C的規(guī)程規(guī)范定義的是協(xié)議,,即事件出現(xiàn)的正確順序。RS-232C的缺點(diǎn)是數(shù)據(jù)傳輸率低傳輸距離短,。
 ?。?) RS-485標(biāo)準(zhǔn)
  在許多工業(yè)環(huán)境中,要求用最少的信號(hào)連線來(lái)完成通信任務(wù),。日前廣泛應(yīng)用的是RS-485串行接口總線,,RS-485支持半雙工通信,,分時(shí)使用一對(duì)雙絞信號(hào)線進(jìn)行發(fā)送或接收。RS-485用于多站互聯(lián)時(shí)實(shí)現(xiàn)簡(jiǎn)單,,節(jié)省材料,,可以滿足高速遠(yuǎn)距離傳送,構(gòu)成分布式網(wǎng)絡(luò)控制系統(tǒng)十分方便,。
3,、通信網(wǎng)絡(luò)接口的設(shè)計(jì)
  在本工程中,我們采用的PLC為CPU224型,,該可編程控制器的通信端口為RS-485接口,,由于PC機(jī)的串行端口為RS-232接口,且遠(yuǎn)離控制現(xiàn)場(chǎng)(PLC位置),,因此PC機(jī)的RS-232接口必須通過(guò)RS-232/RS-485轉(zhuǎn)換器轉(zhuǎn)換后才能與PLC通信端口連接,,這種通信方式可以實(shí)現(xiàn)最遠(yuǎn)1.2Krn的遠(yuǎn)程通信。
  PC機(jī)的標(biāo)準(zhǔn)串口為RS232,。S7-200系列CPU226提供2個(gè)串口,,其中一個(gè)端口Portl作為DP口,另一個(gè)端口Port0為自由口,,自由口為標(biāo)準(zhǔn)RS485串口,。西門(mén)子公司提供的PC/PPI電纜帶有RS232/RS485電平轉(zhuǎn)換器,因此在不增加任何硬件的情況下,,可以很方便地將PLC和PC機(jī)互聯(lián),。
4、通信程序設(shè)計(jì)
 ?。?) 上位機(jī)部分程序
  單命令把MSComm控件加入到工程中,。MSComm控件通信功能的實(shí)現(xiàn)實(shí)際上是調(diào)用了API函數(shù)。而API函數(shù)是由Comm.drv解釋并傳遞給設(shè)備驅(qū)動(dòng)程序進(jìn)行的,。即MSComm控件的屬性提供了通信接口的參數(shù)設(shè)置,,能實(shí)現(xiàn)串行通信。MSComm控件有關(guān)屬性如下:
  CommPort:設(shè)置并返回通信端口號(hào),。Window系統(tǒng)將會(huì)利用該端口與外界通信;
  Setings:設(shè)置并返回初始化參數(shù)。其組成格式為“BBBB,。P,。D。S”,。BBBB為數(shù)據(jù)速率,。P為奇偶校驗(yàn)。D為數(shù)據(jù)比特,。S為停止位;
  PortOpen:設(shè)置并返回通信端口的狀態(tài),。也可以打開(kāi)和關(guān)閉端口;
  Ouptut:向傳輸緩沖區(qū)寫(xiě)1B的數(shù)據(jù);
  Input:將傳送到輸入緩沖區(qū)的字符讀到程序里;
  RThreshold:設(shè)置在產(chǎn)生OnComm之前要接受的字符數(shù);
  InputLen:設(shè)置并返回Input屬性從接收緩沖區(qū)讀取的字符數(shù);
  InBbuffersize:設(shè)置或返回輸入緩沖區(qū)的大小;
  InBufferCount:返回輸入緩沖區(qū)內(nèi)等待讀區(qū)的字節(jié)個(gè)數(shù),。可通過(guò)設(shè)置該屬性值為0來(lái)清除接收緩沖區(qū);
  InputMode:設(shè)置或返回傳輸數(shù)據(jù)的類(lèi)型;
  CommEvent:傳回OnComm事件發(fā)生時(shí)的數(shù)值碼;
  軟件通信流程圖如圖1 ,。

圖1 :通信流程圖
  在實(shí)際應(yīng)用中,,從站被動(dòng)的接收上位機(jī)發(fā)出的指令后做出響應(yīng),然后將信息傳回上位機(jī),,由于上位機(jī)在整個(gè)通信的過(guò)程中不能被中斷,,因此上位機(jī)在接收與發(fā)送數(shù)據(jù)過(guò)程中采用了不可中斷的方法。
 ?。?) 從站PLC程序
  S72200系列PLC選擇了自由口通信方式后,,在程序中就可以使用接收中斷、發(fā)送中斷,、接收指令(RCV),、發(fā)送指令(XMT)來(lái)控制通信操作,當(dāng)處于自由口模式時(shí)通信協(xié)議完全由用戶程序指令控制,。SMB30被用于選擇比特率和校驗(yàn)類(lèi)型,,各個(gè)位的配置為:

圖2:SMB30的位配置
  pp,校驗(yàn)選擇:00為不校驗(yàn),,01為偶校驗(yàn),,10為不校驗(yàn),11為奇校驗(yàn);
  d,,每個(gè)字符的數(shù)據(jù)位數(shù):0,,每個(gè)數(shù)字符8位;1,每個(gè)數(shù)字符7位,。
  bbb,,自由口比特率,kbit/s:000為3814,,001為1912,,010為916,011為418,,100為214,,101為112,110為11512,,111為5716,。
  mm,協(xié)議選擇:00,,PPI/從站模式;01,,自由口模式;10,PPI/從站模式;11,,保留,。
  接收指令(RCV)啟動(dòng)或終止接收信息功能,,必須為接收操作指定開(kāi)始和結(jié)束條件。發(fā)送指令(XMT)在自由口模式下依靠通訊口發(fā)送數(shù)據(jù),。
  PLC程序分為主程序和中斷程序,。主程序完成初始化通信口、開(kāi)中斷,、判斷,、發(fā)送數(shù)據(jù)等功能,中斷程序完成接收和發(fā)送數(shù)據(jù)的功能,。
5,、高速通信設(shè)計(jì)及檢驗(yàn)
  (1) 高速接口設(shè)計(jì)
  PC機(jī)采用400MHz的CPU以及256M的RAM,,應(yīng)用VC++6.0開(kāi)發(fā)軟件和Sicmcns SIMATIC Microcomputing軟件進(jìn)行開(kāi)發(fā)設(shè)計(jì),。使用PC/PPI電纜可實(shí)現(xiàn)計(jì)算機(jī)的RS232接口與PLC通信。但該方式下只能使用PPI協(xié)議或自山通信,。要使用PROFIBUS協(xié)議通信,。上位機(jī)應(yīng)有PROFIBUS DP模塊。同時(shí)S7- 200 PLC應(yīng)連接通信模塊,。這里上位機(jī)使用的是CP5611 PROFIBUS DP模塊,。安裝的是SicmcnsSIMATIC Micro computing軟件;下位機(jī)使用的是EM277 PROFIBUS DP模塊和S7-200 224PLC組建的通信網(wǎng)絡(luò)。
 ?。?) 速度仿真與檢測(cè)
  Siemens SIMATIC Microcomputing軟件使用ActiveX技術(shù)提供對(duì)數(shù)據(jù)的訪問(wèn)控制,。 Microcomputing軟件由2部分組成:第一部分,一系列的SIMATIC ActiveX控件,,用于對(duì)PLC的數(shù)據(jù)操作,,主要包括數(shù)據(jù)控件!按鈕控件!編輯控件!標(biāo)簽控件和滑塊控件;另一部分,一個(gè)容器,,用于創(chuàng)建使用ActiveX控件的處理界面[7-8],。
  上位機(jī)用Micro computing configuration設(shè)定通信協(xié)議和波特率。 Siemens Micro computing提供PPI,, MPI,, PROFIBUS-I辦議支持Data Control與PLC通信。PPI協(xié)議支持的最高通信速率為187.5KbpsMPI和PROFIBUS都支持9.6kbps-12Mbps的速率通信,。PROFIBUS包含PROFIBUS-DP協(xié)議,、PROFIBUS-Standard協(xié)議、PROFIBUS-User-defined協(xié)議和PROFIBUS-Universal協(xié)議(該協(xié)議只支持9.6kbps-1.5Mbps的通信),。用Micro computing configuration設(shè)定相應(yīng)的應(yīng)用程序接口點(diǎn)和協(xié)議。檢測(cè)實(shí)驗(yàn)中表示應(yīng)用程序接口點(diǎn)為CP5611協(xié)議為PROFIBUS基木實(shí)現(xiàn)流程圖如4所示,。

圖3:檢測(cè)實(shí)驗(yàn)流程圖
  對(duì)PLC數(shù)據(jù)的讀寫(xiě),。Data Control提供了4個(gè)函數(shù):Write Variable(對(duì)單存儲(chǔ)單元寫(xiě)),,Write Multi Variable(對(duì)多存儲(chǔ)單元寫(xiě)),Read Variable(對(duì)單存儲(chǔ)單元讀),,Read Multi Variable(對(duì)多存儲(chǔ)單元讀),。
  表1是在WIN2000系統(tǒng)下,針對(duì)PROFIBUS的不同協(xié)議,,Data Control使用自動(dòng)連接,,自動(dòng)超時(shí)設(shè)為100ms,用Write Multi Variable函數(shù)對(duì)一個(gè)S7- 200PLC的V存儲(chǔ)區(qū)10個(gè)存儲(chǔ)單元進(jìn)行20個(gè)字節(jié)寫(xiě)1000次的測(cè)試數(shù)據(jù)見(jiàn)表1,。從表1數(shù)據(jù)可知,,PROFIBUS-DP協(xié)議,PROFI-BUS-Standard協(xié)議,、PROFIBUS-User-defined協(xié)議和PROFIBUS-Universal協(xié)議在1.5 M的波特率下,,其寫(xiě)操作時(shí)間最短的是PROFIBUS-Universal協(xié)議,時(shí)間為31.61ms,。
  表1:不同協(xié)議下對(duì)PLC寫(xiě)數(shù)據(jù)時(shí)間


6,、結(jié)束語(yǔ)
  本系統(tǒng)通過(guò)現(xiàn)場(chǎng)調(diào)試實(shí)驗(yàn),功能達(dá)到設(shè)計(jì)要求,。試驗(yàn)結(jié)果表明,,當(dāng)數(shù)據(jù)傳輸速率為916kbit/s時(shí)誤碼率< ,能夠?qū)崿F(xiàn)現(xiàn)場(chǎng)網(wǎng)絡(luò)的在線監(jiān)控,、調(diào)試及數(shù)據(jù)修改,。由于程序中采用了以16進(jìn)制ASCII碼描述數(shù)據(jù)傳輸格式,因此一條指令中的數(shù)據(jù)字節(jié)和控制字節(jié)不可能發(fā)生混淆,,通信更加可靠,。同時(shí)采用了PROFIBUS-Universal協(xié)議,實(shí)現(xiàn)了上位機(jī)和PLC之間的高速通信,,并用實(shí)驗(yàn)證實(shí)了該協(xié)議的優(yōu)越性,。對(duì)于其它品牌的PLC,盡管通信規(guī)范及初始化有所不同,,可以參照本系統(tǒng)方法進(jìn)行編程,,稍做修改即可應(yīng)用。本系統(tǒng)的成功研制將對(duì)工業(yè)控制系統(tǒng)的自動(dòng)化,、智能化,、網(wǎng)絡(luò)化的發(fā)展提供有益的借鑒。
參考文獻(xiàn)
  [1] 蔚俊蘭,,丁振榮.組態(tài)王6.5與單片機(jī)的通信方法[J].工業(yè)控制計(jì)算機(jī),,2004,17(10),,58-59.
  [2] 張晞,,王德銀,,張晨.MSP430系列單片機(jī)使用C語(yǔ)言程序設(shè)計(jì)[M].北京,人民郵電出版社,,2005.
  [3] ADAM-5000 Series RS-485 Based Data Acquisition and Control System User’s Manual.
  [4] 呂鵬剛,,何承波,劉開(kāi)培等.基于亞當(dāng)模塊的火電廠自動(dòng)加藥系統(tǒng)[J] ,,微計(jì)算機(jī)信息2001,,17(11):19-20.
  [5] 鄭晟,建平,,張學(xué);現(xiàn)代可編程序控制其原理與應(yīng)用[M],,北京;科學(xué)出版社,2003
  [6] 廖常初;PLC編程及應(yīng)用[M],,北京:機(jī)械工業(yè)出版社,,2002
  [7] SIEMENS Company. SIMATIC Micro computing User Manual. [S.1]:SIEMENS Company, 2000 62-88.
  [8] SIEMENS Company. SIMATIC S7-200 Programmable Controller System Manual[M].[S.1]: SIEMENS Company, 2000 568-600.

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