<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

S7-300 CPU數據塊初始值與實際值

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 作者:機器人及PLC自動化 ? 2022-10-17 17:28 ? 次閱讀

S7-300 CPU 數據塊

數據塊(DB)用來分類存儲設備或生產線中變量的值,數據塊也是用來實現各邏輯塊之間的數據交換、數據傳遞和共享數據的重要途徑。數據塊豐富的數據結構便于提高程序的執行效率。與邏輯塊不同,數據塊只有變量聲明部分,沒有指令部分。不同型號CPU允許建立數據塊的塊數和每個數據塊可以占用的最大字節數均不同,具體的參數可以查看CPU的技術規范手冊。

數據塊分為共享數據塊和背景數據塊兩種。共享數據塊又稱全局數據塊,它不屬于任何邏輯塊。背景數據塊是專門指定給某個功能塊(FB)或者系統功能塊(SFB)使用的數據塊,它是FB或SFB運行時的工作存儲區。

數據塊初始值與實際值(STEP 7)

在共享數據塊的變量聲明表中可以定義變量的名稱、數據類型、注釋和變量初始值。

初始值為純粹的組態值,當由UDT生成數據塊或在全局數據塊中生成新變量時,組態的初始值被用作為實際值??梢酝ㄟ^菜單命令 “View > Data view” 來查看實際值。

初始值對于數據塊或新聲明的變量數據塊來說,組態的有效次數僅為一次。如果變量已經存在,實際值將不會隨著初始值的變化而發生改變。

對于CPU來說,生效的數據為實際值,初始值雖也可以下載到CPU中并可在線監控,但不會被CPU采用。

以下方法可以將初始值傳送給 CPU 作為實際值:

圖1 變量視圖

圖2 切換到數據視圖

f41849b2-4bcb-11ed-a3b6-dac502259ad0.png

圖3 執行初始化DB塊

f43c3df4-4bcb-11ed-a3b6-dac502259ad0.png

圖4 是否使用初始值覆蓋實際值

f45b3420-4bcb-11ed-a3b6-dac502259ad0.png

圖5 執行初始化數據結果

3. 最后將數據塊下載至CPU中,初始值就會替代實際值在CPU中生效。

注意:

在共享數據塊的聲明視圖(Declaration view)中,用戶可以添加或者刪除DB變量,而在數據視圖中(Data view)中,用戶可以查看變量實際值,但不可以添加或者刪除DB變量。

而在STEP 7中,如需裝載實際值到初始值中,沒有與之相關的菜單命令,可以通過如下操作來實現:

STEP 7中,如何將數據塊的實際值保存為初始值

數據塊初始值與實際值(TIA Protal)

在TIA Protal中,數據塊的使用和STEP 7基本一致,并且建立數據塊也可以設置初始值,但是下載數據塊時可以選擇重新初始化使初始值生效,也可以選擇無操作,則數據塊的實際值會生效。

f47b07e6-4bcb-11ed-a3b6-dac502259ad0.png

圖6 下載時數據塊初始化

TIA Protal中監視數據塊,可以使用快照功能把數據塊的實際值復制到初始值中

f4b4b996-4bcb-11ed-a3b6-dac502259ad0.png

圖7 使用快照

執行將快照值復制到起始值中功能,軟件會提示是否覆蓋所選塊的所有值,點擊確定。

f4de986a-4bcb-11ed-a3b6-dac502259ad0.png

圖8 復制快照值到起始值

執行完將快照值復制到起始值功能,快照值會復制到起始值中,結果如下:

f50f582e-4bcb-11ed-a3b6-dac502259ad0.png

圖9 執行快照復制結果

數據塊屬性

在建立DB塊時,有時需要設置DB塊屬性:DB在PLC中寫保護 、未鏈接和非掉電保持,如下圖所示:

f5406f36-4bcb-11ed-a3b6-dac502259ad0.png

圖10 STEP 7 中DB屬性的設置

f54eb4a6-4bcb-11ed-a3b6-dac502259ad0.jpg

圖11 TIA Protal V15 中DB屬性的設置

數據塊各設置的含義

1. 勾選DB在PLC中寫保護

2. 勾選未鏈接

3. 不勾選非掉電保持

f565f9b8-4bcb-11ed-a3b6-dac502259ad0.jpg

圖12 315-2PN/DP保持性存儲器的使用情況

數據塊的屬性對于數據塊的內存占用影響

數據塊屬性/內存區域 裝載存儲器(MMC) 工作存儲器(CPU) 保持性存儲器(CPU)
非掉電保持不勾選(系統默認)
非掉電保持勾選
未鏈接不勾選(系統默認)
未鏈接勾選

1. 打開DB數據塊,菜單欄切換到聲明視圖 “View > Declaration view ”,在“Initial value” 欄輸入新的初始值;

f39f4436-4bcb-11ed-a3b6-dac502259ad0.png

2. 菜單欄切換到數據視圖“View > Data view ”,然后,執行菜單命令 “Edit > Initialize Data Block”將所有“Intial value”欄的數值傳送至“Actual value”欄。

f3f8cbb4-4bcb-11ed-a3b6-dac502259ad0.png

可以給數據塊分配寫保護,此時不能在程序執行期間覆蓋它們。

具有"未鏈接"屬性的數據塊僅存儲在裝載存儲器中。

這種塊不占用工作存儲器中的空間,因此可以節省CPU的工作存儲器空間,并且不存在與工作存儲區數據一致的問題。

該地址區域不能由工作存儲區直接訪問,需要使用SFC83或者SFC84把這類DB的內容傳送到工作存儲區或者由工作存儲區傳送到對應DB。

使用SFC83和SFC84讀寫MMC卡中DB數據

本選項允許用戶定義數據塊的斷電保持特性。

不勾選代表此類數據塊具有斷電保持功能。

每次斷電后工作存儲器中數據塊的當前值保持到保持寄存器中。

用于保持性數據塊的非易失性存儲器的最大大小與CPU的具體型號有關系。下圖為CPU 315-2PN/DP保持性存儲器的使用情況。

審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10510

    瀏覽量

    207178
  • 數據
    +關注

    關注

    8

    文章

    6538

    瀏覽量

    87786
  • step
    +關注

    關注

    0

    文章

    41

    瀏覽量

    20312

原文標題:S7-300 CPU 數據塊

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

收藏 人收藏

    評論

    相關推薦

    #硬聲創作季 #PLC S7-300PLC-40 基于S7-300的給料分揀控制系統-1

    plcS7-300
    水管工
    發布于 :2022年10月21日 15:25:32

    #硬聲創作季 #PLC S7-300PLC-40 基于S7-300的給料分揀控制系統-2

    plcS7-300
    水管工
    發布于 :2022年10月21日 15:25:51

    怎么樣給輸入變量設定初始值???

    我想在每次運行程序的時候對應的輸入控件有相應的初始值(不要全是0),我是新手,求大神們解答,謝謝?。?!
    發表于 11-11 22:19

    編譯出錯,初始值太多

    在寫一個音樂盒的程序,寫簡譜初值時會有較多值,編譯報錯有初始值太多,有什么號的解決方法呢?懇請各位前輩提出寶貴意見~~~
    發表于 01-16 19:07

    怎么基于正計數的賦初始值

    `我想賦上初始值0,可以實現從0開始計數。怎么改,或者類似從10計數到100謝謝!`
    發表于 04-22 09:58

    如何查全局變量的初始值

    對于一些全局變量,我找不到它們的初始值,哪位能告訴我如何查出來?
    發表于 01-13 23:17

    如何查詢全局變量的初始值?

    LABVIEW中的一些變量我不知道怎么查初始值,哪位能告訴我如何查詢?謝謝了
    發表于 01-13 23:19

    PROTEUS電容C與電感L初始值設置

    請教下,仿真中,電容兩端電壓(或者電感的電流)PROTEUS默認是0嗎,如果不是,如何設置他們的初始值啊,沒在軟件中找到啊
    發表于 03-15 15:18

    在哪里可以在PAR之后檢查RAM的初始值

    大家好,在地圖報告中有一個第12節,其中,直到ISE 11,可以讀取RAM / ROM初始值?,F在,我使用11.3并且沒有關于RAM / ROM初始值的信息。只有配置DCM等的字符串如何/在哪
    發表于 10-10 11:47

    請問中OSrunning初始值是多少?

    ucos中OSrunning初始值為多少啊,true or false?
    發表于 02-20 00:56

    抑制初始值的警告

    我將一些寄存器的初始值用作永不改變的“常量”。另外,我使用$ readmemb以傳統方式初始化內存。 這導致“警告:HDLC編譯器:872 ......:使用XXX的初始值,因為它從未被分配。有可能
    發表于 02-25 11:10

    具有VHDL初始值的分布式RAM?

    大家好,我正在嘗試用VHDL中的初始值實現分布式RAM。我的目標是Virtex-5- 某處有一個例子嗎?我知道有些Virtex組件確實有一個可以使用泛型傳遞的初始值 - 我應該將它與全局重置或其他
    發表于 02-26 11:15

    請問如何指定EEPROM的初始值?

    :(1324).ier“eeprom”忽略,事實上數據沒有寫入EEPROM。在情況2中(在任何情況下我都不想使用它,因為我需要指定超過8個字節的初始值。有人能告訴我我在做什么嗎?ON,我如何指定EEPROM的初始值?非常感謝您的
    發表于 09-17 07:32

    變量仍然保持初始值

    你好,當我一步一步地執行我的程序時,我有一個奇怪的行為:當程序在上面代碼的第二行上停止,并且我執行該行(一步一步地過去),光標轉到下一行。但變量仍然保持初始值。另一步…然后光標走到前面的行!一個新的步驟,然后再到第三行……你知道我為什么會有這種行為嗎?謝謝你的幫助讓瑪麗
    發表于 09-19 13:30

    S7-300模塊數據(中文)

    S7-300模塊數據(中S7-300模塊數據(中S7-300模塊數據(中
    發表于 06-16 17:57 ?3次下載
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>