0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 來源:機(jī)器人及PLC自動(dòng)化應(yīng)用 ? 作者:機(jī)器人及PLC自動(dòng)化 ? 2021-04-04 18:14 ? 次閱讀

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

AT指令是S7-SCL中特有的一個(gè)指令,初學(xué)者可能會(huì)忽略此指令,或者對(duì)其理解不夠深刻。AT指令在S7-SCL中有著非常重要的地位,很多應(yīng)用程序都必須使用此指令。下面將對(duì)此指令進(jìn)行詳細(xì)講解。

AT指令可以使用戶能夠以不同的數(shù)據(jù)類型來訪問一個(gè)已經(jīng)聲明的變量。此指令類似于高級(jí)編程語言中的“繼承”概念。此指令有如下特點(diǎn):

· 特點(diǎn)一:定義僅在塊內(nèi)有效,在接口參數(shù)中不出現(xiàn)

· 特點(diǎn)二:在塊中可以使用其它數(shù)據(jù)類型的視圖

· 特點(diǎn)三:它只是讓另外一些變量繼承了某個(gè)變量的特性,僅僅數(shù)據(jù)類型是新的,其它特性相同。

下面將通過具體程序?qū)σ陨先齻€(gè)特點(diǎn)進(jìn)行說明,首先定義UDT100,UDT200,大小都為12個(gè)字節(jié),但結(jié)構(gòu)不同。UDT100包括一個(gè)DATE_AND_TIME數(shù)據(jù)類型(8個(gè)字節(jié)),還包括一個(gè)實(shí)數(shù)(4個(gè)字節(jié));UDT200包括6個(gè)字(12個(gè)字節(jié));在FC2定義輸入?yún)?shù)Buffer, Frame1,F(xiàn)rame2:

特點(diǎn)一:定義僅在塊內(nèi)有效,在接口參數(shù)中不出現(xiàn)。塊內(nèi)定以的輸入?yún)?shù)有3個(gè),但僅在塊內(nèi)有效,在接口參數(shù)僅出現(xiàn)Buffer輸入?yún)?shù)

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

特點(diǎn)三:它只是讓Frame1繼承了Buffer的特性,僅僅數(shù)據(jù)類型是新的,其它特性相同。此處的UDT100長度應(yīng)小于等于所繼承的Buffer大小,否則編譯錯(cuò)誤

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

注意:此處的UDT200長度應(yīng)小于等于所繼承的Buffer大小,否則編譯錯(cuò)誤

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

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

在OB1中調(diào)用FC2,并將一個(gè)數(shù)組賦值給Buffer輸入?yún)?shù)

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

特點(diǎn)一:塊內(nèi)定以的輸入?yún)?shù)有3個(gè),但僅在塊內(nèi)有效,在接口參數(shù)僅出現(xiàn)Buffer輸入?yún)?shù)

515d409e-8cfd-11eb-8b86-12bb97331649.png

特點(diǎn)二:對(duì)于輸入?yún)?shù)Buffer得到的數(shù)據(jù),可以按照Frame1,或Frame2的格式來尋址。例如可以將 Buffer 的前8 個(gè)字節(jié)認(rèn)為是DATA_AND_TIME,送至臨時(shí)變量TEST_DT中

AT指令應(yīng)用例子1:在STL中,用戶如果希望取得MB0的某一位的數(shù)值是非常容易的,例如第3位,直接尋址M0.2就可以了。而在S7-SCL中,由于其具備高級(jí)語言的特點(diǎn),所以定義的變量的絕對(duì)地址一般是不顯現(xiàn)的。因此在STL中簡單的操作,在S7-SCL中卻復(fù)雜起來。但是通過使用AT指令即可解決這個(gè)問題。下圖中的例子中,當(dāng)輸入的某個(gè)字節(jié),其輸出依次為此字節(jié)的8個(gè)位。

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

AT指令應(yīng)用例子2:在S7-SCL中,ANY數(shù)據(jù)類型的使用,經(jīng)常會(huì)伴隨著AT指令的使用,下面的例子演示了如何拆分改寫ANY數(shù)據(jù)類型中的內(nèi)容。程序執(zhí)行結(jié)果相當(dāng)于:

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

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

AT指令在使用當(dāng)中,還有如下注意事項(xiàng):

· AT指令用于對(duì)某個(gè)變量進(jìn)行其它數(shù)據(jù)類型的聲明時(shí),必須放在此變量的聲明語句后面

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

· AT指令用于對(duì)某個(gè)變量其它數(shù)據(jù)類型的聲明時(shí),占用內(nèi)存大小要小于等于此變量的長度

· AT指令用于對(duì)某個(gè)變量其它數(shù)據(jù)類型的聲明時(shí),如下的組合是允許的:

52c50796-8cfd-11eb-8b86-12bb97331649.png

(1)AT指令用于ANY類型在VAR_OUT中是不允許的

Elementary (基本數(shù)據(jù)類型包括) :BOOL, BYTE, WORD, DWORD, INT, DINT, DATE, TIME,

S5TIME, CHAR Complex (復(fù)雜數(shù)據(jù)類型包括) :ARRAY, STRUCT, DATE_AND_TIME, STRING

在VASS標(biāo)準(zhǔn)中的應(yīng)用實(shí)例:

pMeldFeld AT TempPointerMsys: STRUCT 變量格式是結(jié)構(gòu)

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 故障信息號(hào)

END_STRUCT;

程序中

TempPointerMsys := Msys; 故障信息號(hào)給入變量

故障報(bào)警信息

530c0c22-8cfd-11eb-8b86-12bb97331649.png

MeldSend(AufrufNr := 1

,Anz_Meld := 27

,pMeldFeld := pMeldFeld.BZ 故障信息號(hào)被用來發(fā)出

,pMeldAbb := pMeldAbb.BZ

,MeldDB := WORD_TO_INT(pMeldDBNR.DBNR)

,AenderungsID := AenderungsID

,Integritaet := Integritaet

,Neustart := Neustart

); // VOID

原文標(biāo)題:SCL_什么是“AT”指令,如何使用?及其在VASS標(biāo)準(zhǔn)中的應(yīng)用

文章出處:【微信公眾號(hào):機(jī)器人PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AT
    AT
    +關(guān)注

    關(guān)注

    2

    文章

    188

    瀏覽量

    65103
  • S7-SCL
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    7713

原文標(biāo)題:SCL_什么是“AT”指令,如何使用?及其在VASS標(biāo)準(zhǔn)中的應(yīng)用

文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    S7-200指令

    S7-200庫文件是西門子旗下同款編程軟件的可調(diào)用數(shù)據(jù)庫,可安裝也可直接覆蓋進(jìn)行使用。常用的數(shù)據(jù)庫,簡便方便調(diào)用。在PLC調(diào)試節(jié)省時(shí)間。
    發(fā)表于 07-23 12:29 ?4次下載

    西門子S7-1200 PLC的指令介紹

    了最新的技術(shù),為用戶提供了更為高效、靈活的控制方案。本文將詳細(xì)介紹S7-1200 PLC的指令系統(tǒng),包括其指令分類、具體指令功能以及在實(shí)際應(yīng)用
    的頭像 發(fā)表于 06-18 14:52 ?2026次閱讀

    西門子博途中的LAD、FBD與SCL編程

    選擇要在其后插入新程序段的程序段。 在快捷菜單,選擇命令“插入 STL 程序段”(Insert STL network) 或“插入 SCL 程序段” (Insert SCL network)。
    發(fā)表于 01-16 09:33 ?2339次閱讀
    西門子博途中的LAD、FBD與<b class='flag-5'>SCL</b>編程

    STEP7博圖中的SCL設(shè)置和屬性解析

    SCL V11,可以檢查“擴(kuò)展?fàn)顟B(tài)信息”。與SCL V5.x相反,始終創(chuàng)建最小化的調(diào)試信息,這允許進(jìn)行基本調(diào)試!
    的頭像 發(fā)表于 01-02 09:58 ?1601次閱讀
    STEP<b class='flag-5'>7</b>博圖中的<b class='flag-5'>SCL</b>設(shè)置和屬性解析

    SIMATIC S7-1500 PLC S7-SCL SCL塊及應(yīng)用

    函數(shù)和函數(shù)塊在西門子的大中型PLC編程,應(yīng)用十分廣泛,前介紹過函數(shù)和函數(shù)塊
    的頭像 發(fā)表于 12-15 16:18 ?903次閱讀
    SIMATIC <b class='flag-5'>S7</b>-1500 PLC <b class='flag-5'>S7-SCL</b> <b class='flag-5'>SCL</b>塊及應(yīng)用

    使用PUT和GET指令通過S7連接在兩個(gè)CPU之間交換數(shù)據(jù)

    使用 PUT 和 GET 指令通過 S7 連接在兩個(gè) CPU 之間交換數(shù)據(jù)。
    的頭像 發(fā)表于 12-14 16:53 ?9075次閱讀
    使用PUT和GET<b class='flag-5'>指令</b>通過<b class='flag-5'>S7</b>連接在兩個(gè)CPU之間交換數(shù)據(jù)

    SIMATIC S7-1500 PLC S7-SCL應(yīng)用舉例

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

    s7-200字符串賦值指令

    S7-200的字符串賦值指令,包括其語法、使用方法、注意事項(xiàng)等,以幫助讀者更好地理解和應(yīng)用該指令。 首先,我們來了解一下S7-200
    的頭像 發(fā)表于 12-08 14:44 ?1770次閱讀

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

    函數(shù)和函數(shù)塊在西門子的大中型PLC編程,應(yīng)用十分廣泛,前介紹過函數(shù)和函數(shù)塊,其編程采用的是LAD語言,而本節(jié)采用SCL語言編程,以下僅用一個(gè)例子介紹函數(shù),函數(shù)塊使用方法也類似。
    的頭像 發(fā)表于 12-06 09:17 ?863次閱讀
    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尋址詳解

    尋址可分為直接尋址和間接尋址,以下分別介紹。
    的頭像 發(fā)表于 12-04 09:29 ?2523次閱讀
    SIMATIC <b class='flag-5'>S7</b>-1500 PLC <b class='flag-5'>S7-SCL</b>尋址詳解

    SIMATIC S7-1500 PLC S7-SCL賦值詳解

    通過賦值,一個(gè)變量接受另一個(gè)變量或者表達(dá)式的值。在賦值運(yùn)算符“;=”左邊的是變量,該變量接受右邊的地址或者表達(dá)式的值。
    的頭像 發(fā)表于 11-29 09:24 ?2822次閱讀

    SIMATIC S7-1500 PLC S7-SCL表達(dá)式詳解

    表達(dá)式為了計(jì)算一個(gè)終值所用的公式,它由地址(變量)和運(yùn)算符組成。表達(dá)式的規(guī)則如下。
    的頭像 發(fā)表于 11-28 09:36 ?946次閱讀
    SIMATIC <b class='flag-5'>S7</b>-1500 PLC <b class='flag-5'>S7-SCL</b>表達(dá)式詳解

    SIMATIC S7-1500 PLC S7-SCL簡介

    S7-SCL(Structured Control Language)結(jié)構(gòu)化控制語言是一種類似于計(jì)算機(jī)高級(jí)語言的編程方式,它的語法規(guī)范接近計(jì)算機(jī)的PASCAL語言。
    的頭像 發(fā)表于 11-20 09:17 ?962次閱讀

    西門子S7-200與S7-1500的通信技術(shù)分析

    .在指令塊下方的“屬性"對(duì)話框設(shè)置“連接參數(shù)”(以PUT指令塊為例):選擇"未指定",TIA軟件會(huì)自動(dòng)創(chuàng)建一個(gè)連接(例:“S7_連接_1”),自動(dòng)分配連接ID,并自動(dòng)
    發(fā)表于 11-19 15:21 ?3150次閱讀
    西門子<b class='flag-5'>S7</b>-200與<b class='flag-5'>S7</b>-1500的通信技術(shù)分析

    SCL函數(shù)塊的結(jié)構(gòu)介紹 創(chuàng)建SCL函數(shù)塊的步驟說明

    下圖顯示了 SCL 函數(shù)塊的結(jié)構(gòu)。
    的頭像 發(fā)表于 10-30 10:16 ?800次閱讀
    <b class='flag-5'>SCL</b>函數(shù)塊的結(jié)構(gòu)介紹 創(chuàng)建<b class='flag-5'>SCL</b>函數(shù)塊的步驟說明