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

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

3天内不再提示

S7-1500中各种语言结构的移植

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-06-25 15:36 次阅读

在 S7-1500 中,统一了所有编程语言的间接寻址选项,因此在移植过程中将部分转换 S7-300/400 中支持的间接寻址。

下表简要列出了转换的选项。下面详细介绍了各种语言结构的移植。

间接寻址 S7-300/400 S7-1500
间接寻址 DB "BLOCK_DB" 数据类型 “DB_ANY”数据类型
间接寻址 DB 变量 #block.%DBW3 “PEEK”/“POKE”指令
WORD_TO_BLOCK_DB(#myWord).%DBW3 “PEEK”/“POKE”指令
#block.DW(IDX := #myInt) “PEEK”/“POKE”指令
WORD_TO_BLOCK_DB(#myWord).DW(IDX:=#myInt) “PEEK”/“POKE”指令
%DB1.DW(IDX :=#myInt) “PEEK”/“POKE”指令
间接寻址 I/O QB(IDX :=#myInt):P “PEEK”/“POKE”指令
间接寻址 PLC 变量 IX(IDX :=#myInt1,Bit:=#myInt2) “PEEK”/“POKE”指令
QB(IDX :=#myInt) “PEEK”/“POKE”指令
MW(IDX :=#myInt) “PEEK”/“POKE”指令

"BLOCK_DB" 数据类型到 "DB_ANY" 的移植

"BLOCK_DB" 数据类型在 S7-1500 中不可用。这种数据类型的变量将通过移植转换为 "DB_ANY" 数据类型。"BLOCK_DB_TO_WORD" 和 "WORD_TO_BLOCK_DB" 转换函数将通过移植转换为 "UINT_TO_WORD(DB_ANY_TO_UINT)" 和 "UINT_TO_DB_ANY(WORD_TO_UINT)"。

以下举例说明如何移植 "BLOCK_DB" 数据类型。

在第一个表中,为移植前的三个程序段:

SCL
#myBlock //数据类型 BLOCK_DB;
//...
#myWord :=BLOCK_DB_TO_WORD(#myBlock);
//...
#myBlockDB := WORD_TO_BLOCK_DB(#myWord);

在第二个表中,为移植后的三个程序段:

SCL
#myBlock //Datentyp DB_Any;
//...
#myWord := UINT_TO_WORD(DB_ANY_TO_UINT(#myBlock));
//...
#myDBANY:= UINT_TO_DB_ANY(WORD_TO_UINT(#myWord));

移植 DB 变量的间接寻址

在 S7-1500 中,通过“PEEK”/“POKE”指令间接指定数据块或 DB 变量。在移植过程中将自动转换为间接寻址。

以下举例说明了如何移植 DB 变量的间接寻址。

在第一个表中,为移植前的程序段:

SCL
#myWord := %DB1.DW(IDX :=#myInt);
//...
#myBool := %DB1.DX(IDX :=#myByteOffset,Bit:=#myBitOffset);
//...
%DB1.DW(IDX := #myInt) := 12;
//...

在第二个表中,为移植后的程序段:

SCL
#myWord := PEEK_WORD(area:=16#84, dbNumber:=1, byteOffset:=#myInt);
//...
#myBool:=PEEK_BOOL(area:=16#84, dbNumber:=1, byteOffset:=#myByteOffset, bitOffset:=#myBitOffset);
//...
POKE(area:=16#84,dbNumber:=1,byteOffset:=#myInt,value:=12);
//...

移植 PLC 变量的间接寻址

在 S7-1500 中,通过“PEEK”/“POKE”指令间接指定 PLC 变量。在移植过程中将自动转换为间接寻址。

以下举例说明了如何移植 DB 变量的间接寻址。

在第一个表中,为移植前的程序段:

SCL
#myWord := MW(IDX := #myInt);

在第二个表中,为移植后的程序段:

SCL
#myWord := PEEK(area:=16#83,dbNumber:=0,byteOffset:=#myInt);

审核编辑:汤梓红

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

    关注

    5006

    文章

    13084

    浏览量

    461208
  • 移植
    +关注

    关注

    1

    文章

    376

    浏览量

    28089
  • 编程语言
    +关注

    关注

    10

    文章

    1927

    浏览量

    34532
  • S7-1500
    +关注

    关注

    3

    文章

    300

    浏览量

    6264

原文标题:西门子博途:在 SCL 中间接寻址

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

收藏 人收藏

    评论

    相关推荐

    基于S7-1500 CPU集成PN口的Modbus TCP通信快速入门

    S7-1500 PLC需要通过TIA Portal博途软件进行组态配置,从TIA Portal V12SP1开始软件增加了S7-1500的Modbus TCP块库,用于S7-1500
    发表于 11-21 17:05 5019次阅读

    S7-1500系统架构及特点

    S7-1500 的数据管理系统,提供两种不同的块访问机制: 优化访问、 非优化访问(兼容 S7-300/400),S7-1500 FW V1 及以上版本
    发表于 10-10 11:40 29次下载
    <b class='flag-5'>S7-1500</b>系统架构及特点

    西门子S7-1200 和 S7-1500 的编程指南pdf下载

    西门子S7-1200 和 S7-1500 的编程指南
    发表于 03-27 15:15 293次下载

    西门子S7-1500凭什么秒杀S7-300/400?

    西门子S7-1500作为西门子迄今为止功能最强大、性价比最高的PLC,得到了广大客户关注,今天与大家分享西门子西门子S7-1500S7-300、S7-400相PK 的几点优势以及型谱
    的头像 发表于 04-27 14:16 2.5w次阅读
    西门子<b class='flag-5'>S7-1500</b>凭什么秒杀<b class='flag-5'>S7</b>-300/400?

    SIMATIC S7-1500 T-CPU机器制造的灵活高效

    SIMATIC S7-1500 T-CPU机器制造的灵活高效
    发表于 01-20 09:37 1次下载

    西门子S7-1200和S7-1500编程风格指南

    西门子S7-1200和S7-1500编程风格指南分享
    发表于 08-17 17:30 21次下载

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

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

    S7-1500S7-1500之间S7通信

    使用 STEP7 V14 在同一个项目中,新建两个S7-1500站点,然后做 S7 通讯。
    的头像 发表于 11-23 09:53 2846次阅读

    S7-1500 CPU支持与其它S7-1500 CPU进行直接数据交换

    从固件版本 V2.8 开始,S7-1500 CPU 支持与其它 S7-1500 CPU 进行直接数据交换。在直接数据交换的情况下,S7-1500 CPU 将 I/O 区域中的循环用户数据提供给一个或
    的头像 发表于 11-29 09:53 3916次阅读

    SIMATIC S7-1500的Profibus DP通讯

    SIMATIC S7-1500的Profibus DP通讯
    的头像 发表于 05-04 15:20 1751次阅读
    SIMATIC <b class='flag-5'>S7-1500</b>的Profibus DP通讯

    西门子S7-1500 之间 S7 通信

    任务: S7-1500 CPU Clinet 将通讯数据区 DB1 块的 10 个字节的数据发送到 S7-1500 CPU server 的接收数据区 DB1 块
    的头像 发表于 05-29 14:04 5527次阅读
    西门子<b class='flag-5'>S7-1500</b> 之间 <b class='flag-5'>S7</b> 通信

    S7-1500之间S7通信实例

    S7-1500 的 PROFINET 通信口可以做 S7 通信的服务器端或客户端。S7-1500 支持 S7单边通信,仅需在客户端单边组态连接和编程,而服务器端只准备好通信的数据就行。
    的头像 发表于 06-01 09:25 3061次阅读
    <b class='flag-5'>S7-1500</b>之间<b class='flag-5'>S7</b>通信实例

    S7-1200/S7-1500与精简面板仿真过程的步骤

    S7-1200/S7-1500与精简面板仿真有两个需要注意的问题。
    的头像 发表于 08-23 10:45 1674次阅读
    <b class='flag-5'>S7</b>-1200/<b class='flag-5'>S7-1500</b>与精简面板仿真过程的步骤

    S7-1500数据块:优化DB与非优化DB的区别有哪些?

    可能是为了适应S7-1500操作系统的新功能同时还要保持原有操作习惯的原因,相对于S7-300/400,S7-1500数据块功能和参数更多
    的头像 发表于 09-08 14:18 2191次阅读
    <b class='flag-5'>S7-1500</b>数据块:优化DB与非优化DB的区别有哪些?

    S7-1500冗余 PLC 1500R使用入门

    电子发烧友网站提供《S7-1500冗余 PLC 1500R使用入门.pdf》资料免费下载
    发表于 08-13 09:12 1次下载