免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
PLC的各種變量怎樣使用?

我最早接觸“靜態(tài)變量”的概念是在計算機C語言的編程中,清楚的記得它需要用'static'關(guān)鍵字來聲明。靜態(tài)變量(Static Variable)其實也是一種變量(Variable),因此在介紹靜態(tài)變量(Static Variable)之前,我們先來介紹下在計算機和PLC的編程中“變量(Variable)”的概念。

1 什么是變量

所謂“變量”,是在程序的運行過程中,其值可以根據(jù)某些條件而發(fā)生變化的量。與“變量”相對的是“常量(Constant)”,顧名思義,常量的值在整個程序的運行中保持不變。

變量的名字稱為“變量名”,變量名通常是一個助記符,用來表示一個物理地址。在這個地址上存放著變量的值。

變量有兩個特性:作用域和生命周期。

2 全局變量與局部變量

變量的作用域是指變量的作用范圍,也就是在哪些范圍內(nèi)該變量是有效的。根據(jù)作用域的不同,變量可以分為全局變量(Global Variable)和局部變量(Local Variable)。

全局變量在整個程序范圍內(nèi)都有效。

在C語言中,全局變量是在函數(shù)外部聲明的變量。比如下面C語言代碼中的“a”和“x”都是全局變量:

注:由于C語言從上而下執(zhí)行,全局變量x并不能在函數(shù)func1中訪問。

在西門子S7系列PLC的編程中,那些存放在公共存儲區(qū)的變量都屬于全局變量。公共存儲區(qū)包括輸入緩存區(qū)(I)、輸出緩存區(qū)(Q)、位存儲區(qū)(M)、全局數(shù)據(jù)塊(Global DB)、定時器(T)、計數(shù)器(C)等等。比如,位存儲區(qū)的M0.0,你可以在主程序(OB)或子程序(FB、FC)中訪問它,它是全局的。

局部變量(Local Variable)是只能在某個子程序(FB或FC)中訪問的變量。

也就是說,局部變量是私有的,子程序(FB或FC)只能訪問其自身內(nèi)部定義的變量,而不能訪問其它子程序內(nèi)部定義的變量。

從生命周期來看,全局變量的生命周期是整個程序的運行周期。也就是說,只要PLC還運行用戶程序,全局變量就一直有效。

而局部變量的生命周期則取決于其存放的位置。

2 臨時變量與靜態(tài)變量

對于S7系列PLC而言,局部變量有兩個存放的位置:臨時變量存儲區(qū)(堆棧)和背景數(shù)據(jù)塊(Instance DB)。

臨時變量存儲區(qū)(堆棧),也稱為局部變量存儲區(qū)(Local Memory),用來存放FB或FC在運行過程中的臨時變量。

在S7系列PLC中,F(xiàn)B、FC或者OB都被稱為“程序組織單元(POU,program organizational unit)”。PLC為每個POU分配一定數(shù)量的臨時變量存儲區(qū),在S7-300/400 PLC中,這個區(qū)域的大小為256字節(jié);在S7-200 Smart PLC中,這個區(qū)域的大小為64字節(jié)。

臨時變量存儲區(qū)中的變量稱為“臨時變量”,它們只在當(dāng)前POU運行時有效。當(dāng)POU運行結(jié)束后,該變量將被釋放(無法保存)。

注:當(dāng)POU由于中斷而被掛起時,其臨時變量會被保存,以便下次中斷現(xiàn)場恢復(fù)后繼續(xù)執(zhí)行。

如果想保存程序運行的中間值怎么辦呢?答案是使用靜態(tài)變量(Static Variable)。

在博途(TIA Portal)環(huán)境或Step7開發(fā)環(huán)境中,功能塊(FB)接口有“Static(STAT)”一項。所有在“STAT”欄內(nèi)定義的變量都將會被存放到背景數(shù)據(jù)塊中。在FB運行結(jié)束后,“STAT”中定義的變量不會被釋放。這種變量稱為“靜態(tài)變量”。如下圖中的變量“STAT_test1”和“STAT_test2”:

注:FB中的IN、OUT參數(shù)也會保存到背景數(shù)據(jù)塊中。背景數(shù)據(jù)塊中的數(shù)據(jù)只能被擁有它的功能塊(FB)訪問。

說到這里,你應(yīng)該明白了吧?靜態(tài)變量從作用域上分屬于局部變量;從生命周期上來看,它與用戶程序的生命周期相同。臨時變量也屬于局部變量,不過其生命周期短,僅在POU運行的過程中有效。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
西門子S7-1200的變量如何使用?什么是局部變量和全局變量?臨時變量和靜態(tài)變量有什么區(qū)別?
s7中的變量
C語言變量的作用域與生命周期
const關(guān)鍵字及其作用(用法),C語言const詳解
01 選擇題: 變量,常量,靜態(tài)變量存儲的位置
static作用:靜態(tài)變量的生存周期和作用域
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服