專利名稱::可編程控制器的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及可編程控制器,尤其涉及處于從屬關(guān)系的系統(tǒng)控制。常規(guī)可編程控制器(以下稱PC),例如日本專利公開平1-50923號公報所公開,在每個控制部件設(shè)有階段計數(shù)、邏輯演算、數(shù)據(jù)演算指令以及計時指令等,用以判斷是否已置位或者已復(fù)位該階段狀態(tài),再用該階段特別規(guī)定的每個控制部件加以控制。然而,在對某階段(上位階段)有從屬關(guān)系的系統(tǒng)階段(下位階段)加以控制的情形中,例如復(fù)位該上位階段時,也復(fù)位該下位階段,因此須有各自的對下位階段復(fù)位的指令。由于下位階段號碼的無規(guī)則性,呈離散狀態(tài)且數(shù)目也很多,因此,在記述指令時容易產(chǎn)生錯誤。并且存在單純看程序無法辨別其從屬關(guān)系的問題。本發(fā)明是為解決先有技術(shù)缺點(diǎn)而提出的,其目的在于提供一種可以簡單產(chǎn)生對下位階段的控制命令,亦可簡單地把握其從屬關(guān)系,并且可簡單地實現(xiàn)多層結(jié)構(gòu)的PC。本發(fā)明包括有可分別存儲各階段以及宏模塊狀態(tài)數(shù)據(jù)的階段表;存儲輸入輸出數(shù)據(jù)的I/0表;存儲階段用主復(fù)位標(biāo)志的寄存器;存儲演算結(jié)果的結(jié)果寄存器;存儲用戶程序的程序存儲部;分析、執(zhí)行用戶程序的演算控制部。上述程序存儲部是存儲上位層程序以及第1下位層的宏模塊程序,該上位層程序至少含有以下所述(A)以及(B)的各指令,該第1下位層的宏模塊程序含有以下所述(C),(D)以及(E)。(A)指令包括階段指令SG及各種指令組,其中階段指令SG記載階段號碼,并且求出與階段用主復(fù)位標(biāo)志的反轉(zhuǎn)信號相當(dāng)?shù)碾A段狀態(tài)的邏輯“與”;各種指令組記載于各階段指令SG之后,當(dāng)相應(yīng)的階段狀態(tài)置位時,就執(zhí)行其程序。(B)為宏階段指令MSG,記載有階段號碼以及宏模塊號碼,并且求出將階段用主復(fù)位標(biāo)志的反轉(zhuǎn)信號與該階段狀態(tài)的邏輯“與”,將該求出結(jié)果,設(shè)定在該階段狀態(tài),同時亦設(shè)定宏模塊的狀態(tài)。(C)為宏標(biāo)志指令MLBL,記載在模塊程序的開始部分,當(dāng)置位該宏模塊狀態(tài)時,除復(fù)位階段用主復(fù)位標(biāo)志外,同時亦設(shè)定其后面記載的階段指令SG的狀態(tài)。(D)為宏結(jié)束指令MEND,記載在宏模塊程序最后部分,當(dāng)置位該結(jié)果寄存器時,也復(fù)位該宏模塊的狀態(tài)。(E)為上述(A)的指令組,記載在上述宏模塊指令MLBL與宏結(jié)束指令MEND之間。另,本發(fā)明其他形式的PC中,第1下位層宏模塊程序含有上述(B)的程序,第2下位層宏模塊的程序為含有上述(C)、(D)以及(E)的程序。利用上述第1下位層宏模塊的程序,可以控制第3宏模塊的狀態(tài)。亦就是可獲得由第1下位層宏模塊所控制的第2下位層的宏模塊。因此,程序具有三層結(jié)構(gòu)。并且,本發(fā)明的其他形式的PC與第2下位層的宏模塊的程序內(nèi)容相同,把多個下位層的宏模塊程序存儲在程序存儲部,以形成任意層的多層結(jié)構(gòu),該多個下位層由相對為上位層的程序?qū)嵤┢渥陨淼臓顟B(tài)控制。上述PC第1下位層的宏模塊的程式中宏模塊狀態(tài)受上位層的程序所控制,且利用第1下位層的宏模塊狀態(tài),可以控制階段用主復(fù)位標(biāo)志。例如利用設(shè)定該宏模塊的狀態(tài),可復(fù)位該宏模塊的階段用主復(fù)位標(biāo)志,并且可演算控制該寄模塊程序。該上位層與第1下位層宏模塊程序的關(guān)系,如同第1下位層宏模塊程序與第2下位層宏模塊程序的關(guān)系??扇我鈽?gòu)成該關(guān)系,并且可容易地構(gòu)成多層結(jié)構(gòu)。又,本發(fā)明其他形式的PC是在各個層的程序中設(shè)置多個宏階段指令MSG,利用該MSG控制其下位層的宏模塊的程序,從而本發(fā)明又可把下位層宏模塊的程序當(dāng)作子例程來調(diào)用。以上所述的本發(fā)明是由多層結(jié)構(gòu)構(gòu)成,其下位層是利用階段指令、階段用主復(fù)位標(biāo)志,宏階段指令,宏標(biāo)志指令以及宏結(jié)束指令等用于控制宏模塊單元;并且按照該上位層的宏階段指令來控制該上位層,故可簡單地實施多層結(jié)構(gòu),其多層結(jié)構(gòu)關(guān)系亦容易把握。圖1為本發(fā)明一實施例PC硬件構(gòu)成方塊圖,圖2為其動作流程圖。圖3為用戶程序的部分圖,該用戶程序存儲在圖1中的用戶程序存儲部,圖4的流程圖用于表示圖3程序的動作,圖5為執(zhí)行圖3用戶程序時,其各寄存器的狀態(tài),圖6以及圖7流程圖表示本發(fā)明其他實施例。圖1為說明按照本發(fā)明實施例構(gòu)成的PC的方框圖。在圖中,10是用作演算處理的演算控制部,12為程序計數(shù)器,它對演算控制部10的指令進(jìn)行計數(shù)。14為程序存儲部,用于存儲用戶程序,并可利用程序計數(shù)器12的計數(shù)值,將指定地址的程序讀入演算控制部10。16為存儲I/O狀態(tài)的I/O表,用于存儲輸入數(shù)據(jù)iO,i1......以及輸出數(shù)據(jù)Q1,Q2。18為存儲內(nèi)部中繼狀態(tài)(Relaystatus)的內(nèi)部中繼表,用于存儲例如暫時性數(shù)據(jù)等。20為階段表(Stagetable),用于存儲各階段(Stage)以及各宏模塊的狀態(tài)。22為存儲各種數(shù)據(jù)的寄存器。24為RR寄存器,用于暫時存儲演算控制部10的演算結(jié)果。26為1位寄存器,用于存儲階段用主復(fù)位標(biāo)志。28為輸入端口,用于將輸入的數(shù)據(jù)經(jīng)由演算控制部10存儲在I/O表16。30為輸出端口,用于將I/O表16的輸出數(shù)據(jù)經(jīng)由演算控制部10輸出該數(shù)據(jù)。圖2為圖1的PC動作的流程圖。對演算控制部10處理進(jìn)行初始設(shè)置,該初始設(shè)置用于復(fù)位階段用主復(fù)位標(biāo)志(以下簡稱SGRST),然后處理輸入傳輸。輸入傳輸?shù)奶幚硎禽斎肽K(未在圖上表示)的輸入數(shù)據(jù)經(jīng)由I/O端口28輸入到I/O表16,全部輸入數(shù)據(jù)輸入在I/O表16中。其次,演算控制部10按次序從程序存儲部14讀出由程序計數(shù)器12所指定地址的程序,并作分析并且依據(jù)該分析結(jié)果進(jìn)行各種演算處理。依據(jù)例如I/O表16的輸入數(shù)據(jù)或數(shù)據(jù)寄存器22的數(shù)據(jù),作演算處理,再將該演算結(jié)果存儲在I/O表16或內(nèi)部中繼表18。完成全部用戶程序演算處理后,演算控制部10接著處理輸出傳送。輸出傳輸是將存儲在I/O表16的輸出數(shù)據(jù)經(jīng)由輸出端口30,輸入至輸出模塊(圖上未表示)。反復(fù)處理上述的輸入傳輸、命令執(zhí)行以及輸出傳輸,直到出現(xiàn)結(jié)束指令。有關(guān)上述演算執(zhí)行的程序分析以及演算處理要對各種程序加以處理。以下將說明本發(fā)明的特殊程序。(A)階段指令SG,iSG例SGS10求出SGRST的反轉(zhuǎn)信號與相應(yīng)階段狀態(tài)ST的邏輯“與”,求出結(jié)果設(shè)置在該狀態(tài)ST上。本例就是設(shè)定在階段S10的狀態(tài)ST上。iSG命令,是將相當(dāng)?shù)碾A段狀態(tài)ST在圖2中的初始設(shè)定時,預(yù)先設(shè)置為[1],在執(zhí)行指令時與SG動作相同。(B)宏階段指令MSG例MSGS11M100(1)求出SGRST的反轉(zhuǎn)信號與相應(yīng)階段狀態(tài)ST的邏輯“與”,用該求出結(jié)果設(shè)置狀態(tài)ST。本例為設(shè)置階段S11的狀態(tài)ST。(2)把所設(shè)置的狀態(tài)ST內(nèi)容設(shè)置在宏模塊的狀態(tài)ST上。本例是將階段S11的狀態(tài)ST內(nèi)容設(shè)置在宏模志塊M100的狀態(tài)ST。(C)宏標(biāo)記指令MLBL例MLBLM100相應(yīng)宏模塊狀態(tài)ST設(shè)置為[1]時,復(fù)位SGRST,并且其次所述的階段指令SG的階段狀態(tài)ST設(shè)為[1]。另,相應(yīng)宏模塊的狀態(tài)ST被復(fù)位時,SGRST設(shè)為[1]。(D)宏結(jié)束指令MENDRR24設(shè)為[1]時,復(fù)位相應(yīng)宏模塊狀態(tài)ST。圖3列出存儲在程序存儲部14的用戶程序一部分,圖4為用戶程序概念圖示。(1)iSGS10;利用iSG指令,初始將階段S10狀態(tài)ST設(shè)為[1],求出SGRST的反轉(zhuǎn)邏輯與邏輯“與”,把該求出結(jié)果設(shè)在S10的狀態(tài)ST上。加電后的初始設(shè)定時,SGRST被復(fù)位,因此,將S10狀態(tài)ST設(shè)為[1]。(2)LDi0;利用LD指令,將I/O表16的輸入數(shù)據(jù)存儲在RR24。(3)JMPS11;即在JMP指令,RR24被復(fù)位時,是不作任何處理的。RR24中設(shè)定[1]時,復(fù)位JMP指令所屬的階段狀態(tài)ST(指S10的狀態(tài)),并且將JMP指令的操作數(shù)的階段狀態(tài)ST(指S11的狀態(tài))置位為[1]。上述處理,假使i0設(shè)為[1]時,RR24也會被設(shè)在[1],因此JMP指令為有效,并且階段S10狀態(tài)被復(fù)位,而階段S11的狀態(tài)ST也被置為[1]。(4)MSGS11M100階段S11的狀態(tài)ST被設(shè)為[1],又SGRT亦被復(fù)位,因此,SGRST的反轉(zhuǎn)信號與階段S11之狀態(tài)ST邏輯“與”就變成[1],結(jié)果階段S11的狀態(tài)ST為被設(shè)為[1]。而且,依據(jù)階段S11的狀態(tài)ST的內(nèi)容[1],宏模塊M100的狀態(tài)ST設(shè)為[1]。而,SGRST的反轉(zhuǎn)信號與階段S11的階段ST的邏輯“與”為時,階段S11的狀態(tài)ST被置位,更且,宏模塊M100的狀態(tài)ST亦被置位。以下執(zhí)行順序程序,并省略說明后面程序部分的處理,下面將說明圖3右側(cè)的宏模塊程序。(5)MLBLM100宏模塊M100的狀態(tài)ST在[1]之間變化,因此置位SGRST,記錄在下一地址的階段S100的狀態(tài)ST為置成[1]。這樣就可以處理階段S100以下的部分,該處理方式與上述情況相同,省略其說明。宏模塊M100的狀態(tài)ST被復(fù)位時,SGRST也被置位。SGRST被置位時,SG100以下的狀態(tài)ST亦被置位,因此,記錄在下一地址的階段命令SG100以下的命令不被執(zhí)行。本例是階段S100~階段S102的階段命令不被執(zhí)行。(6)MENDRR24置位為[1]時,復(fù)位宏模塊的狀態(tài)ST。這樣便完成宏模塊的處理。本例在執(zhí)行其前面的指令[LDi4]時,置位I/O表16的輸入數(shù)據(jù)i4為[1],在該狀態(tài)下復(fù)位宏模塊的狀態(tài)ST。圖5為執(zhí)行圖3程序時輸入數(shù)據(jù)及各部數(shù)據(jù),下面將詳細(xì)說明各掃描內(nèi)容。(1)掃描(1);依據(jù)iSGS10的指令,在初始設(shè)置即將階段S10的狀態(tài)ST預(yù)置為為[1]。此時尚未輸入數(shù)據(jù)。(2)掃描(2)當(dāng)I/O表16的輸入數(shù)據(jù)i0置位為[1]時,執(zhí)行[JMPS11]指令,狀態(tài)S10的狀態(tài)ST為被復(fù)位,階段S11的狀態(tài)ST亦被置位為[1],因此,可處理[MSGS11M100]的指令。利用該處理,可置位宏模塊M100的狀態(tài)ST為[1]。又,依據(jù)[MLBLM100]指令,置位階段S100的狀態(tài)ST為[1]。(3)掃描(3)在掃描時,階段S11以及S100的狀態(tài)ST置位為[1],又宏模塊M100的狀態(tài)ST仍然置位為[1]。該狀態(tài)下,若I/O表16的輸入數(shù)據(jù)i2置位為[1]時,依下述方式處理。階段S11的狀態(tài)ST以及宏模塊M100的狀態(tài)ST仍然置位為[1],而,i2置位為[1],利用[LDi2],把RR24設(shè)置成[1]。利用[JMPS101]指令,復(fù)位階段S100的狀態(tài)ST,亦置位階段S101的狀態(tài)ST為[1]。依據(jù)[OUTQ11]指令,RR24的內(nèi)容為輸出至內(nèi)部中繼表18的輸出數(shù)據(jù)Q11,該Q11被置位為[1]。(4)掃描(4)復(fù)位I/O表16的輸入數(shù)據(jù)i2,當(dāng)i3設(shè)為[1]時,階段S11的狀態(tài)ST仍在置位狀態(tài),又宏模塊M100狀態(tài)ST亦仍在置位狀態(tài),又宏模塊M100狀態(tài)ST亦仍在置位狀態(tài),執(zhí)行[LDi2]指令,以復(fù)位RR24。又,i3置位為[1]。故利用[LDi3]指令,置RR24為[1],利用[JMPS102]復(fù)位階段S101的狀態(tài)ST,亦設(shè)置階段S102的狀態(tài)ST為[1]。(5)掃描(5)利用SG100[1]間的變化,以復(fù)位RR24,利用[OUTQ11]指令復(fù)位Q11。(6)掃描(6)當(dāng)設(shè)定輸入數(shù)據(jù)i4時,利用[LDi4]以置位RR24為[1]。依上述方式執(zhí)行[MEND]指令,以復(fù)位該宏模塊M100的狀態(tài)ST。(7)掃描(7)置位階段S11的狀態(tài)為[1]時,利用上述掃描,置位宏模塊M100的狀態(tài)ST為,因此,利用[LDNM100]指令置位RR24為[1],利用[JMPS12]命令復(fù)位階段S11的狀態(tài)ST,因此階段S12的狀態(tài)被置為[1]。本掃描的[MLBLM100]指令的執(zhí)行,使M100的狀態(tài)[1]之間變化,使SGRST被置位為[1]。因此,無法進(jìn)行宏模塊的階段S100以下的各階段的演算處理。利用上位層宏模塊[MSGS11M100]指令等,置位或復(fù)位宏模塊M100的狀態(tài)ST,利用上述復(fù)位或置位STRST,以控制宏模塊的起動或停止。上述之實施例為2層結(jié)構(gòu),本實施例適用于多層結(jié)構(gòu)。圖6為本發(fā)明其他實施例的概念圖。本實施例由(n+1)層結(jié)構(gòu)形成,例如利用最上位的[MSGS11M100]指令,置位宏模塊M100的狀態(tài)ST為[1],依據(jù)該設(shè)定,執(zhí)行較下層的宏模塊M100的演算動作,又,復(fù)位宏模塊M100的狀態(tài)ST,依據(jù)該設(shè)定禁止宏模塊M100的演算動作。在該宏模塊M100中,利用[MSGS103M200]指令,置位宏模塊M200的狀態(tài)ST為[1],依據(jù)該設(shè)定,執(zhí)行較下層的宏模塊M200的演算動作,又,復(fù)位宏模塊M200的狀態(tài)ST,依據(jù)該復(fù)位,禁止宏模塊M200的演算動作。依上述內(nèi)容,相對地位于上位層的宏模塊可以控制位于下位層的宏模塊的演算動作,在圖6實例中,復(fù)位階段S11的狀態(tài)ST時,可復(fù)位宏模塊M100的狀態(tài)ST,該情況是下層宏模塊的狀態(tài)為全部被復(fù)位,因此無法作演算處理。圖7為本發(fā)明其他實施例的概念圖。在該實施例中,宏模塊M100可當(dāng)作子例程來調(diào)用。當(dāng)階段S11的狀態(tài)置位為[1]時,亦可以置位宏模塊M100的狀態(tài)ST為[1],這樣就可以作宏模塊M100的演算處理。又,相反地,當(dāng)復(fù)位階段S11的狀態(tài)ST時,亦可復(fù)位宏模塊M100的狀態(tài)ST,這樣便可禁止宏模塊M100的演算處理,該處理方式亦適用于階段S13。權(quán)利要求1.一種可編程控制器包括有用于分別存儲各階段以及宏模塊的狀態(tài)數(shù)據(jù)的階段表,用于存儲輸入輸出數(shù)據(jù)的I/0表,存儲階段用主復(fù)位標(biāo)志的寄存器,存儲演算結(jié)果的結(jié)果寄存器,存儲用戶程序的程序存儲部,分析、執(zhí)行用戶程序的演算控制部,上述程序存儲部存儲上位層程序以及第1下位層的宏模塊程序,該上位層程序至少含有下列(A)以及(B)的各指令,該第1下位層宏模塊程序至少含有下列(C),(D)以及(E),(A)階段指令SG該階段指令SG記載階段號碼,并且求出階段用主復(fù)位標(biāo)志的反轉(zhuǎn)信號與相應(yīng)階段狀態(tài)的邏輯“與”,各種指令組該各種指令組記載于各階段指令SG之后,當(dāng)相應(yīng)階段狀態(tài)被置位時,即執(zhí)行該程序,(B)宏階段指令MSG該宏模階段指令MSG記載階段號碼以及宏模塊號碼,并且求出階段主復(fù)位標(biāo)志的反轉(zhuǎn)信號與該階段狀態(tài)的邏輯“與”,用該結(jié)果置位該階段狀態(tài),同時,亦置位宏模塊的狀態(tài),(C)宏標(biāo)志指令MLBL,該宏模標(biāo)志指令MLBL記載在宏模塊程序的開始,當(dāng)該宏模塊的狀態(tài)被置位時,復(fù)位階段用主復(fù)位標(biāo)志,并且,亦置位下列記載的階段指令SG的狀態(tài),(D)宏結(jié)束指令MEND宏結(jié)束指令MEND記載在宏模塊程序的最后,當(dāng)結(jié)果寄存器被置位時,亦復(fù)位該宏模塊狀態(tài),(E)上述(A)的指令組該指令組記載在上述宏模標(biāo)志指令MLBL與宏結(jié)束指令MEND之間。2.如權(quán)利要求1所述可編程控制器,其特征在于上述第1下位層的宏模塊程序為含有上述(B)的程序,因此亦含有上述(C)、(D)以及(E)的各程序,利用上述第1下位層宏模塊程序,把第2下位層的宏模塊程序存儲在程序存儲部,而該第2下位層宏模塊程序系本身的宏模塊狀態(tài)受到控制。3.如權(quán)利要求2所述可編程控制器,其特征在于具有與上述第2下位層程序相同內(nèi)容,把多個下位層的宏模塊程序存儲在上述程序存儲部,該多個下位層宏模塊程序系由相對地成為上位層的程序?qū)嵤┢浔旧淼臓顟B(tài)控制。4.如權(quán)利要求1所述可編程控制器,其特征在于所述上位層或下位層的宏模塊程序含有上述(B)的多個程序。5.如權(quán)利要求2所述可編程控制器,其特征在于所述上位層或下位層的宏模塊程序包含上述(B)的多個程序。全文摘要一種可編程控制器是用階段指令、階段用主復(fù)位標(biāo)志、宏階段指令、宏標(biāo)志指令以及宏結(jié)束指令等以宏模塊為單位控制下位層;并且,根據(jù)上位層的宏階段指令控制該宏模塊。這種控制器可簡單地實施多層結(jié)構(gòu),其多層結(jié)構(gòu)的關(guān)系得以容易掌握。文檔編號G05B19/05GK1061478SQ91102519公開日1992年5月27日申請日期1991年4月9日優(yōu)先權(quán)日1990年11月6日發(fā)明者河邊勝則,豐岡克二申請人:光洋電子工業(yè)株式會社