给你个Step 7写的位置式PID控制的FC模块。带"_IN"与带"_OUT"的变量,如果前缀是一样的,要求连接同一个变量。硬件方面需要只需要模拟量输入和模拟量输出模块各一个。
FUNCTION FC1 : VOID
VAR_INPUT
Run:BOOL;//True-运行,False-停止
Auto:BOOL;//True-自动,False-手动
ISW:BOOL;//True-积分有效,False-积分无效
DSW:BOOL;//True-微分有效,False-微分无效
SetMV:REAL;//手动时的开度设定值
SVSW:REAL;//当设定值低于SVSW时,开度为零
PV:REAL;//测量值
SV:REAL;//设定值
DeadBand:REAL;//死区大小
PBW:REAL;//比例带大小
IW:REAL;//积分带大小
DW:REAL;//微分带大小
dErr_IN:REAL;//误差累积
LastPV_IN:REAL;//上一控制周期的测量值
END_VAR
VAR_OUTPUT
MV:REAL;//输出开度
dErr_OUT:REAL;//误差累积
LastPV_OUT:REAL;//上一控制周期的测量值
END_VAR
VAR
Err:REAL;//误差
dErr:REAL;//误差累积
PBH:REAL;//比例带上限
PBL:REAL;//比例带下限
PVC:REAL;//测量值在一个控制周期内的变化率,即测量值变化速率
P:REAL;//比例项
I:REAL;//积分项
D:REAL;//微分项
END_VAR
IF Run=1 THEN
IF Auto=1 THEN
IF SV>=SVSW THEN
Err:=SV-PV;
PBH:=SV+PBW;
PBL:=SV-PBW;
IF PV<PBL THEN
MV:=1;
ELSIF PV>PBH THEN
MV:=0;
ELSE
P:=(PBH-PV)/(PBH-PBL);//计算比例项
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////以下为积分项的计算//////////////////////////////////////////////////////////////
IF ISW=1 THEN
dErr:=dErr_IN;
IF (PV<(SV-DeadBand)) OR (PV>(SV+DeadBand)) THEN
IF (dErr+Err)<(0-IW) THEN
dErr:=0-IW;
ELSIF (dErr+Err)>IW THEN
dErr:=IW;
ELSE
dErr:=dErr+Err;
END_IF;
END_IF;
I:=dErr/IW;
dErr_OUT:=dErr;
ELSE
I:=0;
END_IF;
/////////////////////////////////////////////以上为积分项的计算//////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////以下为微分项的计算//////////////////////////////////////////////////////////////
IF DSW=1 THEN
PVC:=LastPV_IN-PV;
D:=PVC/DW;
LastPV_OUT:=PV;
ELSE
D:=0;
END_IF;
/////////////////////////////////////////////以上为微分项的计算//////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
IF (P+I+D)>1 THEN
MV:=1;
ELSIF (P+I+D)<0 THEN
MV:=0;
ELSE
MV:=P+I+D;
END_IF;
END_IF;
ELSE
MV:=0;
END_IF;
ELSE
MV:=SetMV;
END_IF;
ELSE
MV:=0;
END_IF;
END_FUNCTION
进行整定时先进行P调节,使I和D作用无效,观察温度变化曲线,若变化曲线多次出现波形则应该放大比例(P)参数,若变化曲线非常平缓,则应该缩小比例(P)参数。比例(P)参数设定好后,设定积分(I)参数,积分(I)正好与P参数相反,曲线平缓则需要放大积分(I),出现多次波形则需要缩小积分(I)。比例(P)和积分(I)都设定好以后设定微分(D)参数,微分(D)参数与比例(P)参数的设定方法是一样的。
当初写这段程序的就是为了使用调功器来控制炉子的温度的,已经在我单位的调功器上运行成功了,还有就是我单位的调功器没有使用微分(D),只是用了比例(P)和积分(I)。
其实台达的资料都很好找,并且都是免费的。在“中达电通”网站都可以下载。百度一下:中达电通
台达的PLC是DVP系列PLC,在DVP手册里就有梯形图案例,在台达PLC101例里有梯形图实例。所以,知道下载台达PLC手册,认真看看就可以了。
如图所示,编码器的A相接X0,B相接X1,当M0为ON时,编码器转动,C251就计数了,正转就加计数,反转就减计数。M1为ON,就清零复位计数器C251了。
望采纳。。。。。。
恒压供水PLC控制,东莞恒压供水厂家,东莞恒压供水
本机供五台电机,四大一小,其中五号为小泵,只进行变频,不进行工频,但是在手动时可手动工频,四个大泵要进行工频/变频转换。本机,手动和自动控制,相互独立,相互不干扰,东莞自动化公司-精一控自动化公司
本机自动工作流程
正常工作流程
五档:
开机上电后,如果压力低于允许范围(+/- 004MPa),开启5#泵变频运行,此时只有5#泵变频运行
一档:
5#泵变频运行时,如果压力低于压力下限(压力设定值-004MPa),且变频泵频率达到50HZ,10S后,复位5#号变频,开启1#变频,此时只有1#泵变频运行
二档
1#泵变频运行时,如果压力低于压力下限且变频泵频率达到50HZ后超过10S,复位1#变频,当复位一号变频05S后,开启1#工频及开启二号变频(这样做的目的是错开同一台泵变频到工频的转换),此时有一号泵工频,二号泵变变频运行。
三档
当1#工频,2#泵变频运行,压力低于压力下限且变频泵频率达到50HZ后,超过10S,复位2#变频,当复位2#变频05S后,开启2#工频及开启3#变频,此时1,2#泵工频,三号泵变频运行
四档
当1#,2#工频,3#变频运行时,压力低于压力下限且变频泵频率达到50HZ后,超过10S,复位3#变频05S后,开启四号变频,此时有1#,2#,3#工频,四号变频运行。
当产生故障时
五档
5#运行时,5#产生故障,此时压力低于下限,变频泵频率达到50HZ后,超过10S
(1)1#泵没有故障转到一号泵变频运行;
(2)当5# -1#泵都有故障,2#泵没有故障时,转到2#变频运行
(3)当5#-1#-2#泵都有故障,3#泵没有故障时,转到3#泵变频运行
(4)当5#-1#-2#-3#泵都有故障时,4#泵没有故障时,转到4#变频运行
一档
当1#泵变频运行时,压力低于压力下限且变频频率为满频50HZ时,超过10S,此时如果2#泵没有故障,复位1#变频,当复位一号变频05S,开启2#变频,1#工频此时只由1#工频,2#变频运行
如果2#泵有故障,3#泵没有故障,复位1#泵变频05S后,开启3#泵变频及1#泵泵工频,此时1#泵工频,3#泵变频工作
如果2-3#泵都有故障,4#泵没有故障时,复位1#泵变频05S后,开起4#泵变频及1#泵工频此时1#泵工频,4#泵变频运行
如果2-3-4#泵都有故障,保持1#泵变频不变此时只有1#泵变频运行
二档
当2#泵变频运行,压力低于压力下限且变频泵频率达到50HZ后,超过10S
(1)3#泵没有故障时,复位2#变频,当复位2#变频 05S后,开启2#工频及开启3#变频,此时可能
a: 1,2#泵工频,三号泵变频运行
b: 2#泵工频,三号泵变频运行
(2)3#泵有故障,4#泵没有故障时,复位2#变频,当复位二号变频 05S后,开启2#工频及开启4#变频,此时可能运行情况
a : : 1,2#泵工频,4号泵变频运行
b : 1#工频,4号泵变频运行
c : 4号泵变频运行
(3)当2-34都有故障时,保持2#泵变频不变,压力低于压力下限且变频泵频率达到50HZ后,超过10S
1#工频没有起动时起动1#工频,压力还不够且2#
工频没有运行时,延时启动2#工频;
三档
当3#变频运行时,压力低于压力下限且变频泵频率达到50HZ后,超过10S,此时
(1)4#泵没有故障时,复位3#变频05S后,开启四号变频
(2) 4#泵有故障时,3#变频运行不变,压力低于压力下限且变频泵频率达到50HZ后,超过10S
A:如果1#没有故障,1#工频没启动开启1#工频,1# 工频运行后,如果压力低于压力下限且变频泵频达到50HZ后,超过10S,2#工频没启动开启2#工频
四档
当四号泵变频运行时,突然4#泵产生故障,此时如果1或2或3#泵有一台泵工频运行时,
A:1#泵没有故障时,复位1#泵工频05S后,切换到1#泵变频运行,如果此时压力低于压力下限且变频泵频率达到50HZ后,超过10S,此时又进行下一轮循环(这时可能产生的问题是:如果压力始终达不到,会1#变频,复位2#变频开启1#工频,复位2#变频,开起3#变频这样一个水泵很快进行轮循的过程,但轮循一次后会停下来
B:1#有故障时,2#没有故障时,复位2#泵工频05S后,切换到2#泵变频运行,如果此时压力低于压力下限,且变频泵频率达到50HZ后,超过10S,此时又进行下一轮循环
C :如果1,2#都有故障,3#没有故障时,复位3#泵泵工频,切换到3#泵变频如果4#变频运行时压力低于压力下限且变频泵频率达到50HZ后,超过10S,1#工频没有起动时起动1#工频,压力还不够时2,及3没有工频启动时,延时依次开启;当仅且只有1台泵变频运时,突然那一台泵产生故障,机器恢复到刚开始工作循环状态
机器复位过程
四档
当压力超过压力下限,且变频器输出频率为0时延时5S后先复位1#工频,在2-3 #工频延时停掉
三档
当压力超过压力下限,且变频器输出频率为0时延时5S后先复位1#工频,在2-#工频延时停掉
二档
当压力超过压力下限,且变频器输出频率为0时延时5S后先复位1#工频
★当仅且在1-2-3#泵中只有1台泵是变频运时,压力超过压力下限,且变频器输出频率为0时延时5S,开启5#泵
★8小时轮换工作
一档
1#泵变频运行超过8小时,复位1#变频,开启2#变频
二档
2#泵变频运行超过8小时,且3#泵没有运行时,复位
2#变频,开启3#变频
三档
3#泵变频运行超过8小时,且4#泵没有运行时,复位
3#变频,开启4#变频
变频器频率(上升/下降)过程PLC程序
东莞精一控自动化公司恒压供水控制东莞自动化公司
PLC(可编程逻辑控制器)的应用非常广泛,扩展应用到各个行业,西门子PLC系统的发展经历了LOGO!、S7-200、S7-300、S7-400四个大体的历程
由传感器、执行器加上自动化系统就组成了可编程控制器系统,系统的实际功能取决于程序,依次处理组成程序的大量指令,根据指令来接通或者断开相应的执行机构
S7-200系统主要由CPU、电源模块、数字输入输出、总线组成:CPU执行程序并保存自动化解决方案的数据或过程数据;通过扩展模块可以为CPU提供更多的输入输出;电源模块为中央处理器和所有连接的扩展模块提供电源;通过通讯接口将可编程设备设备连接到CPU上;用户可以设置CPU的RUN/STOP状态、集成输入/输出的当前信号状态以及可能的系统错误;可通过插入EEPROM保存CPU程序或者将一台CPU的程序下载到别的CPU
CPU执行周期内执行以下任务:读取输入信号、执行程序、处理通讯请求、CPU自诊断、写到输出端
CPU在每个周期内检查输入输出状态,将其存到PII与PIQ中来进行调用或输出
2
S7-200概述
lCPU
S7-200系列产品包括各种不同的CPU,如221、224、214等,它们的数据存储大小、实时时钟、可使用扩展模块等方面存在差别
l数字量扩展模块
主要包括EM221(8路DC输入)、EM222(8路DC/REL输出)、EM223(4路输入/输出、8路输入/输出、16路输入/输出),用户可以根据需要来选择相应的扩展模块
l模拟量扩展模块
主要包括EM231(4路输入)、EM232(2路输出)、EM235(4路入/1路出)
l通讯模块
EM277通讯PROFIBUS、CP243-2通讯ASI-主站
l安装
S7-200可以安装在控制板上,也可以安装在DIN导轨上
在安装时,S7-200CPU和扩展模块被设计为通过对流自然散热,因此至少在设备上和下方各留出25mm的空间来保证自然散热
安装时要留出通讯缆与输入输出接线
3
STEP7-MICRO/WIN
每个子任务对硬件和软件都有一些必需的要求
硬件包括:-输入输出类型-模块类型和数量-CPU容量和类型-HMI系统-网络系统软件包括:-程序结构-自动化过程的数据管理-组态数据-通讯数据-程序和项目文档STEP7-MICRO/WIN就是S7-200的编程软件,通过它来进行程序的设计、数据的处理
一个项目包括五个主要部分:ProgramBlock,DataBlock,SystemDataBlock,SymbolTable,StatusChart,通过这几部分来设计程序、通讯等
编程语言有LAD、STL、FBD三种,设计者可以根据自己的爱好选择使用
以上就是关于谁有西门子的plc编写pid的案例全部的内容,包括:谁有西门子的plc编写pid的案例、台达PLC控制步进电机梯形图案例、三菱PLC与旋转编码器的程序例子等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)