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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

如何在STL中存取背景數(shù)據(jù)塊呢?

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 2023-08-21 09:53 ? 次閱讀

簡介

“OPN DI”或“CDB”指令將數(shù)據(jù)塊加載到 DI 寄存器中。在 S7-300/400 中,此處打開的塊將作為背景數(shù)據(jù)塊。FB 塊接口的局部形參的后續(xù)符號尋址(IN、OUT、InOut、Static)將不再對在塊調(diào)用中指定為背景數(shù)據(jù)塊的數(shù)據(jù)塊進行尋址,而是對位于 DI 寄存器中的數(shù)據(jù)塊進行尋址。要隨后對塊接口中的局部形參進行符號尋址,則必須將背景數(shù)據(jù)塊加載到 DI 寄存器中。

即使在執(zhí)行指令 "L AR2", "+ AR" 和 "TAR" 之后,S7-300/400 中也無法從塊接口對形參進行符號尋址,這是由于這些指令破壞了參數(shù)的訪問方式。

S7-1500 中已修正該錯誤:如果在 S7-1500 中對塊接口中的局部形參進行符號尋址(例如,使用指令 L #myIn),則需始終訪問塊調(diào)用中指定為背景數(shù)據(jù)塊的數(shù)據(jù)塊。雖然 OPN DI L AR2, +AR2, TDB, TAR 指令將更改 DI 或地址寄存器中的數(shù)據(jù),但在對局部形參進行尋址時不會對這些寄存器中的數(shù)據(jù)進行判斷。

對背景數(shù)據(jù)塊中局部變量訪問的移植

移植過程不會更改已編程的訪問方式。但是,如果更改了引用程序中的 OPN DI, L AR2, +AR2, TDB, TAR, 指令,則該程序的定義可能會發(fā)生變更。
要恢復最初的程序定義,則必須手動更改該程序。通常無需再通過寄存器對數(shù)據(jù)進行尋址。但是,可以使用背景數(shù)據(jù)塊中的 ARRAY 間接索引 ARRAY 中的元素。

示例 1

以下示例說明如何修改 OPN DI 指令的定義:

STL 說明
L #MyIn1
L #MyIn2
+I
T #MyOut3
“L”和“T”指令將尋址塊接口中所聲明的局部變量。變量的值位于塊調(diào)用中所指定的背景數(shù)據(jù)塊中。
OPNDI "MyDB"
L #MyIn1
L #MyIn2
+I
T #MyOut3
全局數(shù)據(jù)塊 "MyDB" 將寫入 DI 寄存器中。
移植前,“L”和“T”指令將尋址 "MyDB" 中所聲明的變量。
遷移后,“L”和“T”指令將尋址塊接口中所聲明的變量。在 S7-1500 中,進行訪問時不會判斷 DI 寄存器中的值。

示例 2 以下示例說明了如何修改 LAR2 指令的定義:

STL 說明
L P#M23.0
LAR2 移植前,對 AR2 的分配將破壞參數(shù)的訪問方式。
L #MyIn1 移植前,無法對 "MyIn1" 進行訪問或會發(fā)生訪問錯誤。 移植后,可正常對形參 "MyIn1" 進行訪問操作。
L IW [AR2, P#1.0] 訪問 %IW24.0
A [AR2, P#0.4] 訪問 %M23.4

示例 3 以下示例介紹了在 S7-1500 中如何對 DB 變量進行間接尋址而不使用地址寄存器:

STL 說明
OPN "MyDB" L #index LAR1 L DBW [AR1 , P#10.0] 移植前,使用區(qū)域內(nèi)部的間接寄存器進行尋址。并將變量值 (#index) 加載到地址寄存器 1 中。根據(jù)加載的值,“MyDB”中的一個數(shù)據(jù)字將加載到累加器 1 中。
L "MyDB".MyArray1[#index] 移植后,可以將數(shù)據(jù)值存儲在 ARRAY 的“MyDB”中。 并使用輸入?yún)?shù)“#index”對 ARRAY 中的各元素建立不同的索引






審核編輯:劉清

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

    關注

    31

    文章

    5250

    瀏覽量

    119200
  • 存儲器
    +關注

    關注

    38

    文章

    7366

    瀏覽量

    163091
  • STL
    STL
    +關注

    關注

    0

    文章

    85

    瀏覽量

    18260
  • 累加器
    +關注

    關注

    0

    文章

    50

    瀏覽量

    9414

原文標題:西門子博途:在 STL 中存取背景數(shù)據(jù)塊

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

收藏 人收藏

    評論

    相關推薦

    大量數(shù)據(jù)存取!跪求大神!

    嵌入式開發(fā)過程涉及了大量數(shù)據(jù)存取的要用到什么?求大神解答!詳細點
    發(fā)表于 04-09 17:41

    DSP如何在L2CACHE中區(qū)分哪一數(shù)據(jù)是代碼,需要載入到L1PCACHE,哪一數(shù)據(jù),需要載入到L1DCACHE?

    的。我的問題是,DSP如何在L2CACHE中區(qū)分哪一數(shù)據(jù)是代碼,需要載入到L1PCACHE,哪一
    發(fā)表于 05-25 00:13

    何在存儲器寫入和讀取矩陣?

    /383681#M3607我要將數(shù)據(jù)矩陣存儲在fpga而不是LUT的存儲器作為內(nèi)存!因為基于我編寫的代碼的上述鏈接,它使用LUT作為內(nèi)存而不是fpga的
    發(fā)表于 11-07 07:30

    在堆棧存取數(shù)據(jù)時的原則是什么?

    在堆棧存取數(shù)據(jù)時的原則是什么
    發(fā)表于 10-31 06:55

    數(shù)據(jù)結(jié)構(gòu)與STL

    學習數(shù)據(jù)結(jié)構(gòu)與STL的一些資料,新手可以慢慢看。
    發(fā)表于 12-22 14:41 ?0次下載

    如何加密S7 -GRAPH

    如何加密S7-GRAPH ? 在 STEP7 ,只有STL 源文件格式支持保護功能,僅僅有S7-GRAPH 源文件無法實現(xiàn)保護功能
    的頭像 發(fā)表于 03-18 10:15 ?1873次閱讀

    數(shù)據(jù)DB的結(jié)構(gòu)和應用實例分析

    在一個程序,可以被所有存取的特定用戶數(shù)據(jù)包含在數(shù)據(jù)。每個FB、FC或OB均能讀寫這些數(shù)據(jù)
    的頭像 發(fā)表于 07-08 09:12 ?2883次閱讀

    請問怎樣去加密S7-GRAPH

    在 STEP7 ,只有STL 源文件格式支持保護功能,僅僅有S7-GRAPH 源文件無法實現(xiàn)保護功能。
    的頭像 發(fā)表于 10-08 10:02 ?935次閱讀

    發(fā)動機組控制系統(tǒng)的多重背景數(shù)據(jù)應用

    這樣FB1有幾次調(diào)用,就必須配套相應數(shù)量的背景數(shù)據(jù)。當FB1的調(diào)用次數(shù)較多時,就會占用更多的數(shù)據(jù)。
    發(fā)表于 10-19 14:39 ?589次閱讀

    STL的概述

    C++ STL 是一套功能強大的 C++ 模板類,提供了通用的模板類和函數(shù),這些模板類和函數(shù)可以實現(xiàn)多種流行和常用的算法,關于 STL ,下面通過一個系統(tǒng)框圖來對其進行一個總結(jié)
    的頭像 發(fā)表于 01-20 17:08 ?1209次閱讀
    <b class='flag-5'>STL</b>的概述

    西門子博圖中帶有背景數(shù)據(jù)的基本指令不同實例的區(qū)別和應用

    在西門子博圖的PLC編程軟件,帶有背景數(shù)據(jù)的基本指令有單個實例、多重實例、參數(shù)實例三種背景數(shù)據(jù)
    的頭像 發(fā)表于 05-09 15:20 ?1.6w次閱讀
    西門子博圖中帶有<b class='flag-5'>背景</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>塊</b>的基本指令不同實例的區(qū)別和應用

    博途使用STL的MOVE指令

    現(xiàn)在,在 S7-1500 CPU 上可使用 STL 的 MOVE 指令進行編程。
    的頭像 發(fā)表于 06-06 11:10 ?5706次閱讀
    博途使用<b class='flag-5'>STL</b><b class='flag-5'>中</b>的MOVE指令

    怎樣使用STL函數(shù)控制傳送帶?有哪些步驟?

    STL (語句列表)是一種基于文本的編程語言,可用于編寫邏輯。STL 程序以程序段的形式組成。
    的頭像 發(fā)表于 07-25 17:43 ?732次閱讀
    怎樣使用<b class='flag-5'>STL</b>函數(shù)控制傳送帶?有哪些步驟?

    何在STL的EN/ENO機制仿真示例

    STL 程序調(diào)用的程序不提供 EN 和 ENO 參數(shù)。無論創(chuàng)建程序時采用何種編程語言,都可通過狀態(tài)字的 BR 位將錯誤語句傳送到 STL
    的頭像 發(fā)表于 09-01 09:45 ?834次閱讀

    使用STL函數(shù)控制傳送帶

    要創(chuàng)建 STL 函數(shù)STL-Conveyor”,請按以下步驟操作
    的頭像 發(fā)表于 10-12 16:00 ?486次閱讀
    使用<b class='flag-5'>STL</b>函數(shù)控制傳送帶