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