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