问题:
在输入无效后,AS230/235 或 AS488/TM 的 NEMO 编译器有时会生成错误的 TML 代码。
输入 GIVE DIG(模拟表达式):
如本文档中所描述,GIVE 语句中只允许有常数,本地小区(LAx/LBx) 或直接地址参数(type.no.elna)。
不过,NEMO 编译器还接受无任何错误消息的指令的 GIVE 输入,例如
CALL PROBLEM.XXXX;
GIVE DIG(LA0);
该指令会产生一个不正确的 TML 代码,这个代码可导致 AS 发生故障。
补救措施:
DIG(LA0) =: LA0;
CALL PROBLEM.XXXX;
GIVE LA0;
输入 CALL ROUTINE(0):
如本文档中所描述,ROUTINE 可由 1 至 255 之间的数所调用:
CALL ROUTINE(no) 由 No = 1...255 所调用
不过,NEMO 编译器接受 CALL ROUTINE(0) 的不带任何错误消息的输入。
该指令会产生一个不正确的 TML 代码,这个代码可导致 AS 发生严重故障。
(NOT xxx:Bn) 的输入:
对于一个可导致 AS 发生故障的(NOT ...) 语句,NEMO 编译器将生成错误的 TML 代码。
例如:
(NOT GB1:B3) =: LB1; 将显示为 (> GB1:B3) =: LB1;即 NOT 消失
(NOT GM1:B3) =: LB1; 将显示为(> GM1:B3) =: LB1;即 NOT 消失
(NOT GT1:B3) =: LB1;将显示为 (GT1:B3) =: LB1;即 NOT 消失
(NOT GA1:B3) =: LB1; 将显示为 (GA1:B3) =: LB1; 即 NOT 消失
补救措施:
NOT (GB1:B3) =: LB1;
NOT (GM1:B3) =: LB1;
NOT (GA1:B3) =: LB1;
NOT (GT1:B3) =: LB1;
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc332733.html