謝小四 劉 軍
(云南機電職業技術學院 電氣工程學院,昆明 650203)
S7-1200及S7-200Smart是目前常用的可編程邏輯控制器(Programmable Logic Controller,PLC),其功能強大、性能穩定,目前在各行各業應用都很廣泛,基本替代了繼電接觸控制系統,避免了繼電接觸控制系統煩瑣的接線及故障查找困難的問題。但是,隨著國家工業現代化、自動化、網絡化進程的推進及工業轉型升級戰略的實施,各控制設備之間的通信網絡的組建與實施成為了必須解決的技術難題[1-2]。
S7-200Smart是S7-200的升級產品,它繼承了S7-200的諸多優點,指令系統基本相同,主機單元都集成了以太網端口和RS485端口,其中以太網端口除了用來下載程序和監控之外,還可以用來與其他的設備或人機界面(Human Machine Interface,HMI)通信,具有開放式用戶通信功能,還可作為單向S7通信的客戶端或服務器。S7-200Smart所使用的組態編程軟件為step7-Micro/win smart。S7-1200是緊湊型、模塊化的PLC產品,其功能及性能介于S7-200與S7-300之間,功能強大、支持多種通信協議,所使用的組態編程軟件為TIA PROTAL軟件。雖然兩種設備都屬于西門子PLC產品,但是兩者之間是不同的組織架構和不同的組態編程軟件,要實現通信有一定的困難,且西門子官方沒有對S7-1200與S7-200Smart之間的通信進行說明,不建議兩者進行通信[3]。但實際應用中,有些設備需要它們進行連接和數據交換,下面以兩種典型的PLC為例分析研究兩者之間通信。
在S7-1200與S7-200Smart之間可以采用多種協議進行通信,目前廣泛使用的S7協議是西門子S7系列PLC基于多點接口(Multi Point Interface,MPI)、PROFIBUS、Ethernet的一種優化的通信協議,主 要 用 于S7-1500、S7-1200、S7-300、S7-400等PLC之間的通信,是面向連接的協議。為了進行S7-1200與S7-200Smart之間的通信服務必須建立邏輯鏈路[4]。S7連接需要組態的靜態連接,靜態連接需要占用中央處理器(Central Processing Unit,CPU)連接資源,基于連接的通信又分為單向連接和雙向連接,S7-1200僅支持S7單向連接。單向連接中的客戶端是向服務器請求服務的設備,客戶端可以調用PUT/GET指令讀寫服務器的存儲區,而服務器是通信中的被動方,用戶不用編寫服務器的S7通信程序[5]。S7通讀是由服務器的操作系統完成的,由于客戶端可以讀寫服務器的存儲區,單向連接實際上可以實現雙向傳輸數據。
S7-200Smart選用ST40型號作為本次通信連接的服務器,S7-1200選用S7-1200 CPU 1212C DC/DC/DC型號作為本次通信的客戶端,因為兩臺設備都只有一個通信網口,且編程計算機需要分別與兩臺設備進行通信,主要完成修改、下載和監控程序等任務,經常插拔網線可能會損壞設備,所以增加了一個5口的交換機,計算機與兩臺設備都連到交換機上,通過交換機進行通信,網絡架構模型如圖1所示。
硬件架構完成后,使用TIA PROTAL V15軟件創建新項目,并添加1個對應型號的S7-1200 PLC作為站點,然后分配好網絡及IP地址,S7-1200 PLC的IP地址為192.168.0.1。在TIA PROTAL軟件的網絡視圖中,右鍵單擊1200 PLC的以太網口,執行快捷菜單命令中的“添加子網”,生成一個名為“PN/IE_1”的以太網,之后單擊工具欄上的“連接”,并設置連接類型為“S7連接”,然后右鍵單擊CPU模塊,執行快捷菜單命令中的“添加新連接”,在彈出“創建新連接”對話框中,采用默認的連接類型“S7連接”,默認的連接伙伴選擇“未指定”,此時多選框“主動建立連接”會被自動選中,并由S7-1200建立連接,然后點擊“添加”按鈕,創建新連接。上述操作完成后,選中網絡視圖中的“S7_連接_1”,再選中巡視窗口“屬性—常規—常規”中設置連接伙伴(S7-200Smart)以太網端口的IP地址192.168.0.2,本地ID為16#100,選中“地址詳細信息”設置本地TSAP為10.01,伙伴的插槽設置為1,TSAP設置為03.01。S7-200Smart以太網端口可以設定,但必須與S7-1200 PLC的IP地址在同一網段,使用S7-200Smart編程軟件時將S7-200Smart的IP地址設為192.168.0.2,與TIAPROTAL 軟件中設置的連接伙伴的IP地址對應,計算機IP地址設為192.168.0.3。設定IP地址是為了保證計算機、S7-1200 PLC、S7-200Smart PLC能夠建立通信,這樣才能完成數據的傳輸和提取。
網絡組態完成后,需要先規劃兩個PLC的數據傳輸緩存區。數據傳輸緩存區的規劃非常重要,但并不是每個信號都需要傳輸,而是需要在設備間提取的數據才需傳輸。傳輸緩存區可以清楚地了解數據從何處提取,需要傳到的位置,從而避免造成混亂,同時兩個PLC之間可以傳輸位、字節、字、雙字等不同類型的數據,也可傳輸數據和字符等。本項目只闡述數據傳送讀取的原理,具體傳輸信號根據實際應用確定,但應避免緩存區的重復使用,特別是避免使用系統已經賦以特殊功能的存儲器。本項目數據緩存區規劃如表1所示。在S7-1200側編程調用PUT/GET指令進行傳輸和接收數據時,S7-200Smart只需在指定傳輸區域直接使用數據即可。在TIA PROTAL中新建數據塊DB2和DB4時,在數據塊“屬性”中取消“優化的塊訪問”才能使用絕對地址進行訪問,其中DB2是傳送給S7-200Smart的區域,DB4是讀取S7-200Smart數據的接收區域。S7-200Smart中的DB1.DBX0.0 BYTE 20用來接收S7-1200傳來的數據,對應S7-200Smart存儲區地址為VB0-VB19,P#DB1.DBX21.0 BYTE 20是發送給S7-1200的數據的存儲區,對應S7-200Smart存儲區地址為VB20-VB39。

表1 數據緩存區規劃表
編輯程序時,可以直接在OB1中調用PUT/GET指令。其中:PUT指令是指將本站(S7-1200)中的數據發送給S7-200Smart,該功能可以將S7-1200站點下數據塊DB2.DBX0.0開始的20個字節區域數據傳送到S7-200Smart PLC以V0.0開始的20個字節中(VB0-VB19);GET指令是指將S7-200Smart區域數據讀到S7-1200區域數據中,該功能可以將S7-200Smart站點下VB20.0開始的20個字節的數據讀到S7-1200數據塊DB4.DBX0.0開始的20個字節中。調用PUT/GET指令時,每一個參數都必須按要求填寫,否則會導致通信失敗。每一個參數的詳細描述在幫助中可以查到。PUT/GET的使用方式基本相同,其中:PUT使用情況如圖2所示;GET使用情況如圖3所示;PUT/GET功能塊所用的參數詳細描述如表2所示。

表2 PUT/GET功能塊所用的參數描述
網絡能夠正常通信后,可以在PLC中編寫一段程序進行通信測試,查看數據緩存的數據狀態能否實時傳輸到目標PLC,也可以使用通過TIA PROTAL軟件監控表和step 7 Micro/win smart 軟件的狀態表監控數據通信是否正常。若信號能正常傳送,即可在程序中使用傳輸過來的信號進行編程。
以上是以S7-200Smart PLC作為通信連接服務器、S7-1200作為客戶端來傳送和讀取數據在S7-1200中使用PUT和GET指令。在實際應用時,也可以S7-200Smart PLC作為客戶端,S7-1200作為服務器,此時需要使用S7-200Smart編程軟件step 7 Micro/win smart調用PUT和GET指令向導,并設置少量的參數,從而自動生成通信的子程序NET_EXE,然后保存組態數據的數據塊和符號表,再在主程序中調用NET_EXE就可實現S7-200Smart作為客戶端進行S7通信連接。
經過測試,S7-200Smart PLC不論是作為通信連接的服務器,還是作為客戶端,都能正常穩定地通信和數據傳輸。在實際工程項目中,兩種類型均可采用,但以S7-200Smart PLC作為通信連接的服務器編程時會簡單一些。通過對S7-200Smart和S7-1200之間的通信研究,為工程項目提供了一種通信連接的方法,便于構建控制系統和更加高效地傳輸 數據。