小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

西門子博途:SCL編程調(diào)用函數(shù)/調(diào)用函數(shù)塊

 阿明哥哥資料區(qū) 2023-07-27 發(fā)布于上海

調(diào)用函數(shù)的語法

以下語法用于調(diào)用函數(shù):

<函數(shù)名稱> (參數(shù)列表); //標(biāo)準(zhǔn)調(diào)用

<操作數(shù)>:=<函數(shù)名稱> (參數(shù)列表); //在表達(dá)式中調(diào)用

函數(shù)值

在 SCL 中,提供返回值的函數(shù)可在任何表達(dá)式中代替操作數(shù)。因此,返回值也稱為 SCL 中的“函數(shù)值”。

函數(shù)的調(diào)用選項(xiàng)取決于函數(shù)是否將函數(shù)值返回到調(diào)用塊。

在 RET_VAL 參數(shù)中定義函數(shù)值。如果 RET_VAL 參數(shù)為 VOID 數(shù)據(jù)類型,則函數(shù)不會(huì)向調(diào)用塊返回值。如果 RET_VAL 參數(shù)為另一種數(shù)據(jù)類型,則函數(shù)會(huì)返回該數(shù)據(jù)類型的函數(shù)值。

在 SCL 中,RET_VAL 參數(shù)可以使用除 ANY、ARRAY、STRUCT 和 VARIANT,以及 TIMER 和 COUNTER 參數(shù)類型之外的所有數(shù)據(jù)類型。

調(diào)用選項(xiàng)

SCL 中的調(diào)用函數(shù)有兩種可能:

  • 函數(shù)(有和沒有函數(shù)值)的標(biāo)準(zhǔn)調(diào)用

    使用標(biāo)準(zhǔn)調(diào)用,可以將函數(shù)的結(jié)果作為輸出參數(shù)或輸入輸出參數(shù)。

  • 在有函數(shù)值的函數(shù)中調(diào)用表達(dá)式

    返回函數(shù)值的函數(shù)可以在任何表達(dá)式中代替操作數(shù),例如,在賦值表達(dá)式中。

    函數(shù)計(jì)算函數(shù)值(與函數(shù)同名),并將其返回到調(diào)用塊。這里,該值可替換此函數(shù)調(diào)用。

    調(diào)用后,函數(shù)的結(jié)果將作為函數(shù)值或作為 output 和 in-out 參數(shù)提供。

遞歸塊調(diào)用

用戶可采用遞歸方式進(jìn)行塊調(diào)用。即,塊可以自我調(diào)用。請(qǐng)注意,此類調(diào)用的深度限值為 24 級(jí),且不支持多重背景。

參數(shù)列表

如果要從 SCL 塊調(diào)用另一個(gè)代碼塊,則需要為被調(diào)用塊的形參提供實(shí)參。

可以通過賦值指令指定這些參數(shù)。該賦值指令可以為被調(diào)用塊中定義的參數(shù)進(jìn)行賦值(實(shí)參)。

調(diào)用后將在括號(hào)內(nèi)直接列出被調(diào)用代碼代的形參。輸入?yún)?shù)和輸入輸出參數(shù)的賦值標(biāo)識(shí)符為“:=”,輸出參數(shù)的賦值標(biāo)識(shí)符為“=>”。參數(shù)后面的灰色占位符表示所需的數(shù)據(jù)類型和參數(shù)類型。

參數(shù)的指定規(guī)則

下列規(guī)則適用于為函數(shù)指定參數(shù):

  • 必須提供該函數(shù)的所有參數(shù)。

  • 賦值的順序不重要。

  • 常數(shù)、變量和表達(dá)式可作為實(shí)參。

  • 形參和實(shí)參的數(shù)據(jù)類型需匹配。也選擇某些特定實(shí)參,其數(shù)據(jù)類型可隱式轉(zhuǎn)換為形參的數(shù)據(jù)類型。

  • 各賦值操作通過逗號(hào)進(jìn)行分隔。

  • 如果被調(diào)用的塊中只有一個(gè)參數(shù),那么在括號(hào)中指定的就是實(shí)參。無需再指定形參。

  • 在 SCL 中調(diào)用函數(shù)時(shí),無法通過 EN 使用釋放機(jī)制??梢允褂?IF 聲明代替有條件調(diào)用函數(shù)。


調(diào)用函數(shù)快的語法
下列語法用于以單個(gè)背景或多重背景方式調(diào)用函數(shù)塊:
  • 單個(gè)背景:
    • 如果函數(shù)塊來自項(xiàng)目:
      <DB 名稱>(參數(shù)列表)
    • 如果函數(shù)塊來自“指令”(Instructions) 任務(wù)卡:
      <DB 名稱>.<指令名稱> (參數(shù)列表)
      <指令名稱> (參數(shù)列表)
  • 多重背景
    <#背景名稱> (參數(shù)列表)

以單個(gè)背景或多重背景的方式調(diào)用

可以單個(gè)背景或多重背景方式調(diào)用函數(shù)塊。

  • 以單個(gè)背景方式進(jìn)行調(diào)用

    調(diào)用的函數(shù)塊將其數(shù)據(jù)存儲(chǔ)在自身的數(shù)據(jù)塊中。

  • 以多重背景方式進(jìn)行調(diào)用

    調(diào)用的函數(shù)塊將其數(shù)據(jù)存儲(chǔ)在調(diào)用函數(shù)塊的背景數(shù)據(jù)塊中。

關(guān)于調(diào)用類型的更多信息,請(qǐng)參見“另請(qǐng)參見”。

遞歸塊調(diào)用

用戶可采用遞歸方式進(jìn)行塊調(diào)用。即,塊可以自我調(diào)用。請(qǐng)注意,此類調(diào)用的深度限值為 24 級(jí),且不支持多重背景。

參數(shù)列表

如果要從 SCL 塊調(diào)用另一個(gè)代碼塊,可以為被調(diào)用塊的形參提供實(shí)參。

可以通過賦值指令指定這些參數(shù)。該賦值指令可以為被調(diào)用塊中定義的參數(shù)進(jìn)行賦值(實(shí)參)。

調(diào)用后將在括號(hào)內(nèi)直接列出被調(diào)用代碼代的形參。輸入?yún)?shù)和輸入輸出參數(shù)的賦值標(biāo)識(shí)符為“:=”,輸出參數(shù)的賦值標(biāo)識(shí)符為“=>”。參數(shù)后面的占位符表示所需的數(shù)據(jù)類型和參數(shù)類型。

參數(shù)的指定規(guī)則

下列規(guī)則適用于指定參數(shù):

  • 常數(shù)、變量和表達(dá)式可作為實(shí)參。

  • 賦值的順序不重要。

  • 形參和實(shí)參的數(shù)據(jù)類型需匹配。也選擇某些特定實(shí)參,其數(shù)據(jù)類型可隱式轉(zhuǎn)換為形參的數(shù)據(jù)類型。

  • 各賦值操作通過逗號(hào)進(jìn)行分隔。

  • 如果被調(diào)用的塊中只有一個(gè)參數(shù),那么在括號(hào)中指定的就是實(shí)參。無需再指定形參。


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

標(biāo)準(zhǔn)調(diào)用

以下為標(biāo)準(zhǔn)函數(shù)調(diào)用 FB 的示例:

SCL

// 標(biāo)準(zhǔn)函數(shù)調(diào)用

'MyFC' (MyInput := 10, MyInOut := 'Tag1');

結(jié)果

執(zhí)行 'MyFC' 塊之后,輸入/輸出參數(shù) 'MyInOut' 中確定的值可用于調(diào)用塊的 'Tag1' 中,而且需要在此做進(jìn)一步處理。

以賦值方式調(diào)用

以下為以賦值方式調(diào)用函數(shù)的示例:

SCL

(*在賦值表達(dá)式中調(diào)用,為 'MyFC' 定義了函數(shù)值*)

#MyOperand := 'MyFC' (MyInput1 := 3, MyInput2 := 2, MyInput3 := 8.9, MyInOut := 'Tag1');

結(jié)果

'MyFC' 的函數(shù)值將傳輸?shù)?'#MyOperand' 中。

以算術(shù)表達(dá)式方式進(jìn)行調(diào)用

以下為以算術(shù)表達(dá)式的方式調(diào)用函數(shù)的示例:

SCL

(*在數(shù)學(xué)表達(dá)式中調(diào)用,為 'MyFC' 定義了函數(shù)值*)

#MyOperand := 'Tag2' + 'MyFC' (MyInput1 := 3, MyInput2 := 2, MyInput3 := 8.9);

結(jié)果

'MyFC' 的函數(shù)值將加到 'Tag2' 上,并將結(jié)果傳送到 'MyOperand'。


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

以單個(gè)背景方式進(jìn)行調(diào)用
以下為以單個(gè)背景方式調(diào)用 FB 的示例:


SCL
// 以單個(gè)背景方式調(diào)用
'MyDB' (MyInput:=10, MyInout:= 'Tag1');

結(jié)果

執(zhí)行調(diào)用之后,輸入/輸出參數(shù) 'MyInout' 中確定的值可用于 'MyDB' 數(shù)據(jù)塊的 'Tag1' 中。

以多重背景方式進(jìn)行調(diào)用

以下為以多重背景方式調(diào)用 FB 的示例:

SCL

// 以多重背景方式進(jìn)行調(diào)用

#MyFB (MyInput:= 10, MyInout:= 'Tag1');

結(jié)果

執(zhí)行 '#MyFB' 塊之后,in/out 參數(shù) 'MyInout' 中確定的值可用于調(diào)用代碼塊中該數(shù)據(jù)塊內(nèi)的 'Tag1'。

Image

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多