Plc模擬系統(tǒng)、plc模擬器、記錄介質(zhì)以及模擬方法
【專利摘要】在PLC模擬系統(tǒng)(10)中,PLC模擬器(2)和外部模擬器(4)中的至少一方一邊確認(rèn)另一方中的程序的執(zhí)行狀態(tài)一邊執(zhí)行處理。例如,PLC模擬器(2)提供有套接字接口,接受來自外部模擬器(4)的各種指令來進(jìn)行動(dòng)作。外部模擬器(4)通過使用指令,確認(rèn)在PLC模擬器(2)中正在通過程序執(zhí)行處理還是執(zhí)行完畢。外部模擬器(4)確認(rèn)PLC模擬器(2)中的程序的運(yùn)行狀態(tài),在對(duì)PLC存儲(chǔ)器(205b)的訪問不會(huì)產(chǎn)生沖突的情況下,執(zhí)行用于對(duì)PLC存儲(chǔ)器(205b)進(jìn)行寫入等的處理。
【專利說明】PLC模擬系統(tǒng)、PLC模擬器、記錄介質(zhì)以及模擬方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通過模擬器對(duì)可編程序邏輯控制器(PLC-Programmable LogicController,以下也稱為“PLC”)以及與PLC通信的各個(gè)設(shè)備進(jìn)行模擬的PLC模擬系統(tǒng)以及PLC模擬器,特別是涉及控制PLC和各個(gè)設(shè)備的數(shù)據(jù)訪問的技術(shù)。
【背景技術(shù)】
[0002]在PLC的程序開發(fā)中,為了提高開發(fā)的生產(chǎn)率,通常利用PC (Personal computer:個(gè)人計(jì)算機(jī))來運(yùn)行PLC模擬器并調(diào)試程序。
[0003]在PLC中,存儲(chǔ)器存儲(chǔ)程序和數(shù)據(jù)。存儲(chǔ)器的內(nèi)容可由與PLC通信的各個(gè)設(shè)備而被改寫。這種PLC模擬系統(tǒng)被例如下述專利文獻(xiàn)I所公開。
[0004]日本特開2009-223471號(hào)公報(bào)(下述專利文獻(xiàn)I)公開了一種PLC模擬系統(tǒng),所述系統(tǒng)為了一邊模擬PLC和作為PLC的顯示器的可編程終端(PT)協(xié)同工作的PLC系統(tǒng)整體,一邊調(diào)試程序以及PT的顯示程序,而具有PLC模擬器和PT模擬器。
[0005]根據(jù)專利文獻(xiàn)1,PT模擬器側(cè)的用戶操作也被通知給PLC模擬器。因此,能夠調(diào)試PT的顯示程序及PLC的程序,例如用戶能夠通過PC執(zhí)行操作PT的觸摸面板時(shí)的模擬等。
[0006]現(xiàn)有技術(shù)文獻(xiàn)
[0007]專利文獻(xiàn)
[0008]專利文獻(xiàn)1:日本特開2009-223471號(hào)公報(bào)
【發(fā)明內(nèi)容】
[0009]發(fā)明要解決的問題
[0010]如上所述,PLC的存儲(chǔ)器的內(nèi)容不僅由PLC訪問來讀取和寫入,還被與PLC通信的外部設(shè)備等進(jìn)行訪問來讀取和寫入。因此,PLC和外部設(shè)備對(duì)PLC的存儲(chǔ)器的訪問會(huì)產(chǎn)生沖突。其結(jié)果,有可能會(huì)引起用戶不想要發(fā)生的動(dòng)作。
[0011]因此,需要一種通過控制對(duì)PLC模擬系統(tǒng)中的PLC的存儲(chǔ)器的數(shù)據(jù)訪問以避免訪問沖突,從而提高PLC模擬系統(tǒng)的可靠性的技術(shù)。
[0012]用于解決問題的手段
[0013]根據(jù)一實(shí)施方式的PLC模擬系統(tǒng),包括以第一周期來周期性地反復(fù)進(jìn)行處理的PLC模擬器和以第二周期來周期性地反復(fù)進(jìn)行處理的外部模擬器;PLC模擬器具有:存儲(chǔ)部,其用于保存用來執(zhí)行程序的數(shù)據(jù),PLC模擬器以及外部模擬器能夠訪問該存儲(chǔ)部,第一執(zhí)行部,其用于執(zhí)行與對(duì)存儲(chǔ)部的數(shù)據(jù)輸入輸出處理相伴的程序;外部模擬器具有第二執(zhí)行部,該第二執(zhí)行部用于執(zhí)行與對(duì)存儲(chǔ)部的數(shù)據(jù)輸入輸出處理相伴的程序;第一執(zhí)行部和第二執(zhí)行部中的至少一方包括檢測(cè)部,該檢測(cè)部用于檢測(cè)另一方已執(zhí)行完程序;第一執(zhí)行部或者第二執(zhí)行部,在執(zhí)行程序后制止執(zhí)行與訪問存儲(chǔ)部相伴的程序,直至檢測(cè)到對(duì)方已執(zhí)行完程序?yàn)橹埂?br>
[0014]優(yōu)選地,PLC模擬器也可以具有用于與外部模擬器進(jìn)行通信的套接字接口,從外部模擬器接受使PLC模擬器執(zhí)行規(guī)定處理的指令;第一執(zhí)行部按照通過套接字接口接受的指令執(zhí)行處理;指令包括通知指令,該通知指令用于向外部模擬器通知第一執(zhí)行部的程序執(zhí)行狀態(tài);第二執(zhí)行部包括檢測(cè)部,通過使用通知指令來檢測(cè)對(duì)方已執(zhí)行完程序。
[0015]優(yōu)選地,存儲(chǔ)部也可以包括計(jì)數(shù)器;第一執(zhí)行部和第二執(zhí)行部中的至少一方在執(zhí)行完程序后更新計(jì)數(shù)器值;檢測(cè)部通過檢測(cè)計(jì)數(shù)器值的更新來檢測(cè)對(duì)方已執(zhí)行完程序。
[0016]優(yōu)選地,存儲(chǔ)部也可以存儲(chǔ)標(biāo)志;第一執(zhí)行部和第二執(zhí)行部中的至少一方在執(zhí)行完程序后,將標(biāo)志的值變更為表示執(zhí)行完畢的值,檢測(cè)部根據(jù)標(biāo)志的值來檢測(cè)對(duì)方已執(zhí)行完程序。
[0017]根據(jù)一實(shí)施方式的PLC模擬器以第一周期來周期性地反復(fù)進(jìn)行處理,其具有:存儲(chǔ)部,其用于保存用來執(zhí)行程序的數(shù)據(jù),PLC模擬器以及以第二周期周期性地反復(fù)進(jìn)行處理的外部模擬器能夠訪問該存儲(chǔ)部,執(zhí)行部,其用于執(zhí)行與對(duì)存儲(chǔ)部的數(shù)據(jù)輸入輸出處理相伴的程序;執(zhí)行部包括檢測(cè)部,該檢測(cè)部用于檢測(cè)外部模擬器已執(zhí)行完程序,執(zhí)行部在執(zhí)行程序后制止執(zhí)行與訪問存儲(chǔ)部相伴的程序,直至檢測(cè)部檢測(cè)到外部模擬器已執(zhí)行完程序?yàn)橹埂?br>
[0018]根據(jù)一實(shí)施方式的PLC模擬器以第一周期來周期性地反復(fù)進(jìn)行處理,其具有:接口,其用于與以第二周期來周期性地反復(fù)進(jìn)行處理的外部模擬器收發(fā)信息,存儲(chǔ)部,其用于保存用來執(zhí)行程序的數(shù)據(jù),PLC模擬器以及外部模擬器能夠訪問該存儲(chǔ)部,執(zhí)行部,其用于執(zhí)行與對(duì)存儲(chǔ)部的數(shù)據(jù)輸入輸出處理相伴的程序;執(zhí)行部通過接口向外部模擬器通知程序的執(zhí)行狀態(tài)。
[0019]根據(jù)其他實(shí)施方式,提供一種計(jì)算機(jī)可讀記錄介質(zhì)。在計(jì)算機(jī)可讀記錄介質(zhì)中記錄有用于控制PLC模擬器的動(dòng)作的控制程序。PLC模擬器以第一周期來周期性地反復(fù)進(jìn)行處理,其包括存儲(chǔ)部,以第二周期來周期性地反復(fù)進(jìn)行處理的外部模擬器能夠訪問該存儲(chǔ)部。記錄在該記錄介質(zhì)中的控制程序使計(jì)算機(jī)執(zhí)行如下步驟:使PLC模擬器執(zhí)行與對(duì)PLC模擬器的存儲(chǔ)部的數(shù)據(jù)輸入輸出處理相伴的用戶程序,使PLC模擬器檢測(cè)外部模擬器已執(zhí)行完程序,在執(zhí)行用戶程序后,制止PLC模擬器執(zhí)行與訪問存儲(chǔ)部相伴的用戶程序,直至檢測(cè)到外部模擬器已執(zhí)行完程序?yàn)橹埂?br>
[0020]根據(jù)其他實(shí)施方式,提供一種PLC模擬系統(tǒng)中的模擬方法。PLC模擬系統(tǒng)包括以第一周期來周期性地反復(fù)進(jìn)行處理的PLC模擬器和以第二周期來周期性地反復(fù)進(jìn)行處理的外部模擬器。PLC模擬器包括存儲(chǔ)部,該存儲(chǔ)部用于保存用來執(zhí)行程序的數(shù)據(jù),PLC模擬器以及外部模擬器能夠訪問該存儲(chǔ)部。模擬方法包括如下步驟=PLC模擬器執(zhí)行與對(duì)存儲(chǔ)部的數(shù)據(jù)輸入輸出處理相伴的程序,外部模擬器執(zhí)行與對(duì)存儲(chǔ)部的數(shù)據(jù)輸入輸出處理相伴的程序,PLC模擬器和外部模擬器中的至少一方檢測(cè)另一方已執(zhí)行完程序,PLC模擬器和外部模擬器中的至少一方,在執(zhí)行完程序后制止執(zhí)行與訪問存儲(chǔ)部相伴的程序,直至檢測(cè)到對(duì)方已執(zhí)行完程序?yàn)橹埂?br>
[0021]發(fā)明效果
[0022]根據(jù)這種結(jié)構(gòu),能夠提高PLC模擬系統(tǒng)的可靠性。
[0023]本發(fā)明的上述以及其他目的、特征、技術(shù)方案以及優(yōu)點(diǎn)將通過參照附圖來理解的與本發(fā)明相關(guān)的下面的詳細(xì)的說明而變得清楚。
【專利附圖】
【附圖說明】
[0024]圖1是表示本發(fā)明的實(shí)施方式的PLC模擬系統(tǒng)10的功能框圖。
[0025]圖2是表示PCll的結(jié)構(gòu)的圖。
[0026]圖3是表示PLC模擬器2的套接字接口中的指令序列的一個(gè)例子的圖。
[0027]圖4是表示相關(guān)技術(shù)中的PLC模擬器的動(dòng)作的流程圖。
[0028]圖5是表示相關(guān)技術(shù)中的外部模擬器的動(dòng)作的流程圖。
[0029]圖6是表示相關(guān)技術(shù)中的模擬系統(tǒng)的動(dòng)作例子的圖。
[0030]圖7是表示本實(shí)施方式的PLC模擬器2以及外部模擬器4的動(dòng)作的流程圖。
[0031]圖8是表示外部模擬器4和PLC模擬器2的時(shí)間圖的圖。
[0032]圖9是利用計(jì)數(shù)器通知在PLC模擬器2中運(yùn)行的程序已執(zhí)行完畢的情況下的時(shí)間圖。
[0033]圖10是表示變形例2中的PLC模擬器2的動(dòng)作的流程圖。
[0034]圖11是表示變形例2中的外部模擬器4的動(dòng)作的流程圖。
【具體實(shí)施方式】
[0035]下面,參照附圖來說明本發(fā)明的實(shí)施方式。在下面的說明中,對(duì)相同部件賦予相同的附圖標(biāo)記。它們的名稱以及功能都是一樣的。因此,不再對(duì)它們重復(fù)進(jìn)行詳細(xì)說明。
[0036]〈1PLC模擬系統(tǒng)10的結(jié)構(gòu)>
[0037]圖1是表示實(shí)施方式的PLC模擬系統(tǒng)10的結(jié)構(gòu)的功能框圖。
[0038]如該圖所示,該模擬系統(tǒng)10包括PLC程序設(shè)計(jì)工具1、PLC模擬器2、設(shè)定工具3和外部模擬器4。
[0039]就作為模擬系統(tǒng)10的組件的PLC程序設(shè)計(jì)工具1、PLC模擬器2、設(shè)定工具3以及外部模擬器4而言,通過將專用的計(jì)算機(jī)程序(PLC程序設(shè)計(jì)工具軟件、PLC模擬器軟件、設(shè)定工具軟件、外部模擬器軟件)分別編入計(jì)算機(jī)(例如,個(gè)人計(jì)算機(jī)(PC))來以軟件的方式實(shí)現(xiàn)。
[0040]在本實(shí)施方式中,假設(shè)作為上述模擬系統(tǒng)10的組件的PLC程序設(shè)計(jì)工具1、PLC模擬器2、設(shè)定工具3以及外部模擬器4在一臺(tái)PC中運(yùn)行來進(jìn)行說明。
[0041]〈1.1PLC程序設(shè)計(jì)工具I的結(jié)構(gòu)>
[0042]PLC程序設(shè)計(jì)工具I是用于調(diào)試PLC模擬器2的工具,其接受用戶5的操作來控制PLC模擬器2的執(zhí)行。
[0043]PLC程序設(shè)計(jì)工具I包括圖形用戶界面(⑶I) 101、程序管理部102、作為中間設(shè)備(middleware)的通信部 103 和模擬接口(I/F) 104。
[0044]⑶IlOl具有如下功能:向用戶5顯示與PLC模擬及調(diào)試等相關(guān)的各種信息(例如,與PLC模擬的開始、停止等相關(guān)的信息),并接受用戶5的輸入操作。
[0045]程序管理部102具有生成及編輯程序的功能。程序管理部102通過⑶IlOl按照用戶給予的指示進(jìn)行處理。具體而言,程序管理部102具有經(jīng)由通信部103讀取存儲(chǔ)部205的程序或者寫入程序等功能。
[0046]通信部103具有與PLC模擬器2的通信部202進(jìn)行通信的通信接口。
[0047]模擬接口(I/F) 104具有如下功能:在與PLC模擬器2之間,就與PLC模擬及調(diào)試等相關(guān)的各種信息(例如,PLC模擬器2的啟動(dòng)、停止、程序執(zhí)行部203中的程序的啟動(dòng)、停止)進(jìn)行通信。
[0048]〈1.2PLC模擬器2的結(jié)構(gòu)>
[0049]PLC模擬器2具有PLC的模擬功能,其根據(jù)用戶5的操作而運(yùn)行,并與外部模擬器4協(xié)同工作來輸出模擬結(jié)果。
[0050]PLC模擬器2向外部模擬器4提供用于使PLC模擬器2和外部模擬器4進(jìn)行通信的套接字接口(socket interface) 0在PLC模擬器2和外部模擬器4在同一 PC中運(yùn)行的情況下,外部模擬器4通過PLC模擬器2的套接字接口向PLC模擬器2給予指示,由此,外部模擬器4能夠操作PLC模擬器2。關(guān)于該套接字接口,將在后面進(jìn)行說明。
[0051]PLC模擬器2接受來自PLC程序設(shè)計(jì)工具I的PLC模擬器的啟動(dòng)指令和停止指令,根據(jù)指令進(jìn)行啟動(dòng)動(dòng)作和停止動(dòng)作。PLC模擬器2包括程序控制部201、通信部202、程序執(zhí)行部203、停止條件保存部204和存儲(chǔ)部205。
[0052]存儲(chǔ)部205由RAM (Random Access Memory:隨機(jī)存取存儲(chǔ)器)等實(shí)現(xiàn),具有規(guī)定的存儲(chǔ)區(qū)域。存儲(chǔ)部205具有用于存儲(chǔ)用戶任意生成的程序205a的存儲(chǔ)區(qū)域和作為用于程序205a進(jìn)行參照的存儲(chǔ)區(qū)域的PLC存儲(chǔ)器205b (輸入輸出存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器等)。
[0053]程序執(zhí)行部203響應(yīng)于來自程序控制部201的規(guī)定的啟動(dòng)指令和停止指令,從存儲(chǔ)部205讀出并執(zhí)行程序205a。
[0054]存儲(chǔ)在存儲(chǔ)部205中的程序205a和PLC存儲(chǔ)器205b的內(nèi)容能夠通過通信部202而被PLC程序設(shè)計(jì)工具I監(jiān)視。而且,PLC存儲(chǔ)器205b的內(nèi)容也能夠通過通信部202由外部模擬器4讀取或者寫入。
[0055]通信部202具有讀取及寫入數(shù)據(jù)的功能。另外,通信部202對(duì)外部模擬器4提供套接字接口。外部模擬器4能夠通過使用套接字接口,操作PLC模擬器2。
[0056]程序控制部201具有響應(yīng)于來自PLC程序設(shè)計(jì)工具I的啟動(dòng)指令和停止指令,控制程序執(zhí)行部203啟動(dòng)和停止程序205a的功能。
[0057]另外,程序控制部201具有如下功能,即,響應(yīng)于來自PLC程序設(shè)計(jì)工具I的停止條件設(shè)定,將包含于該停止條件設(shè)定的“停止條件”保存于停止條件保存部204。
[0058]程序控制部201具有如下功能,即,始終監(jiān)視保存于停止條件保存部204的“停止條件”的成立,只要確認(rèn)“停止條件”的成立,就立刻使程序執(zhí)行部203停止執(zhí)行程序205a。
[0059]因此,例如,進(jìn)行調(diào)試的用戶通過在停止條件保存部204中設(shè)定保存所期望的“停止條件”,就能夠在任意時(shí)刻停止執(zhí)行程序。由此,用戶5能夠利用PLC程序設(shè)計(jì)工具I和PLC模擬器2來調(diào)試程序。
[0060]如上所述,停止條件保存部204保存用于停止執(zhí)行程序205a的條件。
[0061]〈1.3設(shè)定工具3的結(jié)構(gòu)〉
[0062]設(shè)定工具3是用于調(diào)試外部模擬器4的工具,接受用戶5的操作來控制外部模擬器4的啟動(dòng)及停止。
[0063]設(shè)定工具3包括圖形用戶界面(⑶1)301和模擬接口(I/F)303。
[0064]GUI301具有如下功能,即,對(duì)用戶5顯示與調(diào)試等相關(guān)的各種信息(例如,涉及與PLC通信的設(shè)備的模擬的開始、停止等的信息),通過鍵盤操作、鼠標(biāo)操作等,接受用戶5所進(jìn)行的輸入操作。
[0065]模擬接口(I/F) 303具有如下功能,即,在與外部模擬器4之間,就與調(diào)試等相關(guān)的各種信息進(jìn)行通信(例如,外部模擬器4的啟動(dòng)、停止等)。
[0066]〈1.4外部模擬器4的結(jié)構(gòu)>
[0067]外部模擬器4是發(fā)揮與PLC模擬器2協(xié)同工作的設(shè)備的模擬功能的程序。在本實(shí)施方式中,外部模擬器4利用PLC模擬器2的套接字接口主導(dǎo)性地對(duì)PLC模擬器2發(fā)出規(guī)定的指示,從而對(duì)PLC模擬器2進(jìn)行操作。
[0068]外部模擬器4包括畫面顯示部401、作為中間設(shè)備(middleware)的通信部402和執(zhí)行部403。
[0069]畫面顯示部401與模擬對(duì)象設(shè)備的實(shí)際設(shè)備的操作畫面相對(duì)應(yīng)。外部模擬器4具有如下功能,即,當(dāng)執(zhí)行部403的執(zhí)行動(dòng)作開始時(shí),通過鼠標(biāo)或鍵盤接受虛擬地進(jìn)行的用戶5的操作等,并向執(zhí)行部403交接該操作內(nèi)容。
[0070]執(zhí)行部403按照規(guī)定的程序進(jìn)行動(dòng)作,通過通信部402,向PLC模擬器2的PLC存儲(chǔ)器205b的相應(yīng)地址進(jìn)行寫入和讀取。執(zhí)行部403包括檢測(cè)部404。
[0071]檢測(cè)部404檢測(cè)在PLC模擬器2中程序執(zhí)行部203是否正在執(zhí)行規(guī)定的程序。在本實(shí)施方式中,檢測(cè)部404利用后述的套接字接口,檢測(cè)PLC模擬器2中是否執(zhí)行完規(guī)定的程序。
[0072]〈1.5PLC模擬系統(tǒng)10的動(dòng)作環(huán)境>
[0073]具有上述結(jié)構(gòu)的PLC模擬系統(tǒng)10在PC中以軟件的方式被實(shí)現(xiàn)。其中,PCll的結(jié)構(gòu)如圖2所示。
[0074]如圖2所示,PCll 包括運(yùn)算部 12、R0M(Read Only Memory:只讀存儲(chǔ)器)13、RAM14、輸入部15和輸出部16。
[0075]運(yùn)算部12具有CPU (Central Processing Unit:中央處理單兀),控制OS (Operating System:操作系統(tǒng))、PLC模擬器2及外部模擬器4等各個(gè)程序的執(zhí)行。
[0076]在R0M13中存儲(chǔ)有各種程序。
[0077]RAM14是用于執(zhí)行軟件的存儲(chǔ)區(qū)域,PLC模擬器2等程序被讀入RAM14后運(yùn)行各個(gè)程序。
[0078]輸入部15接受用戶5的操作。具體而言,輸入部15由鍵盤、觸摸面板等構(gòu)成。
[0079]輸出部16輸出模擬結(jié)果等。具體的而言,由監(jiān)視器(monitor)等顯示部構(gòu)成。
[0080]〈2套接字接口 >
[0081]下面,對(duì)PLC模擬器2提供的套接字接口進(jìn)行說明。
[0082]圖3是表示PLC模擬器2的套接字接口的指令序列的一個(gè)例子的圖。
[0083]外部模擬器4能夠通過套接字接口,使用各個(gè)指令來操作PLC模擬器2。
[0084]例如,如圖所示,“GoOneScan”指令是用于使在PLC模擬器2中運(yùn)行的程序執(zhí)行一個(gè)周期的指令。外部模擬器4能夠通過指定指令的參數(shù)(argument)來進(jìn)行控制,以使在PLC模擬器2中運(yùn)行的程序執(zhí)行一個(gè)周期后待機(jī)規(guī)定時(shí)間,或者解除待機(jī)。此外,使PLC模擬器2待機(jī)規(guī)定時(shí)間后,也可以使PLC模擬器2開始周期性地執(zhí)行程序的通常的動(dòng)作。
[0085]另外,例如,“CheckPLCState”指令是用于取得PLC模擬器2中運(yùn)行的程序的執(zhí)行狀態(tài)的指令。通過該指令,從PLC模擬器2向外部模擬器4通知PLC模擬器2執(zhí)行完一個(gè)周期后處于待機(jī)還是正在執(zhí)行一個(gè)周期,來作為PLC模擬器2中運(yùn)行的程序的執(zhí)行狀態(tài)。
[0086]因此,外部模擬器4通過“GoOneScan”指示PLC模擬器2執(zhí)行一個(gè)周期的程序后,通過“CheckPLCState”指令,取得PLC模擬器2中的程序執(zhí)行狀態(tài),從而能夠檢測(cè)PLC模擬器2的處理是否結(jié)束。
[0087]<3 動(dòng)作 >
[0088]下面,對(duì)PLC模擬系統(tǒng)10的PLC模擬器2的動(dòng)作和外部模擬器4的動(dòng)作進(jìn)行說明。
[0089]在本實(shí)施方式中,夕卜部模擬器4和PLC模擬器2中的一方把握控制的主導(dǎo)權(quán),把握主導(dǎo)權(quán)的一方向另一方發(fā)出開始處理的指示并確認(rèn)處理已被執(zhí)行。
[0090]在該實(shí)施方式的例子中,PLC模擬器2具有套接字接口。在外部模擬器4中運(yùn)行的程序主導(dǎo)性地操作PLC模擬器2。
[0091]外部模擬器4中運(yùn)行的程序通過利用套接字接口執(zhí)行規(guī)定的指令,來檢測(cè)PLC模擬器2中的程序是否已運(yùn)行完畢。外部模擬器4中運(yùn)行的程序在檢測(cè)到PLC模擬器2中的程序已運(yùn)行完畢后,根據(jù)程序進(jìn)行輸入輸出處理等動(dòng)作。
[0092]由此,以對(duì)PLC存儲(chǔ)器205b的訪問不產(chǎn)生沖突的方式執(zhí)行程序。因此,能夠防止PLC存儲(chǔ)器205b的數(shù)據(jù)意外被改變從而進(jìn)行意想不到的動(dòng)作。
[0093]<3.1相關(guān)技術(shù)的動(dòng)作>
[0094]在此,為了與本發(fā)明進(jìn)行比較,對(duì)訪問PLC存儲(chǔ)器會(huì)產(chǎn)生沖突的模擬系統(tǒng)的結(jié)構(gòu)進(jìn)行說明。
[0095]圖4是表示相關(guān)技術(shù)中的PLC模擬器的動(dòng)作的流程圖。
[0096]如圖4所示,相關(guān)技術(shù)中的PLC模擬器周期性地重復(fù)執(zhí)行處理。即,相關(guān)技術(shù)中的PLC模擬器每次經(jīng)過規(guī)定的周期(步驟S21中為“是”),對(duì)PLC存儲(chǔ)器進(jìn)行數(shù)據(jù)的輸入輸出處理(步驟S23),并執(zhí)行程序(步驟S25)。
[0097]圖5是表示相關(guān)技術(shù)中外部模擬器的動(dòng)作的流程圖。
[0098]如該圖所示,相關(guān)技術(shù)中的外部模擬器(例如,由PLC控制其動(dòng)作的檢查用的帶式運(yùn)送機(jī)的模擬器),每次經(jīng)過規(guī)定的監(jiān)測(cè)周期(步驟S31中為“是”),進(jìn)行用于對(duì)PLC存儲(chǔ)器進(jìn)行數(shù)據(jù)訪問的監(jiān)測(cè)處理(步驟S33),并執(zhí)行規(guī)定的運(yùn)算處理(步驟S35)。如此,外部模擬器周期性地執(zhí)行規(guī)定的動(dòng)作。
[0099]圖6不出了如此進(jìn)行的相關(guān)技術(shù)中的模擬系統(tǒng)的動(dòng)作例子。圖6不出了與外部模擬器相比PLC的模擬器的動(dòng)作周期更短的情況。
[0100]如該圖所示,在相關(guān)技術(shù)中,因?yàn)镻LC模擬器和外部模擬器分別獨(dú)立動(dòng)作,所以,PLC模擬器和外部模擬器可能會(huì)同時(shí)訪問PLC存儲(chǔ)器。外部模擬器按照規(guī)定周期訪問PLC存儲(chǔ)器來進(jìn)行規(guī)定的動(dòng)作。在外部模擬器讀出PLC存儲(chǔ)器的數(shù)據(jù)以及向PLC存儲(chǔ)器寫入數(shù)據(jù)的期間,比外部模擬器的動(dòng)作周期更短的PLC模擬器執(zhí)行任務(wù),從而改寫PLC存儲(chǔ)器的數(shù)據(jù)(該圖中,改寫為“A”、“B”、“C”)。
[0101 ] 在相關(guān)技術(shù)中,有可能外部模擬器和PLC模擬器同時(shí)訪問PLC存儲(chǔ)器,會(huì)導(dǎo)致進(jìn)行用戶不想要發(fā)生的動(dòng)作。
[0102]〈3.2PLC模擬器2以及外部模擬器4的動(dòng)作>
[0103]下面,對(duì)本實(shí)施方式中的PLC模擬器2以及外部模擬器4的動(dòng)作進(jìn)行說明。
[0104]圖7是表示本實(shí)施方式的PLC模擬器2以及外部模擬器4的動(dòng)作的流程圖。如該圖所示,PLC模擬器2通過套接字接口從外部模擬器4接受指令,從而接受來自外部模擬器4的操作。該圖示出了這樣的處理:經(jīng)過套接字的初始化等處理,外部模擬器4通過指令來序列開始操作PLC模擬器2。
[0105]外部模擬器4通過使用“GoOneScan”指令,使在PLC模擬器2中運(yùn)行的程序執(zhí)行一個(gè)周期(步驟S62)。在PLC模擬器2中,通過接收“GoOneScan”指令,執(zhí)行一個(gè)周期的程序后待機(jī)(步驟S68)。
[0106]外部模擬器4通過使用“CheckPLCState”指令,確認(rèn)在PLC模擬器2中是否執(zhí)行了一個(gè)周期(步驟S63)。如果在PLC模擬器2中正在執(zhí)行一個(gè)周期(步驟S63中為“否”),則外部模擬器4 一直使用“CheckPLCState”指令,直至從PLC模擬器2接收到用于表示“待機(jī)中”的應(yīng)答為止。
[0107]如果PLC模擬器2執(zhí)行完一個(gè)周期并接收到表示“待機(jī)中”的應(yīng)答(步驟S63中為“是”),則外部模擬器4執(zhí)行向PLC存儲(chǔ)器205b的寫入數(shù)據(jù)等規(guī)定的寫入處理(步驟S64)。
[0108]若完成寫入處理,則外部模擬器4通過使用“GoOneScan”指令,使在PLC模擬器2中運(yùn)行的程序執(zhí)行一個(gè)周期(步驟S65)。在PLC模擬器2中,接收“GoOneScan”指令,執(zhí)行一個(gè)周期的程序后待機(jī)(步驟S68)。
[0109]外部模擬器4通過使用“CheckPLCState”指令,確認(rèn)在PLC模擬器2中是否執(zhí)行了一個(gè)周期(步驟S66)。
[0110]如果PLC模擬器2執(zhí)行完一個(gè)周期并且從PLC模擬器2接收到表示“待機(jī)中”的應(yīng)答(步驟S66中為“是”),則外部模擬器4執(zhí)行從PLC存儲(chǔ)器205b讀取數(shù)據(jù)等規(guī)定的讀取處理(步驟S67)。然后,外部模擬器4重復(fù)步驟S64之后的處理。
[0111]如上所述,外部模擬器4通過步驟S65等來主導(dǎo)PLC模擬器2中的程序執(zhí)行,并通過步驟S66等來確認(rèn)PLC模擬器2的執(zhí)行是否完成(處于忙碌(BUSY)狀態(tài)還是閑置(IDLE)狀態(tài))后進(jìn)行處理(步驟S67等)。
[0112]圖8表示如此動(dòng)作的外部模擬器4和PLC模擬器2的時(shí)間圖。
[0113]如圖8所示,外部模擬器4和PLC模擬器2交替地運(yùn)行程序。若外部模擬器4使在PLC模擬器2中運(yùn)行的程序執(zhí)行一個(gè)周期,則PLC模擬器2進(jìn)行規(guī)定的運(yùn)算,這一期間處于忙碌狀態(tài)。
[0114]此外,圖8中“W”表示寫入處理,“R”表示讀取處理。外部模擬器4通過使用套接字接口的指令,確認(rèn)PLC模擬器2的執(zhí)行狀態(tài),在PLC模擬器2變?yōu)榇龣C(jī)中的狀態(tài)(閑置狀態(tài))后,開始處理。
[0115]〈3.3 變形例〉
[0116]除此之外,為了使外部模擬器4和PLC模擬器2交替地運(yùn)行程序而檢測(cè)一方是否執(zhí)行完畢的方法有多種方法。即,發(fā)揮檢測(cè)部404的功能的具體的方法可采用如下方法。
[0117](變形例I)
[0118]雖然在上述例子中外部模擬器4依次確認(rèn)PLC模擬器2的執(zhí)行狀態(tài)(使用“CheckPLCState”指令),但是,除此此外,也可以使用規(guī)定的存儲(chǔ)區(qū)域,由外部模擬器4和PLC模擬器2中的一方向另一方通知執(zhí)行狀態(tài)已結(jié)束。
[0119]圖9是在使用計(jì)數(shù)器通知PLC模擬器2中運(yùn)行的程序已執(zhí)行完的情況下的時(shí)間圖。
[0120]圖9的例子中,外部模擬器4主導(dǎo)性地使PLC模擬器2的程序運(yùn)行。PLC模擬器2在動(dòng)作結(jié)束后,更新例如存儲(chǔ)在存儲(chǔ)部205中的計(jì)數(shù)器值。外部模擬器4根據(jù)計(jì)數(shù)器值的更新來檢測(cè)PLC模擬器2中的程序運(yùn)行已結(jié)束。此外,在圖9中“W”表示寫入處理,“R”表示讀取處理。
[0121]如圖9所示,若PLC模擬器2開始處理,則在進(jìn)行規(guī)定的讀取處理時(shí)獲得計(jì)數(shù)器值,并在進(jìn)行運(yùn)算來執(zhí)行規(guī)定的寫入處理時(shí)更新計(jì)數(shù)器值。外部模擬器4監(jiān)視計(jì)數(shù)器值,若計(jì)數(shù)器值被更新則開始處理。
[0122](變形例2)
[0123]另外,也可以將表不外部模擬器4和PLC模擬器2中的任意一方已完成執(zhí)行的標(biāo)志存儲(chǔ)在例如存儲(chǔ)部205中,來由一方向另一方通知執(zhí)行狀態(tài)。
[0124]例如,假設(shè)在PLC模擬器2中運(yùn)行的程序以比外部模擬器4更短的運(yùn)行周期運(yùn)行。即,在外部模擬器4運(yùn)行期間,PLC模擬器2能夠多次訪問PLC存儲(chǔ)器205b。
[0125]在該情況下,若外部模擬器4完成運(yùn)行,則將上述標(biāo)志設(shè)為開啟(ON),從而向PLC模擬器2通知已完成運(yùn)行。運(yùn)行周期比較短的PLC模擬器2在周期到來時(shí),如果標(biāo)志為關(guān)閉(OFF),則認(rèn)為外部模擬器4的程序的運(yùn)行未結(jié)束,不執(zhí)行處理而待機(jī)。PLC模擬器2在標(biāo)志為開啟(ON)的情況下,檢測(cè)為外部模擬器4的程序的運(yùn)行已結(jié)束并執(zhí)行處理。
[0126]圖10是表示變形例2中的PLC模擬器2的動(dòng)作的流程圖。
[0127]PLC模擬器2在規(guī)定的運(yùn)行周期到來的時(shí)刻,如果標(biāo)志不是開啟(ON),則待機(jī),不執(zhí)行程序203a,由此,停止對(duì)PLC存儲(chǔ)器205b的訪問(步驟S91中為“否”)。
[0128]若規(guī)定的運(yùn)行周期到來且標(biāo)志為開啟(ON),則PLC模擬器2進(jìn)行步驟S93的處理,從而將標(biāo)志設(shè)為關(guān)閉(OFF)。
[0129]PLC模擬器2執(zhí)行規(guī)定處理,例如,訪問PLC存儲(chǔ)器205b來對(duì)PLC存儲(chǔ)器205b進(jìn)行數(shù)據(jù)的輸入輸出處理(步驟S95),使用PLC存儲(chǔ)器205b的數(shù)據(jù)等來執(zhí)行程序203a (步驟S97)等。
[0130]圖11是表示變形例2中的外部模擬器4的動(dòng)作的流程圖。
[0131]外部模擬器4中運(yùn)行的程序待機(jī)直至規(guī)定的運(yùn)行周期(監(jiān)測(cè)周期)到來(步驟SlOl中為“否”)為止。若規(guī)定的運(yùn)行周期到來(步驟SlOl中為“是”),則外部模擬器4中運(yùn)行的程序執(zhí)行監(jiān)測(cè)處理(步驟S103)及運(yùn)算處理(步驟S105)等伴隨著對(duì)PLC存儲(chǔ)器205b的讀取以及寫入的規(guī)定處理。若這些處理結(jié)束,則外部模擬器4中運(yùn)行的程序?qū)?biāo)志設(shè)為開啟(ON)(步驟S107)。外部模擬器4通過將標(biāo)志設(shè)為開啟(ON),向PLC模擬器2通知外部模擬器4中運(yùn)行的程序中的處理已被執(zhí)行。
[0132]如上所述,由于PLC模擬器2的運(yùn)行周期比外部模擬器4更短,所以,在外部模擬器4的周期性處理的執(zhí)行時(shí)刻再次到來之前,完成PLC模擬器2對(duì)PLC存儲(chǔ)器205b的訪問。因此,在PLC模擬器2和外部模擬器4之間,不會(huì)同時(shí)訪問PLC存儲(chǔ)器205b,能夠防止在外部模擬器4中用戶程序基于不想要訪問的的數(shù)據(jù)而進(jìn)行誤動(dòng)作。
[0133]在實(shí)施方式的說明中說明了外部模擬器4通過檢測(cè)部404來檢測(cè)PLC模擬器2的程序的是否執(zhí)行完畢的情況。由上述變形例的說明也可知,也可以由PLC模擬器2側(cè)檢測(cè)外部模擬器4中的程序的執(zhí)行狀態(tài),來進(jìn)行制止PLC模擬器2中的程序的執(zhí)行等控制。SP,PLC模擬器2也能夠發(fā)揮檢測(cè)部404的功能。
[0134]另外,也可以外部模擬器4以及PLC模擬器2彼此發(fā)揮檢測(cè)部404的功能,來檢測(cè)對(duì)方程序是否執(zhí)行完畢。
[0135]也可以將控制上述PLC模擬器2的動(dòng)作的控制程序記錄在計(jì)算機(jī)可讀記錄介質(zhì)中并使記錄介質(zhì)流通,從而分發(fā)該控制程序。應(yīng)理解本次公開的實(shí)施方式在所有方面都是例示而非限制。本發(fā)明的范圍由權(quán)利要求書示出,而非由上述說明來示出,包括與權(quán)利要求書等同的含義及范圍內(nèi)的全部變更。
[0136]產(chǎn)業(yè)上的可利用性
[0137]本發(fā)明能夠用于PLC模擬系統(tǒng)。
[0138]附圖標(biāo)記說明
[0139]IPLC程序設(shè)計(jì)工具;
[0140]2PLC 模擬器;
[0141]3設(shè)定工具;
[0142]4外部模擬器;
[0143]5 用戶;
[0144]1PLC模擬系統(tǒng);
[0145]IlPC ;
[0146]12運(yùn)算部;
[0147]13R0M ;
[0148]14RAM ;
[0149]15輸入部;
[0150]16輸出部;
[0151]101 ⑶ I ;
[0152]102 管理部;
[0153]103 通信部;
[0154]104 模擬 I/F ;
[0155]201 控制部;
[0156]202 通信部;
[0157]203程序執(zhí)行部;
[0158]204停止條件保存部;
[0159]205 存儲(chǔ)部;
[0160]205a 程序;
[0161]205b PLC 存儲(chǔ)器;
[0162]301⑶I ;
[0163]303 模擬 I/F;
[0164]401畫面顯示部;
[0165]402 通信部;
[0166]403 執(zhí)行部。
【權(quán)利要求】
1.一種PLC模擬系統(tǒng),其特征在于, 所述PLC模擬系統(tǒng)包括以第一周期來周期性地反復(fù)進(jìn)行處理的PLC模擬器和以第二周期來周期性地反復(fù)進(jìn)行處理的外部模擬器; 所述PLC模擬器具有: 存儲(chǔ)部,其用于保存用來執(zhí)行程序的數(shù)據(jù),所述PLC模擬器以及所述外部模擬器能夠訪問該存儲(chǔ)部, 第一執(zhí)行部,其用于執(zhí)行與對(duì)所述存儲(chǔ)部的數(shù)據(jù)輸入輸出處理相伴的程序; 所述外部模擬器具有第二執(zhí)行部,該第二執(zhí)行部用于執(zhí)行與對(duì)所述存儲(chǔ)部的數(shù)據(jù)輸入輸出處理相伴的程序; 所述第一執(zhí)行部和所述第二執(zhí)行部中的至少一方包括檢測(cè)部,該檢測(cè)部用于檢測(cè)另一方已執(zhí)行完程序; 所述第一執(zhí)行部或者所述第二執(zhí)行部,在執(zhí)行程序后制止執(zhí)行與訪問所述存儲(chǔ)部相伴的程序,直至檢測(cè)到對(duì)方已執(zhí)行完程序?yàn)橹埂?br>
2.如權(quán)利要求1所述的PLC模擬系統(tǒng),其特征在于, 所述PLC模擬器具有用于與所述外部模擬器進(jìn)行通信的套接字接口,從所述外部模擬器接受使所述PLC模擬器執(zhí)行規(guī)定處理的指令; 所述第一執(zhí)行部按照通過所述套接字接口接受的指令執(zhí)行處理; 所述指令包括通知指令,該通知指令用于向所述外部模擬器通知所述第一執(zhí)行部的程序執(zhí)行狀態(tài); 所述第二執(zhí)行部包括所述檢測(cè)部,通過使用所述通知指令來檢測(cè)對(duì)方已執(zhí)行完程序。
3.如權(quán)利要求1所述的PLC模擬系統(tǒng),其特征在于, 所述存儲(chǔ)部包括計(jì)數(shù)器; 所述第一執(zhí)行部和所述第二執(zhí)行部中的至少一方在執(zhí)行完程序后更新計(jì)數(shù)器值; 所述檢測(cè)部通過檢測(cè)所述計(jì)數(shù)器值的更新來檢測(cè)對(duì)方已執(zhí)行完程序。
4.如權(quán)利要求1所述的PLC模擬系統(tǒng),其特征在于, 所述存儲(chǔ)部存儲(chǔ)標(biāo)志; 所述第一執(zhí)行部和所述第二執(zhí)行部中的至少一方在執(zhí)行完程序后,將所述標(biāo)志的值變更為表示執(zhí)行完畢的值, 所述檢測(cè)部根據(jù)所述標(biāo)志的值來檢測(cè)對(duì)方已執(zhí)行完程序。
5.一種PLC模擬器,以第一周期來周期性地反復(fù)進(jìn)行處理,其特征在于, 具有: 存儲(chǔ)部,其用于保存用來執(zhí)行程序的數(shù)據(jù),所述PLC模擬器以及以第二周期周期性地反復(fù)進(jìn)行處理的外部模擬器能夠訪問該存儲(chǔ)部, 執(zhí)行部,其用于執(zhí)行與對(duì)所述存儲(chǔ)部的數(shù)據(jù)輸入輸出處理相伴的程序; 所述執(zhí)行部包括檢測(cè)部,該檢測(cè)部用于檢測(cè)所述外部模擬器已執(zhí)行完程序,所述執(zhí)行部在執(zhí)行程序后制止執(zhí)行與訪問所述存儲(chǔ)部相伴的程序,直至所述檢測(cè)部檢測(cè)到所述外部模擬器已執(zhí)行完程序?yàn)橹埂?br>
6.一種PLC模擬器,以第一周期來周期性地反復(fù)進(jìn)行處理,其特征在于, 具有: 接口,其用于與以第二周期來周期性地反復(fù)進(jìn)行處理的外部模擬器收發(fā)信息, 存儲(chǔ)部,其用于保存用來執(zhí)行程序的數(shù)據(jù),所述PLC模擬器以及所述外部模擬器能夠訪問該存儲(chǔ)部, 執(zhí)行部,其用于執(zhí)行與對(duì)所述存儲(chǔ)部的數(shù)據(jù)輸入輸出處理相伴的程序; 所述執(zhí)行部通過所述接口向所述外部模擬器通知程序的執(zhí)行狀態(tài)。
7.—種計(jì)算機(jī)可讀記錄介質(zhì),其特征在于, 在所述計(jì)算機(jī)可讀記錄介質(zhì)中記錄有用于控制PLC模擬器的動(dòng)作的控制程序; 所述PLC模擬器以第一周期來周期性地反復(fù)進(jìn)行處理,其包括存儲(chǔ)部,以第二周期來周期性地反復(fù)進(jìn)行處理的外部模擬器能夠訪問該存儲(chǔ)部; 所述控制程序使所述計(jì)算機(jī)執(zhí)行如下步驟: 使所述PLC模擬器執(zhí)行與對(duì)所述PLC模擬器的存儲(chǔ)部的數(shù)據(jù)輸入輸出處理相伴的用戶程序, 使所述PLC模擬器檢測(cè)所述外部模擬器已執(zhí)行完程序, 在執(zhí)行所述用戶程序后,制止所述PLC模擬器執(zhí)行與訪問所述存儲(chǔ)部相伴的用戶程序,直至檢測(cè)到所述外部模擬器已執(zhí)行完程序?yàn)橹埂?br>
8.—種PLC模擬系統(tǒng)中的模擬方法,其特征在于, 所述PLC模擬系統(tǒng)包括以第一周期來周期性地反復(fù)進(jìn)行處理的PLC模擬器和以第二周期來周期性地反復(fù)進(jìn)行處理的外部模擬器,所述PLC模擬器包括存儲(chǔ)部,該存儲(chǔ)部用于保存用來執(zhí)行程序的數(shù)據(jù),所述PLC模擬器以及所述外部模擬器能夠訪問該存儲(chǔ)部; 所述模擬方法包括如下步驟: 所述PLC模擬器執(zhí)行與對(duì)所述存儲(chǔ)部的數(shù)據(jù)輸入輸出處理相伴的程序, 所述外部模擬器執(zhí)行與對(duì)所述存儲(chǔ)部的數(shù)據(jù)輸入輸出處理相伴的程序, 所述PLC模擬器和所述外部模擬器中的至少一方檢測(cè)另一方已執(zhí)行完程序, 所述PLC模擬器和所述外部模擬器中的至少一方,在執(zhí)行完程序后制止執(zhí)行與訪問所述存儲(chǔ)部相伴的程序,直至檢測(cè)到對(duì)方已執(zhí)行完程序?yàn)橹埂?br>
【文檔編號(hào)】G05B19/05GK104169819SQ201380013097
【公開日】2014年11月26日 申請(qǐng)日期:2013年2月20日 優(yōu)先權(quán)日:2012年3月15日
【發(fā)明者】成谷文明, 大谷拓, 阪口泰規(guī) 申請(qǐng)人:歐姆龍株式會(huì)社