<object id="seflp"></object>

    1. <object id="seflp"></object>
      <dfn id="seflp"></dfn>
          加入收藏 在線留言 聯系我們
          關注微信
          手機掃一掃 立刻聯系商家
          全國服務熱線17838383235

          6DD1683-0CD0西門子模塊

          更新時間
          2024-11-24 08:50:00
          價格
          請來電詢價
          西門子
          SP23
          電源設備
          5V/25A,15V,DC
          德國
          24V-Eingang
          聯系電話
          17838383235
          聯系手機
          17838383235
          聯系人
          徐嘉泉
          立即詢價

          詳細介紹

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



          調用函數的語法

          以下語法用于調用函數:

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

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


          函數值

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

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

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

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

          調用選項

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

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

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

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

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

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

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

        3. 遞歸塊調用

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

          參數列表

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

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

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

          參數的指定規則

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

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

        5. 賦值的順序不重要。

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

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

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

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

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



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


        12. 單個背景:
        13. 如果函數塊來自項目:<DB 名稱>(參數列表)
        14. 如果函數塊來自“指令”(Instructions) 任務卡:<DB 名稱>.<指令名稱> (參數列表)或<指令名稱> (參數列表)
        15. 多重背景<#背景名稱> (參數列表)

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

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

        17. 以單個背景方式進行調用

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

        18. 以多重背景方式進行調用

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

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

          遞歸塊調用

          參數列表

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

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

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

          參數的指定規則

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

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

        21. 賦值的順序不重要。

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

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

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





        25. 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"。



          相關產品

          聯系方式

          • 電  話:17838383235
          • 經理:徐嘉泉
          • 手  機:17838383235
          • 微  信:17838383235