精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

西門子博途:SCL編程調用函數/調用函數塊介紹

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 2023-06-20 09:41 ? 次閱讀

調用函數的語法

以下語法用于調用函數:

<函數名稱> (參數列表); //標準調用

<操作數>:=<函數名稱> (參數列表); //在表達式中調用

函數值

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

函數的調用選項取決于函數是否將函數值返回到調用塊。

在 RET_VAL 參數中定義函數值。如果 RET_VAL 參數為 VOID 數據類型,則函數不會向調用塊返回值。如果 RET_VAL 參數為另一種數據類型,則函數會返回該數據類型的函數值。

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

調用選項

SCL 中的調用函數有兩種可能:

函數(有和沒有函數值)的標準調用

使用標準調用,可以將函數的結果作為輸出參數或輸入輸出參數。

在有函數值的函數中調用表達式

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

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

調用后,函數的結果將作為函數值或作為 output 和 in-out 參數提供。

遞歸塊調用

用戶可采用遞歸方式進行塊調用。即,塊可以自我調用。請注意,此類調用的深度限值為 24 級,且不支持多重背景。

參數列表

如果要從 SCL 塊調用另一個代碼塊,則需要為被調用塊的形參提供實參。

可以通過賦值指令指定這些參數。該賦值指令可以為被調用塊中定義的參數進行賦值(實參)。

調用后將在括號內直接列出被調用代碼代的形參。輸入參數和輸入輸出參數的賦值標識符為“:=”,輸出參數的賦值標識符為“=>”。參數后面的灰色占位符表示所需的數據類型和參數類型。

參數的指定規則

下列規則適用于為函數指定參數:

必須提供該函數的所有參數。

賦值的順序不重要。

常數、變量和表達式可作為實參。

形參和實參的數據類型需匹配。也選擇某些特定實參,其數據類型可隱式轉換為形參的數據類型。

各賦值操作通過逗號進行分隔。

如果被調用的塊中只有一個參數,那么在括號中指定的就是實參。無需再指定形參。

在 SCL 中調用函數時,無法通過 EN 使用釋放機制。可以使用 IF 聲明代替有條件調用函數。

調用函數快的語法 下列語法用于以單個背景或多重背景方式調用函數塊:

單個背景:

如果函數塊來自項目: (參數列表)

如果函數塊來自“指令”(Instructions) 任務卡: .<指令名稱> (參數列表) 或 <指令名稱> (參數列表)

多重背景 <#背景名稱> (參數列表)

以單個背景或多重背景的方式調用

可以單個背景或多重背景方式調用函數塊。

以單個背景方式進行調用

調用的函數塊將其數據存儲在自身的數據塊中。

以多重背景方式進行調用

調用的函數塊將其數據存儲在調用函數塊的背景數據塊中。

關于調用類型的更多信息,請參見“另請參見”。

遞歸塊調用

用戶可采用遞歸方式進行塊調用。即,塊可以自我調用。請注意,此類調用的深度限值為 24 級,且不支持多重背景。

參數列表

如果要從 SCL 塊調用另一個代碼塊,可以為被調用塊的形參提供實參。

可以通過賦值指令指定這些參數。該賦值指令可以為被調用塊中定義的參數進行賦值(實參)。

調用后將在括號內直接列出被調用代碼代的形參。輸入參數和輸入輸出參數的賦值標識符為“:=”,輸出參數的賦值標識符為“=>”。參數后面的占位符表示所需的數據類型和參數類型。

參數的指定規則

下列規則適用于指定參數:

常數、變量和表達式可作為實參。

賦值的順序不重要。

形參和實參的數據類型需匹配。也選擇某些特定實參,其數據類型可隱式轉換為形參的數據類型。

各賦值操作通過逗號進行分隔。

如果被調用的塊中只有一個參數,那么在括號中指定的就是實參。無需再指定形參。

SCL 中調用函數的示例

標準調用

以下為標準函數調用 FB 的示例:

SCL
// 標準函數調用
"MyFC" (MyInput := 10, MyInOut := "Tag1");

結果

執行 "MyFC" 塊之后,輸入/輸出參數 "MyInOut" 中確定的值可用于調用塊的 "Tag1" 中,而且需要在此做進一步處理。

以賦值方式調用

以下為以賦值方式調用函數的示例:

SCL
(*在賦值表達式中調用,為 "MyFC" 定義了函數值*)
#MyOperand := "MyFC" (MyInput1 := 3, MyInput2 := 2, MyInput3 := 8.9, MyInOut := "Tag1");

結果

"MyFC" 的函數值將傳輸到 "#MyOperand" 中。

以算術表達式方式進行調用

以下為以算術表達式的方式調用函數的示例:

SCL
(*在數學表達式中調用,為 "MyFC" 定義了函數值*)
#MyOperand := "Tag2" + "MyFC" (MyInput1 := 3, MyInput2 := 2, MyInput3 := 8.9);

結果

"MyFC" 的函數值將加到 "Tag2" 上,并將結果傳送到 "MyOperand"。

在 SCL 中調用函數塊的示例

以單個背景方式進行調用 以下為以單個背景方式調用 FB 的示例:

SCL
// 以單個背景方式調用 "MyDB" (MyInput:=10, MyInout:= "Tag1");

結果

執行調用之后,輸入/輸出參數 "MyInout" 中確定的值可用于 "MyDB" 數據塊的 "Tag1" 中。

以多重背景方式進行調用

以下為以多重背景方式調用 FB 的示例:

SCL
// 以多重背景方式進行調用
#MyFB (MyInput:= 10, MyInout:= "Tag1");

結果

執行 "#MyFB" 塊之后,in/out 參數 "MyInout" 中確定的值可用于調用代碼塊中該數據塊內的 "Tag1"。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 西門子
    +關注

    關注

    93

    文章

    3008

    瀏覽量

    115639
  • SCL
    SCL
    +關注

    關注

    1

    文章

    239

    瀏覽量

    17038

原文標題:西門子博途:SCL編程調用函數/調用函數塊

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何查看及更改函數/函數調用環境

    是循環執行,當一個功能被多個外部函數/函數調用時,我們應如何查看某一次調用時的內部變量呢?這
    的頭像 發表于 11-17 09:08 ?893次閱讀
    如何查看及更改<b class='flag-5'>函數</b>/<b class='flag-5'>函數</b><b class='flag-5'>塊</b>的<b class='flag-5'>調用</b>環境

    SIMATIC S7-1500 PLC S7-SCL SCL詳解

    函數函數西門子的大中型PLC編程中,應用十分廣泛,前介紹
    的頭像 發表于 12-06 09:17 ?924次閱讀
    SIMATIC S7-1500 PLC S7-<b class='flag-5'>SCL</b> <b class='flag-5'>SCL</b><b class='flag-5'>塊</b>詳解

    淺談西門子PLC的“SCL語言”編程

    介紹西門子PLC的“SCL語言”編程,相關編程代碼
    發表于 01-22 17:25 ?0次下載

    高效的C編程函數調用

    14.9 函數調用 函數設計的基本原則是使其函數體盡量的小。這樣編譯器可以對函數做更多的優化。 14.9.1 減少
    發表于 10-17 16:49 ?6次下載
    高效的C<b class='flag-5'>編程</b>之<b class='flag-5'>函數</b><b class='flag-5'>調用</b>

    西門子SCL編程:滾動數據記錄

    責任編輯:xj 原文標題:SCL編程實例:滾動數據記錄 文章出處:【微信公眾號:PLC技術圈】歡迎添加關注!文章轉載請注明出處。 ?
    的頭像 發表于 12-28 09:16 ?4077次閱讀
    <b class='flag-5'>西門子</b><b class='flag-5'>博</b><b class='flag-5'>途</b><b class='flag-5'>SCL</b><b class='flag-5'>編程</b>:滾動數據記錄

    西門子PLC中使用SCL語言編程的技巧

    西門子PLC中使用SCL語言編程的技巧說明。
    發表于 04-22 11:15 ?65次下載

    淺談西門子PLC的SCL語言編程

    西門子PLC的SCL語言編程說明。
    發表于 04-22 14:39 ?47次下載

    淺談西門子SCL編程

    淺談西門子SCL編程資料免費下載。
    發表于 04-23 10:44 ?27次下載

    西門子PLC編程軟件下載

    西門子PLC編程軟件TIA V13 SP1 SIMATIC_WinCC_Runtime_Professional_SP1_for_V13---江西工控論壇有下載密碼www.jx-g
    發表于 03-01 11:04 ?68次下載

    SCL調用函數的示例

    在此,可插入函數 (FC) 調用函數 (FB) 調用函數
    的頭像 發表于 06-06 10:18 ?2093次閱讀

    的多重背景調用

    函數 (FB) 調用另一個函數時,可其實例數據存儲在調用
    的頭像 發表于 06-08 15:50 ?3723次閱讀
    <b class='flag-5'>博</b><b class='flag-5'>途</b>的多重背景<b class='flag-5'>調用</b>

    調用SCL函數-事例

    在以下部分中,將在組織“Main” 中調用 SCL 函數SCL_Best_before_
    的頭像 發表于 08-10 09:51 ?825次閱讀
    <b class='flag-5'>調用</b><b class='flag-5'>SCL</b><b class='flag-5'>函數</b><b class='flag-5'>塊</b>-事例

    西門子: SCL函數調用方法

    SCL 函數在內部讀取 CPU 的系統時間,并根據當前日期和輸入的保質期限(年數)計算“保質期”的年份。 ② 計算出的保質期年份為一個整數值在輸出參數中輸出。 將計算出的值存儲在變量
    發表于 10-16 15:55 ?3325次閱讀
    <b class='flag-5'>西門子</b><b class='flag-5'>博</b><b class='flag-5'>途</b>: <b class='flag-5'>SCL</b><b class='flag-5'>函數</b><b class='flag-5'>塊</b>的<b class='flag-5'>調用</b>方法

    SIMATIC S7-1500 PLC S7-SCL SCL及應用

    函數函數西門子的大中型PLC編程中,應用十分廣泛,前介紹
    的頭像 發表于 12-15 16:18 ?957次閱讀
    SIMATIC S7-1500 PLC S7-<b class='flag-5'>SCL</b> <b class='flag-5'>SCL</b><b class='flag-5'>塊</b>及應用

    西門子:手動更新調用

    選擇不一致的調用,然后在上下文菜單(鼠標右鍵)中選擇函數“Update”。 然后會出現一個窗口,其中顯示舊的(不正確的)和新的調用(帶有已刪除的“ActiveNotAck”參數)。
    的頭像 發表于 12-25 11:12 ?2912次閱讀
    <b class='flag-5'>西門子</b><b class='flag-5'>博</b><b class='flag-5'>途</b>:手動更新<b class='flag-5'>塊</b><b class='flag-5'>調用</b>