SIMATIC S7-400 可采用具有不同性能级别的各种 CPU:
CPU 412-1、CPU 412-2 和 CPU 412-2 PN:
用于中等性能的小型工厂。
CPU 414-2、CPU 414-3、CPU 414-3 PN/DP:
用于具有对编程、处理速度和通信有额外要求的中等规模工厂。
CPU 416-2、CPU 416-3、CPU 416-3 PN/DP:
在高端性能范围内具有较高要求的工厂。
CPU 417-4 DP:
在高端性能范围内具有较严格要求的工厂。
CPU 412-5H、CPU 414-5H、CPU 416-5H 和 CPU 417-4H:
用于 SIMATIC S7-400H 和 S7-400F/FH。
CPU 414F-3 PN/DP、CPU 416F-2 和 CPU 416F-3 PN/DP:
用于构建故障安全型自动化系统,适用于具有较高安全要求的工厂。
设计
所有 CPU 装在带集成的控制单元和显示单元的塑料外壳中。 相同的单元具有相同的功能。
前面板上有:
LED指示灯:
用于状态和故障指示。
波动开关:
用于选择运行模式。
存储器卡插槽(扩展装载存储器)
组合 MPI/DP 端口。
内置 PROFIBUS-DP 接口(非 CPU 412-1)。
电池插座:
用于后备电池的外部供电。
除 CPU 412-1 处理器外,所有 CPU 具有:
PROFIBUS DP 接口:
用于连接分布式 I/O。根据组态的不同,也可用于与 OP 或 PG/PC 的通讯。
CPU 414-3 PN/DP, CPU 416-3 PN/DP 和 CPU 416F-3 PN/DP 也可以连接 PROFINET。 每个模板有一个双口的 PROFINET 接口。
高端 CPU 还具有:
PROFIBUS DP 接口模板备用插槽:
用于链接其他 DP 网络。
此外,CPU 按照其性能进行分级:例如RAM、地址区大小、可装载块的数量以及处理时间。
功能
存储器概念
所有 S7-400 CPU 均具有两种类型的存储器。工作存储器的细分可将性能提高一倍。当一个标准处理器需要访问其 RAM 至少两次时,S7-400 **处理器可在一个循环周期中同时访问代码存储器和数据存储器。因此,数据总线和代码总线也是独立的。工作存储器的容量取决于从精细分级的 CPU 系列中所选取的适合的 CPU。
对于小型和中等程序,集成式负载内存 (RAM) 就足够了。对于较大的程序,可通过插入内存卡来增加装载内存。插入式闪存卡可用于在不使用电池的情况下进行*性存储。
块加密
相关功能 (FC) 和 功能块 (FB) 可以加密的方式存储于 CPU 以保护专门知识应用。
问题:在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(嵌套深度太高)。例如:
? 用户在某个**级(如OB1)中调用嵌套程序深度**出所使用CPU支持深度,如*2节(a) 部分所描述。
? 用户在某个**级(如OB1)中调用嵌套程序深度**出所使用CPU支持深度,如*2节(b) 部分所描述。
此时CPU将报16#4575错,如图3所示:
图3:同步错误嵌套1
b) The nesting depth of synchronous errors is too high(同步错误嵌套深度太高)。例如:
? 用户在OB1中使用L DB1.DBB0 语句(CPU中并未下载DB1),
? 此时CPU出现编程错误,将调用OB121。
? 如果用户在下载的OB121中又使用了L DB1.DBB0 指令,将导致CPU停机
此时CPU将报16#4573错,如图4所示:
图4:同步错误嵌套2
c) Error during allocation of local data (分配本地数据错误) 。对于S7-CPU每个**级都有对本地数据大小的限制,如果用户使用的范围**出了此限制,CPU将出现错误。以6ES7315-2AG10-0AB0为例,其每个**级下的本地数据大小为512 BYTE。如下错误使用都可能导致此错误:
? OB1 调用FC1,FC1 中定义的local data(TEMP数据类型)与OB1中定义的local data(TEMP数据类型)总和**出了CPU 对此**级分配的local data 数量。
? OB1 中嵌套调用多个FC, 这些FC 使用的local data 与OB1中定义的local data(TEMP数据类型)总和**过了分配给此**级的local data 数量。
此时CPU将报16#3576错,如图5所示:
图5:分配本地数据错误
? 对于S7-400CPU, 用户可以在硬件配置中调节每个**级下的本地数据大小,以6ES7412-2XG04-0AB0为例,如图6所示:
图6:分配本地数据
4. 当用户在使用嵌套功能出现错误时,对于支持OB88的CPU(例如S7-400CPU),可用通过下载OB88来防止CPU停机,此时CPU将处于SF状态,但OB88不可以再出现嵌套使用错误,否则CPU将进入停机状态。对于不支持OB88的CPU(例如S7-300CPU),当出现嵌套调用错误时,无法避免CPU进入停机状态。