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

    文章

    196

    浏览量

    66068
  • S7-SCL
    +关注

    关注

    0

    文章

    13

    浏览量

    7849

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    plc以太网通讯模块实现:S7-200与S7-1200借PPI助力农业自动化发展

    一:S7-200与S71200 在某大型食品加工厂的生产线升级项目中,西门子S7-200与S7-1200的通讯难题一度成为制约生产效率提升的瓶颈。S
    的头像 发表于 08-14 09:41 ?98次阅读
    plc以太网通讯模块实现:<b class='flag-5'>S7</b>-200与<b class='flag-5'>S7</b>-1200借PPI助力农业自动化发展

    MPI 转以太网模块案例:西门子 S7-300PLC 借此与 S7-1200、触摸屏及 ModbusRTU 变频器通讯

    一、项目背景与痛点 在新能源储能系统集成场景,某锂电池生产线采用西门子S7-300PLC作为本地控制器,通过MPI/DP接口连接西门子TP1200Comfort触摸屏实现本地操作。随着智能化升级
    的头像 发表于 07-30 10:02 ?124次阅读
    MPI 转以太网模块案例:西门子 <b class='flag-5'>S7</b>-300PLC 借此与 <b class='flag-5'>S7</b>-1200、触摸屏及 ModbusRTU 变频器通讯

    S7-300借MPI转以太网联控S7-1200、HMI及Modbus变频器方案

    在新能源储能系统集成场景,某锂电池生产线采用西门子S7-300PLC作为本地控制器,通过MPI/DP接口连接西门子TP1200Comfort触摸屏实现本地操作。随着智能化升级需求,需将S7
    的头像 发表于 07-26 16:20 ?292次阅读
    <b class='flag-5'>S7</b>-300借MPI转以太网联控<b class='flag-5'>S7</b>-1200、HMI及Modbus变频器方案

    NVME控制器设计之指令控制

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

    S7在win10安装步骤

    S7在win10安装步骤,经过多次测试,均成功。
    发表于 04-10 18:09 ?0次下载

    S7-1200与欧姆龙智能仪表Modbus通信案例

    从站为例,使用SCL编程语言编写S7-1200实现对欧姆龙智能温控仪表的当前温度值的读取和修改设定温度值。
    的头像 发表于 03-27 17:25 ?918次阅读
    <b class='flag-5'>S7</b>-1200与欧姆龙智能仪表Modbus通信案例

    东风本田S7正式下线

    2月25日,东风本田S7下线活动在东风本田新能源工厂新能源总装科举行。
    的头像 发表于 02-26 10:19 ?526次阅读

    使用SCL编写FIFO功能块

    一、 导读? ? 前几天一位搞电气的朋友问S7-1200如何做个先入先出的功能,说原来用S7-200SMART的时候有填表指令和FIFO指令
    的头像 发表于 02-09 10:27 ?723次阅读
    使用<b class='flag-5'>SCL</b>编写FIFO功能块

    自定义Modbus通信块指令的搭建教程

    Modbus 通信是一种应用广泛的通信协议 ,在变频器、智能仪表或是其他的一些智能设备上应用的一种通用通信协议,本文以S7-200SMART系列PLC作为Modbus主站,以西门子V20变频器
    的头像 发表于 01-20 10:37 ?1283次阅读
    自定义Modbus通信块<b class='flag-5'>指令</b>的搭建教程

    RISC-V基础指令详解

    RISC-V定义了六种指令类型,其中包括 R型指令 : 用于寄存器与寄存器之间算数运算的指令 I型指令 : 用于寄存器和立即数算术运算和读
    发表于 12-29 18:47

    西门子S7-300 PLC的详细介绍

    S7-300是德国西门子公司生产的PLC系列产品之一,以下是关于S7-300 PLC的详细介绍: 一、产品特性 模块化结构:西门子S7-300 PLC采用模块化设计,用户可以根据实际需求选择
    的头像 发表于 12-10 18:18 ?2105次阅读
    西门子<b class='flag-5'>S7</b>-300 PLC的详细介绍

    西门子PLC S7-1500系列介绍

    西门子PLCS7-1500系列是西门子自动化领域中的一款重要产品,它以其卓越的性能、强大的功能和高度的灵活性,在工业自动化控制系统占据了一席之地。本文将详细介绍西门子PLC S7-1500系列
    的头像 发表于 12-09 18:23 ?3125次阅读
    西门子PLC <b class='flag-5'>S7</b>-1500系列介绍

    s7-200_SMART系统手册

    电子发烧友网站提供《s7-200_SMART系统手册.pdf》资料免费下载
    发表于 10-21 10:50 ?13次下载

    英飞凌推出CoolMO S7T和S7TA SJ MOSFET

    英飞凌推出的CoolMOS? S7T和S7TA SJ MOSFET,集成了先进的温度传感器技术,专为工业和汽车领域设计,显著提升了结温测量的精准度与稳定性。这一创新不仅简化了温度监测流程,还增强了功能安全性,为低频大电流开关应用树立了新标杆。
    的头像 发表于 09-03 14:51 ?849次阅读

    新品 | 集成温度传感器工业和汽车级CoolMOS? S7T和S7TA SJ MOSFET

    新品集成温度传感器工业和汽车级CoolMOSS7T和S7TASJMOSFET集成温度传感器的CoolMOSS7T和S7TA提高了结温测量的准确性和稳健性,测温简单,并实现了功能安全。该
    的头像 发表于 08-30 12:24 ?764次阅读
    新品 | 集成温度传感器工业和汽车级CoolMOS? <b class='flag-5'>S7</b>T和<b class='flag-5'>S7</b>TA SJ MOSFET