如何在PCS 7中实现模拟量累计功能

n

1 PCS 7 V7.1中如何实现累计功能

累计功能就是对单位时间里的某一工艺量的测量值进行累加,这和数学运算中的“积分”(“Integral”)是一致的。在PCS 7 V7.1 APL库中提供的积分功能块可以实现该功能:n

如何在PCS 7中实现模拟量累计功能

图1 APL中的积分功能块n

在具体使用上,只需要将这个功能块拖入CFC中,连接需要累计的信号(例如通道功能块的输出管脚),设置积分参数TI后,编译即可:n

如何在PCS 7中实现模拟量累计功能

图2“Integral”的使用n

作为积分功能块,需要设置采样时间和积分时间,分别对应积分功能块的“Sample Time”和“TI”。采样时间指的是积分计算的执行间隔时间,积分时间表述的是积分环节的时间常数,这两个关键参数结合被累计的测量值就可以计算出累计值。n

1.1 如何设置SampleTime和TI参数

PCS 7中使用该积分功能块时,无需也不能人为设置SampleTime值,用户只需也必须在循环中断OB3x中调用该功能块。n

而积分时间常数TI则需要根据积分功能块前连接的流量信号的单位来进行设置。例如,通常情况下流量信号的单位为立方米/小时(1小时为3600秒),则该TI参数需要设置为3600。如果流量信号为立方米/分(1分钟为60秒),则该TI参数需要设置为60。n

此外,SampleTime和TI还必须满足如下关系:n

如何在PCS 7中实现模拟量累计功能

如果上述关系不能满足,则会在管脚“ErrorNum”上报“11”的错误号,而且积分运算停止。n

1.2 累计量如何清零

通常情况下,在一个班组/批次结束、另一个新的工作时间段开始时,需要重新开始累计,原来的累计结果要清除。或者在某些情况下,在重新开始累计时需要设定一个起始值。这可以借助积分功能块的Track(跟踪)功能来实现:n

如何在PCS 7中实现模拟量累计功能

图3清零n

如上图所示,给管脚“OutTrkOn”置位则开启Track功能,在该功能下积分块Integral的输出“Out”的值和跟踪值“OutTrk”保持一致。如果要实现清零操作,则设置“OutTrk”的值为0.0;如果要设置累计的初始值,也是将初始值赋给“OutTrk”。在将OutTrkOn复位后,功能块就在当前累计值的基础上开始运算。n

1.3 累计过程如何暂停

如果要实现在累计过程中暂停,则可以使用功能块Integral的“Hold”功能:n

如何在PCS 7中实现模拟量累计功能

图4累计保持n

置位管脚“Hold”即可暂停累计计算,复位该管脚则可以继续累计运算。n

1.4 如何在CPU停机重新运行之后保持累计量

“Hold”参数能够在CPU运行期间暂停累计,但如果CPU进入STOP之后,重新开始运行,那上次的累计值就会丢失。为了解决这个问题,Integral功能块提供的“Feature”参数中可以设置:n

如何在PCS 7中实现模拟量累计功能

图5 Feature中的设置n

在Feature Bit0中,设置为1,即表示在OB100调用(暖启动)时上一次的累计值保持。n

1.5 能否避免累计不了的问题

通过实数累加指令来实现累计功能的程序,在运行一段时间之后当前累加值达到一个很大的值时,可能就会出现累计停止的现象,测量值有数值,但总累计量保持不变。n

导致这个问题的原因是实数在进行加运算的时候,如果两个加数数量级差距较大,就会出现加不上的问题。具体描述可以参考如下链接页面:n

/cs/document/14844391?caller=view&lc=zh-cn

而PCS 7中的积分累计功能都对此进行了处理。如果累计量过大,导致测量值无法累加的时候,功能块就会单独存储并累计这些数值很小的测量值,直至其和增大到可以加入总累计量。n

所以使用PCS 7下的功能块来实现累计功能不会出现累计不了的问题。n

2 PCS 7 V7.0以前版本中如何实现累计功能

在PCS 7的标准库中也提供有相应的积分功能块来实现累计功能:n

如何在PCS 7中实现模拟量累计功能

图6 INT_P功能块n

和APL的Integral功能块的作用原理是一样的,只是管脚名上有所出入,如下是两个功能块的管脚对应表,请参考上述内容使用该积分功能块:n

表格1 Integral和INT_P管脚对应表n

Integral

INT_P

In

U

OutHiLim

V_HL

OutLoLim

V_LL

InHyst

HYS

OutTrkOn

TRACK

OutTrk

VTRACK

Feature.Bit0

Reset

Out

V

OutHiAct

QVHL

OutLoAct

QVLL

注:上表中的对应关系只是从功能的角度来比较的,APL功能块中的部分管脚数据类型是STRUCT。n

3 APL V7.1 SP5中如何实现累计功能块

对于PCS 7 V7.1 SP2英文版本,可以从如下链接地址中下载APL V7.1 SP5:n

http://support.automation.siemens.com/cn/view/zh/47756596

安装这个新的APL库之后,在APL库中可以找到“TotalL”,拖入到CFC中并在循环OB3x中调用:n

如何在PCS 7中实现模拟量累计功能

图7 TontalL功能块n

如图中所示,和Integral、INT_P不同,TotalL功能块增加了不少管脚,这是因为该块的功能大大扩展了,主要有如下几点新功能:n

- 脉冲触发和持续两种计算条件;n

- 增加了限制值和相应的报警;n

- 增/减累计计算的选择;n

- 增加了OS图标和面板;n

- Batch接口等。n

就模拟量累计功能而言,最直观的就是增/减累计和OS图标面板,这样就不用再使用一个模拟量监视块(例如MonAnL)来在OS上显示累计量:n

如何在PCS 7中实现模拟量累计功能

图8 TotalL的图标n

如何在PCS 7中实现模拟量累计功能

图9 TotalL的操作面板n

在面板中的“Command”中选择增累计或者减累计,即可激活功能块的累计功能。n

和APL下其他功能块的操作面板一样,该功能块也提供对累计值的曲线显示、参数设置等面板:n

如何在PCS 7中实现模拟量累计功能

图10 TotalL的趋势面板n

如何在PCS 7中实现模拟量累计功能

图11 TotalL的参数设置面板n

TotalL丰富的功能是通过Feature来选择功能的,其中的Bit6和Bit7的不同组合定义了不同的功能:n

如何在PCS 7中实现模拟量累计功能

表格2 TotalL功能列表n

如上表中所示,如果要使用模拟量累计功能,只需要设置Bit6即可。其他的功能使用和Integral无异,关于该功能块更多使用和配置信息可以查看其帮助信息。n

如何在PCS 7中实现模拟量累计功能

图12 TotalL的Feature Bit6设置n

TotalL在模拟量累计功能的使用中,和Integral类似,但具体管脚的应用上会有所区别:n

(1) 累计量清零n

在TotalL中没有跟踪功能,但可以使用复位功能,可以在面板上复位,如果使用CFC程序来复位,需要用到的管脚是“RstLi”和“PresetVal”。在RstLi.Value=1的时候,累计输出Out.Value和PresetVal.Value保持一致。n

所以,要实现CFC程序中的累计清零,只需设置PresetVal.Value=0.0之后,置位RstLi.Value=1即可。在OS侧清零,只需要在参数设置面板中设置“Preset Value”为0.0,然后点击标准面板中“Preset”按钮即可。n

(2) 累计暂停n

TotalL中没有Hold管脚,但增加了一个“OffLi”管脚,在标准面板中的“Command”中提供了“Off”按钮。使能这个功能,即可让累计停止,释放之后累计从新开始。与“Hold”功能一样。

(3) CPU停机重启保持上次累计值

和Integral功能块一样,设置Feature Bit0为1即可实现在CPU重启的时候恢复上次的累计值。

关键词
PCS 7,APL,流量累计,积分,FB1823,Integral ,FB40,INT_P,FB1906,TotalL,实数累加

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc329399.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论