在S7-CPU中使用嵌套程序的注意事项

来源:电工天下时间:2020-04-01 14:42:38 作者:老电工手机版>>

在S7-CPU中使用嵌套程序的注意事项

回答:S7-CPU支持嵌套程序,但对于不同的CPU类型,在使用时需要注意一些问题。

1. 不同的CPU类型,支持的嵌套程序深度不同,用户可在CPU的技术数据中查到此参数,以6ES7315-2AG10-0AB0为例。

S7-CPU中使用嵌套程序的注意事项

图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。

S7-CPU中使用嵌套程序的注意事项

图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:

S7-CPU中使用嵌套程序的注意事项

图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多个寄存器累加程序

    <p><strong>西门子plc中wincc编程注意事项</strong></p> <p>1、项目程序命名为“项目名称_日期”(修改程序太多,容易记混)。</p> <p>2、改动程序时一定要有原程序的备份(组态硬件

    西门子plc S7200多个寄存器的累加程序,计算CS校验码,如何实现多个寄存器的累加,多个寄存器的地址是连续的,可用指针指令进行累加。

    时间:2022-09-18 14:31:47

  • plc流量累积计算程序实例

    plc流量累积计算程序实例

    plc流量累积计算程序实例,plc计算流量累积的方法,plc在流量显示和累积计量上的应用,西门子plc中如何解决流量累积问题的方法,一起来了解下。

    时间:2022-09-18 14:29:15

  • 西门子plc cpu模块中断(lnterrupts)设定的分类

    西门子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程序控制指令的分类与功能,西门子plc程序控制指令分为结束指令END、停止指令STOP、看门狗复位指令WDR、跳转及标号指令、循环指令(FOR和NEXT)等,这些指令的用应实例。

    时间:2020-04-23 10:41:47

  • 西门子s7-300子程序执行时间的是多少

    西门子s7-300子程序执行时间的是多少

    有关西门子s7-300执行子程序时间的查看方法,分享了西门子s7-300执行子程序时间的具体查看步骤,可在主程序调用该子程序的前后分别读取cpu的系统时钟,利用时钟指令fc34进行相减进行编程运算。

    时间:2020-04-08 13:32:13

  • 西门子s7-300下载程序报错原因分析

    西门子s7-300下载程序报错原因分析

    有关西门子s7-300下载程序的报错原因,西门子s7-300下载程序报错原因查找方法,地址间断连续,说明模拟量模块有问题,在硬件组态中点击“离线—在线”。

    时间:2020-04-08 12:38:52

  • 西门子s7-300 cpu系统扫描循环时间的查看办法

    西门子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扫描时间过长系统停机怎么办?

    西门子s7-300中cpu扫描时间过长导致系统停机的解决方法,CPU会因看门狗超时而导致系统停机,同时会触发定时错误OB80,可以参考下本文的解决方法与步骤。

    时间:2020-04-08 11:51:37

推荐文章

Copyright © 2015 - 2022 dgjs123.com All Rights Reserved

电工天下 版权所有