工控编程吧

标题: AT指令和Slice 访问有啥不同 [打印本页]

作者: baikhgmv    时间: 2016-9-13 12:47
标题: AT指令和Slice 访问有啥不同
AT指令和Slice 访问有啥不同AT指令和Slice 访问有啥不同?粗略用了一下,感觉很类似。
应用的变量类型有啥区别么


------看起来都是可以访问一个变量的一部分。
-----AT: 将两个变量符号定义在同一地址,只能用于标准访问的块(有绝对地址),必须预定义
Slice: 访问变量的某些子单元数据, 优化访问的标准块都能用


-------就是在优化的背景数据块里,定义一个变量假设为D0Word, 然后将该变量的“保持性”设置为“在IDB中设置”,那么接下来新建一个变量就可以AT以上的D0了


-------AT指令(应该是个方法吧)。还是Z版的办法好。先定义一个变量结构。然后在使用AT指令时,就直接使用这个变量结构,这样它的可读性就很好了,一目了然。
传递一个参数就可以包含字、字节、位。这对于那些状态字的位操作、控制很方便,在接口处就转换成“位”变量了。

-------我试了一下,一直有问题,在数据格式中没有AT。

具体起因是我想用临时变量LW 0中的某一位,但是在接口处in_out定义临时变量之后,紧接着,下一行想使用AT,但是格式中没有这个。

我下载了一个实例程序,在里面试着操作的时候,就没有这样的问题。


-------我觉得AT指令只用在块的接口。

如果你的程序结构都是用控制字,状态字来传递(分层控制),使用AT指令就会感到好处了。

其它用法还真没有看出来


------其实AT还有一个非常好用的地方, 几乎是非用不可.


我使用ET200S的步进模块, 它的控制字首个双字(偏移量为0)有两种情况:一种是在位置模式下用DINT类型表示目标位置.  另一种是在速度模式下用REAL类型表示目标速度.

而我又需要建立一个用户数据类型(UDT) ,   在这个UDT里我必须要事先指定数据类型, 比如我的项目要经常用到位置模式, 那么我将数据类型设为DINT.   

(, 下载次数: 3)