CODESYS 指针使用
codesys指针一般有两种方式使用,pointer和reference两种方式,最后还介绍一个如何避免指针出错导致程序不运行的方法
1、第一种方式 Pointer to
声明指针的语法如下:
<标识符>: POINTER TO <数据类型 | 功能块 | 程序 | 方法 | 函数>;
取指针地址内容即意味着读取指针当前所指地址中存储的数据。通过在指针标识符后添加内容
操作符“ ^” ,可以取得指针所指地址的内容。
算术索引访问指针:如果你用一个 POINTER TO 类型的变量进行索引访问, CODESYS 通过 pint = (pint + i * SIZEOF(base type))^ 计算偏移量。索引访问也会导致隐式的指针解引用。产生的数据类型是指针基本数据类型。请注意 pint != (pint + 7)^!
指针数组使用,可以将轴号通过数组变化
********************************************************************
VAR
Mc_power1:SM3_Basic.MC_Power;
bRegulatorOn:BOOL;
axisp:ARRAY OF POINTER TO SM3_Basic.AXIS_REF_SM3;
n:INT;
iStep:INT:=1;
END_VAR
********************************************************************
CASE iStep OF
1:n:=1;
2:n:=2;
END_CASE
axisp:=ADR(axis1);
axisp:=ADR(axis2);
Mc_power1(
Axis:= axisp^,
Enable:=TRUE ,
bRegulatorOn:=bRegulatorOn1 ,
bDriveStart:= TRUE,
);
=========================================================================2、第二类方式 Reference to
3、指针校验方式
讲解的很好,学习中,谢谢楼主!
方法1中用到了轴的库,我没有装,就用CTU来做的,也是可以的。
方法2中,好像是倒过来的,iResult给值之后,iVal值才会变54.
页:
[1]