一種判斷梯形圖程序的無(wú)“競(jìng)態(tài)”的方法
【專(zhuān)利摘要】本發(fā)明涉及一種判斷梯形圖程序的無(wú)“競(jìng)態(tài)”的方法,將梯形圖轉(zhuǎn)化為包括多元組的關(guān)系圖,如果梯形圖的觸點(diǎn)、線(xiàn)圈或者功能模塊模擬而成的實(shí)結(jié)點(diǎn)不存在任何線(xiàn)路,使之沿任何一條線(xiàn)路都不能回到原點(diǎn),則梯形圖程序?yàn)闊o(wú)“競(jìng)態(tài)”。本發(fā)明所述的判斷梯形圖程序的無(wú)“競(jìng)態(tài)”的方法,是從梯形圖程序結(jié)構(gòu)的角度檢測(cè)“競(jìng)態(tài)”,該方法可以簡(jiǎn)便,快速的判斷出梯形圖程序不存在“競(jìng)態(tài)”。當(dāng)梯形圖程序復(fù)雜時(shí),使用傳統(tǒng)的模型檢測(cè)或定理證明,工作量是非常龐大的,并且容易出錯(cuò),而本發(fā)明的工作量小,不易出錯(cuò)。
【專(zhuān)利說(shuō)明】一種判斷梯形圖程序的無(wú)“競(jìng)態(tài)”的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及PLC梯形圖程序的驗(yàn)證方法,更具體地說(shuō),涉及一種判斷梯形圖程序的無(wú)“競(jìng)態(tài)”的方法。
【背景技術(shù)】
[0002]可編程邏輯控制器(Programmable Logic Controller, PLC)廣泛的應(yīng)用于復(fù)雜的嵌入式控制應(yīng)用程序,如制造工業(yè)、娛樂(lè)場(chǎng)所、電力,交通、化工等安全苛求系統(tǒng)等,對(duì)PLC程序的安全可靠性要求很高。目前,在PLC的編程語(yǔ)言中,梯形圖(Ladder Diagram)占主導(dǎo)作用,是目前使用最多的一種PLC編程語(yǔ)言。
[0003]梯形圖的“競(jìng)態(tài)”指的是在輸入和功能模塊的狀態(tài)不變的情況下,輸出發(fā)生變化。“競(jìng)態(tài)”是一種難以被檢測(cè)的邏輯錯(cuò)誤,其檢測(cè)不僅會(huì)耗費(fèi)大量資金,對(duì)于電力、交通等對(duì)程序正確性有極嚴(yán)格要求的系統(tǒng),發(fā)生“競(jìng)態(tài)”將導(dǎo)致嚴(yán)重的后果。
[0004]目前普遍使用的“競(jìng)態(tài)”檢測(cè)方法是模型檢驗(yàn)和定理證明,模型檢測(cè)的缺點(diǎn)是要遍歷系統(tǒng)模型的狀態(tài)空間,所以面臨著“狀態(tài)空間爆炸”的問(wèn)題;定理證明可直接處理無(wú)限的狀態(tài)空間,它使用類(lèi)似于結(jié)構(gòu)化的推導(dǎo)過(guò)程來(lái)證明具有無(wú)限狀態(tài)的系統(tǒng)。但是,定理證明大多數(shù)是交互的,需要人的參與,所以不僅出錯(cuò)的概率大大的提高了,自動(dòng)驗(yàn)證的可行性也降低了。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種以降低檢測(cè)的復(fù)雜度為目的,從梯形圖程序的結(jié)構(gòu)出發(fā),尋找一個(gè)正確的結(jié)論,可以不用復(fù)雜的檢測(cè)快速判斷程序無(wú)“競(jìng)態(tài)”的判斷梯形圖程序的無(wú)“競(jìng)態(tài)”的方法。
[0006]本發(fā)明的技術(shù)方案如下:
[0007]—種判斷梯形圖程序的無(wú)“競(jìng)態(tài)”的方法,將梯形圖轉(zhuǎn)化為包括多元組的關(guān)系圖,如果梯形圖的觸點(diǎn)、線(xiàn)圈或者功能模塊模擬而成的實(shí)結(jié)點(diǎn)不存在任何線(xiàn)路,使之沿任何一條線(xiàn)路都不能回到原點(diǎn),則梯形圖程序?yàn)闊o(wú)“競(jìng)態(tài)”。
[0008]作為優(yōu)選,關(guān)系圖D為一個(gè)四元組,包括非空有限集V(D)、V’ (D), A(D)和C,記為D = (V, V' , A, c);其中,
[0009]V = Iv1, V2…,vn}為有限非空實(shí)結(jié)點(diǎn)的集合,用來(lái)表示梯形圖中的圖符單元;
[0010]V’ = Iv’P V’2…,V’m}為有限非空虛結(jié)點(diǎn)的集合,用于連接實(shí)結(jié)點(diǎn),表示邏輯關(guān)系“與”,F(xiàn)nF' = 0,F(xiàn)uFV0;
[0011](KxP) Ufx K),是實(shí)結(jié)點(diǎn)和虛結(jié)點(diǎn)組成的二元組的集合,表示從實(shí)結(jié)點(diǎn)到虛結(jié)點(diǎn)或虛結(jié)點(diǎn)到實(shí)結(jié)點(diǎn)的有向弧集合,其中,(vx,V’ y)表示實(shí)結(jié)點(diǎn)Vx到虛結(jié)點(diǎn)V’ y的有向弧,(V’ y, Vz)表示虛結(jié)點(diǎn)Vny到實(shí)結(jié)點(diǎn)Vz的有向弧,則結(jié)點(diǎn)VX、V’ y、Vz表示實(shí)結(jié)點(diǎn)Vz的狀態(tài)變化依賴(lài)于Vx ;
[0012]c:A — Z+表示關(guān)系圖中每一條弧上的權(quán)值,其中,Z+表示正整數(shù)集合,弧上權(quán)值大小為對(duì)應(yīng)梯形圖的梯級(jí)。
[0013]作為優(yōu)選,如果一個(gè)實(shí)結(jié)點(diǎn)只有輸入有向弧,沒(méi)有輸出有向弧,稱(chēng)該實(shí)結(jié)點(diǎn)為根節(jié)點(diǎn);如果一個(gè)實(shí)結(jié)點(diǎn),存在一條線(xiàn)路,使之沿著這條線(xiàn)路能回到原點(diǎn),則線(xiàn)路表示為一個(gè)關(guān)系圖的環(huán)。
[0014]作為優(yōu)選,關(guān)系圖中每一條弧上的權(quán)值為I表示第一梯級(jí),權(quán)值為2表示第二梯級(jí),以此類(lèi)推。
[0015]作為優(yōu)選,將梯形圖轉(zhuǎn)化為關(guān)系圖的步驟如下:
[0016]步驟1、將梯形圖程序的觸點(diǎn)、線(xiàn)圈、功能模塊模擬為實(shí)結(jié)點(diǎn);
[0017]步驟2、任選梯形圖程序的一個(gè)線(xiàn)圈,假設(shè)該線(xiàn)圈為Cx,對(duì)應(yīng)的實(shí)結(jié)點(diǎn)為Vx ;
[0018]步驟3、確定Cx的割集的個(gè)數(shù)mx,創(chuàng)建mx個(gè)虛結(jié)點(diǎn);
[0019]步驟4、遍歷一個(gè)割集內(nèi)的元素,連接元素對(duì)應(yīng)實(shí)結(jié)點(diǎn)到該割集對(duì)應(yīng)的虛結(jié)點(diǎn)的有向?。贿B接虛結(jié)點(diǎn)到Vx的有向?。粸閺膶?shí)結(jié)點(diǎn)到實(shí)結(jié)點(diǎn)的有向弧賦予權(quán)值;重復(fù)上述步驟,直到遍歷完所有的割集;
[0020]步驟5、取Cx梯級(jí)路徑上的一個(gè)觸點(diǎn),判斷梯形圖程序是否存在以該觸點(diǎn)為輸出線(xiàn)圈的路徑,如果有,重復(fù)步驟3、步驟4 ;如果沒(méi)有,取另一個(gè)觸點(diǎn)進(jìn)行判斷,直到遍歷完所有觸點(diǎn);
[0021]步驟6、如果還存在其他沒(méi)有遍歷的線(xiàn)圈,重復(fù)步驟2、步驟3、步驟4、步驟5,直到遍歷完所有線(xiàn)圈;
[0022]步驟7、取梯形圖程序的一個(gè)功能模塊,假設(shè)對(duì)應(yīng)的實(shí)結(jié)點(diǎn)為Vy,確定模塊割集的數(shù)目my,創(chuàng)建my個(gè)虛結(jié)點(diǎn);遍歷一個(gè)模塊割集內(nèi)的元素,連接元素對(duì)應(yīng)的實(shí)結(jié)點(diǎn)到該模塊割集對(duì)應(yīng)的虛結(jié)點(diǎn)的有向??;連接虛結(jié)點(diǎn)到Vy的有向弧;為弧賦予權(quán)值;重復(fù)上述步驟,知道遍歷完所有的模塊割集。
[0023]作為優(yōu)選,所述的路徑,為在梯形圖中,由觸點(diǎn)、功能模塊以及連接他們之間的導(dǎo)線(xiàn)組成的線(xiàn)路;
[0024]所述的梯級(jí)路徑,為使能量流從左母線(xiàn)到線(xiàn)圈的路徑;
[0025]所述的割集,是由梯級(jí)路徑中的觸點(diǎn)、功能模塊組成的集合,并且如果刪除割集內(nèi)的任意元素,則梯級(jí)路徑斷開(kāi);
[0026]所述的模塊割集,是由控制功能模塊所有端口的觸點(diǎn)組成的集合,并且如果刪除模塊割集內(nèi)的任意元素,則功能模塊無(wú)法正常工作。
[0027]本發(fā)明的有益效果如下:
[0028]本發(fā)明的思路是通過(guò)梯形圖程序的結(jié)構(gòu)檢測(cè)“競(jìng)態(tài)”,由于梯形圖程序復(fù)雜,難以觀察判斷,所以本發(fā)明提出了關(guān)系圖的概念。用關(guān)系圖清楚地描述梯形圖的邏輯關(guān)系。據(jù)此,本發(fā)明提出了一種梯形圖程序的無(wú)“競(jìng)態(tài)”的充分條件,應(yīng)用于大型的梯形圖程序驗(yàn)證,本發(fā)明可以簡(jiǎn)便、快捷的判斷出梯形圖不存在“競(jìng)態(tài)”或者可能存在“競(jìng)態(tài)”的危險(xiǎn),減少了程序驗(yàn)證的工作量。
[0029]本發(fā)明所述的判斷梯形圖程序的無(wú)“競(jìng)態(tài)”的方法,是從梯形圖程序結(jié)構(gòu)的角度檢測(cè)“競(jìng)態(tài)”,該方法可以簡(jiǎn)便,快速的判斷出梯形圖程序不存在“競(jìng)態(tài)”。當(dāng)梯形圖程序復(fù)雜時(shí),使用傳統(tǒng)的模型檢測(cè)或定理證明,工作量是非常龐大的,并且容易出錯(cuò),而本發(fā)明的工作量小,不易出錯(cuò)。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0030]圖1是梯形圖程序轉(zhuǎn)化為關(guān)系圖;
[0031]圖2是梯形圖程序?qū)?yīng)的時(shí)序圖。
【具體實(shí)施方式】
[0032]以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)說(shuō)明。
[0033]本發(fā)明所驗(yàn)證的梯形圖程序是依據(jù)IEC61131-3標(biāo)準(zhǔn)編寫(xiě)的。
[0034]第一部分:關(guān)系圖的定義。
[0035]從形式化的角度定義,一個(gè)關(guān)系圖D由非空有限集V(D)、V’ (D) ,A(D)和c構(gòu)成,可以被定義為一個(gè)四元組,記為D= (V,V’,A,C),其中,
[0036]V = {Vl, V2-, vj表示有限非空實(shí)結(jié)點(diǎn)的集合,用來(lái)表示梯形圖中的圖符單元,如觸點(diǎn)、線(xiàn)圈、功能模塊等;
[0037]V’ = Iv’i,V’2…,V’m}表示有限非空虛結(jié)點(diǎn)的集合,起到連接實(shí)結(jié)點(diǎn)的橋梁作用,沒(méi)有具體的意義,表示邏輯關(guān)系“與”。其中,F(xiàn)nF’ = 0,F(xiàn)uFV0;
[0038]是實(shí)結(jié)點(diǎn)和虛結(jié)點(diǎn)組成的二元組的集合,表示從實(shí)結(jié)點(diǎn)到虛結(jié)點(diǎn)或虛結(jié)點(diǎn)到實(shí)結(jié)點(diǎn)的有向弧集合,其中(vx,V’ y)表示實(shí)結(jié)點(diǎn)Vx到虛結(jié)點(diǎn)V’ y的有向?。?V’ y, Vz)表示虛結(jié)點(diǎn)Vny到實(shí)結(jié)點(diǎn)Vz的有向??;所以結(jié)點(diǎn)VX、V’ y、Vz表示為實(shí)結(jié)點(diǎn)Vz的狀態(tài)變化依賴(lài)于Vx ;
[0039]c:A —Z+表示關(guān)系圖中每一條弧上的權(quán)值,其中Z+表示正整數(shù)集合?;∩蠙?quán)值大小為對(duì)應(yīng)梯形圖的梯級(jí)。比如權(quán)值為“I”表示第一個(gè)梯級(jí),為“2”表示第二個(gè)梯級(jí),以此類(lèi)推。
[0040]如果一個(gè)實(shí)結(jié)點(diǎn)只有輸入有向弧,沒(méi)有輸出有向弧,稱(chēng)該實(shí)結(jié)點(diǎn)為根節(jié)點(diǎn);如果一個(gè)實(shí)結(jié)點(diǎn),存在一條線(xiàn)路,使之沿著這條線(xiàn)路能回到原點(diǎn),稱(chēng)線(xiàn)路是一個(gè)關(guān)系圖的環(huán)。
[0041]第二部分:梯形圖到關(guān)系圖轉(zhuǎn)化方法。
[0042]為了闡述梯形圖到關(guān)系圖的轉(zhuǎn)化方法,我們需要定義如下概念:
[0043]路徑:在梯形圖中,路徑是指由觸點(diǎn)、功能模塊以及連接他們之間的導(dǎo)線(xiàn)組成的線(xiàn)路。
[0044]梯級(jí)路徑:可使能量流從左母線(xiàn)到線(xiàn)圈(右母線(xiàn))的路徑。
[0045]割集:割集是由梯級(jí)路徑中的觸點(diǎn)、功能模塊組成的集合,并且刪除割集內(nèi)的任意元素,都會(huì)使得梯級(jí)路徑斷開(kāi)。
[0046]模塊割集:模塊割集是由控制功能模塊所有端口的觸點(diǎn)組成的集合,并且刪除模塊割集內(nèi)的任意元素,都會(huì)使得功能模塊不能正常工作。
[0047]具體轉(zhuǎn)化步驟:
[0048]步驟1、將梯形圖程序的觸點(diǎn)、線(xiàn)圈、功能模塊模擬為實(shí)結(jié)點(diǎn)。
[0049]步驟2、任選梯形圖程序的一個(gè)線(xiàn)圈,假設(shè)該線(xiàn)圈為Cx,對(duì)應(yīng)的實(shí)結(jié)點(diǎn)為Vx。
[0050]步驟3、確定Cx的割集的個(gè)數(shù)mx,創(chuàng)建mx個(gè)虛結(jié)點(diǎn)。
[0051]步驟4、遍歷一個(gè)割集內(nèi)的元素,連接元素對(duì)應(yīng)實(shí)結(jié)點(diǎn)到該割集對(duì)應(yīng)的虛結(jié)點(diǎn)的有向??;連接虛結(jié)點(diǎn)到Vx的有向弧;為從實(shí)結(jié)點(diǎn)到實(shí)結(jié)點(diǎn)的有向弧賦予權(quán)值。重復(fù)上述步驟,直到遍歷完所有的割集。
[0052]步驟5、取Cx梯級(jí)路徑上的一個(gè)觸點(diǎn),判斷梯形圖程序是否存在以該觸點(diǎn)為輸出線(xiàn)圈的路徑,如果有,重復(fù)步驟3、步驟4 ;如果沒(méi)有,取另一個(gè)觸點(diǎn)進(jìn)行判斷,直到遍歷完所有觸點(diǎn)。
[0053]步驟6、如果還存在其他沒(méi)有遍歷的線(xiàn)圈,重復(fù)步驟2、步驟3、步驟4、步驟5,直到遍歷完所有線(xiàn)圈。
[0054]步驟7、取梯形圖程序的一個(gè)功能模塊,假設(shè)對(duì)應(yīng)的實(shí)結(jié)點(diǎn)為Vy。確定模塊割集的數(shù)目my,倉(cāng)Il建my個(gè)虛結(jié)點(diǎn)。遍歷一個(gè)模塊割集內(nèi)的元素,連接元素對(duì)應(yīng)的實(shí)結(jié)點(diǎn)到該模塊割集對(duì)應(yīng)的虛結(jié)點(diǎn)的有向??;連接虛結(jié)點(diǎn)到Vy的有向?。粸榛≠x予權(quán)值。重復(fù)上述步驟,知道遍歷完所有的模塊割集。
[0055]第三部分:根據(jù)關(guān)系圖判斷“競(jìng)態(tài)”不存在的方法。
[0056]對(duì)于無(wú)環(huán)的關(guān)系圖,任意非根結(jié)點(diǎn)Vm都可以找到控制其狀態(tài)的實(shí)結(jié)點(diǎn)\,同樣Vn如果不為根結(jié)點(diǎn),同樣可以找到控制其狀態(tài)的實(shí)結(jié)點(diǎn),以此類(lèi)推,非根結(jié)點(diǎn)Vm最后可以看成是由一個(gè)根結(jié)點(diǎn)控制其狀態(tài)的。根結(jié)點(diǎn)的狀態(tài)在PLC的掃描周期內(nèi)是不變的,所以Vn不變,如果Vn對(duì)應(yīng)梯形圖的輸出線(xiàn)圈,說(shuō)明輸出線(xiàn)圈在程序執(zhí)行的過(guò)程中狀態(tài)是不變。
[0057]根據(jù)上面的分析可以得出判斷方法:如果關(guān)系圖不存在環(huán),對(duì)應(yīng)的梯形圖程序就一定不存在“競(jìng)態(tài)”,此結(jié)論就是梯形圖程序的無(wú)“競(jìng)態(tài)”的充分條件。
[0058]實(shí)施例
[0059]如圖1所示,根據(jù)本發(fā)明所述的方法轉(zhuǎn)化為關(guān)系圖:
[0060]首先將梯形圖的觸點(diǎn)、線(xiàn)圈、功能模塊模擬為實(shí)結(jié)點(diǎn),從圖1中的梯形圖程序可得到實(shí)結(jié)點(diǎn)的集合「=,%2,%3,v%。,\u,\λ。};
[0061]取線(xiàn)圈Qai作為初始結(jié)點(diǎn),其對(duì)應(yīng)的實(shí)結(jié)點(diǎn)力匕。遍歷線(xiàn)圈Qai可以得到Qai的割集為^.^^、^。.^^,所以創(chuàng)建兩個(gè)虛結(jié)點(diǎn)^,^;
[0062]遍歷割集{M0.!,M0.J內(nèi)的元素,連接Μαι,Μα2對(duì)應(yīng)實(shí)結(jié)點(diǎn)到虛結(jié)點(diǎn)Λ的有向??;連接V’!到^工的有向?。桓鶕?jù)所在的梯級(jí),給弧賦上權(quán)值“4”。同理遍歷割集{Μο.2,Μ0.3}內(nèi)的元素,連接Μα2,Μα3對(duì)應(yīng)實(shí)結(jié)點(diǎn)νι,ν%3到虛結(jié)點(diǎn)ν’2的有向弧;連接V、到
的有向弧,并且給弧賦上權(quán)值“4”。
[0063]通過(guò)遍歷線(xiàn)圈Qai梯級(jí)路徑上的觸點(diǎn)可知,不存在以梯級(jí)路徑上的觸點(diǎn)為輸出線(xiàn)圈的路徑,所以取另一個(gè)線(xiàn)圈Mc^進(jìn)行遍歷。同上步驟,可知Μ。。的割集只有一個(gè){Μαι},所以創(chuàng)建一個(gè)虛結(jié)點(diǎn)V’ 3 ;連接U SI」V’ 3的有向弧,連接V’ 3到1的有向?。毁x予弧上的權(quán)值為“5”。同上,遍歷線(xiàn)圈Qatl可知割集為{01},創(chuàng)建一個(gè)虛結(jié)點(diǎn)/4;連接\到/4的有向弧?,連接V’ 4到\。的有向弧;弧上的權(quán)值賦予值為“2”。
[0064]由于沒(méi)有可以遍歷的線(xiàn)圈,并且梯形圖存在功能模塊,所以遍歷功能模塊,確定其模塊割集為{Ια0,Mc^QacJ,所以創(chuàng)建一個(gè)虛結(jié)點(diǎn)V’5 ;連接模塊割集內(nèi)的元素對(duì)應(yīng)的實(shí)結(jié)點(diǎn)到虛結(jié)點(diǎn)的有向弧,即連接、%。、\.ο到V’ 5的有向弧;連接V’ 5到\的有向?。粸榛≠x予權(quán)值為“I”。
[0065]根據(jù)上面的步驟可以得到圖1的轉(zhuǎn)化結(jié)果。
[0066]如圖2所示,雖然梯形圖程序?qū)?yīng)的關(guān)系圖存在環(huán),但是功能模塊產(chǎn)生的輸出狀態(tài)變化不是“競(jìng)態(tài)”,根據(jù)本發(fā)明總結(jié)的判斷方法可知該梯形圖程序一定不存在“競(jìng)態(tài)”的危險(xiǎn),從時(shí)序圖也可以看出梯形圖程序不發(fā)生“競(jìng)態(tài)”。
[0067]上述實(shí)施例僅是用來(lái)說(shuō)明本發(fā)明,而并非用作對(duì)本發(fā)明的限定。只要是依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì),對(duì)上述實(shí)施例進(jìn)行變化、變型等都將落在本發(fā)明的權(quán)利要求的范圍內(nèi)。
【權(quán)利要求】
1.一種判斷梯形圖程序的無(wú)“競(jìng)態(tài)”的方法,其特征在于,將梯形圖轉(zhuǎn)化為包括多元組的關(guān)系圖,如果梯形圖的觸點(diǎn)、線(xiàn)圈或者功能模塊模擬而成的實(shí)結(jié)點(diǎn)不存在任何線(xiàn)路,使之沿任何一條線(xiàn)路都不能回到原點(diǎn),則梯形圖程序?yàn)闊o(wú)“競(jìng)態(tài)”。
2.根據(jù)權(quán)利要求1所述的判斷梯形圖程序的無(wú)“競(jìng)態(tài)”的方法,其特征在于,關(guān)系圖D為一個(gè)四元組,包括非空有限集V⑶、V’ (D)、A (D)和C,記為D= (V, V', A, c);其中, V= Iv1, V2-, vn}為有限非空實(shí)結(jié)點(diǎn)的集合,用來(lái)表示梯形圖中的圖符單元; V’ = Iv11, V12-, v'J為有限非空虛結(jié)點(diǎn)的集合,用于連接實(shí)結(jié)點(diǎn),表示邏輯關(guān)系“與”,VnV' = 0, VuV'^0;u(l..'X V),是實(shí)結(jié)點(diǎn)和虛結(jié)點(diǎn)組成的二元組的集合,表示從實(shí)結(jié)點(diǎn)到虛結(jié)點(diǎn)或虛結(jié)點(diǎn)到實(shí)結(jié)點(diǎn)的有向弧集合,其中,(vx,V’ y)表示實(shí)結(jié)點(diǎn)Vx到虛結(jié)點(diǎn)V’ y的有向弧,(V’ y, Vz)表示虛結(jié)點(diǎn)Vny到實(shí)結(jié)點(diǎn)Vz的有向弧,則結(jié)點(diǎn)Vx、V’ y、Vz表示實(shí)結(jié)點(diǎn)Vz的狀態(tài)變化依賴(lài)于Vx ; c:A — Z+表示關(guān)系圖中每一條弧上的權(quán)值,其中,Z+表示正整數(shù)集合,弧上權(quán)值大小為對(duì)應(yīng)梯形圖的梯級(jí)。
3.根據(jù)權(quán)利要求2所述的判斷梯形圖程序的無(wú)“競(jìng)態(tài)”的方法,其特征在于,如果一個(gè)實(shí)結(jié)點(diǎn)只有輸入有向弧,沒(méi)有輸出有向弧,稱(chēng)該實(shí)結(jié)點(diǎn)為根節(jié)點(diǎn);如果一個(gè)實(shí)結(jié)點(diǎn),存在一條線(xiàn)路,使之沿著這條線(xiàn)路能回到原點(diǎn),則線(xiàn)路表示為一個(gè)關(guān)系圖的環(huán)。
4.根據(jù)權(quán)利要求2所述的判斷梯形圖程序的無(wú)“競(jìng)態(tài)”的方法,其特征在于,關(guān)系圖中每一條弧上的權(quán)值為I表示第一梯級(jí),權(quán)值為2表示第二梯級(jí),以此類(lèi)推。
5.根據(jù)權(quán)利要求2所述的判斷梯形圖程序的無(wú)“競(jìng)態(tài)”的方法,其特征在于,將梯形圖轉(zhuǎn)化為關(guān)系圖的步驟如下: 步驟1、將梯形圖程序的觸點(diǎn)、線(xiàn)圈、功能模塊模擬為實(shí)結(jié)點(diǎn); 步驟2、任選梯形圖程序的一個(gè)線(xiàn)圈,假設(shè)該線(xiàn)圈為Cx,對(duì)應(yīng)的實(shí)結(jié)點(diǎn)為Vx ; 步驟3、確定Cx的割集的個(gè)數(shù)mx,創(chuàng)建mx個(gè)虛結(jié)點(diǎn); 步驟4、遍歷一個(gè)割集內(nèi)的元素,連接元素對(duì)應(yīng)實(shí)結(jié)點(diǎn)到該割集對(duì)應(yīng)的虛結(jié)點(diǎn)的有向弧;連接虛結(jié)點(diǎn)到Vx的有向??;為從實(shí)結(jié)點(diǎn)到實(shí)結(jié)點(diǎn)的有向弧賦予權(quán)值;重復(fù)上述步驟,直到遍歷完所有的iiij集; 步驟5、取Cx梯級(jí)路徑上的一個(gè)觸點(diǎn),判斷梯形圖程序是否存在以該觸點(diǎn)為輸出線(xiàn)圈的路徑,如果有,重復(fù)步驟3、步驟4 ;如果沒(méi)有,取另一個(gè)觸點(diǎn)進(jìn)行判斷,直到遍歷完所有觸占.步驟6、如果還存在其他沒(méi)有遍歷的線(xiàn)圈,重復(fù)步驟2、步驟3、步驟4、步驟5,直到遍歷完所有線(xiàn)圈; 步驟7、取梯形圖程序的一個(gè)功能模塊,假設(shè)對(duì)應(yīng)的實(shí)結(jié)點(diǎn)為Vy,確定模塊割集的數(shù)目my,創(chuàng)建my個(gè)虛結(jié)點(diǎn);遍歷一個(gè)模塊割集內(nèi)的元素,連接元素對(duì)應(yīng)的實(shí)結(jié)點(diǎn)到該模塊割集對(duì)應(yīng)的虛結(jié)點(diǎn)的有向弧;連接虛結(jié)點(diǎn)到Vy的有向?。粸榛≠x予權(quán)值;重復(fù)上述步驟,知道遍歷完所有的模塊割集。
6.根據(jù)權(quán)利要求5所述的判斷梯形圖程序的無(wú)“競(jìng)態(tài)”的方法,其特征在于, 所述的路徑,為在梯形圖中,由觸點(diǎn)、功能模塊以及連接他們之間的導(dǎo)線(xiàn)組成的線(xiàn)路; 所述的梯級(jí)路徑,為使能量流從左母線(xiàn)到線(xiàn)圈的路徑; 所述的割集,是由梯級(jí)路徑中的觸點(diǎn)、功能模塊組成的集合,并且如果刪除割集內(nèi)的任意元素,則梯級(jí)路徑斷開(kāi); 所述的模塊割集,是由控制功能模塊所有端口的觸點(diǎn)組成的集合,并且如果刪除模塊割集內(nèi)的任意元素,則功能模塊無(wú)法正常工作。
【文檔編號(hào)】G05B19/05GK104133412SQ201410323117
【公開(kāi)日】2014年11月5日 申請(qǐng)日期:2014年7月8日 優(yōu)先權(quán)日:2014年7月8日
【發(fā)明者】羅繼亮, 黃穎坤, 陳瓏, 邵輝, 晏來(lái)成 申請(qǐng)人:華僑大學(xué)