1、FB41的方框图(FB41的端口作用逻辑图,看懂这个基本就都会了)
2、规格化(个人感觉不是必须要规格化,整个FB41功能块统一量纲就行了)
PID参数中重要的3个变量,给定值(SP_INT),反馈值(PV_IN)和输出值(LMN)都是用0.0~100.0之间的实数表示。
因此,需要将模拟输入转换为0.0~100.0的数据,或将0.0~100.0的数据转换为模拟输出,这个过程称为规格化
规格化的方法:(即变量相对所占整个值域范围内的百分比 对应与27648数字量范围内的量)
对于给定值(SP_INT)和反馈值(PV_IN),执行:变量*100/27648,然后将结果传送到PV-IN和SP-INT
对于输出变量 ,执行:LMN*27648/100,然后将结果取整传送给PQW即可。
3、一般使用循环中断组织块调用FB41,一般不用OB1,因为OB1的扫描周期不是确定的。
4、FB41的输入输出参数
In
<1、COM_RST:BOOL,初始化FB41。设置为1时,积分微分的累计清零。不会自动复位,需要程序复位COM_RST。一般使用如下:
可以在OB100、OB101、OB102里面写两句话
AN “COM_RST” //如果初始化标志位是0
S “COM_RST” //将初始化标志位置1
在OB1的最后写上两句话,复位初始化标志位
A “COM_RST” //如果初始化标志位1
R “COM_RST” //将初始化标志位复位
PID的初始化可以通过在OB100中调用一次,将参数COM-RST置位,当然也可在别的地方初始化它,关键的是看程序需要;
<2、MAN_ON:BOOL,设置为0为自动调整;设置为1为手动调整;这里会涉及到一个自动和手动模式的切换问题:无扰动切换
PID调节器在自动→手动、或手动→自动的瞬间,PID的输出是不变化的。
从手动切换到自动,自不用说,但是从自动到手动会出现明显跳动,一般可以这样处理:从自动切换到手动增加一个斜坡处理。将自动时的输出换算成比例值,一直加载在MAN口上,切换后,通过斜坡,将MAN口上的值由原来的值过度到手动比例设定值。
此端口和<11处的MAN口配合使用。
<3、PVPER_ON:BOOL,过程值选择,此值与PV_IN和PV_PER有关系
设置为1时,直接将PIW(监测实际值端口)输入PV_PER口
设置为0时:将转化后、滤波后且规格化后(等处理过的)数据输出PV_IN口
<4、P_SEL、I_SEL以及D_SEL:BOOL,比例、积分、微分作用的选择,设置为0,相应部分不起作用。
<5、INT_HOLD:BOOL,积分保持,设置为1时,积分不累加,一般不设置。
<6、I_ITL_ON:BOOL,积分初值给定;
I-ITLVAL:REAL,积分初值。
当I_ITL_ON设置为1时,使用I-ITLVAL变量积分初值;当I_ITL_ON设置为0时,积分初始值为0。一般当发现PID功能的积分值增长比较慢或系统反应不够时可以考虑使用积分初值;此功能很少用到。
<7、CYCLE:TIME,PID采样周期。
<8、SP_INT:REAL,PID的设定值。
<9、PV_IN :REAL,PID的反馈值。数据类型为Real,显然是处理后的数值,见<3。
<10、PV_PER:WORD,PID的反馈值。数据类型为Word,显然直接PIW输入,见<3。
<11、MAN:Real,手动模式的输入端口。
<12、GAIN:REAL,比例增益。
<13、TI:TIME,积分时间。
<14、TD:TIME,微分时间。
<15、TM_LAG:TIME,多长时间开启微分,由于微分会削弱达到稳定值时间,可以延时启动微分。通常不设置。
<16、DEADB_W:REAL,死区宽度。现场监控达到设定值后,并不稳定到设定值,如果出现小范围浮动,会出现执行器来回动作问题,可以考虑用死区来降低灵敏度。此值为百分数。
<17、LMN_HLM、LMN_LLM:REAL,输出值上下极限。此处需要搭配<19处使用,即保证LMN_HLM*LMN_FAC=100,程序中默认LMN_HLM为100.0,LMN_FAC为1.0,所以可以不用去设置。如果想设置,需要保证上面的公式。
<18、PV_FAC、PV_OFF:REAL,PV_FAC=传感器的量程/100。只有在PVPER_ON为1时起作用,目的为统一单位;为零时,需要规格化,单位已经统一,所以此处无用。
<19、LMN_FAC、LMN_OFF:REAL,输出值的量程。
<20、DISV:REAL,允许的扰动量,串级系统使用,一般不设置;
OUT
<1、LMN:REAL,输出实际值占满量程的百分比。
<2、LMN_PER:WORD,PQW输出
<3、QLMN_HLM、QLMN_LLM:BOOL,QLMN_HLM:输出最大值时输出1;QLMN_LLM:输出最小值时输出1,可以作为工、变频切换(例如一台泵工频,一台泵要求变频,调节恒压时)的点位来用。
<4、LMN_P、LMN_I、LMN_D:REAL,PID输出中P、I、D的分量。三者的和为输出值。
<5、PV:REAL,实际压力值
<6、ER:REAL,偏离值,设定值与实际值之差。
以上部分加入了自己的想法,如有错误望各位大侠批评指导。