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

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

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

函數(shù)的參數(shù)

機(jī)器人及PLC自動化應(yīng)用 ? 來源:機(jī)器人及PLC自動化應(yīng)用 ? 2023-04-27 15:26 ? 次閱讀

調(diào)用函數(shù)(FC)

通過說明函數(shù)名(FC, SFC標(biāo)識符)和參數(shù)表來調(diào)用函數(shù)。能夠用絕對或符號形式指定標(biāo)識返回值的函數(shù)名稱:

FC31 (X1:=5, Q1:=Checksum) ; // 絕對形式

DISTANCE (X1:=5, Q1=:Checksum) ; // 符號形式

調(diào)用之后,函數(shù)的結(jié)果可用作為返回值或作為輸出和輸入/輸出參數(shù)(實(shí)際參數(shù))。

da8e37c4-e4cb-11ed-ab56-dac502259ad0.png

對比功能塊,函數(shù)提供一個結(jié)果當(dāng)作返回值?;谶@個原因,函數(shù)能夠被子當(dāng)作地址來對待(VOID類型的函數(shù)除外)。

函數(shù)計算與函數(shù)有同樣名稱的返回值,且將其返回給調(diào)用它的塊。在那里,值代替函數(shù)調(diào)用。

例如,在下面的賦值中,DISTANCE函數(shù)被調(diào)用,且結(jié)果賦值給LENGTH變量。

LENGTH:= DISTANCE (X1:=-3, Y1:=2);

返回值能夠用在下面的函數(shù)或功能塊元素:

  • 在一個賦值語句中,

  • 在一個邏輯、算術(shù)或比較表達(dá)式

  • 作為更進(jìn)一步的功能塊或函數(shù)調(diào)用的參數(shù)。

函數(shù)的參數(shù)

對比功能塊,函數(shù)沒有任何他們保存參數(shù)值的內(nèi)存。在函數(shù)激活時,本地數(shù)據(jù)只中臨時地貯存。由于這個原因,當(dāng)調(diào)用函數(shù)時,所有在函數(shù)聲明部分定義的形式輸入、輸入/輸出和輸出參數(shù)必須賦予實(shí)際參數(shù)。

例子(Example)

帶為輸入、輸出和輸入/輸出參數(shù)賦值的調(diào)用如下:

FC32 (E_Param1:=5,D_Param1:=LENGTH,

A_Param1:=Checksum)

函數(shù)調(diào)用舉例:

函數(shù)被調(diào)用(Function to be Called)

計算在使用笛卡爾坐標(biāo)系統(tǒng)的同一平面中兩點(diǎn)(X1,Y1)和(X2,Y2)之間距離的函數(shù)DISTANCE可以是下面的形式(此例假設(shè)符號DISTANCE在符號表中為FC37已經(jīng)聲明)。

FUNCTION DISTANCE: REAL // 符號
VAR_INPUT
X1 : REAL;
X2 : REAL;
Y1 : REAL;
Y2 : REAL;
END_VAR
VAR_OUTPUT
Q2 : REAL;
END_VAR
BEGIN
開始
DISTANCE := SQRT( (X2-X1)**2 + (Y2-Y1)**2 );
Q2 := X1+X2+Y1+Y2;
END_FUNCTION

調(diào)用塊(Calling Block)

下例顯示更多函數(shù)值的使用的可選擇的形式:

FUNCTION_BLOCK CALL
VAR
LENGTH : REAL ;
CHECKSUM : REAL ;
RADIUS : REAL;
Y : REAL;
END_VAR
BEGIN
. . .

// 在賦值語句中調(diào)用:
LENGTH := DISTANCE (X1:=3, Y1:=2, X2:=8.9, Y2:= 7.4, Q2:=CHECKSUM) ;
// 在算術(shù)或邏輯表達(dá)式中調(diào)用,如:
Y := RADIUS + DISTANCE (X1:=-3, Y1:=2, X2:=8.9, Y2:=7.4, Q2:=Checksum)
// 用來為進(jìn)一步的被調(diào)用的塊提供參數(shù)
FB32.DB32 (DIST:= DISTANCE (X1:=-3, Y1:=2, X2:=8.9, Y2:=7.4), Q2:=Checksum)
. . .
END_FUNCTION_BLOCK

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 參數(shù)
    +關(guān)注

    關(guān)注

    11

    文章

    1838

    瀏覽量

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

    關(guān)注

    3

    文章

    4333

    瀏覽量

    62720

原文標(biāo)題:函數(shù)的參數(shù)

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機(jī)器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    ARM基礎(chǔ)下:函數(shù)參數(shù)類型知識

    把局部變量從char或者short類型轉(zhuǎn)換成int類型,可以改善性能并減小代碼尺寸,其實(shí),這種轉(zhuǎn)換函數(shù)類型參數(shù)也有同樣的效果,看下面的例子,將2個16位的值相加,其他第2個數(shù)先減半,然后返回一個16
    發(fā)表于 08-27 13:44

    指針怎么作為函數(shù)參數(shù)

    函數(shù)。我試圖用指針作為函數(shù)參數(shù),但好像我做錯了什么。這里是我的代碼的一部分:C文件:UIT88ReByTeDATA;UIT8 8MPU9250ALE請求(空){I2CdMaseRead字節(jié)
    發(fā)表于 09-16 11:09

    怎么將函數(shù)參數(shù)傳遞給內(nèi)聯(lián)ASM

    這是怎么做到的?常規(guī)的asm指令編譯文件,但我從來沒有實(shí)現(xiàn)對函數(shù)外部聲明的函數(shù)參數(shù)或變量的訪問。我已經(jīng)研究了一段時間,但我不是很清楚。什么是正確的合成函數(shù)?當(dāng)做
    發(fā)表于 09-29 09:22

    函數(shù)參數(shù)傳遞總是出錯怎么辦

    函數(shù)參數(shù)傳遞總是出錯,怎么辦?。??可能會是什么原因?
    發(fā)表于 07-19 08:00

    es6語法中函數(shù)參數(shù)

    es6語法中函數(shù)參數(shù) 本文在我們的《 實(shí)用ES6》 一書中有介紹 。 深入了解ES6中引入的新語言功能。ES6引入了Arrow函數(shù),作為編寫JavaScript函數(shù)的新語法。 它們?yōu)殚_
    發(fā)表于 09-16 08:17

    通訊組件的函數(shù)參數(shù)有哪些?它是怎么使用的?

    什么是通訊組件?數(shù)據(jù)類型有哪些?通訊組件的函數(shù)參數(shù)有哪些?通訊組件是怎么使用的?
    發(fā)表于 09-18 07:14

    匯編的子程序函數(shù)參數(shù)和返回值怎么判斷?

    怎么知道一個子程序有沒有函數(shù)參數(shù),有幾個函數(shù)參數(shù),函數(shù)參數(shù)的數(shù)據(jù)類型是什么
    發(fā)表于 10-19 07:21

    指針作為函數(shù)參數(shù)

    指針作為函數(shù)參數(shù) 大多數(shù)C程序員開始使用指針時是用它們實(shí)現(xiàn)函數(shù)參數(shù),所謂可變參數(shù)。為了理解可變參數(shù)
    發(fā)表于 07-29 11:49 ?2718次閱讀

    利用函數(shù)參數(shù)和返回值提高嵌入式軟件質(zhì)量

    利用函數(shù)參數(shù)和返回值提高嵌入式軟件質(zhì)量  引 言   提高軟件代碼的質(zhì)量是每一個軟件設(shè)計者都必須考慮的問題,這涉及軟件的有效性和經(jīng)濟(jì)價值?;谇?/div>
    發(fā)表于 11-07 09:48 ?783次閱讀
    利用<b class='flag-5'>函數(shù)</b><b class='flag-5'>參數(shù)</b>和返回值提高嵌入式軟件質(zhì)量

    VB SendMessage 函數(shù)參數(shù)

    Windows是一個消息驅(qū)動式系統(tǒng),SendMessage是應(yīng)用程序和應(yīng)用程序之間進(jìn)行消息傳遞的主要手段之一,這里我搜集整理了SendMessage函數(shù)的詳細(xì)參數(shù)介紹,以備自用。 聲明: DECLARE INTEGER SendMe
    發(fā)表于 04-20 10:43 ?0次下載

    函數(shù)參數(shù)傳遞的原理

    參數(shù)傳遞,是在程序運(yùn)行過程中,實(shí)際參數(shù)就會將參數(shù)值傳遞給相應(yīng)的形式參數(shù),然后在函數(shù)中實(shí)現(xiàn)對數(shù)據(jù)處理和返回的過程,方法有按值傳遞
    的頭像 發(fā)表于 03-02 11:41 ?7356次閱讀
    <b class='flag-5'>函數(shù)</b><b class='flag-5'>參數(shù)</b>傳遞的原理

    單片機(jī)的本質(zhì)函數(shù)參數(shù)傳遞詳細(xì)資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)的本質(zhì)函數(shù)參數(shù)傳遞詳細(xì)資料說明。
    發(fā)表于 07-16 17:39 ?1次下載
    單片機(jī)的本質(zhì)<b class='flag-5'>函數(shù)</b><b class='flag-5'>參數(shù)</b>傳遞詳細(xì)資料說明

    C語言函數(shù)參數(shù)關(guān)于傳值和傳指針有什么區(qū)別?

    C語言函數(shù)參數(shù)的傳值和傳指針有什么區(qū)別?
    的頭像 發(fā)表于 02-26 16:35 ?2239次閱讀

    C語言函數(shù)參數(shù)介紹

    C語言數(shù)組元素作函數(shù)實(shí)參 數(shù)組元素可以用作函數(shù)實(shí)參,不能用作形參。 C語言在用數(shù)組元素作函數(shù)實(shí)參時,把實(shí)參的值傳給形參,是“值傳遞”方式。 數(shù)據(jù)傳遞的方向是從實(shí)參傳到形參,單向傳遞。 C語言數(shù)組名作
    的頭像 發(fā)表于 03-10 14:30 ?2414次閱讀

    函數(shù)參數(shù)的分類有哪些

    一、函數(shù)參數(shù)的分類 函數(shù)參數(shù)分為兩類:形參 及 實(shí)參 形參:形參是在創(chuàng)建過程中聲明的參數(shù),如果不給形參傳入特定的實(shí)參,形參就沒有實(shí)際的意義
    的頭像 發(fā)表于 11-14 11:13 ?2751次閱讀