为了使 HA 系统的性能达到平衡,请在项目任务配置中考虑以下建议:
通用
-
将实时优先级用于所有与 HA 相关的任务。HA 程序/任务应该以最高优先级调用,因为它负责 HA 的核心功能,也应该是最快的任务。
-
Modbus 任务包含Modbus 通信功能块,优先级较低,周期较快(取决于 CPU 性能),以确保Modbus 上有足够的更新率,同时又不会给 CPU 带来过重的通信负担。
-
与上述任务相比,应用任务中调用应用程序部分的优先级更低,周期时间更长。
-
配置改进标准Modbus TCP,实现 PLC 之间的快速切换。
-
配置现场总线通信的 ETH 端口的 RTO 重传时间功能块 "EthSetRtoMin"。默认情况下,配置的最短重传时间为 15 毫秒。
任务 |
优先权 |
PM57x, PM58x, PM59x |
PM595-4ETH |
V3 PLC |
---|---|---|---|---|
HA |
10(高) |
4 毫秒或更高 |
2 毫秒或更高 |
4 毫秒或更高 |
Modbus |
11(中) |
最大值(HA 循环时间 *2),(3 毫秒 + 四舍五入 (#CI/2) |
最大值(HA 循环时间 *2),(3 毫秒 + 四舍五入 (#CI/2) |
机载 ETH:Max ((HA cycle time *2), (3 + roundup (#CI modules/2))) |
CM5640-2ETH:最大值((HA 周期时间 * 2),(#CI 模块) |
||||
应用 |
12(低) |
最大值为 (Modbus 周期时间 *2)、(iNoOfEthFrames * HA 周期时间) |
(iNoOfEthFrames * HA cycle time) (iNoOfEthFrames * HA cycle time) |
最大值为 (Modbus 周期时间 *2),(iNoOfEthFrames * HA 周期时间 *2) |
任务配置步骤
-
根据 CPU 选择、系统大小和性能指标章节选择合适的 CPU 类型
-
根据表格配置任务优先级
-
根据上表将 HA 任务设置为最小值
-
根据 HA 周期和 CI 模块数量 "#CI",按照表中公式计算Modbus 周期时间
-
根据Modbus 周期时间和HA-Modbus TCP 库全局变量中定义的 iNoOfEthFrames 变量,按照表中公式计算应用程序周期时间。
-
测量试运行期间 PLC 和 CPU 的负载。
V3:PLC 利用率⮫ “PLC 利用率”
如果 PLC 负载高于 40 % 或 CPU 负载高于 60 %,则增加 HA 循环时间(如 8 毫秒/12 毫秒/24 毫秒......)并转至步骤 4,重复这些步骤,直至负载在规定范围内。
Automation Builder2.4.1 及以后版本新增了V3 CPU 配置选项,可更改Ethernet 在 PLC 中的通信优先级。
在Automation Builder 中 CPU 的设备树中设置此配置,双击 PLC“CPU 参数 通讯模式 选择 "板载Ethernet"” 。
对于 HA 系统,应将上述参数设置为“Onboard” Ethernet ,这样会因优先级较高而增加负载。PLC 负载< 50 % 和 CPU 负载< 70 % 在这里应作为设置任务时间的指导原则。
-
用户项目必须根据所定义的关系定义以下超时值。
超时变量 (参见下表方框中的定义)
HA in V2
V3 中的 HA
timCI52xTimeOut
1 *Modbus 任务时间
50 毫秒或 2 *Modbus 任务时间,以较高者为准
timHaModSyncTimeOut
1* HA 任务时间
2 * HA 任务时间
timResponseTimeout
不适用
50 毫秒或(3 *“Modbus 任务时间” ),以较高者为准
timCanTimeOut
不适用
100 毫秒或以 100 的倍数增加
timeLifecom2TimeOut
50 毫秒
50 毫秒
-
添加其他应用程序和SCADA 通信:再次检查 PLC 和 CPU 负载是否符合您的要求。
在 HAModbus 系统中,如上文 V2 和 V3 PLC 的任务配置所述,必须为系统的精细操作配置不同的超时。下文将解释这些不同超时的含义和关系:
timHaModSyncTimeOut:
检查辅助 PLC 是否收到新同步数据的时间限制。如果超时定义不当,将产生 Sync lost error/“lifecom1” lost error。
timCanTimeOut:
通过 CAN 配置时,用于检查是否收到“lifecom2” 的时间。该值仅适用于AC500 V3。通过 CAN 的 Lifecom2 在 PLC 之间不稳定,如果配置的值不正确,运行时错误 "lifecom2 丢失 "会闪烁。
timCI52xTimeOut:
检查Modbus 字段模块是否收到新数据的时限。当通过ModbusTCP 配置时,它还用于检查是否收到“lifecom2”。如果“timCI52xTimeOut” 的定义与描述不符,则“lifecom2” 错误/通信接口诊断错误将不会按预期生成。
timResponseTimeOut:
超时值,用于检查 CPU 是否丢失了网络中连接的通信接口模块。如果未按说明定义此值,通信接口模块丢失检测将无法正常显示。
timeLifecom2TimeOut
通过Modbus TCP 配置时,检查是否收到“lifecom2” 的时限。将“timlifecom2TimeOut” 值设置为默认的 50 毫秒,如果未正确定义该值,运行时错误“Lifecom2 丢失” 诊断错误将不会如期生成。