1概述
本文中所讨论的功能块(sfb41/fb41,sfb42/fb42,sfb43/fb43)仅仅是使用于s7和c7的cpu中的循环中断程序中。该功能块,定期计算所需要的数据,保存在指定的db中(背景数据块)。允许多次调用该功能块。cont_c块与pulsegen块组合使用,可以获得一个带有比例执行机构脉冲输出的控制器(例如,加热和冷却装置)。
sfb41/fb41 (cont_c),连续控制方式;
sfb42/fb42 (cont_s),步进控制方式;
sfb43/fb43 (pulsegen),脉冲宽度调制器;
注意:sfb41/42/43,与fb41/42/43兼容,可以用于cpu 313c、cpu 313c-2 dp/ptp和cpu 314c-2 dp/ptp中。
1.1应用
借助于由你组态大量模块组成的控制器,可以完成带有pid算法的实际控制器。控制效率,即处理速度取决于你所使用的cpu性能。对于给定的cpu,必须在控制器的数量和控制器所需要执行频率之间找到一个折衷方案。连接的控制电路越快,所安装的控制器数量越少,则每个时间单位计算的数值就越多。对于控制过程的类型没有限制。较慢(温度、填料位,等)以及较快的控制系统(流量、速度,等)都可以控制。
1.2控制系统分析
控制系统的静态性能(增益)和动态性能(滞后、空载时间、积分常数,等),都是设计系统控制器及其静态参数(p操作)和动态参数(i、d操作)的主要因素。
因此,熟练掌握控制系统的类型和特性非常重要。(如图1,图2,图3,图4)
图1
图2
图3
图4
2pid系统控制器的选择
控制系统的属性由技术过程和机器条件决定。因此,为了获得良好的控制效果,你必须选择最适用的系统控制器。
2.1连续控制器、开关控制器
连续控制器,输出一个线性(模拟)数值。
开关控制器,输出一个二进制(数字)数值。
2.2固定值控制器
固定值控制,使用设定固定数值进行的过程控制,只是偶尔修改一下参考变量,过程偏差的控制。
2.3级联控制器
级联控制器,控制器串行连接控制。第一个控制器(主控制器)决定了串行控制器(从控制器)的设定点,或者根据过程变量的实际错误影响器设定点。
一个级联控制器的控制性能可以使用其它的过程变量加以改进。为此,可以为主控制变量添加一个辅助过程变量pv2(主控制器sp2的输出)。主控制器可以将过程变量pv1施加给设定点sp1,并且可以调整sp2,以便尽可能快地到达目标,而没有过调节。(如图5)
图5
2.4混合控制器
混合控制器是指根据每个被控组件所需要的设定点总数量,来计算总sp数量的一种控制结构。在此,混合系数fac的和必须为“1”。(如图6)
图6
2.5比例控制器
2.5.1单循环比例控制器
单循环比例控制器,可以用于“两个过程变量之间的比率”比“两个过程变量的绝对数值”重要的场合。(例如,速度控制)。(如图7)
图7
2.5.2多循环比例控制器
对于多循环比例控制,两个过程变量pv1和pv2之比保持为常数。因此,可以使用第一个控制循环的过程数值,来计算第二个控制循环的设定点。对于过程变量pv1的动态变化,也可以保证保持特定的比例。(如图8)
图8
2.6二级控制器
一个二级控制器只能采集两个输出状态(例如,开和关)。典型的控制为:一个加热的系统,通过继电器输出的脉冲宽度调制。
2.7三级控制器
一个三级控制器只能采集到三个具体的输出状态。我们需要区分:“脉冲宽度调制”(例如,加热-冷却,加热-关机-冷却)和“使用集成执行机构的步进控制”(例如,左-停止-右)之间的区别。
3布线
对于没有集成的i/o控制器,你必须使用附加的i/o模块。
3.1布线规则
3.1.1连接电缆
对于数字i/o,如果线路有100米长,必须使用屏蔽电缆;
电缆屏蔽时必须在两端进行接地;
软电缆的截面积选择0.25…1.5 mm2;
无需选择电缆套。如果决定选择使用电缆套,你可以使用不带绝缘套圈的电缆套(din 46228, shape a, short version);
3.1.2屏蔽端接元件
你可以使用屏蔽端接元件,将所有屏蔽的电缆直接通过导轨连接接地;
必须在断电情况下对组件进行接线;
3.1.3警告
带电作业会有生命危险。
如果你带电对组件的前插头进行接线,会有触电危险!
3.1.4其它信息
其他注意事项可参见手册“cpu数据”手册以及cpu的安装手册。
4参数赋值工具介绍
借助于“pid参数设置”工具,可以很方便的调试功能块sfb41/fb41,sfb42/fb42的参数(背景数据块)。
4.1调试pid参数的用户界面
在windows操作系统中,调用“调试pid参数用户界面”的操作过程如下:
start > simatic > step7 > pid control parameter assignment(如图9)。
图9
在最开始的对话框中,你既可以打开一个已经存在的fb41/ sfb41 “cont_c” 或者fb42/ sfb42 “cont_s”的背景数据块。也可以生成一个新的数据块,再可以分配给fb41/ sfb41 “cont_c”或者fb42/ sfb42 “cont_s”,作为背景数据块。(如图10)
图10
fb43/sfb43 “pulsegen”没有参数设置的用户界面工具。你必须在step 7中去设置它的参数。
4.2获取在线帮助的途径
当分配参数给fb41/ sfb41“cont_c”、fb42/ sfb42 “cont_s”或者fb43/sfb43 “pulsegen”时,你可以通过以下三条途径获得帮助:
·使用step7菜单help>contents,获得相应的帮助信息;
·通过按下f1键得到帮助;
·在pid参数设置对话框中,通过点击help,可以得到具体的帮助信息。
5在用户程序中实现
以下章节将帮助你根据你的应用设计一个用户程序。
5.1调用功能块
使用相应的背景数据块调用系统功能块。
举例:call sfb 41, db30(或者,call fb 41, db 31)
5.2背景数据块
系统功能块的参数将保存在背景数据块中。在第6章中将阐述这些参数。
你可以通过以下方式访问这些参数
·db编号和偏移地址
·数据块编号和数据块中的符号地址
5.3程序结构
sfb必须在重新启动组织块ob100中和循环中断组织块ob30…38中调用。
模式:
·ob100 call sfb/fb 41、42、43, db 30
·ob35 call sfb/fb 41、42、43, db 30
6功能块介绍
6.1连续调节功能sfb 41/fb 41 “cont_c”
6.1.1简介
sfb/fb“cont_c”(连续控制器)用于使用连续的i/o变量在simatic s7控制系统中控制技术过程。你可以通过参数打开或关闭pid控制器,以此来控制系统。通过参数赋值工具,可以很容易地做到这一点。调用:start > simatic > step 7 > pid control parameter assignment(如图)。在线电子手册,见start > simatic > documentation > english> step 7 – pidcontrol(如图11)。
图11
6.1.2应用程序
你可以使用控制器作为单独的pid定点控制器或在多循环控制中作为级联控制器、混合控制器和比例控制器使用。控制器的功能基于带有一个模拟信号的采样控制器的pid控制算法,如果必要的话,可以通过脉冲发送器(pulsegen)进行扩展,以产生脉冲宽度调制的输出信号,来控制比例执行机构的两个或三个步进控制器。
6.1.3说明
除了设定点操作和过程数值操作的功能以外,sfb41/fb 41(cont_c)可以使用连续的变量输出和手动影响控制数值选项,来实现一个完整的pid控制器。下面是关于sfb 41/fb41(cont_c)详细的子功能说明:
6.1.3.1设定点操作
设定点以浮点格式在“sp_int”端输入。
6.1.3.2实际数值操作
过程变量可以在外围设备(i/o)或者浮点数值格式输入。“crp_in”功能可以将“pv_per”外围设备数值转换为一个浮点格式的数值,在–100和+100 %之间,转换公式如下:
cpr_in的输出=pv_per x100 /27648
“pv_norm”功能可以根据下述规则标准化“crp_in”的输出:
输出pv_norm =(cpr_in的输出)x pv_fac + pv_off
“pv_fac”的缺省值为“1”,“pv_off”的缺省值为“0”。
变量“pv_fac”和“pv_off”为下述公式转化的结果:
pv_off =(pv_norm的输出)-(cpr_in的输出)x pv_fac
pv_fac =(pv_norm的输出)- pv_off)/(cpr_in的输出)
不必转换为百分比数值。如果设定点为物理确定,实际数值还可以转换为该物理数值。
6.1.3.3负偏差计算
设定点和实际数值之间的区别便形成负值偏差。为了抑制由于被控量的量化引起的小的、恒定的振荡(例如使用pulsegen进行脉冲宽度调制),在死区将施加一个死区(deadband)。如果deadb_w = 0,则死区将关闭。
6.1.3.4pid算法
pid算法作为一种位置算法进行控制。比例运算、积分运算(int)和微商运算(dif)都可并行连接,也可以单独激活或取消。这就允许组态成p、pi、pd和pid控制器。也可以是纯i和d调节器。
6.1.3.5手动模式
可以在手动模式和自动模式之间切换。在手动模式下,被控量被修改成手动选定的数值。
积分器(int)内部设置为“lmn-lmn_p-disv”,微商器(dif)内部设置为“0”,并进行内部匹配。这就是说切换到自动模式时不会引起被控量的突变。
6.1.3.6受控数值的处理
使用lmnlimit功能,受控数值可以被限制为一个所选择的数值。当输入变量超出极限值时,信号位将指示。“lmn_norm”功能可以根据下述公式标准化“lmnlimit”的输出:
lmn =(lmnlimit的输出)x lmn_fac +lmn_off
“lmn_fac”的缺省值为“1”,“lmn_off”的缺省值为“0”。
受控数值也适用于外围设备(i/o)格式。“cpr_out”功能可以将浮点值“lmn”转换为一个外围设备值,转换公式如下:
lmn_per = lmn x2764/10
6.1.3.7前馈控制
一个干扰变量被引入“disv”端输入。
6.1.3.8初始化
sfb 41/fb 41“cont_c”有一个初始化程序,可以在输入参数com_rst =true置位时运行。在初始化过程中,积分器可以内部设置为初始值“i_itval”。如果在一个循环中断优先级调用它,它将从该数值继续开始运行。所有其他输出都设置为其缺省值。
6.1.3.9出错信息
故障输出参数ret_val不使用。
6.1.3.10sfb/fb“cont_c”(连续调节控制器)块图
如图12。
图12
6.1.3.11输入参数
sfb 41/fb 41“cont_c”(如图13)
图13
下表列出sfb 41/fb 41“cont_c”输入参数的说明:
序号
参数
数据类型
数值范围
缺省
说明
1
com_rst
bool
faulse
complete restart(完全再起动)。
该块有一个初始化程序,可以在输入参数com_rst置位时运行。
2
man_on
bool
true
manual value on(手动数值接通)
如果输入端“手动数值接通”被置位,那么闭环控制循环将中断。手动数值被设置为受控数值。
3
pvper_on
bool
false
process variable periphery
on/(过程变量外设接通)
如果过程变量从i/o读取,输入
“pv_per”必须连接到外围设备,
并且输入“process variable
periphery on”必须置位。
4
p_sel
bool
true
proportional action on(比例分量接通)
pid各分量在pid算法中可以分别激活或者取消。当输入端“比例分量接通”被置位时,p分量被接通。
5
i_sel
bool
true
integral action on(积分分量接通)
pid各分量在pid算法中可以分别激活或者取消。当输入端“积分分量接通”被置位时,i分量被接通。
6
int_hold
bool
false
integral action hold(积分分量保持)
积分器的输出被冻结。为此,必须置
位输入“integral action hold(积分
操作保持)”。
7
i_itl_on
bool
false
initialization of the integral
action(积分分量初始化接通)
积分器的输出可以被设置为输入
“i_itlval”。为此,必须置位输
入“积分操作的初始化”。
8
d_sel
bool
false
derivative action on(微分分量接通)
pid各分量在pid算法中可以分别激活或者取消。当输入端“微分分量接通”被置位时,d分量被接通。
9
cycle
time
>=1ms
t#1s
sample time(采样时间)
块调用之间的时间必须恒定。“采
样时间”输入规定了块调用之间的
时间,应该与ob35设定时间保持一致。
10
sp_int
real
-100.0至+100.0(%)或者物理值1
0.0
internalsetpoint(内部设定点)
“内部设定点”输入端用于确定设定值。
11
pv_in
real
-100.0至+100.0(%)或者物理值1
0.0
processvariable in(过程变量输入)
可以设置一个初始值到“过程变量输
入”输入端或者连接一个浮点数格式的外部过程变量。
12
pv_per
word
w#16#0000
process variable
periphery(过程变量外设)
外围设备的实际数值,通过i/o格式的过程变量被连接到“过程变量外围设备”输入端,连接到控制器
13
man
real
-100.0至+100.0(%)或者物理值2
0.0
manual value(手动数值)
“手动数值”输入端可以用于通过操作者接口功能设置一个手动数值。
14
gain
real
2.0
proportional gain(比例增益)
“比例增益”输入端可以设置控制器的比例增益系数。
15
ti
time
>=cycle
t#20s
reset time(复位时间)
“复位时间”输入端确定了积分器的时间响应。
16
td
time
>=cycle
t#10s
derivative time(微分时间)
“微商时间”输入端确定了微商单元的时间响应。
17
tm_lag
time
>=(cycle/2)
t#2s
time lag of the derivative
action(微分分量的滞后时间)
微商操作的算法包括一个时间滞后,可以被赋值给“微分分量的滞后时间”输入端上。
18
deadb_w
real
>=0.0(%)或者物理值1
0.0
dead band width(死区宽度)
死区用于存储错误。“死区宽度”输入端确定了死区的容量大小。
19
lmn_hlm
real
lmn_llm至100.0(%)或者物理值2
100.0
manipulated alue high
limit(受控数值的上限)
受控数值必须设定有一个“上限”和一个“下限”。“受控数值上限”输入端确定了“上极限”。
20
lmn_llm
real
-100.0(%)至lmn_hlm或者物理值2
0.0
manipulated value low
limit(受控数值的下限)
受控数值必须设定有一个“上限”和一个“下限”。“受控数值下限”输入端确定了“下极限”。
21
pv_fac
real
1.0
process variable factor(过程变量系数)
“过程变量系数”输入端用于和过程
变量相乘。该输入端可以用于匹配过程变量范围。
22
pv_off
real
0.0
processvariable offset(过程变量偏移量)
“过程变量偏移”输入端可以添加到“过程变量”。该输入端可以用于匹配过程变量的范围。
23
lmn_fac
real
1.0
manipulated value factor(受控数值系数)
“受控数值系数”输入端用于与受控数值相乘。该输入端可以用于匹配受控数值的范围。
24
lmn_off
real
0.0
manipulated value(受控数值的偏移量)
“受控数值的偏移量”可以与受控数值相加。该输入端可以用于匹配受控数值的范围。
25
i_itlval
real
-100.0至+100.0(%)或者物理值2
0.0
initialization value of the
integral-action(积分分量初始化值)
积分器的输出可以用输入端“i_itl_on”设置。初始化数值可以设为“积分分量初始值”输入。
26
disv
real
-100.0至+100.0(%)或者物理值2
0.0
disturbance variable(干扰变量)
对于前馈控制,干扰变量被连接到“干扰变量”输入端。
1)“设定值通道”和“过程变量通道”中的参数,应该有相同的单位。例如,如果使用pv_in作为“过程物理值”或者“过程物理值百分比”,sp_int必须使用相应相同的单位;如果使用pv_per作为外围设备的实际数值,sp_int只能使用“-100.0至+100.0(%)”作为设定值。如果设定值是sp_int是0~10mpa中的8mpa,那么需要填写0.8,pv_per填写硬件外设地址iw xxx;
2)受控量通道中的参数应该有相同的单位。
6.1.3.12输出参数
下表列出sfb 41/fb 41“cont_c”输出参数的说明:
序号
参数
数据类型
数值范围
缺省
说明
1
lmn
real
0.0
manipulated value(受控数值)
有效的受控数值被以浮点数格式输出在“受控数值”输出端上。
2
lmn_per
word
w#16#0000
manipulatedvalue
periphery(受控数值外围设备)
i/o格式的受控数值被连接到“受控数值外围设备”输出端上的控制器。
3
qlmn_hlm
bool
false
high limit of manipulated
value reached(达到受控数值上限)受控数值必须规定一个最大极限和一个最小极限。“达到受控数值上限”指示已超过最大极限。
4
qlmn_llm
bool
false
low limit of manipulated
value reached
(达到受控数值下限)
受控数值必须规定一个最大极限和一个最小极限。“达到受控数值下
限”指示已超过最小极限。
5
lmn_p
real
0.0
proportionality
component(比例分量)
“比例分量”输出端输出受控数值的比例分量。
6
lmn_i
real
0.0
integral component(积分分量)
“积分分量”输出端输出受控数值的积分分量。
7
lmn_d
real
0.0
derivative component(微分分量)
“微商分量”输出端输出受控数值的微商分量。
8
pv
real
0.0
process variable(过程变量)
有效的过程变量在“过程变量”输出端上输出。
9
er
real
0.0
error signal(误差信号)
有效误差在“误差信号”输出端输出。
6.2步进控制功能sfb 42/fb 42“cont_s”
6.2.1简介
sfb/fb“cont_s”(步进控制器)用在simatic s7可编程控制器上,用于二进制数控数值输出信号积分执行机构的控制技术过程。在参数赋值过程中,你可以激活或取消pi步进控制器的子功能,以使控制器与过程匹配。通过参数赋值工具,可以很容易地做到这一点。调用:start > simatic > step 7 > pid control parameter assignment(如图)。在线电子手册,见start > simatic > documentation > english> step 7 – pidcontrol(如图)。
6.2.2应用程序
你可以使用该控制器作为单独的pi固定设定值控制器,或者在辅助控制循环(第二级闭环)中作为级联控制器、混合控制器或者比例控制器使用,但是不能用作主控制器(第一级调节器)。控制器的功能根据采样控制器的pi控制算法实现,由模拟执行信号生成二进制输出信号。
下列功能适用于cpu 314 ifm的fb v1.5或v1.1.0以上版本:
利用ti = t#0 ms,可以封锁调节器的积分分量。因此,允许功能块用作比例(p)控制器。
由于控制器不使用任何位置反馈信号,内部计算的受控变量将不能准确地匹配信号控制元件的位置。如果受控变量(er*gain)为负值,应进行调整。然后调节器置位输出端qlmndn(受控量信号低),直到lmnr_ls(位置反馈信号下限)被置位。
控制器还可以在一个控制器级联中用作一个辅助控制器(第二个执行器)。设定点输入端“sp_int”用于赋值控制元件的位置。在这种情况下,实际数值输入和参数“ti(积分时间)”必须被设置为“0”。一个应用实例:通过电控阀瓣控制温度,即是借助二进制脉冲数值输出信号来控制热量输出的温度调节和利用阀门控制制冷容量。在这种情况下,为了全部关闭阀门,受控变量(er*gain)应该有一个负值。
6.2.3说明
除了过程数据通道的功能外,sfb/fb“cont_s”(步进控制器)可以使用一个数字受控数值输出和手动影响控制数值选项,来实现一个完整的pi控制器。步进控制器不使用位置反馈信号。限位信号可以用于限制脉冲输出。下面你可以找到详细的子功能说明:
6.2.3.1设定点操作
设定点以浮点数格式在“sp_int”输入端上输入。
6.2.3.2实际数值操作
过程变量可以在外围设备(i/o)或浮点数格式输入。“crp_in”功能可以将“pv_per”外围设备数值转换为一个浮点数格式的数值,在–100和+100 %之间,转换公式如下:
cpr_in的输出=pv_per x100/27648
“pv_norm”功能可以根据下述公式标准化“crp_in”的输出:
pv_norm的输出=(cpr_in的输出)x pv_fac + pv_off
pv_fac的缺省值为“1”,pv_off的缺省值为“0”。
变量“pv_fac”和“pv_off”为下述公式转化的结果:
pv_off =(pv_norm的输出)-(cpr_in的输出)x pv_fac
pv_fac =((pv_norm的输出)- pv_off)/(cpr_in的输出)
6.2.3.3负偏差计算
设定点和实际数值之间的区别便形成负值偏差。为了抑制由于受控变量的量化造成的小的、恒定的振荡(例如,由于执行机构阀门引起的受控数值的波动),为负偏差设置了一个死区(deadband)。如果deadb_w = 0,则死区将被关闭。
6.2.3.4pi步进算法
sfb/fb“cont_s”(步进控制器)不使用位置反馈信号。pi算法的积分操作和假定位置反馈信号都在积分器(int)中计算,并作为一个反馈值与剩余p操作进行比较。比较差被用于一个三步元件(three_st)和一个脉冲发生器(pulseout),以生成执行机构的控制脉冲。控制器的开关频率可以通过在三步元件上采用阈值控制来减少。
6.2.3.5前馈控制
一个干扰变量被引入“disv”输入端。
6.2.3.6初始化操作
sfb/fb“cont_s”(步进控制器)有一个初始化程序,可以在输入参数com_rst= true置位时运行。所有其它输出端都设置为其缺省值。
6.2.3.7出错信息
故障输出参数ret_val不使用。
6.2.3.8sfb/fb“cont_s”(步进控制器)块图
如图14
图14
6.2.3.9输入参数
sfb 42/fb 42“cont_s”(如图15)
图15
下表列出sfb 42/fb 42“cont_s”输入参数的说明:
序号
参数
数据类型
数值范围
缺省
说明
1
com_rst
bool
faulse
complete restart(完全再起动)。
该块有一个初始化程序,可以在输入参数com_rst置位时运行。
2
lmnr_hs
bool
false
high limit of position feedback signal(位置反馈信号上限)
“执行器在上限停”信号连接到“位置反馈信号上限”输入端。lmnr_hs =
true表示执行器处于最大上限。
3
lmnr_ls
bool
false
low limit of position feedback signal(位置反馈信号下限)
“执行器在下限停”信号连接到“位置反馈信号下限”输入端。lmnr_ls =
true表示执行器处于最大下限。
4
lmns_on
bool
true
manual actuating signals on(手动执行信号接通)通过“手动执行信号接通”执行信号处理切换为手动模式。
5
lmnup
bool
false
actuating signals up(执行信号上升)
通过手动执行信号,输出信号“qlmnup”在“执行信号上升
沿”输入被置位。
6
lmndn
bool
false
actuating signals down(执行信号下降)
通过手动执行信号,输出信号“qlmndn”在“执行信号下降
沿”输入被置位。
7
pvper_on
bool
false
process variable periphery
on(过程变量外设接通)
如果从i/o读取过程变量,输入端“pv_per”必须连接到外围设备,并且输入端
“process variable
periphery on”必须置位。
8
cycle
time
>=1 ms
t#1s
sampling time(采样时间)
块调用之间的时间必须恒定。“采
样时间”输入端规定了块调用之间的
时间。
9
sp_int
real
-100.0至+100.0(%)或物理值1
0.0
internal setpoint(内部设定值)
“内部设定值”输入用于确定一个
设定值。
10
pv_in
real
-100.0至+100.0(%)或物理值1
0.0
process variable in(过程变量输入)
可以设置一个初始值到“过程变量输入”输入端或者连接一个浮点数格式的外部过程变量。
11
pv_per
word
w#16#0000
process variable periphery(过程变量外设)
i/o格式的过程变量被连接到调节器的“过程变量外围设备”输入端。
12
gain
real
2.0
proportional gain(比例增益)
“比例增益”输入端设置控制器的增益。
13
ti
time
>=cycle
t#20s
reset time(复位时间)
“复位时间”输入端确定了积分器的
时间响应。
14
deadb_w
real
0.0至+100.0(%)或物理值1
1.0
dead band width(死区宽度)
死区用于误差。“死区宽度”用于确定死区的大小。
15
pv_fac
real
1.0
process variable factor(过程变量系数)
“过程变量系数”输入用于和过程变量相乘。该输入可以用于匹配过程变量的范围。
16
pv_off
real
0.0
process variable offset(过程变量偏移量)
“过程变量偏移”输入端与过程变量相加。该输入端用于匹配过程变量的范围。
17
pulse_tm
time
>=cycle
t#3 s
minimum pulse time(最小脉冲时间)
最小脉冲宽度可以使用参数“最小
脉冲时间”赋值。
18
break_tm
time
>=cycle
t#3 s
minimum break time(最小间隔时间)
最小脉冲间隔时间可以使用参数“最小间隔时间”赋值。
19
mtr_tm
time
>=cycle
t#30 s
motor manipulated value(电动执行时间)
执行机构从一个限幅位置移动到另
一个限幅位置所需的时间,可以在参
数“电动执行时间”参数中输入。
20
disv
real
-100.0至+100.0(%)或物理值2
0.0
disturbance variable(干扰变量)
对于前馈控制,干扰变量连接到输入端“干扰变量”。
3)“设定值通道”和“过程变量通道”中的参数,应该有相同的单位;
4)受控量通道中的参数应该有相同的单位。
6.2.3.10输出参数
下表列出sfb 42/fb 42“cont_s”输出参数的说明:
序号
参数
数据类型
数值范围
缺省
说明
1
qlmnup
bool
false
actuating signal up(执行信号上升)
如果输出端“执行信号上升”被置位,那么执行阀是打开的。
2
qlmndn
bool
false
actuating signal down(执行信号下降)
如果输出端“执行信号下降”被置位,那么执行阀是打开的。
3
pv
real
0.0
process variable(过程变量)
有效的过程变量是在“过程变量”输出端输出。
4
er
real
0.0
error signal(负偏差信号)
有效的负偏差数值在“负偏差信号”输出端输出。
6.3脉冲宽度调制器sfb 43/fb 43“pulsegen”
6.3.1简介
sfb/fb“pulsegen”(脉冲发生器)可以用于为pid控制器使用比例执行机构的脉冲输出。在线电子手册,见start > simatic > documentation > english> step 7 – pidcontrol(见图)。
6.3.2应用程序
使用sfb/fb“pulsegen”(脉冲发生器),可以通过脉冲宽度调制,组态pid两步或三级控制器。该功能一般与连续控制器sfb/fb“cont_c”一起使用。(如图16)
图16
6.3.3说明
功能“pulsegen”可以通过调制脉冲宽度,将输入变量“inv”(= pid控制器的lmn)转换为一个恒定周期的脉冲串,该恒定周期相当于输入变量刷新的循环时间,必须在“per_tm”中赋值。
每个周期的脉冲宽度与输入变量成正比。“per_tm”中的循环时间与sfb/fb“pulsegen”的处理时间不同。“per_tm”循环时间由多个sfb/fb“pulsegen”执行循环之和。因此,每个“per_tm”循环的sfb/fb“pulsegen”调用次数是脉冲宽度,可以精确测量脉冲宽度。最小受控数值在参数“p_b_tm”中确定。(如图17)
图17
6.3.3.1脉冲宽度调制
输入变量30%以及每个per_tm循环时间调用sfb/fb“pulsegen”10次,含义如下:
•对于前三个sfb/fb“pulsegen”(10次调用的30 %),输出“qpos”为“1”
•对于其余7个sfb/fb“pulsegen”(10次调用的70 %),输出“qpos”为“0”
6.3.3.2sfb/fb“pulsegen”块图
如图18。
图18
6.3.3.3受控数值的精度
如果“采样频率比例”为1:10(“cont_c”调用与“pulsegen”调用之比),那么在这个例子中受控数值的精度降低为10 %。换句话说,设定的输入数值“inv”只能在“qpos”输出端上以“10%”的步长转换成脉冲宽度。
只有当每次“cont_c”调用中“pulsegen”调用的次数增加时,才能提高精度。
例如,如果每个“cont_c”调用的“pulsegen”调用次数为100,受控数值的分辨率将达到1%(建议分辨率<= 5 %)。
注意
“采样频率比例”必须由用户编程。
6.3.3.4自动同步
可以使刷新输入变量“inv”的块(例如,“cont_c”),与脉冲输出自动同步。这就保证了输入变量中的一个变化可以尽可能快地输出为一个脉冲。
脉冲发生器可以根据“per_tm”的周期为时间间隔,定期评价输入数值“inv”,并将该数值转换为相应长度的脉冲信号。
但是,由于“inv”一般在较慢的循环中断级中计算,所以脉冲发生器应在“inv”刷新后尽可能快地将具体数值转换为一个脉冲信号。
为此,块必须使用下述程序对周期的起点同步:
如果“inv”变化,并且块调用不在一个周期的第1个或最后两个调用循环中,可以进行同步。将重新计算脉冲宽度,并在下一个循环中输出一个新的周期。(如图19)
图19
自动同步可以根据“syn_on”(= false)输入关闭。
注意
在一个周期的开始,“inv”(即lmn)的先前数值的映像将被或多或少的混合到脉冲信号中。
6.3.3.5pid控制器输出工作模式
根据脉冲发生器所赋值的参数,可以将pid调节器组态成具有一个三级输出或者一个两向或单向的两极输出pid控制器。下表所示为可能模式的开关组合设置:
模式
man_on
step3_on
st2bi_on
三级调节
false
true
any
两级调节,带双向调节区(-100%…+100%)
false
false
true
两级调节,带单向调节区(0…+100%)
false
false
false
手动模式
true
any
any
6.3.3.5.1三级控制
在“三级控制”模式下,可以生成控制信号的三种状态。二进制输出信号“qpos_p”和“qneg_p”的数值可以赋值给执行机构的状态。
下表所示为一个温度控制的例子:
输出信号
加热
执行器关闭
制冷
qpos_p
true
flase
flase
qneg_p
flase
flase
true
根据输入变量,使用一个特性曲线可以计算脉冲宽度。特性曲线的形状取决于最小脉冲时间或最大中断时间和比例系数。
比例系数的正常值为“1”。
曲线中的“拐点”是由于最小脉冲时间或最小中断时间造成的。
最小脉冲或最小间隔时间
正确赋值最小脉冲或最小中断时间“p_b_tm”,可以防止短促的开断时间,降低开关元件和执行机构的使用寿命。
注意
否则,会删除可以生成一个短于“p_b_tm”脉冲宽度的输入变量“lmn”的较小绝对值。可以生成脉冲宽度大于“per_tm-p_b_tm”的较大输入值被设置为100 %或-100 %。
正脉冲宽度和负脉冲宽度可以根据输入变量(单位[%])和周期时间相乘进行计算。
脉冲周期=inv / 100 xper_tm
下图(如图20)所示为一个三级控制器的系统曲线(比例系数=1):
图20
使用比例系数“ratiofac”,可以改变正脉冲宽度和负脉冲宽度之比。例如,对于热处理,这可用于使用不同的时间常数加热和冷却执行机构。
比例系数也会影响最小脉冲/暂停周期。比例系数< 1意思是指负脉冲的阈值乘以比例系数。
比例系数 1
通过输入数值乘以脉冲周期所计算的比例系数,可以减少正脉冲输出的脉冲周期。
负脉冲周期=inv/100 xper_tm
正脉冲周期=inv/100 xper_t/ ratiofac
6.3.3.5.2二级控制
对于二级控制,只能将pulsegen的正脉冲输出“qpos_p”连接到i/o执行机构。根据所使用的受控数值范围,二级控制器可以有一个双极或单极受控数值范围。
6.3.3.5.2.1两级调节,带双向调节区(-100%…+100%)
图22
6.3.3.5.2.2两级调节,带单向调节区(0…+100%)
图23
如果控制循环中二级控制器的连接需要一个执行脉冲的逻辑转换二进制信号,可以在“qneg_p”将输出信号进行“非”运算。
脉冲
执行机构打开
执行机构关闭
qpos_p
true
false
qneg_p
false
true
6.3.3.5.3二级控制或三级控制中的手动模式
在手动模式(man_on = true)中,三级控制器或二级控制器的二进制输出可以使用信号
“pos_p_on”和“neg_p_on”以及“inv”进行设置。
pos_p_on
neg_p_on
qpos_p
qneg_p
三级调节
false
false
false
false
ture
false
true
false
false
true
false
true
true
true
false
false
二级调节
false
any
false
true
true
any
true
false
6.3.3.6初始化
sfb“pulsgen”有一个初始化程序,可以在输入参数com_rst= true置位时运行。
所有信号都被设置为“0”。
6.3.3.7出错信息
故障输出参数ret_val不使用。
6.3.3.8输入参数
sfb 43/fb 43“pulsegen”(如图24)
图24
下表列出sfb 43/fb 43“pulsegen”输入参数的说明:
序号
参数
数据类型
数值范围
缺省
说明
1
inv
real
-100.0...100.0 (%)
0.0
input variable(输入变量)
模拟受控量连接到输入参数“输入变量”
•对于ratiofac 1的三级控制
•对于双极二级控制
•对于多极二级控制
2
per_tm
time
>=20*cycle
t#1s
period time(周期时间)
脉冲宽度调制的恒定周期可以使用该输入参数输入。这相当于“cont_c”控制器的采样时间。脉冲发生器的采样时间和“cont_c”控制器的采样时间之比决定了脉冲宽度调制的精度。
3
p_b_tm
time
>= cycle
t#0ms
minimum pulse/break time
(最小脉冲/间隔时间)
最小脉冲时间或最小中断时间可以使
用输入参数“最小脉冲/间隔时间”赋值。
4
ratiofac
real
0.1 ...10.0
1.0
ratio factor(比例系数)
输入参数“比例系数”可以用于改变正脉冲宽度和负脉冲宽度之比。例如,在热处理中,这可用于补偿加热和冷却的不同时间常数(例如,电加热和水冷过程)。
5
step3_on
bool
true
three step control on(三级调节接通)
该输入参数激活“三级调解”。在三级调节中,两路输出信
号都被激活。
6
st2bi_on
bool
false
two step control for bipolar manipulated value range on(两极调节,双向受控量范围接通。)
用于双极受控数值范围打开的二级控制。你可以在“双极受控数值”和“多极受控数值范围的二级控制”模式之间选择。此时,step3_on =
false。
7
man_on
bool
false
manual mode on(手动模式接通)
通过设置该输入参数,可以手动设置输出信号。
8
pos_p_on
bool
false
positive pulse on(正脉冲接通)
在三级控制的手动模式中,输出信号“qpos_p”可以使用该输入参数进行控制。在二级控制的手动模式中,“qneg_p”必须设置为“qpos_p”相反。
9
neg_p_on
bool
false
negative pulse on(负脉冲接通)
在三级控制的手动模式中,输出信号“qneg_p”可以使用该输入参数进行控制。在二级控制的手动模式中,“qneg_p”必须设置为“qpos_p”相反。
10
syn_on
bool
true
synchronization on(同步接通)
通过设置该输入参数,可以自动与刷新输入变量“inv”的块进行同步操作。这可保证输入变量中的一个变化可以尽可能快地输出为一个脉冲。
11
com_rst
bool
false
complete restart(完全再起动)。
该块有一个初始化程序,可以在输入参数com_rst置位时运行。
12
cycle
time
>= 1ms
t#10ms
sampling time(采样时间)
块调用之间的时间必须恒定。该输入参数规定了块调用之间
的时间。
输入参数的数值在块中没有限制。没有参数检查。
6.3.3.9输出参数
下表列出sfb 43/fb 43“pulsegen”输出参数的说明:
序号
参数
数据类型
数值范围
缺省
说明
1
qpos_p
bool
false
output positive pulse
(输出正脉冲)
如果有脉冲输出,输出参数“输出正脉冲”被置位。在三级调节中总是正脉冲输出。在两级调节中,qneg_p总是与qpos_p反向。
2
qneg_p
bool
false
output negative pulse
(输出负脉冲)
如果有脉冲输出,输出参数“输出负脉冲”被置位。在三级调节中总是负脉冲输出。在两级调节中,qneg_p总是与qpos_p反向。
如何在TD-SCDMA网络上向TD-LTE平滑演进
NRAM商用能席卷根深蒂固的DRAM/NAND Flash吗?
乐视发布多款直播相机Liveman套件 其中包括与AEE合作无人机
探究slab在内核内存管理和用户态Memcached的双重存在
网络5.0技术白皮书的愿景及目标详解
Step7中如何实现PID控制,PID系统控制器的选择
苹果将投资4万亿韩元与起亚共同造车
我们说的是“曲奇云盘”
三星的七纳米是全球首个导入极紫外光微影光刻技术的晶圆代工厂
关于智能空调体感雷达方案的分析和应用
智能网联汽车隐私开发方法与流程探究
西门子触摸屏有哪些常见问题?
Web3国内进展与海外落地现状
微电网实验室平台设计研究
2021年春晚将开展8K制作并进行直播
用LED灯替代汽车车灯的七大好处
一文读懂51单片机的RAM分区
苹果推送第三个iOS/iPadOS 14.5开发者测试版
我国成功打破西方的垄断,攻克9nm芯片技术难关
新能源电池种类