ABB 压包指令PackRawBytes 解包指令UnpackRawBytes

来源:互联网 发布:简述什么是云计算 编辑:程序博客网 时间:2024/05/22 16:45

    ABB  压包指PackRawBytes   解包指令UnpackRawBytes   

   PackRawBytes- 将数据导入 rawbytes 数据。
    使用方法
    PackRawBytes 用于将 num, dnum, byte,或者 string类型的数据,打包到  rawbytes 类型的变量中.
     基本举例  :


        VAR rawbytes raw_data;
        VAR num integer := 8;
        VAR dnum bigInt := 4294967295;
        VAR num float := 13.4;
        VAR byte data1 := 122;
        VAR byte byte1;
        VAR string string1:="abcdefg";
        PackDNHeader "10", "20 1D 24 01 30 64", raw_data;

       将 DeviceNet 头文件 打包到  raw_data.
       然后通过  PackRawBytes  打包要求的现场总线数据到 raw_data 中 。下面的例子展示了不同的数据如何被添加。
       Example 1
              PackRawBytes     integer,     raw_data,     (RawBytesLen(raw_data)+1)   \IntX :=DINT;
       在 raw_data 中,头文件之后的下四个字节将是 8.
      Example 2
             PackRawBytes bigInt, raw_data, (RawBytesLen(raw_data)+1) \IntX :=
UDINT;
The contents of the next 4 bytes after the header in raw_data will be 4294967295
decimal.
Example 3
PackRawBytes bigInt, raw_data, (RawBytesLen(raw_data)+1) \IntX :=
LINT;
The contents of the next 8 bytes after the header in raw_data will be 4294967295
decimal.
Example 4
PackRawBytes float, raw_data, RawBytesLen(raw_data)+1) \Float4;
The contents of the next 4 bytes in raw_data will be 13.4 decimal.
Example 5
PackRawBytes data1, raw_data, (RawBytesLen(raw_data)+1) \ASCII;
The contents of the next byte in raw_data will be 122, the ASCII code for "z".
Example 6
PackRawBytes string1, raw_data, (RawBytesLen(raw_data)+1) \ASCII;
The contents of next 7 bytes in raw_data will be "abcdefg", coded in ASCII.
Example 7
byte1 := StrToByte("1F" \Hex);

   

0 0
原创粉丝点击