详细介绍
西门子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模块控制器