输入一个数据获取高八位和低八位

h := Tc2_System.SHR32(Value,8);
l := Value AND 16#00FF;

将高八位、低八位合并成一个16进制数

dwValue := UDINT_TO_UINT( Tc2_System.SHL32(h,8) + l);

// 输入一个数据获取高八位和低八位
// 将16进制数据转换成高低八位分别填充至发送数据进行发送

FOR i := 0 TO 19 DO 
    abyTestData[2*i] := DWORD_TO_BYTE( Tc2_System.SHR32(auiToData[i],8));
    abyTestData[2*i+1] := DWORD_TO_BYTE( auiToData[i] AND 16#00FF);
END_FOR

// 将高八位、低八位合并成一个16进制数
// 接收到数据后,再依次将数据合并成16位数据

FOR i := 0 TO 39 BY 2 DO 
    auiTestData[i/2] := UDINT_TO_UINT( Tc2_System.SHL32(abyTestData[i],8) + abyTestData[i+1]);
END_FOR

左移右移数据

左移一位代表乘以2,右移一位代表除以2。所以,对于a乘以x而言,只是将a左移x为1的位并累加即可。
例如:将a右移8位,就是a/256(2^8);将a左移8位,就是a*256(2^8)。