AS 230/235 或 AS 488/TM 的NEMO 编译器的问题

问题:
在输入无效后,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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论