;
所述程序保存單元用于存儲所述用戶程序以及系統(tǒng)運(yùn)行參數(shù); 所述程序運(yùn)行單元采用JavaScript腳本語言對所述用戶程序按照與可編程控制器相同的邏輯對程序指令逐條解析并順序執(zhí)行由操作碼指定的輸出、條件判斷、定時、計(jì)時、延時、邏輯計(jì)算、算術(shù)計(jì)算中的某一操作,同時根據(jù)用戶的設(shè)定調(diào)整程序運(yùn)行的步驟和/或速度;
所述顯示控制單元根據(jù)所述狀態(tài)管理單元的程序狀態(tài)、所述程序設(shè)置單元的設(shè)置內(nèi)容、所述程序運(yùn)行單元的程序指令模擬可編程控制器的顯示效果,生成顯示內(nèi)容;
所述輸入仿真模塊通過html標(biāo)簽設(shè)計(jì)輸入接口供用戶輸入數(shù)據(jù)以及進(jìn)行點(diǎn)擊操作,用于模擬可編程控制器的輸入信息以及按鍵信息;
所述程序指令輸入模塊通過html標(biāo)簽提示接口供用戶直接編輯程序指令以及選擇程序指令文件;
所述輸出仿真模塊用于模擬可編程控制器控制器負(fù)載,用于向用戶提供負(fù)載類型選擇接口,根據(jù)用戶選擇的負(fù)載,顯示對應(yīng)負(fù)載的實(shí)物圖片,并通過JavaScript腳本語言模塊負(fù)載的控制效果;
所述系統(tǒng)運(yùn)行控制模塊用于設(shè)置程序指令執(zhí)行所需要的參數(shù)以及控制模擬程序的運(yùn)行。
[0017]進(jìn)一步地,所述可編程控制器外觀模擬模塊包括顯示區(qū),所述顯示區(qū)位于可編程控制器圖片的顯示器件所在區(qū)域,用于模擬可編程控制器的顯示器;其疊加層I,通過JavaScript腳本語言采用html的can vas標(biāo)簽在層I上將所述顯示控制單元生成的顯示內(nèi)容繪制成圖片展示。
[0018]進(jìn)一步地,所述可編程控制器外觀模擬模塊包括按鍵區(qū),所述按鍵區(qū)位于可編程控制器圖片的按鍵所在區(qū)域,用于模擬可編程控制器的按鍵輸入;其疊加層2,通過JavaScript腳本語言捕捉發(fā)生于該層上的點(diǎn)擊事件,并將其轉(zhuǎn)換為按鍵事件,所述輸入檢測單元檢測所述按鍵區(qū)的點(diǎn)擊事件,將其轉(zhuǎn)換為按鍵的按鍵事件,并傳遞給該模塊的其它單元使用。
[0019]進(jìn)一步地,所述在線仿真系統(tǒng)包括程序指示模塊,所述程序指示模塊用于將用戶程序逐條以文本形式描述并顯示在網(wǎng)頁上,并把當(dāng)前執(zhí)行的程序指令高亮顯示。
[0020]進(jìn)一步地,所述在線仿真系統(tǒng)包括程序示例模塊,所述程序示例模塊獲取預(yù)先保存在遠(yuǎn)程服務(wù)器的示例程序,用戶通過點(diǎn)擊選擇示例程序,系統(tǒng)根據(jù)用戶的選擇將程序加載入所述程序保存單元,同時設(shè)定程序運(yùn)行的參數(shù),輸入狀態(tài),之后開始執(zhí)行該程序。
[0021]進(jìn)一步地,所述在線仿真系統(tǒng)包括程序共享模塊,所述程序共享模塊用于將所述用戶程序保存至遠(yuǎn)程服務(wù)器,或?qū)⑺鲇脩舫绦虬l(fā)送給其它用戶使用的仿真系統(tǒng),或從其它用戶使用的仿真系統(tǒng)獲取所述的用戶程序。
[0022]進(jìn)一步地,,所述在線仿真系統(tǒng)包括程序下載模塊,所述程序下載模塊用于用戶將所述用戶程序下載至可編程控制器,或者從可編程控制器讀取到所述程序保存單元并進(jìn)行仿真調(diào)試,其通過瀏覽器插件或者遠(yuǎn)程服務(wù)器中轉(zhuǎn)建立與可編程控制器的通信連接。
[0023]由此,本發(fā)明通過JavaScript腳本語言以及html標(biāo)簽真實(shí)模擬了可編程控制器的外觀、控制程序以及輸入、輸出信息,為用戶提供了一種購買前脫離真實(shí)設(shè)備、可深入了解功能、編程方法的在線仿真方法和系統(tǒng),具有以下特點(diǎn):
1.仿真系統(tǒng)基于Browser/Server的架構(gòu)設(shè)計(jì),不需要安裝,只需要通過指定的url從遠(yuǎn)程服務(wù)器下載網(wǎng)頁;
2.通過瀏覽器完善的安全機(jī)制可保證仿真系統(tǒng)的安全性,從而消除用戶的安全顧慮;
3.可以跨平臺使用,適用于使用1S、Android等操作系統(tǒng)的手機(jī)或者平板電腦等移動終端,適用于使用Windows、Linux等操作系統(tǒng)的個人電腦;
4.可以充分利用互聯(lián)網(wǎng)的實(shí)時、互聯(lián)互通的特點(diǎn),可以將用戶自定義的控制程序與他人共享,或者通過網(wǎng)絡(luò)快速尋求他人協(xié)助,并可方便實(shí)現(xiàn)多方交流互動,利于同業(yè)人員的交流溝通,具有“共享”特征;
5.通過仿真系統(tǒng)與可編程控制器通信連接,將可編程控制器接入互聯(lián)網(wǎng),可以在任何有網(wǎng)絡(luò)的地方對其進(jìn)行程序下載、程序調(diào)試以及參數(shù)設(shè)定,從而順應(yīng)“互聯(lián)網(wǎng)+”的技術(shù)發(fā)展趨勢,具有“物聯(lián)”特征。
【附圖說明】
[0024]為了更好地描述本發(fā)明的實(shí)施例,繪制了以下附圖。應(yīng)當(dāng)理解的是,附圖僅是以示例的方式示出了本發(fā)明的優(yōu)選實(shí)施例,而不應(yīng)將附圖解釋為對本發(fā)明的限制。
[0025]圖1為本發(fā)明提供的一實(shí)施例的在線仿真系統(tǒng)框圖。
[0026]圖2為本發(fā)明提供的一實(shí)施例的可編程控制器外觀模擬模塊的框圖。
[0027]圖3為本發(fā)明提供的一實(shí)施例的可編程控制器程序仿真模塊的框圖。
[0028]圖4為本發(fā)明提供的一實(shí)施例的可編程控制器程序仿真模塊的狀態(tài)圖。
[0029]圖5為本發(fā)明提供的一實(shí)施例的輸入仿真模塊示意圖。
[0030]圖6為本發(fā)明提供的一實(shí)施例的輸出仿真模塊示意圖。
[0031]圖7為本發(fā)明提供的一實(shí)施例的系統(tǒng)運(yùn)行控制模塊示意圖。
[0032]圖8為本發(fā)明提供的一實(shí)施例的程序指示模塊示意圖。
[0033]圖9為本發(fā)明提供的一實(shí)施例的程序示例模塊示意圖。
[0034]圖10為本發(fā)明提供的一實(shí)施例的程序共享模塊示意圖。
【具體實(shí)施方式】
[0035]下面結(jié)合附圖及【具體實(shí)施方式】對本發(fā)明做進(jìn)一步詳細(xì)的說明。
[0036]本發(fā)明公開了一種基于網(wǎng)頁的可編程控制器的在線仿真方法及系統(tǒng),通過該方法及系統(tǒng),用戶可以在瀏覽器上脫離實(shí)物進(jìn)行可編程控制器的編程,通過系統(tǒng)模擬的顯示界面、輸入、輸出了解自定義程序的邏輯功能,可以通過網(wǎng)絡(luò)與第三方實(shí)時交流互動以及尋求第三方協(xié)助,并可將自定義的程序通過網(wǎng)絡(luò)分享給他人。
[0037]如圖1在線仿真系統(tǒng)框圖所示,用戶通過在瀏覽器上從遠(yuǎn)程服務(wù)器108的url指定的位置下載所述基于網(wǎng)頁的可編程控制器的在線仿真系統(tǒng)101,所述在線仿真系統(tǒng)101包括可編程控制器外觀模擬模塊102,可編程控制器程序仿真模塊109,輸入仿真模塊103,程序指令輸入模塊114,輸出仿真模塊115,程序指示模塊110,系統(tǒng)運(yùn)行控制模塊104,程序示例模塊112,程序共享模塊105,程序下載模塊113。
[0038]所述可編程控制器外觀模擬模塊102為網(wǎng)頁上采用div標(biāo)簽所插入的方塊201,所述div標(biāo)簽的“background-1mage”的CSS樣式屬性設(shè)置成預(yù)先保存為遠(yuǎn)程服務(wù)器108的可編程控制器的實(shí)物圖片的url,并將其“width”以及“height”的CSS樣式屬性設(shè)置成與所述實(shí)物圖片的尺寸一致,從而可編程控制器的實(shí)物圖片完整覆蓋所述方塊201;將所述方塊201根據(jù)所述實(shí)物圖片上可編程控制器的器件類型及器件所在位置劃分區(qū)域。
[0039]如果有顯示器件,則將顯示器件所在區(qū)域劃分為顯示區(qū)202,在所述顯示區(qū)202上通過div標(biāo)簽疊加層I,在層I以canvas標(biāo)簽根據(jù)所述可編程控制器程序仿真模塊109生成的顯示內(nèi)容繪制圖案,從而模擬可編程控制器的顯示效果。
[0040]如果有按鍵,將按鍵所在區(qū)域劃分為按鍵區(qū)203,在所述按鍵區(qū)203上通過div標(biāo)簽疊加層2,將層2均勻分隔成3*3共9個區(qū)塊,每個區(qū)塊分別與可編程控制器3*3的矩陣按鍵中的按鍵相對應(yīng),通過JavaScript腳本語言捕捉發(fā)生于層2的用戶點(diǎn)擊事件,將點(diǎn)擊位置分別與9個區(qū)塊的中心位置做歐氏距離運(yùn)算,獲取具有最短距離的區(qū)塊,將用戶點(diǎn)擊事件歸于該區(qū)塊所對應(yīng)的按鍵事件,并將該事件傳遞給所述可編程控制程序仿真模塊109,從而模擬可編程控制器的按鍵效果,其通過用戶在按鍵區(qū)的點(diǎn)擊,可產(chǎn)生模擬的“》”、“〉”、“〈〈”、“〈”、“插入”、“刪除,,、“+”、”,“設(shè)置”按鍵事件O
[0041]將輸出端子及其鄰近區(qū)域劃分為輸出區(qū)204,在所述輸出區(qū)204通過div標(biāo)簽疊加層3,在層3上每個輸出端子所對應(yīng)的位置疊加層207及層206,分別用于標(biāo)識輸出編號以及輸出狀態(tài);如果從可編程控制器程序仿真模塊109獲取的輸出狀態(tài)為閉合,則將層206的顏色設(shè)置為紅色,否則,則將層206的顯示顏色設(shè)置為黑色,從而模擬可編程控制器的輸出效果;對于輸出為PWM輸出,則在層206上顯示PffM的占空比等信息。
[0042]如圖3可編程控制器程序仿真模塊的框圖所示,其通過JavaScript腳本語言按照與可編程控制器相同的狀態(tài)機(jī)以及邏輯逐條解析、順序執(zhí)行其保存的可編程控制器的用戶程序,所述用戶程序包括若干個程序組,每個程序組包括若干條程序指令,每個程序指令由操作碼及操作參數(shù)組成,操作碼通過不同的標(biāo)識區(qū)分輸出、條件判斷、定時、計(jì)時、延時、邏輯計(jì)算、算術(shù)計(jì)算等操作,操作參數(shù)是操作碼所需數(shù)據(jù)的來源;其包括輸入檢測單元302、狀態(tài)管理單元303、程序設(shè)置單元304,程序保存單元305、程序運(yùn)行單元306、顯示控制單元307;
所述輸入檢測單元302用于檢測所述可編程控制器外觀模擬模塊102的按鍵區(qū)203的點(diǎn)擊事件,將其轉(zhuǎn)換為不同按鍵事件,并傳遞給該模塊的其它單元使用;同時,其檢測所述輸入仿真模塊103的輸入信息以及按鍵事件并傳遞給其它模塊使用;
所述狀態(tài)管理單元303用于管理啟動、運(yùn)行、設(shè)置三種程序狀態(tài),其接收來自于輸入檢測單元302所傳遞的按鍵事件,據(jù)此在所述三種程序狀態(tài)之間切換;
所述程序設(shè)置單元304運(yùn)行在所述設(shè)置的程序狀態(tài),通過檢測所輸入檢測單元302的按鍵事件,