專利名稱:適用于實(shí)現(xiàn)順序控制和伺服控制的計(jì)算機(jī)系統(tǒng)的制作方法
本發(fā)明涉及一種用于實(shí)現(xiàn)順序控制和伺服控制的計(jì)算機(jī)系統(tǒng)。
已經(jīng)用可編程控制器(PC)或計(jì)算機(jī)化數(shù)字控制器(CNC)實(shí)現(xiàn)了順序控制和伺服控制。然而,這些控制系統(tǒng)在程序設(shè)計(jì)時(shí)牽涉到某些問題。例如,在用PC的情況下,因?yàn)槌绦蚴怯锰菪螆D來編制的,這就存在著一個(gè)巨大的缺點(diǎn),即不能按照與通用計(jì)算機(jī)同樣的方法來編制該程序。更具體地說,當(dāng)使用梯形圖來編制程序時(shí),要象順序線路那樣的流程來編制程序是困難的,在順序線路中其結(jié)果隨線路的過去或先前狀態(tài)而有所不同。即使能編制這樣的程序,象計(jì)算機(jī)程序那樣,包括有許多內(nèi)容的復(fù)雜程序的編制會碰到多得多的困難。此外,為自動地編制程序段的輔助裝置以及編程技術(shù)比在高級通用計(jì)算機(jī)中的那些要低劣得多,所以這樣的一些裝置和技術(shù)不能用于PC。
由于PC的控制速度受到循環(huán)時(shí)間的限制,所以不能獲得低于幾毫秒的高響應(yīng)速度。還有,因?yàn)镻C的輸入/輸出接口數(shù)還受到限制,在許多場合下,不可能輸入和輸出數(shù)字的數(shù)據(jù)。另外,以PC來判斷包括算術(shù)運(yùn)算的條件是有困難的。結(jié)果,用PC去直接控制順序系統(tǒng)或伺服系統(tǒng)存在著困難。
在CNC場合下,因?yàn)樗昧擞?jì)算機(jī),所以系統(tǒng)的硬件和軟件都變得很復(fù)雜。基于這一原因,對于不熟悉軟件的機(jī)械工程師或安裝工程師來說,編制程序或變動順序是有困難的。為了避免由使用系統(tǒng)語言所引起的困難,雖然已經(jīng)提出在系統(tǒng)中利用專門適用于順序控制的宏指令組,但是現(xiàn)有技術(shù)的宏指令組都是解釋程序,以致存在著順序的執(zhí)行速度低和性能受到限制這樣一些問題。
因此,本發(fā)明的一個(gè)目的是要提供一種新穎的計(jì)算機(jī)系統(tǒng),這種系統(tǒng)能夠以諸如BASIC和FORTRAN那樣的語言,而不是常規(guī)的系統(tǒng)語言來實(shí)現(xiàn)順序控制或伺服控制。
本發(fā)明的另一個(gè)目的是要提供一種能夠減少標(biāo)記、定時(shí)器等的數(shù)目,從而使程序簡化的、新穎的計(jì)算機(jī)系統(tǒng)。
根據(jù)本發(fā)明,提供了一種用于實(shí)現(xiàn)順序控制和伺服控制的計(jì)算機(jī)系統(tǒng),此系統(tǒng)包括第一和第二程序,從第一程序發(fā)出一個(gè)打開指令以啟動第二程序的并行處理的裝置;從所述第一程序發(fā)出一個(gè)關(guān)閉指令以終止第一或第二程序,以及發(fā)出一暫停指令以使得在一限定的時(shí)間間隔內(nèi)停止執(zhí)行第一程序的裝置。打開指令、關(guān)閉指令和暫停指令用作并行處理指令。
根據(jù)本發(fā)明的一個(gè)實(shí)施方案,提供了一種用以執(zhí)行包括打開指令、關(guān)閉指令和暫停指令三種型式并行處理指令的計(jì)算機(jī)系統(tǒng),此計(jì)算機(jī)系統(tǒng)包括一個(gè)中央處理單元(CPU);一個(gè)由一計(jì)數(shù)器組成的定時(shí)器,此計(jì)數(shù)器在每一預(yù)定時(shí)間被一限定的計(jì)數(shù)所更新,它還被連接到該CPU并借此讀出它的內(nèi)容;程序存儲裝置,以存儲由CPU所執(zhí)行的順序控制和伺服控制的程序;一個(gè)程序計(jì)數(shù)器,它連接到CPU和程序存儲裝置,以指定程序存儲裝置的一個(gè)地址,在此地址處存儲有一條下一步將要執(zhí)行的指令,根據(jù)CPU所執(zhí)行指令的類型去更新此程序計(jì)數(shù)器的內(nèi)容;一個(gè)地址表,它連接到CPU和程序計(jì)數(shù)器,用于寄存由打開指令和暫停指令所指定的程序地址,寄存的地址表的地址根據(jù)關(guān)閉指令被檢索和擦除;一個(gè)時(shí)間表,它連接到CPU并寫有預(yù)定開始執(zhí)行寄存于地址表內(nèi)程序的時(shí)間;一個(gè)指示字,它連接在地址表和時(shí)間表之間,并且連接到CPU,用以掃描地址表和時(shí)間表的相應(yīng)部分。
根據(jù)本發(fā)明的一個(gè)修改了的實(shí)施方案,提供了一種適用于順序控制和伺服控制的計(jì)算機(jī)系統(tǒng),它包括一個(gè)中央處理單元(CPU);一個(gè)中斷時(shí)鐘,它可在一預(yù)定的時(shí)間間隔內(nèi)把中斷加于CPU;程序存儲裝置,用以存儲由CPU執(zhí)行的順序控制和伺服控制程序;一個(gè)程序計(jì)數(shù)器,它連接到CPU和程序存儲裝置,以指定程序存儲裝置的一個(gè)地址,在此地址處存儲有一條下一步執(zhí)行的指令,根據(jù)CPU所執(zhí)行指令的類型去更新此程序計(jì)數(shù)器的內(nèi)容;許多服務(wù)電路,每一電路包括一個(gè)地址表、一個(gè)服務(wù)指示字、一個(gè)頂部指示字和一個(gè)編目指示字;一個(gè)暫停指示字,它由CPU控制,用以在初始狀態(tài)下選擇一個(gè)具有最短暫停時(shí)間的服務(wù)電路,地址表連接到程序計(jì)數(shù)器,用于寄存由打開指令和暫停指令所指定的程序地址;寄存的地址表地址根據(jù)關(guān)閉指令被檢索和擦除;服務(wù)指示字指定地址表的位置,此地址表存儲有當(dāng)前正在使用的一個(gè)程序的地址;頂部指示字指示一個(gè)打算使用并存儲在存儲表內(nèi)的程序的前導(dǎo)地址;編目指示字指示由一打開指令寫入的地址表的位置。
在附圖中圖1是表示打開指令工作情況的流程圖;
圖2和3是闡明關(guān)閉指令工作情況的流程圖;
圖4是闡明暫停指令工作情況的流程圖;
圖5和6的流程圖分別表示利用打開指令、關(guān)閉指令和暫停指令的一些實(shí)例;
圖7是表示實(shí)施本發(fā)明的一種計(jì)算機(jī)系統(tǒng)的方框圖;
圖8是表示本發(fā)明的一種變型的實(shí)施方案的方框圖。
在本發(fā)明中,對于順序控制和伺服控制,不是把系統(tǒng)語言用作為編程語言,而用象BASIC和FORTRAN那樣能容易地被不熟悉計(jì)算機(jī)系統(tǒng)軟件技術(shù)的人所使用的語言。應(yīng)該說明,如果需要,系統(tǒng)語言也可與這些語言一起使用。
當(dāng)使用這樣的一些語言時(shí),因?yàn)闄C(jī)械部分比計(jì)算機(jī)的工作速度低,當(dāng)編制程序時(shí)會引起一個(gè)問題。更詳細(xì)地說,當(dāng)程序中有著許多等待時(shí)間時(shí),在等待期間,計(jì)算機(jī)被迫執(zhí)行循環(huán),以致計(jì)算機(jī)成為空閑。為了精確地決定等待時(shí)間,必須使用許多標(biāo)記和定時(shí)器,因而使程序復(fù)雜化。
為解決這一問題而提出的利用并行處理的程序能夠通過系統(tǒng)語言來編制,但象BASIC和FORTRAN那樣的語言卻不能使用。本發(fā)明用包括打開指令、關(guān)閉指令和暫停指令三種類型的并行處理指令就能解決這一問題。
打開指令“OPEN β(打開β)”的工作情況示于圖1的流程圖中。打開指令“OPEN β”使一不同于正在執(zhí)行的程序α的程序β開始執(zhí)行。在執(zhí)行這一指令后,程序α和β同時(shí)并行執(zhí)行。盡管是在順序控制下,但是許多序列在同時(shí)被并行執(zhí)行,而且在此場合利用打開指令來執(zhí)行并行處理。
關(guān)閉指令“CLOSE β(關(guān)閉β)”的工作情況示于圖2和3。根據(jù)程序α,關(guān)閉指令強(qiáng)迫目前在并行執(zhí)行的程序β終止。在關(guān)閉指令已執(zhí)行后,程序β的停止強(qiáng)迫目前正在執(zhí)行的一條指令終止。在同一程序執(zhí)行多任務(wù)之處,例如并行處理多元程序β之處,所有這些程序都被強(qiáng)迫終止。在使用“CLOSE β”之處,處理完成和處理終止的監(jiān)控是通過一專為此目的而用的程序來實(shí)現(xiàn)的。關(guān)閉指令也可用來終止自己的程序。
暫停指令“PAUSE t(暫停t)”的工作情況示于圖4。在執(zhí)行這一指令時(shí),程序α的執(zhí)行被中斷一個(gè)由參量t決定的、毫秒量級的時(shí)間間隔,后恢復(fù)順序的處理。假定參量t為“35”,則在執(zhí)行進(jìn)程r后,程序α被中斷執(zhí)行35毫秒,然后程序α恢復(fù)執(zhí)行,從而去執(zhí)行過程δ。在執(zhí)行暫停指令“PAUSE t”期間,其它程序還是沒有中斷地被繼續(xù)執(zhí)行。借助于中斷指令“PAUSE t”,可以提供等待完成機(jī)械操作和輸入/輸出所需時(shí)間,而不需設(shè)置專門的定時(shí)器。與利用循環(huán)來造成處理等待的情況不同,在中斷期間,不需使其他序列的處理等待。
參閱圖5所示的流程圖,敘述一種利用三種并行處理指令來實(shí)現(xiàn)順序控制和伺服控制的方法,這三種并行處理指令包括上面所述的打開指令、關(guān)閉指令和暫停指令。
一個(gè)示于流程圖中的子程序“ALARM(報(bào)警)”通常用來檢測程序“SERVO(伺服)”中的故障標(biāo)記,當(dāng)此程序中發(fā)生故障時(shí),就能提供一個(gè)信息。當(dāng)在程序“SERVO”中發(fā)生故障時(shí),根據(jù)故障的類型,把排列“ERROR(故障)”中的一個(gè)元素的值設(shè)置成“1”。要顯示的排列“ERROR”中的元素的各自的故障信息被存儲在排列“TABLE(表格)”的相應(yīng)元素內(nèi)。用一在主程序內(nèi)的打開指令“OPEN ALARM(打開報(bào)警)”來啟動子程序“ALARM”,并與程序“伺服”并行執(zhí)行。啟動后,在SI步處變量R1被設(shè)置為“0”。此后,在S2步處作一判別,看排列“ERROR”內(nèi)的一個(gè)元素“ERROR(R1)”是否已被置“1”。當(dāng)此判別的結(jié)果為“否”時(shí),在S3步處,為了重復(fù)同樣的操作以校驗(yàn)排列“ERROR”中的下一個(gè)元素,變量R1遞增1。如果64個(gè)排列“ERROR”的所有元素都不是“1”,即意味著沒有發(fā)現(xiàn)故障,則在S5步處,按照暫停指令“PAUSE50(暫停50)”等待50毫秒后,同樣的過程被重復(fù)。
在S2步處,如果判別出故障(R1)已被置“1”,則在S6步處,在排列“TABLE(表格)”中相應(yīng)于在排列“ERROR”中已被變換成“1”的一個(gè)元素,根據(jù)指令“MESSAGE=TABLE(R1)”,去替代變量“MESSAGE”。于是在S7步處,通過打開顯示指令“OPEN DISPLAY”去啟動一顯示程序,以顯示存儲在排列“VARIABLE(變量)”中的一個(gè)信息。通過關(guān)閉指令“CLOSE SERVO(關(guān)閉伺服)”,在S8步處使已發(fā)生故障的程序“SERVO”被終止。利用包括打開指令、關(guān)閉指令和暫停指令的并行處理程序,則在時(shí)間間隔為50毫秒內(nèi)的故障校驗(yàn)、故障顯示以及已發(fā)生故障程序的終止能夠不依賴于程序“SERVO”而被實(shí)現(xiàn)。
現(xiàn)通過參考圖6所示流程圖來描述控制伺服系統(tǒng)和順序系統(tǒng)的一個(gè)程序的實(shí)例。
在此程序中,在S10和S11步處,一個(gè)啟動信號經(jīng)常是在時(shí)間間隔30毫秒被校驗(yàn)。當(dāng)在S10步處檢測到一個(gè)啟動信號時(shí),在S12步處指定伺服系統(tǒng)的速度為每分鐘200轉(zhuǎn)。在S13和S14步處,每5毫秒打開伺服程序一次。在S15和S16步處,判別停止信號是否已輸入以及限位開關(guān)是ON(接通)還是OFF(切斷)。如果沒有停止信號且限位開關(guān)是切斷的,則程序返回到S13步,從而重復(fù)S13、S14、S15和S16步。如果檢測到停止信號或限位開關(guān)是接通的,則在S20步處,指定伺服系統(tǒng)的速度為零。此后,在S21和S22處,每5毫秒打開伺服程序一次,于是在S23處,判別電源是切斷還是接通。
如上所述,象BASIC和FORTRAN這樣一類的語言,通過加上打開指令、關(guān)閉指令和暫停指令,可以很容易地實(shí)現(xiàn)順序控制和伺服控制?,F(xiàn)在將參照圖7所示的方框圖來描述引入這些并行處理指令的一種計(jì)算機(jī)系統(tǒng)。
中央處理單元(CPU)2連接到程序計(jì)數(shù)器3和程序存儲裝置4。程序計(jì)數(shù)器3指定一個(gè)存儲著下一步即將執(zhí)行的程序的程序存儲器4的地址,而此CPU2處理一個(gè)由程序計(jì)數(shù)器3的內(nèi)容指定的、在程序存儲器中的地址,根據(jù)執(zhí)行指令的類型更新程序計(jì)數(shù)器的內(nèi)容。更詳細(xì)地說,在用通常的指令情況下,此程序計(jì)數(shù)器的工作情況與通常的通用計(jì)算機(jī)中的程序計(jì)數(shù)器的工作方式相同。對于打開指令,程序計(jì)數(shù)器的內(nèi)容被更新成在打開指令后的一條指令的地址。為了終止一個(gè)包含執(zhí)行的關(guān)閉指令的程序,程序計(jì)數(shù)器的內(nèi)容被更新成一個(gè)從地址表5選出的地址。在其它情況下此內(nèi)容被更新成在關(guān)閉指令后的一條指令的地址。在暫停指令的情況下,此內(nèi)容被更新成選自地址表5的一個(gè)地址。程序存儲裝置4存儲要執(zhí)行的順序控制、伺服控制或類似控制的程序。地址表5存儲由一打開指令和一暫停指令指定的程序地址。更具體地說,(1)在打開指令的情況下,把由一變量指定的程序地址,寫入通過掃描找出的表的閑置或空位里。在掃描時(shí)間內(nèi)利用指示字6指定表的空位部分。(2)在暫停指令情況下,把跟隨在此暫停指令后的一條指令的地址寫入或寄存在地址表中。通過關(guān)閉指令檢索和擦除寫入的地址。(3)在關(guān)閉指令場合下,通過掃描來查找和擦除由一變量指定的程序地址。此寄存的地址在被關(guān)閉指令或暫停指令參照后就被擦除。(4)在關(guān)閉指令的場合下,執(zhí)行完第(3)點(diǎn)的操作后,以及在暫停指令情況下執(zhí)行完第(2)點(diǎn)操作后,掃描的結(jié)果使得由指示字6指定的時(shí)間表7的內(nèi)容轉(zhuǎn)移到程序計(jì)數(shù)器3中,而由指示字6指定的地址表的內(nèi)容被擦除。
定時(shí)器1連接到CPU2,并且它是由一計(jì)數(shù)器構(gòu)成的,此計(jì)數(shù)器通過在每一限定的時(shí)間間隔處的一個(gè)限定的計(jì)數(shù)所更新。通過CPU2可讀出此計(jì)數(shù)器的內(nèi)容,讀出的內(nèi)容相當(dāng)于讀時(shí)的計(jì)數(shù)。
在掃描地址表5和時(shí)間表7時(shí),利用了指示字6,表5和表7有著一一對應(yīng)的關(guān)系。因此,指示字6為兩個(gè)表所公用,并指定兩個(gè)表的相應(yīng)部分。此外,指示字6用以讀寫兩表。
時(shí)間表7是在寄存在地址表內(nèi)的程序開始執(zhí)行時(shí)被寫的。被寫的位置由指示字6指定,并對應(yīng)于地址表寄存程序的部分。更具體地說,(1)在打開指令情況下,定時(shí)器1的讀數(shù)對應(yīng)于一預(yù)定時(shí)間,在此時(shí)間開始執(zhí)行。(2)在暫停指令情況下,定時(shí)器的時(shí)間和由暫停指令變量指定的暫停時(shí)間之和成為預(yù)定時(shí)間,在此時(shí)間,開始執(zhí)行。
根據(jù)本發(fā)明,下面將敘述圖7中所示的計(jì)算機(jī)系統(tǒng)執(zhí)行通常的指令、打開指令、關(guān)閉指令和暫停指令的方法。
在初始狀態(tài)下,一種要執(zhí)行的順序控制、伺服控制或類似的控制被存儲于程序存儲器4內(nèi),而程序計(jì)數(shù)器3保存有一程序的起始執(zhí)行地址。定時(shí)器1用信號“O”來復(fù)位。在指示字6被設(shè)定在指示著地址表5和時(shí)間表7的前端或頂部地址時(shí),地址表5和時(shí)間表7是空著的CPU2在存于程序計(jì)數(shù)器內(nèi)的地址處重復(fù)取出和執(zhí)行指令的操作。如果已寫入的指令是通常的指令而不是打開指令、關(guān)閉指令和暫停指令,則此指令按著與通常計(jì)算機(jī)內(nèi)同樣的方式來執(zhí)行,去更新程序計(jì)數(shù)器3的內(nèi)容。如果已寫入的指令是一打開指令,則時(shí)間表7首先被指示字6所掃描,以找出一個(gè)地址的空位部分。然后,由CPU2把定時(shí)器1的值寫入時(shí)間表7的空位部分,把要打開的程序的起始或前端地址寫入與地址表5相同的部分。此后,程序計(jì)數(shù)器3的內(nèi)容被用來更新跟隨在打開指令后面的一條指令的地址,用以開始執(zhí)行下一條程序。
當(dāng)已寫入的指令是一條關(guān)閉指令,用以終止包含有此關(guān)閉指令的一個(gè)程序時(shí),定時(shí)器1的值被寫入CPU2中,而指示字6掃描時(shí)間表7,用以檢索一個(gè)小于定時(shí)器1的值。如果找不到這樣一個(gè)值,則定時(shí)器1的值被再次寫入,以重復(fù)同一操作。當(dāng)寄存的值小于定時(shí)器1的值時(shí),把由指示字6所指明的地址表5的內(nèi)容轉(zhuǎn)移到程序計(jì)數(shù)器3中,以便擦除掉由指示字6指出的時(shí)間表7和地址表5的內(nèi)容,從而開始執(zhí)行一條由程序計(jì)數(shù)據(jù)器3的內(nèi)容所示的指令。照此方式,原來的程序被終止,而開始了其它的程序。
在已寫入的是關(guān)閉指令但不象上述那樣的關(guān)閉指令的場合,指示字6掃描地址表5,以擦除要關(guān)閉的一個(gè)程序以及在同一位置處時(shí)間表7的內(nèi)容,從而由一關(guān)閉指令引起一程序的終止。
在已寫入的指令是一暫停指令的情況下,指示字6造成對時(shí)間表7的掃描,以從它那里尋找一個(gè)空閑部分,然后CPU2取入時(shí)間表1的值,并把此值與暫停時(shí)間相加,再把其和寫入時(shí)間表7的空間部分。并且把此暫停指令后的一條指令的地址也寫入時(shí)間表5的同一位置。在此暫停期間,該程序被上述操作暫停執(zhí)行后,另一能執(zhí)行的程序被檢索。因而,CPU2取入定時(shí)器1的值,并且用指示字6掃描此時(shí)間表,以查找一個(gè)小于定時(shí)器1值的值。如果沒有這樣的值,則定時(shí)器1的值被再度讀入,以重復(fù)同樣的操作。如果寄存了一個(gè)小于定時(shí)器1值的值,則把指示字6指出的地址表5的內(nèi)容轉(zhuǎn)移到程序計(jì)數(shù)器3,把指示字6指出的時(shí)間表7和地址表5的內(nèi)容擦除,從而開始執(zhí)行程序計(jì)數(shù)器讀數(shù)所示的一條指令。照此方式,暫停了原來的程序,執(zhí)行其它的程序。
以這種方式,上述計(jì)算機(jī)系統(tǒng)不但可執(zhí)行常的指令,而且可執(zhí)行打開指令、關(guān)閉指令和暫停指令。
如上所述,打開指令、關(guān)閉指令和暫停指令能夠根據(jù)定時(shí)器1的值來執(zhí)行。如圖8所示,對各個(gè)暫停指令提供大量的服務(wù)電路9能夠有效地完成相似的操作。
如圖所示,CPU2連接到程序計(jì)數(shù)器3和程序存儲器4,而存儲在連接到程序存儲器4的程序計(jì)數(shù)器內(nèi)的一個(gè)地址的指令被讀出并供給CPU2執(zhí)行。中斷時(shí)鐘11連接到CPU2,在一限定的時(shí)間間隔處給CPU2加一中斷。此外,CPU2連接到大量的服務(wù)電路9,再連接到用來選用服務(wù)電路9中的一個(gè)電路的暫停指示字71。每一服務(wù)電路9包括一個(gè)地址表5、一個(gè)服務(wù)指示字61、一個(gè)頂部指示字62和一個(gè)編目指示字63。與一暫停時(shí)間相對應(yīng)的暫停指示字71,對這些服務(wù)電路進(jìn)行選擇。在一限定的時(shí)間間隔處中斷時(shí)鐘11把中斷加于CPU2。CPU2決定中斷申請的時(shí)間,并更新暫停指示字71的內(nèi)容,這樣相應(yīng)于此決定的時(shí)間,選出服務(wù)電路9中的一個(gè)電路。
服務(wù)指示字61的用途是指明地址表5中存儲著現(xiàn)在正被使用的程序的地址的位值。在初始狀態(tài)下,服務(wù)指示字61指明地址表5的前端位置。用一關(guān)閉指令或暫停指令結(jié)束現(xiàn)在正在使用的程序后,此服務(wù)指示字被更新至下一個(gè)位置。當(dāng)更新了的內(nèi)容與頂部指示字62的內(nèi)容一致時(shí),程序?qū)⒉粓?zhí)行,而服務(wù)指示字61的內(nèi)容被更新。
頂部指示字62的用途是指明地址表5中要用程序的前端地址的位置。因此,在初始狀態(tài)下,頂部指示字62指明地址表的前端位置。當(dāng)選定一個(gè)包括一頂部指示字62的服務(wù)電路9時(shí),把頂部指示字62的內(nèi)容轉(zhuǎn)移到服務(wù)指示字61。
編目指示字63的用途是指明地址表5中的,按照一打開指令和一暫停指令來寫入一條指令的位置。因此,在初始狀態(tài)下,編目指示字63指明地址表5的前端位置。在執(zhí)行完打開指令后,地址表的位置被更新成下一個(gè)位置。當(dāng)選擇一包括編目指示字63的服務(wù)電路時(shí),把編目指示字63的內(nèi)容轉(zhuǎn)移到頂部指示字62。
暫停指示字71的用途是要選擇服務(wù)電路9中的任一個(gè)。因此,在初始狀態(tài)下,它選擇一個(gè)有著最短暫停時(shí)間的底務(wù)電路。當(dāng)由中斷時(shí)鐘11加上中斷時(shí),或當(dāng)服務(wù)指示字61和頂部指示字62的內(nèi)容相一致時(shí),暫停指示字71被更新。雖然有許多更新的方法,但下面的方法是較好的。更具體地說,當(dāng)應(yīng)用一中斷時(shí),暫停指示字71的內(nèi)容被更新以選擇一個(gè)有著最短暫停時(shí)間的服務(wù)電路9。當(dāng)服務(wù)指示字61和頂部指示字62的內(nèi)容相互一致時(shí),會選擇這樣一個(gè)服務(wù)電路,此服務(wù)電路相應(yīng)的暫停時(shí)間長度僅次于已被選定的一個(gè)服務(wù)電路9的暫停時(shí)間長度。
一種利用圖8所示的計(jì)算機(jī)系統(tǒng)來執(zhí)行本發(fā)明的常規(guī)指令、打開指令、關(guān)閉指令和暫停指令的方法敘述如下。
啟動CPU2后,暫停指示字71選擇相應(yīng)于一個(gè)暫停時(shí)間的服務(wù)電路9中的一個(gè)。暫停指示字71由CPU2所設(shè)置,使相應(yīng)于一些預(yù)定的暫停時(shí)間來選擇伺服電路9,這些暫停時(shí)間是用中斷時(shí)鐘11發(fā)生的中斷時(shí)鐘脈沖來度量的。選定的服務(wù)電路9的頂部指示字62的內(nèi)容被轉(zhuǎn)移到服務(wù)指示字61,而編目指示字63的內(nèi)容被轉(zhuǎn)移到頂部指示字62。把由服務(wù)指示字61指定的地址表5的一個(gè)地址轉(zhuǎn)移到程序計(jì)數(shù)器3,以使得由程序計(jì)數(shù)器3指定的、存儲在程序存儲器4內(nèi)的一條指令被CPU2執(zhí)行。此后,按通常計(jì)算機(jī)中相同的方式,根據(jù)執(zhí)行了的一條指令來更新程序計(jì)數(shù)器3的內(nèi)容,從而繼續(xù)服務(wù)操作。
執(zhí)行打開指令的操作如下。要打開程序的起始地址寄存在由服務(wù)電路9的編目指示字63所指定的地址表5中,此服務(wù)電路9由一附加的變量來指定,而且編目指示字63的內(nèi)容被更新以指示地址表5的下一個(gè)位置。當(dāng)?shù)竭_(dá)地址表5的最后部分時(shí),服務(wù)指示字61和編目指示字63的內(nèi)容被更新,以指示地址表5的頂部。
在執(zhí)行一關(guān)閉指令后,由一附加變量指示的服務(wù)電路9的地址表的地址被掃描,以擦除要關(guān)閉的程序。
在執(zhí)行一暫停指令后,暫停指令的下一個(gè)地址寄存在由一服務(wù)電路9的編目指示字63所指定的地址表5中,此服務(wù)電路9由一附加的變量來指示。由暫停指示字71所選定的一個(gè)服務(wù)電路9的服務(wù)指示字61的內(nèi)容被更新,以指示地址表5的下一個(gè)位置,以相互比較服務(wù)指示字61和頂部指示字62的內(nèi)容。如果比較的內(nèi)容相互不一致,則在啟動CPU2的操作后,程序轉(zhuǎn)移到要執(zhí)行的操作。比較相等時(shí),程序轉(zhuǎn)移啟動上述操作,從而CPU2更新暫停指示字71。
如上所述,用圖8所示的計(jì)算機(jī)系統(tǒng),不但可執(zhí)行通常的指令,而且還可執(zhí)行打開指令、關(guān)閉指令和暫停指令。
雖然在圖7所示的實(shí)施方案中,系統(tǒng)是由包括地址表5、指示字6和時(shí)間表7的硬件所構(gòu)成,但這樣的系統(tǒng)也能以附加有一定時(shí)器1(參閱圖7)的一通用計(jì)算機(jī)和適當(dāng)?shù)能浖韺?shí)現(xiàn)。
如上所述,根據(jù)本發(fā)明,可以用不同于系統(tǒng)語言的,諸如BASIC和FORTRAN語言,來方便地實(shí)現(xiàn)順序控制和伺服控制。此外,因?yàn)闃?biāo)記數(shù)和定時(shí)器數(shù)能大大地減小,所以程序變得簡單而清楚。在要求高速操作和特殊計(jì)算的場合,可以同時(shí)使用象ASSEMBLER(匯編)那樣的語言。通過利用具有一時(shí)間表和一地址表的硬件實(shí)現(xiàn)的本發(fā)明,能夠?qū)崿F(xiàn)有效的控制。
權(quán)利要求
1.一種適用于實(shí)現(xiàn)順序控制和伺服控制的計(jì)算機(jī)系統(tǒng),它包括第一和第二程序;用于從所述第一程序發(fā)出一打開指令以啟動所述第二程序的一個(gè)并行處理的裝置;從所述第一程序發(fā)出一關(guān)閉指令和一暫停指令的裝置,所述關(guān)閉指令終止第一或第二程序,所述暫停指令使所述第一程序停止執(zhí)行一限定的時(shí)間間隔;所述打開指令,所述關(guān)閉指令和所述暫停指令用作并行處理指令。
2.一種執(zhí)行三種類型并行處理指令的計(jì)算機(jī)系統(tǒng),所述三種類型并行處理指令包括打開指令、關(guān)閉指令和暫停指令,所述計(jì)算機(jī)系統(tǒng)包括一個(gè)中央處理單元(CPU);一個(gè)定時(shí)器,它包含一個(gè)計(jì)算器,該計(jì)數(shù)器在每一預(yù)定時(shí)間被一限定的計(jì)數(shù)所更新并且連接到所述CPU,在那里被讀出;一個(gè)程序存儲裝置,用以存儲將由所述CPU執(zhí)行的順序控制和伺服控制程序;一個(gè)程序計(jì)數(shù)器,它連接到所述CPU和所述程序存儲裝置,用于指定所述程序存儲裝置的一個(gè)地址,所述地址處存儲著一條下一步將要執(zhí)行的指令,根據(jù)由所述CPU執(zhí)行的一條指令的類型去更新所述程序計(jì)數(shù)器的內(nèi)容;一個(gè)地址表,它連接到所述CPU和所述程序計(jì)數(shù)器,用于寄存由一打開指令和一暫停指令所指定的程序地址,根據(jù)一關(guān)閉指令檢索和擦除所述地址表寄存的地址;一個(gè)時(shí)間表,它連接于所述CPU并寫有一預(yù)定的時(shí)間,用于啟動一個(gè)寄存在所述地址表內(nèi)的程序;一個(gè)指示字,它連接于所述地址表和所述時(shí)間表之間,再連接到所述CPU,用于掃描所述地址表和所述時(shí)間表的相應(yīng)部分。
3.根據(jù)權(quán)利要求
2的計(jì)算機(jī)控制系統(tǒng),其中所述程序計(jì)數(shù)器的內(nèi)容被更新成一個(gè)跟隨在打開指令后的一條指令的地址,或者當(dāng)終止一個(gè)包含有執(zhí)行關(guān)閉指令的程序時(shí),所述程序計(jì)數(shù)器的內(nèi)容被更新成一個(gè)從所述地址表中選出的地址,或者所述內(nèi)容被更新成跟隨在關(guān)閉指令后的一條指令的地址,或被更新成一根據(jù)一暫停指令由所述地址表選出的一個(gè)地址。
4.根據(jù)權(quán)利要求
2的計(jì)算機(jī)系統(tǒng),其中所述的地址表存有由變量指定的程序的地址,該變量存儲在所述地址表的一個(gè)空位部分,這是通過所述指示字對所述地址表進(jìn)行掃描找到的。
5.根據(jù)權(quán)利要求
2的計(jì)算機(jī)系統(tǒng),其中所述地址表寄存有一跟隨在一暫停指令后的一條指令的地址。
6.根據(jù)權(quán)利要求
2的計(jì)算機(jī)系統(tǒng),其中在一關(guān)閉指令的情況下,通過掃描,找到和擦除由一變量指示的且寄存在所述表中的一個(gè)程序地址。
7.根據(jù)權(quán)利要求
2的計(jì)算機(jī)系統(tǒng),其中寄存在所述地址表中的地址,在被一條關(guān)閉指令或一條暫停指令參照后,就給擦除掉。
8.根據(jù)權(quán)利要求
2的計(jì)算機(jī)系統(tǒng),其中在執(zhí)行所述關(guān)閉或暫停指令后,在所述指示字所指定的位置處,所述時(shí)間表的內(nèi)容被轉(zhuǎn)移到所述程序計(jì)數(shù)器。
9.根據(jù)權(quán)利要求
2的計(jì)算機(jī)系統(tǒng),其中所述指示字還用來讀和寫所述地址表和所述時(shí)間表。
10.根據(jù)權(quán)利要求
2的計(jì)算機(jī)系統(tǒng),其中所述預(yù)定時(shí)間,在打開指令時(shí)相應(yīng)于所述計(jì)數(shù)器的讀數(shù),在暫停指令時(shí)相應(yīng)于由一暫停指令變量所指定的暫停時(shí)間與所述讀數(shù)之和。
11.一種適用于順序控制和伺服控制的計(jì)算機(jī)系統(tǒng),它包括一個(gè)中央處理單元(CPU);一個(gè)中斷時(shí)鐘,它在預(yù)定的時(shí)間間隔處給所述CPU加一中斷;程序存儲裝置,用以存儲將由所述CPU執(zhí)行的順序控制和伺服控制程序;一個(gè)程序計(jì)數(shù)器,它連接到所述CPU和所述程序存儲裝置,用于指定所述程序存儲裝置的一個(gè)地址,在所述地址處存儲有下一步將要執(zhí)行的一條指令,所述程序計(jì)數(shù)器的內(nèi)容根據(jù)由所述CPU所執(zhí)行的一條指令的類型而被更新;大量服務(wù)電路,每一個(gè)服務(wù)電路包括一個(gè)地址表、一個(gè)服務(wù)指示字、一個(gè)頂部指示字和一個(gè)編目指示字;一個(gè)暫停指示字,它由所述CPU控制,用來在初始狀態(tài)下從所述服務(wù)電路中選擇一個(gè)有著最短暫停時(shí)間的電路;所述地址表連接到所述程序計(jì)數(shù)器,用于寄存由一條打開指令和一條暫停指令所指定的程序地址;根據(jù)一條關(guān)閉指令,所述地址表寄存的地址被檢索和擦除;所述服務(wù)指示字,指示所述地址表中現(xiàn)時(shí)正被使用著的一個(gè)程序的地址;所述頂部指示字,指出一個(gè)將被使用并已存儲于所述地址表內(nèi)的程序的前端地址;所述編目指示字,指出由一條打開指令和一條暫停指令所寫的地址表的位置。
12.根據(jù)權(quán)利要求
11的計(jì)算機(jī)系統(tǒng),其中所述CPU決定一個(gè)時(shí)間,在此時(shí)間加上所述中斷,以便更新所述暫停指示字,使得所述暫停指示字根據(jù)一個(gè)暫停時(shí)間來選擇出所述服務(wù)電路中的一個(gè)。
13.根據(jù)權(quán)利要求
11的計(jì)算機(jī)系統(tǒng),其中用一條關(guān)閉指令和一條暫停指令去結(jié)束目前正在使用的一個(gè)程序后,所述服務(wù)指示字的內(nèi)容被更新到下一個(gè)位置。
14.根據(jù)權(quán)利要求
13的計(jì)算機(jī)系統(tǒng),其中當(dāng)所述服務(wù)指示字已更新了的內(nèi)容與所述頂部指示字的內(nèi)容一致時(shí),程序不執(zhí)行,且所述服務(wù)指示字的內(nèi)容被更新。
15.根據(jù)權(quán)利要求
11的計(jì)算機(jī)系統(tǒng),其中通過所述暫停指示字來選出一個(gè)包含有一給定頂部指示字的服務(wù)電路,而所述頂部指示字的內(nèi)容被轉(zhuǎn)移到所述服務(wù)指示字。
16.根據(jù)權(quán)利要求
11的計(jì)算機(jī)系統(tǒng),其中,通過所述暫停指示字,選出了一個(gè)包含有一給定編目指示字的服務(wù)電路,所述編目指示字的內(nèi)容被轉(zhuǎn)移到所述頂部指示字。
17.根據(jù)權(quán)利要求
11的計(jì)算機(jī)系統(tǒng),其中當(dāng)加一中斷于所述CPU時(shí)或當(dāng)所述服務(wù)指示字和所述頂部指示字的內(nèi)容相互一致時(shí),所述暫停指示字被更新。
專利摘要
在一種用于實(shí)現(xiàn)順序控制和伺服控制的計(jì)算機(jī)系統(tǒng)中,利用三種類型的并行處理指令來編制程序,此三種不同類型指令包括打開指令、關(guān)閉指令和暫停指令。來自第一程序的打開指令用來并行地處理第二程序。從第一程序發(fā)出的關(guān)閉指令終止第一或第二程序。從第一程序發(fā)出的暫停指令使第一程序停止執(zhí)行一個(gè)限定的時(shí)間間隔。用此系統(tǒng)后,就不必用系統(tǒng)語言作為編程語言,而可用象BASIC和FORTRAN那樣一類的語言。
文檔編號G06F15/76GK86105135SQ86105135
公開日1988年4月20日 申請日期1986年8月20日
發(fā)明者佐佐木能成, 小田悅司, 栗田直樹, 金子敏彥 申請人:東芝機(jī)械株式會社導(dǎo)出引文BiBTeX, EndNote, RefMan