西門子plc子程序局部變量介紹
西門子plc的程序結(jié)構(gòu)是構(gòu)成PLC程序的各種網(wǎng)絡(luò)(網(wǎng)絡(luò))或“功能塊”的組織和管理形式。 西門子plc無論plc控制系統(tǒng)有多復(fù)雜,西門子plc程序編輯量基本編程指令的集合。 設(shè)計者可以根據(jù)控制對象的各個部分的不同要求,通過使用基本指令,創(chuàng)建相應(yīng)的程序網(wǎng)絡(luò)(網(wǎng)絡(luò))或由多個網(wǎng)絡(luò)組成的簡單“功能塊”。在此基礎(chǔ)上,只要這些程序網(wǎng)絡(luò)或功能塊按照S7程序指定的格式按照plc控制系統(tǒng)的動作要求進行排列和組合,就可以形成完整的PLC程序。
1、西門子plc的程序結(jié)構(gòu)S7-200 過程映像輸入/輸出(I/Q),可變存儲器V,內(nèi)部存儲器位M,定時器T,計數(shù)器C等是全局變量,S7-200的程序組織單元(POU)包括主程序,子程序和中斷程序。相反,全局變量可用于每個POU。
以下是子例程可以使用的局部變量:
1)TEMP(臨時變量)是臨時存儲在本地數(shù)據(jù)區(qū)域中的變量。僅在執(zhí)行POU時,才使用定義的臨時變量。執(zhí)行POU后,不再保存臨時變量的值。
2)IN是調(diào)用子程序提供的輸入?yún)?shù)。
3)OUT是返回給調(diào)用的輸出參數(shù)。
4)IN_OUT是一個input_output參數(shù),其初始值由調(diào)用它的POU傳送到子程序,并將子程序的執(zhí)行結(jié)果返回給使用相同變量調(diào)用它的POU。臨時變量temp通常用于中斷程序的局部變量。這些制造商的程序員為設(shè)備的每個組件或過程函數(shù)編寫了大量通用子程序。通過程序之間的通話,這就像使用數(shù)字集成電路芯片來形成復(fù)雜的數(shù)字電路。 如果子例程中沒有局部變量,則它只能通過調(diào)用它的程序與全局變量交換數(shù)據(jù)。只能在子程序中使用全局變量。
將子例程和中斷移植到其他項目時,需要重新排列它們使用的全局變量,以確保沒有地址沖突。當程序點數(shù)非常多時,子程序和中斷程序重新分配地址的工作量非常大。 如果子例程和中斷例程具有局部變量,并且它們僅在內(nèi)部使用局部變量,則它們不使用全局變量。由于與其他POU沒有地址沖突,因此您可以將子例程遷移到其他項目而不進行任何更改。
臨時變量temp通常用于中斷程序的局部變量。具有輸入、輸出參數(shù)和局部變量的子程序?qū)崿F(xiàn)結(jié)構(gòu)化編程,這些制造商的程序員為設(shè)備的每個組件或過程函數(shù)編寫了大量通用子程序。調(diào)用的子程序即使你不知道子程序的源程序,但要知道程序的功能和輸入輸出參數(shù)的含義,你就可以快速“捕獲”滿足不同用戶需求的控制程序。它們沒有專用的內(nèi)存區(qū)域,臨時變量中的數(shù)據(jù)是根據(jù)函數(shù)執(zhí)行結(jié)束而定的。
西門子plc全局變量可用于保存函數(shù)執(zhí)行完畢后需要保存的數(shù)據(jù),但會影響函數(shù)的可移植性,功能塊是由用戶用其自己的專用存儲區(qū)域(即,背景數(shù)據(jù)塊)寫入的程序塊。功能塊的輸入,輸出參數(shù)和靜態(tài)變量存儲在指定的實例數(shù)據(jù)塊中,臨時變量存儲在本地數(shù)據(jù)堆棧中,后臺數(shù)據(jù)塊中的數(shù)據(jù)不會丟失,但本地數(shù)據(jù)堆棧中的數(shù)據(jù)不會丟失保存,功能塊采用C ++的概念 - 就像封裝一樣,它封裝了程序和數(shù)據(jù),非常便于攜帶。
標題:西門子plc子程序局部變量介紹 地址:http://m.zengman.cn/hangye/3377.html