SA0147:不寻常的班次操作 -strict
检测不对位域数据类型进行的位移操作(BYTE
, WORD
, DWORD
, LWORD
)
说明:IEC 61131-3 标准只允许对位域数据类型进行位访问。但是,那 CODESYS 编译器还允许对无符号数据类型进行位移操作。
重要性:低
提示
另见严格规则 SA0018.
例 108. 例子
PROGRAM PLC_PRG VAR in_byte : BYTE := 16#45; // 2#01000101 in_word : WORD := 16#0045; // 2#0000000001000101 in_uint : UINT; in_dint : DINT; erg_byte : BYTE; erg_word : WORD; erg_uint : UINT; erg_dint : DINT; n: BYTE := 2; END_VAR
erg_byte := SHL(in_byte,n); // no error because BYTE is a bit field erg_word := SHL(in_word,n); // no error because WORD is a bit field erg_uint := SHL(in_uint,n); // SA0147 erg_dint := SHL(in_dint,n); // SA0147
输出在 留言 看法:
SA0147:不寻常的轮班操作 - 严格