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

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

3天内不再提示

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

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2021-04-09 15:25 24121次阅读

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

c2e3e0ee-9417-11eb-8b86-12bb97331649.png

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

c2ec9734-9417-11eb-8b86-12bb97331649.png

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

c306c46a-9417-11eb-8b86-12bb97331649.png

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

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

c31efbfc-9417-11eb-8b86-12bb97331649.png

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

c347a6f6-9417-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个位。

c366d79c-9417-11eb-8b86-12bb97331649.png

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

c3abf2c8-9417-11eb-8b86-12bb97331649.png

c3c3b3f4-9417-11eb-8b86-12bb97331649.png

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

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

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

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

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

c3f58ba4-9417-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标准中的应用实例:

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

故障报警信息

c41efb56-9417-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

-------------------------------END--------------------------

责任编辑:lq

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

    关注

    11

    文章

    1865

    浏览量

    32750
  • 数据类型
    +关注

    关注

    0

    文章

    236

    浏览量

    13754
  • SCL
    SCL
    +关注

    关注

    1

    文章

    240

    浏览量

    17397

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

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

收藏 人收藏

    相关推荐

    NVME控制器设计之指令控制

    指令控制模块由一个指令信息缓存, 一个指令组装状态机和一个 ID 池组成。 指令信息缓存中存放着由系统控制模块写入的待处理指令信息;
    的头像 发表于 04-24 10:22 56次阅读
    NVME控制器设计之<b class='flag-5'>指令</b>控制

    CPU的各种指令和执行流程

    在集成电路设计中,CPU的指令是指计算机中央处理单元(CPU)用来执行计算任务的基本操作指令集。这些指令是CPU能够理解并执行的二进制代码,它们在计算机内部由硬件控制并按顺序执行,从而实现计算、控制
    的头像 发表于 04-18 11:24 246次阅读

    Erp指令能效

    ErP指令EC244/2009、EC245/2009、EU1194/2012和能效标签指令EU874/2012已经实行多年,欧盟委员会在近3年通过参照不断改进的照明产品技术、环境和经济因素以及实际
    的头像 发表于 11-20 23:57 406次阅读
    Erp<b class='flag-5'>指令</b>能效

    plc基本指令的应用有哪些

    PLC(可编程逻辑控制器)的基本指令是PLC编程语言的基本元素,用于描述PLC如何根据输入信号的状态控制输出信号的变化,从而实现对机械设备的控制。PLC的基本指令涵盖了逻辑运算、定时控制、计数
    的头像 发表于 10-21 17:16 2065次阅读

    处理器指令的获取过程

    微处理器指令的获取是计算机执行程序过程中的关键环节,它决定了微处理器如何对数据和指令进行处理。以下将详细阐述微处理器指令的获取过程,包括指令的来源、存储位置、读取方式以及相关的硬件和软
    的头像 发表于 10-05 15:16 726次阅读

    PLC指令的简要说明

    PLC(可编程逻辑控制器)的指令虽然因不同的制造商和型号而有所差异,但有一些指令是相对比较通用的。
    的头像 发表于 09-18 14:15 1094次阅读

    复杂指令集和精简指令集有什么区别

    复杂指令集(CISC,Complex Instruction Set Computer)和精简指令集(RISC,Reduced Instruction Set Computer)是微处理器设计中
    的头像 发表于 08-22 11:00 5008次阅读

    三菱plc累加指令怎么用

    三菱PLC(Programmable Logic Controller,可编程逻辑控制器)是工业自动化领域常用的一种控制器。累加指令是PLC编程中的一种基本指令,用于对数据进行累加操作。在三菱PLC
    的头像 发表于 06-20 11:34 4917次阅读

    三菱plc常用指令使用详解

    特点。本文将详细介绍三菱PLC的常用指令及其使用方法。 基本指令 1.1. LD(Load,装载)指令 LD指令用于将输入信号加载到PLC内部的存储器中。其基本格式为: LD X0 其
    的头像 发表于 06-20 10:45 8577次阅读

    三菱plc常开指令是什么

    菱PLC中,常开指令是一种基本的逻辑指令,用于实现电路的接通和断开。 常开指令的定义 常开指令,也称为常开触点或常开继电器,是一种在PLC程序中实现电路接通的基本逻辑
    的头像 发表于 06-20 10:44 2208次阅读

    三菱PLCfx3U主控指令使用

    三菱PLC FX3U是一款功能强大的小型控制器,广泛应用于工业自动化领域。其主控指令是实现程序控制的核心,对于编程人员来说,熟练掌握这些指令至关重要。本文将详细介绍三菱PLC FX3U的主控指令
    的头像 发表于 06-20 09:42 3271次阅读

    三菱PLC传送指令的用法

    三菱PLC(可编程逻辑控制器)在工业自动化领域中扮演着至关重要的角色。其中,传送指令(MOV)作为PLC编程中的基础指令之一,其正确使用对于实现数据的准确、高效传输至关重要。本文将详细讲解三菱PLC传送指令(MOV)的用法,包括
    的头像 发表于 06-18 09:41 5614次阅读

    abb机器人常用指令大全

    ABB机器人是一种广泛应用于工业自动化领域的智能设备,其指令系统丰富多样,能够满足各种复杂场景的需求。 基本指令 1.1 Move指令 Move指令是ABB机器人最基本的运动
    的头像 发表于 06-17 09:35 9552次阅读

    PLC中SFTL指令的用法

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

    plc控制伺服电机的指令有哪些

    PLC(可编程逻辑控制器)是一种广泛应用于工业自动化领域的控制设备。伺服电机作为执行元件,可以通过PLC进行精确控制。以下是关于PLC控制伺服电机的指令的详细介绍。 概述 PLC控制伺服电机
    的头像 发表于 06-12 11:39 3203次阅读