一文轻松学会西门子Slice方式变量寻址

电子说

1.3w人已加入

描述

【导读】博途中不但变量数据类型的隐式转换很好用,而且对于变量的Slice(直译:片或部分)寻址也很方便,下面就来说下S7-1200/1500如何以用Slice方式对变量进行寻址。

【一】语法表达式以及说明

(1)语法表达式

.x

.b

.w

4..d

(2)语法说明

 

部分 说明
访问的变量标识。
x
b
w
d
访问宽度为“位(1 位)”的标识
访问宽度为“字节(8 位)”的标识
访问宽度为“字(16 位)”的标识
访问宽度为“双字(32 位)”的标识
待访问 内的位号。编号 0 表示访问最低有效位。
待访问 内的字节号。编号 0 表示访问最低有效字节。
访问的 内的字号。编号 0 表示访问最低有效字。
访问的 内的双字号。编号 0 表示访问最低有效双字。

 

(3)功能说明

通常针对Byte、Word等数据类型的变量进行片段访问,如下图所示,此外也可以对 INT、DINT 等整数数据类型的变量进行片段访问。

西门子

(4)注意事项

从博途V13以后,语法规则从 ".x" 改为 ".%x",并且对于S7-300/400是不支持这种变量的片访问方式;对于S7-1200/1500其它类型的变量,比如数组元素,访问形式都差不多,大家自己动手试试吧!

【二】使用说明

(1)使用 DB 块变量进行 Slice 访问

创建一个 S7-1200 的项目,在程序块中新建一个 DB 块(优化的块访问),创建一个变量,数据类型为 DWord,可以看到该变量没有绝对地址,如下图所示:

西门子

在程序段 1 中插入常开和赋值指令,常开指令填写地址“DB1.Static_1.X0”,赋值指令填写地址“DB1.Static_1.X1”,其中 X0 和 X1 分别表示变量 Static_1 的第 0 位和第 1 位,如下图所示:

西门子

在程序段 2 中插入 MOVE 指令,IN 管脚填写地址“DB1.Static_1.B0”,OUT 管脚填写地址“DB1.Static_1.B1”,其中 X0 和 X1 分别表示变量 Static_1 的第 0 字节和第 1 字节,如下图所示:

西门子

依次类推,对字访问,就是填写地址“DB1.Static_1.W0”和“DB1.Static_1.W1”。

(2)FB、FC 块接口变量的 Slice 访问

创建程序块(本例创建 FC 块,优化的块访问),在 Input 和 Output 分别创建变量“Input_1”和“Output_1”,数据类型分别是 DInt 和 Dword,可以看到这两个变量没有绝对地址,如下图所示:

西门子

程序段 1,常开指令填写地址“Input_1.X0”,赋值指令填写地址“Output_1.X0”;程序段2,MOVE 指令的 IN 管脚填写地址“Input_1.W0”,OUT 管脚填写地址“Output_1.W0”。最后如下图所示。

西门子

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分