维护多核操作的数据一致性
默认情况下,可视化的 IEC 程序 (Visu_Prg
) 在自己的任务中运行 (VISU_TASK
)。可视化通常显示来自主应用程序的数据。来自主应用程序的数据在另一个任务中处理。因此,当应用程序在多核控制器上运行时,数据一致性是一个重要的话题。
重要的是要知道,对于 STRING
和 WSTRING
数据类型以及结构化数据。当这些类型的日期已过时,不得更改日期。但是,如果日期被除 VISU_TASK
,那么它可能会在短时间内显示不正确。
下面您可以看到在创建 CODESYS 用于多核系统的可视化。
提示
注意有关的一般说明 多核操作.
在一个可视化周期中读取 IEC 数据
如果可视化元素的显示取决于多个变量,则这些变量的分配不是循环一致的。例如,如果一个元素通过两个 IEC 变量在 x 和 y 方向上移动,那么这可能会导致可视化元素在一个周期内仅在 x 方向上移动,然后在 y 方向上移动。下一个周期的方向。
这同样适用于多个可视化元素使用的数据。
示例:元素 1 读取状态变量 invisible
并更新其状态。另一个任务比 VISU_TASK
修改相应的 IEC 变量。元素 2 读取状态变量 Invisible
并更新其状态。结果:元素在短时间内具有不同的状态。所有动画变量都可能发生此行为。
通用输入动作
可视化变化 | 使用字符串数据类型时,请注意上述问题。 |
执行命令 | 使用字符串数据类型时,请注意上述问题。 |
切换框架可视化 | 使用字符串数据类型时,请注意上述问题。 |
写变量 | 像阅读一样,不能进行原子分配来写入 |
执行 ST 代码 | 创建 ST 代码时,请确保数据一致性没有风险。 |
可视化的接口变量
如果一个结构是通过 VAR_INPUT
, 那么数据的一致性就不能保证了。通过使用结构化数据 VAR_IN_OUT
,或通过使用接口 VAR_INPUT
.
可视化的用户管理
如果通过公共接口调用用户管理(VisuUserMgmt.library
),那么这必须始终源自 VISU_TASK
.
可视化元素“多边形”
这 多边形 可视化元素具有 动态点 财产。在这里您可以配置一个点数组。请注意,整个数组的读取不是原子的。
数据类型的变量 STRING
配置了数据类型变量的所有属性都没有原子分配 STRING
.示例:URL 的控制变量 网页浏览器 可视化元素。
用户库
|
|
| 不要使用功能块 |
| 注意:使用时会发生结构访问 |
| 注意:使用时会发生字符串访问 |
对话框
应以与复杂数据类型相同的方式考虑为对话框传递参数。打开对话框时,会创建所有传递参数的副本。
例外: VAR_IN_OUT
具有的参数 {attribute 'VAR_IN_OUT_AS_POINTER'}
.如果分配了此属性,则不会创建副本,并且对话框将作用于原始对象。