基于網(wǎng)頁的可編程控制器的在線仿真方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機領(lǐng)域,特別是一種基于網(wǎng)頁的可編程控制器的在線仿真方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著微處理器、計算機技術(shù)的飛速發(fā)展,自動控制逐漸滲透到幾乎所有的生產(chǎn)領(lǐng)域。在這樣的背景下,可編程邏輯控制器(PLC)(以下簡稱可編程控制器)得到了廣泛的應(yīng)用;這是一款專用于各種類型的機械或者生產(chǎn)過程控制的簡易計算機,可以由用戶自定義邏輯控制程序并存儲在內(nèi)部存儲器,根據(jù)這些程序執(zhí)行邏輯運算、順序控制、定時、計數(shù)以及算術(shù)運算等操作,通過數(shù)字或模擬格式的輸入以及輸出對變頻器、步進電機、水栗、水閥、電磁閥、氣缸、氣栗等電氣設(shè)備進行控制,實現(xiàn)工業(yè)、農(nóng)業(yè)等生產(chǎn)活動的自動化。
[0003]常規(guī)的可編程控制器具有豐富的輸入、輸出接口,其有五種標(biāo)準(zhǔn)編程語言:梯形圖語言(LD)、指令表語言(IL)、功能模塊語言(FBD)、順序功能流程圖語言(SFC)、結(jié)構(gòu)文本化語言(ST)。這些語言過于抽象不易理解,需要編寫者具備控制、電氣、模擬、數(shù)字電路等技能,而編寫后的程序需要具體的設(shè)備進行調(diào)試及測試,耗費大量的時間及人力,在調(diào)試及測試過程中難以搭設(shè)實際應(yīng)用的條件和環(huán)境,無法遍歷所有的應(yīng)用實例。
[0004]目前,市面上也有不少針對編程語言、電路或者設(shè)備的仿真系統(tǒng),但是這些系統(tǒng)都是針對特定的編程語言,需要由專業(yè)人員在電腦上安裝特定的仿真軟件,在該軟件上搭建與真實系統(tǒng)相近的仿真系統(tǒng),按照真實使用的邏輯編寫仿真程序,進行模擬仿真,從運行的結(jié)果了解程序、電路或者設(shè)備的行為,確保滿足應(yīng)用要求。
[0005]目前的仿真系統(tǒng)無法利用互聯(lián)網(wǎng)的互聯(lián)互通、與第三方及時溝通交流等特點,只能在單臺電腦上安裝專用仿真軟件進行仿真,無法將仿真的系統(tǒng)、程序或者電路與他人進行共享,無法直接通過網(wǎng)絡(luò)下載獲取與其應(yīng)用相同或得近似的系統(tǒng)、程序或者電路,在他人的成果基本上進行修改,同時,也難以與設(shè)備供應(yīng)商等第三方進行互動。
[0006]用戶購買可編程控制器之前,只能通過閱讀說明書等資料或者下載專用軟件安裝進行仿真,從而詳細了解控制器的功能及性能;但是通過圖文資料掌握的信息量有限,無法深入了解控制器,而下載、安裝軟件的過程極其煩瑣,具有很大的信息安全隱患,不符合電子商務(wù)的潮流。
[0007]此外,在常規(guī)的可編程控制器的基本上,發(fā)展出了一種簡易的可編程控制器;這種可編程控制器適用于簡易的自動化機械或者生產(chǎn)過程的控制,接口簡單,常用中文描述的自定義程序指令進行編程,一般具有顯示顯示器件和按鍵,用于脫機在本地通過按鍵操作進行編程;對于這種可編程控制器,由于用戶接口、編程方法各自迥異,更需要一個可以脫離實物的仿真工具對其功能、特性、編程方法全面了解。
【發(fā)明內(nèi)容】
[0008]為了解決這些問題,本發(fā)明提供了一種基于網(wǎng)頁的可編程控制器的在線仿真方法及系統(tǒng)。所述在線仿真系統(tǒng)運行在網(wǎng)頁瀏覽器,通過JavaScript腳本語言、html控件等模擬可編程邏輯器的外觀、控制邏輯、用戶界面等,由用戶編寫邏輯控制程序并將其存儲,提供接口由用戶提供改變程序運行參數(shù)以及輸入信息進行調(diào)試,并以聲音、圖文模擬輸出狀態(tài);同時建立一個與互聯(lián)網(wǎng)連接以及真實設(shè)備連接的通信通道,供用戶與第三方通過網(wǎng)絡(luò)進行實時交流溝通以及尋求第三方協(xié)助。從而,用戶不需要真實設(shè)備及安裝軟件,只需要在瀏覽器上從指定的url下載在線仿真系統(tǒng),就可進行編程邏輯控制器的仿真編程及調(diào)試。
[0009]本發(fā)明要解決的技術(shù)問題是通過以下技術(shù)方案實現(xiàn)的:
基于網(wǎng)頁的可編程控制器的在線仿真方法,其特征在于,包括以下步驟:
步驟1:在網(wǎng)頁上加載并顯示可編程控制器的圖片,將可編程控制器的圖片根據(jù)器件類型及器件所在位置劃分區(qū)域:
如果有顯示器件,則將顯示器件所在區(qū)域劃分為顯示區(qū),在所述顯示區(qū)疊加層I,通過JavaScript腳本語言在層I上用html的canvas標(biāo)簽根據(jù)顯示內(nèi)容繪制圖片;
如果有按鍵,則將按鍵所在區(qū)域劃分為按鍵區(qū),在所述按鍵區(qū)疊加層2,通過JavaScript腳本語言捕捉發(fā)生在層2的點擊事件,根據(jù)事件發(fā)生時點擊的位置,與可編程控制器圖片上各個按鍵所在的位置做距離計算,將該事件歸為所得距離最近的按鍵,產(chǎn)生按鍵事件;
將輸出端子所在區(qū)域劃分為輸出區(qū),在所述輸出區(qū)疊加層3,在層3各個輸出端子的對應(yīng)位置上指示該輸出端子的編號以及狀態(tài);
將輸入端子所在區(qū)域劃分為輸入?yún)^(qū);
步驟2:通過JavaScript腳本語言編寫與可編程控制器具有相同狀態(tài)機、邏輯以及功能的仿真程序,搭建可編程控制器的程序仿真模塊;
步驟3:通過JavaScript腳本語言以及html標(biāo)簽設(shè)計on/off 二元選擇控件、文本輸入控件用于用戶選擇數(shù)字狀態(tài)、輸入模擬數(shù)值;同時,對于沒有按鍵的可編程控制器,則設(shè)計按鍵,供用戶點擊產(chǎn)生各種按鍵事件;從而模擬可編程控制器的輸入信息及按鍵事件;
步驟4:通過html標(biāo)簽設(shè)計程序指令輸入接口,供用戶直接編輯程序指令或者導(dǎo)入程序指令文件,并根據(jù)用戶操作將其編輯或者導(dǎo)入的程序指令作為用戶程序存儲至仿真系統(tǒng);步驟5:實時檢測步驟I的按鍵事件以及步驟3的輸入信息及按鍵事件,按照與可編程控制器相同的邏輯進行運行、設(shè)置的狀態(tài)機管理,在運行狀態(tài),對程序的運行進行控制;在設(shè)置狀態(tài),則對各個程序組的程序指令進行添加、修改、刪除操作,對程序指令的操作碼以及操作參數(shù)進行選擇設(shè)定,同時將程序組作為所述用戶程序存儲至仿真系統(tǒng);
步驟6:用JavaScript腳本語言對步驟4者步驟5得到的所述用戶程序按照與可編程控制器相同的邏輯對程序指令逐條解析并順序執(zhí)行由操作碼指定的輸出、條件判斷、定時、計時、延時、邏輯計算、算術(shù)計算中的某一操作;同時將當(dāng)前運行的程序組編號、程序指令編號、程序指令執(zhí)行的速度、是否運行程序指令作為參數(shù)供用戶設(shè)置;
步驟7:在運行狀態(tài),根據(jù)當(dāng)前運行的程序指令以及運行相關(guān)參數(shù)生成顯示內(nèi)容;在設(shè)置狀態(tài),根據(jù)設(shè)置的程序指令的操作碼及操作參數(shù)生成顯示內(nèi)容;根據(jù)步驟I的判斷,如果有所述顯示區(qū):則通過JavaScript腳本語言采用html的canvas標(biāo)簽在所述顯示區(qū)上將生成的顯示內(nèi)容繪制成圖片展示;
步驟8:對于步驟6中執(zhí)行的每條程序指令,根據(jù)其執(zhí)行結(jié)果,將每個輸出的狀態(tài)在所述輸出區(qū)通過html標(biāo)簽指示;根據(jù)用戶選擇的可編程控制器的負載類型,在網(wǎng)頁上顯示對應(yīng)負載的實物圖片,并用JavaScript模擬負載的控制效果;
步驟9:通過JavaScript腳本語言以及html標(biāo)簽設(shè)計控制接口 ;通過該接口用戶可以設(shè)置步驟6中執(zhí)行程序指令所需要的參數(shù),啟動或者停止程序指令的運行,設(shè)置程序組和/或程序指令的編號,以及調(diào)整程序指令的執(zhí)行速度。
[0010]進一步地,在所述輸入?yún)^(qū)疊加層4,在層4各個輸入端子的對應(yīng)位置指示步驟3中模擬的輸入信息。
[0011]進一步地,將步驟4或者步驟5得到的用戶程序逐條以文本形式描述并顯示在網(wǎng)頁上,并把當(dāng)前執(zhí)行的程序指令高亮顯示。
[0012]進一步地,從遠程服務(wù)器獲取預(yù)先保存的供示例使用的用戶程序,并在網(wǎng)頁上展示出來,供用戶參考。
[0013]進一步地,建立與其它仿真網(wǎng)頁的實時通信連接,用于接收來自其它用戶的程序,并自動或者由用戶手動操作作為所述用戶程序加載至仿真系統(tǒng)運行;同時,根據(jù)用戶的操作,將步驟4或者步驟5得到的用戶程序發(fā)送給其它用戶所用的仿真系統(tǒng)。
[0014]進一步地,步驟4或者步驟5得到用戶程序可以由用戶保存至遠程服務(wù)器。
[0015]進一步地,步驟4或者步驟5得到的用戶程序可以通過與可編程控制器的通信連接下載至可編程控制器;所述用戶程序可以通過與可編程控制器的通信連接從可編程控制器讀取并存儲至仿真系統(tǒng)。
[0016]基于網(wǎng)頁的可編程控制器的在線仿真系統(tǒng),其特征在于,所述系統(tǒng)包括:可編程控制器外觀模擬模塊,可編程控制器程序仿真模塊,輸入仿真模塊,程序指令輸入模塊,輸出仿真模塊,系統(tǒng)運行控制模塊;
所述可編程控制器外觀模擬模塊,用于模擬可編程控制器的外觀,包括實物圖片背景區(qū)、輸出狀態(tài)指示區(qū)、輸入狀態(tài)指示區(qū):
所述實物背景區(qū)在網(wǎng)頁上加載并顯示可編程控制器的實物圖片,將可編程控制器的圖片根據(jù)器件類型及器件所在位置劃分區(qū)域;
所述輸出狀態(tài)指示區(qū)位于可編程控制器圖片的輸出端子所在區(qū)域,用于模擬可編程控制器的輸出接口;其疊加層3,在該層各個輸出端子的對應(yīng)位置上指示該輸出端子的編號以及狀態(tài);
所述輸入狀態(tài)指示區(qū)位于可編程控制器輸入端子所在區(qū)域;
所述可編程控制器程序仿真模塊用于模擬可編程控制器的程序,包括輸入檢測單元、狀態(tài)管理單元、程序設(shè)置單元,程序保存單元、程序運行單元、顯示控制單元;
所述輸入檢測單元檢測所述輸入仿真模塊的輸入信息及按鍵事件并傳遞給其它單元及模塊使用;
所述狀態(tài)管理單元用于管理程序狀態(tài),其接收來自于所述輸入檢測單元所傳遞的按鍵事件,據(jù)此在所述程序狀態(tài)之間切換;
所述程序設(shè)置單元運行在設(shè)置的程序狀態(tài),通過所述輸入檢測單元的按鍵事件,進行程序組的選擇,程序指令的添加、修改及刪除,程序指令及其參數(shù)的選擇及設(shè)定,并將程序組作為所述用戶程序存儲至所述程序保存單元