摘要:該文基于S7—200系列PLC的構成及特點,結合S7—200系列PLC的自由口通信方式,分析了S7—200系列PLC自由口通信的實現。
關鍵詞:S7—200系列;PLC;自由口通信;實現
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2010)21-5915-02
Discussion on the Implementation of Freedom Communication about S7-200 Series PLC
LI Chen-yong
(Audio-Visual Mechanical Institute of Qinhuangdao, Qinhuangdao 066000, China)
Abstract: Based on the structure and features of S7-200 series PLC, combining with the way of freedom communication, the paper analyzes the implementation of freedom communication about S7-200 series PLC.
Key words: S7-200 series; PLC; freedom communication; implementation
德國西門子(SIEMENS)公司的S7系列可編程控制器包括S7—200系列、S7—300系列和57—400系列,其功能強大,分別應用于小型、中型和大型自動化系統。S7—200系列PLC是集成型小型單元式PLC。集成了CPU、電源、I/O于一體,具有豐富的內置集成功能,強勁的通信能力,使用簡單方便、易于掌握,具有極高的性價比。廣泛應用于各個行業。由于S7—200系列PLC幾乎包含了西門子PLC所有的性能,而且在小型PLC中具有較強的代表性,所以本文以S7—200系列為例,對其自由口通信問題進行探討。
1 S7—200的構成
S7—200系列PLC有CPU21X和CPU22X兩代產品,其中CPU22X型PLC有CPU221,CPU222,CPU224和CPU226四種基本型號。本文以CPU224型PLC為重點,分析小型PLC的組成。
1.1 主機的基本I/O
CPU22X型PLC具有兩種不同的電源供電電壓,輸出電路分為繼,電器輸出和晶體管DC輸出兩大類。CPU22X系列PLC可提供4個不同型號的CPU基本單元供用戶選用,其類型及參數見表1。
CPU221集成6輸入/4輸出共10個數字量I/O點,無I/O擴展能力,6KB程序和數據存儲空間。
CPU222集成8輸入/6輸出共14個數字量I/O點,可連接2個擴展模塊,最大擴展至78路數字量I/O或10路模擬I/O點,6KB程序和數據存儲空間。
CPU224集成14輸入/10輸出共24個數字量I/0點,可連接7個擴展模塊,最大擴展至168路數字量I/O或35路模擬I/O點,13KB程序和數據存儲空間。
CPU226集成24輸入/16輸出共40個數字量I/O點,可連接7個擴展模塊,最大擴展至248路數字量I/O或35路模擬I/O點,13KB程序和數據存儲空間。
CPU226XM除有26KB程序和數據存儲空間外,其他與CPU226相同。
CPU 22X系列PLC的特點:CPU22X主機的輸入點為DC24V雙向光藕輸入電路,輸出有繼電器和DC(MOS型)兩種類型(CPU21X系列輸入點為DC24V單向光藕輸入電路,輸出有繼電器和DC、AC三種類型)。并且,具有30kHz高速計數器,20kHz高速脈沖輸出,RS-485通信/編程口,PPI、MPI通信協議和自由口通信能力。CPU222及以上CPU還具有PID控制和擴展的能力,內部資源及指令系統更加豐富,功能更加強大。
CPU224主機共有I0.0—11.5等14個輸入點和Q0.0~Q1.1等10個輸出點。CPU224輸入電路采用了雙向光電藕合器,DC24V極性可任意選擇,系統設置1M為10B輸入端子的公共端,2M為I1B輸入端子的公共端。在晶體管輸出電路中采用了MOSFET功率驅動器件,并將數字量輸出分為兩組,每組有一個獨立公共端,共有1L、2L兩個公共端,可接人不同的負載電源。
S7—200系列PLC的I/O接線端子排分為固定式和可拆卸式兩種結構。可拆卸式端子排能在不改變外部電路硬件接線的前提下,方便的拆裝,為PLC的維護提供了便利。
1.2 主機及其I/O擴展能力
CPU22X系列PLC主機的的基本I/O點數及可擴展模塊數目見表2。
1.3 高速反應I/O
CPU224PLC有6個可用于高速計數脈沖的輸入端(I0.0—I0.5),最快的響應速度為30kHz,用于捕捉比CPU掃描周期更快的脈沖信號。還有2個高速脈沖輸出端(Q0.0、Q0.1),輸出脈沖頻率可達20kHzo用于PTO(高速脈沖柬)和PWM(寬度可變脈沖輸出)高速脈沖輸出。
1.4 存儲系統
S7—200 CPU存儲系統由RAM和EEPROM兩種存儲器構成,用以存儲用戶程序、CPU組態(配置)、程序數據等。當執行程序下載操作時,用戶程序、CPU組態,(配置)、程序數據等由編程器送入RAM存儲器區,并自動復制到EEPROM區,永久保存。
系統掉電時,自動將RAM中M存儲器的內容保存到EEPROM存儲器。
上電恢復時,用戶程序及CPU組態(配置)自動存人RAM中,如果V和M存儲區內容丟失時,EEPROM永久保存區的數據會復制到RAM中去。
執行PLC的上載操作時,RAM區用戶程序、CPU組態(.配置)上裝到個人計算機(PC),RAM和EEPROM中數據塊合并后上裝PC。
1.5 模擬電位器
模擬電位器用來改變特殊寄存器(SM32、SM33)如定時、計數器的預置值、過程量的控制參數等。
1.6 存儲卡中的數值,以改變程序運行時的參數
該卡位可以選擇安裝擴展卡。擴展卡有EEPROM存儲卡、電池和時鐘卡等模塊。EEPROM存儲模塊,用以用戶程序的復制。電池模塊,用以長時間保存數據,使用CPU224內部存儲電容數據存儲時間達190h,而使用電池模塊存儲時間可達200天。
2 S7—200系列PLC的自由口通信方式
自由口通信也稱用戶自定義協議通信,它主要針對S7-200系列的PLC。自由端口模式下,用戶可通過發送指令(304T)、接收指令(RCV)、發送中斷、接收中斷等來控制通信口的操作。
一般情況下,第三方設備大都支持RS—485串口通信,西門子S7-200PLC可以通過選擇自由口通信模式控制串口通信;同時,自由口通信也為計算機與S7-200PLC之間的通信提供了一種廉價與靈活的方法。計算機與PLC通信時,為了避免各方爭用信道,一股采用主從方式,即計算機為主機,PLC為從機,只有主機才有權主動發送請求報文,從機收到后返回響應報文。自由口通信也可以用于PLC之間的通信。
需要注意的是:自由口模式下,計算機與S7-200PLC之間通信是指上位機編程軟件STEP 7與S7—200CPU之間的通信,通信協議完全由梯形圖程序控制。
3 S7—200系列PLC自由口通信的實現
在自由口通信模式中,用戶。可以定義波特率、每個字符位數、奇偶校驗等參數。通過使用發送中斷、接收中斷、XMT(發送指令)、RCV(接收指令)等指令來實現用戶程序控制通信端口。XMT指令激活發送數據區中的數據,數據緩沖區第一個數據指明了要發送的數據字節數,緩沖區最大為255個字符,在發送完最后一個字符時產生發送中斷,執行中斷程序;RCV指令激活初始化或結束接收信息的服務,它可以接收最多255個字符,這些字符存在緩沖區中。如果有一個中斷程序連接到接收完成事件上,則在接收到緩沖區的最后一個字符時,會產生一個中斷,執行中斷程序。由自由口通信協議支持所允許的數據通信完全是柔性的,可以使用字符中斷控制來接收數據。
計算機與PLC通信是由計算機發出命令啟動通信,PLC作出響應。這時,由于PLC內部端口為485端口,串行通信RS-485標淮是半雙工方式,所以PLC的XMT命令和RCV命令不能同時執行,否則,雙向通信會產生致命錯誤,甚至危及系統。
因此,編制自由口通信協議務必保證發送、接收的分時性。在實際工程中,采用在接收結束后,在產生的中斷程序中再行發送命令的辦法能可靠地實現了半雙工通信的分時性要求。
PLC作為下位機,在通信中接收到上位機發送來的數據幀,判斷地址碼是否與本機地址相同。如地址吻合,則下位機與上位機通信建立;如不符,則繼續循環掃描接收。PLC每收到一個字符都判斷是否為數據結束符,直到接收到結束符,即證明上位機發送完畢。在接收完成后,根據上面所述,連接到接收結束中斷,在中斷程序中向上位機發送數據,作為對上位機命令的響應。
發送命令格式:XMTTBL,PORT
接收命令格式:RCV TBL,PORT
其中,TBL指數據緩沖區,PORT指端口號。
在實現自由口通信的軟件設計中,主要包括PC軟件與PLC梯形圖兩部分,下面分別給出主要的源程序代碼。
利用Delphi來實現PC機的通信,Delphi是新一代可視化開發工具,它具有功能強大、簡便易用和代碼執行速度快等特點,是全球公認的快速應用開發工具,在開發企業信息系統方面發揮著重要作用。但由于Delphi中沒有串口控件可用,所以首先需要把ActiveX控件MSComm加到元件選項板上,并設置MSComm控件的屬性,其主要屬性如下:
① Comm Port:設置并返回通信的端口號,設為1;
② Sening2以字符串的形式設置并返回波特率,設為19200,n,8,1;
② Port Open:設置井返回通信端口的狀態;
④ Input:從接收緩沖區讀取數據;
⑤ Output:從發送緩沖區發送數據;
⑥ Input Mode:設置從緩沖區讀取數據的格式;
⑦ Rthresho1d:接收緩沖區接收多少字符觸發On Comm事件,設為8。
在向PLC發送數據命令時,利用定義好的數據幀格式,組織好數據,用文本方式發送。在接收PLC數據時,觸發On Comm事件,在這個事件中,將接收到的數據按照數據幀的定義解釋,并進行相應的操作。
參考文獻:
[1] 李劍.西門子PLC與監控計算機通信問題的研究[D].天津大學,2007.
[2] 高強,王朝碩,王政.基于網絡的PLC通信系統的研究[J].電力系統通信,2003,(1).
[3] 金元郁,李磊.一種PC與PLC在自由口模式下的串行通訊方法[J].青島科技大學學報(自然科學版),2005,(4).
[4] 武新,羅尚民,辛伊波.PLC通信功能的設計與實現[J].自動化博覽,2006,(3).
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文