在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

對于FC或FB中的臨時變量使用

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 作者:機器人及PLC自動化 ? 2022-11-07 16:50 ? 次閱讀

很多初學者容易將 FC 及FB 相混淆,認為 FB 僅僅是比 FC 多了一個背景數據塊,這種認識是非常危險的。在 STEP7 的關于 FC 的描述是這樣的:

FC 是一個沒有存儲空間的邏輯塊。FC 的臨時變量存儲在本地數據堆棧中,這些數據在 FC 執行完畢后將會丟失。為了永久的保存數據,FC 可以使用共享數據塊。

由于 FC 沒有自己的存儲空間,所以必須指定實參給它的參數(這就是為什么 FC 的輸入輸出管腳必須填寫參數的原因)。FC 的臨時變量(位于本地數據堆棧中)是無法指定初始值的(由于本地數據堆棧是由系統自動動態使用的)。為了更形象的說明這一點,我們來看下面的例子,此例子對 L 堆棧在程序調用時的分配進行了詳細的講解:

L 堆棧永遠以地址“0”開始。在 L 堆棧中,會為每個 FC 提供一定地址空間,作為存放每個塊所擁有的固有數據或局部數據。當某個塊終止時,那么它的空間隨之也被重新釋放出來。指針總是指向當前打開塊的第一個字節。

運行等級 L 堆棧中的字節數 指針
調用OB1(帶有 20 個字節的系統固有數據和局部數據的 10 個附加字節) 30 0
調用 FC1(帶有 30 個字節的局部數據)
30 個字節 (OB1) + 30 個字節 (FC1)
60 30
調用 FC20(帶有 20 個字節的局部數據)
60 個字節 (OB1 + FC1) +20 個字節 FC10
80 60
調用 FC21(帶有 20 個字節的局部數據)
60 個字節 (OB1 + FC1) +20 個字節 FC11
80 60
調用 FC2(帶有 50 個字節的局部數據)
30 個字節 (OB1) +50 個字節 (FC2)
80 30
調用 FC30(帶有 10 個字節的局部數據)
80 個字節 (OB1 + FC2) +10 個字節 FC20
90 80

由上面的例子可以看出:對于FC20 曾經使用過的系統中 L 堆棧 60-80 區間(FC20 中地址范圍為 LB0-LB19)在 FC20 調用結束后,被提供給 FC21 使用(FC21 中地址范圍同樣為 LB0-LB19)。 對于 FC 的臨時變量認識不清晰,用戶在對臨時變量的使用當中,也經常會出現一些錯誤,下面將使用一個例子非常直觀地說明上面的問題

程序原目的:

在 OB1 在程序中調用FC20 后立即調用 FC21

FC20 中將 20 賦值給臨時變量 FC20_TEMP1,將 21 賦值給臨時變量 FC20_TEMP2FC21 中將 FC21_TEMP1,FC21_TEMP2 相加

程序分析:我們發現 FC20 中的臨時變量曾經出現的數值(20,21)被 FC21 中的臨時變量FC21_TEMP1, FC21_TEMP2 得到了,如果直接使用這兩個臨時變量進行加法操作,可以得到結果 41。對于編程人員來說,臨時變量必須要在所在程序段中賦值,而后使用。用戶對此例中的 FC21_TEMP1, FC21_TEMP2 必須先做清零處理,否則其在使用前即可能擁有數值。

016556ba-5e77-11ed-a3b6-dac502259ad0.png

結論:對于 FC 或 FB 中的臨時變量,不要希望將本次調用的數值可以存儲在里面以供下次程序調用使用,因為這些臨時變量所使用的 L 堆??臻g在 FC 或 FB 調用結束就釋放給系統了,其它后續程序可以任意使用。所以下列用法都是錯誤的:

將臨時變量用于上升/下降沿指令

將臨時變量用于自保持邏輯

臨時變量未在所在程序段中賦值,直接使用

審核編輯:郭婷

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

    關注

    13

    文章

    4314

    瀏覽量

    85846
  • 堆棧
    +關注

    關注

    0

    文章

    182

    瀏覽量

    19761

原文標題:FC 中臨時變量的使用:

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

收藏 人收藏

    評論

    相關推薦

    fc—sc是什么尾纖

    Connector)連接器的光纖跳線。這種尾纖通常用于連接不同類型的光纖通信設備,如光纖收發器、光纖交換機、測試設備光纖配線架(ODF)等,以實現光纖信號在不同設備接口之間的傳輸。 二、連接器特點 FC連接器:
    的頭像 發表于 12-05 10:48 ?138次閱讀

    圖紙模板的文本變量

    進行定義。無論是系統內置的變量,還是用戶自定義的變量,都以這種方式表述。 系統內置文本變量 以下表格展示系統內置的文本變量,無需定義,可以直接使用: 比如說,如果在圖紙編輯器
    的頭像 發表于 11-13 18:21 ?179次閱讀
    圖紙模板<b class='flag-5'>中</b>的文本<b class='flag-5'>變量</b>

    如何在文本字段中使用上標、下標及變量

    在KiCad的任何文本字段,都可以通過以下的方式實現上標、下標、上劃線以及顯示變量及字段值的描述: 文本變量“文本變量”可以在 原理圖設置->工程->文本
    的頭像 發表于 11-12 12:23 ?114次閱讀
    如何在文本字段中使用上標、下標及<b class='flag-5'>變量</b>

    Linux環境變量配置方法

    Linux上環境變量配置分為設置永久變量臨時變量兩種。環境變量設置方法同時要考慮環境Shell類型,不同類型的SHELL設置
    的頭像 發表于 10-23 13:39 ?168次閱讀

    光纖跳線fc-lc干嘛用的

    Connector)連接器,能夠在FC接口設備和LC接口設備之間進行靈活連接。以下是關于光纖跳線FC-LC的詳細用途: 一、設備互連 在數據中心局域網,經常需要將使用LC連接器的
    的頭像 發表于 10-11 10:25 ?569次閱讀

    CC2340R5有沒有變量可以代替直接使用地址0x400043FC,該如何使用?

    我現在需要SYS0_DEVICED內存中高位數據,目前在內存對應的是0x400043FC。 SYS0_DEVICED會一直是0x400043FC嗎? 有沒有變量可以代替直接使用地址
    發表于 05-30 08:21

    STEP7-5.5-F程序FB塊修改后的變化

    STEP7-5.5-F程序FB塊修改后的變化
    發表于 04-07 11:46 ?648次閱讀
    STEP7-5.5-F程序<b class='flag-5'>中</b><b class='flag-5'>FB</b>塊修改后的變化

    如何調整S7-1500S7-GRAPH FB的保持性屬性

    FB 塊屬性“優化的塊訪問”默認勾選并且顯示灰色無法操作,如圖 2 所示。對于需要從CPU停止時所處步號繼續運行的應用場合,必須設置保持性屬性為“保持”。
    發表于 04-03 09:17 ?729次閱讀
    如何調整S7-1500<b class='flag-5'>中</b>S7-GRAPH <b class='flag-5'>FB</b>的保持性屬性

    為什么stm32cubeide經常按住Ctrl+點擊函數變量無法跳轉到對應函數變量定義?

    為什么stm32cubeide經常按住Ctrl+點擊函數變量無法跳轉到對應函數變量定義。只能用全局搜索去找函數。
    發表于 03-13 07:59

    西門子博途:SCLFB模塊的結構

    模塊FB是用于控制執行器和單元的功能模塊執行某一功能的其他FB的塊。 VASS庫不可用的塊必須由系統供應商與負責的標準化電氣工程部門協商創建。
    發表于 01-18 10:38 ?1447次閱讀
    西門子博途:SCL<b class='flag-5'>中</b><b class='flag-5'>FB</b>模塊的結構

    SCLFB模塊的結構

    模塊FB是用于控制執行器和單元的功能模塊執行某一功能的其他FB的塊。
    的頭像 發表于 01-17 09:22 ?730次閱讀
    SCL<b class='flag-5'>中</b><b class='flag-5'>FB</b>模塊的結構

    智能安全配電裝置在臨時展會場所的應用

    ? 智能安全配電裝置在臨時展會場所的應用 【摘要】 簡述了商場臨時展會、展攤等場所電氣裝置用電的特性,針對此類場所隱含的電氣安全隱患問
    的頭像 發表于 01-16 13:50 ?311次閱讀
    智能安全配電裝置在<b class='flag-5'>臨時</b>展會場所<b class='flag-5'>中</b>的應用

    自動控制系統的操縱變量指什么

    自動控制系統的操縱變量指的是在系統由控制器控制的可調節參數,用于調節改變被控對象的輸出狀態。操縱
    的頭像 發表于 01-15 11:29 ?5224次閱讀

    C語言:指針內存是如何存放變量

    在程序定義一個變量,那么在程序編譯的過程,系統會根據你定義變量的類型來分配「相應尺寸」的內存空間。那么如果要使用這個變量,只需要用
    發表于 01-08 10:14 ?477次閱讀

    Linux環境變量配置方法

    想必大家平時工作也會配置Linux的環境變量,但是可能也僅僅是為解決某些工具的運行環境,對于Linux環境變量本身的配置學問還沒深入了解。今天浩道跟大家分享Linux環境
    的頭像 發表于 01-04 09:51 ?546次閱讀
    主站蜘蛛池模板: 成年女人毛片| 欧美精品一区二区三区在线播放| 男男小说高h| 日本特黄在线观看免费| www.黄视频| 我被黑人巨大开嫩苞在线观看 | 亚洲最新在线| 免费观看成人毛片| 天天射夜夜骑| 亚色最新网址| 欧美色视频网站| 天天射天天干天天插| 中文字幕一区二区三区不卡| 色多多视频在线观看| 在线视频精品免费| 在线视频 二区| 欧美色婷婷| 精品午夜视频| 亚洲成a人在线播放www| 操女网站| 一日本道加勒比高清一二三| 青草青青视频| 天天操夜| 一级做a爰片久久毛片一| 国产区一区二区三| 欧美特黄三级在线观看| 色多多免费视频观看区一区| 天天综合天天看夜夜添狠狠玩| 性久久久久| 经典三级一区在线播放| mm365快播综合网| 色噜噜噜噜| 色花堂国产精品首页第一页| 最近2018年在线中文字幕高清| 国产妇女在线| 亚洲精品成人网| 黄色香蕉网站| 91av视频在线| 久久青草91免费观看| 啪啪国产视频| 免费成人黄色网址|