1. 变量声明及调用技巧

1.12. BYTE指针怎么用呢,比如定义了一个BYTE数组,然后定义一个指针指向数组头,那如何使指针指向下一个元素?

SIZEOF()
PROGRAM MAIN

VAR

       s1:STRING:='hello';

       p1:POINTER TO BYTE;

       c1:BYTE;

END_VAR

p1:=ADR(s1)+SIZEOF(c1)*1;

c1:=p1^;
对于TwinCAT2软件中的指针偏移按教程可以直接使用:

注意TwinCAT 2中使用DWORD数据类型进行偏移得逻辑或者库文件,转换或者导入TwinCAT 3使用会导致
Cannot convert type 'POINTER TO REAL' to type 'DWORD'
因为TwinCAT 3指针得数据长度是64bit,类型需要使用LWORD进行偏移,以下是运行时的测试效果: