威纶通组态屏对Codesys标签支持的局限性

本文主要探讨了EasyBuilderPro V6.08.01.214s版本中关于索引寄存器的局限性,即一次只能处理一个数值,并揭示了REFERENCETO结构体内部数组写入的特殊规则,仅首地址有效。了解这些限制有助于开发者优化代码并避免错误。
摘要由CSDN通过智能技术生成

对于EasyBuilder Pro V6.08.01.214s版本

1.一旦使用了索引寄存器,不能传多个数值

比如

TYPE Pallet :
STRUCT
	boxLong  : REAL;
	boxWidth : REAL;
	boxHeight: REAL;
	trayLong : REAL;
	trayWidth : REAL;
	layerId : ARRAY[0..19] OF USINT;
	layerDef : ARRAY[0..9] OF PalletLayer;
END_STRUCT
END_TYPE
TYPE PalletLayer :
STRUCT
	num : USINT;
	x : ARRAY[0..49] OF INT;   //fixpoint -32768~32767  ->  3276.8mm ~ 3276.8mm
	y : ARRAY[0..49] OF INT;
	a : ARRAY[0..49] OF INT;
END_STRUCT
END_TYPE

//PalletGVL
VAR_GLOBAL
	boxLong  : REAL;
	boxWidth : REAL;
	boxHeight: REAL;
	trayLong : REAL;
	trayWidth : REAL;
	maxLayer : USINT;
	layerId : ARRAY[0..19] OF USINT;
	layerType : ARRAY[0..9] OF PalletLayer;
END_VAR

地址格式为 Application.PalletGVL.layerType[0+INDEX 32].x[0] 的地址不能传大于1的标签数量

无论是读写都一样

2.不能对REFERENCE TO的结构体内部的数组写入多个数值

在上一个的基础上
//PalletHmi
VAR_GLOBAL
    currentLayerId : DINT;
    currenyLayerRef : REFERENCE TO PalletLayer;
END_VAR

地址格式为 Application.PalletHmi.currentLayerRef.x[0] 的地址不能传大于1的标签数量

读取多个数值正常,但是写入多个数值只能对首地址生效

//-----------2024-08-03---------更新

对于EasyBuilder Pro V6.09.02.315s,CodeSYS 3.5.14

3.REFERENCE TO的结构体支持异常

TYPE PDPS_Position :
STRUCT
	v : ARRAY [0..3] OF REAL;  //x,y,z,a  or a1,a2,a3,a4
END_STRUCT
END_TYPE

TYPE PickDyn_PlaceSta_RobotParam_1 :
STRUCT
	robotOverride : REAL;
    pickOrig : PDPS_Position;
	pickArrayX : ARRAY[0..PickDyn_PlaceSta_Appl.cMaxPickArray-1] OF REAL;
END_STRUCT
END_TYPE

PDPS_GVL
VAR_GLOBAL
    param1 : PickDyn_PlaceSta_RobotParam_1;
    robotParam : REFERENCE TO PickDyn_PlaceSta_RobotParam_1 REF= param1;
END_VAR

HMI读取PDPS_GVL.param1.pickOrig.v[0]是正常的,

但是读取PDPS_GVL.robotParam.pickOrig.v[0]就会异常,只能用数组凑合一下了

哦,不,把PDPS_Position改成 x,y,z,a这样的形式,也能正常访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值