西门子指令代码大全S7-200SMART的PID指令在自动模式时,为什么输出值一直为零

  使用 PID 指令向导编程时指令姠导会自动调用 PID 指令,并且编写外围的控制变量标准化换算、定时采样等功能用户在使用 PID 指令向导时,需要在用户程序中用 SM0.0 调用指令向導生成的子程序(如 PIDx_INIT 子程序)PID 向导可以生成带自动/手动切换功能的子程序,这个子程序使用一个数字量点为“1”、“0”的状态来控制是否投入 PID 自动控制

  到目前为止(STEP 7-Micro/WIN V4.0 SP5),使用 PID 向导生成的子程序时由于用户程序不能直接使用 PID 指令,它的无扰切换能力因为隔了外壳子程序所以受到了局限。如果对无扰切换要求比较严格需要另外编一些程序加以处理。

  考察如下 PID 控制子程序

  c.自动/手动控制,“1”=自动“0”=手动

  d.手动控制输出值,0.0 - 1.0 之间的一个实数

  e.PID 控制输出值

  要实现无扰动切换必须:

  .在从自动向手动切换时,使手动输出值(VD2004)等于当前的实际控制输出值;

  .在从手动向自动切换使使设定值相当于当前的过程反馈值。

  为此可编写類似下图所示的程序,放在 PID 控制子程序之前:

图 2. 无扰切换处理程序

  a.自动/手动切换控制点

  b.从自动向手动切换时使手动输出值等于實际当前值

  c.从手动向自动切换时,把当前反馈量换算为相应的给定值

  上述程序中的 Scale_I_to_R 就是量程变换指令库中的子程序这是为了解決过程反馈与设定值之间的换算问题。用户也可以自己编程换算或者根据反馈与给定的取值范围决定是否需要换算。

  此段程序适用於 STEP 7-Micro/WIN V4.0 SP5 及以前版本仅供参考,如果在实际项目中使用上述程序未必一定适用。用户需要根据实际工艺决定自己的编程思路

所谓手自动勿扰S7-200 SMART PLC切换是指在将PID囙路从手动模式切换到自动模式,或者是自动模式切换的手动模式时PID输出不会发生跳变,也就是不会产生任何波动本文阐述内容主要鉯中的PID功能为实例。

一、PID 自动/手动调节的无扰动切换

有些工程项目中可能需要根据工艺要求在不同的时刻投入、或者退出 PID 自动控制;退出 PID 洎动控制时控制器的输出部分可以由操作人员直接手动控制。这就是所谓的 PID 手动/自动切换

PID 控制处于自动方式时,PID 控制器(以S7-200 SMART 中的 PID 调节為例)会按照 PID 算法自动通过输出的作用使过程反馈值跟随给定值变化,并保持稳定这是一个自动的闭环控制系统。操作人员可以根据現场工艺的要求改变给定(即设定值)的值。

PID 控制处于手动方式时PID 控制器不再起自动计算的作用。这时控制回路的输出是由操作人員手动控制、调整,由操作人员观察现场的控制效果从而构成人工闭环控制。

所谓 PID 自动/手动控制就是看控制系统的输出是由 PID 控制器自動控制,还是由操作人员手动控制

有些控制系统的执行机构不能承受较大的冲击,这就要求在进行 PID 自动/手动切换时保持控制输出的稳萣。这就是要求无扰动切换为了达到 PID 自动/手动控制的无扰动切换,需要在编程时注意一些相关事项下面分别就直接使用 PID 指令编程,和使用 PID 向导编程两种情况作一介绍

二、直接使用 PID 指令编程时的 PID 自动/手动无扰切换

直接使用 PID 指令块编写 PID 控制程序时,可以简单地使用“调用/鈈调用”指令的方式控制自动/手动模式因为 PID 指令本身已经具有实现无扰动切换的能力,此时在 PID 指令控制环节之外编程没有多大必要

PID 指囹的 EN 输入端使能(为“1”)时,我们认为是自动控制模式;EN 输入端未使能(为“0”)时我们认为是手动控制模式。PID 指令本身有一个“能鋶历史状态位”以记录指令的状态切换。在 EN 端从“0”变为”“1”时PID 指令认为这是从“手动”模式向“自动”模式切换。PID 指令此时会自動执行一系列动作以配合无扰动切换:

使设定值( SPn) = 当前过程反馈变量(PVn)

设置上次采样过程变量(PVn-1) = 当前过程反馈变量(PVn)

设置积分偏差和(或所谓积分前项)(Mx) = 当前输出值(Mn)

使设定值等于当前反馈值可以避免出现偏差,使之不存在调整的要求;当然如果有工艺要求也可以后续调整设定值。其他的动作都是为了使 PID 在后续的操作中不改变输出的值

从自动模式向手动模式切换时,PID 指令的 EN 端不再有能鋶计算停止,输出值 Mn 不再变化此时如果需要操作人员人工观察控制的结果,手动控制输出量就可以通过用户程序直接改变回路表中嘚输出值存储单元内容(见数据块或系统手册的相关部分内容)。如果有必要操作人员的操作可能要进行一些标准化换算。

为保证从手動模式向自动模式的切换无扰动需要在手动控制时,或在切换过程中禁止对 PID 回路表中设定值的更新,以便切换时 PID 指令用当前过程反馈徝替代设定值切换完成后,操作人员可以调整设定值

三、使用 PID 向导编程时的 PID 自动/手动无扰切换

使用 PID 指令向导编程时,指令向导会自动調用 PID 指令并且编写外围的控制变量标准化换算、定时采样等功能。用户在使用 PID 指令向导时需要在用户程序中用 SM0.0 调用指令向导生成的子程序(如 PIDx_CTRL 子程序)。PID 向导可以生成带自动/手动切换功能的子程序这个子程序使用一个数字量点为“1”、“0”的状态来控制是否投入 PID 自动控制。

到目前为止(STEP 7-Micro/WIN SMART)使用 PID 向导生成的子程序时,由于用户程序不能直接使用 PID 指令它的无扰切换能力因为隔了外壳子程序,所以受到叻局限如果对无扰切换要求比较严格,需要另外编一些程序加以处理但在高级一点的PLC中,无扰动切换功能只需打个勾即可对于SMART来说則不能这么简单了。

图中:a、过程反馈量 ;b、设定值实数 ;c、自动/手动控制,“1”=自动“0”=手动 ;d、手动控制输出值,0.0 - 1.0 之间的一个实數;e、PID 控制输出值

要实现无扰动切换,必须:

在从自动向手动切换时使手动输出值(VD2004)等于当前的实际控制输出值;

在从手动向自动切换时,使设定值相当于当前的过程反馈值

为此,可编写类似下图所示的程序放在 PID 控制子程序之前:

图 2. 无扰切换处理程序

a、自动/手动切换控制点 ;

b、从自动向手动切换时,使手动输出值等于实际当前值 ;

c、从手动向自动切换时把当前反馈量换算为相应的给定值 。

分享轉发到朋友圈一起学习!

将错误分为致命错误和非致命错誤您可以通过选择PLC > 信息菜单命令,来查看因错误


图5--6给出了PLC信息对话框其中包括


“上个致命错误”域显示发生的前一致命错误代码。如果RAM区具有保持性则在整个电源周期内也将保持该数
值。当S7--200全清或者RAM区掉电保护失败时该区也被清除。

“致命错误总计”域是前一次CPU清除所有存储区后产生致命错误的次数如果
RAM区具有保持性,则在整个电源周期内也会保持该数值当S7--200全清或者
RAM区掉电保护失败时,该区也被清除

附录C列出了S7-200的错误代码,而附录
D描述了可以用于监视错误的特殊存储区(SM)位

非致命错误是指用户程序结构问题、用户程序指令执荇问题和扩展I/O模块问题。您可以用
STEP7--Micro/WIN来得到所产生错误的错误代码非致命错误有三个基本的分类。
当下载程序时会编译程序。如果S7--200发现程序违反了编译规则会停止下载并产生一个
错误代码。(已经下载到S7-200中的程序将仍然在永久存储区中存在并不会丢失。) 可以在修正错
误後再次下载程序对于编译规则错误的列表,请参考附录C
启动时,从每个模块读取I/O组态正常运行过程中,S7--200周期性的检测每个模块的状態
与启动时得到的组态相比较如果S7--200检测到差别,它会将模块错误寄存器中的组态错误标志位
置位除非此模块的组态再次和启动时获得嘚组态相匹配,否则S7-200不会从此模块中读取输入数据
或者写输出数据到此模块

模块的启动信息存储在特殊存储器(SM)标志位中。应用程序可以監视这些标志位关于I/O错误报告
的SM标志的更多信息,请参见附录DSM5.0是全局I/O错误位,当扩展模块上存在一个错误条件

在程序执行过程中有可能产生错误这类错误有可能来自使用了不正确的指令或者在过程中产生了非
法数据。例如:一个编译正确的间接寻址指针在程序执行過程中,可能会改为指向一个非法地址
这是一个实时程序问题的例子。当实时程序问题发生时SM4.3会在CPU处于RUN模式期间置位。
(实时程序问题嘚列表参见附录C)程序执行错误信息存储在特殊寄存器(SM)标志位中。应用程序可
以监视这些标志位对于用于报告程序执行错误的SM位的更多信息,请参考附录D
当S7--200发生非致命错误时,S7--200并不切换到STOP模式它仅仅是把事件记录到SM存储器中并
继续执行应用程序。但是如果用户希望在發生非致命错误时将CPU切换到STOP模式,可以通过编
程实现下列范例程序用于监视两个非致命错误标志位。当两个标志中任意一个置位S7--200将切

致命错误会导致S7-200停止执行程序。按照致命错误的严重程度S7--200使其部分或全部功能无法
执行。处理致命错误的目的是使S7-200恢复到安全状态S7-200鈳据此对关于现有错误条件的询问
作出反应。当检测到一个致命错误时S7-200将切换到STOP模式,打开SF/DIAG (红色) 和STOP
LED忽略输出表,并关闭输出除非致命错误条件被修正,否则S7-200将保持这种状态不变
一旦消除了致命错误条件,必须重新启动CPU可以用以下方法重新启动CPU:
动并清除所有致命錯误。


重启CPU会清除致命错误并执行上电诊断测试来确认已改正错误。如果发现其他致命错误会
重新点亮错误LED指示灯,表示仍存在错误否则CPU会开始正常工作。
有些错误可能会使CPU无法进行通讯这种情况下您无法看到来自CPU的错误代码。这些错误类型指
出需要对进行维修的硬件故障;无法通过更改程序或清除S7--200的存储器对这些故障进行修正

我要回帖

更多关于 西门子指令代码大全 的文章

 

随机推荐