西門子S7-200PLC用戶程序可以采用主、子程序結構或普通線性化結構。當采用普通線性化結構時,只需要編制主程序OBl;當采用主、子程序式分塊結構時,PLC程序由主程序(OBl)、子程序(SBRn)、中斷程序( INRn)等組成。
S7-200 PLC的主、子程序結構對程序塊的內部排列有規定的要求。主程序(OBl)必須進行編寫,且位于程序的最前面;隨后是子程序( SBRn)與中斷程序(INRn)。在S7-200中,子程序(SBRn)、中斷程序(INRn)可以根據需要進行選用與編寫。
(1)主程序
S7-200主程序代號規定為OB1。早期的S7-200 PLC用戶程序不分塊,需要在主程序之后接著安排子程序與中斷程序,因此,主程序的結束應使用指令MEND作為標記。但如果使用的是Micro/WIN32編程軟件,主程序、子程序、中斷程序都可以通過獨立的區域進行編程,通過編程軟件的自動編譯功能,可以對程序進行自動的編排與調整,主程序的結束無須再編寫指令MEND,如圖1 (a)所示。
圖1 S7-200的程序結構與執行過程
主程序081在S7-200 PLC中為用戶程序的組織、管理者,必須位于PLC用戶程序的最前面,以保證每次執行PLC循環時,首先對OB1進行掃描。
同樣,早期的S7-200在子程序結束處應使用指令RET作為返回標記,子程序SRBn必須編在主程序OB1的結束指令MEND之后。采用了Micro/WIN32編程軟件后,這些由編程軟件進行自動編排與調整。
子程序SRBn在S7-200 PLC中為可選部分,可以編寫也可以不編寫。子程序的執行通過主程序OB1的對該子程序的調用實現,并非每次PLC循環都需要執行全部子程序。
(3)中斷程序
S7-200 PLC的中斷程序代號為INTn(n為十進制數值,可以是0--127),用于區別不同的中斷程序。早期的中斷程序結束應使用指令RETI作為返回標記,中斷程序INTn同樣必須編在主程序OB1的結束指令MEND之后,且習慣上是放在子程序SRBn之后(也可以放在子程序之前)。
中斷程序INTn在S7-200中同樣為可以選擇的部分,它需要通過主程序OB1的調用才能執行,并非每次PLC循環都需要執行全部中斷程序。
S7-200的程序結構與執行過程如圖1 (c)所示。
(4)局部變量堆棧
在進行PLC程序設計時,程序中有很多為了簡化邏輯塊結構而設置的臨時狀態、數據存儲單元,這些存儲單元實際上只是為了方便編程、檢查而設的臨時存儲單元,它與邏輯外部的程序無關,在S7中將其稱為“局部變量”或“臨時變量(Temp)”。
根據需要,設計者可以在S7-200的OB1、SBRn、INTn中使用“臨時變量”。“臨時變量”存儲在局部變量數據堆棧(L)中,這一區域為全部程序塊所公用,只可以用于OB1或SBRn、INTn塊內部使用的中間運算結果寄存(這些中間運算結果不可以用于塊外部)。局部變量堆棧在程序塊執行完成后,數據將被其他邏輯所需要的內容所替代。
如果需要保存可以用于其他邏輯塊的狀態,應使用PLC的內部標志寄存器M或變量存儲器V。
S7-200 PLC的主、子程序結構對程序塊的內部排列有規定的要求。主程序(OBl)必須進行編寫,且位于程序的最前面;隨后是子程序( SBRn)與中斷程序(INRn)。在S7-200中,子程序(SBRn)、中斷程序(INRn)可以根據需要進行選用與編寫。
(1)主程序
S7-200主程序代號規定為OB1。早期的S7-200 PLC用戶程序不分塊,需要在主程序之后接著安排子程序與中斷程序,因此,主程序的結束應使用指令MEND作為標記。但如果使用的是Micro/WIN32編程軟件,主程序、子程序、中斷程序都可以通過獨立的區域進行編程,通過編程軟件的自動編譯功能,可以對程序進行自動的編排與調整,主程序的結束無須再編寫指令MEND,如圖1 (a)所示。
圖1 S7-200的程序結構與執行過程
主程序081在S7-200 PLC中為用戶程序的組織、管理者,必須位于PLC用戶程序的最前面,以保證每次執行PLC循環時,首先對OB1進行掃描。
同樣,早期的S7-200在子程序結束處應使用指令RET作為返回標記,子程序SRBn必須編在主程序OB1的結束指令MEND之后。采用了Micro/WIN32編程軟件后,這些由編程軟件進行自動編排與調整。
子程序SRBn在S7-200 PLC中為可選部分,可以編寫也可以不編寫。子程序的執行通過主程序OB1的對該子程序的調用實現,并非每次PLC循環都需要執行全部子程序。
(3)中斷程序
S7-200 PLC的中斷程序代號為INTn(n為十進制數值,可以是0--127),用于區別不同的中斷程序。早期的中斷程序結束應使用指令RETI作為返回標記,中斷程序INTn同樣必須編在主程序OB1的結束指令MEND之后,且習慣上是放在子程序SRBn之后(也可以放在子程序之前)。
中斷程序INTn在S7-200中同樣為可以選擇的部分,它需要通過主程序OB1的調用才能執行,并非每次PLC循環都需要執行全部中斷程序。
S7-200的程序結構與執行過程如圖1 (c)所示。
(4)局部變量堆棧
在進行PLC程序設計時,程序中有很多為了簡化邏輯塊結構而設置的臨時狀態、數據存儲單元,這些存儲單元實際上只是為了方便編程、檢查而設的臨時存儲單元,它與邏輯外部的程序無關,在S7中將其稱為“局部變量”或“臨時變量(Temp)”。
根據需要,設計者可以在S7-200的OB1、SBRn、INTn中使用“臨時變量”。“臨時變量”存儲在局部變量數據堆棧(L)中,這一區域為全部程序塊所公用,只可以用于OB1或SBRn、INTn塊內部使用的中間運算結果寄存(這些中間運算結果不可以用于塊外部)。局部變量堆棧在程序塊執行完成后,數據將被其他邏輯所需要的內容所替代。
如果需要保存可以用于其他邏輯塊的狀態,應使用PLC的內部標志寄存器M或變量存儲器V。
























粵公網安備 44030402000745號