
西门子PID模块的使用经验.doc
9页西门子PID模块的使用经验西门子网站有文档专门说明pid软件模块的使用,可是真正要用起来还是有点混乱,参数太多,不知道取舍了,呵呵其实用plcsim简单测试下还是可以做到心中有数,到了现场调试不用慌了一、在ob35里面插入FB41,方框顶上会有红字,输入一个类似“DB120”的,系统会问你要不要生成这个Db,yes就可以二、大部分参数不要填,默认就行,下面是常用参数,用变量连接:1、MAN_ON:用一个bool量,如m0.0,为true则手动,为false则自动;2、cycle:T#100MS,这个值与ob35默认的100ms一致;3、SP_INT:MD2,是hmi发下来的设定值,0-100.0的范围,real型;4、PV_IN:md6,实际测量值,比如压力,要从piw×××转换为0-100.0的量程;5、MAN:MD10,op值,也就是手动状态下的阀门输出,real型,0-100.0的范围;6、GAIN:md14,Pid的P啊,默认写1-2吧(系统默认是2),调试的时候再改7、TI:MW20,pid的i啊.默认写T#30S吧,调试的时候改;8、DEAD_W:md22,死区,就是sp和pv的偏差死区,0-100.0的范围,默认0,调试的时候改;输出:9、LMN:MD26,0-100。
0,最终再用fc106转换为word型move到pqw×××,如果pid运算结果不再有工艺条件其他限制可以用LMN_PER更简单就不用fc106了三、用plcsim模拟1、手动man_on=true,看输出是否等于man;2、自动man_on=false,调整pv或者sp,使得有偏差大于死区,看输出变化,这里的模拟只能说明pid工作了,不能测试实际调节效果啊 3、如果需要反作用,有三种方法: a、pv和sp颠倒输入 b、p值用负的 c、输出用100减在 STEP 7 标准库 (SIMATIC Manager: "File > Open > Libraries > ...") "PID Control Blocks" (FBs) 目录 or "System Function Blocks" (SFBs) 目录中可以这些功能块 当使用这些功能块时应注意下面几点: FB 41 "CONT_C"块应当在循环中断OB (例如. OB35).中调用 "CYCLE"参数对应CPU扫描时间,必须将程序块调用的间隔时间赋值该参数 。
缺省状态下为手动模式(MAN_ON=true)自动回路被中断,在MAN参数下输出控制值 为了确保手自动的无扰切换,在手动模式下至少保证两次块调用的输出时间当CPU 重新启动, 参数 "COM_RST" = true将引导块的执行 参数 "COM_RST"中断PID控制器的执行FB 42 "CONT_S"块应当在循环中断OB (例如. OB35).中调用 "CYCLE"参数对应CPU扫描时间,必须将程序块调用的间隔时间赋值该参数 缺省状态下为手动模式(LMAN_ON=true). 当CPU 重新启动, 参数 "COM_RST" = true将引导块的执行 参数 "COM_RST"中断PID控制器的执行 参数 "PULSE_TM" 和 "BREAK_TM" 被设置为 "CYCLE" 参数的倍数FB 43 "PULSEGEN"块应当在循环中断OB (例如. OB35).中调用 当CPU 重新启动, 参数 "COM_RST" = true将引导块的执行 "CYCLE"参数对应CPU扫描时间,必须将程序块调用的间隔时间赋值该参数 。
FB43可以和 FB41结合使用, 但是与 FB42功能不同 参数"PER_TM" 必须从PID控制器(FB41)上设置扫描时间 FB41的调用时间通过时钟分配器完成 (参考 FB43帮助).pid调节的正反作用问题最近调试,有两种类型的调节:一种是阀门本身就是反作用,因此对这种类型,我是把调节器的输出用100扣掉;因为pid手动时,就不必考虑把送到pid调节器的手动值用100扣了,而是在pid调节器的输出统一被100扣掉;如果这里用sp和pv掉个或者改p值为负就不方便了一种是阀门本身是正作用,我就把sp和pv颠倒一下(其实把p改为负值也可以);这时候,pid手动时,输入多少就实际输出到阀门多少PID的调整方法: 一般不用D,除非一些大功率加热控制等惯大的系统;仅使用PI即可, 一般先使I等于0,P从0开始往上加,直到系统出现等幅振荡为止,记下此时振荡的周期,然后设置I为振荡周期的0.48倍,应该就可以满足大多数的需求我记得网络上有许多调整PID的方法,但不记得那么多了,先试试吧 附录:PID的调整可以通过“开始—>SIMATIC->STEP7->PID调整”打开PID调整的控制面板,通过选择不同的PID背景数据块,调整不同回路的PID参数。
程序结构统一 OB1:主程序; OB100:初始化程序(无需主程序调用); OB35:100ms(可修改)中断(无需主程序调用),可以调用PID模块; OB80、OB82、OB85、OB86、OB87、OB121、OB122:故障诊断模块(无需主程序调用、无需编程);FB58 CONT_CP 处理温度过程功能的PID控制算法只能使用FB TCONT_CP来进行纯粹地加热或纯粹地冷却如果使用块来冷却,必须为GAIN分配一个负值除了在设定值和处理过程值分支处的功能外,FB还实现了完整的PID温度控制器功能,可以输出连续和二进制的操作变量为了提高温度处理过程的控制响应,程序块包含一个控制区,如果设定值步长变化,则减小P操作可以使用控制器调节功能,将程序块设置为PI/PID参数本身 注意:只有定期调用块,才能正确计算控制器功能块的数值因此,必须定期在循环中断OB (OB30-38)中调用此控制器功能块在参数CYCLE中预先定义采样时间在输入SP_INT处以浮点数格式输入设定值,作为实际数值或者百分比数值表示出错的设定值和过程值单位必须相同过程值选项(PVPER_ON) 可以获得外围设备(I/O)格式或浮点数格式的过程值。
PVPER_ON 过程值输入TRUE 在输入PV_PER中,通过模拟量外围设备I/O (PIW xxx)读取过程值FALSE 从输入PV_IN中获得浮点数格式的过程值过程值格式转换CRP_IN (PER_MODE)按照下列规则,并根据开关PER_MODE的设置,CRP_IN功能将外围设备数值PV_PER转换成浮点格式: PER_MODE CRP_IN输出 模拟量输入类型 单位0 PV_PER * 0.1 热电偶;PT100/NI100;标准 度1 PV_PER * 0.01 PT100/NI100;气温;度2 PV_PER * 100/27648 电压/电流 %标准化过程值PV_NORM (PF_FAC,PV_OFFS)PV_NORM功能根据下面的规则计算CRP_IN的输出:V_NORM的输出?= 揅PR_IN的输出?* PV_FAC + PV_OFFS在手动激活控制区域之前,确保控制区域范围不会太窄如果控制区域范围太窄,则操作变量和过程变量都会发生振荡控制区域的优点当过程值进入控制区域时,D作用会导致操作变量数值急剧下降也就是说,只有激活D作用,控制区域才有用如果没有控制区域,基本上,只要减少P作用,就将减小操作变量数值。
如果操作变量的最小输出值或最大输出值都远离新工作点所需操作变量值,那么控制区域导致没有过调节或欠调节的快速下降手动值处理(MAN_ON、MAN)可以在手动与自动操作之间切换在手动模式下,操作变量被修正到手动数值 将积分作用(INT)内部设置为LMN - LMN_P - DISV,且将微分作用(DIF)设置为0并内部同步因此,可以平滑的切换到自动模式注意调节期间,MAN_ON参数不起作用 操作变量限值LMNLIMIT(LMN_HLM、LMN_LLM)通过LMNLIMIT功能,可将操作变量的数值限制在LMN_HLM和LMN_LLM限制值之间如果达到了这些限制值,则通过消息位QLMN_HLM和QLMN_LLM进行指示 如果操作变量受限,则停止I作用如果误差朝着与I作用相反的操作变量范围方向出现,则可以再次激活I作用改变操作变量的限值如果操作变量的范围减小,且其新的不受限数值超出了限值范围,则I作用起作用,从而改变操作变量的数值操作变量减小的数值与操作变量限值改变的数值相等如果在改变之前操作变量不受限制,则将其设置为新的限值(此处指操作变量的上限)操作变量标准化LMN_NORM (LMN_FAC、LMN_OFFS)LMN_NORM函数根据下面的公式标准化操作变量:LMN = LmnN * LMN_FAC + LMN_OFFS它有下列用途:使用操作变量因子LMN_FAC和操作变量偏移量LMN_OFFS,改写操作变量也可以得到外围设备格式的操作变量数值。
CRP_OUT函数根据下面的公式将浮点数LMN转换成外围设备值:LMN_PER = LMN * 27648/100地址 参数 声明 数据类型 取值范围 初始值 描述0.0 PV_IN INPUT REAL 取决于使用的传感器 0.0 可以在“过程变量输入”输入端设置初始值,或者也可以连接到浮点数格式的外部过程变量上4.0 PV_PER INPUT INT 0 外部过程变量将外围设备I/O格式的过程变量连接到控制器的“外围设备过程变量”输入端6.0 DISV INPUT REAL 0.0 干扰变量对于前馈控制,干扰变量被连接到 “干扰变量”输入端10.0 INT_HPOS INPUT BOOL FALSE 保持正方向上的积分作用可以在正方向上阻止积分作用输出为此,必须将INT_HPOS输入设置为TRUE在级联控制中,主控制器的INT_HPOS与次级控制器的QLMN_HLM互连10.1 INT_HNEG INPUT BOOL FALSE 保持负方向上的积分作用可以在负方向上阻止积分作用输出为此,必须将INT_HNEG输入设置为TRUE在级联控制中,主控制器的INT_HNEG与次级控制器的QLMN_LLM互连。
12.0 选择 INPUT INT 0至3 0 选择调用PID和脉冲发生器如果激活脉冲发生器,则有几种方法可以调用PID算法和脉冲发生器:SELECT =0:在快速周期性中断级别中调用控制器,并处理PID算法和脉冲发生器SELECT =1:在OB1中调用控制器,且只处理PID算法SELECT =2:在快速周期性中断级别中调用控制器,且仅处理脉冲发生器SELECT =3:在慢速周期性中断级别中调用控制器,且仅处理PID算法14.0 PV OUTPUT REAL 取决于使用的传感器 0.0 过程变量在“过程变量”输出端输出18.0 LMN OUTPUT REAL 0.0 操作变量在“可调节变量”输出端以浮点格式输出有效的操作变量值22.0 LMN_PER OUTPUT INT 0 外围操作变量将外围设备格式的操作变量值连接到控制器的“外围设备操作可调节变量”输出端。
