昆仑通态如何采用脚本程序构件实现“比例-微分-积分”(PID)控制算法?
首先在循环策略块中创建一个策略行,如下图所示。在策略行的条件部分可以控制该算法是否启动,设置循环策略的定时时间为1秒,在策略行的功能部分放置脚本程序构件。
在实时数据库中定义如下数据对象:
对象名称
类型 初始值 注 释
ADdat0 数值型 0 和模拟量输入通道建立连接
DAdat0 数值型 0 和模拟量输出通道建立连接
SetV 数值型 100 控制设定值
Tempdx 数值型 0 用作存储临时数据
Tempdx1 数值型 0 用作存储临时数据
Tempdx2 数值型 0 用作存储临时数据
Pdat 数值型 100 PID算法中的参数P
Idat 数值型 20 PID算法中的参数I
Ddat 数值型 20 PID算法中的参数D
在设备窗口中加入相应的设备构件,指定ADdat0数据对象和设备的模拟量输入通道0建立连接,指定DAdat0数据对象和设备的模拟量输出通道建立连接。
在策略行的脚本程序构件中编制如下所示的脚本程序:
Tempdx = SetV - ADdat0
Tempdx2 = Tempdx2 + Tempdx
IF Idat <> 0 THEN
DAdat0 = Pdat * (Tempdx + Tempdx2 / Idat + Ddat * (Tempdx - Tempdx1))
ELSE
DAdat0 = Pdat * (Tempdx + Ddat * (Tempdx - Tempdx1))
END IF
Tempdx1 = Tempdx
应用系统运行时,每隔一秒钟,执行一次上面的脚本程序,从而进行一次PID调节。在脚本程序中,由设定值和采集进来的实际值计算输出值,而采集和输出的操作,由系统指挥设备构件来完成。
程序设定值和PID参数值可以通过动画构件进行设置,如:在用户窗口中配置四个滑动输入器构件,分别对应于设定值、P参数、I参数和D参数,运行时,用鼠标操作滑块就可随意改变这些参数的值。#昆仑通态# #电工#
首先在循环策略块中创建一个策略行,如下图所示。在策略行的条件部分可以控制该算法是否启动,设置循环策略的定时时间为1秒,在策略行的功能部分放置脚本程序构件。
在实时数据库中定义如下数据对象:
对象名称
类型 初始值 注 释
ADdat0 数值型 0 和模拟量输入通道建立连接
DAdat0 数值型 0 和模拟量输出通道建立连接
SetV 数值型 100 控制设定值
Tempdx 数值型 0 用作存储临时数据
Tempdx1 数值型 0 用作存储临时数据
Tempdx2 数值型 0 用作存储临时数据
Pdat 数值型 100 PID算法中的参数P
Idat 数值型 20 PID算法中的参数I
Ddat 数值型 20 PID算法中的参数D
在设备窗口中加入相应的设备构件,指定ADdat0数据对象和设备的模拟量输入通道0建立连接,指定DAdat0数据对象和设备的模拟量输出通道建立连接。
在策略行的脚本程序构件中编制如下所示的脚本程序:
Tempdx = SetV - ADdat0
Tempdx2 = Tempdx2 + Tempdx
IF Idat <> 0 THEN
DAdat0 = Pdat * (Tempdx + Tempdx2 / Idat + Ddat * (Tempdx - Tempdx1))
ELSE
DAdat0 = Pdat * (Tempdx + Ddat * (Tempdx - Tempdx1))
END IF
Tempdx1 = Tempdx
应用系统运行时,每隔一秒钟,执行一次上面的脚本程序,从而进行一次PID调节。在脚本程序中,由设定值和采集进来的实际值计算输出值,而采集和输出的操作,由系统指挥设备构件来完成。
程序设定值和PID参数值可以通过动画构件进行设置,如:在用户窗口中配置四个滑动输入器构件,分别对应于设定值、P参数、I参数和D参数,运行时,用鼠标操作滑块就可随意改变这些参数的值。#昆仑通态# #电工#
