王君輝,尹 敏
(西北軸承股份有限公司,銀川 750021)
大型立式磨床ROPC 200主要承擔直徑1.5 m以上大型軸承套圈的研磨工作,經過多年使用,機床的電氣元件嚴重老化,故障率增高,研磨精度降低,已影響到正常的使用。因此,需對該機床的電氣系統進行全面的數控化改造。改造后的電氣系統采用840D數控單元配以S7-300 PLC進行控制。
PLC作為數控機床的重要組成部分,對機床動作的可靠執行起著至關重要的作用。PLC的用戶程序在編制過程中難免會出現一些缺陷和錯誤,尤其是對于那些比較復雜的控制任務,因此,用戶程序在設計好之后一般都需要進行調試、修改。通常情況下,調試工作直接在硬件PLC中進行,但有時程序設計好之后,硬件PLC尚未購買或控制設備不在本地,這就對程序的調試和修改帶來不便。而且在實際的硬件系統中進行程序調試具有較大的風險,PLC的某個錯誤輸出信號可能會導致機損事故甚至危及工作人員的人身安全。因此,如果能夠在沒有PLC硬件的條件下就可以對PLC用戶程序進行仿真調試,將起到事半功倍的效果。
對于S7-300/400 PLC來說,S7-PLCSIM軟件能夠實現在計算機上代替硬件來仿真和調試用戶程序。與傳統的經驗方法相比較,用S7-PLCSIM軟件在計算機上仿真具有以下優點:(1) 可進行不依賴于硬件的程序測試與調試;(2) 在程序開發階段消除大部分錯誤;(3) 降低開發成本,加速開發進程,提高程序質量。
1.1.1 仿真窗口


圖1 S7-PLCSIM仿真窗口
1.1.2 視圖對象
S7-PLCSIM用仿真PLC來模擬實際PLC的運行,所有用戶程序的調試都是通過視圖對象來進行的。S7-PLCSIM提供了多種視圖對象,可以實現對仿真PLC內的各種變量、計數器和定時器的監視與修改。
S7-PLCSIM的視圖對象包括CPU、輸入變量、輸出變量、位存儲器、定時器、計數器、通用變量和垂直位變量等多種視圖對象。其中,CPU視圖對象是在打開S7-PLCSIM窗口時自動形成,其他視圖對象要在仿真PLC窗口中通過“Insert”菜單生成。通過視圖對象可以對PLC的輸入、輸出映像區和內部存儲區的狀態進行模擬與監視。在插入的視圖對象中輸入存儲區地址,即可顯示存儲區地址及存儲區數據狀態,可選的數據顯示格式有位、二進制、十進制、十六進制、BCD碼、整數、實數等。
圖1中標有“CPU”的小窗口是CPU視圖對象。在CPU視圖對象中,可以用單選框選擇仿真PLC的運行(RUN)、停止(STOP)和RUN-P模式,分別由指示燈指示。在RUN模式和RUN-P模式下CPU均能運行用戶程序,兩者區別在于:在RUN-P模式下可以下載和修改程序,而在RUN模式下則不能;某些監控操作只能在RUN-P模式下進行。點擊CPU視圖對象上MRES(存儲器復位)按鈕可以復位仿真PLC的存儲器,刪除程序塊與系統數據,復位之后CPU將自動進入STOP模式;指示燈“SF”亮表示有硬件、軟件錯誤;“DP”指示燈則用于表示PLC與遠程I/O或者分布式外設的通信狀態;“DC”指示燈用來表示電源的通/斷情況。用菜單“PLC”中的命令可以接通或斷開仿真PLC的電源。
1.1.3 LAY文件和PLC文件
用S7-PLCSIM仿真時會自動生成LAY和PLC兩種格式的文件,退出仿真軟件時將會詢問是否保存LAY文件或PLC文件。LAY文件用于保存仿真時各視圖對象的信息,例如各視圖對象選擇的數據格式等;PLC文件用于保存上次仿真運行時設置的數據和動作等,包括程序、硬件組態、CPU工作方式的選擇、運行周期模式(單周期或連續運行模式)的選擇、I/O狀態、定時器的值、符號地址、電源的通/斷等。
(1)可對S7-300和S7-400 PLC的用戶程序進行離線仿真與調試,可訪問模擬PLC的I/O存儲器、累加器和寄存器。通過在仿真運行窗口中改變輸入變量的ON/OFF狀態來控制程序的運行,并觀察有關輸出變量的狀態來監視程序運行的結果。
(2)可實現定時器和計數器的監視和修改,通過程序使定時器自動運行或手動復位。
(3)可模擬對位存儲器、外圍輸入變量區和外圍輸出變量區的操作,以及對存儲在數據塊中的數據(如DBl.DBX0.0或DBl.DBW0等)的讀寫。
(4)可在仿真PLC中使用中斷組織塊測試程序的特性,并記錄一系列操作事件及回放記錄,從而自動測試程序。
S7-PLCSIM可以模擬一個S7控制器,并且在仿真時可以使用表1中的資源。另外還具有對大部分組織塊、系統功能塊和系統功能的仿真功能。

表1 S7-PLCSIM在仿真時可以使用的存儲區域

(2) 在菜單“PLC”中選擇“MPI Address”,設置準備模擬的PLC的地址。
(3) 在SIMATIC Manager中將準備模擬的用戶程序下載到仿真的PLC中(操作與在實際PLC上的操作一樣)。
(4) 在S7-PLCSIM窗口的“Execute”菜單中選擇“Scan Mode”(掃描模式),選擇“Continuous Scan”(連續掃描方式),并將CPU工作方式選為“RUN-P”。
(5) 在“Insert”菜單中選擇插入相應的輸入變量、輸出變量或定時器、計數器等,即圖中CPU窗口以外的窗口。通過改變這些變量的值,便可觀察PLC程序在這些量變化后的運行情況。
此時,仍可用STEP 7中的變量監控或程序塊在線監視等功能來測試PLC程序,也可查看當前CPU的狀態(掃描時間、存儲空間等),操作方法與實際PLC的操作相同。
1.4.1 掃描方式
S7-PLCSIM可以用兩種方式執行仿真程序:
(1)單次掃描。每次掃描包括讀外設輸入、執行程序和將結果寫到外設輸出。CPU執行一次掃描后處于等待狀態,可以用菜單命令“Execute”→“Next Scan”執行下一次掃描。通過單次掃描可以觀察每次掃描后各變量的變化。
(2)連續掃描。這種運行方式與實際的CPU執行用戶程序相同,CPU執行一次掃描后又開始下一次掃描。
1.4.2 符號地址
為了在仿真軟件中使用符號地址,執行菜單命令“Tools” →“Options”→“Attach Symbols…”,在出現的“Open”對話框中打開當前的項目,找到并雙擊符號表“Symbols”圖標。執行菜單命令“Tools”→“ Options”→“Show Symbols”,可以顯示或隱藏符號地址。垂直位視圖對象可以顯示每一位的符號地址,其他視圖對象在地址區顯示符號。
以ROPC 200磨床的主軸電動機調速控制為例,來說明使用S7-PLCSIM軟件進行仿真的方法。主軸電動機控制要求為:按下啟動按鈕,主軸電動機啟動,電動機自動升速到700 r/min,并保持不變;按下停止按鈕,主軸電動機停止運行。使用S7-PLCSIM軟件調試程序的步驟如下:
(1)首先用STEP 7軟件對系統進行硬件組態,然后打開已經編好的用戶程序。啟動按鈕為I4.0,主軸電動機啟動輸出信號為Q12.0,停止按鈕為I4.1,程序如圖2所示。

圖2 仿真的用戶程序段
(2)在SIMATIC Manager的菜單“Option”中選擇“Simulating Modules”為ON狀態,表示選擇仿真調試。
(3)在S7-PLCSIM軟件中新建PLC文檔;選擇菜單命令“PLC” →“Power ON”打開仿真PLC的電源;選擇仿真PLC的工作方式為STOP狀態;選擇菜單命令“Execute” →“Scan Mode” →“Scan Continuous”(連續掃描方式)。
(4)選擇菜單命令“PLC” →“Download”,把程序下載到仿真的CPU中。
(5)在S7-PLCSIM軟件中模擬實際操作。選擇仿真PLC的工作方式為RUN狀態,按下啟動按鈕I4.0,主軸電動機開始運行,自動升速,速度值送到MW20;選擇菜單命令“Debug” →“Monitor”,可以監視STEP 7軟件中梯形圖程序的運行情況,圖3為模擬實際升速過程。

圖3 實際升速過程
(6)在S7-PLCSIM軟件中模擬實際操作時,如果檢測到程序出錯,會調用相應錯誤組織塊。S7-PLCSIM軟件支持對硬件中斷組織塊OB40~OB47的仿真;支持對時鐘中斷組織塊OB10~OB17的仿真;支持對掃描周期大于最大允許循環時間的中斷組織塊OB80的仿真。
(7)保存生成的PLC文檔,以便下次仿真時直接調用設置。
(1)PLCSIM不支持對功能模塊、通信和PID程序的仿真。
(2)不支持寫到診斷緩沖區的錯誤報文,例如不能對電池失電和EEPROM故障的仿真,但是可以對大多數I/O錯誤和程序錯誤進行仿真。
(3)工作模式的改變(例如由RUN轉換STOP模式)不會使I/O進入“安全”狀態。
(4)在某些情況下S7-400與只有兩個累加器的S7-300的程序運行可能不同。
(5)大多數S7-300 CPU的I/O是自動組態的,模塊插入物理控制器后被CPU自動識別,而仿真PLC沒有這種自動識別的功能。因此,在用S7-PLCSIM仿真S7-300程序時,如果想定義CPU支持的模塊,首先必須下載硬件組態。
(1)仿真的CPU中正在運行時可以用“Stop”選項中斷程序,恢復“運行”時是從程序中斷處開始繼續處理程序,對程序狀態不會有什么影響。
(2)與真實的CPU一樣,仿真軟件可以改變CPU的操作模式(RUN,RUN-P和STOP),但與實際CPU不同的是仿真的CPU切換到STOP模式并不會改變輸出的狀態。
(3)仿真軟件中在目標視圖中變量的每個改變,其存儲區對應相關地址的內容會被同時更新,而實際的CPU要等到掃描結束時才會修改存儲區的數據。
(4)可以選擇單次掃描或者連續掃描。
(5)可以使定時器自動運行或手動運行,可以手動復位全部定時器或復位指定的定時器。
仿真軟件S7-PLCSIM不需要硬件連接,使用方便、安全,雖然與具體的硬件PLC還有一定的區別,但不會影響對PLC用戶程序的測試。通過S7-PLCSIM對用戶程序進行調試和故障診斷,可以在程序開發階段發現和排除錯誤,提高用戶程序的質量;同時,S7-PLCSIM也是學習S7-300/400編程的有力工具。