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

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

3天内不再提示

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

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2021-04-04 18:14 次阅读

什么是“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输入参数

50447f60-8cfd-11eb-8b86-12bb97331649.png

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

5069ff6a-8cfd-11eb-8b86-12bb97331649.png

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

50d71c6c-8cfd-11eb-8b86-12bb97331649.png

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

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

5112442c-8cfd-11eb-8b86-12bb97331649.png

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

515d409e-8cfd-11eb-8b86-12bb97331649.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个位。

519a1d5c-8cfd-11eb-8b86-12bb97331649.png

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

51cef2e8-8cfd-11eb-8b86-12bb97331649.png

523e2302-8cfd-11eb-8b86-12bb97331649.png

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

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

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

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

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

52c50796-8cfd-11eb-8b86-12bb97331649.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标准中的应用实例:

pMeldFeld AT 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; 故障信息号给入变量

故障报警信息

530c0c22-8cfd-11eb-8b86-12bb97331649.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

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

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

责任编辑:haq

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

    关注

    2

    文章

    189

    浏览量

    65117
  • S7-SCL
    +关注

    关注

    0

    文章

    13

    浏览量

    7719

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

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

收藏 人收藏

    评论

    相关推荐

    西门子1200移位指令怎么移位怎么灯都亮了

    西门子S7-1200 PLC是一款广泛应用于工业自动化领域的控制器,其编程环境为TIA Portal。在S7-1200,移位指令(Shift Instruction)是一种基本的位操
    的头像 发表于 08-16 17:10 433次阅读

    S7-200指令

    S7-200库文件是西门子旗下同款编程软件的可调用数据库,可安装也可直接覆盖进行使用。常用的数据库,简便方便调用。在PLC调试节省时间。
    发表于 07-23 12:29 4次下载

    西门子S7-1200 PLC的指令介绍

    了最新的技术,为用户提供了更为高效、灵活的控制方案。本文将详细介绍S7-1200 PLC的指令系统,包括其指令分类、具体指令功能以及在实际应用
    的头像 发表于 06-18 14:52 2162次阅读

    西门子博途中的LAD、FBD与SCL编程

    选择要在其后插入新程序段的程序段。 在快捷菜单,选择命令“插入 STL 程序段”(Insert STL network) 或“插入 SCL 程序段” (Insert SCL network)。
    发表于 01-16 09:33 2453次阅读
    西门子博途中的LAD、FBD与<b class='flag-5'>SCL</b>编程

    STEP7博图中的SCL设置和属性解析

    SCL V11,可以检查“扩展状态信息”。与SCL V5.x相反,始终创建最小化的调试信息,这允许进行基本调试!
    的头像 发表于 01-02 09:58 1699次阅读
    STEP<b class='flag-5'>7</b>博图中的<b class='flag-5'>SCL</b>设置和属性解析

    SIMATIC S7-1500 PLC S7-SCL SCL块及应用

    函数和函数块在西门子的大中型PLC编程,应用十分广泛,前介绍过函数和函数块
    的头像 发表于 12-15 16:18 919次阅读
    SIMATIC <b class='flag-5'>S7</b>-1500 PLC <b class='flag-5'>S7-SCL</b> <b class='flag-5'>SCL</b>块及应用

    使用PUT和GET指令通过S7连接在两个CPU之间交换数据

    使用 PUT 和 GET 指令通过 S7 连接在两个 CPU 之间交换数据。
    的头像 发表于 12-14 16:53 9772次阅读
    使用PUT和GET<b class='flag-5'>指令</b>通过<b class='flag-5'>S7</b>连接在两个CPU之间交换数据

    SIMATIC S7-1500 PLC S7-SCL应用举例

    函数和函数块在西门子的大中型PLC编程,应用十分广泛,前介绍过函数和函数块,其编程采用的是LAD语言,而本节采用SCL语言编程,以下仅用一个例子介绍函数,函数块使用方法也类似。
    的头像 发表于 12-11 09:17 663次阅读
    SIMATIC <b class='flag-5'>S7</b>-1500 PLC <b class='flag-5'>S7-SCL</b>应用举例

    s7-200字符串赋值指令

    S7-200的字符串赋值指令,包括其语法、使用方法、注意事项等,以帮助读者更好地理解和应用该指令。 首先,我们来了解一下S7-200
    的头像 发表于 12-08 14:44 1848次阅读

    SIMATIC S7-1500 PLC S7-SCL SCL块详解

    函数和函数块在西门子的大中型PLC编程,应用十分广泛,前介绍过函数和函数块,其编程采用的是LAD语言,而本节采用SCL语言编程,以下仅用一个例子介绍函数,函数块使用方法也类似。
    的头像 发表于 12-06 09:17 888次阅读
    SIMATIC <b class='flag-5'>S7</b>-1500 PLC <b class='flag-5'>S7-SCL</b> <b class='flag-5'>SCL</b>块详解

    SIMATIC S7-1500 PLC S7-SCL寻址详解

    寻址可分为直接寻址和间接寻址,以下分别介绍。
    的头像 发表于 12-04 09:29 2589次阅读
    SIMATIC <b class='flag-5'>S7</b>-1500 PLC <b class='flag-5'>S7-SCL</b>寻址详解

    SIMATIC S7-1500 PLC S7-SCL赋值详解

    通过赋值,一个变量接受另一个变量或者表达式的值。在赋值运算符“;=”左边的是变量,该变量接受右边的地址或者表达式的值。
    的头像 发表于 11-29 09:24 2963次阅读

    SIMATIC S7-1500 PLC S7-SCL表达式详解

    表达式为了计算一个终值所用的公式,它由地址(变量)和运算符组成。表达式的规则如下。
    的头像 发表于 11-28 09:36 987次阅读
    SIMATIC <b class='flag-5'>S7</b>-1500 PLC <b class='flag-5'>S7-SCL</b>表达式详解

    SIMATIC S7-1500 PLC S7-SCL简介

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

    西门子S7-200与S7-1500的通信技术分析

    .在指令块下方的“属性"对话框设置“连接参数”(以PUT指令块为例):选择"未指定",TIA软件会自动创建一个连接(例:“S7_连接_1”),自动分配连接ID,并自动
    发表于 11-19 15:21 3217次阅读
    西门子<b class='flag-5'>S7</b>-200与<b class='flag-5'>S7</b>-1500的通信技术分析