西門子S7-200係列PLC用VC實現上位機與(yu) PLC的高速可靠的通信方法。
1、S7-200係列PLC通信方式
西門子S7-200係列性能優(you) 良,性價(jia) 比較高,適用範圍很廣,因此本文主要討論西門子7-200係列與(yu) 計算機之間的通信。S7-200係列通信方式有三種:
(1) 點對點PPI方式與(yu) 上位機通信:用於(yu) 與(yu) 西門子公司的PLC編程器或其他該公司人機接口產(chan) 品的通信。該種通信方式采用的是MSComm ActivcX控件。PPI是主/從(cong) 協議,網絡上的S7-200均為(wei) 從(cong) 站,其他CPU、SIMATIC編程器或TD200為(wei) 主站。如果在用戶程序中允許PPI主站模式,一些S7-200CPU在RUN模式下可以作主站,它們(men) 可以用網絡讀和網絡寫(xie) 指令讀寫(xie) 其他CPU中的數據。PPI沒有限製可以有多少個(ge) 主站與(yu) 一個(ge) 從(cong) 站通信,但是在網絡中最多隻能有32個(ge) 從(cong) 站。PPI通信協議是不公開的;
(2) Freeport方式與(yu) 上位機通信:Freeport方式具有與(yu) 外圍設備通信方便、自由,易於(yu) 微機開發等特點,因此使用自由口方式實現與(yu) 上位機通信的控製方案較多。但在該通信方式下,上位機與(yu) PLC的最大通信能力為(wei) 128bit/s,這無法滿足高速通信的需要;
(3) Profibus-DP方式與(yu) 上位機通信:Profibus協議用於(yu) 幾分布式I/O設備的高速通信。S7-200CPU需通過EM277。Profibus-DP模塊接入Profibus網絡,網絡通常有一個(ge) 主站和幾個(ge) I/O從(cong) 站。這種方式使得PLC可以通過Profibus的DP通信接口接入Profibus現場總線網絡,從(cong) 而擴大PLC的使用範圍。PPI協議和Profibus協議的結構模型都是基於(yu) 開放係統互連參考模型的7層通信結構。
2、PLC網絡通信標準簡介
(1) RS-232C標準
通信的連接接口與(yu) 連接電纜的相互兼容是通信得以保證的前提。它的實現方法發展迅速,型式較多。其中RS-232C就是實際應用較多的標準之一,它是計算機或終端與(yu) 調製解調器之間的標準接口。RS-232C功能規範定義(yi) 了電路之間的連接,以及它的含義(yi) 。RS-232C的規程規範定義(yi) 的是協議,即事件出現的正確順序。RS-232C的缺點是數據傳(chuan) 輸率低傳(chuan) 輸距離短。
(2) RS-485標準
在許多工業(ye) 環境中,要求用最少的信號連線來完成通信任務。日前廣泛應用的是RS-485串行接口總線,RS-485支持半雙工通信,分時使用一對雙絞信號線進行發送或接收。RS-485用於(yu) 多站互聯時實現簡單,節省材料,可以滿足高速遠距離傳(chuan) 送,構成分布式網絡控製係統十分方便。
3、通信網絡接口的設計
在本工程中,我們(men) 采用的PLC為(wei) CPU224型,該可編程控製器的通信端口為(wei) RS-485接口,由於(yu) PC機的串行端口為(wei) RS-232接口,且遠離控製現場(PLC位置),因此PC機的RS-232接口必須通過RS-232/RS-485轉換器轉換後才能與(yu) PLC通信端口連接,這種通信方式可以實現最遠1.2Krn的遠程通信。
PC機的標準串口為(wei) RS232。S7-200係列CPU226提供2個(ge) 串口,其中一個(ge) 端口Portl作為(wei) DP口,另一個(ge) 端口Port0為(wei) 自由口,自由口為(wei) 標準RS485串口。西門子公司提供的PC/PPI電纜帶有RS232/RS485電平轉換器,因此在不增加任何硬件的情況下,可以很方便地將PLC和PC機互聯。
4、通信程序設計
(1) 上位機部分程序
單命令把MSComm控件加入到工程中。MSComm控件通信功能的實現實際上是調用了API函數。而API函數是由Comm.drv解釋並傳(chuan) 遞給設備驅動程序進行的。即MSComm控件的屬性提供了通信接口的參數設置,能實現串行通信。MSComm控件有關(guan) 屬性如下:
CommPort:設置並返回通信端口號。Window係統將會(hui) 利用該端口與(yu) 外界通信;
Setings:設置並返回初始化參數。其組成格式為(wei) “BBBB。P。D。S”。BBBB為(wei) 數據速率。P為(wei) 奇偶校驗。D為(wei) 數據比特。S為(wei) 停止位;
PortOpen:設置並返回通信端口的狀態。也可以打開和關(guan) 閉端口;
Ouptut:向傳(chuan) 輸緩衝(chong) 區寫(xie) 1B的數據;
Input:將傳(chuan) 送到輸入緩衝(chong) 區的字符讀到程序裏;
RThreshold:設置在產(chan) 生OnComm之前要接受的字符數;
InputLen:設置並返回Input屬性從(cong) 接收緩衝(chong) 區讀取的字符數;
InBbuffersize:設置或返回輸入緩衝(chong) 區的大小;
InBufferCount:返回輸入緩衝(chong) 區內(nei) 等待讀區的字節個(ge) 數。可通過設置該屬性值為(wei) 0來清除接收緩衝(chong) 區;
InputMode:設置或返回傳(chuan) 輸數據的類型;
CommEvent:傳(chuan) 回OnComm事件發生時的數值碼;
軟件通信流程圖如圖1 。

圖1 :通信流程圖
在實際應用中,從站被動的接收上位機發出的指令後做出響應,然後將信息傳回上位機,由於上位機在整個通信的過程中不能被中斷,因此上位機在接收與發送數據過程中采用了不可中斷的方法。
(2) 從站PLC程序
S72200係列PLC選擇了自由口通信方式後,在程序中就可以使用接收中斷、發送中斷、接收指令(RCV)、發送指令(XMT)來控製通信操作,當處於自由口模式時通信協議完全由用戶程序指令控製。SMB30被用於選擇比特率和校驗類型,各個位的配置為:

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

圖3:檢測實驗流程圖
對PLC數據的讀寫。Data Control提供了4個函數:Write Variable(對單存儲單元寫),Write Multi Variable(對多存儲單元寫),Read Variable(對單存儲單元讀),Read Multi Variable(對多存儲單元讀)。
表1是在WIN2000係統下,針對PROFIBUS的不同協議,Data Control使用自動連接,自動超時設為100ms,用Write Multi Variable函數對一個S7- 200PLC的V存儲區10個存儲單元進行20個字節寫1000次的測試數據見表1。從表1數據可知,PROFIBUS-DP協議,PROFI-BUS-Standard協議、PROFIBUS-User-defined協議和PROFIBUS-Universal協議在1.5 M的波特率下,其寫操作時間最短的是PROFIBUS-Universal協議,時間為31.61ms。
表1:不同協議下對PLC寫數據時間

6、結束語
本係統通過現場調試實驗,功能達到設計要求。試驗結果表明,當數據傳輸速率為916kbit/s時誤碼率《 ,能夠實現現場網絡的在線監控、調試及數據修改。由於程序中采用了以16進製ASCII碼描述數據傳輸格式,因此一條指令中的數據字節和控製字節不可能發生混淆,通信更加可靠。同時采用了PROFIBUS-Universal協議,實現了上位機和PLC之間的高速通信,並用實驗證實了該協議的優越性。對於其它品牌的PLC,盡管通信規範及初始化有所不同,可以參照本係統方法進行編程,稍做修改即可應用。本係統的成功研製將對工業控製係統的自動化、智能化、網絡化的發展提供有益的借鑒。