摘 要:本文先介紹了S7-200系列PLC的三種通信方式,,及其在網(wǎng)絡中通信的RS-232和RS-485標準,。在實例中,采用西門子公司的S7-200系列PLC為下位機,,按照RS-485標準與上位機通信;通信協(xié)議為以自由口模式創(chuàng)建用戶自定義的協(xié)議,,數(shù)據(jù)傳輸格式為16進制ASCII編碼,求和校驗;上位機采用VC編程的可視化界面,,在編程過程中采用不可中斷方式和多緩沖區(qū)結構,,實現(xiàn)了可靠且高速的通信方式。
關鍵詞:PLC;串行通信;高速通信;VC;自由口模式
0,、引言
工業(yè)控制領域中PLC作為一種高效,、靈活、可靠的控制器,,有著廣泛的應用,。以PLC控制器為核心,,上位PC機為實時監(jiān)控體的控制系統(tǒng)已成為工業(yè)自動化PLC控制系統(tǒng)的一個發(fā)展方向。實現(xiàn)PLC與PC的通信可以實現(xiàn)向上級提供諸如工藝流程圖,、動態(tài)數(shù)據(jù)畫面,、報表顯示等多種窗口技術,使PLC控制系統(tǒng)具有良好的人機界面,,通過上位機對PLC數(shù)據(jù)的讀寫監(jiān)控實現(xiàn)現(xiàn)場數(shù)據(jù)的采集,、傳送以及生產(chǎn)過程調度的自動化和信息化,其應用前景十分廣闊,。常用的各種PLC網(wǎng)絡有差異,,但表現(xiàn)在 PLC 通信程序、系統(tǒng)聯(lián)結和系統(tǒng)配置等方面,,通信機理有統(tǒng)一性,。目前市場上通信組態(tài)系統(tǒng)結構復雜,價格昂貴,,應用繁瑣,,不適應用戶使用。針對上述問題筆者以西門子公司的S7-200系列的PLC為研究對象,,提出了一種用VC實現(xiàn)上位機與PLC的高速可靠的通信方法,。
1、S7-200系列PLC通信方式
西門子S7-200系列性能優(yōu)良,,性價比較高,,適用范圍很廣,因此本文主要討論西門子7-200系列與計算機之間的通信,。S7-200系列通信方式有三種:
?。?) 點對點PPI方式與上位機通信:用于與西門子公司的PLC編程器或其他該公司人機接口產(chǎn)品的通信。該種通信方式采用的是MSComm ActivcX控件,。PPI是主/從協(xié)議,網(wǎng)絡上的S7-200均為從站,,其他CPU,、SIMATIC編程器或TD200為主站。如果在用戶程序中允許PPI主站模式,,一些S7-200CPU在RUN模式下可以作主站,,它們可以用網(wǎng)絡讀和網(wǎng)絡寫指令讀寫其他CPU中的數(shù)據(jù)。PPI沒有限制可以有多少個主站與一個從站通信,,但是在網(wǎng)絡中最多只能有32個從站,。PPI通信協(xié)議是不公開的;
(2) Freeport方式與上位機通信:Freeport方式具有與外圍設備通信方便,、自由,,易于微機開發(fā)等特點,因此使用自由口方式實現(xiàn)與上位機通信的控制方案較多。但在該通信方式下,,上位機與PLC的最大通信能力為128bit/s,,這無法滿足高速通信的需要;
(3) Profibus-DP方式與上位機通信:Profibus協(xié)議用于幾分布式I/O設備的高速通信,。S7-200CPU需通過EM277,。Profibus-DP模塊接入Profibus網(wǎng)絡,網(wǎng)絡通常有一個主站和幾個I/O從站,。這種方式使得PLC可以通過Profibus的DP通信接口接入Profibus現(xiàn)場總線網(wǎng)絡,,從而擴大PLC的使用范圍。PPI協(xié)議和Profibus協(xié)議的結構模型都是基于開放系統(tǒng)互連參考模型的7層通信結構,。
2,、PLC網(wǎng)絡通信標準簡介
(1) RS-232C標準
通信的連接接口與連接電纜的相互兼容是通信得以保證的前提,。它的實現(xiàn)方法發(fā)展迅速,,型式較多。其中RS-232C就是實際應用較多的標準之一,,它是計算機或終端與調制解調器之間的標準接口,。RS-232C功能規(guī)范定義了電路之間的連接,以及它的含義,。RS-232C的規(guī)程規(guī)范定義的是協(xié)議,,即事件出現(xiàn)的正確順序。RS-232C的缺點是數(shù)據(jù)傳輸率低傳輸距離短,。
?。?) RS-485標準
在許多工業(yè)環(huán)境中,要求用最少的信號連線來完成通信任務,。日前廣泛應用的是RS-485串行接口總線,,RS-485支持半雙工通信,分時使用一對雙絞信號線進行發(fā)送或接收,。RS-485用于多站互聯(lián)時實現(xiàn)簡單,,節(jié)省材料,可以滿足高速遠距離傳送,,構成分布式網(wǎng)絡控制系統(tǒng)十分方便,。
3、通信網(wǎng)絡接口的設計
在本工程中,,我們采用的PLC為CPU224型,,該可編程控制器的通信端口為RS-485接口,由于PC機的串行端口為RS-232接口,,且遠離控制現(xiàn)場(PLC位置),,因此PC機的RS-232接口必須通過RS-232/RS-485轉換器轉換后才能與PLC通信端口連接,,這種通信方式可以實現(xiàn)最遠1.2Krn的遠程通信。
PC機的標準串口為RS232,。S7-200系列CPU226提供2個串口,,其中一個端口Portl作為DP口,另一個端口Port0為自由口,,自由口為標準RS485串口,。西門子公司提供的PC/PPI電纜帶有RS232/RS485電平轉換器,因此在不增加任何硬件的情況下,,可以很方便地將PLC和PC機互聯(lián),。
4、通信程序設計
?。?) 上位機部分程序
單命令把MSComm控件加入到工程中,。MSComm控件通信功能的實現(xiàn)實際上是調用了API函數(shù)。而API函數(shù)是由Comm.drv解釋并傳遞給設備驅動程序進行的,。即MSComm控件的屬性提供了通信接口的參數(shù)設置,,能實現(xiàn)串行通信。MSComm控件有關屬性如下:
CommPort:設置并返回通信端口號,。Window系統(tǒng)將會利用該端口與外界通信;
Setings:設置并返回初始化參數(shù),。其組成格式為“BBBB。P,。D,。S”。BBBB為數(shù)據(jù)速率,。P為奇偶校驗,。D為數(shù)據(jù)比特。S為停止位;
PortOpen:設置并返回通信端口的狀態(tài),。也可以打開和關閉端口;
Ouptut:向傳輸緩沖區(qū)寫1B的數(shù)據(jù);
Input:將傳送到輸入緩沖區(qū)的字符讀到程序里;
RThreshold:設置在產(chǎn)生OnComm之前要接受的字符數(shù);
InputLen:設置并返回Input屬性從接收緩沖區(qū)讀取的字符數(shù);
InBbuffersize:設置或返回輸入緩沖區(qū)的大小;
InBufferCount:返回輸入緩沖區(qū)內等待讀區(qū)的字節(jié)個數(shù),。可通過設置該屬性值為0來清除接收緩沖區(qū);
InputMode:設置或返回傳輸數(shù)據(jù)的類型;
CommEvent:傳回OnComm事件發(fā)生時的數(shù)值碼;
軟件通信流程圖如圖1 ,。
圖1 :通信流程圖
在實際應用中,,從站被動的接收上位機發(fā)出的指令后做出響應,然后將信息傳回上位機,,由于上位機在整個通信的過程中不能被中斷,因此上位機在接收與發(fā)送數(shù)據(jù)過程中采用了不可中斷的方法,。
?。?) 從站PLC程序
S72200系列PLC選擇了自由口通信方式后,在程序中就可以使用接收中斷,、發(fā)送中斷,、接收指令(RCV),、發(fā)送指令(XMT)來控制通信操作,當處于自由口模式時通信協(xié)議完全由用戶程序指令控制,。SMB30被用于選擇比特率和校驗類型,,各個位的配置為:
圖2:SMB30的位配置
pp,校驗選擇:00為不校驗,,01為偶校驗,,10為不校驗,11為奇校驗;
d,,每個字符的數(shù)據(jù)位數(shù):0,,每個數(shù)字符8位;1,每個數(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)啟動或終止接收信息功能,必須為接收操作指定開始和結束條件,。發(fā)送指令(XMT)在自由口模式下依靠通訊口發(fā)送數(shù)據(jù),。
PLC程序分為主程序和中斷程序。主程序完成初始化通信口,、開中斷,、判斷、發(fā)送數(shù)據(jù)等功能,,中斷程序完成接收和發(fā)送數(shù)據(jù)的功能,。
5、高速通信設計及檢驗
?。?) 高速接口設計
PC機采用400MHz的CPU以及256M的RAM,,應用VC++6.0開發(fā)軟件和Sicmcns SIMATIC Microcomputing軟件進行開發(fā)設計,。使用PC/PPI電纜可實現(xiàn)計算機的RS232接口與PLC通信。但該方式下只能使用PPI協(xié)議或自山通信,。要使用PROFIBUS協(xié)議通信,。上位機應有PROFIBUS DP模塊。同時S7- 200 PLC應連接通信模塊,。這里上位機使用的是CP5611 PROFIBUS DP模塊,。安裝的是SicmcnsSIMATIC Micro computing軟件;下位機使用的是EM277 PROFIBUS DP模塊和S7-200 224PLC組建的通信網(wǎng)絡。
?。?) 速度仿真與檢測
Siemens SIMATIC Microcomputing軟件使用ActiveX技術提供對數(shù)據(jù)的訪問控制,。 Microcomputing軟件由2部分組成:第一部分,一系列的SIMATIC ActiveX控件,,用于對PLC的數(shù)據(jù)操作,,主要包括數(shù)據(jù)控件!按鈕控件!編輯控件!標簽控件和滑塊控件;另一部分,一個容器,,用于創(chuàng)建使用ActiveX控件的處理界面[7-8],。
上位機用Micro computing configuration設定通信協(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設定相應的應用程序接口點和協(xié)議,。檢測實驗中表示應用程序接口點為CP5611協(xié)議為PROFIBUS基木實現(xiàn)流程圖如4所示。
圖3:檢測實驗流程圖
對PLC數(shù)據(jù)的讀寫,。Data Control提供了4個函數(shù):Write Variable(對單存儲單元寫),,Write Multi Variable(對多存儲單元寫),Read Variable(對單存儲單元讀),,Read Multi Variable(對多存儲單元讀),。
表1是在WIN2000系統(tǒng)下,針對PROFIBUS的不同協(xié)議,,Data Control使用自動連接,,自動超時設為100ms,用Write Multi Variable函數(shù)對一個S7- 200PLC的V存儲區(qū)10個存儲單元進行20個字節(jié)寫1000次的測試數(shù)據(jù)見表1,。從表1數(shù)據(jù)可知,,PROFIBUS-DP協(xié)議,PROFI-BUS-Standard協(xié)議、PROFIBUS-User-defined協(xié)議和PROFIBUS-Universal協(xié)議在1.5 M的波特率下,,其寫操作時間最短的是PROFIBUS-Universal協(xié)議,時間為31.61ms,。
表1:不同協(xié)議下對PLC寫數(shù)據(jù)時間
6,、結束語
本系統(tǒng)通過現(xiàn)場調試實驗,功能達到設計要求,。試驗結果表明,,當數(shù)據(jù)傳輸速率為916kbit/s時誤碼率< ,能夠實現(xiàn)現(xiàn)場網(wǎng)絡的在線監(jiān)控,、調試及數(shù)據(jù)修改,。由于程序中采用了以16進制ASCII碼描述數(shù)據(jù)傳輸格式,因此一條指令中的數(shù)據(jù)字節(jié)和控制字節(jié)不可能發(fā)生混淆,,通信更加可靠,。同時采用了PROFIBUS-Universal協(xié)議,實現(xiàn)了上位機和PLC之間的高速通信,,并用實驗證實了該協(xié)議的優(yōu)越性,。對于其它品牌的PLC,盡管通信規(guī)范及初始化有所不同,,可以參照本系統(tǒng)方法進行編程,,稍做修改即可應用。本系統(tǒng)的成功研制將對工業(yè)控制系統(tǒng)的自動化,、智能化,、網(wǎng)絡化的發(fā)展提供有益的借鑒。
參考文獻
[1] 蔚俊蘭,,丁振榮.組態(tài)王6.5與單片機的通信方法[J].工業(yè)控制計算機,,2004,17(10),,58-59.
[2] 張晞,,王德銀,張晨.MSP430系列單片機使用C語言程序設計[M].北京,,人民郵電出版社,,2005.
[3] ADAM-5000 Series RS-485 Based Data Acquisition and Control System User’s Manual.
[4] 呂鵬剛,何承波,,劉開培等.基于亞當模塊的火電廠自動加藥系統(tǒng)[J] ,,微計算機信息2001,17(11):19-20.
[5] 鄭晟,,建平,,張學;現(xiàn)代可編程序控制其原理與應用[M],北京;科學出版社,,2003
[6] 廖常初;PLC編程及應用[M],,北京:機械工業(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.