西门子的AT访问详解
西门子的 AT 访问是用于访问参数内数据区域的一种方法。借助于附加声明,用户可以修正已定义参数的类型,从而实现不同数据类型的寻址。比如,通过使用布尔类型数组,可以对Word数据类型参数的各个位进行寻址。
在对 DB 分块进行测试时要求将其转换为标准 DB,以确保可以显示 AT 数据类型。若 DB 块并非标准结构则不支持 AT 分类可访问。在执行操作后,系统自动生成一个名称为 "Input_1" 的变量,其类型在所有情况下为 INT。为了更换为布尔型数组和八进制类型,需作必要调整。
为确保一致性,当使用 AT 访问 S71200 的 FC 时,覆盖的参数与其利用率长度应完全一致。考虑到一个 INT 包含两个 BYTE 和 16 个 BOOL,编写相应的 SCL 代码循环传参。随后,尝试调用 FB 块,并向接口传入125。
验证阶段,我们将重点放在 BOOL 进制地址解读上。最低8位对应 BOOL[8]至 BOOL[15],而高位全为0,转换为二进制即可得到125这个数值。同低8位对应的表示一样,二次转换得到的低方基数数也有125的表示效果。在考量访问具体路径时应予以注意。
超限设置范围会触发编译错误。因此,在使用 AT 访问时需特别防止这一情况发生。有关注意事项如下:
在 LAD(梯形图)、FBD(功能块图)或 SCL(结构化控制语言)中允许参数覆盖。
覆盖的参数须存在于标准访问方式的代码中(FB、FC)或在激活 “在 IDB 中设置” 功能的优化中。
只有参数数据宽度小于等于被覆盖参数的数据宽度时才能进行覆盖操作。
不可覆盖VARIANT数据类型的参数。
多重实例声明无法进行覆盖。
未覆盖设计参数(字符串,字节数组,字符数组等)及声明为接口中的块参数。
不支持对结构化 PLC 参数的接口覆盖访问。
无法通过片段访问直接定位并覆盖参数。