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

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

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

車健生 吳雪霏

(沈陽現代制造服務學校 遼寧省沈陽市 110148)

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

1 順序功能圖的三種基本結構

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

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

2 順序功能圖的梯形圖實現的主程序規范

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

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

圖1:單序列

圖2:選擇序列

圖3:并列序列

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

圖5:分支點步轉換條件子程序SBR_0

圖6:并列步轉換條件子程序SBR_0

圖7:接收狀態位組數據子程序片段

圖8:數字字符串轉數組部分梯形圖

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

3 順序功能圖的梯形圖實現的條件轉換子程序規范

規范中,每個條件轉換子程序都由條件邏輯觸發目標步狀態寄存器,接著復位當前活動步狀態寄存器兩部分指令構成。轉換條件滿足時,對目標步狀態位置1,并且對當前步狀態位清0,從而完成當前步到目標步活動狀態的轉變。圖2選擇序列分支點與圖3并列序列并列節點對應的轉換條件子程序SBR_0 分別如圖5和圖6所示。

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

圖9

4 順序功能圖的梯形圖實現的狀態輸出通用子程序

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

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

4.1 步狀態數字字符串初始化

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

4.2 步狀態數字字符串轉存二維數組及數組基本管理

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

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

4.3 步狀態二維數組中活動步狀態輸出程序

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

5 結束語

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

猜你喜歡
模塊化程序規范
來稿規范
來稿規范
模塊化自主水下機器人開發與應用
PDCA法在除顫儀規范操作中的應用
來稿規范
模塊化住宅
現代裝飾(2020年5期)2020-05-30 13:01:56
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
ACP100模塊化小型堆研發進展
中國核電(2017年2期)2017-08-11 08:00:56
模塊化VS大型工廠
流程工業(2017年4期)2017-06-21 06:29:50
主站蜘蛛池模板: 日本黄色不卡视频| 在线精品亚洲国产| 国产欧美日韩专区发布| a毛片免费观看| 国产69精品久久| 亚洲毛片一级带毛片基地| 亚洲成aⅴ人片在线影院八| 色哟哟国产精品| 国产区成人精品视频| 欧美日韩久久综合| 亚洲成人精品久久| 精品国产免费第一区二区三区日韩| 四虎永久免费在线| 大陆国产精品视频| 九九线精品视频在线观看| 久久国产高潮流白浆免费观看| 国产精品中文免费福利| 97超碰精品成人国产| 国产h视频免费观看| 国产99热| 人妻一区二区三区无码精品一区| 精品国产美女福到在线直播| 91国内在线观看| 中文天堂在线视频| 亚洲国产亚综合在线区| 伊伊人成亚洲综合人网7777| 噜噜噜久久| 免费毛片a| 欧美国产日韩另类| 欧美啪啪一区| 成人精品午夜福利在线播放| 国产一区亚洲一区| 国产高潮视频在线观看| 国产精品私拍在线爆乳| 美女裸体18禁网站| 五月天久久综合| 丁香五月婷婷激情基地| 毛片网站免费在线观看| 波多野结衣中文字幕久久| 午夜国产在线观看| 免费jjzz在在线播放国产| 欧美精品亚洲二区| 国产免费怡红院视频| 伊人婷婷色香五月综合缴缴情| 国产精品999在线| 亚欧成人无码AV在线播放| 亚洲一区二区三区香蕉| 2021亚洲精品不卡a| 亚洲人成成无码网WWW| 71pao成人国产永久免费视频 | 99热这里只有免费国产精品| 国产日韩精品欧美一区灰| 欧美精品导航| 久久黄色小视频| 在线观看亚洲精品福利片| 亚洲国产成人综合精品2020| 成人日韩欧美| 啪啪国产视频| 亚洲成人77777| 宅男噜噜噜66国产在线观看| 日韩AV无码一区| 国产性猛交XXXX免费看| 九色91在线视频| 久久久久亚洲Av片无码观看| 午夜不卡福利| 亚洲成aⅴ人在线观看| 欧美色99| 91视频精品| 成人国内精品久久久久影院| av一区二区三区在线观看| 亚洲精品波多野结衣| 国产在线精彩视频论坛| 婷婷亚洲视频| 国产va在线观看| 国产精品大白天新婚身材| 久久久久久久久亚洲精品| 国产成人高清精品免费| 国产人前露出系列视频| 无码aaa视频| 99人体免费视频| 国产精品男人的天堂| www.狠狠|