.

运算符‘SHL’

.
.

该IEC运算符用于将操作数向左移。

erg := SHL (in, n)

in: 向左移动的操作数

n: 左移的位数

提示!

如果n覆盖数据类型的宽度,则取决于目标系统如何填充BYTEWORDDWORDLWORD操作数。目标系统导致填充为零或n MOD<制表符宽度>

提示!

请注意,CODESYS用于此操作的位数由输入变量in的数据类型定义。

.

.例如

尽管in_bytein_word输入变量的值相同并且输入变量的数据类型不同,但erg_byteerg_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: