西門(mén)子的S7-200的程序結(jié)構(gòu)
過(guò)程映像輸入/輸出(I/Q)、變量存儲(chǔ)器V、內(nèi)部存儲(chǔ)器位M、定時(shí)器T、計(jì)數(shù)器C等屬于全局變量。S7-200的程序組織單元(ProgramOrganizationalUnit,簡(jiǎn)稱(chēng)為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)同類(lèi)設(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)目中去。
電源 TRICON 8310
電源 TRICON 8311
電源 TRICON 8312主處理器 TRICON 3004
模擬輸入 TRICON 3700A
模擬輸入 TRICON 3701
模擬輸入 TRICON 3703E
模擬輸入 TRICON 3704E
頻率模塊 TRICON 3511
數(shù)字輸出 TRICON 3603E
數(shù)字輸出 TRICON 3604E
數(shù)字輸出 TRICON 3607E
數(shù)字輸出 TRICON 3608E
數(shù)字輸出 TRICON 3611E
數(shù)字輸出 TRICON 3613E
數(shù)字輸出 TRICON 3614E
數(shù)字輸出 TRICON 3615E
數(shù)字輸出 TRICON 3617E
數(shù)字輸出 TRICON 3623
數(shù)字輸出 TRICON 3624
數(shù)字輸出 TRICON 3664/3674繼電器輸出 TRICON 3636R模擬輸入 TRICON 3700
數(shù)字輸入 TRICON 3502E
數(shù)字輸入 TRICON 3503E
數(shù)字輸入 TRICON 3504E
數(shù)字輸入 TRICON 3505E
數(shù)字輸入 TRICON 3564數(shù)字輸出 TRICON 3601E
通訊模塊 TRICON 4351
主處理器 TRICON 3005
主處理器 TRICON 3006
主處理器 TRICON 3007
主處理器 TRICON 3008數(shù)字輸入 TRICON 3501E/T