在S7-CPU中使用嵌套程序的注意事项
来源:电工天下时间:2020-04-01 14:42:38 作者:老电工手机版>>
在S7-CPU中使用嵌套程序的注意事项
回答:S7-CPU支持嵌套程序,但对于不同的CPU类型,在使用时需要注意一些问题。
1. 不同的CPU类型,支持的嵌套程序深度不同,用户可在CPU的技术数据中查到此参数,以6ES7315-2AG10-0AB0为例。
图1:CPU的嵌套深度参数
2. 用户按照以下方式使用嵌套功能:
a) 在某个优先级组织块中调用多个嵌套FC/FB。
例如,在OB1 (优先级为1)调用FC1,FC1中调用FC2,FC2中调用FC3,等等,一直到FC7,与OB1共8层深度。如果在FC7 中又调用了FC8 ,此时会导致CPU 停机,在CPU在线信息界面中可查看到此情况,如图2所示。用户也可在OB35(优先级为12)调用FC11,FC11中调用FC12,FC12中调用FC13,等等,一直到FC17。
图2:嵌套调用
b) 在某个优先级中调用某个FC,此FC多次调用自身。
例如,在OB1 (优先级为1)调用FC1,FC1中仍然调用FC1,用户在FC1 的程序中必须编程累计FC1被调用的次数,如果达到了7次,则需要从FC1 中跳出调用(此方法即为软件行业广泛应用的递归编程方法)。
如果在FC1 调用自身次数超出了CPU允许的嵌套深度,此时会导致CPU停机。
3、当用户在使用嵌套功能时,可能出现几种错误:
a) The nesting depth of block calls (U-Stack) is too high(嵌套深度太高)。
例如:
1、用户在某个优先级(如OB1)中调用嵌套程序深度超出所使用CPU支持深度,如第2节(a) 部分所描述。
2、用户在某个优先级(如OB1)中调用嵌套程序深度超出所使用CPU支持深度,如第2节(b) 部分所描述。
此时CPU将报16#4575错,如图3:
图3:同步错误嵌套1
b) The nesting depth of synchronous errors is too high(同步错误嵌套深度太高)。例如:
1、用户在OB1中使用L DB1.DBB0 语句(CPU中并未下载DB1),
2、此时CPU出现编程错误,将调用OB121。
3、如果用户在下载的OB121中又使用了L DB1.DBB0 指令,将导致CPU停机。
相关文章
西门子plc S7200多个寄存器累加程序
西门子plc S7200多个寄存器的累加程序,计算CS校验码,如何实现多个寄存器的累加,多个寄存器的地址是连续的,可用指针指令进行累加。
时间:2022-09-18 14:31:47
plc流量累积计算程序实例
plc流量累积计算程序实例,plc计算流量累积的方法,plc在流量显示和累积计量上的应用,西门子plc中如何解决流量累积问题的方法,一起来了解下。
时间:2022-09-18 14:29:15
西门子plc cpu模块中断(lnterrupts)设定的分类
西门子plc cpu模块中断(lnterrupts)设定的分类,包括硬件中断(Hardware Interrupts)设定、延时中断(Time-Delay Interrupts)设定、PROFIBUS-DP中断(lnterrupts for DPVl)设定、异步出错中断(Asynchronous Error Interrupts)设定。
时间:2020-04-25 13:50:53
西门子plc程序控制指令的分类与功能说明
西门子plc程序控制指令的分类与功能,西门子plc程序控制指令分为结束指令END、停止指令STOP、看门狗复位指令WDR、跳转及标号指令、循环指令(FOR和NEXT)等,这些指令的用应实例。
时间:2020-04-23 10:41:47
西门子s7-300子程序执行时间的是多少
有关西门子s7-300执行子程序时间的查看方法,分享了西门子s7-300执行子程序时间的具体查看步骤,可在主程序调用该子程序的前后分别读取cpu的系统时钟,利用时钟指令fc34进行相减进行编程运算。
时间:2020-04-08 13:32:13
西门子s7-300下载程序报错原因分析
有关西门子s7-300下载程序的报错原因,西门子s7-300下载程序报错原因查找方法,地址间断连续,说明模拟量模块有问题,在硬件组态中点击“离线—在线”。
时间:2020-04-08 12:38:52
西门子s7-300 cpu系统扫描循环时间的查看办法
如何查看西门子s7-300中cpu系统扫描循环时间,有二种方法,方法1:将程序下载到plc中,在线连接并查看cpu信息,方法2:通过将OB1对应的临时变量传到M区中,读取CPU的扫描循环时间。
时间:2020-04-08 11:52:20
西门子s7-300中cpu扫描时间过长系统停机怎么办?
西门子s7-300中cpu扫描时间过长导致系统停机的解决方法,CPU会因看门狗超时而导致系统停机,同时会触发定时错误OB80,可以参考下本文的解决方法与步骤。
时间:2020-04-08 11:51:37