做了一个简单的循环程序FC2,测试过程中当跳出循环时便会出现如下错误提示:
"临时 CPU 错误:FC 2 中的区域长度错误 将影响 OB 1 的执行写访问 易失性 DB 区域地址错误,已忽略操作数 继续处理(无 OB 处理) > HW_ID= 52
内部地址的详细信息:Caddr=16#000000C0,区域:DB 18 ,地址:848"
这是什么意思?一时找不到原因。
程序如下:
1: //PWM风机调速,每一步输入不同的占空比;
"DB_Blower".blowerPwmCycleOn:=true;
IF "DB_Blower".blowerPwmCycleOnAND "BlowerCurrentNo"<="BlowerSumNo" OR "BlowerPWMDone")
THEN
"BlowerNextNo":="BlowerCurrentNo"+1;
"BlowerPWMDone":=false;
END_IF;
IF "IEC_Timer_0_DB_4".Q
THEN
"BlowerCurrentNo":="BlowerNextNo";
"BlowerPWMDone":=true;
END_IF;
IF "BlowerCurrentNo">"BlowerSumNo" //测试完成跳出循环;
THEN
"BlowerMode":=0;
"DB_Blower".blowerPwmCycleOn:=false;
END_IF;
//每一步持续运行时间延时直到每一步运行完成;
"IEC_Timer_0_DB_4".TON(IN:=( "DB_Blower".blowerPwmCycleOn AND NOT "BlowerPWMDone"),
PT:="BlowerRunTime"
);