西門子S7-PLCSIM仿真軟件的應用(工具軟件學習)
摘 要:介紹了用于模擬西門子S7-300和S7-400 PLC運行的仿真軟件S7-PLCSIM。該軟件可以模擬實際PLC的絕大多數(shù)功能,具有功能強、使用方便等優(yōu)點。
關(guān)鍵詞:PLC;調(diào)試;仿真
一、引言
PLC的用戶程序設計好后,要用實際的PLC硬件來調(diào)試。但以下情況則需要對程序進行仿真調(diào)試:①程序設計好后,PLC硬件尚未購回;②控制設備不在本地,設計者需對程序進行修改和調(diào)試;③在實際系統(tǒng)中進行某些調(diào)試有
一定風險。
為了解決這些問題,一些PLC生產(chǎn)廠家提供了可代替PLC硬件調(diào)試的仿真軟件,本文主要介紹西門子公司的S7一PLCSIM仿真軟件。
二、S7-PLCSIM概述
1、S7-PLCSIM的主要功能
(1)可對S7-300和S7-400 PLC的用戶程序進行離線仿真與調(diào)試,可訪問模擬PLC的I/O存儲器、累加器和寄存器。通過在仿真運行窗口中改變輸入變量的ON/OFF狀態(tài)來控制程序的運行,并觀察有關(guān)輸出變量的狀態(tài)來監(jiān)視程序運行的結(jié)果。
(2)可實現(xiàn)定時器和計數(shù)器的監(jiān)視和修改,通過程序使定時器自動運行或手動復位。
(3)仿真軟件還可模擬對位存儲器、外圍輸入變量區(qū)和外圍輸出變量區(qū)的操作,以及對存儲在數(shù)據(jù)塊中的數(shù)據(jù)(如DBl.DBX0.0或DBl.DBW0等)的讀寫。
(4)可在仿真PLC中使用中斷組織塊測試程序的特性,并記錄一系列操作事件及回放記錄,從而自動測試程序。
2、S7-PLCSIM的主要組成部分
(1)仿真PLC
S7-PLCSIM用仿真PLC來模擬實際PLC的運行,用戶可通過視圖對象來調(diào)試程序。它提供的多種視圖對象可實現(xiàn)對仿真PLC內(nèi)的各種變量、計數(shù)器和定時器的監(jiān)視與修改。
(2)視圖對象
①CPU視圖對象
開始新仿真時,將自動出現(xiàn)CPU視圖對象,用戶可用單選框來選擇運行、停止和暫停工作方式;MRES按鈕用來復位存儲器、刪除塊和刪除仿真PLC中的硬件設置。LED指示燈“SF'’表示軟硬件錯誤;“RUN”與“STOP”表示運行與停止狀態(tài);“DP”(分布式外設或遠程I/O)指示PLC與分布式外設或遠程I/O的通信狀態(tài);“DC”(直流電源)指示電源的通斷情況。
②插入視圖對象
輸入變量(I)、輸出變量(Q)和位存儲器(M)視圖對象分別用于訪問和監(jiān)視相應的數(shù)據(jù)區(qū),可以以位、二進制、十進制、十六進制、字符及字符串的形式訪問。Q用于顯示程序執(zhí)行時輸出的結(jié)果,一般不對其進行設置操作。
定時器和計數(shù)器視圖對象用于修改定時器(T)和計數(shù)器(C)的實際值,并監(jiān)視其運行。數(shù)據(jù)塊寄存器視圖對象用于監(jiān)視塊寄存器DB1和DB2的內(nèi)容。此外還有通用變量、垂直位變量、累加器和狀態(tài)字及堆棧視圖對象,具體使用方法可查閱用戶手冊。
③LAY文檔和PLC文檔
LAY文檔用于保存仿真時各視圖對象的信息;PLC文檔用于保存上次仿真運行時設置的數(shù)據(jù)和動作等,包括程序、硬件組態(tài)、CPU工作方式的選擇、周期運行模式(單周期或連續(xù)運行模式)的選擇、I/O狀態(tài)、定時器的值、符號地址、電源的通/斷情況等。
二、S7-PLCSIM應用實例
1、S7-PLCSIM模擬發(fā)動機控制程序的調(diào)試
以發(fā)動機控制程序的調(diào)試為例,介紹S7-PLCSIM的仿真功能,如圖1。
圖1 發(fā)動機控制程序梯形圖
控制程序?qū)崿F(xiàn)下述功能:按下開機按鈕I1.0,發(fā)動機Q5.0和冷卻風扇Q5.1開始運行;同時存放在MW2中的發(fā)動機的轉(zhuǎn)速與程序中預置的轉(zhuǎn)速(本例中為1500r/min)進行比較,超速時發(fā)出報警信號Q5.2;按下停機按鈕I1.1,發(fā)動機停止運行,冷卻風扇被定時器Tl延遲10s后停止運行。
使用S7-PLCSIM仿真軟件調(diào)試程序的步驟如下:
(1)在STEP 7編程軟件中生成的項目的主程序OBl中編寫如圖l的程序。
(2)點擊STEP 7中SIMATIC管理器工具欄中的Simulation on/off圖標,打開S7-PLC S7一PLCSIM窗口。
(3)在S7一PLCSIM窗口中新建PLC文檔;用菜單命令PLC>Power ON接通仿真PLC的電源;將仿真PLC的CPU的工作方式置于STOP位置;用菜單命令Execute>Scan Mode>Continous Scan選擇仿真PLC的掃描方式為連續(xù)掃描方式。
(4)在SIMATIC管理器中用菜單命令PLC>Download將程序下載到仿真PLC中。
(5)在S7-PLCSIM中創(chuàng)建輸入字節(jié)IB1、輸出字節(jié)QB5、位存儲器MW2和定時器T1的視圖對象,IB1和QB5以位的形式顯示,MW2以十進制形式顯示。
(6)在S7-PLCSIM中模擬實際系統(tǒng)的操作:
①開機控制。將仿真PLC的CPU置于RUN狀態(tài),給輸入字節(jié)IB1的第0位(I1.0)施加脈沖,模擬按下啟動按鈕,即用鼠標點擊IB1視圖對象中第O位的單選框,出現(xiàn)符號“V”,IB1.0變?yōu)镺N,再點擊一次“V”消失,IB1.0變?yōu)镺FF。IB0.0變?yōu)镺N后,觀察到輸出字節(jié)QB5視圖對象中的第0位和第1位(即Q5.0和Q5.1)ON,表明發(fā)動機開始運轉(zhuǎn),冷卻風扇開始轉(zhuǎn)動。
②速度監(jiān)視。在發(fā)動機正常運行時,為了模擬采集到的實際轉(zhuǎn)速,在位存儲器MW2視圖對象中分別輸入十進制數(shù)1449、1500和2000(發(fā)動機的實際轉(zhuǎn)速分別低于、等于和高于預置轉(zhuǎn)速),觀察到Q5.2的狀態(tài)分別為OFF、ON和
ON,說明超速報警功能正常。
③停機控制。給I 1.1施加脈沖,觀察到Q5.0立即變?yōu)镺FF,表明發(fā)動機停止運行,同時Tl開始進行減計時,1 0 s后Q5.1也變?yōu)?0FF,冷卻風扇停止轉(zhuǎn)動。
(7)在使用S7-PLCSIM進行仿真時,可以顯示OBl中的梯形圖程序,用菜單命令
Debug>Monitor在梯形圖中監(jiān)視程序的運行情況。
(8)保存生成的LAY文檔及 PLC文檔,以便于下次仿真時直接使用本次的各種設置。
二、對錯誤組織塊的仿真
實際的CPU檢測到程序處理過程中的錯誤時,CPU會調(diào)用對應的錯誤組織塊。S7-PLCSIM支持對硬件中斷組織塊OB40~OB47和一些錯誤組織塊的仿真。OB80為時間錯誤組織塊,若CPU的循環(huán)時間(掃描周期)大于允許的最大循
環(huán)時間,CPU自動調(diào)用OB80。
圖2 OB1梯形圖
為模擬CPU的這種功能,在主程序OB1中編寫如圖2所示的程序。在這段程序中,當I1.4為ON時,JMP(跳步)指
令的跳步條件滿足,將跳回標號“HERE”處,程序進入死循環(huán),CPU的掃描時間會超過最大循環(huán)時間;Q5.5為ON時,將切斷這一“死循環(huán)”。在時間錯誤組織塊 OB80中編寫如圖3所示的程序段,出現(xiàn)超時錯誤調(diào)用OB 80時,Q5.5變?yōu)镺N狀態(tài),通過Q5.6和Q5.7可觀察是否調(diào)用OB80。
圖3 OB80梯形圖
仿真過程如下:①在STEP 7管理器中將OB1和OB80下載到仿真 PLC中;②在S7-PLCSIM的仿真窗口中,將I1.4設置為OFF狀態(tài),仿真CPU的工作方式切換到RUN,可觀察到仿真CPU處于正常工作狀態(tài),沒有進入“死循環(huán)”,其掃描
周期沒有超過最大循環(huán)時間,仿真CPU沒有調(diào)用OB80,所以Q5.7不會ON。③將I1.4置為ON,運行仿真CPU,主程序進入“死循環(huán)”,當掃描周期大于最大循環(huán)時間時,觀察到Q5.6變?yōu)镺N,說明仿真CPU執(zhí)行了OB80中的程序段,但在主程序中沒有切斷“死循環(huán)”,以后仿真CPU自動進入STOP工作方式。④將I1.4、I1.5均置為ON狀態(tài),運行仿真CPU,主程序進入“死循環(huán)”,當掃描周期大于最大循環(huán)時間時,仿真CPU調(diào)用OB80,Q5.5、Q5.6均變?yōu)镺N,Q5.5在主程序中切斷“死循環(huán)”,程序正常運行,仿真CPU不會進入STOP方式。
三、結(jié)束語
作者曾用S7-PLCSIM模擬調(diào)試某水輪發(fā)電機組的控制程序(包括PLC與計算機的通信程序),模擬調(diào)試的結(jié)果與PLC硬件的運行結(jié)果完全一致。由此可看出,S7-PLCSIM具有很強的仿真功能。
Plcsim常見問題
1、問題:當S7-PLCSIM已經(jīng)運行,并且計算機已經(jīng)與真實PLC有正確的編程連接方式,此時點擊在線監(jiān)控或者下載程序,STEP7所訪問的節(jié)點是S7-PLCSIM還是真實PLC呢?
解答:S7-PLCSIM的優(yōu)先級要高于真實PLC在線連接的優(yōu)先級。也就是說,在S7-PLCSIM軟件運行的情況下,所有的下載/上傳/監(jiān)控操作,都是針對S7-PLCSIM進行的,與真實PLC無關(guān)。有時計算機與真實PLC無法建立連接可能就是因為S7-PLCSIM正在運行,此時關(guān)閉S7-PLCSIM即可。
2、問題:S7-PLCSIM與WinLC有何區(qū)別?
解答:WinLC的特性相當于真實PLC的特性,所以此問題請參考本文中S7-PLCSIM與真實PLC區(qū)別的章節(jié)。
3、問題:為什么在S7-PLCSIM菜單中無法觸發(fā)OB40?
解答:S7-PLCSIM仿真真實的PLC,由于OB40與硬件組態(tài)關(guān)系密切,所以只有在下載了硬件組態(tài)后(或者Block文件夾下的SDB文件),在S7-PLCSIM菜單中才可以觸發(fā)OB40。
4、問題:S7-PLCSIM是否可以仿真通信程序,例如:PTP通信,以太網(wǎng)通信?
解答:S7-PLCSIM無法仿真通信程序,此問題請參考本文中S7-PLCSIM與真實PLC區(qū)別的章節(jié)。
5、問題:S7-PLCSIM是否可以仿真定時器或定時中斷功能?
解答:S7-PLCSIM的本質(zhì)是一個在Windows環(huán)境下運行的應用程序,所以其執(zhí)行狀態(tài)與計算機的性能及系統(tǒng)資源使用狀態(tài)都有著密切的聯(lián)系。其仿真程序的掃描周期也實時受計算機負荷的影響,程序掃描周期可能會延長到幾十個毫秒或者幾百個毫秒。因此,當S7項目中的定時器時基定義非常小(例如10 毫秒)時,或者定時中斷周期非常小(例如幾個毫秒)時,S7-PLCSIM(受Windows運行機制及計算機性能影響)是無法在這么短的時間內(nèi)完成應有相應的。對于真實的PLC, 由于其實時功能是由硬件來保證的,所以不存在上述問題(如果程序量比較大,程序掃描周期大于定時器的預設時間,這種情況下應當使用定時中斷功能代替定時器的使用)。所以對于時序邏輯要求不嚴格的程序邏輯,可以使用S7-PLCSIM仿真的;對于時序邏輯要求嚴格的程序邏輯,使用S7-PLCSIM仿真是不可靠的。
6、問題:為什么項目下載后,S7-PLCSIM 的SF點亮,但程序仿真執(zhí)行不受影響?
解答:這種情況多出現(xiàn)于向低版本的S7-PLCSIM 軟件下載了其無法識別的新硬件組態(tài)。用戶升級S7-PLCSIM的軟件版本即可。