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

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

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

3天內不再提示

博途中SCL的賦值運算

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 2023-06-19 10:57 ? 次閱讀

定義

可通過賦值運算,可以將一個表達式的值分配給一個變量。賦值表達式的左側為變量,右側為表達式的值。

函數名稱也可以作為表達式。賦值運算將調用該函數,并返回其函數值,賦給左側的變量。

賦值運算的數據類型取決于左邊變量的數據類型。右邊表達式的數據類型必須與該數據類型一致。

可通過以下方式編程賦值運算:

單賦值運算

執行單賦值運算時,僅將一個表達式或變量分配給單個變量:

示例:a := b;

多賦值運算

執行多賦值運算時,一個指令中可執行多個賦值運算。

示例:a := b := c;

此時,將執行以下操作:

b := c;

a := b;

組合賦值運算

執行組合賦值運算時,可在賦值運算中組合使用操作符“+”、“-”、“*”和“/”:

示例:a += b;

此時,將執行以下操作:

a := a + b;

也可多次組合賦值運算:

a += b += c *= d;

此時,將按以下順序執行賦值運算:

c := c * d;

b := b + c;

a := a + b;

STRUCT 數據類型或 PLC 數據類型的賦值運算

如果結構相同而且結構中成員的數據類型和名稱也相同,則可以將整個結構分配給另一個結構。

可以為單個結構元素分配一個變量、一個表達式或另一個結構元素。

ARRAY 數據類型的賦值運算

如果兩者的 ARRAY 元素數據類型以及 ARRAY 限值都匹配,則可以將整個 ARRAY 分配給另一個 ARRAY。

可以為單個 ARRAY 元素分配一個變量、一個表達式或另一個 ARRAY 元素。

STRING 數據類型的賦值運算

可將整個 STRING 賦值給另一個 STRING。

可以為單個 STRING 元素分配另一個 STRING 元素。

WSTRING 數據類型的賦值 (S7-1200/1500)

可將整個 WSTRING 賦值給另一個 WSTRING。

可以為單個 WSTRING 元素分配另一個 WSTRING 元素。

ANY 數據類型的賦值運算

只能將 ANY 數據類型的變量賦值給以下對象:

同樣為 ANY 數據類型的 FB 的輸入參數或臨時本地數據。

同樣為 ANY 數據類型的 FC 的臨時本地數據。

請注意,使用 ANY 指針時,只能指向“標準”訪問模式的存儲區。

POINTER 數據類型的賦值運算

在 SCL 的賦值運算中不能使用 POINTER。

示例

下表舉例說明了單賦值運算的操作:

SCL
"MyTag1" := "MyTag2"; (* 變量賦值 *)
"MyTag1" := "MyTag2" * "MyTag3"; (* 表達式賦值 *)
"MyTag" := "MyFC"(); (* 調用一個函數,并將函數值賦給 "MyTag" 變量 *)
#MyStruct.MyStructElement := "MyTag"; (* 將一個變量賦值給一個結構元素 *)
#MyArray[2] := "MyTag"; (* 將一個變量賦值給一個 ARRAY 元素 *)
"MyTag" := #MyArray[1,4]; (* 將一個 ARRAY 元素賦值給一個變量 *)
#MyString[2] := #MyOtherString[5]; (* 將一個 STRING 元素賦給另一個 STRING 元素 *)

下表舉例說明了多賦值運算的操作:

SCL
"MyTag1" := "MyTag2" := "MyTag3"; (* 變量賦值 *)
"MyTag1" := "MyTag2" := "MyTag3" * "MyTag4"; (* 表達式賦值 *)
"MyTag1" := "MyTag2" := "MyTag3 := "MyFC"(); (* 調用一個函數,并將函數值賦值給變量 "MyTag1"、"MyTag1" 和 "MyTag1" *)
#MyStruct.MyStructElement1 := #MyStruct.MyStructElement2 := "MyTag"; (* 將一個變量賦值給兩個結構元素 *)
#MyArray[2] := #MyArray[32] := "MyTag"; (* 將一個變量賦值給兩個數組元素 *)
"MyTag1" := "MyTag2" := #MyArray[1,4]; (* 將一個數組元素賦值給兩個變量 *)
#MyString[2] := #MyString[3]:= #MyOtherString[5]; (* 將一個 STRING 元素賦值給兩個 STRING 元素 *)

下表舉例說明了組合賦值運算的操作:

SCL
"MyTag1" += "MyTag2"; (* "MyTag1" 和 "MyTag2" 相加,并將相加的結果賦值給 "MyTag1"。*)
"MyTag1" -= "MyTag2" += "MyTag3"; (* "MyTag2" 和 "MyTag3" 相加。將相加的結果賦值給操作數“"MyTag2"”,再從 "MyTag1" 中減去該值。計算結果將賦值給 "MyTag1"。*)
#MyArray[2] += #MyArray[32] += "MyTag"; (* 數組元素 "MyArray[32]" 加上 "MyTag"。計算結果將賦值給 "MyArray[32]"。這個數組中的各個元素將相加,然后將結果分配給數組元素 "MyArray[2]"。在該運算中,相應的數據類型必需兼容。*)
#MyStruct.MyStructElement1 /= #MyStruct.MyStructElement2 *= "MyTag"; (* 結構化元素 "MyStructElement2" 乘以 "MyTag"。計算結果將賦值給 "MyStructElement2"。之后,將結構化元素 "MyStructElement1" 除以 "MyStructElement2",并將計算結果賦值給 "MyStructElement1"。在該運算中,相應的數據類型必需兼容。*)

審核編輯:湯梓紅

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

    關注

    3

    文章

    4307

    瀏覽量

    62433
  • 運算
    +關注

    關注

    0

    文章

    130

    瀏覽量

    25778
  • SCL
    SCL
    +關注

    關注

    1

    文章

    239

    瀏覽量

    17038

原文標題:博途:SCL的賦值運算

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

收藏 人收藏

    評論

    相關推薦

    C語言中賦值運算符詳解

    在C語言中,賦值運算符用于將一個值賦給變量。
    發表于 08-18 16:38 ?1833次閱讀
    C語言中<b class='flag-5'>賦值</b><b class='flag-5'>運算</b>符詳解

    SCL語言FOR循環的用法及典型案例

    SCL
    YS YYDS
    發布于 :2023年06月25日 00:06:13

    C51中的復合賦值運算符的相關資料分享

    / C51中的復合賦值運算符 /變量 復合運算符 表達式先把變量與后邊的表達式進行某種運算,然后將運算的結果賦給前面的變量。+= 加法
    發表于 12-07 08:09

    VerilogHDL語言:清阻塞賦值和非阻塞賦值

    對于VerilogHDL語言中,經常在always模塊中,面臨兩種賦值方式:阻塞賦值和非阻塞賦值。對于初學者,往往非常迷惑這兩種賦值方式的用法,本章節主要介紹這兩種文章的用法。其實,有
    發表于 11-19 15:48 ?1129次閱讀

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

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

    簡述阻塞賦值和非阻塞賦值的可綜合性

    ,所以基于的C的術語和概念出現在EDA中,原本是一個“誤打誤撞”,但歷史造成的現實則是:必須理解和正確掌握它們的用法。 軟件中阻塞進程,是指調用返回之前,應用進程一直等待: 為了保證應用進程的效率,不至于被子程序的運算過程“掛起”。非阻塞進程得到應用: 在非阻塞賦值進程中
    的頭像 發表于 05-12 09:45 ?2692次閱讀
    簡述阻塞<b class='flag-5'>賦值</b>和非阻塞<b class='flag-5'>賦值</b>的可綜合性

    【單片機自學筆記】(8):c51中的復合賦值運算符,開發版上的數碼管、74HC245、74HC138的使用方法,結構體數組

    / C51中的復合賦值運算符 /變量 復合運算符 表達式先把變量與后邊的表達式進行某種運算,然后將運算的結果賦給前面的變量。+= 加法
    發表于 11-24 10:36 ?0次下載
    【單片機自學筆記】(8):c51中的復合<b class='flag-5'>賦值</b><b class='flag-5'>運算</b>符,開發版上的數碼管、74HC245、74HC138的使用方法,結構體數組

    如何通過SCL來實現編程

    SCL作為IEC61131-3編程語言的一種,由于其高級語言的特性,特別適合復雜運算、復雜數學函數應用的場合。本文以FactoryIO軟件中的物料分揀案例作為硬件基礎,介紹如何通過SCL來實現編程。
    的頭像 發表于 10-26 16:12 ?2416次閱讀

    西門子途S7-1200使用SCL語言實現雙重循環

    在TIA Portal(圖)軟件中,利用SCL語言實現如下算法。
    的頭像 發表于 03-03 09:13 ?6471次閱讀

    Python變量和簡單賦值語句

    。 比如: a = 3 變量賦值內存變化情況: 運行過程中,解釋器先運行右邊的表達式,生成一個代表表達式運算結果的對象; 然后,將這個對象地址賦值給左邊的變量, 如下圖所示: 如果直接調用未
    的頭像 發表于 03-05 17:11 ?1315次閱讀
    Python變量和簡單<b class='flag-5'>賦值</b>語句

    SCL中的 EN/ENO 機制概述

    SCL 中的 EN/ENO 機制概述 在 SCL 程序段中,可以通過賦值來改變 ENO。為此,請寫入“ENO:=TRUE”或“ENO:=FALSE”,或使用 BOOL 數據類型的變量。當激活“自動置
    的頭像 發表于 08-23 10:08 ?2513次閱讀

    阻塞賦值與非阻塞賦值

    ”=“阻塞賦值與”
    的頭像 發表于 09-12 09:06 ?1003次閱讀
    阻塞<b class='flag-5'>賦值</b>與非阻塞<b class='flag-5'>賦值</b>

    SIMATIC S7-1500 PLC S7-SCL賦值詳解

    通過賦值,一個變量接受另一個變量或者表達式的值。在賦值運算符“;=”左邊的是變量,該變量接受右邊的地址或者表達式的值。
    的頭像 發表于 11-29 09:24 ?3106次閱讀

    西門子SCL練習1:使用FC計算平均值

    西門子SCL練習1:使用FC計算平均值
    的頭像 發表于 01-02 10:25 ?2620次閱讀
    西門子<b class='flag-5'>博</b>圖<b class='flag-5'>SCL</b>練習1:使用FC計算平均值

    西門子途中的LAD、FBD與SCL編程

    選擇要在其后插入新程序段的程序段。 在快捷菜單中,選擇命令“插入 STL 程序段”(Insert STL network) 或“插入 SCL 程序段” (Insert SCL network)。
    發表于 01-16 09:33 ?2650次閱讀
    西門子<b class='flag-5'>博</b><b class='flag-5'>途中</b>的LAD、FBD與<b class='flag-5'>SCL</b>編程