1 如何使用S7-SCL中的“AT”指令?-德赢Vwin官网 网
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

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

    关注

    2

    文章

    192

    浏览量

    65202
  • S7-SCL
    +关注

    关注

    0

    文章

    13

    浏览量

    7733

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    S7-200指令

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

    S7协议读取西门子S7-200 Smart PLC数据

    西门子S7-200 Smart PLC因其稳定性和易用性而广泛应用。通过使用S7协议,可以实现对PLC数据的高效读取和控制。本文将详细介绍如何使用S7协议读取西门子S7-200 Sma
    的头像 发表于 07-11 11:55 5640次阅读
    <b class='flag-5'>S7</b>协议读取西门子<b class='flag-5'>S7</b>-200 Smart PLC数据

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

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

    PLCSFTL指令的用法

    在工业自动化控制系统,PLC(Programmable Logic Controller,可编程逻辑控制器)扮演着至关重要的角色。PLC通过执行各种指令来控制设备的运行,其中SFTL(Shift
    的头像 发表于 06-15 17:48 3274次阅读

    RISC-V 指令概况

    数字段总是符号扩展,符号位总是在指令的最高位,这意味着可能成为关键路径的立即数符号扩展可以在指令解码之前进行。 指令格式类型,对应的指令
    发表于 06-11 05:05

    数控铣床的s指令是速度的指定参数吗

    数控铣床是一种高度自动化的机床,它通过数控系统控制机床的运动和加工过程。数控铣床广泛应用于模具制造、机械加工、航空航天等领域。在数控铣床的操作S指令是一个非常重要的参数,它与速度密切相关。本文将
    的头像 发表于 06-07 11:10 1072次阅读

    CY8C4025LQI在程序调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?

    。 根据SCB数据手册指示,在EZI2C模块设置勾选 terminial选项,并设置为Open-Drain-Drives-Low 在程序调用以下函数,通过示波器观察SCL引脚波形,无法将pin0.4(
    发表于 05-31 07:39

    华为智界S7汽车今日开启海量交付

    余承东曾在月末的微博透露,多台智界 S7 已从生产线驶出,正赶赴推送给用户的途中。该车款由华为与奇瑞联手打造,去年 11 月正式上市,共推出四种型号——智界 S7 Pro、智界 S7
    的头像 发表于 04-11 16:22 724次阅读

    西门子SCL PLC高级编程教程

    借助SCL,可以简化控制技术领域复杂的计算、算法、数据管理和数据组织等编程工作。
    发表于 01-22 10:27 708次阅读
    西门子<b class='flag-5'>SCL</b> PLC高级编程教程

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

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

    PLCMove指令可以实现什么功能?

     Move指令是PLC编程的基本指令之一,常用于在程序对数据进行移动和传输。在使用Move指令时,需要注意数据类型、数据长度和地址的确定
    发表于 01-10 15:13 1.1w次阅读

    西门子S7-1200与S7-300PLC之间的区别有哪些?

    S7-1200作为新推出的紧凑型控制器,其产品定位在原有的SIMATIC S7-200和S7-300之间,它与S7-300的区别主要体现在硬件、通信、工程、存储器、功能块、计数器、定时
    的头像 发表于 01-10 10:54 1057次阅读
    西门子<b class='flag-5'>S7</b>-1200与<b class='flag-5'>S7</b>-300PLC之间的区别有哪些?

    如何在S7-200 SMART CPU断电重启后保持运动控制的当前位置值?

    S7-200 SMART 断电重启后由于初始化指令的执行,当前位置会复位为0。要使S7-200 SMART运动控制的当前位置值在CPU断电重启后依然保持,可以通过以下的编程来实现。
    的头像 发表于 01-10 10:28 2085次阅读
    如何在<b class='flag-5'>S7</b>-200 SMART CPU断电重启后保持运动控制的当前位置值?

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

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