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