1.可用的编程语言
S7-1500和S7-1200都能使用梯形图(LAD)、功能块图(FBD)和结构化控制语言(SCL)语言。为了和S7-300/400兼容,S7-1500还可以使用STL语言。
2.指令的比较
1)S7-1500的基本指令比S7-1200多9条指令。
2)扩展指令中只有S7-1500有PROFIenergy(使用 PROFINET 进行能源管理)指令。此外S7-1500比S7-1200多11条指令。
3)“技术”类指令S7-1500比S7-1200多5条高速计数器指令。
4)“通信”类指令S7-1200比S7-1500多3条发送电子邮件的指令。
plc-04.jpg
S7-1200 间接寻址指令的应用
S7-1200的间接寻址需要通过数据块中的数组来实现。指令FieldRead通过索引(又称为下标)变量从数组中读取数值,指令FieldWrite 通过索引变量向数组中写数值,使用这两条指令可以实现间接寻址。
索引变量是间接寻址中的地址指针,它的值是要读写的数组元素的索引值。地址指针就像收音机调台的指针,改变指针的位置,指针指向不同电台。改变地址指针中的索引值,指针“指向”数组不同的元素。间接寻址的优点是可以在程序处理期间,通过改变指针的值动态地修改指令中的地址。
首先生成一个名为“数据块1”的全局数据块DB2,在数据块中生成名为“数组1”的数组Array[1..10] of Int,其元素的数据类型为Int。
这两条指令没有列入指令列表和高级指令列表,编程时将收藏夹中的空逻辑框插入程序,点击其中红色的“??”,打开下拉式列表框,可以看到列表框底部的指令FieldWrite或FieldRead。点击生成的指令框中的“???”,用列表设置要写入或读取的数据类型为Int(见下图)。两条指令的参数MEMBER的实参必须是数组的**个元素“数据块1”.数组1[1]。
指令的输入参数索引值“INDEX”是要读写的数组中的元素的下标,数据类型为DINT(双整数)。参数“VALUE”是要写入数组元素的值或要读取的数组元素的值。
(1) 对增塑剂添加的控制策略
起初延用原系统的欠阻尼响应曲线的控制方式。但是,在实际调试过程中,发现该控制方式存在一定的缺陷,具体表现为:每天**次上电开机时,增塑剂存储器中增塑剂积累时间过长,造成一段时间内滤棒增塑剂含量过低。根据售后服务部门的反馈,某些烟厂为保证滤棒质量往往会剔除**盒滤棒。这样会有较大的浪费。
产生这种情况是因为烟厂每天工作结束时或者CPU重启时机组都会停机,并排空存储器中的增塑剂。由于欠阻尼响应到达设定值时间过长,造成开始阶段滤棒增塑剂含量过低。日常生产班次中,每次停机不排空增塑剂,而是在存储器中保有一定储存量。
根据自动控制原理,车速斜坡响应可以分为过阻尼响应、临界阻尼响应和欠阻尼响应。理论上说,临界阻尼响应是较理想的控制方式,这种响应方式既实现了控制的快速性又实现了控制的稳定性;过阻尼响应是为了稳定性牺牲快速性;欠阻尼响应则是为了快速性牺牲稳定性。然而,临界阻尼由于条件过于苛刻,在实际控制中是无法实现的。
根据剩余的两种响应曲线的特性,笔者认为CPU启动时较好使用欠阻尼响应曲线,其理由是:CPU启动状态下,对增塑剂积累时间的要求**于增塑剂含量的稳定性;而其他状态下使用过阻尼响应曲线,此时对含量的稳定要求**于积累的快速性。
因此,利用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。