组态王Pid控件使用方法
- 格式:doc
- 大小:155.27 KB
- 文档页数:11
组态王(KINGVIEW)软件使用方法一、组态王软件的结构“组态王6.0x”是运行于Microsoft Windows 98/2000/NT中文平台的中文界面的人机界面软件,采用了多线程、COM组件等新技术,实现了实时多任务,软件运行稳定可靠。
“组态王6.0x”软件包由工程浏览器(TouchExplorer)、工程管理器(ProjManager)和画面运行系统(TouchView)三部分组成。
在工程浏览器中您可以查看工程的各个组成部分,也可以完成数据库的构造、定义外部设备等工作;工程管理器内嵌画面管理系统,用于新工程的创建和已有工程的管理。
画面的开发和运行由工程浏览器调用画面制作系统TOUCHMAK和工程运行系统TOUCHVEW来完成的。
TOUCHMAK是应用工程的开发环境。
您需要在这个环境中完成画面设计、动画连接等工作。
TOUCHMAK具有先进完善的图形生成功能;数据库提供多种数据类型,能合理地提取控制对象的特性;对变量报警、趋势曲线、过程记录、安全防范等重要功能都有简洁的操作方法。
PROJMANAGER是应用程序的管理系统。
PROJMANAGER具有很强的管理功能,可用于新工程的创建及删除,并能对已有工程进行搜索、备份及有效恢复,实现数据词典的导入和导出。
TOUCHVEW是“组态王6.0x”软件的实时运行环境,在应用工程的开发环境中建立的图形画面只有在TOUCHVEW中才能运行。
TOUCHVEW从控制设备中采集数据,并存在于实时数据库中。
它还负责把数据的变化已动画的方式形象地表示出来,同时可以完成变量报警、操作记录、趋势曲线等监视功能,并按实际需求记录在历史数据库中。
二、建立新工程在组态王中,您所建立的每一个应用称为一个工程。
每个工程必须在一个独立的目录下,不同的工程不能共用一个目录。
在每一个工程的路径下,生成了一些重要的数据文件,这些数据文件不允许直接修改。
启动组态王工程管理器,选择菜单“文件\新建工程”或单击“新建”按钮, 弹出新建工程向导之一对话框,单击”下一步”继续。
目录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:按照上图中各器件位置和下面所列各器件图像来源,动画连接、变量参数设置等搭建仿真画面。
第十四章控件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格式的文本文件。
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.放缩、移动都支持到毫秒。
在设置参数对话框中(运行时点击设置参数按扭弹出)中不能设置到毫秒级,要设置到毫秒级要使用命令语言。
报告用纸目录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页第报告用纸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)程序的调试和运行操作技术。
图1 控件画面3.设置动画连接:双击控件或选择右键菜单中动画连接,在弹出的属性页中设置控件名称等信息。
(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,是否增量型输出。
DeadBandLow:Long,无效。
Status:BOOL,手自动状态。
M:FLOAT,手动设定值。
PercentRange:float,手动时调节的调节幅度,默认是1,(可以在运行时,点击参数按钮在手动调节比率里面调节此参数)。
新增功能。
注意:在使用变量关联时,只有控件所处的画面处于激活状态,控制功能才会执行。
(3)命令语言中的使用A、在使用变量关联时:此时,只有控件所处的画面处于激活状态,控制功能才会执行,如果工程中存在多个画面,并且PID控件画面并不总是处于激活状态,则应该采用命令语言的方式使用PID控件。
上位机为控制系统,在组态软件中使用PID控件:在工具箱中找到“插入通用控件”,在控件列表中选择“Kingview Pid Control”,单击“确定”,这时画面上鼠标就变成一个小十字,可以在任何位置点中鼠标左键,并拖动鼠标,确定控件的大小。
(1)控件属性设置:选中控件,并单击右键选中“控件属性”,弹出控件属性对话框。
其中各参数设置分别如下:
总体属性:控制周期默认1000ms;反馈滤波
根据需要自行设定;输出限幅根据输出模块的范
围设定。
图20 总体属性设置
设定/反馈变量范围:根据输入输出信号的范围设
定,无特殊要求时我们采用4~20mA电流信号,
设置如图21所
图
21 设定/反馈变量范围
参数选择:此处的参数选择是对控件的初始
化,需要注意的是“反向作用”前打钩,控件为
作用;反之控件为反作用。
图22 参数选择设置
(2)关联变量:双击画面中的PID控件,再弹出
的“动画连接属性”对话框中,对控件的动画效果进行连接。
常规与事件两项,如果无特殊要求可采用默认值。
属性:双击需要关联的变量,在弹出的变量选
择对话框中,选择变量。
如图23所示。
图23 控件属性
(3 )控件上的为手自动切换按钮,当
进入运行状态时,控件默认为自动状态;
为控件“PID参数设置”按钮,同样当进入运
行状态时,控件按初始化时的设置运行。
注意:这两个按钮只有在运行状态下才起作用。
组态王P i d控件使用方法KingviewPid控件是组态王提供的用于对过程量进行闭环控制的专用控件。
通过该控件,用户可以方便的制作PID控制。
一、控件功能:1.pid控制算法:标准型,分为增量型输出和反向作用。
2.显示过程变量的精确值,显示范围[-999999.99~999999.99]。
3.以百分比显示设定值(SP)、实际值(PV)和手动设定值(M)。
4.开发状态下可设置控件的总体属性、设定/反馈范围和参数设定。
5.运行状态下可设置PID参数和手动自动切换。
二、使用说明:1.在画面中插入控件:组态王画面菜单中编辑\插入通用控件,或在工具箱中单击“插入通用控件”按钮,在弹出的对话框中选择“Kingview Pid Control”,单击确定。
2.按下鼠标左键,并拖动,在画面上绘制出表格区域。
图1 控件画面3.设置动画连接:双击控件或选择右键菜单中动画连接,在弹出的属性页中设置控件名称等信息。
(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,比例系数。
计算机控制技术自动化学院黄国辉Email : hgh817@Tel: 86919133QQ: 511372733实验三基于组态王的液位PID 控制实验(水泵控制)第一步创建工程路径新建的工程(项目)第二步创建新画面双击双击快捷键F2能打开图库管理器找到左侧反应器一栏双击同理找出水泵和阀门选择管道从水泵出水口开始按水流方向画线,双击结束选择水箱选择图素前移选择矩形画图,在画面上画出矩形用作水槽选择填充选择过度色类型并选择图素前移,使水槽覆盖水管显示画刷类型增加水箱过度色选择管道属性可改变管道属性,流动效果属性,来设置不同的管道及流动效果。
更改所有管道属性,并移动水泵等位置,和水管位置相匹配。
可更改文字颜色插入文本注意:文字和后面的“####”分两次输入!!!选择按钮选择字符串替换,可更改按钮上的字在工具箱中选择“实时趋势曲线”,放置在合适位置。
保存!第三步配置设备组态王可以与一系列I/O设备进行通讯,支持的I/O设备包括:可编程控制器(PLC)、智能模块、板卡、智能仪表等等。
组态王与I/O设备之间的数据交换采用以下五种方式:串行通讯方式、板卡方式、网络模块、人机接口卡方式、DDE方式。
在本实验中选取ModbusRTU(unpack)通过串口方式进行数据交互。
组态王和单片机进行数据交互有严格的数据格式。
双击点击下拉,找到莫迪康选择COM口1代表下位机设备地址,地址范围为1-255。
添加设备成功ModbusRTU(unpack)协议格式:举例说明举例说明组态王莫迪康系列产品的Modbus RTU驱动帮助)ModBus功能码与组态寄存器对应关系此表为操作相关寄存器对应的功能码表格(主要用到了寄存器4相应的功能码为03,06。
)例如:功能码03,对寄存器4进行读操作,寄存器地址为4xxx功能码06,对寄存器4进行写操作,寄存器地址为4xxx地址为40101:使用寄存器名称为4,dd 为地址通道范围,0101为水泵1实际地址100加上1后的值,因为组态地址通道是从1开始的,没有00地址。
图1 控件画面
3.设置动画连接:双击控件或选择右键菜单中动画连接,在弹出的属性页中设置控件名称等信息。
(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,是否增量型输出。
DeadBandLow:Long,无效。
Status:BOOL,手自动状态。
M:FLOAT,手动设定值。
PercentRange:float,手动时调节的调节幅度,默认是1,(可以在运行时,点击参数按钮在手动调节比率里面调节此参数)。
新增功能。
注意:在使用变量关联时,只有控件所处的画面处于激活状态,控制功能才会执行。
(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%
文档
6、运行时的参数设置:如图12所示
标准型PID参数:比例系数、积分常数、微分常数,PID的常规参数反向作用:输出值取反
手动情况下设定手动调节比率:
图12 PID参数设置
三、目前不支持的功能:
1、增量型对象暂时不易实现。
2、控制周期不能低于采样周期。