左怀拯
(马鞍山钢铁股份有限公司冷轧总厂,安徽马鞍山 243000)
本项目采用SIMATIC S7-400PLC 对连续退火镀锌生产线的板温进行控制。SIMATIC S7-400PLC是中高性能的可编程控制器[1],软件采用西门子DCS(集散控制系统)的控制软件PCS7[2],其中CFC为PCS7 的过程控制组件。研究背景为计算锌锅感应加热器的最近15 min 内的功率均值,用来建立入锌锅带钢温度的热平衡方程。在CFC 语言环境下,由于没有堆栈功能,无法直接取得连续的均值,只能通过迭代的方式进行累加替换。解决该问题的设计方案涉及的概念有:累加模块、延时模块、系统时钟、实数选择模块构建数据锁定等。
设计思路:利用系统时钟进行时间延迟,1 min后计时完成,地址位累加一,用地址位进行比较产生第1 钟的累加值写入堆栈1;然后进行第2 钟的累加写入堆栈2,对15 min进行划分产生15个堆栈;当15 min 计时完成后计数器归零,计算产生的累加值对堆栈1进行覆盖,从而得到2~16 min的均值,以此类推。此计算方式产生的均值为不连续的动态均值,如果想得到更加连续均匀的数值,可以增加堆栈数量,减少累计时间。当累计时间足够短且堆栈数量足够大,则可以产生接近于连续的均值,能够满足模型的计算需求。
通用累加模块如图1所示。
图1 CFC中的通用累加模块
图1 中,In 为瞬时值,OutHiLim 为累加上限,OutLoLim 为累加下限,TI 为累加时间单位,Out-TrkOn 为累加清零命令,Out 为累加输出,计算公式为:
其工作时序如图2所示。
图2 累加模块工作时序图
在程序中,用累加模块对锌锅感应加热器的功率进行累加,单位为秒,而功率是是以小时为单位,累加时间单位为3 600 s,所以TI=3 600,而实时功率指为82 kW,所以In 值写入82.0,用累加模块累加的值并不直接进行计算,而是在累加结束时,对前面的计算值进行覆盖。
通用延时模块如图3所示。
图3 CFC中通用延时模块
图3中Time0为延迟时间,mode为延迟模式,reset 为复位,I0 为延迟触发信号,Q0 为延迟输出信号,PTIME 为计时器,而TIMER_P 模块的功能时序如图4所示。
图4 延时模块模式2中的状态时序图
采用的mode2 为延迟导通计时器,当触发信号为1 时,开始计时,计时至延时时间完成时Q0 导通。在程序中用来将累加器的数值写入均值计算模块,对原值进行覆盖,同时地址位累加1。覆盖之后,再利用一个延迟计时器延迟2 s,对累加器的数值进行清零。
程序需要对每次采集的累加数据进行保存,参与均值计算,当循环到同一地址时,用新数据进行覆盖。为实现这一功能,采用实数选择模块进行功能构建,如图5所示。
图5 由实数选择模块构建的数据保持结构
累加数值写入IN_0,当计时器计时完成触发CONTROL 进行选择,把累加值写入OUT,并将OUT值送回IN_1,形成自锁,当下一轮扫描完成时,再次写入新值,对原值进行覆盖并重新锁定。
如图6所示,由计时器累计时间,触发计数器为I0,每触发一次计数器加一。采用DI_I 模块将双整数转化为整数,然后使用比较器与数值14 进行比较,当递增数值大于14时,比较器的GT 管脚触发复位信号,对计数器产生的数值进行复位,此结构实现了地址位从0到14的循环。
图6 地址位构建结构
地址位产生后,用来锁定数据写入地址,并最终参与均值计算,其结构由比较模块、与门、实数选择模块构建,如图7所示。
图7 地址位变化时产生的数据更迭
使用多比较器进行比较,当循环地址与地址位相同时,则此地址被激活,与采样的周期信号接入与门,产生的结果触发数据保持模块,将新的数据写入对应地址的数据块中并锁定,从而产生不同时间内的数据累加值。
将每个地址位所对应周期内的累加值通过实数比较器自锁存储,然后取平均值。多个周期进行循环覆盖,从而产生动态的均值,达到设计要求。
而在此例中,采用0~14 个地址位,每个地址周期为60 s,所以最终会对15 个地址位的数据进行累加,循环覆盖,再除以时间,最后得到15 min 内的动态均值。如图8 所示(图中为从8~14 的7 个累加数值之和,0~8的累加处理方式相同)。
图8 实数求和模块
程序总图如图9所示。
图9 程序整体结构
案例中采用了15个地址的计算模型,且采样周期较长,计算结果较为粗糙,在数据覆盖时明显呈现离散化的趋势,在数据不断覆盖中产生数值突变,而锌锅加热功率只有高功率与低功率两种,更加剧了计算值的突变。为了减少这种现象,将采样时间改为20 s,采样地址增加为45 个,突变被有效抑制,连续性明显增强。但修改过程中,程序量明显增大。
对两种采样时间及采样次数进行对比,比对结果如图10所示。
图10 采用低采样频率产生的温度计算值
图10中标注部分为计算值,在1 min采样周期,采样次数为15的状态下呈现出明显的波动,数据粗糙且离散程度高。
图11 中标注部分为计算值,在20 s 采样周期,采样次数为45 的状态下,数据更细腻,连续性增强且波动大幅降低。
图11 采用较高采样频率产生的温度计算值
由于增加采样频次,每个周期采样的功率累加值更连续,即使在功率突变的情况下,仍然可以计算出较为连续的值。
图11中红色曲线不是功率均值,而是使用功率均值通过线性计算得到的带钢温度计算值,虽然不是直接值,但是线性计算不会改变曲线的连续性,故可作为功率值连续性的参考比照。
采用CFC 模块构建“堆栈”,应用在计算动态均值和“堆栈”结构进行数据处理可以得到较好的效果。利用计数模块实现地址累加,利用实数选择模块实现数据锁定,利用计时模块实现数据推入,完美的模拟了计算机堆栈工作的过程,其推入及读取的方式,可以通过程序进行微调,这取决于实际要求,本文只是提供了一种思路,程序结构的改变可以产生无穷的变化形式。当然,其结构过于复杂,程序量较大也是一个明显的缺点,值得进一步研究。