该IEC运算符用于将操作数向左移。
erg := SHL (in, n)
in: 向左移动的操作数
n: 向左移的位数
如果n覆盖数据类型的宽度,则取决于目标系统如何填充BYTE,WORD,DWORD和LWORD操作数。目标系统导致填充为零或n MOD<制表符宽度>。 |
请注意,CODESYS用于此操作的位数由输入变量in的数据类型定义。 |
.例如
尽管in_byte和in_word输入变量的值相同并且输入变量的数据类型不同,但erg_byte和erg_word的结果不同。
ST:
PROGRAM shl_st
VAR
in_byte : BYTE := 16#45; (* 2#01000101 )
in_word : WORD := 16#0045; (* 2#0000000001000101 )
erg_byte : BYTE;
erg_word : WORD;
n: BYTE := 2;
END_VAR
erg_byte := SHL(in_byte,n); (* Result is 16#14, 2#00010100 *)
erg_word := SHL(in_word,n); (* Result is 16#0114, 2#0000000100010100 *)
FBD: