1200PID调试方法
- 格式:doc
- 大小:14.50 KB
- 文档页数:1
组态 PID 控制器【简介】以下步骤将介绍如何使用工艺对象“PID_Compact”组态 PID 控制器。
PID 控制器组态的设置● 控制器类型控制器类型用于预先选择需控制值的单位。
在本例中,将单位为“°C”的“温度”(Temperature) 用作控制器类型。
● 输入/输出参数在该区域中,为设定值、实际值和工艺对象“PID_Compact”的受控变量提供输入和输出参数。
要在没有其它硬件的情况下使用PID控制器,请将“PID_Compact”的输入和输出参数链接到与仿真块“PROC_C”互连的“output_value”和“temperature”变量:– 实际值由“PROC_C”仿真并用作“PID_Compact”的输入。
在本例中,实际值为映射到“temperature”变量中的加热室中的测量温度。
– 受控变量由工艺对象“PID_Compact”计算,是该块的输出参数。
受控变量映射在“out put_value”变量中并用作“PROC_C”的输入值。
下图显示了工艺对象“PID_Compact”和仿真块“PROC_C”的互连方式。
【要求】● 循环中断 OB“PID [OB200]”处于打开状态。
● 已在组织块“PID [OB200]”中调用了“PID_Compact”块。
● 已在组织块“PID [OB200]”中调用了“PROC_C”仿真块。
【步骤】要组态工艺对象“'PID_Compact”并将其与仿真块“PROC_C”互连,请按以下步骤操作: 1. 在巡视窗口中打开 PID 控制器的组态。
2. 选择控制器的类型。
3. 输入控制器的设定值。
4. 分别为实际值和受控变量选择“输入”(input)和“输出”(output)。
从而指定将使用用户程序的某个变量中的值。
说明Input(_PER) -Output(_PER)使用输入和输出为输入或输出参数提供用户程序的实际值。
使用Input_PER 和Output_PER可将模拟量输入用作实际值或将模拟量输出用作受控值输出。
如何正确的使用S7-1200PLCPID调节,收好不谢一、用户使用S7-1200 PID程序块,使用的反馈值是INPUT,启动自整定后出现输入值超出设定范围错误,无法启动自整定功能。
经过多次交流,发现问题是存储器地址冲突:用户使用了INPUT 输入变量,经过模拟量输入处理程序标定上限为:100.0下限为:0.0。
分配的存储地址是MD516,在程序内容还使用了MW516,MD518地址。
导致地址冲突,修改MD516数据,使MD516存储器保存的数据大于100.0,当启动自整定时,出现输入值超出设定范围错误。
扩展知识1、MD516包括4个字节:MB516,MB517,MB518,MB519,当使用MD516寄存器,其他程序不能使用MB516,MB517,MB518,MB519。
否则,导致地址冲突,保存数据被修改或丢失。
在S7-200的M区和V区:S7-300、S7-400的M区都需要注意此问题。
2、S7-1200PID的两个反馈数据 INPUT/INPUT-PER区别,以及与 Setpoint的关系。
INPUT是现场仪表测里数据,经过程序标定转换成实际工程里数据。
数据类型是实数。
INPUT-PER是现场仪表数据直接经过模拟量通道进行测试,未进行数据标定,数据类型是 WORD可以通过PID组态直接进行数据标定,转换成实际工程量。
推荐使用此方法。
Setpoint:设定值,PID系统通过调解输出设备,使反馈值与设定值相等。
设置范围即是反馈值标定的上下限。
3 Output, Output -PER. Output-PWN区别这三个信号全是输出信号, Output与 Output -PER是一组Output输出是一个百分比数,即0%-100%,指控制设备全关或全开。
Output- Per直接输出至模拟量通道,输出整数0-27648Output- PWM输出是脉宽信号,开关量输出,与上面两个信号不相同,单独使用。
客户问题1:客户使用S7-1200 PID程序块,使用的反馈值是INPUT ,启动自整定后出现输入值超出设定范围错误,无法启动自整定功能。
解答:经过与用户多次交流,发现问题是存储器地址冲突:客户使用了INPUT输入变量,经过模拟量输入处理程序标定上限为:100.0,下限为:0.0。
分配的存储地址是MD516,在客户的程序内容还使用了MW516,MD518地址。
导致地址冲突,修改MD516数据,使MD516存储器保存的数据大于100.0,当启动自整定时,出现输入值超出设定范围错误。
扩展知识1. MD516 包括4个字节:MB516 ,MB517,MB518,MB519,当使用MD516寄存器,其他程序不能使用MB516,MB517,BM518,MB519。
否则,导致地址冲突,保存数据被修改或丢失。
在S7-200的M区和V 区;S7-300/S7-400的M区都需要注意此问题。
2. S7-1200 PID的两个反馈数据INPUT/INPUT-PER区别,以及与Setpoint的关系。
INPUT是现场仪表测量数据,经过程序标定转换成实际工程量数据。
数据类型是实数。
INPU-PER是现场仪表数据直接经过模拟量通道进行测试,未进行数据标定,数据类型是WORD。
可以通过PID组态直接进行数据标定,转换成实际工程量。
推荐使用此方法。
Setpoint:设定值,PID系统通过调解输出设备,使反馈值与设定值相等。
设置范围即是反馈值标定的上下限。
3. Output,Output_PER, Output-PWM区别,这三个信号全是输出信号,Output与Output_Per是一组,Output输出是一个百分比数,即0%~100%,指控制设备全关或全开。
Output_Per直接输出至模拟量通道,输出整数0~27648Output_Pwm输出是脉宽信号,开关量输出,与上面两个信号不相同,单独使用。
建议的组态过程:如图1 程序块图1如图2 基本参数配置反馈与输出配置图2如图3 反馈数据标定图3客户问题2:如何启动S7-1200的自整定,客户的设定值与反馈值过于接近,无法使用“启动自整定”解答:当您的系统各部分已经准备完毕,可以使用自整定,自整定功能只是系统将自动优化或计算PID参数,是调试的一种方法,正常运行时,不必运行自整定调试程序。
S7-1200 PID Compact V2 自整定功能PID 控制器能否正常运行,需要符合实际运行系统及工艺要求的参数设置。
由于每套系统都不完全一样,所以,每套系统的控制参数也不相同。
用户可通过参数访问方式手动调试,在调试面板中观察曲线图后修改对应的PID 参数。
也可使用系统提供的参数自整定功能,PID 自整定是按照一定的数学算法,通过外部输入信号,激励系统,并根据系统的反应方式来确定PID 参数。
S7-1200 PID 不支持仿真功能。
S7-1200 提供了两种整定方式,预调节、精确调节。
可在执行预调节和精确调节时获得最佳PID 参数。
预调节预调节功能可确定对输出值跳变的过程响应,并搜索拐点。
根据受控系统的最大上升速率与时间计算PID 参数。
过程值越稳定,PID 参数就越容易计算,结果的精度也会越高。
只要过程值的上升速率明显高于噪声,就可以容忍过程值的噪声。
最可能的情况是处于工作模式“未激活”和“手动模式”下。
重新计算前会备份PID 参数。
启动预调节的必要条件:•已在循环中断OB 中调用“PID_Compact” 指令。
•ManualEnable = FALSE 且Reset = FALSE•PID_Compact 处于下列模式之一:“未激活”、“手动模式”或“自动模式”。
•设定值和过程值均处于组态的限值范围内。
•| 设定值–过程值| > 0.3 * | 过程值上限–过程值下限|•| 设定值–过程值| > 0.5 * | 设定值|预调节:利用输出值的跳变启动预调节过程图1. 启动自整定曲线图如果执行预调节时未产生错误消息,则PID 参数已调节完毕。
PID_Compact 将切换到自动模式并使用已调节的参数。
在电源关闭以及重启CPU 期间,已调节的PID 参数保持不变。
如果无法实现预调节,PID_Compact 将切换到“未激活”模式。
精确调节精确调节将使过程值出现恒定受限的振荡。
S7-1200的被控仿真对象PID自整定过程S7-1200的PID控制支持通过系统自整定方式得出合适的PID参数,下面我们以PID_Compact指令结合被控仿真对象为例,通过若干张图呈现这一自整定过程,自整定包括预调节和精确调节两步。
(1)添加循环中断OB,因为PID指令块一定要放在循环中断块内调用,确保PID运算以固定的采样周期完成,如图1所示。
图1:添加循环中断OB30(2)从右侧指令>工艺>PID控制里面选择PID_Compact指令,也可从工艺对象里添加,可通过指令块图标直接进入到组态/调试窗口,如图2所示。
图2:PID_Compact指令块(3)进入工艺对象组态窗口进行相关设置,因为被控对象仿真,Input/Output选项卡设定下就可以了,其他按默认不予考虑,如图3所示。
图3: Input/Outpu参数设置(4)对PID指令块管脚添加相关变量,如图4所示。
图4:给PID指令块管脚添加变量(5)从全局库添加PID被控对象仿真块到循环OB中,该仿真块可以从西门子全球技术资源下载,条目号79047704,如图5所示。
图5:调用被控对象仿真块(6)PID的输出值作为被控仿真对象的输入,被控仿真对象的输出作为PID的反馈值,如图6所示。
图6:被控对象仿真块管脚变量(7)下载程序到PLC并进入调试(自整定)界面,先启动测量,此时预调节条件还未满足,如图7所示。
图7:进入到工艺对象PID调试面板(8)满足预调节主要条件1:设定值-当前值>(过程值上限-过程值下限)×30%,设定值-当前值>设定值×50%,如图8所示。
图8:修改设定值来满足预调节条件(9)满足预调节主要条件2,PID必须处于“未激活”、“手动”、或“自动”模式,如图9所示。
图9:PID已在手动模式(10)启动预调节,如图10所示。
图10:预调节开始(11)预调节结束并上传参数,如图11所示。
1200 pid使用方法
S7-1200 PLC的PID控制器可以通过PID_Compact指令块进行配置和使用。
以下是使用步骤:
1. 添加新块OB30。
2. 在OB30中调用PID指令块。
3. 根据实际需求设置PID控制器的参数,包括控制类型、输入/输出参数、
过程值设置、过程值监视、PWM限制(脉宽)、输出值限值和PID参数等。
4. 启动自整定功能,让PID控制器自动识别系统的参数并进行调节,以达
到理想的控制效果。
在使用过程中,需要注意避免存储器地址冲突,如使用不同的存储器地址,避免数据读取和写入时的冲突。
此外,需要根据实际需求和系统特性选择合适的控制类型和参数设置,以保证系统的稳定性和控制精度。
以上信息仅供参考,建议请教专业人士获取准确信息。
西门⼦PLC1200内使⽤SCL实现简化版PID算法
西门⼦⾃带的PID效果很好,但是会⽐较吃性能,使⽤次数有限,很多地⽅需要PID但不需要这么精准的PID,所以⽹上找个简单的算法⾃⼰调⽤。
新建数据类型
前三个就是PID三个参数
新建FC块:
#PIDInfo.Step += 1;IF #PIDInfo.Step >= #PIDInfo.MaxStep-1 THEN #PIDInfo.Step := 0; #PIDInfo.Ek := #SetValue - #ActualValue; #PIDInfo.LocSum += #PIDInfo.Ek; //累计误差 #PIDResult := #PIDInfo.Kp * #PIDInfo.E 调⽤:
DB块内增加变量
Step和MaxStep⽤于控制扫描多少次调⽤⼀次,以及可以错开调⽤
左边填⼊设置值,实际值,和刚才添加的变量,右边输出PID,PID输出值没有明确的范围,⾃⼰⽤Limite限制范围,调整P值让输出值在范围内浮动
附C#实现
class PID_Info { float Kp = 1; //⽐例系数Proportional float Ki = 0.2f; //积分系数Integral float Kd = 0.1f; //微分系数Derivative float Ek; //当前误差 float Ek1; //前⼀算法来⾃
blog。
csdn。
net/weibo1230123/article/details/80812211。
西门子12001500PLC用触摸屏按钮触发启动PID的自整定编
写方法程序示例
西门子PLC用触摸屏按钮触发启动PID的自整定程序示例
西门子PLC用触摸屏按钮触发启动PID的自整定程序示例,首先从博途软件右侧工艺列表中选择相应的PID控制器,并托到左侧的编程程序段内,此示例中以"PID_3Step"为例说明:
将PID功能块输入输出端根据需要加入相应的变量;
点击博途软件左侧中工艺对象中相应的PID功能中组态,进行PID 根据项目实际情况进行相应参数的设置:
变量设置:M20.0-屏幕自整定启动触发按钮;M32.2-1时为精确调节,为0时为预调节;根据要求可以更改PID自整定的设定值;
下载到PLC中并运行;
触摸屏中加入自整定启动,和精确调节启动,两个按钮,并将变量与PLC中的变量一一对应;
打开博途软件左测工艺对象中的调试功能,并点击测量下面的start,启动测量,用来监视PID自整定状态是否启动及整定过程;
点击屏幕中的自整定启动按钮触发启动PID自整定功能;程序中已启动自整定功能了;
自整定完成,程序中自动复位屏幕中的自整定启动按钮;
PID调试中显示系统已调节,PID自整定完成。
循环中断时间为添加循环中断后对指定两次中断的间隔时间,PID控制器采样时间:sRet.r_Ctrl_Cycle是控制器两次计算之间的间隔时间。
PID控制器的采样时间是循环中断时间的整数倍。
若用户使能自整定择系统会自动计算sRet.r_Ctrl_Cycle参数,若用户使用手动方式设定,则一定要注意此参数为循环中断时间的整数倍
例如:PID控制器的采样时间是1s,循环中断时间为100ms,则在1S的时间内,循环中断执行了10次,但前9次PID控制器都不进行运算,只在第10次运算若用户使能PWM输出,则PWM的周期即为
sRet.r_Ctrl_Cycle,其分辨率为循环中断的时间。
例如:PID控制器的采样周期为1S,循环中断时间为100ms,则PWM的周期为1S,分辨率为100ms,一个周期内可能的脉宽为:0(关闭),100,200,300,400,500,600,700,800,900,1000ms(全开)
还有可能问题:
参考廖老师转帖
当状态字的值为零时,把3赋值给地址"PID_Compact_DB_1".sRet.i_Mode就OK了。
做了这个以后我的加热功能PID 再也没有出过问题。
廖:下面的内容来源于S7-1200的PID功能块的帮助信息。
PID功能块的输出参数State用来显示PID控制器的当前操作模式。
State = 0:未激活
State = 1:预调节
State = 2:精确调节
State = 3:自动模式
State = 4:手动模式
不能修改State 参数,需要通过修改变量sRet.i_Mode来更改操作模式。
首先设置sRet.i_Mode = 0,然后设置sRet.i_Mode = 3。
如果控制器的当前操作模式支持此更改,则会将State设置为sRet.i_Mode的值。