在CODESYS中,在线模式可更改PLC中的变量值。在这里,我们区分强制和写入预先准备好的值。
写入是通过写入值命令 ([ Ctrl ] +[ F7 ] )完成的,并一次将变量设置为准备好的值。这样该值就可以在任何时候被程序再次覆盖。
强制执行是通过强制值命令([ F7 ] )完成的,并永久地设置准备好的值。有关更多信息,请参见下文:
.在不同的地方可以准备一个值来强制或写入:
声明部分:准备值字段
FBD/LD/IL编辑器的实现部分:内联监测字段
查看视图:准备值字段
有关这方面的说明,请参见下文。如果您想为已经强制的值再次准备一个值,则会打开准备值对话框,其中包含处理当前强制值的选项。
在任务循环的开始和结束(对于其他任务类型,则为处理循环)时,将准备好的值设置为相应的变量。
任务在每个周期的处理顺序如下:
1.读取输入
2.强制:在第一次程序调用之前,runtime系统将所有准备好的值写入变量,而不管它们是否被任务使用。
3.处理IEC代码
4.强制:在最后一次程序调用之后,runtime系统将所有准备好的值写入变量,而不管任务是否使用它们。
5.写入输出
注意: 在处理代码时,强制变量可能会在循环中临时获得不同的值,因为IEC代码执行了一个赋值。然后变量只在循环结束时才再次接收强制值。变量值也可以被客户机在中期对应用程序符号的写访问所覆盖。这种情况请参见设备对象属性中的与IEC任务同步访问变量选项,或符号配置中的配置与IEC任务的同步设置。这样PLC处理器支持的客户端写访问的同步可以与任务周期一起启用。
| 提示!
强制值用符号标记。CODESYS执行强制,直到用户通过以下操作之一显式地解除它: |
强制声明部分
要求:您的应用程序包含一个带有声明的POU。该应用程序处于在线模式。
1. | 选择命令在编辑器中打开POU。 |
2. | 在编辑器的声明部分中,双击列(1)变量的准备值。 ⇒ | 可以编辑该字段并输入值。当它是一个布尔值时,您可以通过点击该字段来更改该值。 | | |
|
3. | 对其他变量执行步骤2。 |
4. | 点击。 ⇒ | 变量值将被准备值覆盖。值用符号标记。 | | |
|
|
您也可以在监视视图中强制变量值。 |
强制执行部分
要求:应用程序处于在线模式。
1. | 选择命令在编辑器中打开POU。 |
2. | 在编辑器的实现部分中,双击内联监视字段(1)。 |
3. | 在字段中输入新值为下一次写入或强制操作准备新值。 |
4. | 点击。 ⇒ | 变量的值将被准备好的值覆盖。值用符号标记。 | | |
|
一个列表查看和编辑所有强制变量
要求:该应用程序处于在线模式。多个变量强制。
1. | 点击。 ⇒ | 监视全部强制视图打开。它以监视列表的形式包含应用程序的当前所有强制变量。 |
|
2. | 选择列表中的所有行,然后在视图左上角列表框的下拉列表中点击。 ⇒ | 这些变量是非强制性的,它们将获得强制之前的值。 |
|
强制CFC中的功能块输入
要求:应用程序的CFC POU包含功能块,并且该应用程序处于离线模式。
| 提示!
这种强制在内部使用数据断点,因此与使用强制值命令或[ F7 ] 强制不同。 由命令强制FB输入的值不响应命令或取消强制值。 |
1. | 双击树中的对象,打开CFC POU的编辑器。 |
2. | 使能所需功能块的可强制性。选择CFC中的POU元素,然后点击。 |
3. | 登录到目标设备上的应用程序。在CFC中,选择POU的输入,然后在上下文菜单中点击强制FB 输入。 |
4. | 为输入设置一个新值。一个TON POU的例子: 对于布尔输入IN为FALSE,或对于PT输入(时间)为t#4s。点击确定已确认。 ⇒ | 设置值立即被强制。POU元素的左上方显示一个绿色圆圈,该元素中输入的名称以绿色突出显示。对于布尔值,在输入处会打开一个带有该值的小型监视视图。在监视视图中,例如在声明部分中,在值列中显示强制值。 |
|
5. | 要删除强制值,请再次点击强制FB输入。在强制值对话框中,选择删除值选项。 |