在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一文詳解PLC子程序與子程序指令

laidenongfhs ? 來源:中泰PLC自動化教學 ? 作者:中泰PLC自動化教學 ? 2023-12-14 13:33 ? 次閱讀

子程序

編程時經常會遇到相同的程序段需要多次執行的情況,如圖6-39所示,程序段A要執行兩次,編程時要寫兩段相同的程序段,這樣比較麻煩。解決這個問題的方法是將需要多次執行的程序段從主程序中分離出來,單獨寫成一個程序,這個程序稱為子程序,然后在主程序相應的位置進行子程序調用即可。

wKgZomV6lQGALimaAAIw4nV5FuQ811.png

圖6-39 兩種程序結構

在編寫復雜的PLC程序時,可以將全部的控制功能劃分為幾個功能塊,每個功能塊的控制功能可用子程序來實現,這樣會使整個程序的結構清晰簡單,易于調試、查找錯誤和維護。

子程序指令

子程序指令有兩條:子程序調用指令(CALL)和子程序條件返回指令(CRET)。

1.指令說明

子程序指令說明如表6-56所示。

表6-56 子程序指令說明

wKgZomV6lQGAIUkKAALNoHh6bKE768.png

子程序指令使用要點:CRET指令多用于子程序內部,該指令是否執行取決于它前面的條件,該指令執行的結果是結束當前的子程序返回調用程序。子程序允許嵌套使用,即在一個子程序內部可以調用另一個子程序,但子程序的嵌套深度最多為9級。當子程序在一個掃描周期內被多次調用時,在子程序中不能使用上升沿、下降沿、定時器和計數器指令。在子程序中不能使用END(結束)指令。

2.子程序的建立

編寫子程序要在編程軟件中進行,打開STEP7-Micro/WINSMART編程軟件,在程序編輯器上方有“MAIN(主程序)”“SBR_0(子程序)”“INT_0(中斷程序)”三個標簽,默認打開主程序編輯器。單擊“SBR_0”標簽即可切換到子程序編輯器,如圖6-40(a)所示,在下面的編緝器中可以編寫名稱為“SBR_0”的子程序。另外,在項目指令樹區域雙擊“程序塊”內的“SBR_0”,也可以在右邊切換到子程序編輯器。

如果需要編寫兩個或更多的子程序,可在“SBR_0”標簽上右擊,在彈出的快捷菜單中選擇“插入”→“子程序”,就會新建一個名稱為“SBR_1”的子程序(在程序編輯器上方多出一個“SBR_1”標簽),如圖6-40(b)所示。在項目指令樹區域的“程序塊”內也新增了一個“SBR_1”程序塊,選中“程序塊”內的“SBR_1”,再按鍵盤上的“Delete”鍵可將“SBR_1”程序塊刪除。

wKgaomV6lQGAF8XzAAWmcQyroLE515.png

圖6-40 切換與建立子程序

3.子程序指令使用舉例

下面以主程序調用兩個子程序為例,來說明子程序指令的使用。先用圖6-40(b)所示的方法建立一個SBR_1子程序塊(可先不寫具體程序),這樣在項目指令樹區域的“調用子例程”指令包內新增了一個調用SBR_1子程序的指令,如圖6-41(a)所示。在編寫主程序時,雙擊該指令即可將其插入程序中;主程序編寫完成后,再編寫子程序。圖6-41(b)為編寫好的主程序(MAIN),圖6-41(c)、(d)分別為子程序0(SBR_0)和子程序1(SBR_1)。

wKgaomV6lQGAX-jxAAWdKrE4ADE966.png

圖6-41 子程序指令使用舉例

主、子程序執行的過程是:

當主程序(MAIN)中的I0.0觸點閉合時,調用SBR_0指令執行,轉入執行子程序SBR_0。在SBR_0程序中,如果I0.1觸點閉合,則將Q0.0線圈置位,然后又返回主程序,開始執行調用SBR_0指令的下一條指令(即程序段2)。當程序運行到程序段3時,如果I0.3觸點閉合,則調用子程序SBR_1指令執行,轉入執行SBR_1程序;如果I0.3觸點斷開,則執行程序段4的指令,不會執行SBR_1。若I0.3觸點閉合,轉入執行SBR_1后,如果SBR_1程序中的I0.5觸點處于閉合狀態,則條件返回指令執行,提前從SBR_1返回主程序,SBR_1中的程序段2的指令無法執行。

6.12.3 帶參數的子程序調用指令子程序調用指令可以帶參數,使用帶參數的子程序調用指令可以擴大子程序的使用范圍。在子程序調用時,如果存在數據傳遞,通常要求子程序調用指令帶有相應的參數。

1.參數的輸入

子程序調用指令默認是不帶參數的,也無法在指令梯形圖符號上直接輸入參數,使用子程序編輯器下方的變量表可給子程序調用指令設置參數。

子程序調用指令參數的設置方法是:打打開STEP 7-Micro/WIN SMART編程軟件,單擊程序編輯器上方的“SBR_0”標簽,切換到SBR_0子程序編輯器,在編輯器下方有一個空變量表,如圖6-42(a)所示;如果變量表被關閉,可執行菜單命令“視圖”→“組件”→“變量表”打開變量表,再按圖6-42(b)所示在變量表內填寫輸入、輸出參數的符號并選擇數據類型。輸入型參數要填寫在變量類型為IN的行內,輸入/輸出型參數要填寫在變量類型為IN_OUT類型的行內,輸出型參數要填寫在變量類型為OUT的行內,表中參數的地址LB0、LB1等是自動生成的。在變量表的左上角有“插入行”和“刪除行”兩個工具,可以對變量表進行插入行和刪除行操作。變量表填寫后,切換到主程序編輯器,在主程序中輸入子程序調用指令,該子程序調用指令自動按變量表生成輸入/輸出參數,如圖6-42(c)所示。

wKgaomV6lQGAKpVlAAKNxiXYFtw988.png

圖6-42 子程序調用指令參數的設置

2.指令參數說明

子程序調用指令最多可以設置16個參數,每個參數包括變量名(又稱符號)、變量類型、數據類型和注釋四部分,注釋部分不是必需的。

1)變量名

變量名在局部變量表中稱作符號,它需要直接輸入,變量名最多可用23個字符表示,并且第一個字符不能為數字。

2)變量類型

變量類型是根據參數傳遞方向來劃分的,它可分為四種類型:IN(傳入子程序)、IN_OUT(傳入和傳出子程序)、OUT(傳出子程序)和TEMP(暫變量)。參數的四種變量類型詳細說明如表6-57所示。

表6-57 參數的四種變量類型詳細說明

wKgZomV6lQGAfqxPAAGOzQBkOBo217.png

3)數據類型

參數的數據類型有布爾型(BOOL)、字節型(BYTE)、字型(WORD)、雙字型(DWORD)、整數型(INT)、雙整數型(DINT)、實數型(REAL)和字符型(STRING)。

指令使用注意事項

在使用帶參數子程序調用指令時,要注意以下事項。常數參數必須指明數據類型。例如,輸入一個無符號雙字常數12345時,該常數必須指定為DW#12345,如果遺漏常數的數據類型,該常數可能會當作不同的類型使用。輸入或輸出參數沒有自動數據類型轉換功能。例如,局部變量表明一個參數為實數型,而在調用時使用一個雙字,子程序中的值就是雙字。在帶參數調用的子程序指令中,參數必須按照一定順序排列,參數排列順序依次是:輸入、輸入/輸出、輸出和暫變量。如果用語句表編程,CALL指令的格式是:

CALL 子程序號,參數1,參數2,…,參數n

4.指令使用舉例

帶參數的子程序調用指令的使用如圖6-43所示,圖6-43(a)為主程序,圖6-43(b)為子程序及局部變量表,主、子程序可以實現Y=(X+20)×3÷8運算。

程序執行過程為:在主程序中,常ON觸點SM0.0處于閉合狀態,首先執行第一個帶參數子程序調用指令,轉入執行子程序,同時將VW0單元中的數據作為X值傳入子程序的LW0單元(局部變量存儲器)。在子程序中,ADD_I指令先將LW0中的值+20,結果存入LW10中;然后MUL_I指令將LW10中的值×3,結果存入LW12中;DIV_I指令再將LW12中的值÷8,結果存入LW2中;最后子程序結束返回主程序,同時子程序LW2中的數據作為Y值被傳入主程序的VW10單元中。子程序返回主程序后,接著執行主程序中的第二個帶參數子程序調用指令,又將VW2中的數據作為X值傳入子程序進行(X+20)×3÷8運算,運算結果作為Y值返回到VW20單元中。

wKgaomV6lQGAN39hAAJFl4rXSQM582.png

圖6-43 帶參數的子程序調用指令的使用

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • plc
    plc
    +關注

    關注

    5016

    文章

    13387

    瀏覽量

    465400
  • 指令
    +關注

    關注

    1

    文章

    611

    瀏覽量

    35814
  • 程序
    +關注

    關注

    117

    文章

    3795

    瀏覽量

    81411
  • 編輯器
    +關注

    關注

    1

    文章

    806

    瀏覽量

    31291

原文標題:PLC子程序與子程序指令

文章出處:【微信號:中泰PLC自動化教學,微信公眾號:中泰PLC自動化教學】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    51單片機浮點子程序

    子程序庫的使用方法如下:1.將子程序庫全部內容鏈接在應用程序之后,統編譯即可。優點是簡單方便,缺點是程序太長,大量無關
    發表于 12-21 15:52 ?44次下載

    子程序

    子程序又稱為過程,它相當于高級語言中的過程和函數。在程序的不同部分,往往要用到類似的程序段,這些程序段的功能和結構形式都相同,只是某些變
    發表于 06-30 10:43 ?848次閱讀

    ALTERA官方例子程序

    ALTERA官方例子程序,最規范的程序。入門必備
    發表于 10-29 10:46 ?47次下載

    匯編語言學習課件_子程序與宏指令設計

    第六章 子程序與宏指令設計 6.1 子程序結構及設計方法 6.2 子程序參數傳遞 6.3 嵌套與遞歸子程序 6.4 宏 指
    發表于 12-31 10:41 ?0次下載

    子程序的創建與調用

    【LabVIEW從入門到精通】2.5 子程序的創建與調用
    發表于 01-08 15:43 ?0次下載

    三菱FX系列PLC條件跳轉和子程序指令的應用_赫煥麗

    三菱FX系列PLC條件跳轉和子程序指令的應用。
    發表于 05-18 10:42 ?3次下載

    子程序(函數)傳遞

    易語言是門以中文作為程序代碼編程語言學習例程:子程序(函數)傳遞
    發表于 06-07 10:41 ?3次下載

    PMC功能指令程序控制指令

    程序控制指令: 7.SP(子程序:SUB 71) 功能指令SP用于生成子程序子程序號作為子程序
    發表于 09-29 13:08 ?0次下載
    PMC功能<b class='flag-5'>指令</b>:<b class='flag-5'>程序控制指令</b>

    中斷處理和子程序調用概念解析

    子程序組可以公用的指令序列,只要給出子程序的入口地址就能從主程序轉入子程序
    發表于 11-16 11:12 ?1w次閱讀
    中斷處理和<b class='flag-5'>子程序</b>調用概念解析

    plc如何停止子程序調用_具體操作解析

    進入子程序請使用CALL指令,即是FUN67指令,在子程序中要使用標簽:LBL指令即FUN65,子程序
    發表于 11-16 11:35 ?1.5w次閱讀
    <b class='flag-5'>plc</b>如何停止<b class='flag-5'>子程序</b>調用_具體操作解析

    點陣液晶顯示模塊字符通用子程序

    1、逐字依次寫入方式子程序。2、光標左移寫入方式子程序。3、光標右移寫入方式子程序。4、畫面左滾動寫入方式子程序
    發表于 03-13 14:53 ?1443次閱讀
    點陣液晶顯示模塊字符通用<b class='flag-5'>子程序</b>

    SMART常用的運動控制子程序的應用詳解

    前我們講解過SMART運動控制向導的組態應用,組態好向導后自動生成運動子程序,只需調用對應功能的子程序進行編程即可,那么今天我們分別學習下常用的子程序的應用。
    的頭像 發表于 03-24 11:16 ?1.4w次閱讀
    SMART常用的運動控制<b class='flag-5'>子程序</b>的應用<b class='flag-5'>詳解</b>

    西門子PLC子程序介紹

    STEP7-Micro/Win在程序編輯器窗口中為每個POU提供單獨的頁面。主程序總是第1頁,后面是子程序或中斷程序。由于每個程序在編輯器窗
    發表于 12-13 16:28 ?3982次閱讀

    帶參數子程序的參數傳遞過程

    程序中建立多個子程序,每個子程序完成相對比較獨立的功能。而子程序也是圍繞主程序的要求,并且還
    的頭像 發表于 10-17 09:50 ?2892次閱讀

    PLC創建庫文件與帶參數子程序功能該如何使用

    在S7-200SMART系列PLC子程序中,子程序可以分為兩類,類為不帶參數的子程序,另
    的頭像 發表于 10-28 11:06 ?4187次閱讀
    主站蜘蛛池模板: 二级黄绝大片中国免费视频0 | 午夜影视免费观看 | 美女又爽又黄视频 | 成人网视频免费播放 | 热久久最新视频 | 午夜影视体验区 | 天天干2018| 中文字幕一区二区三区视频在线 | 成人免费看片视频色多多 | 久草一区| 97人人人人 | 免费视频国产 | 国产美女视频一区二区二三区 | 成人网视频免费播放 | 一级片免费观看视频 | 天天综合天天综合色在线 | 男人视频在线观看 | 中文字幕亚洲一区二区v@在线 | 性性性性bbbbxxxx | 手机在线看片国产日韩生活片 | 国产天天操 | 亚洲精品欧洲久久婷婷99 | 一级片免费在线观看 | 婷婷综合久久 | 69女poren60| 国产精品xxxav免费视频 | 亚洲国产一区二区三区a毛片 | 欧美一级片网站 | 午夜精品免费 | 亚洲免费看片 | 日韩欧美视频在线一区二区 | 无夜精品久久久久久 | 成人一级网站 | 欧美乱妇15p | 四虎永久在线日韩精品观看 | 超级碰碰青草免费视频92 | 韩国午夜精品理论片西瓜 | 日日噜噜噜夜夜爽爽狠狠图片 | 毛片福利 | 色婷婷色综合激情国产日韩 | 日本黄色大片在线播放视频免费观看 |