淄博西门子6GK工业交换机一级代理商
脉冲输出单元每次执行都累加一个CYCLE_P,通过判断累加值和脉宽,或者和周期与脉宽差值的比较来改变输出点的状态。
3.2.1 脉冲输出和PID运算
在FB58中,脉冲输出和PID计算是两个相对独立的过程,各自有自己的计算周期。对于PID计算来说,CYCLE参数可以看成是PID计算的循环周期时间,例如PID在OB35每次执行过程中都会被调用,而硬件组态过程中OB35的周期时间被设置成了500ms,则CYCLE应该填写为0.5。对于脉冲输出来说,其循环周期时间是CYCLE_P。这两个时间参数可以一样,也可以不一样。PID的计算周期主要由被测量的变化规律决定的,而脉冲输出的CYCLE_P参数由要求的脉冲输出精度决定。
为了协调PID和脉冲输出之间的矛盾,FB58提供了“SELECT"参数,其具体使用如下所示:
根据上表描述,FB58的调用可以有如下三种情况:
(1)SELECT=0,FB58只在周期中断OB(例如OB35)中调用
此时的参数配置应该将CYCLE_P和周期中断OB的中断时间保持一致。因为PID计算的执行条件是CYCLE_P的累计值和CYCLE参数一致,而脉冲输出周期PER_TM则应该CYCLE_P的整数倍,和CYCLE无关。
例如,在OB35中调用FB58,OB35的周期时间为50ms,FB58中的CYCLE_P是0.05s,CYCLE是1.0s,PER_TM是3.0s。
观察参数之间的关系,CYCLE是CYCLE_P的20倍,即OB35每20个周期执行一次FB58里的PID计算,而输出的脉冲周期是3秒钟。
(2)FB58分别在OB1和周期中断OB(例如OB35)中调用
在两个OB块中调用的FB58使用同样的背景数据块和参数,只是SELECT参数有所不同,在OB1中调用,SELECT设置为1;在周期中断OB中调用,SELECT设置为2。为了缩短OB1执行时间,可以通过FB58背景数据块中的“QC_ACT"来选择是否执行FB58,当QC_ACT为TRUE时,执行,否则跳过。
在这种方式下,处理原理同(1)一致,不同的是PID运算总是在OB1中执行罢了。OB1的执行周期对PID运算、脉冲输出均没有影响。
(3)FB58在两个不同周期时间的周期中断OB(例如OB32和OB35)中调用
FB58分别在两个周期中断OB中调用,其中周期时间长的OB中调用的FB58的SELECT参数设置为3,时间短的设置为2。
同前面两种情况不一样,SELECT选择为3时,PID的运算只和调用周期有关。例如OB32定义的周期时间是1000ms,OB35的周期时间是100ms,CYCLE_P是0.02s,PER_TM是1.0s。这样在OB32中定义SELECT参数为3,则每1秒钟就执行一次PID运算,并不是由CYCLE和CYCLE_P的关系来决定。
3.2.2 参数设置的经验法则
前面的描述说明了CYCLE/CYCLE_P/PER_TM之间的关系,对于具体的参数设置,可以有如下几条法则:
(1)CYCLE时间不能超过积分时间TI的10%;
(2)为了保证控制精度,脉冲周期时间PER_TM应该至少是CYCLE_P的50倍;
(3)脉冲周期时间CYCLE不能超过积分时间TI的5%