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

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

3天内不再提示

对S7-SCL中的AT指令进行详细讲解

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-02-03 14:53 次阅读

什么是“AT”指令,如何使用?

AT指令是S7-SCL中特有的一个指令,初学者可能会忽略此指令,或者对其理解不够深刻。AT指令在S7-SCL中有着非常重要的地位,很多应用程序都必须使用此指令。下面将对此指令进行详细讲解。

AT指令可以使用户能够以不同的数据类型来访问一个已经声明的变量。此指令类似于高级编程语言中的“继承”概念。此指令有如下特点:

· 特点一:定义仅在块内有效,在接口参数中不出现

· 特点二:在块中可以使用其它数据类型的视图

· 特点三:它只是让另外一些变量继承了某个变量的特性,仅仅数据类型是新的,其它特性相同。

下面将通过具体程序对以上三个特点进行说明,首先定义UDT100,UDT200,大小都为12个字节,但结构不同。

UDT100包括一个DATE_AND_TIME数据类型(8个字节),还包括一个实数(4个字节);UDT200包括6个字(12个字节);在FC2定义输入参数Buffer, Frame1,Frame2:

特点一:定义仅在块内有效,在接口参数中不出现。块内定以的输入参数有3个,但仅在块内有效,在接口参数仅出现Buffer输入参数

084a68d4-a38d-11ed-bfe3-dac502259ad0.png

特点三:它只是让Frame1继承了Buffer的特性,仅仅数据类型是新的,其它特性相同。此处的UDT100长度应小于等于所继承的Buffer大小,否则编译错误

08579946-a38d-11ed-bfe3-dac502259ad0.png

注意:此处的UDT200长度应小于等于所继承的Buffer大小,否则编译错误

08768dba-a38d-11ed-bfe3-dac502259ad0.png

注意:UDT100,UDT200继承了Buffer特性

在OB1中调用FC2,并将一个数组赋值给Buffer输入参数

088dc764-a38d-11ed-bfe3-dac502259ad0.png

特点一:块内定以的输入参数有3个,但仅在块内有效,在接口参数仅出现Buffer输入参数

08a03dae-a38d-11ed-bfe3-dac502259ad0.png

特点二:对于输入参数Buffer得到的数据,可以按照Frame1,或Frame2的格式来寻址。例如可以将 Buffer 的前8 个字节认为是DATA_AND_TIME,送至临时变量TEST_DT中

AT指令应用例子1:在STL中,用户如果希望取得MB0的某一位的数值是非常容易的,例如第3位,直接寻址M0.2就可以了。

而在S7-SCL中,由于其具备高级语言的特点,所以定义的变量的绝对地址一般是不显现的。

因此在STL中简单的操作,在S7-SCL中却复杂起来。但是通过使用AT指令即可解决这个问题。

下图中的例子中,当输入的某个字节,其输出依次为此字节的8个位。

08c25c18-a38d-11ed-bfe3-dac502259ad0.png

AT指令应用例子2:在S7-SCL中,ANY数据类型的使用,经常会伴随着AT指令的使用,下面的例子演示了如何拆分改写ANY数据类型中的内容。程序执行结果相当于:

08d45d3c-a38d-11ed-bfe3-dac502259ad0.png

08e9de8c-a38d-11ed-bfe3-dac502259ad0.png

AT指令在使用当中,还有如下注意事项:

· AT指令用于对某个变量进行其它数据类型的声明时,必须放在此变量的声明语句后面

· AT指令生成的变量不可以初始化

· AT指令用于对某个变量其它数据类型的声明时,占用内存大小要小于等于此变量的长度

· AT指令用于对某个变量其它数据类型的声明时,如下的组合是允许的:

091341d2-a38d-11ed-bfe3-dac502259ad0.png

(1)AT指令用于ANY类型在VAR_OUT中是不允许的

Elementary (基本数据类型包括) :BOOL, BYTE, WORD, DWORD, INT, DINT, DATE, TIME,

S5TIME, CHAR Complex (复杂数据类型包括) :ARRAY, STRUCT, DATE_AND_TIME, STRING

在VASS标准中的应用实例:

pMeldFeldAT TempPointerMsys: STRUCT 变量格式是结构

BYTE0:BYTE; // Byte 0

TYP :BYTE; //Byte 1 Daten/Parametertyp

ANZ :WORD; //Byte 2+3 Laenge der Variablen

DBNR :WORD; //Byte 4+5 DB-Nummer

BZ :DWORD;// Byte 6 故障信息

END_STRUCT;

程序中

TempPointerMsys := Msys; 故障信息号给入变量

故障报警信息

093b2288-a38d-11ed-bfe3-dac502259ad0.png

MeldSend(AufrufNr := 1

,Anz_Meld:= 27

,pMeldFeld:= pMeldFeld.BZ 故障信息号被用来发出

,pMeldAbb := pMeldAbb.BZ

,MeldDB:= WORD_TO_INT(pMeldDBNR.DBNR)

,AenderungsID := AenderungsID

,Integritaet:= Integritaet

,Neustart:= Neustart

); // VOID






审核编辑:刘清

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

    关注

    1

    文章

    41

    浏览量

    11994
  • S7-SCL
    +关注

    关注

    0

    文章

    13

    浏览量

    7682

原文标题:SCL_什么是“AT”指令,如何使用?及其在VASS标准中的应用

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

收藏 人收藏

    评论

    相关推荐

    S7-SCL中文手册

    S7-SCL应用范围S7-SCL(结构化控制语言)是用于SIMATIC S7系列CPU编程的类PASCAL高级语言。PLC无关性认可S7-SCL遵循在IEC 61131-3定义的文本高级语言ST(结构化文本),并且确保其可重
    发表于 10-10 16:19 650次下载

    STM32系列的串口进行详细讲解

    主要是STM32系列的串口进行详细讲解,需要的自行下载
    发表于 06-17 16:48 6次下载

    51单片机汇编语言教程之单片机逻辑与或异或指令详细资料讲解

    本文档的主要内容详细介绍的是51单片机汇编语言教程之单片机逻辑与或异或指令详细资料讲解
    发表于 05-31 16:59 17次下载
    51单片机汇编语言教程之单片机逻辑与或异或<b class='flag-5'>指令</b>的<b class='flag-5'>详细</b>资料<b class='flag-5'>讲解</b>

    ABB机器人的常用指令详细讲解

    本文档的主要内容详细介绍的是ABB机器人的常用指令详细讲解
    发表于 04-24 08:00 5次下载
    ABB机器人的常用<b class='flag-5'>指令</b><b class='flag-5'>详细</b><b class='flag-5'>讲解</b>

    如何使用S7-SCL中的“AT”指令

    将对此指令进行详细讲解。 AT指令可以使用户能够以不同的数据类型来访问一个已经声明的变量。此指令
    的头像 发表于 04-04 18:14 9889次阅读
    如何使用<b class='flag-5'>S7-SCL</b>中的“AT”<b class='flag-5'>指令</b>?

    如何在S7-SCL程序中使用多重背景进行数据块间接寻

    S7-SCL程序中可以使用多重背景,下面的程序列出了正确格式,声明完成后,在程序中即可调用
    的头像 发表于 04-07 17:19 2499次阅读
    如何在<b class='flag-5'>S7-SCL</b>程序中使用多重背景<b class='flag-5'>进行</b>数据块间接寻

    什么是“AT”指令,如何使用?

    AT指令S7-SCL中特有的一个指令,初学者可能会忽略此指令,或者对其理解不够深刻。AT指令S7-S
    的头像 发表于 04-09 15:25 2w次阅读
    什么是“AT”<b class='flag-5'>指令</b>,如何使用?

    S7-SCL程序中如何使用多重背景?

    使用多重背景 S7-SCL程序中可以使用多重背景,下面的程序列出了正确格式,声明完成后,在程序中即可调用: Supply1 : FB10;       //将Supply1定义为FB10类型
    的头像 发表于 04-12 11:20 2129次阅读
    <b class='flag-5'>S7-SCL</b>程序中如何使用多重背景?

    S7-SCL提供了哪些功能?

    在一个S7程序中S7-SCL(程序)块也能够与其他STEP7编程语言所编写的块相结合块可以相互调用。
    的头像 发表于 06-15 14:18 2061次阅读
    <b class='flag-5'>S7-SCL</b>提供了哪些功能?

    S7-SCL编程语言的使用参考资料—S7-SCL中文版.pdf

    S7-SCL编程语言的使用参考资料—S7-SCL中文版.pdf
    发表于 10-18 09:37 0次下载

    SCL与STL的区别是什么?SCL常见问题及解决办法!

    OB,FC,FB,DB,UDT。在 S7 程序中,S7-SCL 块可以与其它STEP7 编程语言生成的块互相调用。S7-SCL 可以被编译成 STL, S7-SCL 生成的块也可以作为库文件被其它语言引用。由于
    的头像 发表于 01-17 14:27 2209次阅读

    S7-SCL提供了哪些功能 结构化S7-SCL程序的设计

    在一个S7程序中S7-SCL(程序)块也能够与其他STEP7编程语言所编写的块相结合块可以相互调用。S7-SCL块也可以储存在库中并被其他语言使用。
    发表于 01-31 10:10 695次阅读

    SCL常见问题:SCL与STL的区别

    S7-SCL 程序加密与 STL 程序加密方法几乎一样,用户可以在程序中加入关键字:KNOW_HOW_PROTECT,再进行编译即可,下图中的 FC1 在编译后,即出现了加锁保护的图标 。
    发表于 02-01 11:35 2431次阅读

    西门子S7 SCL编程知识

    软件包后, 通过点击 Windows 菜单 开始->Simatic->Documentation->English 可以阅读到名称为“S7-SCL for S7-300 and S7-400”的 PDF 手册。此手册共分为 16 个章节,其详细
    发表于 04-19 17:54 7次下载

    SIMATIC S7-1500 PLC S7-SCL简介

    S7-SCL(Structured Control Language)结构化控制语言是一种类似于计算机高级语言的编程方式,它的语法规范接近计算机中的PASCAL语言。
    的头像 发表于 11-20 09:17 631次阅读