国产一区二区精品在线_午夜精品视频_亚洲国产高清高潮精品美女_久久久91_午夜精品视频_久久久久亚洲一区二区三区

數控系統中PLC梯形圖與指令表的轉換算法

來源:萬方數據 作者:羅海據 吳永明 梁娟

點擊:3098

A+ A-

所屬頻道:新聞中心

關鍵詞:數控系統 PLC 指令表

      在中高檔的數控機床系統或者數控加工中心里,可編程邏輯控制器(PLC) 是一個不可缺少的配置。梯形圖和指令表是PLC的常用編程語言。將控制系統的開關量邏輯與狀態表示成梯形圖,采用梯形圖語言設計順序控制邏輯,具有方便直觀的優點,有利于系統維護與故障快速診斷。

      梯形圖不能直接被計算機識別和執行,需要先將它轉換成指令表才能夠執行。目前梯形圖轉換為指令表的算法主要有兩種:其一是基于二叉樹的PLC梯形圖轉化為指令表的算法,該方法借助二叉樹進行翻譯,但存在編譯效率不高的問題;其二是將梯形圖映射到AOV圖,該方法需要搜索鏈表,能夠翻譯復雜的梯形圖,需要經過多次的掃描,實現起來比較復雜。

      一些商用PLC的梯形圖結構比較復雜,如西門子S7-200、三菱等品牌的PLC功能強大,一般在個人計算機或專用的編程設備完成對梯形圖的編輯和修改等操作。但對于數控機床系統而言,梯形圖的編輯和修改一般在工廠車間的機床上完成,用戶在現場直接修改調試,而且梯形圖運行環境和數控系統內部關聯比較大。另外在零件加工時,修改和編輯梯形圖不能對數控系統其他模塊造成影響,如譯碼、插補等實時性要求很高的模塊,對梯形圖的合法性檢測和將梯形圖轉換成指令表的算法效率顯得相當重要。因此,數控機床系統的PLC模塊,要能夠在屏幕上顯示和修改梯形圖,對梯形圖的互換算法要求比較快。本文作者將梯形圖的構成形式分成母線、環、半環、環母線等結構元素,利用這些結構元素檢驗梯形圖的合法性,分析梯形圖和指令之間的關系,并以此設計梯形圖向指令表轉換的算法。

    1 梯形圖的構成分析

      一個完整的數控系統的PLC梯形圖由若干個獨立功能的塊組成,不僅包括了基本的輸入觸點和輸出線圈,還包括了針對數控應用的特殊功能指令。PLC的梯形圖由觸點、輸出線圈、功能指令、橫線、豎線、點等基本元素構成。梯形圖中觸點之間的豎線占一個顯示位置,那么觸點之間非豎線的顯示用點連接,這個點不影響梯形圖的邏輯,但在用二維數組表示的梯形圖形式時,它確實存在并且占用一個數據內存。因篇幅所限,文中只對不包含功能指令構成的梯形圖進行討論,如圖1所示。

    圖1 CNC用PLC基本梯形圖

      梯形圖元素的位置用梯形圖的行列位置坐標來表示,依次從左到右,從上到下遍歷,并且認為豎線的位置是從第二行起,第一行是點元素。令最左邊的豎線的列號是0,最上一行的行號是0,那么圖1中左上角的觸點X0000.0的坐標就是P(0,1)。因此,有如下定義:

      定義1:梯形圖里由行的下標為0的所有的元素組成的集合稱為梯形圖母線,也就是梯形圖的第0行。很明顯,除第0行之外的觸點都要直接或間接通過豎線連在母線上。

      定義2:從某一個觸點起,按逆時針遍歷梯形圖回到當前觸點,其中遍歷元素個數最小,遍歷路徑的元素構成一個四邊形,將所有這些遍歷過的元素組成的集合稱作環。在圖1 里, 集合{豎線(1,2 ),X0001.0(1,3),點(1,4),X0001.1 (1,5),豎線(1,6),點(0,6),X00002(0,5),點(0,4),X00001(0,3 ), 點(0,2 )}構成一個環, {豎線(2,4 ),X00020(2,5),豎線(2,6),點(1,6),X00011(1,5),點(1,4)}組成一個環。

      定義3:在一個環里,行號最大、列號最小的觸點稱為環的起始觸點,如上面兩個環中,X00010、X000020 是起始觸點。

      定義4:跟環的起始觸點行號相同的所有元素組成的集合稱為半環。如集合{豎線(1,2),X00010(1,3),點(1,4),X0001.1(1,5),豎線(1,6)}構成一個半環,{豎線(2,4),X00020(2,5),豎線(2,6)}組成一個半環。很明顯,環的起始觸點也是半環的起始觸點。

      定義5:在某一個環里,除去半環的元素剩下的元素的集合稱環母線。如{點(0,6),X00002(0,5),點(0,4),X00001 (0,3),點(0,2)},{點(1,6),X0001.1(1,5),點(1,4)}是環母線。很明顯,一些元素屬于某一個環母線,也屬于某一半環。

      綜上所述,梯形圖塊就是由母線和若干個半環構成的簡單圖形。為了保證梯形圖邏輯的準確性和方便轉換,作如下的約束:

      (1)一個梯形圖塊只能有一條母線;

      (2)一個半環內至少包含一個觸點;

      (3)一條環母線內至少包含一個觸點;

      (4)一個觸點的左邊不能是橫線,實際上觸點是可以和它左右兩邊的橫線互換位置而不影響其邏輯的;

      (5)一個梯形圖塊里只有一個輸出線圈串聯在母線上,其他輸出線圈只能并聯到該線圈上;

      (6)如果某環的半環屬于另外某環,但環母線不屬于其他環,可以將環母線移動到半環下面,變成標準型。如圖2 所示可以將X0001.0 移動到X00021的下方,轉化為圖3 的形狀而不影響梯形圖的邏輯;

      (7)如果環與環之間存在交集,那么交集元素所屬的半環或環母線的所有元素的行號只能是包含關系。如圖4 所示,起始元素是X0002.0 和起始元素是X00011 的環存在歧義的,可以在梯形圖轉換的時候直接報錯提示用戶修改。

    圖 4有歧義的梯形圖

    2 梯形圖與指令表關系的分析


      按照梯形圖的邏輯運算過程,當遇到環時先將之前的結果壓棧,然后掃描環母線的觸點。如果環母線的結果需要壓棧就將環母線的掃描結果壓棧,再掃描半環的結果,之后依次將之前的結果出棧,進行相對應的“與”、“或” 邏輯運算。這種執行方式也就是先進后出(FILO) 的堆棧處理方式。按照FILO 的堆棧處理方式,對應圖1 的邏輯關系的指令表如表1 所示。

      在表1 的指令里,RDSTK 或RDNOTSTK 表示將之前的運算狀態壓棧并讀入一個觸點狀態,RDSTK 或RDNOTSTK表示將上一個壓棧彈出來,并和當前的結果進行“與” 或“或” 操作。考察指令表和梯形圖的關系,用X 表示行號,Y 表示列號可以得出下面的結論:

      (1)左邊靠最左豎線的觸點并且在第一行的第一個觸點,即坐標為(0,1 ) 的觸點,是這個梯形圖的第一個指令,應先讀入該觸點,對應指令RD,如RD X00000。

      (2)對于某一觸點P(X,Y),如果坐標Q(X +1,Y -1)和Q(X -1,Y -1) 的元素不是豎線,表明該觸點與之前的運算結果是“與” 關系;對應的指令為AND,如AND X00002。

      (3)對于某一觸點P(X,Y),如果該觸點所在的半環只有該觸點,那說明該觸點并聯在環母線上,即Q(X,Y -1)是豎線,Q(X,Y +1) 是豎線但不是最右邊的豎線,或者Q(X,Y +1 ) 不是豎線而Q(X,Y +2)是橫線的圖形。該觸點與前面的運算結果之間的邏輯運算是“或” 關系,用OR表示,如OR X00020。

      (4)對于某一個觸點P(X,Y),如果該觸點是所在半環的起始觸點,并且該半環的觸點個數大于1,那么表示該半環并聯在該環的環母線上,即Q(X,Y -1)是豎線, Q(X, Y +1 ) 不是豎線且Q(X,Y +2)是觸點的圖形。需要將前面的運算結果壓棧,然后讀入該觸點,再執行該半環的后續邏輯運算,然后將前面的結果出棧,并進行“或” 運算。分別用如RDSTK 或RDNOTSTK表示,如RDSTKX00010 …OR STK,這里NOT表示取反。

      (5)對于某一個觸點P(X,Y),只屬于某一環的環母線的元素,并且是該環的環母線的第一個元素,坐標Y 大于1,那么計算機在執行完之前的操作后需要將結果壓棧,然后讀入該觸點。在完成后續運算后將之前的結果出棧,和當前結果進行“與” 運算,分別用RDSTK和AND STK 表示。如RDSTKX00001…RDSTK;即Y >1,且Q(X+1,Y-1)是豎線的情形。

      (6)對于某一個觸點P(X,Y),Q(X,Y+1)是最右的豎線,則是輸出線圈,用WRT 表示,如WRT Y00000。

      當獲得了觸點的指令形式后,如何把這些指令正確地進行排序呢?將梯形圖轉換成指令表的過程中關鍵的地方是:

      (1) 將半環的指令表插入到環母線指令后面,最終將所有半環的指令插入到母線指令列表之間;

      (2)將OR STK或RDSTK這兩個出棧指令正確地放在所在環的指令后面。所以在轉換過程中首先要找到起始觸點行號最大的半環。由于梯形圖的半環是嵌套在另一個半環上,如果從上往下遍歷某一半環就要遍歷所有嵌套該半環的半環,但是從下往上掃描,就可以避免這個問題。

    3 數據結構和轉換算法

      3.1 數據結構

      對于梯形圖的顯示信息,設計了一種數據結構ARRAYCELL。ARRAYCELL 的成員inttye,分別用來標識當前元素的類型:橫線、豎線、常開、常閉、輸出、點,或表示當前位置沒有元素。成員intaddr表示梯形圖的地址空間(X,Y)等觸點地址。

      用數據ARRAYCELL arrayCell [MAX_ROW][MAX_COL]表示梯形圖數據,數組的行列下標剛好用來表示梯形圖元素的坐標,對梯形圖某一個元素(X,Y)的編輯和修改就變成了對變量arrayCell[X][Y]的type和addr的修改。成員pStr指向PMCCMDSTR 類型的數據,用pStr在這里存放轉換信息。數據結構PMCCMDSTR 包括了成員cmd[],該成員用來存放轉換過程中的指令, 如RD STKX00001 整個字符串。成員stack TYpe用來存放堆棧信息,如果當前觸點沒有堆棧信息就為空。成員pBefore 和pNext用來保存鏈表的前趨和后繼。
     

      
      

    3.2 轉換算法的實現

      梯形圖的轉換過程分兩步完成:第一步:先從下往上,再從左到右遍歷梯形圖的元素,按照上面的約束條件掃描梯形圖的準確性。如果遍歷到豎線,接下來的觸點便是起始觸點,按照上面提及6 種類型判斷便可得到相應的指令和壓棧關系,申請PMCCMDSTR 變量pStr,將對應指令寫入指向pStr 變量的成員cmd和stack TYpe之中。

      第二步:采用同第一步的掃描方法,梯形圖轉換的流程圖如圖5 所示。

    圖5 轉換流程圖

      3.3 轉換算法的特點

     與二叉樹和AOV圖的轉換算法相比,文中研究的數據結構和算法具有如下特點:

      (1)該算法自下至上掃描梯形圖,將半環的指令鏈接到環母線的指令后面,并利用數據結構中的pStr成員保存,符合梯形圖的執行順序。與從上到下的掃描方式相比,減少重復掃描梯形圖的次數和指令列表的頻繁搜索、插入過程;

      (2)該算法主動改變X,Y 掃描某個觸點的周圍連接情況,與二叉樹相比更容易得到單個觸點的指令,算法實現過程簡單;

      (3)如果每個元素的pStr 不是NULL,需要進行MAX_ROW MAX_COL 的指針鏈表的添加操作,存在浪費時間的缺點。但是在編輯梯形圖時可以用變量保存梯形圖的最大行號和列號從而極大減少遍歷時間,在一定程度避免了這一個缺點。

      (4) 用數組arrayCell儲存梯形圖的元素,如果是空元素則存在浪費內存的情況,如果將arrayCell[MAX_ROW][MAX_COL]改為存放指針arrayCell[MAX_ROW][MAX_COL]的變量則會改善內存浪費的情況。

      綜合看來,該算法增加了系統的內存消耗,但避免了AOV和二叉樹算法復雜度高、轉換時間長的缺點,同時采用自下往上掃描梯形圖的方法,算法實現簡單,適合用于機床或實時要求比較高的設備。


    4 結束語

      研究探討了梯形圖的結構,用環、半環、環母線、母線等概念對梯形圖進行析構,對梯形圖的形狀作出了約束,分析梯形圖和指令之間的關系,并設計出轉換算法。該算法已運用在中高檔的數控系統上,體現了該算法的方便快捷的特點,對于工作人員在現場調試機床功能起了一定作用,受到用戶的認可。

    (審核編輯: 滄海一土)

    聲明:除特別說明之外,新聞內容及圖片均來自網絡及各大主流媒體。版權歸原作者所有。如認為內容侵權,請聯系我們刪除。

    国产一区二区精品在线_午夜精品视频_亚洲国产高清高潮精品美女_久久久91_午夜精品视频_久久久久亚洲一区二区三区
    <cite id="gqusq"><tbody id="gqusq"></tbody></cite>
    <strike id="gqusq"><tbody id="gqusq"></tbody></strike>
    <abbr id="gqusq"><rt id="gqusq"></rt></abbr>
  • <strike id="gqusq"><tbody id="gqusq"></tbody></strike>
    <ul id="gqusq"></ul>
    <center id="gqusq"><noscript id="gqusq"></noscript></center>
  • 秋霞毛片久久久久久久久| 国产精品外国| 欧美日韩免费精品| 91视频网页| 六月婷婷久久| 国产精品一区二区a| 国产精品国产一区二区 | 久久久久九九九| 91网免费观看| 亚洲一卡久久| 99精品国产一区二区青青牛奶| 伊人久久av导航| 在线丝袜欧美日韩制服| 日韩精品一区二区三区外面| 久久精品国产第一区二区三区最新章节 | 午夜在线一区| 在线亚洲精品| 亚洲精选在线| 亚洲激情av| 亚洲一二三区精品| 国色天香一区二区| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 成人一区二区三区四区| 蜜乳av另类精品一区二区| 国产精品毛片一区二区三区| 亚洲日本久久| 亚洲综合首页| 99国产盗摄| 精品国产福利| 久久综合福利| 亚洲一卡二卡三卡| 牛夜精品久久久久久久99黑人| 亚洲精品在线视频观看| 欧美成人精品| 在线看片日韩| 免费毛片一区二区三区久久久| 国产亚洲成人一区| 老鸭窝91久久精品色噜噜导演| 久久精品午夜| 美媛馆国产精品一区二区| 久久综合久久综合这里只有精品| 免费精品视频一区二区三区| 日本在线免费观看一区| 欧美高清一区| 国产精品推荐精品| 国产精品毛片va一区二区三区| 久久精品二区| 欧美一区高清| 国产精品视频福利| 国产精品我不卡| 亚洲欧洲精品一区二区| 1024成人| 精品日本一区二区| 欧美精品福利| 99久热re在线精品996热视频 | 国产69精品久久久久9999apgf | 日本一区二区三区四区高清视频| 最新国产精品久久| 久久九九精品| 日韩视频专区| 亚洲欧美久久久久一区二区三区| 精品亚洲欧美日韩| 亚洲午夜视频| 精品国产91亚洲一区二区三区www| 一区二区精品免费视频| 西西裸体人体做爰大胆久久久| 久久99久久99精品蜜柚传媒| 欧美天天视频| 久草热久草热线频97精品| 国产自产精品| 久久精品人人做人人爽电影| 一区在线视频| 麻豆传媒一区| 免费看黄裸体一级大秀欧美| 亚洲欧美国产精品桃花| 快she精品国产999| 欧美777四色影| 国产精品亚洲一区| 亚洲经典自拍| 亚洲精品成人久久久998| 美日韩免费视频| 欧美黄在线观看| 久久99欧美| 久久精品在线| 91久久国产综合久久蜜月精品| 欧美国产二区| 狼狼综合久久久久综合网 | 久久99久久精品国产| 中国女人久久久| 自拍视频一区二区三区| 精品无码久久久久久久动漫| 亚洲一区在线直播| 欧美视频导航| 日韩欧美在线观看强乱免费| 国产成人看片| 蜜桃视频一区| 国产亚洲成人一区| 欧美午夜在线视频| 日韩免费中文专区| 精品免费国产| 成人18视频| 久久久久一区| 中文高清一区| 最新日韩av| 国内精品久久久久久久影视麻豆 | 久久久久高清| 国产日韩久久| 亚洲乱亚洲高清| 好吊色欧美一区二区三区四区| 亚洲激情一区二区| 视频一区不卡| 欧美日韩一区二区视频在线观看 | 欧美高清不卡| 欧美 日韩 国产在线| 亚洲视频sss| 亚洲激情电影在线| 亚洲国产欧美不卡在线观看| 欧美一区1区三区3区公司 | 国产欧美日韩综合精品二区| 91免费版网站在线观看| 噜噜噜91成人网| 乱码第一页成人| av蓝导航精品导航| 国产伦精品一区二区三区视频免费| 99久久久久国产精品免费| 波多野结衣久草一区| 福利视频一区二区三区| 国产精品推荐精品| 久久久久久欧美精品色一二三四| 国产在线一区二| 欧美精品一区在线发布| 日韩久久精品一区二区三区| 日日夜夜精品网站| 亚洲一区不卡在线| 欧美精品一卡| 黄色国产精品| 久久久久久一区| 另类欧美小说| 欧美另类视频在线| 国产亚洲精品久久飘花 | 亚洲精品一区二区三区樱花| 亚洲欧美久久| 精品国产91亚洲一区二区三区www| 免费在线观看91| 欧美激情第二页| 国产精品一区毛片| 国产日韩欧美亚洲一区| 日韩av电影免费观看| 欧美91大片| 麻豆精品91| 日韩亚洲一区在线播放| 含羞草久久爱69一区| 久久狠狠一本精品综合网| 国产精品v欧美精品∨日韩| 日本高清久久一区二区三区| 国内自拍视频一区二区三区 | 久久综合影音| 性欧美大战久久久久久久免费观看| 亚洲性感美女99在线| 3d动漫精品啪啪一区二区三区免费| 久久99精品久久久久久久久久| 欧美高清日韩| 粉嫩av免费一区二区三区| 一区二区在线不卡| 1卡2卡3卡精品视频| 深夜福利成人| 亚洲一卡久久| 色播亚洲婷婷| 久久一区欧美| 欧美激情第二页| 国产精品久久国产三级国电话系列| 一区二区精品视频| 成人免费视频视频在| 欧美在线3区| 国产高清在线一区| 亚洲福利精品| 日本一区二区三区四区高清视频| 一区二区免费在线视频| 日本一区二区三区四区高清视频 | 成人av资源| 国产精品激情| 日韩av电影免费在线观看| 久久成人国产| 国产精品久久7| 欧美精品与人动性物交免费看| 国产精品一区在线播放| 一本色道久久综合亚洲精品婷婷 | 欧美一区1区三区3区公司| 国产精品久久久对白| 99av国产精品欲麻豆| 亚洲一区二区三区乱码| 成人av资源| 亚洲欧美日韩精品一区二区| 欧美不卡福利| 日本午夜精品一区二区| 成人在线视频网址| 99视频精品| 欧美激情视频一区二区三区在线播放| 国内视频一区| 国产精品一区视频|