18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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

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

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

PLC中Static和Temp變量的區(qū)別

工控論壇 ? 來(lái)源:阿偉碼控 ? 2025-09-24 14:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

大家好,收到粉絲投稿,讓博主講下Static變量和Temp變量的區(qū)別,新入行的兄弟可能會(huì)對(duì)這兩個(gè)概念不太能理解。

那么本期通過(guò)幾個(gè)簡(jiǎn)單的小示例,并且配合PLC程序執(zhí)行函數(shù)功能塊的工作原理,來(lái)講透Static和Temp的區(qū)別,為什么會(huì)有這兩種類型的變量,分別用于解決什么樣的問(wèn)題,以及使用時(shí)的注意事項(xiàng)。

第一個(gè)例子,功能非常非常簡(jiǎn)單,輸入?yún)?shù)req為True時(shí),將變量自增一下,也就是加1,在Static區(qū)和Temp區(qū)分別建立了UDINT類型的變量來(lái)存儲(chǔ)總共收到了多少次有效請(qǐng)求。

004158c8-9174-11f0-8c8f-92fbcf53809c.png

來(lái)測(cè)試一下,可以看到,隨著請(qǐng)求信號(hào)req的變化,tempCounter一直是0,而statCounter則一直在累加。

00a169d4-9174-11f0-8c8f-92fbcf53809c.gif

這是為什么呢?同樣都是在FB功能塊內(nèi)部定義的變量,只是一個(gè)在Static區(qū),一個(gè)在Temp區(qū),為什么結(jié)果會(huì)不同?其實(shí)tempCounter會(huì)在短暫的一段時(shí)間里面,值是為1的,可以這樣試一下。

00feb742-9174-11f0-8c8f-92fbcf53809c.png

這恰好正是它們的區(qū)別所在,我們來(lái)從名稱上看,Temp的意思是臨時(shí)的,臨時(shí)也就意味著定義在它下面的變量,這些變量只是臨時(shí)存在的,只會(huì)在有限的時(shí)間內(nèi)存在,這個(gè)有限的時(shí)間是多少呢?那就是當(dāng)前這個(gè)塊的執(zhí)行時(shí)間,也就是當(dāng)程序執(zhí)行到這個(gè)塊時(shí),才會(huì)將Temp區(qū)的變量創(chuàng)建出來(lái),當(dāng)程序執(zhí)行完這個(gè)塊以后,就會(huì)將Temp區(qū)的變量銷毀。

而Static的意思是靜態(tài),靜態(tài)也就意味著它是一直存在的,而不是程序執(zhí)行時(shí)創(chuàng)建出來(lái)的,Static區(qū)的變量,在你將程序下載到PLC時(shí)就創(chuàng)建出來(lái),并且一直存在了。

這也正是我們常常說(shuō)的,Static區(qū)的變量是有記憶的,而Temp區(qū)的變量是沒(méi)有記憶。

Temp的人生是在不停的輪回,就像喝了孟婆湯,是沒(méi)有前世的記憶。而Static是長(zhǎng)生不老的,是永恒的。

我們?cè)購(gòu)墓ぷ髟砩峡匆幌鹿δ軌K的執(zhí)行過(guò)程發(fā)生了什么?當(dāng)程序在Main OB中執(zhí)行到我們定義的功能塊時(shí),會(huì)在通常叫做棧的存儲(chǔ)區(qū)給它分配一片區(qū)域,標(biāo)記為給它使用,在這片區(qū)域上將Temp區(qū)的變量創(chuàng)建出來(lái),然后執(zhí)行功能塊程序,如果這個(gè)功能塊內(nèi)部還有函數(shù)或是功能塊時(shí),在執(zhí)行到它的時(shí)候,同樣會(huì)在棧的區(qū)域上創(chuàng)建Temp區(qū)的變量,而在相應(yīng)的函數(shù)或是功能塊執(zhí)行結(jié)束時(shí),會(huì)將棧上為它分配的區(qū)域標(biāo)記為未使用。

這也正是為什么說(shuō)Temp區(qū)變量在使用時(shí)要初始化,因?yàn)槟瞧鎯?chǔ)區(qū)域已經(jīng)被使用過(guò),臟了,是不干凈的,你不知道上次留在里面的值是100還是0。

01579d8a-9174-11f0-8c8f-92fbcf53809c.png

再來(lái)看第二個(gè)例子,比如我們有幾個(gè)FB和FC,互相間存在調(diào)用,然后我們?cè)谫Y源中的調(diào)用結(jié)構(gòu)就可以發(fā)現(xiàn),局部數(shù)據(jù),也就是臨時(shí)變量,是在調(diào)用執(zhí)行期間才會(huì)占用空間,而Static區(qū)數(shù)據(jù)是存在DB數(shù)據(jù)塊上的。

01b6b05e-9174-11f0-8c8f-92fbcf53809c.png

0212d974-9174-11f0-8c8f-92fbcf53809c.png

026f3638-9174-11f0-8c8f-92fbcf53809c.png

那為什么要有Temp變量,我全使用Static變量行不行?

當(dāng)然可以,但這會(huì)帶來(lái)兩個(gè)問(wèn)題。我們來(lái)看這段程序

02c95104-9174-11f0-8c8f-92fbcf53809c.png

很簡(jiǎn)單的一段統(tǒng)計(jì)產(chǎn)品良率的程序,這只是一小段程序,用了3個(gè)Temp變量,當(dāng)然可以將它們都定義成Static,不影響功能,但是會(huì)占用Static區(qū)的空間,我們知道PLC的工作空間是有限的,這是第一個(gè)問(wèn)題,會(huì)不必要的增加空間占用。第二個(gè)問(wèn)題是,我們?nèi)タ催@個(gè)DB數(shù)據(jù)塊時(shí),會(huì)多很多這種用于臨時(shí)計(jì)算使用的變量,顯得不夠簡(jiǎn)潔,特別是當(dāng)程序量比較大時(shí)。

所以,對(duì)于這類只是臨時(shí)中間計(jì)算使用,就把它存到Temp中去。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • plc
    plc
    +關(guān)注

    關(guān)注

    5039

    文章

    14270

    瀏覽量

    481510
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4401

    瀏覽量

    66449
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    615

    瀏覽量

    29306

原文標(biāo)題:一文講透PLC中Static和Temp變量的區(qū)別

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    static函數(shù)與普通函數(shù)有什么區(qū)別?  

    變量能否和全局變量重名?   如何引用一個(gè)已經(jīng)定義過(guò)的全局變量?  全局變量可不可以定義在可被多個(gè).C文件包含的頭文件?為什么?
    發(fā)表于 12-03 06:15

    static的全局變量與局部變量的使用,看完你就懂了

    不能被其它文件所用;其它文件可以定義相同名字的變量,不會(huì)發(fā)生沖突。 (1)全局變量和全局靜態(tài)變量區(qū)別 1)全局
    發(fā)表于 06-27 08:54

    static作用(修飾函數(shù)、局部變量、全局變量

    詳細(xì)介紹了static作用(修飾函數(shù)、局部變量、全局變量)的用法
    發(fā)表于 11-17 10:30 ?4次下載

    c語(yǔ)言static的作用

    全局變量只能在本文件訪問(wèn),不能在其它文件訪問(wèn),即便是extern外部聲明也不可以。第三、static修飾一個(gè)函數(shù),則這個(gè)函數(shù)的只能在本文件
    發(fā)表于 11-03 09:36 ?1.6w次閱讀

    C語(yǔ)言register變量和extern及static等知識(shí)總結(jié)

    register變量必須是一個(gè)單個(gè)的值,并且其長(zhǎng)度應(yīng)小于或等于整型的長(zhǎng)度。但是,有些機(jī)器的寄存器也能存放浮點(diǎn)數(shù)。 register變量可能不存放在內(nèi)存,所以不能用取址符運(yùn)算符 。 只有局部
    發(fā)表于 11-21 10:20 ?5次下載

    C語(yǔ)言中static和extern的區(qū)別介紹

    一、在C,static主要定義全局靜態(tài)變量、定義局部靜態(tài)變量、定義靜態(tài)函數(shù)。 1、定義全局靜態(tài)變量:在全局
    發(fā)表于 11-21 10:23 ?6次下載

    基于static變量來(lái)實(shí)現(xiàn)一個(gè)模塊的封裝

    static變量的一個(gè)顯著的作用就是可以實(shí)現(xiàn)一個(gè)模塊的封裝。 static存儲(chǔ)類別的特性決定了static聲明的全局變量只能被本源文件
    的頭像 發(fā)表于 01-05 10:54 ?5875次閱讀
    基于<b class='flag-5'>static</b><b class='flag-5'>變量</b>來(lái)實(shí)現(xiàn)一個(gè)模塊的封裝

    什么是PLC變量

    都通過(guò)變量來(lái)操作。 為指令分配變量后,即會(huì)使用指定變量的值來(lái)執(zhí)行該指令。 變量在 TIA Portal 中集中管理。 在程序編輯器創(chuàng)建
    的頭像 發(fā)表于 10-11 11:53 ?2w次閱讀
    什么是<b class='flag-5'>PLC</b><b class='flag-5'>變量</b>

    西門子PLC變量定義變量

    。 程序多數(shù)指令都通過(guò)變量來(lái)操作。? 為指令分配變量后,即會(huì)使用指定變量的值來(lái)執(zhí)行該指令。 變量在 TIA Portal 中集中管理。?
    的頭像 發(fā)表于 12-23 16:25 ?2.2w次閱讀
    西門子<b class='flag-5'>PLC</b><b class='flag-5'>變量</b>表<b class='flag-5'>中</b>定義<b class='flag-5'>變量</b>

    西門子PLC的局部變量使用技巧

    臨時(shí)變量是臨時(shí)存儲(chǔ)在本地?cái)?shù)據(jù)區(qū)的變量。只有在執(zhí)行POU時(shí),才使用定義的臨時(shí)變量,而在執(zhí)行POU后,不再使用臨時(shí)變量的值。在主程序或中斷程序
    發(fā)表于 12-13 18:07 ?6183次閱讀

    為什么C++單例模式不能直接全部使用static變量static函數(shù)呢?

    通過(guò)getInstance()函數(shù)獲取單例對(duì)象,這種模式的關(guān)鍵之處不是在于強(qiáng)迫你用函數(shù)來(lái)獲取對(duì)象。關(guān)鍵之處是讓static對(duì)象定義在函數(shù)內(nèi)部,變成局部static變量??聪逻@種實(shí)現(xiàn)方式的經(jīng)典demo:
    的頭像 發(fā)表于 06-05 14:14 ?1918次閱讀

    Static變量和Local變量區(qū)別

    變量可以分為3類,即Static、Automatic、和Local。如下表所示。
    的頭像 發(fā)表于 10-12 09:35 ?1913次閱讀

    JAVAstatic、final、static final如何區(qū)分

    當(dāng)我們?cè)谑褂胘ava寫類的屬性時(shí)總會(huì)用到很多的類型去修飾它,比如字符串String,整數(shù)型int,但是我們偶爾也會(huì)遇到 static、final、static final,那么他們的區(qū)別是什么呢?
    的頭像 發(fā)表于 02-14 14:55 ?1512次閱讀
    JAVA<b class='flag-5'>中</b><b class='flag-5'>static</b>、final、<b class='flag-5'>static</b> final如何區(qū)分

    Java對(duì)static關(guān)鍵詞的介紹

    可以說(shuō)是該關(guān)鍵字最常用的一個(gè)功能,通常將用 static 修飾的成員變量稱為類成員或者靜態(tài)成員,那么靜態(tài)成員和不用 static 修飾的非靜態(tài)成員有什么區(qū)別呢? 我們先看看不用
    的頭像 發(fā)表于 10-11 15:26 ?857次閱讀
    Java<b class='flag-5'>中</b>對(duì)<b class='flag-5'>static</b>關(guān)鍵詞的介紹

    什么是變量PLC變量哪些部分組成?

    變量在 TIA Portal 中集中管理。 在程序編輯器創(chuàng)建 PLC 變量與在 PLC 變量
    發(fā)表于 10-15 11:31 ?7020次閱讀
    什么是<b class='flag-5'>變量</b>?<b class='flag-5'>PLC</b><b class='flag-5'>變量</b>哪些部分組成?