组态王pid控件使用方法
- 格式:pdf
- 大小:203.79 KB
- 文档页数:9
第十四章控件14.2.8 超级文本显示控件组态王提供一个超级文本显示控件,用于显示RTF格式或TXT格式的文本文件,而且也可在超级文本显示控件中输入文本字符串,然后将其保存成指定的文件,调入RTF、TXT格式的文件和保存文件通过超级文本显示控件函数来完成。
14.2.8.1 如何创建超级文本显示控件在画面开发系统的工具箱中选择“插入控件”按钮,或选择菜单“编辑/插入控件”命令,在弹出的如图14.2所示的“创建控件”对话框中,在种类列表中选择“超级文本显示”,在右侧的内容中选择“显示框”图标,单击对话框上的“创建”按钮,或直接双击“显示框”图标,关闭对话框。
此时鼠标变成小“十”字形,在画面上需要插入控件的地方按下鼠标左键,拖动鼠标,画面上出现一个矩形框,表示创建后控件界面的大小。
松开鼠标左键,控件在画面上显示出来。
如图14.32所示。
控件周围有带箭头的小矩形框,鼠标挪到小矩形框上,鼠标箭头变为方向箭头时,按下鼠标左键并拖动,可以改变控件的大小。
当鼠标在控件上变为双“十”字型时,按下鼠标左键并拖动,可以改变控件的位置。
图14.32 创建后的超级文本显示框控件14.2.8.2 如何定义超级文本显示控件的属性控件创建完成后,需要定义空间的属性。
用鼠标双击控件,弹出超级文本显示框控件属性对话框,如图14.33所示。
图14.33 超级文本显示框控件属性对话框超级文本显示框控件属性:◆控件名称:定义控件的名称,一个显示框控件对应一个控件名称,而且是唯一的,不能重复命名,控件的命名应该符合组态王的命名规则。
如“Richtxt1”。
◆访问权限:定义控件的安全级别——访问权限,范围为1~999。
定义了访问权限后,运行时,只有符合该安全级别的用户登录后,才能操作控件,否则,修改不了控件的值。
如100。
属性定义完成后,单击“确认”按钮关闭对话框。
14.2.8.3 如何使用超级文本显示控件超级文本显示框的作用是显示RTF格式或TXT格式的文本文件的内容,或在显示框中输入文本字符串,将其保存为RTF格式或TXT格式的文本文件。
目录1 《控制系统集成实训》任务书 (2)2 总体设计方案 (4)2.1 系统组成 (4)2.2 水箱液位控制系统构成 (4)2.3 水箱液位控制系统工作原理 (5)2.4 仪表选型 (6)2.4.1 GK-01电源控制屏 (6)2.4.2 GK-02传感器输出与显示 (7)2.4.3 GK-03单片机控制 (7)2.4.4 GK-07交流变频调速 (8)2.4.4 GK-08 PLC可编程控制 (8)2.5 PLC设计流程图 (9)3 外部接线图 (10)4 I/0分配 (10)5 梯形图 (11)6 组态王界面 (15)6.1 主界面 (16)6.2 数据词典 (16)6.3 曲线监控 (17)6.4 水流动画程序 (18)7 调试和运行结果 (19)7.1 比例控制 (19)7.2 比例积分调节 (19)心得体会 (21)参考文献 (22)1.《控制系统集成实训》任务书题目:基于PLC和组态王的液位PID控制系统一、实训任务本课题要求设计液位PID控制系统,它的任务是使水箱液位等于给定值所要求的高度,并通过PID控制减小或消除来自系统内部或外部扰动的影响。
1.实训模块:1、THKGK-1过程控制实验装置GK-02、GK-07、GK-08。
2、计算机及STEP7运行环境(安装好演示程序)、MPI电缆线,组态王软件。
2.控制原理和控制要求:控制原理如图所示,测量值信号由S7-200PLC的AI通道进入,经程序比较测量值与设定值的偏差,然后通过对偏差的P或PI或PID调节得到控制信号(即输出值),并通过S7-200PLC 的AO通道输出。
用此控制信号控制变频器的频率,以控制交流电机的转速,从而达到控制水位的目的。
S7-200PLC和上位机进行通讯,并利用上位机组态王软件实现给定值和PID参数的设置、手动/自动无扰动切换、实时过程曲线的绘制等功能。
二、实训目的通过本次实训使学生掌握:1)实际控制方案的设计;2)编程软件的使用方法和梯形图语言的运用;2)程序的设计及实现方法;3)程序的调试和运行操作技术。
综合以上几种改进的PID控制算法,根据温度控制的实际情况,编写以下程序可根据实际情况,改变L、H、K的值,实现简单PID算法、积分分离的PID 算法和带死区的PID算法。
也可以根据实际情况结合三种算法,实现最优控制。
程序框图如图6.18在组态王大纲下,点击“命令语言”—“应用程序命令语言”在其窗口下编写如下程序。
应用程序命令语言如图7.19。
图7.19源程序为:if(\\本站点\自动开关==0){\\本站点\ek0=\\本站点\sv-\\本站点\温度1;if(abs(\\本站点\ek0)<\\本站点\L||\\本站点\ek0<0){\\本站点\I=1/\\本站点\TI;}else {\\本站点\I=0;}\\本站点\A=\\本站点\Pk*(1+\\本站点\I+\\本站点\TD);\\本站点\B=\\本站点\Pk*(1+2*\\本站点\TD);\\本站点\C=\\本站点\Pk*\\本站点\TD;\\本站点\uk=\\本站点\A*\\本站点\ek0-\\本站点\B*\\本站点\ek01+\\本站点\C*\\本站点\ek02+\\本站点\uk01;\\本站点\uk01=\\本站点\uk;\\本站点\ek02=\\本站点\ek01;\\本站点\ek01=\\本站点\ek0;if(\\本站点\uk<1000){if(\\本站点\uk>0){if(abs(\\本站点\ek0)<\\本站点\H){\\本站点\uk1=\\本站点\K*\\本站点\uk;}else {\\本站点\uk1=\\本站点\uk;}}else {\\本站点\uk1=0;}}else {\\本站点\uk1=1000;}}。
组态软件MCGS的PID程序'* asng1DataValue(0) = PV'* asng1DataValue(1) = SV'* asng1DataValue(2) = OP'* asng1DataValue(3) = P'* asng1DataValue(4) = I'* asng1DataValue(5) = D' sng1ParP = 250 '* 比例系数P' sng1ParI = 50 '* 积分系数I' sng1ParD = 5 '* 微分系数D' sng1PvMin = 0 '* PV 值下限' sng1PvMax = 300 '* PV 值上限' sng1SvMin = 0 '* SV 值下限' sng1SvMax = 300 '* SV 值上限' sng1OpMin = 0 '* OP 值下限' sng1OpMax = 100 '* OP 值上限' sng1ChangeMin = 1 '* 死区范围' sng1ChangeMax = 10 '* 调节范围' sng1OutPutMax = 80 '* 超调时输出' sng1CtlDirection = 1 '* 调节方向' sng1ControlT = 100 '* PID的调控周期,和设备的采集周期相同' Dim sng1PVRange '* PV值的量程' Dim sng1Outdx '* PID计算出的输出增加值'' '* 确保控制周期不为0If sng1ControlT = 0 Then sng1ControlT = 1' '* 计算PV值的量程,并确保其不为0sng1PVRange = sng1PvMax - sng1PvMinIf sng1PVRange <= 0 Then sng1PVRange = 1' '* 把超调值由百分比转换成实际物理量' sng1ChangeMax = sng1PVRange * sng1ChangeMax / 100 '*======================================================================================' '* PV值和SV值必须在设定的限值范围之内If sng1Pv < sng1PvMin Then sng1Pv = sng1PvMinIf sng1Pv > sng1PvMax Then sng1Pv = sng1PvMaxIf sng1Sv < sng1SvMin Then sng1Sv = sng1SvMinIf sng1Sv > sng1SvMax Then sng1Sv = sng1SvMax' * ========================================= ========================================================' * 计算SV和PV值的差值,第一次计算时,取m_sng1SvPvdx1、m_sng1SvPvdx2值和m_sng1SvPvdx相同' m_sng1SvPvdx '* 本次调控时SV和PV值的差值' m_sng1SvPvdx1 '* 上次调控时SV和PV值的差值' m_sng1SvPvdx2 '* 调控过程中SV和PV值的差值的累计和m_sng1SvPvdx = sng1Sv - sng1Pvm_sng1SvPvdx2 = m_sng1SvPvdx2+m_sng1SvPvdxm_sng1SvPvdx1 = m_sng1SvPvdx'设定m_sng1SvPvdx1的初值为111111;标记是否第一次进行PID计算,防止m_sng1SvPvdx 和1m_sng1SvPvdx2的值为0 If m_sng1SvPvdx1 = 111111 Thenm_sng1SvPvdx1 = m_sng1SvPvdxm_sng1SvPvdx2 = m_sng1SvPvdxEndIf'* 进行PID运算,sng1ParI=0 和sng1ParI<>0的算法不一样'sng1ControlT :调节周期,和设备的采集周期相同(单位为:秒)If sng1ParI <> 0 Thensng1Outdx = sng1ParP * (m_sng1SvPvdx - m_sng1SvPvdx1 + m_sng1SvPvdx * sng1ControlT / sng1ParI + (m_sng1SvPvdx - 2 * m_sng1SvPvdx1 + m_sng1SvPvdx2) * sng1ParD / sng1ControlT) Elsesng1Outdx = sng1ParP * (m_sng1SvPvdx - m_sng1SvPvdx1 + (m_sng1SvPvdx - 2 * m_sng1SvPvdx1 + m_sng1SvPvdx2) * sng1ParD / sng1ControlT)EndIf'* 处在死区范围,输出值保持不变If !Abs(m_sng1SvPvdx) < !Abs(sng1ChangeMin) Then sng1Outdx = 0'* 当PID控制的调节方向方向不一样时,输出值的处理方法不一致If sng1CtlDirection = 1 Thensng1OP = sng1OP + sng1Outdx'* 正向控制时的超调处理If !Abs(m_sng1SvPvdx) >= sng1ChangeMax And sng1ChangeMax > 0 Then If m_sng1SvPvdx > 0 Then sng1OP = sng1OutPutMaxEndIfElsesng1OP = sng1OP - sng1Outdx'* 反向控制时的超调处理If !Abs(m_sng1SvPvdx) >= sng1ChangeMax And sng1ChangeMax > 0 Then If m_sng1SvPvdx < 0 Then sng1OP = sng1OutPutMaxEndIfEndIf'* OP值必须在设定的限值范围之内If sng1OP < sng1OpMin Then sng1OP = sng1OpMin If sng1OP > sng1OpMax Then sng1OP = sng1OpMax !SaveDataInit()!SaveSingleDataInit(sng1ParP)!SaveSingleDataInit(sng1ParI)!SaveSingleDataInit(sng1ParD)!SaveData(sng1OP )。
组态王串级PID水箱仿真该教程用串级PID算法实现对水箱液位的控制。
一、建立数据变量打开组态王6.55,新建一个工程,将其命名为“串级PID”。
打开工程,根据所需用到的数据类型、数据范围大小、初始值等建立数据变量(详细数据变量见附件1)。
二、搭建仿真画面根据实际器件,开关,阀门,曲线图,数据查看等需要,建立仿真画面(详细步骤见附件2)。
三、将画面动画连接到变量根据仿真时画面的动画要求,设置画面属性和各个器件、曲线图等的动画连接(详见附件2)。
四、编写运行程序打开工程浏览器,文件-命令语言-应用程序命令语言,双击打开程序编辑窗口,输入程序(详见附件3)。
五、调节PID参数运行系统。
分别调节两种PID算法的PID参数,实现对液位的控制。
1、第一种PID算法UK0=(KP+KP/KI+KP*KD)*EK0-(KP+2*KP*KD)*EK1+(KP*KD)*EK2+UK1 2、第二种PID算法UK0=KP*EK0+KI*SUM_EK0+KD*(EK0-EK1)/dt+UK1附件1:数据变量模拟量部分:变量名变量类型最大值最小值描述HM 内存实数100 0 水箱目标液位HS 内存实数100 0 水箱实际液位HC 内存实数120 0 储水池液位W 内存实数100 0 调节阀开度LM 内存实数200 0 目标流量LS 内存实数200 0 实际流量PS 内存实数120 80 水压波动比率G1 内存实数10 0 水管1流量G2 内存实数10 0 水管2流量开关量部分:变量名变量类型初始值描述V 内存离散0 水泵开关V1 内存离散0 阀门1开关V2 内存离散0 阀门2开关P 内存离散0 PID控制开关K 内存离散0 水压波动开关查看量部分:变量名变量类型初始值描述S 内存离散0 查看水箱有无水C 内存离散0 查看储水池有无水T 内存离散0 查看调节阀有无开PID计算部分:变量名变量类型最大值最小值描述EKH0 内存实数1000 -1000 本次液位偏差EKH1 内存实数1000 -1000 上次液位偏差EKH2 内存实数1000 -1000 上上次液位偏差SUM_EKH 内存实数10000 -10000 液位偏差积分UKH0 内存实数10000 -10000 本次液位PID结果UKH1 内存实数10000 -10000 上次液位PID结果KP1 内存实数1000 0 比例参数1KI1 内存实数1000 0 积分参数1KD1 内存实数1000 0 微分参数1EKL0 内存实数1000 -1000 本次流量偏差EKL1 内存实数1000 -1000 上次流量偏差EKL2 内存实数1000 -1000 上上次流量偏差SUM_EKL 内存实数10000 -10000 流量偏差积分UKL0 内存实数10000 -10000 本次流量PID结果UKL1 内存实数10000 -10000 上次流量PID结果KP2 内存实数1000 0 比例参数2KI2 内存实数1000 0 积分参数2KD2 内存实数1000 0 微分参数2TI 内存实数1000 0 时间计数器附录2:按照上图中各器件位置和下面所列各器件图像来源,动画连接、变量参数设置等搭建仿真画面。
5、运行时修改控件属性控件属性定义完成后,启动组态王运行系统,运行系统的控件如图10所示。
图10 运行时的控件5.1 数值轴指示器的使用:拖动数值轴(Y 轴)指示器,可以放大或缩小曲线在Y 轴方向的长度,一般情况下,该指示器标记为当前图表中变量量程的百分比。
另外,用户可以修改该标记值为当前曲线列表中某一条曲线的量程数值。
修改方法为:用鼠标单击图表下方工具条中的“百分比”按钮右侧的箭头按钮,弹出如图11所示的曲线颜色列表框。
该列表框中显示的为每条曲线所对应的颜色,(曲线颜色对应的变量可以从图表的列表中看到),选择完曲线后,弹出如图12所示的对话框,该对话框为设置修改当前标记后数值轴显示数据的小数位数。
选择完成后,数值轴标记显示的数据变为当前选定的变量的量程范围,标记字体颜色也相应变为当前选定的曲线的颜色,如图13所示。
图11 选择数值轴显示数据的变量图12 设置数值轴标记的小数位指示器工具条 变量列表图13 修改数值轴标记为变量实际量程5.2 时间轴指示器的使用:时间轴指示器所获得的时间字符串显示在曲线图表的顶部两侧,如图13所示。
时间轴指示器可以配合函数等获得曲线某个时间点上的数据。
5.3 工具条的使用:曲线图表的工具条是用来操作曲线图表查看变量曲线的。
工具条的具体作用可以通过将鼠标放到按钮上时弹出的提示文本看到。
下面详细介绍每个按钮的作用。
1、调整跨度设置按钮:单击按钮弹出如图16所示的对话框,修改当前跨度时间设定值。
图16 修改调整跨度在“单位”列表框中选择跨度的时间单位,有:日、时、分、秒、毫秒。
在跨度编辑框中输入时间跨度的数值。
支持毫秒级数据的显示:A.由于组态王历史库还不支持毫秒数据,因此真正支持到毫秒级目前还限于ODBC数据库,等高速历史库完成后,组态王历史库才真正支持到毫秒级。
B.时间轴最短宽度为10ms。
C.放缩、移动都支持到毫秒。
在设置参数对话框中(运行时点击设置参数按扭弹出)中不能设置到毫秒级,要设置到毫秒级要使用命令语言。
PID控制组态手册PID控制组态手册PID 指令PID 回路PID 回路指令运用以回路表中的输入和组态信息使 ENO = 0 的错误条件是SM4.3(运行时间)SM1.1 (溢出)输入/输出操作数数据类型TBL VB BYTELOOP 常数 (0 到 7) BYTEPID 回路指令 (包含比例微分回路) 是用来进行 PID 运算可以进行这种 PID 运算的前提条件是逻辑堆栈栈顶 (TOS) 值必须为该指令有两个操作数其中TABLE 是回路表的起始地址可以是 0 到 7 的整数如果两个或两个以上的 PID 指令用了同一个回路号这些 PID 运算之间也会相互干涉.回路表包含 9 个参数这些参数分别是过程变量当前值 (PVn)给定值 (SPn)增益 (Kc)积分时间 (TI)为了让PID 运算以预想的采样频率工作或者用在主程序中被定时器所控制以一定频率执行使用 STEP 7-Micro/WIN 32 中的 PID 向导STEP 7–Micro/WIN 32 提供了PID 向导指导你定义一个闭环控制过程的 PID 算法然后从指令向导窗口中选择 PID 指令PID 算法PID 控制器调节输出使系统达到稳定状态PID 控制的原理基于下面的算式积分项和微分项的函数M(t)PID 回路的输出连续算式必须离散化为周期采样偏差算式数字计算机处理的算式如下M n在第 n 采样时刻积分项是从第 1 个采样周期到当前采样周期所有误差项的函数比例项仅是当前采样的函数不保存所有的误差项n*+edt+M initial + K c *de/dt输出= 比例项 + 积分项 + 微分项由于计算机从第一次采样开始只需要保存偏差前值和积分项前值可以化简以上算式为M n 在第 n 采样时刻这个改进型算式是M n 第 n 采样时刻的计算值MP n 第 n 采样时刻的比例项值Mi n 第 n 采样时刻的积分项值MD n 第 n 采样时刻的微分项值比例项比例项 MP 是增益 (K c) 和偏差 (e) 的乘积偏差 (e) 是给定值(SP) 与过程变量值 (PV) 之差MP n = K c * (SP n - PV n)其中积分项积分项值 MI 与偏差和成正比MI n =Kc * T S / T I * (SP n - PV n) + MX其中在每次计算出 MI n 之后其中 MI n 可以被调整或限定 (详见“变量和范围”一节)积分项还包括其他几个常数采样时间间隔 (T S) 和积分时间 (T I)y·?ê±y·????ú????ê?3??á1??Dó°?ìμ?′óD?μèê??aù?¨¨?μ2?±?(SP n=SP n-1)?éò?ó?1y3ì±?á?μ?±??ˉì?′ú??2?μ?±??ˉMD n第 n 采样时刻的微分项值Kc 回路增益Ts 回路采样时间T D 微分时间SP n 第 n 采样时刻的给定值SP n – 1 第 n-1 采样时刻的给定值PV n 第 n 采样时刻的过程变量值PV n – 1 第 n-1 采样时刻的过程变量值为了下一次计算微分项值而不是偏差初始化为 PV n -1回路控制类型的选择在许多控制系统中例如只需要比例回路或者比例积分回路可先选中想要的回路控制类型可以把积分时间设为无穷大积分项还是不为零如果不想要微分回路如果不想要比例回路可以把增益设为 0.0°ò?μ±×÷ 1.0 看待给定值(SP) 和过程变量(PV)±èè?ê?éè?¨μ3μ?ù?è?éò?oaá?ê?3??μí3×÷ó?μ?′óD?1y3ì±?á??éò?ê?2a?ùò?μ?ê?è? (衡量车轮转速高低)ü??μ?′óD?PID 指令在对这些量进行运算以前转换的第一步是把 16 位整数值转成浮点型实数值XORD AC0MOVW AIW0LDW>= AC0AC0 //先对 AC0 中值进行符号扩展LBL 0DTR AC01.0 之间的实数R Norm = (R Raw / Span) + Offset)其中双极性为 0.5Span 值域大小1.0之间的实数累加器中的标准化值AC0//+R 0.5ê1ú 0.0VD100 //标准化的值存入回路表回路输出值转换成刻度整数值回路输出值一般是控制变量在汽车速度控制中同时1.0之间的标准化了的实数值必须把回路输出转换成相应的16 位整数是给定值或过程变量的标准化转换的反过程公式如下R scal 回路输出的刻度实数值M n 回路输出的标准化实数值Offset 单极性为 0.0é?ü×?′ó?μ??è¥?é?ü×?D??μ单极性为 32,000 (典型值)双极性为 64,000 (典型值)这一过程可以用下面的指令序列完成可通过下面的指令序列来完成那么该回路为正作用回路那么是反作用回路如果指定积分时间就是正作用回路则是反作用回路因此在回路表中输出变量是由 PID 运算产生的需更新回路表中的输出值1.0之间回路表中的输出值可以用来初始化输出值 (有关 PID 指令的方式详见下面的“控制方式” 一节)y·°?μòa?ù?Y PID 运算结果更新当输出值超过范围 (大于 1.0 或小于 0.0)MX = 1.0 - (MP n + MD n) 当计算输出 M n > 1.0或MX = - (MP n + MD n) 当计算输出 M n < 0.0其中一旦输出回到范围后而且积分项前值也要限制在0.0è?oó?ú??′? PID 运算结束之后以备在下次 PID 运算中使用在实际运用中手工调整积分项前值时还应保证写入的值在 0.0回路表中的给定值与过程变量的差值(ó??§×?o?2?òaè¥DT??′??μòa PID 块有效在这种意义上说当 PID 运算不被执行时同计数器指令相似当该使能位检测到一个信号的正跳变 (从 0 到 1) ê1 PID 指令从手动方式无扰动地切换到自动方式在转变到自动控制前PID 指令对回路表中的值进行下列动作从手动方式无扰动切换到自动方式过程变量 (PV n)l置过量变量前值 (PV n-1)输出值 (M n)PID 使能位的默认值是 1CPU 进入 RUN 方式后首次使 PID 块有效那么就没有无扰动切换的动作如果其他过程需要对回路变量进行报警等特殊操作出错条件如果指令指定的回路表起始地址以及回路号操作数超出范围CPU 令产生编译错误(范围错误)PID 指令不检查回路表中的值是否在范围之内PID 指令不检查回路表中的值是否超界如果 PID 计算的算术运算发生错误并且中止 PID 指令的执行单靠改变回路表中的输出值是不够的改变引起算术运算错误的输入值回路表36 个字节的回路表的格式如表 9-19 所示必须在 0.0±?D??ú 0.0±?D??ú 0.0é?y?é?o16 采样时间双字 - 实数输入单位为秒(T S)必须是正数24 微分时间双字 - 实数输入单位为分钟(T D)必须在 0.0óDòDèòa??3?ò??¨μ?a?íDèòaóDò±?ò?2?í?μ??ù?è1????a?ù2??üê1????2?????1y3ì±?á?óé?ˉú?μ??2aá?ò3?éò?′ó?êDí×?′ó?μμ? 0% 变到 100%1y3ì±?á??μê?à′×±íμ?μ¥??D??£?aá?ó?à′±??ù?è 1.0在本系统中其回路增益和时间常数可以通过工程计算初步确定初步确定的增益和时间常数为关闭出水口使水位达到满水位的 75%í?ê±??±′óê??ˉ·?ê??D??μ?×??ˉ·?ê??èê?è???0 代表手动当工作在手动控制方式下1.0之间的实数) 写到VD108 (VD108 是回路表中保存输出的寄存器)图 9-28 是本控制实例的程序/ /装入设定值75%/ /装入回路增益=0.25/ /装入采样时间=0.1秒/ /装入积分时间=30分/ /关闭微分作用/ /设定定时中断0发生的时间/ /间隔为100m s/ /设置定时中断以执行PID计算/ /允许中断/ /子程序0结束LAD STLNETWORK 1//把PV转换成一个标准的实数就执行PIDPID VB100, 0NETWORK 3 //把Mn转换成16位整数/ / 把PV 转换成一个标准的实数 / / PV 是一个单极/ / 把单极性模拟量存入累加器/ / 把32位整数变换成实数/ / 标准化累加器中的值/ / 把标准化的PV 值存入TABLE 表/ / 在自动方式下执行PID 控制/ / 一旦进入自动方式Mn 为单极性且非负/ / 把输出值传送到累加器 / / 累加器中为刻度值/ / 把实数转换成32位整数/ / 把16位整数写到模拟输出VD100 ENOENOAQW0图9-28 PID回路控制实例 (续)。
KingviewPid控件使用方法
KingviewPid控件是组态王提供的用于对过程量进行闭环控制的专用控件。
通过该控件,用户可以方便的制作PID控制。
一、 控件功能:
1.pid控制算法:标准型,分为增量型和位置型。
2.显示过程变量的精确值,显示范围[-999999.99~999999.99]。
3.以百分比显示设定值(SP)、实际值(PV)和手动设定值(M)。
4.开发状态下可设置控件的总体属性、设定/反馈范围和参数设定。
5.运行状态下可设置PID参数和手动自动切换。
二、 使用说明:
1.在画面中插入控件:组态王画面菜单中编辑\插入通用控件,或在工具箱中单击“插入通用控件”按钮,在弹出的对话框中选择“Kingview Pid Control”,单击确定。
2.按下鼠标左键,并拖动,在画面上绘制出表格区域。
图1 控件画面
3.设置动画连接:双击控件或选择右键菜单中动画连接,在弹出的属性页中设置控件名称等信息(控件动画连接属性的具体设置请参见《组态王6.0使用手册》中控件一章)。
(1)、常规:
图2 动画连接属性—常规
¾设置控件名称:应符合组太王中关于名称定义的规定,例如:PIDCtrl0。
¾优先级:是控件的操作优先级,范围在1~999。
¾安全区:安全区只允许选择。
(2)、属性类型关联对象:
图3动画连接属性—属性
¾SP:FLOAT,控制器的设定值。
¾PV:FLOAT,控制器的反馈值。
¾YOUT:FLOAT,控制器的输出值。
¾Type:LONG,PID的类型。
¾CtrlPeriod:LONG,控制周期。
¾FeedbackFilter:BOOL,反馈加入滤波。
¾FillterTime:LONG,滤波时间常数。
¾CtrlLimitHigh:FLOAT,控制量高限。
¾CtrlLimitLow:FLOAT,控制量低限。
¾InputHigh:FLOAT,设定值SP的高限。
¾InputLow:FLOAT,设定值SP的低限。
¾OutputHigh:FLOAT,反馈值PV的高限。
¾OutputLow:FLOAT,反馈值PV的低限。
¾Kp:FLOAT,比例系数。
¾Ti:LONG,积分时间常数。
¾Td:LONG,微分时间常数。
¾Tf:LONG,滤波时间常数。
¾ReverseEffect:BOOL,反向作用。
¾IncrementOutput:BOOL,是否增量型输出。
注意:在使用变量关联时,只有控件所处的画面处于激活状态,控制功能才会执行。
(3)、命令语言中的使用
A、在使用变量关联时:
此时,只有控件所处的画面处于激活状态,控制功能才会执行,如果工程中存在多个画面,并且PID 控件画面并不总是处于激活状态,则应该采用命令语言的方式使用PID控件。
即,在控件所处画面的画面命令语言中,使用赋值的方式,显示地交换PID控制值。
选择画面命令语言中的控件,如下所示:
图4 控件属性和方法
在属性或方法中选择相应的选项,在存在时出现命令语言,如我们选择SP双击,则如下显示:
图5 画面命令语言-存在时
显示时:当画面由隐含变为显示时,则“显示时”编辑框中的命令语言就被执行一次。
存在时:只要该画面存在,则“存在时”编辑框中的命令语言就反复按照设定的时间周期执行。
隐含时:当画面由显示变为隐含或关闭时,则“隐含时”编辑框中的命令语言就被执行一次。
输入命令语言,如下:
图6 画面命令语言-存在时
其中,SP为设定变量,PV为反馈变量,YOUT为控制器输出变量。
B、在使用工程浏览器的应用程序命令语言时:应用程序语言可以在程序启动时执行、关闭时执行或在程序
运行期间定期执行。
(1) 打开工程浏览器:
图7 应用程序命令语言应用程序命令语言的编写同上面。
程序如下:
图8 应用程序命令语言
4.设置控件属性:选择控件右键菜单中“控件属性”。
弹出控件固有属性页,可分别设置如下属性:(1)、总体属性:
图9 总体属性
¾控制周期:PID的控制周期,为大于100的整数。
且控制周期必须大于系统的采样周期。
¾反馈滤波:pv值在加入到PID调节器之前可以加入一个低通滤波器。
¾输出限幅:控制器的输出限幅Yout的值。
(2)、设定/反馈变量范围:
图10 设定/反馈变量范围
¾输入变量:设定值sp或者反馈值pv对应的最大值(100%)和最小值(0%)的实际值。
设定值sp与反馈值pv一般最大值、最小值相同。
¾输出变量:输出值Yout对应的最大值(100%)和最小值(0%)的实际值。
(3)、参数选择:
图11 参数选择
¾PID类型:选择使用标准型、归一型、近似微分型。
¾比例系数Kp:设定比例系数。
取值范围:1-10
¾积分时间Ti:设定积分时间常数,就是积分项的输出量每增加与比例项输出量相等的值所需要的时间。
取值范围:1000-5000ms
¾微分时间Td:设定微分时间常数,就是对于相同的输出调节量,微分项超前于比例项响应的时间。
一般取值为0
¾反向作用:输出值取反。
一般不选
¾增量型输出:控制器输出为增量型。
一般不选
5、运行时的操作:
¾手动/自动,自动时,控制器调节作用投入。
手动时,控制器输出为手动设定值经过量程转换后的实际值。
手动设定为M,是YOUT的值。
¾手动值设定(上/下),每次点击手动设定值增加/减少1%
7、运行时的参数设置
¾标准型PID参数:比例系数、积分常数、微分常数,PID的常规参数¾反向作用:输出值取反
三、 此控件目前不支持的功能:
1、增量型对象暂时不易实现
2、控制周期不能低于采样周期。