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

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

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

如何在博途環(huán)境下載但不重新初始化數(shù)據(jù)塊呢?

jf_61nrsJTz ? 來(lái)源:方正智芯 ? 2023-11-10 09:25 ? 次閱讀

現(xiàn)場(chǎng)設(shè)備運(yùn)行過(guò)程中有時(shí)候我們需要更改在線數(shù)據(jù)塊的結(jié)構(gòu)(比如增加一些變量),但是如果直接更改數(shù)據(jù)塊并下載會(huì)導(dǎo)致其重新初始化。這意味著CPU會(huì)將數(shù)據(jù)塊中變量的實(shí)際值用初始值替換,將會(huì)導(dǎo)致實(shí)際數(shù)據(jù)的丟失,甚至引起設(shè)備故障。一種變通的方法是:使用快照先將實(shí)際值保存到初始值,然后盡快修改下載。這種方法只適用于實(shí)際值短時(shí)間變化影響不大的情況。有沒(méi)有一種方法既能更改在線數(shù)據(jù)塊的結(jié)構(gòu),又不引起數(shù)據(jù)塊重新初始化呢?答案是:有的。下面我來(lái)詳細(xì)介紹下。本文包括如下幾個(gè)主題:

結(jié)構(gòu)性更改;

下載但不重新初始化的工作原理

重置預(yù)留存儲(chǔ)區(qū)

1、結(jié)構(gòu)性更改

默認(rèn)情況下,數(shù)據(jù)塊的結(jié)構(gòu)性更改會(huì)導(dǎo)致其下載時(shí)重新初始化。

數(shù)據(jù)塊的結(jié)構(gòu)性更改包括:

①其中變量名稱(chēng)的更改;

②其中變量的增加或刪除;

③其中變量保持特性的更改;

從上面描述來(lái)看,我們?cè)跀?shù)據(jù)塊中增加變量屬于結(jié)構(gòu)性更改,怎樣使其不重新初始化呢?這需要使用數(shù)據(jù)塊的一個(gè)屬性——預(yù)留存儲(chǔ)區(qū)。

注①:初始值修改不屬于結(jié)構(gòu)性更改,因此下載時(shí)不會(huì)引起數(shù)據(jù)塊重新初始化。

注②:這里的數(shù)據(jù)塊既可以是全局?jǐn)?shù)據(jù)塊,也可以是函數(shù)塊的背景數(shù)據(jù)塊。

2、數(shù)據(jù)塊下載但不重新初始化的工作原理

首先,只有“優(yōu)化的塊”才支持該功能。勾選“優(yōu)化的塊訪問(wèn)”屬性的數(shù)據(jù)塊或函數(shù)塊默認(rèn)有一個(gè)預(yù)留存儲(chǔ)區(qū),激活該預(yù)留區(qū)后,后續(xù)聲明的變量/參數(shù)都存放在該區(qū)域中。

選中數(shù)據(jù)塊,右鍵單擊,選擇【屬性】菜單,可以看到“優(yōu)化的塊訪問(wèn)”選項(xiàng),如下圖所示:

5a9490c0-7f55-11ee-939d-92fbcf53809c.png

在上述屬性對(duì)話框中,單擊【下載但不重新初始化】。勾選【啟用下載,但不重新初始化變量】便啟用該功能。在【存儲(chǔ)器預(yù)留區(qū)域】中設(shè)置預(yù)留存儲(chǔ)區(qū)的大小,比如100字節(jié);在【預(yù)留可保持型存儲(chǔ)器】中設(shè)置保持型存儲(chǔ)器的大小,如下圖所示:

5aa72e7e-7f55-11ee-939d-92fbcf53809c.png

設(shè)置完成后單擊【確定】,該數(shù)據(jù)塊便有了設(shè)定大小的預(yù)留存儲(chǔ)區(qū),但尚未激活。在未激活的情況下,往數(shù)據(jù)塊中添加的變量仍存放在默認(rèn)存儲(chǔ)區(qū)。如果進(jìn)行了結(jié)構(gòu)性更改,則下載時(shí)仍會(huì)提示需要重新初始化。

那么怎樣激活呢?

打開(kāi)數(shù)據(jù)塊,在其上方有一個(gè)紅色的、激活預(yù)留存儲(chǔ)區(qū)的按鈕,如下圖所示:

5ab0e22a-7f55-11ee-939d-92fbcf53809c.png

單擊該按鈕會(huì)彈出一個(gè)對(duì)話框:

5ac3c7c8-7f55-11ee-939d-92fbcf53809c.png

單擊【確定】后,再次往數(shù)據(jù)塊中添加的變量,都存放在預(yù)留存儲(chǔ)區(qū)中。此時(shí)下載不會(huì)再提示需要重新初始化。

3、重置預(yù)留存儲(chǔ)區(qū)

隨著變量的添加,預(yù)留存儲(chǔ)區(qū)會(huì)越來(lái)越小。在【下載但不重新初始化】頁(yè)面可以查看剩余的存儲(chǔ)區(qū)字節(jié)數(shù)。若項(xiàng)目已經(jīng)階段性完成,可以在適當(dāng)?shù)臅r(shí)候?qū)㈩A(yù)留存儲(chǔ)區(qū)的數(shù)據(jù)集成到常規(guī)存儲(chǔ)區(qū),以清空預(yù)留存儲(chǔ)區(qū)便于后續(xù)使用。此時(shí)可以選中數(shù)據(jù)塊并單擊右鍵,在彈出的對(duì)話框中選擇【編譯】→【軟件(復(fù)位存儲(chǔ)器預(yù)留區(qū)域)】,如下圖所示:

5ad404d0-7f55-11ee-939d-92fbcf53809c.png

系統(tǒng)會(huì)提示下載時(shí)需要重新初始化,單擊【確定】,完成重置,此時(shí)預(yù)留存儲(chǔ)區(qū)的可使用字節(jié)數(shù)恢復(fù)成設(shè)定值。






審核編輯:劉清

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

    關(guān)注

    38

    文章

    7366

    瀏覽量

    163098
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10702

    瀏覽量

    209401

原文標(biāo)題:怎樣在博途環(huán)境下載但不重新初始化數(shù)據(jù)塊?

文章出處:【微信號(hào):方正智芯,微信公眾號(hào):方正智芯】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    esp8266_rtos_sdk串口初始化異常是什么原因?

    硬件環(huán)境:nodeMCU 我從github下載了最新的RTOS SDK,并且僅僅在初始化 user_init() 函數(shù)里添加了一個(gè)函數(shù) uart_init_new() 然后編譯。生成bin文件,
    發(fā)表于 07-11 06:04

    何在tc377啟動(dòng)軟件時(shí)檢查SSH實(shí)例的內(nèi)存是否已初始化

    我有一個(gè)關(guān)于 SSH 內(nèi)存初始化的問(wèn)題。 問(wèn)題是:如何在 tc377 啟動(dòng)軟件時(shí)檢查 SSH 實(shí)例的內(nèi)存是否已初始化? 謝謝。
    發(fā)表于 05-22 06:48

    STM32F4重新初始化UART1,不能正常接收數(shù)據(jù)怎么解決?

    程序中UART1 一開(kāi)始是正常接收數(shù)據(jù),后面卸載UART1功能,將RX改成上升沿外部中斷, 觸發(fā)中斷后 屏蔽外部中斷,重新初始化UART1,但這時(shí)候不能正常接收數(shù)據(jù)。 偽代碼如下
    發(fā)表于 03-25 07:07

    字符型、指針型等變量等該如何初始化

     對(duì)于數(shù)值類(lèi)型的變量往往初始化為0,但對(duì)于其他類(lèi)型的變量,如字符型、指針型等變量等該如何初始化?
    的頭像 發(fā)表于 03-18 11:02 ?903次閱讀

    用于電路初始化的微型電源電壓監(jiān)控器TPS3307系列數(shù)據(jù)

    電子發(fā)燒友網(wǎng)站提供《用于電路初始化的微型電源電壓監(jiān)控器TPS3307系列數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 03-13 14:23 ?0次下載
    用于電路<b class='flag-5'>初始化</b>的微型電源電壓監(jiān)控器TPS3307系列<b class='flag-5'>數(shù)據(jù)</b>表

    MCU單片機(jī)GPIO初始化該按什么順序配置?為什么初始化時(shí)有電平跳變?

    GPIO初始化時(shí)有時(shí)鐘配置、模式配置、輸出配置、復(fù)用配置,那么在編寫(xiě)初始化代碼時(shí),到底該按什么順序執(zhí)行?如果順序不當(dāng)那初始化過(guò)程可能會(huì)出現(xiàn)短暫的電平跳變。
    的頭像 發(fā)表于 02-22 11:07 ?1172次閱讀
    MCU單片機(jī)GPIO<b class='flag-5'>初始化</b>該按什么順序配置?為什么<b class='flag-5'>初始化</b>時(shí)有電平跳變?

    西門(mén)子示例:在上設(shè)置內(nèi)存保留

    下表描述了如何為下載設(shè)置內(nèi)存保留而不重新初始化
    的頭像 發(fā)表于 01-15 10:42 ?565次閱讀
    西門(mén)子<b class='flag-5'>博</b><b class='flag-5'>途</b>示例:在<b class='flag-5'>塊</b>上設(shè)置內(nèi)存保留

    西門(mén)子示例:如何為下載設(shè)置內(nèi)存保留而不重新初始化

    示例:在上設(shè)置內(nèi)存保留
    的頭像 發(fā)表于 01-15 10:41 ?990次閱讀
    西門(mén)子<b class='flag-5'>博</b><b class='flag-5'>途</b>示例:如何為<b class='flag-5'>下載</b>設(shè)置內(nèi)存保留而<b class='flag-5'>不重新</b><b class='flag-5'>初始化</b>

    串口初始化一般是初始化哪些內(nèi)容

    串口初始化是指在使用串口進(jìn)行數(shù)據(jù)通信之前,對(duì)串口進(jìn)行一系列的設(shè)置和配置,以確保串口能夠正常工作。串口初始化的內(nèi)容主要包括以下幾個(gè)方面: 串口硬件設(shè)置:首先,需要確定要使用的串口是哪一個(gè),通常計(jì)算機(jī)
    的頭像 發(fā)表于 01-04 09:39 ?2704次閱讀

    labview運(yùn)行后如何初始化

    LabVIEW是一款強(qiáng)大的圖形編程軟件,在運(yùn)行之前通常需要進(jìn)行一些初始化操作。本文將詳細(xì)介紹LabVIEW運(yùn)行前的初始化過(guò)程,并提供了一些常用的初始化方法。 創(chuàng)建新項(xiàng)目: 在LabV
    的頭像 發(fā)表于 12-28 17:24 ?2073次閱讀

    自動(dòng)初始化機(jī)制原理詳解

    自動(dòng)初始化機(jī)制是指初始化函數(shù)不需要被顯式調(diào)用,只需要在函數(shù)定義處通過(guò)宏定義的方式進(jìn)行申明,就會(huì)在系統(tǒng)啟動(dòng)過(guò)程中被執(zhí)行。這篇文章就來(lái)探索一下其中的奧秘, 簡(jiǎn)單理解其原理!
    的頭像 發(fā)表于 12-16 09:33 ?828次閱讀
    自動(dòng)<b class='flag-5'>初始化</b>機(jī)制原理詳解

    secondary cpu初始化狀態(tài)設(shè)置

    ,用于填寫(xiě)secondary cpu的入口地址。 uboot負(fù)責(zé)將這塊內(nèi)存的地址寫(xiě)入devicetree中,當(dāng)內(nèi)核初始化完成,需要啟動(dòng)secondary cpu時(shí),就將其內(nèi)核入口地址寫(xiě)到那塊內(nèi)存中
    的頭像 發(fā)表于 12-05 15:27 ?805次閱讀
    secondary cpu<b class='flag-5'>初始化</b>狀態(tài)設(shè)置

    實(shí)戰(zhàn)經(jīng)驗(yàn) | Keil、IAR、CubeIDE 中變量不被初始化方法

    關(guān)鍵詞:不被初始化,編譯環(huán)境 目錄預(yù)覽 1、前言 2、IAR 實(shí)現(xiàn)變量不初始化方法 3、Keil 實(shí)現(xiàn)變量不被初始化方法 4、CubeIDE 實(shí)現(xiàn)變量不
    的頭像 發(fā)表于 11-24 18:05 ?3025次閱讀

    ST7789屏幕初始化的步驟

    st7789的屏幕構(gòu)建系統(tǒng)和配置 驅(qū)屏就是初始化 DC轉(zhuǎn)換和cs
    的頭像 發(fā)表于 10-16 09:27 ?4766次閱讀

    SD卡初始化及讀取程序

    電子發(fā)燒友網(wǎng)站提供《SD卡初始化及讀取程序.pdf》資料免費(fèi)下載
    發(fā)表于 10-13 09:50 ?2次下載
    SD卡<b class='flag-5'>初始化</b>及讀取程序