0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

S7-1200使用Slice方式对变量进行寻址

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2022-03-14 14:16 次阅读

S7-1200 使用 Slice 方式对变量进行寻址

可以选择包含所声明变量的特定地址区域,可以访问宽为 1 位、8 位、16 位或 32 位的区域,这种访问类型称之为“片段访问”(Slice access)。

通过 slice(片段访问)方式,可以选择所声明变量中的特定寻址区域;可以实现从单个位到变量级别的符号访问;片段访问不能寻址常量。

slice 方式支持这2种方式的块:可标准访问的块、可优化访问的块。

1. 语法表达

下列语法用于寻址:

1. .x

2. .b

3. .w

4. .d

语法说明

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

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

c141c686-9f9a-11ec-952b-dac502259ad0.jpg

图 1 片段访问结构

2. 使用说明

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

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

c1644be8-9f9a-11ec-952b-dac502259ad0.jpg

图 2 创建 DB 块变量

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

c1845c62-9f9a-11ec-952b-dac502259ad0.jpg

图 3 对 DB 块变量的位进行 Slice 访问

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

c1a2a352-9f9a-11ec-952b-dac502259ad0.jpg

图 4 对 DB 块变量的字节进行 Slice 访问

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

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

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

c1c67458-9f9a-11ec-952b-dac502259ad0.jpg

图 5 创建 FC 块接口变量

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

c1e25c4a-9f9a-11ec-952b-dac502259ad0.jpg

图 6 对 FC 接口变量进行 Slice 访问

审核编辑 :李倩

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

    关注

    0

    文章

    613

    浏览量

    28329
  • S7-1200
    +关注

    关注

    11

    文章

    331

    浏览量

    17911

原文标题:S7-1200 使用 Slice 方式对变量进行寻址

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    S7-1200如何通过附加声明来覆盖所声明的变量

    S7-1200/1500:在 FC 中使用 AT,对于 S7-1200/1500 中的 FC,覆盖变量和被覆盖变量的数据长度必须相同。如果无法通过程序实现,请检查是否可以使用片段访问来
    发表于 07-08 10:31 945次阅读

    基于S7-1200的设备与网络组态

    本文档内容介绍了基于S7-1200的设备与网络组态,以及S7-1200的概要及功能。
    发表于 09-25 18:14 28次下载
    基于<b class='flag-5'>S7-1200</b>的设备与网络组态

    s7-1200系统手册

    S7-1200适用
    发表于 10-23 09:41 0次下载

    S7-1200入门手册

    S7-1200适用
    发表于 10-23 09:34 0次下载

    s7-1200技术规范

    S7-1200适用
    发表于 10-23 09:29 0次下载

    S7-1200S7-1200进行S7通信的详细资料说明

    S7-1200 的 PROFINET 通信口可以做 S7 通信的服务器端或客户端(CPU V2.0及以上版本)。S7-1200 仅支持 S7 单边通信,仅需在客户端单边组态连接和编程,
    的头像 发表于 08-17 10:51 2.9w次阅读
    <b class='flag-5'>S7-1200</b>和<b class='flag-5'>S7-1200</b><b class='flag-5'>进行</b><b class='flag-5'>S7</b>通信的详细资料说明

    PLC高手对Slice的使用方式与说明

    编程S7-1200可以选择包含所声明变量的特定地址区域,可以访问宽为 1 位、8 位、16 位或 32 位的区域,这种访问类型称之为“片段访问”(Slice access)。通过 slice
    的头像 发表于 03-12 14:53 2375次阅读

    关于S7-1200S7-1200之间UDP的通信与仿真

    S7-1200S7-1200 之间的以太网通信可以通过 UDP 协议来实现,使用的通信指令是在双方 CPU 调用 T-block ( TCON, TDISCON, TUSEND, TURCV) 指令来实现。通信方式为双边通
    的头像 发表于 04-22 09:14 5510次阅读
    关于<b class='flag-5'>S7-1200</b>和<b class='flag-5'>S7-1200</b>之间UDP的通信与仿真

    S7-1200使用AT覆盖变量

    S7-1200 要访问声明变量内的数据区域,可以通过附加声明来覆盖所声明的变量。这样可以选择对不同数据类型的已声明变量进行
    的头像 发表于 03-11 11:10 3966次阅读

    关于S7-1200S7-1500 PLC的通信

    WinCC V7.4SP1中针对S7-1200S7-1500通信,可以创建状态变量和控制变量,用来显示和控制S7-1200
    发表于 10-09 10:05 2178次阅读

    S7-1200 PLC仿真功能

    PLCSIM 几乎支持仿真的 S7-1200S7-1200F 的所有指令(系统函数和系统函数块),支持方式与物理 PLC 相同。PLCSIM 将不支持的块视为非运行状态。
    的头像 发表于 02-16 09:48 3799次阅读

    西门子博途用Slice方式变量进行寻址

    创建一个 S7-1200 的项目,在程序块中新建一个 DB 块(优化的块访问),创建一个变量,数据类型为 DWord,可以看到该变量没有绝对地址,如下图所示。
    的头像 发表于 03-27 16:44 4636次阅读

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

    【导读】博途中不但变量数据类型的隐式转换很好用,而且对于变量Slice(直译:片或部分)寻址也很方便,下面就来说下S7-1200/1500
    的头像 发表于 04-07 10:58 2558次阅读

    S7-1200S7-300的选型区别

    的CPU支持通过信号板来增加IO点数,而S7-300CPU的IO点数是固定的。在硬件组态方面,S7-300和S7-1200的地址都可以由用户手动进行重新分配。
    的头像 发表于 05-04 15:18 1653次阅读
    <b class='flag-5'>S7-1200</b>与<b class='flag-5'>S7</b>-300的选型区别

    S7-1200使用数组实现间接寻址的方法

    S7-1200 从 固件版本 V2.0 开始就支持数组下标使用变量方式,这就意味着数组是最方便的间接寻址的方法,通过改变下标变量实现各式各
    发表于 07-31 09:04 4040次阅读
    <b class='flag-5'>S7-1200</b>使用数组实现间接<b class='flag-5'>寻址</b>的方法