吴忠躺衫网络科技有限公司

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

    瀏覽量

    12181
  • S7-SCL
    +關注

    關注

    0

    文章

    13

    瀏覽量

    7758

原文標題:SCL_什么是“AT”指令,如何使用?及其在VASS標準中的應用

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    SIMATIC S7-1500 PLC S7-SCL SCL塊詳解

    函數和函數塊在西門子的大中型PLC編程,應用十分廣泛,前介紹過函數和函數塊,其編程采用的是LAD語言,而本節采用SCL語言編程,以下僅用一個例子介紹函數,函數塊使用方法也類似。
    的頭像 發表于 12-06 09:17 ?1098次閱讀
    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應用舉例

    函數和函數塊在西門子的大中型PLC編程,應用十分廣泛,前介紹過函數和函數塊,其編程采用的是LAD語言,而本節采用SCL語言編程,以下僅用一個例子介紹函數,函數塊使用方法也類似。
    的頭像 發表于 12-11 09:17 ?801次閱讀
    SIMATIC <b class='flag-5'>S7</b>-1500 PLC <b class='flag-5'>S7-SCL</b>應用舉例

    S7-SCL中文手冊

    S7-SCL應用范圍S7-SCL(結構化控制語言)是用于SIMATIC S7系列CPU編程的類PASCAL高級語言。PLC無關性認可S7-SCL遵循在IEC 61131-3定義的文本高
    發表于 10-10 16:19 ?655次下載

    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”指令,如何使用? AT指令S7-SCL特有的一個指令,初學者可能會忽略此指令
    的頭像 發表于 04-04 18:14 ?1.1w次閱讀
    如何使用<b class='flag-5'>S7-SCL</b><b class='flag-5'>中</b>的“AT”<b class='flag-5'>指令</b>?

    如何在S7-SCL程序中使用多重背景進行數據塊間接尋

    S7-SCL程序可以使用多重背景,下面的程序列出了正確格式,聲明完成后,在程序即可調用
    的頭像 發表于 04-07 17:19 ?2989次閱讀
    如何在<b class='flag-5'>S7-SCL</b>程序中使用多重背景<b class='flag-5'>進行</b>數據塊間接尋

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

    AT指令S7-SCL特有的一個指令,初學者可能會忽略此指令,或者對其理解不夠深刻。AT指令
    的頭像 發表于 04-09 15:25 ?2.3w次閱讀
    什么是“AT”<b class='flag-5'>指令</b>,如何使用?

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

    使用多重背景 S7-SCL程序可以使用多重背景,下面的程序列出了正確格式,聲明完成后,在程序即可調用: Supply1 : FB10; ????? //將Supply1定義為FB10類型
    的頭像 發表于 04-12 11:20 ?2629次閱讀
    <b class='flag-5'>S7-SCL</b>程序<b class='flag-5'>中</b>如何使用多重背景?

    S7-SCL提供了哪些功能?

    在一個S7程序S7-SCL(程序)塊也能夠與其他STEP7編程語言所編寫的塊相結合塊可以相互調用。
    的頭像 發表于 06-15 14:18 ?2369次閱讀
    <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 可以被編譯成
    的頭像 發表于 01-17 14:27 ?3253次閱讀

    S7-SCL提供了哪些功能 結構化S7-SCL程序的設計

    在一個S7程序S7-SCL(程序)塊也能夠與其他STEP7編程語言所編寫的塊相結合塊可以相互調用。S7-SCL塊也可以儲存在庫
    發表于 01-31 10:10 ?1076次閱讀

    SCL常見問題:SCL與STL的區別

    S7-SCL 程序加密與 STL 程序加密方法幾乎一樣,用戶可以在程序中加入關鍵字:KNOW_HOW_PROTECT,再進行編譯即可,下圖中的 FC1 在編譯后,即出現了加鎖保護的圖標 。
    發表于 02-01 11:35 ?3348次閱讀

    西門子S7 SCL編程知識

    軟件包后, 通過點擊 Windows 菜單 開始->Simatic->Documentation->English 可以閱讀到名稱為“S7-SCL for S7-300 and S7-400”的 PDF 手冊。此手冊共分為
    發表于 04-19 17:54 ?11次下載

    SIMATIC S7-1500 PLC S7-SCL簡介

    S7-SCL(Structured Control Language)結構化控制語言是一種類似于計算機高級語言的編程方式,它的語法規范接近計算機的PASCAL語言。
    的頭像 發表于 11-20 09:17 ?1131次閱讀
    网络百家乐官网软件真假| 百家乐代理网址| 番禺百家乐官网电器店| 澳门百家乐有限公司| 大发888注册官方网站| 满洲里市| 百家乐官网第三张规则| 威尼斯人娱乐城惊喜| 石景山区| 百家乐手机软件| 大发888玩哪个能赢钱| 百家乐官网官方游戏| 太阳城百家乐手机投注| 香港六合彩资料大全| 长方形百家乐官网筹码| 百家乐怎么看大小| 赌场里的美少年| 首席百家乐官网的玩法技巧和规则 | 金百家乐官网的玩法技巧和规则 | 老钱庄百家乐的玩法技巧和规则| 涂山国际娱乐城| 为什么百家乐官网玩家越来越多选择网上百家乐官网 | 大发888怎么样| 百家乐官网玩揽法大全| 福布斯百家乐的玩法技巧和规则| 百家乐官网最低下注| 百家乐大小是什么| 大玩家娱乐城开户| 百家乐筹码素材| 大发扑克下载| 高级百家乐官网桌布| 德州扑克单机版下载| 百家乐官网侧牌器| 大发888dafa8668| 送彩金百家乐官网的玩法技巧和规则 | 百家乐官网哪家有优惠| 百家乐高命中投注| 大同县| 极速百家乐真人视讯| 百家乐官网15人桌子| 百家乐游戏介绍与分析|