



小心

当前在控制器上运行的应用程序中变量值的异常变化会导致受控设备出现不希望出现的行为。
在强加变量值之前,评估可能存在的危险。采取相应的安全预防措施。根据受控机械的不同,其结果可能导致机械和设备损坏或人员健康和生命伤害。
在CODESYS 中,可在联机模式下更改 PLC 中的变量值。在这里,我们要区分强制和写入先前准备好的值。
使用“Write Values” 命令([Ctrl]+[F7] )进行写入,并将变量设置为准备好的值。这样,程序就可以随时再次覆盖该值。
使用“强制值” 命令([F7] )进行强制,并永久设置准备值。更多信息,请参见下文。
在不同的地方,都可以准备一个数值,用于强制或写入:
-
声明部分:“准备值” 字段
-
FBD/LD/IL 编辑器的执行部分:内联监测字段
-
监控视图:“准备值” 字段
有关说明,请参阅下文。如果要为已经强制的值再次准备值,将打开“准备值” 对话框,其中包含处理当前强制值的选项。
强制功能
在任务周期(或其他任务类型的处理循环)开始和结束时,准备值将被设置为相应变量的值。
任务每个周期的处理顺序如下:
1.读取输入
2.强制在第一次程序调用之前,运行时系统会将所有准备好的值写入变量,无论任务是否使用这些值。
3.处理 IEC 代码
4.强制在最后一次程序调用后,运行时系统会将所有准备好的值写入变量,无论任务是否使用这些值。
5.写入输出
请注意:由于 IEC 代码执行赋值,在代码处理过程中,强制变量有可能在循环中暂时获得不同的值。然后,变量只有在周期结束时才会再次收到强制值。客户端对应用程序符号的写入访问也可能会覆盖变量值。在这种情况下,请参阅“与 IEC 任务同步访问变量” 设备对象“Properties” 选项,或“Configure synchronization with IEC tasks” 符号配置中的设置。这样,就可以在任务周期内启用 PLC 处理器支持的客户端写访问同步功能。




注意

强制值以 符号标出。CODESYS 执行强制操作,直到用户通过以下操作之一明确解除强制:
-
执行“Cancel forcing for all values” 命令
-
在“准备值” 对话框中进行提升强制操作
-
退出应用程序
如果注销时仍存在强制变量,则会打开一个对话框,提示是否取消对所有变量的强制。如果您点击“No” ,那么强制值将在下次登录时再次应用。
强行加入声明部分
要求:您的申请包括一份附有声明的 POU。申请采用在线模式。
-
选择命令“Project Edit Object” ,在编辑器中打开 POU。
-
在编辑器的声明部分,双击变量的第(1)栏“准备值” 。
该字段可以编辑,也可以输入数值。如果是布尔值,可以通过点击字段来更改数值。
-
对其他变量执行步骤 2。
-
单击“调试 强制值” 。
变量值会被准备好的值覆盖。数值用
符号标出。
您还可以在“Watch” 视图中强制设置变量值。
强制执行部分
要求:申请采用在线模式。
-
选择命令“Project Edit Object” ,在编辑器中打开 POU。
-
在编辑器的执行部分,双击内联监控字段 (1)。
“准备值” 对话框将打开。
-
在字段中输入新值“为下一次写入或强制操作准备新值” 。
准备好的值显示在内联监控字段中。
-
单击“调试 强制值” 。
变量值会被准备好的值覆盖。数值用
符号标出。
在一个列表中查看和编辑所有强制变量
要求:申请采用在线模式。强制使用多个变量。
-
点击“查看 监控 监控所有强制值” 。
打开“Watch all Forces” 视图。它以监控列表的形式包含了应用程序当前的所有强制变量。
-
选择列表中的所有行,然后在视图左上角的列表框中单击“Unforce Unforce 和 Keep All Selected Values” 。
变量是非强制的,它们会得到强制前的值。
在 CFC 中强制输入功能块
要求:应用程序有一个包含功能块的 CFC POU,且应用程序处于脱机模式。




注意

这种强制在内部使用数据断点,因此不同于使用“强制值” 命令或[F7] 进行的强制。
由“Force FB Input” 命令强制输入的值不会响应“Show All Forces” 或“Unforce Values” 命令。
-
双击树中的对象,打开 CFC POU 编辑器。
-
使用编译器版本 3.5.11.x 或 3.5.12.x 时,请为所需功能块启用 "可强制 "功能。在 CFC 中选择 POU 元素,然后单击“CFC 为强制” 准备方框。
-
登录目标设备上的应用程序。在 CFC 中,选择 POU 的输入,然后单击右键菜单中的“强制功能块输入” 。
“Force Value” 对话框将打开。
-
为输入设置一个新值。
TON
POU 的示例:FALSE
表示布尔输入IN
,或t#4s
表示PT
输入(时间)。单击“OK” 进行确认。立即强制执行设定值。POU 元素的左上方显示一个绿色圆圈,该元素中的输入名称以绿色高亮显示。如果是布尔值,在输入处还会打开一个带有该值的小型监控视图。在监控视图中,强制值显示在“值” 列,如声明部分。
-
要删除强制值,请再次单击“强制功能块输入” 。在“Force Value” 对话框中,选择“Remove value” 选项。
取消强制。输入端从控制器获取当前值。