西門子S7-300CPU317-2DP模塊控制器
【SIEMENS】湖南國雄智能科技有限公司
湖南國雄智能科技有限公司是中國西門子的合作伙伴,公司主要從事工業自動化產品的集成,銷售各維修。 致力于為您提供在食品、化工、水泥、電力、環保等領域的電氣及自動化技術的完整解決方案,包括自動化產品及系統、工程項目執行及管理、主要過程控制領域技術支持,以及專業的售后服務、培訓等。
在S7-CPU中使用嵌套程序需要注意什么,如何使用?
回答:S7-CPU支持嵌套程序,但對于不同的CPU類型,在使用時需要注意一些問題。
1.不同的CPU類型,支持的嵌套程序深度不同,用戶可在CPU的技術數據中查到此參數,以6ES7315-2AG10-0AB0為例。
b)在某個優先級中調用某個FC,此FC多次調用自身。例如,在OB1(優先級為1)調用FC1,FC1中仍然調用FC1,用戶在FC1的程序中必須編程累計FC1被調用的次數,如果達到了7次,則需要從FC1中跳出調用(此方法即為軟件行業廣泛應用的遞歸編程方法)。如果在FC1調用自身次數超出了CPU允許的嵌套深度,此時會導致CPU停機。
3.當用戶在使用嵌套功能時,可能出現幾種錯誤:
a)Thenestingdepthofblockcalls(U-Stack)istoohigh(嵌套深度太高)。例如:
•用戶在某個優先級(如OB1)中調用嵌套程序深度超出所使用CPU支持深度,如第2節(a)部分所描述。
•用戶在某個優先級(如OB1)中調用嵌套程序深度超出所使用CPU支持深度,如第2節(b)部分所描述。
此時CPU將報16#4575錯,如圖3所示:
c)Errorduringallocationoflocaldata(分配本地數據錯誤)。對于S7-CPU每個優先級都有對本地數據大小的限制,如果用戶使用的范圍超出了此限制,CPU將出現錯誤。以6ES7315-2AG10-0AB0為例,其每個優先級下的本地數據大小為512BYTE。如下錯誤使用都可能導致此錯誤:
•OB1調用FC1,FC1中定義的localdata(TEMP數據類型)與OB1中定義的localdata(TEMP數據類型)總和超出了CPU對此優先級分配的localdata數量。
•OB1中嵌套調用多個FC,這些FC使用的localdata與OB1中定義的localdata(TEMP數據類型)總和超過了分配給此優先級的localdata數量。
此時CPU將報16#3576錯,如圖5所示:
4.當用戶在使用嵌套功能出現錯誤時,對于支持OB88的CPU(例如S7-400CPU),可用通過下載OB88來防止CPU停機,此時CPU將處于SF狀態,但OB88不可以再出現嵌套使用錯誤,否則CPU將進入停機狀態。對于不支持OB88的CPU(例如S7-300CPU),當出現嵌套調用錯誤時,無法避免CPU進入停機狀態。
注意:本文中主要以OB1為例說明嵌套調用,在實際使用中,用戶應當注意每個優先級下對嵌套調用的注意事項。
西門子S7-300CPU317-2DP模塊控制器











所有評論僅代表網友意見,與本站立場無關。