电力和 冶金,石化行业,
一般都是推荐 CPU的正常负载 在30-40 左右,比较合理,严禁超过50%。
这是有道理的,
先撇开这些行业 有钱没钱的 概念,
例如 ABB AC800F,正常工作时 CPU 负荷率在40%,
你打开了 DTM组态PA智能仪表时,会发现DP总线的负荷率升高,而导致CPU的负荷率大致有 百分之几的提升,
你任意的断开 几个 DP从站,会发现 DP总线和网络负荷率会急剧升高,
CPU的负荷率甚至会提高十几个百分点。
如果你还通过FI820 挂了一些Modbus 设备,假如有个别Modbus 设备故障时,
你会发现CPU 负荷率还会升高。
根据行业经验, 当个别从站设备故障时,“最高设置可导致CPU 负荷率提高30%”。
虽然 30% 是最高值,
但是你的CPU 如果正常运行时已经是 70%的话,你想一想会是什么后果?
其他厂家的系统 原理是类似的,无非是 处理非正常状况下的这些故障时,
额外增加的 CPU 负荷率并不相同而已,但是都会大大加重CPU的负荷。
另外,你的系统以后还扩充不?
会不会再添加设备,添加Io,追加程序?
一 控制器总体负荷率
在系统库 SysLib.lib 有功能块 SysPer 其输出Load (百分数)即为控制器总体负荷率。
此负荷率为 IEC 运算、控制器内核、通讯等任务各自的负荷率之和。
二 IEC 运算占用的控制器负荷率
1. 本方法用于计算 SmartPro 控制器IEC 运算的负荷率。
2. 在 SmartPro ConMaker 的组态工程中按照如下方法组态:
1) 在 ConMaker 中定义用户工程的任务调度周期
2) ST 语言定义程序、相关变量、算法调用:
3) SmartPro ConMaker 进入在线运行后,ConMaker 运行界面如下:
各项含义:
dwount 系统运行计数器
dwCycleTime 系统周期运行实际占用时间
dwCycleTimeMin 系统周期运行实际占用最短时间
dwCycleTimeMax 系统周期运行实际占用最长时间
dwCycleTimeAvg 系统周期运行实际占用平均时间
4)
dwCycleTime
控制器负荷率 = --------------------------------
任务调度周期
3. 举例
定义 250ms 的任务调度周期,控制器运行后的运行周期为30ms , 则
30ms
计算负荷率 = -------------------- = 12 %
250ms