主程序和子程序怎么編 西門子PLC如何在主程序,寫入調(diào)用子程序的命令?
西門子PLC如何在主程序,寫入調(diào)用子程序的命令?你既然說主程序和子程序,通常就是指西門子200PLC中,我就以Micro/Win軟件的操作來說明一下。如下圖:當(dāng)你建立一個(gè)子程序后,該子程序會(huì)出現(xiàn)在“調(diào)
西門子PLC如何在主程序,寫入調(diào)用子程序的命令?
你既然說主程序和子程序,通常就是指西門子200PLC中,我就以Micro/Win軟件的操作來說明一下。
如下圖:
當(dāng)你建立一個(gè)子程序后,該子程序會(huì)出現(xiàn)在“調(diào)用子程序”樹裝目錄下,如我紅框框出來的SBR0是系統(tǒng)默認(rèn)的,一打開軟件就自動(dòng)存在的一個(gè)子程序! SBR1是我昨天答題利用向?qū)Ы⒌腜ID指令子程序。
在梯形圖視圖下,想要調(diào)用子程序很簡(jiǎn)單,就是鼠標(biāo)左鍵按住PID0_INIT(SBR1),然后將其拖放到右側(cè)主程序的程序編輯窗口中即可:
然后,將對(duì)應(yīng)的引腳填寫入對(duì)應(yīng)格式的變量即可,如下圖:
還需要強(qiáng)調(diào)的一點(diǎn)是,西門子200PLC中,很多很多的指令都不能直接接左邊的母線,都必須有一個(gè)接點(diǎn)指令,這里我使用的SM0.0就是一開機(jī)就一直接通的一個(gè)接點(diǎn)指令。如果,這里不使用一個(gè)接點(diǎn)指令,那么編譯的時(shí)候會(huì)報(bào)錯(cuò)!
很多指令都需要一個(gè)接點(diǎn)指令才能和左母線連接,但是有那么幾個(gè)是不需要的,在我的某些文章中可能有提到。編譯的時(shí)候都會(huì)有提示,所以不必太介意!
就說這么多了,希望能對(duì)你有點(diǎn)幫助,謝謝!
子程序和主程序有什么區(qū)別?
在計(jì)算機(jī)科學(xué)中,子程序(英語:Subroutine, procedure, function, routine, method, subprogram, callable unit),是一個(gè)大型程序中的某部份代碼,由一個(gè)或多個(gè)語句塊組成。它負(fù)責(zé)完成某項(xiàng)特定任務(wù),而且相較于其他代碼,具備相對(duì)的獨(dú)立性。一般會(huì)有輸入?yún)?shù)并有返回值,提供對(duì)過程的封裝和細(xì)節(jié)的隱藏。這些代碼通常被集成為軟件庫。函數(shù)在面向過程的語言中已經(jīng)出現(xiàn)。是結(jié)構(gòu)(Struct)和類(Class)的前身。本身就是對(duì)具有相關(guān)性語句的歸類和對(duì)某過程的抽象。
1、計(jì)算機(jī)基本的被獨(dú)立提供出來的程序,它能夠調(diào)用子程序,而不被任何子程序所調(diào)用。它是計(jì)算機(jī)程序的中心部分。
2、包含調(diào)用子程序的程序稱為主程序。主程序不能被它的子程序調(diào)用。主程序和子程序兩者是相對(duì)的。比如,某主程序在某個(gè)過程中調(diào)用了子程序A,子程序A在某個(gè)過程中又調(diào)用了子程序B,那么A對(duì)主程序而言是子程序,但對(duì)B而言它又成了主程序。
主程序和子程序之間有何區(qū)別?
通俗來講,主程序是一個(gè)程序中最先執(zhí)行的部分,在主程序中可以調(diào)用某個(gè)或某些子程序,這些個(gè)子程序結(jié)束后依然回到主程序。舉幾個(gè)例子,Pascal里的主程序部分在沒有任何前綴形容的一對(duì)begin end.里;C/C 里的主程序部分在函數(shù)main()中,標(biāo)準(zhǔn)C的返回值為int,VC中可以為void;Java里的主程序部分在方法main()中,必須是public static void類型的。