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