模塊化設(shè)計(jì)的思想是把一些相似的功能(比如電機(jī)控制、閥控制)設(shè)計(jì)成函數(shù)或函數(shù)塊,這樣就可以反復(fù)調(diào)用。其優(yōu)點(diǎn)是:使程序架構(gòu)更加清晰,避免重復(fù)編寫(xiě)相似功能的代碼。不過(guò)可能會(huì)產(chǎn)生一個(gè)疑惑:既然PLC的程序是循環(huán)執(zhí)行,當(dāng)一個(gè)功能塊被多個(gè)外部函數(shù)/函數(shù)塊調(diào)用時(shí),我們應(yīng)如何查看某一次調(diào)用時(shí)的內(nèi)部變量呢?這涉及到函數(shù)塊的調(diào)用環(huán)境問(wèn)題,今天這篇文章,我們來(lái)介紹下如何查看及更改函數(shù)/函數(shù)塊的調(diào)用環(huán)境。
我們以函數(shù)庫(kù)中的電機(jī)控制塊FB5001_MotorControl為例,創(chuàng)建兩臺(tái)電機(jī)控制程序。為了使調(diào)用路徑便于觀察,新創(chuàng)建一個(gè)函數(shù):motorControl ,將二號(hào)電機(jī)在該函數(shù)中調(diào)用,整體代碼如下圖所示:
這樣,在OB1和FC1中兩次調(diào)用相同的函數(shù)塊FB5001_MotorControl。
在OB1中打開(kāi)該函數(shù)塊,轉(zhuǎn)到在線狀態(tài):
在函數(shù)塊的左上方會(huì)顯示當(dāng)前調(diào)用路徑,比如當(dāng)前示例:Main[OB1]。
在函數(shù)塊的右上方有一個(gè)更改調(diào)用環(huán)境的按鈕,如下圖所示:
單擊該按鈕,會(huì)彈出[塊的調(diào)用環(huán)境]對(duì)話框,我們將調(diào)用環(huán)境從之前的OB1改成FC1(OB1->FC1),單擊確定,如下圖所示:
假設(shè)我們將FC1下的FB5001_MotorControl的信號(hào)fuse、start形參置為真(TRUE),如下圖所示:
可看到調(diào)用環(huán)境中其內(nèi)部變量也跟隨著變化(TRUE),如下圖所示:
如果我們把調(diào)用環(huán)境更改成OB1,由于OB1下的FB5001_MotorControl其形參為假(FALSE),因此其內(nèi)部變量也跟隨變化(FALSE),如下圖所示:
好了,關(guān)于博途環(huán)境下如何查看及更改塊的調(diào)用環(huán)境就先介紹到這里。
-
plc
+關(guān)注
關(guān)注
5036文章
13902瀏覽量
474287 -
電機(jī)
+關(guān)注
關(guān)注
143文章
9293瀏覽量
149327 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4379瀏覽量
64783 -
模塊化
+關(guān)注
關(guān)注
0文章
340瀏覽量
21977 -
代碼
+關(guān)注
關(guān)注
30文章
4899瀏覽量
70658
發(fā)布評(píng)論請(qǐng)先 登錄
C語(yǔ)言使用函數(shù)調(diào)用的知識(shí)點(diǎn)
matlab自定義函數(shù)調(diào)用的方法
C++教程之函數(shù)的遞歸調(diào)用
高效的C編程之函數(shù)調(diào)用

為什么中斷處理函數(shù)不能直接調(diào)用不可重入函數(shù)
詳解python普通函數(shù)創(chuàng)建與調(diào)用
C語(yǔ)言函數(shù)調(diào)用的形式及過(guò)程
什么是函數(shù)的調(diào)用?
PLC FB函數(shù)塊和FB函數(shù)如何調(diào)用?

SCL中調(diào)用函數(shù)的示例
調(diào)用SCL函數(shù)塊-事例

python定義函數(shù)與調(diào)用函數(shù)的順序
python函數(shù)與函數(shù)之間的調(diào)用
OP-TEE的內(nèi)核初始化函數(shù)調(diào)用

我們應(yīng)如何查看某一次函數(shù)塊調(diào)用時(shí)的內(nèi)部變量呢?

評(píng)論