西門子的S7-200的程序結(jié)構(gòu)
過(guò)程映像輸入/輸出(I/Q)、變量存儲(chǔ)器V、內(nèi)部存儲(chǔ)器位M、定時(shí)器T、計(jì)數(shù)器C等屬于全局變量。S7-200的程序組織單元(ProgramOrganizationalUnit,簡(jiǎn)稱為POU)包括主程序、子程序和中斷程序。每個(gè)POU均有自己的64字節(jié)局部變量,局部變量只能在它所在的POU中使用。與此相反,全局變量可以在各POU中使用。
下面是子程序可以使用的局部變量:
1)TEMP(臨時(shí)變量)是暫時(shí)保存在局部數(shù)據(jù)區(qū)中的變量。只有在執(zhí)行該P(yáng)OU時(shí),定義的臨時(shí)變量才被使用,POU執(zhí)行完后,不再保存臨時(shí)變量的數(shù)值。
2)IN是由調(diào)用它的POU提供的輸入?yún)?shù)。
3)OUT是返回給調(diào)用它的POU的輸出參數(shù)(子程序的執(zhí)行結(jié)果)。
4)IN_OUT是輸入_輸出參數(shù),其初始值由調(diào)用它的POU傳送給子程序,并用同一變量將子程序的執(zhí)行結(jié)果返回給調(diào)用它的POU。
主程序和中斷程序的局部變量中只有臨時(shí)變量TEMP。
具有輸入、輸出參數(shù)和局部變量的子程序易于實(shí)現(xiàn)結(jié)構(gòu)化編程,對(duì)于長(zhǎng)期生產(chǎn)同類設(shè)備或生產(chǎn)線的廠家尤為有用。這些廠家的編程人員為設(shè)備的各組件或工藝功能編寫(xiě)了大量的通用的子程序。即使不知道子程序的內(nèi)部代碼,只要知道子程序的功能和輸入、輸出參數(shù)的意義,就可以通過(guò)程序之間的調(diào)用快速“組裝”出滿足不同用戶要求的控制程序。就好像用數(shù)字集成電路芯片組成復(fù)雜的數(shù)字電路一樣。
子程序如果沒(méi)有輸入、輸出參數(shù),它和調(diào)用它的程序之間沒(méi)有清晰的接口,很難實(shí)現(xiàn)結(jié)構(gòu)化編程。
子程序如果沒(méi)有局部變量,它和調(diào)用它的程序之間只能通過(guò)全局變量來(lái)交換數(shù)據(jù),子程序內(nèi)部也只能使用全局變量。將子程序和中斷程序移植到別的項(xiàng)目時(shí),需要重新統(tǒng)一安排它們使用的全局變量,以保證不會(huì)出現(xiàn)地址沖突。當(dāng)程序很復(fù)雜,子程序和中斷程序很多時(shí),這種重新分配地址的工作量非常大。
如果子程序和中斷程序有局部變量,并且它們內(nèi)部只使用局部變量,不使用全局變量,因?yàn)榕c其他POU沒(méi)有地址沖突,不需作任何改動(dòng),就可以將子程序移植到別的項(xiàng)目中去。
140CPS51100C
140CPS52400
140CPS52400C
140CPU11302
140CPU11302C
140CPU11303
140CPU11303C
140CPU31110
140CPU43412UC
140CPU53414B
140CPU53414BC
140CPU65150
140CPU65150C
140CPU65160
140CPU65160C
140CPU65160S
140CPU65260
140CPU65260C
140CPU67160
140CPU67160C
140CPU67160S
140CPU67261
140CPU67261C
ACTFP2L3S19S30
ACTFP2CL3S19S50
140CRA21110
140CRA21110C
140CRA21120
140CRA21120C
140CRA21210
140CRA21210C
140CRA21220
140CRA21220C
140CRP31200C
140CRP31200
140CRA31200C
140CRA31200
140CRA93100
140CRA93100C
140CRA93101
140CRA93101C
140CRA93200
140CRA93200C
140CRP93100
140CRP93100C
140CRP93200
140CRP93200C
140DAI34000
140DAI34000C
140DAI35300
140DAI35300C
140DAI45300
140DAI45300C
140DAI54000
140DAI54000C
140DAI54300
140DAI54300C
140DAI55300
140DAI55300C
140DAI74000
140DAI74000C
140DAI75300
140DAI75300C
140DAM59000
140DAM59000C
140DAO84000
140DAO84000C
140DAO84010
140DAO84010C
140DAO84210
140DAO84210C
140DAO84220
140DAO84220C
140DAO85300