国产aaaa级全身裸体精油片_337p人体粉嫩久久久红粉影视_一区中文字幕在线观看_国产亚洲精品一区二区_欧美裸体男粗大1609_午夜亚洲激情电影av_黄色小说入口_日本精品久久久久中文字幕_少妇思春三a级_亚洲视频自拍偷拍

首頁 > 化工知識 > 西門子SCL編程入門教程連載(2)-變量

西門子SCL編程入門教程連載(2)-變量

時間:2020-09-29 來源:方正智芯 瀏覽:

上一篇文章我們對西門子SCL語言進行了簡單的介紹,今天這篇文章,我們來介紹下SCL語言的變量。

變量(Variable),是指在程序運行過程中其值可以被改變的量。與“變量”相對應(yīng)的是“常量(Constant)”。顧名思義,常量的值在程序運行過程中保持不變。

與變量相關(guān)的幾個概念包括:

  1. 變量的名稱;

  2. 變量的數(shù)據(jù)類型;

  3. 變量的作用域;

  4. 變量的生命周期;

變量的名稱簡稱為變量名,用來唯一標(biāo)識該變量。變量名必須滿足編程語言的命名約定,比如S7-200 SMART規(guī)定變量名稱不能以數(shù)字開頭,不能使用關(guān)鍵詞,長度不能超過23個字符等等。

變量的數(shù)據(jù)類型用來表明其占用存儲區(qū)的大小及支持的操作方式。比如,布爾型數(shù)據(jù)占用存儲區(qū)的一個位,而字節(jié)型數(shù)據(jù)占用一個字節(jié),整型數(shù)據(jù)占用兩個字節(jié)等等。

變量的作用域是指變量的作用范圍。根據(jù)作用域的不同,變量可分為全局變量和局部變量;

變量的生命周期是指變量的存在時間。全局變量和靜態(tài)變量的生命周期與系統(tǒng)程序相同,即在整個系統(tǒng)程序運行期間都有效;而臨時變量只在其所屬的程序塊被執(zhí)行期間有效。一旦該程序塊退出運行,該變量的內(nèi)存就被釋放;當(dāng)程序塊再次運行時,其值重新被初始化。更多關(guān)于靜態(tài)變量與臨時變量的內(nèi)容,請參考我之前寫的這篇文章:

什么是靜態(tài)變量?它與臨時變量有什么區(qū)別?(深入解讀)

編程的本質(zhì),是通過各種指令,對數(shù)據(jù)(變量+常量)進行操作的過程。在西門子SCL的編程中,變量必須先聲明才能使用。

下面這張圖是西門子博途V14中SCL編輯器對功能(FC)的編輯界面。

編輯器的上部是變量的聲明部分。其中包括:輸入(Input)、輸出(Output)、輸入及輸出(InOut)、臨時變量(Temp)、常量(Consta)及返回值(Return)。

在輸入(Input)、輸出(Output)、輸入及輸出(InOut)中聲明的變量作為函數(shù)塊(FC)的形參,可以在上級調(diào)用中賦予不同的值。

比如下面這張圖為該功能(FC)添加電機啟停控制的變量參數(shù):

在OB1中調(diào)用該FC的代碼如下圖:

臨時變量只在本程序塊中有效,它一般用來保存程序運行過程的中間值,當(dāng)FC的調(diào)用結(jié)束后,其存儲空間被釋放。也就是說,臨時變量的值不能一直保存。

但有時候,我們需要程序運行的中間結(jié)果也能保存。比如,做一個累加器,我們希望其累加的結(jié)果在下一次調(diào)用時也是存在的,而不是每次都從0開始累加。

怎么辦呢?這就要用到靜態(tài)變量。

在西門子SCL編程中,F(xiàn)C中不能聲明靜態(tài)變量。要使用靜態(tài)變量,必須使用功能塊(FB)。

下面這張圖是FB的編輯界面,其中Static欄就是用來聲明靜態(tài)變量的。

變量的聲明還必須為其指定數(shù)據(jù)類型。明確了數(shù)據(jù)類型,編譯器才知道需要為該變量分配多大的地址空間;明確了數(shù)據(jù)類型,才能知道該變量支持哪些指令。關(guān)于數(shù)據(jù)類型,由于無法添加早期文章的鏈接,請到官網(wǎng)(https://www.founderchip.com)搜索一下?;蛘哌M入小程序【李工談工控】,在搜索欄中搜索“數(shù)據(jù)類型”。

版權(quán):如無特殊注明,文章轉(zhuǎn)載自網(wǎng)絡(luò),侵權(quán)請聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習(xí)使用,務(wù)必24小時內(nèi)刪除。
相關(guān)推薦