樂山S7-1200PLC西門子代理商原裝現貨
發布日期 :2023-03-27 13:35發布IP:113.247.101.239編號:11546378
詳細介紹 樂山S7-1200PLC西門子代理商原裝現貨 樂山西門子S7-1200PLC代理,樂山西門子PLC代理,西門子S7-1200PLC代理,西門子PLC代理 西門子S7-200的子程序編寫與調試指令?? 西門子S7-200CPU的控制程序由主程序、子程序和中斷程序組成。STEP 7-Mico/WIN32在程序編輯器窗口里為每個POU(程序組織單元)提供一個獨立的頁,主程序總是第1頁,后面是子程序或中斷程序。??因為各個程序在編輯都窗口里被分開,編譯時在程序結束的地方自動加人無條件結束指令END、MEND.RET或RETI,如果在程序里加了這些指令,編譯時反而會出錯。 ??1.子程序的作用 ??子程序常用于需要主次反分執行相同任務的地方,只需要寫次子程序,別的稱序在占要子程序的時候調用它,而無需重寫該程序:子在序的詞用是有條件的,未調用它時不會執行了的程序中的指令,因此使用子程序可以減少掃描時間。 ??使用子程序可以將程序分成容易管理的小塊,使程序結構簡單清晰,易于查錯和維護。如果子程序中只引用參數和局部變量,可以將子程序移植到其他項目。為了移植了程序,應避免使用全局符號和變量,如I、Q、M、SM、AI、AQ、V、T、C、S、AC等存儲器中的**地址。 ??2.子程序的創建 樂山S7-1200PLC西門子代理商原裝現貨 樂山西門子S7-1200PLC代理,樂山西門子PLC代理,西門子S7-1200PLC代理,西門子PLC代理 ??可采用下列方法創建子程序:在“編輯”菜單中選擇“插人→子程序”;在程序編輯器視窗中按鼠標右鍵,從彈出菜單中選擇“插人→子程序",程序編輯器將從原來的POU顯示進人新的子程序,程序編輯器底部將出現標志新的子程序的新標簽,在程序編輯器窗口中可以對新的子程序編程??梢允褂迷撟映绦虻木植孔兞勘矶x參散,各子程序*多可以定義16個IN、OUT參數。用石鍵雙擊指令樹中的于程序或中斷程序的圖標,在彈出的窗口中選擇“重新命名”,可修改它們的名稱。 ??假設創建了一個名為CULCU的子程序,首先在該子程序的局部變量表中,定義一個名為輸人"的雙字IN(輸人)變量、一個名為“輸出”的雙字0UT(輸出)變量和一個名為TMP1的雙字TEMP(臨時)變量(見圖6-5)。在圖6-6的子程序中,輸人變量被圖6-5局部變業表乘以12 000,再除以13 257,運算結果作為子程序的輸出。 圖6-5局部變量表 ??3.子程序的調用 ??可以在主程序、另一子程序或中斷程序中調用子程序,但是不能在子程序中調用自己(即不允許遞歸調用)。調用子程序時將執行子程序的全部指令,肖至子程序結束,然后返回調用程序中子程序調用指令的下一條指令之處。 ??創建子程序后,STEP 7-Micro/WIN32在指令樹*下面的“子程序”圖標下自動生成剛創建的子程序CULCU對應的圖標。對于梯形閣程序,在子程序局部變量表中為該子程序定義參數后,將生成客戶化調用指令塊(見圖6-6),指令塊中自動包含了子程序的輸人參數和輸出參數。 圖6-6子程序與主程序 ??在梯形圖程序中插人子程序調用指令時,首先打開程序編輯器視窗中需要調用子程序,找到需要調用子程序的地方。在指令樹的*下面用左鍵打開子程序文件夾,將需要子程序圖標從指令樹拖到程序編輯器中的正確位置?;驅⒐鈽酥糜诔绦蚓庉嬈饕暣半p擊指令樹中的調用指令。 ??應為子程序調用指令的各參數指定有效的操作數,有效操作數為存儲器地址、常量、全局符號和調用指令所在的P0U中的局部變量(不是被調用子程序中的局部變量)。 ??如果在使用子程序調用指令后修改該子程序中的局部變量表,調用指令將變為無效。必須刪除無效調用,并用能反映正確參數的新的調用指令代替。 ??在語句表程序中調用子程序時使用調用指令“SBR n"。在調用子程序時,CPU保存整個邏輯堆棧后,將棧頂值置為1,堆棧中的其他值清0,控制轉移至被調用的子程序。子程序執行完成時,用調用時保存的數據恢復堆棧,控制返回調用程序。子程序和調用程序共用累加器,不會因使用子程序自動保存或恢復累加器。、 樂山S7-1200PLC西門子代理商原裝現貨 樂山西門子S7-1200PLC代理,樂山西門子PLC代理,西門子S7-1200PLC代理,西門子PLC代理 ??4.調用帶參數的子程序 ??調用帶參數的子程序時需要設置調用的參數,參數在子程序的局部變量表中定義,*多可傳遞16個參數。 ??1N(輸人)是傳人子程序的輸人參數,如果參數是直接尋址,如VB10.指定地址的值被傳、)人子程序。如果參數是間接尋址,如*AC1,指針指定地址的值被傳人子程序。如果參數是常數(例如DW#12345)或地址(如 &VB100),它們的值被傳人子程序,“非”為常數描述符。 ??0UT(輸出)是子程序的執行結果,它被返回給調用它的POU常數和地址(如 & VB100)不能作搶出量。 ??IN_OUT(輸人/輸出)將參數的初始值傳給子程序,子程序的執行結果返回給同一地址。常數和地址不能作輸人/輸出參數。 ??在子程序中可以使用參數IN、IN_OUT和OUT。 ??TEMP是局部存儲變量,不能用來傳遞參數,它們只能在子程序中使用。 ??子程序傳遞的參數放在子程序的局部變量表中,局部變量表*左邊的一則是每個被傳遞的參數的局部存儲器地址。調用子程序時,輸人參數被拷貝到子程序的局部存儲器,子程序執行完后,從局部存儲器區拷貝輸出參數到指定的輸出參數地址,數據單元的人小和類型用參數的代碼表示。在子程序中局部參數存儲器的參數值分配如下: ??(1)按子程序指令的調用順序,給參數值分配局部存儲郜,起始地址是L0。 ??(2)1-8個連續的位參數分配一個字節,字節中的位地址為Ix,0~Lx.7。 ??(3)字節.字和雙字值在局部存儲器中按字節順序分配,如LBx,LWx或LDx中品好寶 ??在帶參教調用子程序指令中,參數必須按一定的順序排列,輸人參數在*前而,其次是輸人/輸出參數,*后是輸出參數。 ??如果用語句表編程,程序調用指令的格式為; ??CALL子程序號,參數1,參數2,……參數n樂山S7-1200PLC西門子代理商原裝現貨 樂山西門子S7-1200PLC代理,樂山西門子PLC代理,西門子S7-1200PLC代理,西門子PLC代理 ??n0-16,帶態數調用子程序使ENO=0的錯誤條件:SM4.3(運行時間),0008(子程序嵌套超界)。 ??[例6-2]子程序調用舉例(見圖6-7) ??//0主程序 ??LD l0.0 ??CALL 10,IO.1.VB10,II.0,&VH1O0,*AC1.VD200 ??┆ ??//0主程序10 ??LD l2.1 ??CRET //從子程序條件返回 ??5.子程序的恢套調用 ??程序中*多可創建64個子程序。子程序可以嵌套調用(在子 ??程序中調用別的于程序),*大嵌套深度為8。 ??6.程序的有條件返回 ??在于程序中用觸點電路控制RET(從子程序有條件返回)指令,觸點電路接通時條件滿足,子程序被終止。編程軟件自動地為主程序和子程序添加無條件返回指令。 ??類似地,可以在主程序中用觸點電路驅動END(有條件結束)指令。 圖6-7子程序調用和返回 a)主程序b)子程序 相關分類 |
推薦產品 信息搜索
上海卓曙自動化設備有限公司
|