999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

PLC順序功能圖的梯形圖編程模塊化規(guī)范研究

2021-09-23 06:08:00車健生吳雪霏
電子技術(shù)與軟件工程 2021年12期
關(guān)鍵詞:模塊化程序規(guī)范

車健生 吳雪霏

(沈陽現(xiàn)代制造服務(wù)學(xué)校 遼寧省沈陽市 110148)

隨著順序功能圖在PLC梯形圖中的廣泛應(yīng)用,“以經(jīng)驗法為主的設(shè)計方法存在設(shè)計周期長,不易掌握,程序可讀性差”[1]等問題有了很大緩解。但對于一個中大型PLC編程設(shè)計,順序功能圖的梯形圖編程也暴露出一些問題。如與經(jīng)驗法比較上手容易,但程序代碼數(shù)量大多超過后者。轉(zhuǎn)換條件與輸出狀態(tài)混在一個SCR—SCRE嵌套中,條理不夠清楚;步的轉(zhuǎn)換條件、輸出狀態(tài)語句數(shù)量隨著步的復(fù)雜程度而變化,引起程序個別點處臃腫,整體不均勻。這些都會造成順序功能圖結(jié)構(gòu)不清晰,直觀性、可讀性受到嚴(yán)重影響。把一個程序分解為若干個子程序,是解決這個問題的一個重要途徑,“運用函數(shù)”或子程序“是程序的首要組織手段”,它給程序“帶來更好的可讀性、可維護(hù)性和可重用性”[2]。將一個大程序按照一定的規(guī)范分解為若干小程序模塊,稱之為模塊化設(shè)計,顯然,這個規(guī)范的合理性、可操作性是重中之重。

1 順序功能圖的三種基本結(jié)構(gòu)

在計算機科學(xué)發(fā)展史上,結(jié)構(gòu)化程序設(shè)計的出現(xiàn)是一個里程碑的事件,結(jié)構(gòu)化程序設(shè)計最基本原則是:任何程序都可以由三種基本流程結(jié)構(gòu)構(gòu)成,即順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。在PLC編程發(fā)展史,順序功能圖(SFC)能夠脫穎而出、備受關(guān)注,也在于它關(guān)注程序的結(jié)構(gòu)。順序功能圖主要由步、有向連線、轉(zhuǎn)換、轉(zhuǎn)換條件和輸出狀態(tài)組成。將系統(tǒng)工作過程劃分成若干順序相連的、由被控對象工作狀態(tài)變化所決定的步;步的活動狀態(tài)的轉(zhuǎn)換由轉(zhuǎn)換條件來實現(xiàn)。這是順序功能圖的“形”,它的“神”是PLC程序設(shè)計由此實現(xiàn)了把所有程序看作是由單序列、選擇序列和并列序列三種基本結(jié)構(gòu)組成的,如圖1、圖2和圖3所示。一定程度上有效地避免經(jīng)驗設(shè)計法中的試探性和隨意性,提高程序的可讀性和可維護(hù)性。

如果一個梯形圖編程模塊化規(guī)范能夠涵蓋這三種基本結(jié)構(gòu),那么這個規(guī)范就是完備的。以下模塊化規(guī)范的構(gòu)建均是在討論這三種基本結(jié)構(gòu)的基礎(chǔ)上,此外,規(guī)范仍然要保持梯形圖編程直觀性的特點。

2 順序功能圖的梯形圖實現(xiàn)的主程序規(guī)范

順序功能圖用梯形圖編程實現(xiàn)一般有三種方法,一是使用啟保停電路的順序控制設(shè)計方法;二是使用SCR指令的順序控制設(shè)計方法;三是使用計數(shù)變量的順序控制設(shè)計方法[3]。其中,方法一在一個網(wǎng)絡(luò)中描述一個步,當(dāng)某個轉(zhuǎn)換條件或狀態(tài)輸出繁多時,這個網(wǎng)絡(luò)就會臃腫復(fù)雜;方法二由于有些PLC沒有專用的SCR順序控制繼電器而有所受限,同時SCR、SCRE對于每一“步”都要占用兩個網(wǎng)絡(luò)的開銷;方法三對于表達(dá)并列順序功能圖,通過一個計數(shù)變量描述所有步,計數(shù)變量某一時刻的值對應(yīng)活動步編號,這對并列順序功能圖同時存在兩個以上活動步的編程是有欠缺的,如果強行合并并列步為一步,會破壞順序功能圖的條理性。

在總結(jié)上述三種方法優(yōu)點基礎(chǔ)上,本規(guī)范主程序,用Mx.y位存儲器依次表示順序步,Mx.y位存儲器值為1時,對應(yīng)的步為活動步。每一步占用一個網(wǎng)絡(luò),均由調(diào)用轉(zhuǎn)換條件子程序SBR_i和調(diào)用輸出狀態(tài)子程序Output_State兩條指令組成(以上x,y分別為字節(jié)與位編號,i為子程序序號),圖2選擇序列順序功能圖的主程序如圖4。

圖1:單序列

圖2:選擇序列

圖3:并列序列

圖4:選擇序列主程序片段

圖5:分支點步轉(zhuǎn)換條件子程序SBR_0

圖6:并列步轉(zhuǎn)換條件子程序SBR_0

圖7:接收狀態(tài)位組數(shù)據(jù)子程序片段

圖8:數(shù)字字符串轉(zhuǎn)數(shù)組部分梯形圖

調(diào)用轉(zhuǎn)換條件子程序指令有著相同的結(jié)構(gòu),以SBR_0為例,左邊輸入端Current聯(lián)結(jié)當(dāng)前步M0.0,右邊輸出端Forward聯(lián)結(jié)去向步M0.1 和步M0.4,指令盒清楚地表明順序功能圖中步轉(zhuǎn)換的來龍去脈。主程序注重的是程序主體流程脈絡(luò),不去關(guān)注子程序具體的實現(xiàn)過程。本規(guī)范對順序功能圖的梯形圖編程模塊化處理具有主次清楚、層次分明的特點。

3 順序功能圖的梯形圖實現(xiàn)的條件轉(zhuǎn)換子程序規(guī)范

規(guī)范中,每個條件轉(zhuǎn)換子程序都由條件邏輯觸發(fā)目標(biāo)步狀態(tài)寄存器,接著復(fù)位當(dāng)前活動步狀態(tài)寄存器兩部分指令構(gòu)成。轉(zhuǎn)換條件滿足時,對目標(biāo)步狀態(tài)位置1,并且對當(dāng)前步狀態(tài)位清0,從而完成當(dāng)前步到目標(biāo)步活動狀態(tài)的轉(zhuǎn)變。圖2選擇序列分支點與圖3并列序列并列節(jié)點對應(yīng)的轉(zhuǎn)換條件子程序SBR_0 分別如圖5和圖6所示。

在條件轉(zhuǎn)換子程序中Current變量類型設(shè)置為IN_OUT,F(xiàn)orward變量類型設(shè)置為OUT,這樣子程序能接收主程序調(diào)用時傳遞的步狀態(tài)位值,也能在轉(zhuǎn)換條件結(jié)束時傳達(dá)出當(dāng)前活動狀態(tài)停止的信息。子程序與主程序只在這兩個通道上發(fā)生數(shù)據(jù)交換,實現(xiàn)了子程序與主程序的完全隔離。子程序可隨意使用局部變量,而不用顧及與主程序中變量重名、沖突等問題。如果條件相同,條件轉(zhuǎn)換子程序可以通用,被不同步所調(diào)用,例如圖1的順序功能圖的梯形圖中SBR_0與SBR_2是相同的,可只保留一個,從而提高了條件轉(zhuǎn)換子程序模塊的復(fù)用性。

圖9

4 順序功能圖的梯形圖實現(xiàn)的狀態(tài)輸出通用子程序

順序功能圖每步輸出狀態(tài)雖然無外乎Q位寄存器串并聯(lián)的組合,每步均有,個別處數(shù)量龐大且無序,影響順序功能圖結(jié)構(gòu)性和可讀性。這個看似錯綜復(fù)雜的問題可以用一個描寫每步輸出狀態(tài)的數(shù)組,加上一個數(shù)組上運行的通用程序予以處理。

順序功能圖畫出之前,一般先列出系統(tǒng)輸入輸出狀態(tài)表,狀態(tài)表用來確定順序功能圖的每一步,以及每一步的輸出狀態(tài)。狀態(tài)表中的輸出狀態(tài)可在程序初始化時存入一個二維數(shù)組,數(shù)組是以步編號為行號,將步狀態(tài)中位對應(yīng)數(shù)組元素,每步狀態(tài)全部位對應(yīng)數(shù)組的一行。活動步輸出狀態(tài)時,以當(dāng)前步編號為行號,在數(shù)組中提取一行數(shù)組數(shù)據(jù),輸出給Q字節(jié)、字或雙字寄存器。程序由下面幾個部分組成。

4.1 步狀態(tài)數(shù)字字符串初始化

本程序以每一步輸出狀態(tài)為步序號的ASCII二進(jìn)制數(shù)為例,如圖7所示。數(shù)組初始化程序以直觀、常規(guī)方法接收狀態(tài)數(shù)據(jù),先是利用STR_CPY指令接收第一串?dāng)?shù)字字符串,然后再通過STR_CAT附加第二行、第三行、……字符串。不失一般性地約定:數(shù)據(jù)之間用逗號加空格隔開,第二行開始,追加數(shù)據(jù)以逗號開頭。習(xí)慣上一行數(shù)據(jù)表示一個步狀態(tài),但也可由多個指令完成。程序假定占用VB2000開始的單元(建議使用高端不常用地址),用于以數(shù)字字符串形式保存這批狀態(tài)位數(shù)據(jù)。

4.2 步狀態(tài)數(shù)字字符串轉(zhuǎn)存二維數(shù)組及數(shù)組基本管理

數(shù)字字符串轉(zhuǎn)存數(shù)組,主要過程是在循環(huán)控制指令FOR,利用字符串轉(zhuǎn)換整數(shù)指令S_I,對數(shù)字字符串進(jìn)行整數(shù)轉(zhuǎn)換操作;通過字符搜索指令CHR_FIND,依次推進(jìn)搜索逗號,把逗號位置賦給AC0,從下一位置開始字符串轉(zhuǎn)換整數(shù)操作,結(jié)果保存在AC1中,然后存入指定的數(shù)組元素中。主要程序片段如圖8。

對于無數(shù)組體系的PLC,如S7-200系列等可按下面方式進(jìn)行數(shù)組的訪問。本研究約定二維數(shù)組是以行優(yōu)先的一維數(shù)組方式進(jìn)行的存儲,二維下標(biāo)[i, j]對應(yīng)的一維下標(biāo)[ (i-1)*列總數(shù)+j ],對于元素以字節(jié)單元存儲,某個一維下標(biāo)也就是這個元素的相對地址(相對數(shù)組第1個元素前的位置),從而實現(xiàn)對二維數(shù)組元素的訪問。下文中涉及的二維數(shù)組元素讀取子程序ARRARY2D_B_out就可以按照這樣原理進(jìn)行設(shè)計。

4.3 步狀態(tài)二維數(shù)組中活動步狀態(tài)輸出程序

每個步諸多Q位存儲器的值占用1行數(shù)組元素,Q位的低位到高位排列對應(yīng)數(shù)組列號的低到高。步狀態(tài)二維數(shù)組中活動步狀態(tài)提取程序Output_State把每行數(shù)組元素組合一個字節(jié)、字或雙字,作為函數(shù)值返回。本文以輸出字節(jié)為例,對于指定步狀態(tài)編號State_num,程序中循環(huán)從起始列號到終止列號,也就是從左到右,依次讀取數(shù)組元素ARRAY[State_num, Column_int],對元素值與1進(jìn)行比較,等于1時,使用左移位SHL_B指令生成1個以元素列號對應(yīng)位為1,其它位為0的字節(jié)QB_bit;通過邏輯或WOR_B指令把上面的QB_bit累計到輸出狀態(tài)字節(jié)Output_B中。行號為State_num的一行元素依次處理完畢后,字節(jié)Output_B就已存放了這步的輸出狀態(tài),以其作為本子程序的返回值。程序核心部分清單如圖9。

5 結(jié)束語

程序基于早期S7-200系列PLC,全部通過上機驗證。上述順序功能圖的梯形圖實現(xiàn)模塊化規(guī)范,無論是整體,還是主程序和子程序都保持梯形圖的立身之本——直觀性,延續(xù)了順序功能圖成功之基——結(jié)構(gòu)化設(shè)計。一個大中型項目往往需要多人合作完成,規(guī)范化、模塊化的設(shè)計有助于分工協(xié)作開發(fā)程序。模塊化后,程序斷點容易確定,使得調(diào)試程序更為方便,提高了程序可靠性。模塊化的設(shè)計,對于相關(guān)相似的不同項目,使得開發(fā)者只需關(guān)注修改不同點的模塊,提高了程序開發(fā)的復(fù)用性。在PLC順序功能圖設(shè)計思想廣泛應(yīng)用的今天,實現(xiàn)順序功能圖設(shè)計的梯形圖編程模塊化規(guī)范,對順序功能設(shè)計的深入發(fā)展具有一定的積極作用。

猜你喜歡
模塊化程序規(guī)范
來稿規(guī)范
來稿規(guī)范
模塊化自主水下機器人開發(fā)與應(yīng)用
PDCA法在除顫儀規(guī)范操作中的應(yīng)用
來稿規(guī)范
模塊化住宅
試論我國未決羈押程序的立法完善
“程序猿”的生活什么樣
ACP100模塊化小型堆研發(fā)進(jìn)展
中國核電(2017年2期)2017-08-11 08:00:56
模塊化VS大型工廠
主站蜘蛛池模板: 国产无码制服丝袜| 精品无码一区二区在线观看| 国产青青草视频| 日韩无码视频专区| 国产精品美女自慰喷水| 人妻无码AⅤ中文字| 日韩色图区| 久久www视频| 一区二区三区在线不卡免费| 国产精品香蕉在线| 免费日韩在线视频| 国产乱肥老妇精品视频| 五月丁香在线视频| 人妻精品久久久无码区色视| 亚洲三级成人| 国产91精品最新在线播放| 国产AV无码专区亚洲精品网站| 亚洲乱码精品久久久久..| 免费xxxxx在线观看网站| 亚洲天堂网视频| 亚洲综合天堂网| 99精品在线看| 欧美日本激情| 成年女人18毛片毛片免费| 91久久天天躁狠狠躁夜夜| 欧美午夜小视频| 91成人在线观看视频| 福利在线不卡一区| 亚洲久悠悠色悠在线播放| 国产精品自拍合集| 乱系列中文字幕在线视频| 久久精品这里只有精99品| 国产成人亚洲毛片| 久久国产亚洲欧美日韩精品| 国产情精品嫩草影院88av| 亚洲成a人片77777在线播放| 国产一级小视频| 亚洲系列中文字幕一区二区| 亚洲精品无码不卡在线播放| 成年av福利永久免费观看| 秋霞国产在线| 欧美一级高清片欧美国产欧美| 成人亚洲国产| 伊人成色综合网| 国产小视频a在线观看| 国产免费精彩视频| 日韩欧美国产另类| 91午夜福利在线观看| 精品国产Ⅴ无码大片在线观看81| 欧洲欧美人成免费全部视频| 国产欧美日韩免费| 波多野结衣在线se| 福利视频99| 最新国产在线| 久久久亚洲色| 精品一区二区三区水蜜桃| 日韩不卡免费视频| 2020极品精品国产| 亚洲高清国产拍精品26u| 国产亚洲欧美日韩在线观看一区二区 | 无码免费的亚洲视频| 日韩一级二级三级| 久久亚洲精少妇毛片午夜无码| 人妻精品久久无码区| 欧美激情成人网| 日本久久久久久免费网络| 亚洲精品桃花岛av在线| 91精品网站| 国产三级韩国三级理| 真人免费一级毛片一区二区| 99视频国产精品| 国产国语一级毛片在线视频| 精品成人一区二区三区电影| 欧美成人一级| 亚洲 欧美 中文 AⅤ在线视频| 99在线免费播放| 激情成人综合网| 日韩精品成人网页视频在线| 婷婷五月在线| 成人午夜精品一级毛片| 99精品在线看| 亚洲综合天堂网|