二、PID指令介绍,1.指令说明,PID指令说明如表6-76所示。
表6-76PID指令说明,
2.PID控制回路参数表,PID运算由P、I和D三项运算组成,PID运算公式如下:,Mn=[KcX]+[KcXX+Mx]+[KcXX],在上式中,Mn为PID运算输出值,[Kc]为比例运算项,[KcXX+M]为积分运算项,[KcXX]为微分运算项。
要进行PID运算,须先在PID控制回路参数表中设置运算公式中的变量值。PID控制回路参数表见表6-77。在表中,过程变量相当于图6-59中的反馈信号,设定值,相当于图6-59中的给定信号,输出值为PID运算结果值,相当于图 6-59中的控制,信号。如果将过程变量值存放在VD200双字单元,那么设定值、输出值,则要分别存放在VD204、VD208单元。
表6-77PID控制回路参数表,
3.PID运算项的选择,PID运算由P、|和D三项运算组成,可以根据需要选择其中的一项或两项运算。
①如果不需要积分运算,应在参数表中将积分时间设为无限大,这样,值接近0,虽然没有积分运算,但由于有上一次的积分值M,积分项的值也不为0.,②如果不需要微分运算,应将微分时间设为0.0。
③如果不需要比例运算,但需要积分或微分回路,可以把增益设为0.0,系统,会在计算积分项和微分项时,把增益当作1.0看待。
4.PID输入量的转换与标准化,PID控制电路有两个输入量:设定值和过程变量。设定值通常是人为设定的参照值,
如设置的水压值;过程变量值来自受控对象,如压力传感器检测到的水压值。由于现实中,的设定值和过程变量值的大小、范围和工程单位可能不一样,在执行PID指令进行PID运算前,必须先把输入量转换成标准的浮点型数值。
PID输入量的转换与标准化过程如下:,①将输入量从16位整数值转换成32位实数。该转换程序如图6-60,所示。
图6-6016位整数值转换成32位实数,②将实数转换成0.0~1.0之间的标准化数值。转换表达式为,输入量的标准化值=输入量的实数值1跨度+偏移量,跨度值通常取32000或64000;偏移量取0.0或0.5。该转换程序如图6-61,
图6-61,5. PID输出量的转换,在PID运算前,需要将实际输入量转换成0.0~1.0之间的标准值,然后进行PID运算,PID运算后得到的输出量也是0.0~1.0之间的标准值,这样的数值无法直接驱动PID的控制对象,因此需要将PID运算输出的0.0~1.0标准值按比例转换成16位整数,再送到模拟量输出单元,通过模拟量输出端子输出。
PID输出量的转换表达式为PID输出量整数值=x跨度,PID输出量的转换程序如图6-62所示。
图6-62,PID指令应用举例,下面以图6-59所示的恒压供水控制为例来说明PID 指令的应用。
确定PID控制回路参数表的内容,在编写PID控制程序前,首先要确定PID控制回路参数表的内容。参数表中的给定值SPn增益值Kc、采样时间Ts、积分时间下、微分时间Ti。需要在PID指令执行前输入,来自压力传感器的过程变量值需要在PID指令执行前转换成标准化数值并存入过程变量单元。参数表中的变量值要根据具体情况来确定,还要在实际控制时反复调试以,达到最佳控制效果。本例中的PID控制回路参数表的值见表6-78,因为希望水箱水压维持在满水压的70%,故将给定值SPn设为0.7,不需要微分运算,将微分时间设为0。
PID控制程序,恒压供水PID控制程序如图6-63所示。
表6-78PID控制回路参数表的值,
图6-63恒压供水PID控制程序,在程序中,网络1用于设置PID控制回路的参数表,包括设置给定值SPn增益值Kc采样时间Ts、积分时间Ti和微分时间Td:网络2用于将模拟量输入AIW0单元中的整数值转换成0.0~1.0之间的标准化数值,再作为过程变量值PVn,存入参数表的VD100单元,AIW0单元中的整数值由压力传感器产生的模拟信号经PLC 的A/D转换模块转换而来;网络3用于启动系统从参数表取变量值进行PID运算,运算输出值M,存入参数表的VD108单元:网络4用于将VD108中的标准化输出值按比例转换成相应的整数值,再存入模拟量输出 AQW0单元,AQW0单元的整数经D/A转换模块转换成模拟信号,去控制变频器工作频率,进而控制水泵电动机的转速来调节水压。