西门子S7-12001500PLC中深度解析PID(2)
【S7-1200 /1500PID 控制功能说明一样,下面以 S7-1200 为例介绍 】
(1)PID 基本功能介绍
1.CPU 提供了 PID 控制器回路数量受到 CPU 的工作内存及支持 DB 块数量限制。严格上说并没有限制具体数量,但实际应用 S7-1200PLC 推荐不要超过 16 路PID 回路为最佳。S7-1500 根据型号不同,PID 控制回路实际应用也不一样。
2.PID 控制器结构
PID 控制器功能主要依靠三部分实现,循环中断块,PID 指令块,工艺对象背景数据块。用户在调用 PID 指令块时需要定义其背景数据块,而此背景数据块需要在工艺对象中添加,称为工艺对象背景数据块。PID 指令块与其相对应的的工艺对象背景数据块组合使用, 形成完整的 PID 控制器。PID 控制器结构如图
循环中断块可按一定周期产生中断,执行其中的程序。PID 指令块定义了控制器的控制算法,随着循环中断块产生中断而周期性执行,其背景数据块用于定义输入输出参数,调试参数以及监控参数。此背景数据块并非普通数据块, 需要在目录树视图的工艺对象中才能找到并定义。
(2)S7-1200 的PID 功能应用说明
1.调用PID 通用功能块
备注:
1.PID_Compact 指令提供了一种可在自动和手动模式下进行调节的 PID 控制器。
2.以调用 OB 的循环时间的恒定间隔(最好在循环中断 OB 中)调PID_Compact。
3.CPU 的存储区的占用情况,及支持 DB 块数量的限制。
4.在循环中断里调用 PID 指令,需要保证中断里执行 PID 指令的总时间要小于该中断的循环时间。
2. PID_COMPACT 通用功能模块应用步骤说明
3.PID_COMPACT 调节过程说明
使用PID_compact的控制步骤:
1.在循环OB中插入和参数化PID_compact
2.自动插入工艺对象
3.组态工艺对象
4.使用集成的自整定功能和Trace功能调试与整定
4.CPU 处理 PID 的时间
5.存储器要求
(3)PID 组态与编程说明
1.创建循环中断组织块 OB30,循环时间为 100ms,在 OB30 里面调用 PID_Compact
2.功能块 PID _ Compact 输入输出参数说明
PID_ Compact 输入参数说明
Setpoint(REAL):
PID 控制器自动模式下的设定值工程量(对应于 INPUT 反馈值类型)
Input(REAL):PID 控制器反馈值(工程量如:0.0-100.0)
Input_PER(INT):PID 控制器反馈值(模拟量如:0-27648)
Disturbance(REAL):扰动变量或预控制值(一般为 0.0)。
ManualEnable (BOOL): 启用或禁用手动操作模式。(默认值:FALSE):FALSE 至 TRUE 沿激活“手动模式”,同时State =4,Mode 保持不变。
ManualEnable = TRUE 时,无法利用 ModeActivate 的上升沿或使用调试对话框更改工作模式。 TRUE 至 FALSE 沿激活 Mode 分配的工作模式。注:建议您只使用 ModeActivate 更改工作模式。
PID_ Compact 输入参数说明
ManualValue(Real):手动操作的输出值。(默认值:0.0)可以使用从 Config.OutputLowerLimit 到 Config.OutputUpperLimit值。
ErrorAck(BOOL): 复位 Error 和ErrorBits 和警告输出。上升沿有效。
RESET(BOOL):重新启动控制器:
上升沿, 切换到“未激活”模式,同时复位 ErrorBits 和 Warnings,清除积分
作用(保留 PID 参数) 。
只要 Reset = TRUE,PID_Compact 便会保持在“未激活”模式下 (State = 0)。
ModeActivate(BOOL):PID_Compact 切换到保存在 Mode 参数中的工作模
式。FALSE 至TRUE 上升沿。
Mode(INT):期望的 PID 模式;在 Mode Activate 输入的上升沿激活。
注意:如果使用 Reset 复位错误会重启 PID 控制器,建议使用 ErrorAck 来
复位错误代码。
PID_ Compact 输出参数说明
备注:
SetpointUpper/Lower Limit是SV的限制值,
在DB数据块内设定,默认士3.402822E+38
Mode(工作模式说明)
1.PID_Compact 参数组态详细说明
■ 基本设置
■ 过程值设置
■ 高级设置
a.为最大程度地减小工作频率并节省执行器,可延长最短开/关时间。
b.如果要使用“Output”或“uput_PER”,则必须分别为最短开关时间组态值0.0。
c.脉冲或中断时间永远不会小于最短开关时间。例如,在当前PID算法采样周期中,如果输出小于最短接通时间将不输出脉冲,如果输出大于(PID算法采样时间最短关闭时间)则整个周期输出高电平。
d.在当前PID算法采样周期中,因小于最短接通时间未能输出脉冲的,会在下一个PID算法采样周期中累加和补偿由此引起的误差。
高级设置--对错误的响应
说明 :
1.“非活动 ”=对于所有错误,PID 均输出 0.0,Error=1,会切换到 “未激活” 模式(State=0)。当错误离开后,可通过 Reset 的下降沿或者 ModeActive 的上升
沿来切换工作模式。
2.“错误待定时的当前值 ”=当出现“输入超限”、“采样时间错误:循环中断 OB 的采样时
间内没有调用 PID_Compact。”、Disturbance 参数的值无效,值的数字格式无效 错误以后 :自动模式下出现错误 PID Compact 仍保持自动模式 (State=3),Error=1,输出错误发生前的最后一个有效值 。错误离开后 Error=0、错误代码保留、PID_Compact 从自动模式开始运行。
3.“错误未决时的替代输出值” =“参数“Input_PER”的值无效”“参数“Setpoint”的值无效,值
的数字格式无效”如 16#ffffffff 等非法参数错误以后 :自动模式下出现错误 PID Compact 切换到“带错误监视的替代输出值”模式(State=5), Error=1 , 输出组态的替换输出值。错误离开后 Error=0 、 错 误 代 码 保 留 、 PID_Compact 从自动模式开始运行。
PLC编程语言入门,常用指令集汇总分享
一、西门子PLC编程语言
PLC的编程语言包括以下五种:梯形图语言(LD)、指令表语言(IL)、功能模块图语言(FBD)、顺序功能流程图语言(SFC)及结构化文本语言(ST)。不同型号的PLC编程软件对以上五种编程语言的支持种类是不同的,早期的PLC仅仅支持梯形图编程语言和指令表编程语言。目前的PLC对梯形图(LD)、指令表(STL)、功能模块图(FBD)编程语言都以支持。比如,SIMATIC STEP7 MicroWIN V3.2。
(1)梯形图
在西门子PLC实际编程使用情况中中,梯形图语言是PLC程序设计中最常用的编程语言。它是与继电器线路类似的一种编程语言。由于电气设计人员对继电器控制较为熟悉,因此,梯形图编程语言得到了广泛的欢迎和应用。
梯形图编程语言的特点是:与电气操作原理图相对应,具有直观性和对应性;与原有继电器控制相一致,电气设计人员易于掌握。梯形图编程语言与原有的继电器控制的不同点是,梯形图中的能流不是实际意义的电流,内部的继电器也不是实际存在的继电器,应用时,需要与原有继电器控制的概念区别对待。
(2)指令表
松下PLC编程
指令表编程语言是与汇编语言类似的一种助记符编程语言,和汇编语言一样由操作码和操作数组成。在无计算机的情况下,适合采用PLC手持编程器对用户程序进行编制。同时,指令表编程语言与梯形图编程语言图一一对应,在PLC编程软件下可以相互转换。
指令表表编程语言的特点是:采用助记符来表示操作功能,具有容易记忆,便于掌握;在手持编程器的键盘上采用助记符表示,便于操作,可在无计算机的场合进行编程设计;与梯形图有一一对应关系。其特点与梯形图语言基本一致。
(3)功能模块图语言(FBD)
功能模块图语言是与数字逻辑电路类似的一种PLC编程语言。采用功能模块图的形式来表示模块所具有的功能,不同的功能模块有不同的功能。
功能模块图编程语言的特点:功能模块图程序设计语言的特点是:以功能模块为单位,分析理解控制方案简单容易;功能模块是用图形的形式表达功能,直观性强,对于具有数字逻辑电路基础的设计人员很容易掌握的编程;对规模大、控制逻辑关系复杂的控制系统,由于功能模块图能够清楚表达功能关系,使编程调试时间大大减少。
(4) 顺序功能流程图语言(SFC)
顺序功能流程图语言是为了满足顺序逻辑控制而设计的编程语言。编程时将顺序流程动作的过程分成步和转换条件,根据转移条件对控制系统的功能流程顺序进行分配,一步一步的按照顺序动作。每一步代表一个控制功能任务,用方框表示。在方框内含有用于完成相应控制功能任务的梯形图逻辑。这种编程语言使程序结构清晰,易于阅读及维护,大大减轻编程的工作量,缩短编程和调试时间。用于系统的规模校大,程序关系较复杂的场合。
顺序功能流程图编程语言的特点:以功能为主线,按照功能流程的顺序分配,条理清楚,便于对用户程序理解;避免梯形图或其他语言不能顺序动作的缺陷,同时也避免了用梯形图语言对顺序动作编程时,由于机械互锁造成用户程序结构复杂、难以理解的缺陷;用户程序扫描时间也大大缩短。
(5)结构化文本语言(ST)
结构化文本语言是用结构化的描述文本来描述程序的一种编程语言。它是类似于高级语言的一种编程语言。在大中型的PLC系统中,常采用结构化文本来描述控制系统中各个变量的关系。主要用于其他编程语言较难实现的用户程序编制。
结构化文本编程语言采用计算机的描述方式来描述系统中各种变量之间的各种运算关系,完成所需的功能或操作。大多数PLC制造商采用的结构化文本编程语言与BASIC语言、PASCAL语言或C语言等高级语言相类似,但为了应用方便,在语句的表达方法及语句的种类等方面都进行了简化。
结构化文本编程语言的特点:采用高级语言进行编程,可以完成较复杂的控制运算;需要有一定的计算机高级语言的知识和编程技巧,对工程设计人员要求较高。直观性和操作性较差。
在PLC控制系统设计中,要求设计人员不但对PLC的硬件性能了解外,也要了解PLC对编程语言支持的种类。
二、西门子PLC指令表功能汇总
指令( 英文全称意思 ) :指令含义
1、LD ( Load 装载 ) :动合触点
2、LDN ( Load Not 不装载 ) : 动断触点
3、A ( And 与 动合) : 用于动合触点串联
4、AN ( And Not 与 动断 ) :用于动断触点串联
5、O ( Or 或 动合 ) :用于动合触点并联
6、ON ( Or Not 或 动断 ) : 用于动断触点并联
7、= ( Out 输出 ) : 用于线圈输出
8、OLD ( Or Lode): 块或
9、ALD ( And Lode): 块与
10、LPS ( Logic Push ) :逻辑入栈
11、LRD ( Logic Read ) :逻辑读栈
12、LPP ( Logic Pop ) :逻辑出栈
13、NOT ( not 并非 ) :非
14、NOP ( No Operation Performed ) : 无操作
15、AENO ( And ENO ) :指令盒输出端ENO相与
16、S ( Set 放置 ) : 置1
17、R ( Reset 重置,清零 ) :清零
18、P ( Positive) :上升沿
19、N ( Negative) :下降沿
20、TON ( On_Delay Timer ) :接通延时定时器21、TONR ( Retentive On_Delay Timer ) : 有记忆接通延时定时器
22、TOF ( Off_ Delay Timer ) :断开延时定时器
23、CTU ( Count Up ) : 增计数器
24、CTD ( Count Down ) : 减计数器
25、CTUD ( Count Up/ Count Down ) :增减计数器
26、ADD ( add 加 ) : 加注意
//ADD_I (_ I 表示整数)
ADD_DI( DI表示双字节整数)
ADD-R (R 表示实数)
它们都是加运算只是数的大小不同。
27、SUB ( Subtract 减去,减少) :减
28、MUL ( Multiply ) : 乘
29、DIV ( Divide ) : 除
30、SQRT ( Square root ) : 求平方根
31、LN ( Napierian Logarithm 自然对数 ) : 求自然对数
32、EXP ( Exponential 指数的 ) : 求指数
33、INC_B ( Increment 增加 ) : 增1
//其中_B代表数据类型 还有W(字节)、DW双字后面几个都是这样的。34、DEC_B ( Decrement 减少 ) : 减1
35、WAND_B ( Word and 与命令 ) :逻辑与
36、WOR_B ( Word or 或命令) : 逻辑或
37、WXOR_B ( Word exclusive or 异或命令) :逻辑异或
38、INV_B ( Inverse 相反 ) : 取反
39、MOV _B ( Move 移动 ) : 数据传送
40、BLKMOV_B ( Block Move 块移动) :数据块传送
41、SWAP ( Swap 交换 ) : 字节交换
42、FILL ( Fill 填充 ) : 字填充
43、ROL_B ( Rotate Left 循环 向左) :循环左移位
44、ROR_B ( Rotate Right 循环 向右) : 循环右移位
45、SHL_B ( Shift Right 移动向左) :左移动
46、SHR_B ( Shift Right 移动向右 ) : 右移动
47、SHRB ( Shift buffer 移动缓存) :寄存器移位
48、STOP ( Stop 停止 ) : 暂停
49、END /MEND ( End /Mend ) : 条件/无条件结束
50、WDR ( Watch dog reset ) : 看门狗复位
51、JMP ( Jump 跳) :跳转
52、LBL ( Label 位置 ) : 跳转标号
53、FOR ( For 循环 ) : 循环
54、NEXT ( Next 再下去) :循环结束
55、SBR ( Subprogram Regulating子程序控制 ) : 子程序调用
56、SBR_T ( Subprogram Regulating Take ) : 带参数子程序调用
57、SCR ( Sequence Control 顺序控制 ) : 步开始
58、SCRT ( Sequence Control Transfer 顺序控制转移 ) : 步转移
59、SCRE ( Sequence Control End 顺序控制结束 ) : 步结束
60、AD_T_TBL ( Add data to table 添加数据到表格中) : 填数据表
61、FIFO ( First in First out 先进先出 ) : 先进先出
62、LIFO ( Last in First out 后进先出 ) :后进先出
63、TBL_FIND ( Table Find 表格查找 ) : 表查找
64、BCD_I ( Binary Coded Decimal _I 二进制编码的十进制 ) :BCD 码转整数
65、I_BCD ( I_ Binary Coded DecimaL ) :整数转BCD码
66、B_I ( Bit to int ) :字节转整数
67、I_B ( int to bit ) :整数转字节
68、DI_I ( Double int to int ) :双整数转整数
69、I_DI ( int to double int ) :整数转双整数
70、ROUND ( Round 取整 ) : 实数转双整数
71、TRUNC ( Trunc 截取 ) :转换32位实数整数部分(舍去小数取整)
72、DI_I (double int to int ) :双整数转实数
73、ENCO ( Encode 编码) : 编码
74、DECO ( Decode 译码) :译码
75、SEG ( Segment decoder分断译码器 ) : 七段显示译码器
76、ATH ( ASCII码 turn hex ) : ASCII码转16进制
77、HTA ( Hexadecimal to ascii) : 16进制转ASCII码
78、ITA ( // int to ascii) : 整数转ASCII码
79、DTA ( // double int to ascii ) : 双整转ASCII码
80、RTA ( // real to ascii) : 实数转ASCII码
81、ATCH (//attach ) : 中断连接
82、DTCH ( Depatch ) : 中断分离
83、HDEF ( High speed counter definition ) : 高速计数器定义
84、HSC ( High Speed Counter 高速计数器 ) :启动高速计数器
85、PLS ( Pulse 脉冲 ) :脉冲输出
86、READ_ RTC ( Read real time clock 读实时时钟 ) :读实时时钟
87、SET_RTC ( Set real time clock ) : 写实时时钟
88、XMT ( Transmitter ) : 自由发送
89、RCV ( Receive 接收 ) : 自由接收
90、NETR ( Net read 网络读 ) : 网络读
91、NETW ( Net write 网络写 ) : 网络写
92、GET_ADDR ( Get address 获取地址 ) : 获取口地址
93、SET_ADDR ( Set address 设置地址 ) : 设定口地址
94、PID ( Proportional Integral Differential 比例、积分、微分 ) :比例积分微分调节器。
如有不妥,欢迎指正!
相关问答
plc如何实现pid控制?
PLC实现PID(比例、积分、微分)控制相对还是比较简单的,因为现在很多PLC都具有PID控制指令,像三菱、西门子等都能够完成PID的控制,下面我们以三菱PLC为例来说...P...
plc编程过程控制算法?
在PLC编程中,过程控制算法是用来实现对工业过程的控制和调节的一种方法。下面是一般的PLC编程过程控制算法的步骤:确定控制目标:首先需要明确要控制的过程和...
plc怎么控制伺服扭力?
PLC可以通过PWM或者PID控制伺服扭力。其中PWM,即脉宽调制技术,是通过控制脉冲宽度来调节电机的电源电压,从而控制电机的转速或扭矩。而PID控制则是利用比例、...
三菱plc恒压pid编程实例?
以下是一个三菱PLC恒压PID控制的程序实例:```MC+GB10#10=2000//设置计算周期为2000ms(示例)MC+S1#1=0//PV实际值#2=0//SV...
PLC里的PID是什么意思有什么作用?详细一点谢谢入门者
[最佳回答]在过程控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制器(亦称PID调节器)是应用最为广泛的一种自动控制器。比例调节作用:是按比例反...
plc的应用范围有逻辑控制什么,闭环过程控制什么?
如:光感没有了就自动送电。让灯亮。或按时间定时开,关照明。这都属于逻辑控制。闭环控制是设定一个值SV,把一个运行的设备去监测它的状态反馈给PLC这个值叫PV...
毕业论文要有plc编程、调试的,我所有积分全都奉送
[最佳回答]论文基本在这问没有用。
通信工程和自动化哪个好点?
首先对于这个问题每个人看法都不一样,这个也要看个人兴趣。在我看来,从学习和就业的角度来说,学通讯工程好一些,必竟本科一直到现在都在学习这个专业所有的...
plc如何根据速度控制模拟量?
PLC根据速度控制模拟量主要通过以下步骤进行:1.确定控制对象:确定需要控制的设备或机器,例如电机。2.确定控制参数:根据实际需求,确定控制速度的参数,例...
想自己学习PLC有什么好的工具,或者免费的网站好用吗?
自学PLC还是比较有难度的,PLC只是整个自动化控制系统的一部分,首先你需要了解系统运行过程包括使用那哪些硬件,都有什么作用等等。这种情况下自学PLC不光光是...