利用隐式检查POU来确认ARRAY设置边界
内容
请参照下列步骤
1. 添加隐式检查POU。
2. 选择边界检查。
3. 添加Library。
① CmpApp.library
② SysExcept.library
③ SysTypes2 Interface
4. 添加变量。
FUNCTION CheckBounds :DINT
VAR*INPUT
index, lower, upper:DINT;
END*VAR
VAR
*pApp :POINTER TO CmpApp.APPLICATION;
_result :SysTypes.RTSIECRESULT;
5. 程序内容:
IF index < lower THEN
CheckBounds := lower;
ELSIF index > upper THEN
CheckBounds := upper;
ELSE
CheckBounds := index;
END_IF
pApp := AppGetCurrent(pResult:=ADR(result));
IF *pApp <> 0 THEN
AppGenerateException(pApp:=pApp, ulException:=RtsExceptions.RTSEXCPTARRAYBOUNDS);
END*IF
6. 测试结果:
① 当Test*Button := True, For循环超出定义的Array范围。
② 会自动跳出例外(也可以将跳出例外,变成一个变量Bool去检查)。
关键词:AX全系列控制器、隐式检查
我们将利用一种称作Cookies之标准技术,搜集有关您如何使用我们的网页之讯息,以便提供您一个良好的体验环境并藉以评估我们网页上最受欢迎的版面,或当您再次拜访我们网页时,我们的网站能记得您。当您在浏览我们的网页时,我们没有任何故意或意图侵害您的隐私。大部分之浏览器将允许您从计算机硬盘中删除Cookies数据、阻断接受Cookies、或于Cookies数据被储存前接获警告通知。您可以选择自行设定浏览器在接获Cookies前通知您,并得以选择拒绝或接受该Cookies。更多信息可以查看 隐私政策 更多信息可以查看 隐私政策
内容
请参照下列步骤
1. 添加隐式检查POU。
2. 选择边界检查。
3. 添加Library。
① CmpApp.library
② SysExcept.library
③ SysTypes2 Interface
4. 添加变量。
FUNCTION CheckBounds :DINT
VAR*INPUT
index, lower, upper:DINT;
END*VAR
VAR
*pApp :POINTER TO CmpApp.APPLICATION;
_result :SysTypes.RTSIECRESULT;
END*VAR
5. 程序内容:
IF index < lower THEN
CheckBounds := lower;
ELSIF index > upper THEN
CheckBounds := upper;
ELSE
CheckBounds := index;
END_IF
pApp := AppGetCurrent(pResult:=ADR(result));
IF index < lower THEN
CheckBounds := lower;
IF *pApp <> 0 THEN
AppGenerateException(pApp:=pApp, ulException:=RtsExceptions.RTSEXCPTARRAYBOUNDS);
END*IF
ELSIF index > upper THEN
CheckBounds := upper;
IF *pApp <> 0 THEN
AppGenerateException(pApp:=pApp, ulException:=RtsExceptions.RTSEXCPTARRAYBOUNDS);
END*IF
ELSE
CheckBounds := index;
END*IF
6. 测试结果:
① 当Test*Button := True, For循环超出定义的Array范围。
② 会自动跳出例外(也可以将跳出例外,变成一个变量Bool去检查)。
关键词:AX全系列控制器、隐式检查