Skip to main content

限制

运行时系统的版本

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

实时任务和沟通

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

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

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

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

任务执行时间

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

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

更改冗余应用程序或冗余任务的名称是一项重大更改,是不可能的 期间 冗余模式。进行此类更改后,必须重新配置两个 PLC。如中所述 入门 部分(在 “配置冗余系统” 下)。

超时值

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

这两个时间都取决于具体系统。要指定具体的最大超时时间,必须同时具备实时任务和实时通信这两项功能。在运行时,当任务抖动较大且消息传输延迟时,就会发生超时。在等待来自另一台PLC的消息时,系统会认为该PLC已停止运行。结果,等待的PLC和发送的PLC都会切换到独立运行模式。这会导致同步丢失,并在现场总线上引发通信问题。

重要

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

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

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

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

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

解决方案:

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

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

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

冗余配置 编辑器,在 冗余设置 选项卡,在 将军 选项卡,您可以定义将活动 PLC 切换到独立模式的超时时间。

此外,该值存储在运行时配置文件中(例如: CODESYSControl.cfg) 带有条目 StandbyWaitTime

IEC计时器

两台PLC的执行时间不同,会在切换PLC时导致“跳变”(输出值偏离)。为防止这种情况,在执行IEC任务期间,IEC定时器的数值会被冻结。因此,在执行IEC任务时,来自IEC定时器的调用(例如 TON函数)始终会返回相同的定时器数值,即使物理时间仍在继续流逝。因此,实现时应处于空闲等待状态(可能通过循环实现)。这是因为在当前任务扫描周期内,IEC定时器的数值不会发生变化。

指针、引用和接口

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

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

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

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

EtherCAT DC

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

有关更多信息,请参阅以下内容: 实时任务和沟通

Map on Existing

映射到现有变量

使用时,不建议使用 “在现有变量上映射”(将 I/O 映射到现有变量)的 I/O 映射方法 CODESYS Redundancy Configuration 附加组件。这些类型的变量不存储在输入或输出数据区域中,而是存储在声明它们的地方。因此,它们在运行期间不同步。

网络变量

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

文件访问权限

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

如果您使用文件,则需要在不受冗余控制的数据区中声明相应的文件句柄。每个 PLC 彼此独立地打开其文件。不支持共享账号。在 PLC 上创建的文件句柄必须 不是 用于访问其他 PLC 上的文件或本地 PC 上的文件。

编译时,系统会检查是否处理变量 (RTS_IEC_HANDLECAA.HANDLE) 位于冗余控制区域内。对于在这样的区域中检测到的每个句柄变量,都会发出警告。

在线安全用户管理

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

SoftMotion

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