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进入停机状态。
根据自动控制原理,车速斜坡响应可以分为过阻尼响应、临界阻尼响应和欠阻尼响应。理论上说,临界阻尼响应是理想的控制方式,这种响应方式既实现了控制的快速性又实现了控制的稳定性;过阻尼响应是为了稳定性牺牲快速性;欠阻尼响应则是为了快速性牺牲稳定性。然而,临界阻尼由于条件过于苛刻,在实际控制中是无法实现的。
根据剩余的两种响应曲线的特性,笔者认为CPU启动时好使用欠阻尼响应曲线,其理由是:CPU启动状态下,对增塑剂积累时间的要求**于增塑剂含量的稳定性;而其他状态下使用过阻尼响应曲线,此时对含量的稳定要求**于积累的快速性。
13捐一元爱心送营养2013壹基金公益映像节水立方中公益平台阿里巴巴公益广告大赛思源方舟防灾减灾2013爱佑慈善晚宴佳能影像公益贫困童图书漂流箱项目福特汽车环保奖女童权益保护**行动奔驰自然保护项目佳能希望小学色彩教室卡夫希望厨房妇基母亲包邮活动微博-达人通《九阴真经》唯我*尊礼包《梦幻西游手游版》夏日情谊卡《星际战甲》新浪高级特权礼包《问道》天书奇谭**礼包《新倩女幽魂》新浪特权礼包《热血
因此,利用S7-300启动时的组织块OB100在CPU启动中只执行一次的特性,对增塑剂伺服电机的控制方式依据机组不同的启动状态采取了不同响应曲线下的控制方法。具体来说,在CPU启动时(此时增塑剂存储量必定为零),通过启动组织块OB100中送出高速运转命令至增塑剂伺服电机,使控制曲线成为欠阻尼响应状态以实现对存储器中增塑剂的快速积累。而在非CPU启动状态,控制增塑剂伺服电机的FC功能块将送出普通速度命令,使控制曲线成为比较接近临界阻尼的过阻尼响应状态。
新的设计完全避免了CPU重启时带来的增塑剂积累过慢的问题、减少了废品数量,因此这样的设计不会影响正常生产状况时增塑剂含量的稳定性。
(2) 对滤棒剔除支数的计算策略
在纤维滤棒成型机的生产中,为保证滤棒质量,每当速度低于一定的设定值时,机组就会剔除此时的滤棒。此时机组的速度是不断变化的,按通常方式无法计算出具体的剔除支数。这对统计生产效率带来了相当的困难。
笔者可以得到动态的车速反馈,但这条反馈曲线是不断波动和变化的非线性曲线。对于非线性曲线,数学上只能够采用面积积分求解的计算方法。对于此项目就是要求给出一定时间内主电机的圆周行程,即机组一段时间内所生产的滤棒长度。
从这一角度出发,笔者考虑采用了对车速进行模拟积分的计算方法,即从积分的基本定义出发,求出剔除时间内的滤棒生产长度L=Σ(Δv*Δt),再除以单个滤棒长度得剔除支数的计算方法。
按照积分的定义要求,积分求解是在一定条件下才能够成立。这个条件就是Δt要足够的小即Δt→0。在实际过程中,近似认为Δt=20ms时可以满足条件。此时,计算得出的滤棒支数与实际滤棒支数的误差在±3支以内。在精度上,以高生产速度3300支/分钟计(此时滤棒长度为120mm),±3支的精度是完全可以满足精度要求。所以笔者认为只要将Δt控制在20ms时就可以满足积分求解的条件。
原系统的PLC扫描一周的时间高达几十毫秒,显然不满足要求。而此项目采用的S7-315-2DP,其单指令扫描周期为10μs级、整个扫描周期被缩短为7~8ms,这样就满足了积分计算的要求。
(3) 对拼接纸圈的控制策略
改造之前,纤维滤棒成型机执行的是降低运行速度再进行纸圈拼接。这种降速接纸方式对实际生产是不利的:每次降速都会造成车速的大幅度变化,影响了滤棒的质量。为消除这种影响,笔者采用了不降速拼接的方法。
不降速拼接和降速拼接并没有本质的区别:两者采用的接纸动作一样,两者只是在机械结构和电气控制元件上有区别。接纸速度的提高势必使纸圈的静摩擦力同等上升。如果转速斜坡率过高会产生很大的静摩擦力,该力会撕裂纸圈。如果转速斜坡率过低,拼接时的纸圈浪费将增加。
为避免烦琐,该项目放弃变频器对接纸电机转速的分段控制。为求出静摩擦力和纸圈长度两者之间的优控制,笔者对接纸电机上升时间采取优筛选法。通过优筛选法得到的电机上升时间大约为3.4s。考虑到生产情况及电磁阀等器件的时滞效应,将这一时间进一步放宽为3.5s。
3 程序设计
程序设计采用了结构化设计,将所需实现的各主要功能编制成为S7-300中的用户功能块(FC块),在主程序循环模块(组织块OB1)中调用这些已经编制好的子程序。
程序设计分成硬件设计和软件设计两方面。在硬件方面针对系统要求进行设计,在软件方面则按需要编制了速度计算模块、报警和故障模块、伺服电机执行模块、增塑剂执行模块、生产统计计算模块等FC块和预设、保持系统及生产数据的数据块DB块。
(1) 硬件设计与组态
本系统在S7-300的硬件方面采用了1块PS307 5A电源模块,1块CPU-315-2DP,4块24V/0V SM321数字量输入模块,3块24V/0.5A SM322数字量输出模块,1块FM352-2高速计数模块,2块SM331模拟量输入模块,1块SM332模拟量输出模块以及用于DP总线通讯的IM153-1通讯模块1块。
S7-300外围设备为5个伺服电机的DP通讯端。
对上述硬件按要求进行组态,分别占据Profibus-DP通讯端的2、3~7和9号站,具体硬件组态如图3所示。
(2) 软件设计
由于编制的用户功能模块很多,限于篇幅,在这里不能一一作出介绍。以下介绍几个比较重要的用户功能模块。
① 数据块组(Group of Data-Blocks)
数据块组由一系列数据块组成。这些数据块除了一部分是S7-300程序中FB(功能块的一种)所要求的之外,其他的数据块都是用户自定义的。这是因为生产中机组的一些系统和生产数据必须被预设或保存。由于S7-300内部保持型M区的保存数量相对不足,例如:CPU315-2DP中整个可使用的M区的容量仅1024Bytes。同时,程序运行中所大量使用中间参数也需要不可重复的地址空间,所以将大部分的数据(特别是在触摸屏上显示的参数)编制成保持型DB块。
② 速度计算模块(FC for Speed)
虽然机组的高生产能力为400m/min,但是在许多烟厂并不需要一直运行在高速度下。该项目提供可从触摸屏上选择5档不同的车速系统,本模块就是将无序设定的参数按由大到小的方式降序排列,并在触摸屏上以这种次序显示出来。在程序内部,本模块会进行数据转换并将转换后的数据提供给伺服电机执行模块 ③ 伺服电机执行模块(FC for Servo-Motor)
在得到速度计算模块和一些其他模块(如开松辊参数模块等)的数据后,伺服电机执行模块会向对应的伺服控制块发出指令和接收伺服电机状态参数。指令包括伺服控制字、车速命令、快停命令、上升时间和下降时间等,状态参数包括电机当前运行速度等。这些指令和参数通过过程通道和参数通道两种方式控制“一主三从”共计4个伺服电机。
④ 增塑剂执行模块(FC for Glyceride-Motor)
控制增塑剂的伺服电机是相对独立于其他伺服电机,控制结构类似于主电机。增塑剂执行模块通过内部计算得到增塑剂伺服电机的运行速度。同时,由于存在增塑剂软件补偿的问题,所以高速和低速运行的参数为不同的两组参数,程序按设置发送。这是这个模块区别于伺服电机执行模块的地方。
⑤ 生产统计计算模块(FC for Statistics)
由于要在生产中向工作人员提供实时的生产状况,所以编制了这个功能块,这样就可以通过多次反复调用FC205来得到各班次的生产状况。这样节约了编程的时间和工作量,也同时减少了程序编写出错的隐患。
4 结语
该控制系统全面提高了纤维滤棒成型机组的总体性能,控制功能得到完善和提升。将旧的交流变频控制系统升级为由S7-300控制下交流伺服系统,使KDF2型纤维滤棒成型机具有新的竞争力。