Skip to main content

限制

CODESYS 版本

启动项目必须可以在两个控制器上加载。通过以下方式,可以实现控制器的不同运行时版本的无缝运行时系统更新 CODESYS Redundancy 功能。

实时任务和沟通

只允许循环任务。任务类型 事件状态,或 随心所欲 无法同步。

CODESYS Redundancy 功能仅同步一项任务(冗余任务)。其他任务和应用程序也是可能的,但它们在两个 PLC 上运行不同步。

此外,影响任务执行和通信的冗余系统必须满足特定的实时需求:冗余通信的消息(请求和响应)的运行时间必须在先前定义的时间间隔内存在,并且必须考虑任务抖动。用于此目的的链路应专门用于冗余通信。

实时任务执行意味着由冗余控制的应用程序任务具有有限的抖动。实时通信意味着通过冗余链接发送的消息必须由另一个 PLC 在特定时间内接收。

任务执行时间

消息传送时长(请求和响应时间)会增加任务的执行时间:使用冗余时,任务的总执行时间会更长。

更改应用程序和任务的名称

更改冗余应用程序或冗余任务的名称是一项重大更改,在冗余模式下是不可能的。这是因为,更改后,您需要按照 “配置冗余系统” 下的 “入门” 中所述重新配置两个 PLC

超时值

您为超时指定的值必须大于任务抖动时间和最大通信抖动时间的总和。

这两个时间都是特定于系统的。需要这两个功能(实时任务和实时通信)来指定特定的最大超时时间。在运行时,当任务抖动很高且消息传输延迟时,会发生超时。在等待来自另一个 PLC 的消息时,系统假定另一个 PLC 不再运行。结果,等待的 PLC 和发送 PLC 切换到独立模式。这会导致同步丢失和现场总线上的通信问题

提示

您可以定义主动 PLC 切换到独立模式时的超时时间 冗余配置 编辑器,在 将军 的选项卡 冗余设置 选项卡。此外,该值存储在运行时配置文件中(例如: CODESYSControl.cfg) 带有条目 StandbyWaitTime

重要

在某些情况下,两个冗余控制器可能会意外切换到仿真模式。

原因:当活动控制器上冗余任务的执行中断或严重延迟时,同步消息可能要等到超时到期后才能到达备用控制器。

由此产生的行为取决于 AutoSyncEnable 标志:

  • 如果 AutoSyncEnable = 0,然后第二个控制器切换到独立模式。

  • 如果 AutoSyncEnabled = 1,然后第二个控制器最初进入独立模式。该控制器收到延迟消息后,它进入模拟模式,然后再尝试一次连接。

解决方案:

  • 为避免此问题,应为冗余任务分配高优先级,以最大限度地减少中断或延迟的风险。

  • 替代方案:使用小于冗余超时的超时值启用监视程序任务。

  • 替代方案:手动同步控制器。

IEC计时器

时,两个 PLC 的执行时间不同,可能会导致 “颠簸”(偏离输出值)。为了防止这种情况,在执行 IEC 任务期间,IEC 计时器值被冻结。来自 IEC 计时器的调用(示例:函数 TON)因此,在执行 IEC 任务时,即使物理时间继续运行,也始终会产生相同的计时器值。因此,实现应该静态等待(可能在循环中)。这是因为 IEC 计时器值在当前任务扫描中没有变化。

指针、引用和接口

这个 POINTER TOREFERENCE TO,以及 INTERFACE 用于表达应用程序单元之间关系的语句(和接口实例)不适用于同步的冗余应用程序。

POINTER 不得在由冗余控制的数据区中声明变量。这是因为冗余控制的数据在同步期间会传输到另一个 PLC。但是,指针在另一个 PLC 上无效,因为另一种存储器布局可能位于那里

编译时,冗余功能会检查指针是否位于冗余控制区域中。在那里找到的每个指针都会显示警告。可以在设备描述文件中使用以下条目停用该支票

<Device>
    <Custom>
            <Redundancy DisablePointerChecks="true">

EtherCAT DC

这种冗余扩展更多地用于流程行业,而不是工厂自动化。因此,不支持带有分布式时钟的 EtherCAT 驱动器。但是,支持 EtherCAT I/O。

另请参阅上面的 “任务和实时通信” 部分。

“在现有变量上映射”:映射到现有变量

不建议使用 I/O 映射方法“Map on Existing”(将 I/O 映射到现有变量) CODESYS Redundancy。这些类型的变量并不存储在输入或输出数据区域中,而是存储在声明它们的位置中。因此,它们在操作期间不同步。

网络变量

不得使用具有写入权限的网络变量,因为同时发送了多个写入电报。允许具有读取权限的网络变量。

文件访问权限

不得使用文件访问权限,因为不同的文件数据在切换不同的 PLC 时会导致 “颠簸”。

如果您使用文件,则需要在不受冗余控制的数据区中声明文件句柄。这些文件必须在两台 PLC 上分别打开。不得使用其他 PLC 的文件句柄访问本地 PC 上的文件。

编译时, CODESYS Redundancy 检查处理变量(RTS_IEC_HANDLE, CAA.HANDLE)位于冗余控制区域。对于在此类区域中检测到的每个句柄变量,都会发出警告。

在线安全用户管理

如果使用在线安全用户管理,则需要使用相同的用户名和密码配置两个 PLC。否则,在线服务,例如 write variable 或者 online change 未传输到备用 PLC。

软动感

CODESYS SoftMotionCODESYS Redundancy 无法组合。SoftMotion 的时间需求 不能 在使用冗余时得到满足。