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

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

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

博途中SCL的賦值運(yùn)算

機(jī)器人及PLC自動化應(yīng)用 ? 來源:機(jī)器人及PLC自動化應(yīng)用 ? 2023-06-19 10:57 ? 次閱讀

定義

可通過賦值運(yùn)算,可以將一個(gè)表達(dá)式的值分配給一個(gè)變量。賦值表達(dá)式的左側(cè)為變量,右側(cè)為表達(dá)式的值。

函數(shù)名稱也可以作為表達(dá)式。賦值運(yùn)算將調(diào)用該函數(shù),并返回其函數(shù)值,賦給左側(cè)的變量。

賦值運(yùn)算的數(shù)據(jù)類型取決于左邊變量的數(shù)據(jù)類型。右邊表達(dá)式的數(shù)據(jù)類型必須與該數(shù)據(jù)類型一致。

可通過以下方式編程賦值運(yùn)算:

單賦值運(yùn)算

執(zhí)行單賦值運(yùn)算時(shí),僅將一個(gè)表達(dá)式或變量分配給單個(gè)變量:

示例:a := b;

多賦值運(yùn)算

執(zhí)行多賦值運(yùn)算時(shí),一個(gè)指令中可執(zhí)行多個(gè)賦值運(yùn)算。

示例:a := b := c;

此時(shí),將執(zhí)行以下操作:

b := c;

a := b;

組合賦值運(yùn)算

執(zhí)行組合賦值運(yùn)算時(shí),可在賦值運(yùn)算中組合使用操作符“+”、“-”、“*”和“/”:

示例:a += b;

此時(shí),將執(zhí)行以下操作:

a := a + b;

也可多次組合賦值運(yùn)算:

a += b += c *= d;

此時(shí),將按以下順序執(zhí)行賦值運(yùn)算:

c := c * d;

b := b + c;

a := a + b;

STRUCT 數(shù)據(jù)類型或 PLC 數(shù)據(jù)類型的賦值運(yùn)算

如果結(jié)構(gòu)相同而且結(jié)構(gòu)中成員的數(shù)據(jù)類型和名稱也相同,則可以將整個(gè)結(jié)構(gòu)分配給另一個(gè)結(jié)構(gòu)。

可以為單個(gè)結(jié)構(gòu)元素分配一個(gè)變量、一個(gè)表達(dá)式或另一個(gè)結(jié)構(gòu)元素。

ARRAY 數(shù)據(jù)類型的賦值運(yùn)算

如果兩者的 ARRAY 元素?cái)?shù)據(jù)類型以及 ARRAY 限值都匹配,則可以將整個(gè) ARRAY 分配給另一個(gè) ARRAY。

可以為單個(gè) ARRAY 元素分配一個(gè)變量、一個(gè)表達(dá)式或另一個(gè) ARRAY 元素。

STRING 數(shù)據(jù)類型的賦值運(yùn)算

可將整個(gè) STRING 賦值給另一個(gè) STRING。

可以為單個(gè) STRING 元素分配另一個(gè) STRING 元素。

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

可將整個(gè) WSTRING 賦值給另一個(gè) WSTRING。

可以為單個(gè) WSTRING 元素分配另一個(gè) WSTRING 元素。

ANY 數(shù)據(jù)類型的賦值運(yùn)算

只能將 ANY 數(shù)據(jù)類型的變量賦值給以下對象:

同樣為 ANY 數(shù)據(jù)類型的 FB 的輸入參數(shù)或臨時(shí)本地?cái)?shù)據(jù)。

同樣為 ANY 數(shù)據(jù)類型的 FC 的臨時(shí)本地?cái)?shù)據(jù)。

請注意,使用 ANY 指針時(shí),只能指向“標(biāo)準(zhǔn)”訪問模式的存儲區(qū)。

POINTER 數(shù)據(jù)類型的賦值運(yùn)算

在 SCL 的賦值運(yùn)算中不能使用 POINTER。

示例

下表舉例說明了單賦值運(yùn)算的操作:

SCL
"MyTag1" := "MyTag2"; (* 變量賦值 *)
"MyTag1" := "MyTag2" * "MyTag3"; (* 表達(dá)式賦值 *)
"MyTag" := "MyFC"(); (* 調(diào)用一個(gè)函數(shù),并將函數(shù)值賦給 "MyTag" 變量 *)
#MyStruct.MyStructElement := "MyTag"; (* 將一個(gè)變量賦值給一個(gè)結(jié)構(gòu)元素 *)
#MyArray[2] := "MyTag"; (* 將一個(gè)變量賦值給一個(gè) ARRAY 元素 *)
"MyTag" := #MyArray[1,4]; (* 將一個(gè) ARRAY 元素賦值給一個(gè)變量 *)
#MyString[2] := #MyOtherString[5]; (* 將一個(gè) STRING 元素賦給另一個(gè) STRING 元素 *)

下表舉例說明了多賦值運(yùn)算的操作:

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

下表舉例說明了組合賦值運(yùn)算的操作:

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

審核編輯:湯梓紅

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

    關(guān)注

    3

    文章

    4260

    瀏覽量

    62229
  • 運(yùn)算
    +關(guān)注

    關(guān)注

    0

    文章

    129

    瀏覽量

    25759
  • SCL
    SCL
    +關(guān)注

    關(guān)注

    1

    文章

    239

    瀏覽量

    17010

原文標(biāo)題:博途:SCL的賦值運(yùn)算

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

收藏 人收藏

    評論

    相關(guān)推薦

    C語言中賦值運(yùn)算符詳解

    在C語言中,賦值運(yùn)算符用于將一個(gè)值賦給變量。
    發(fā)表于 08-18 16:38 ?1722次閱讀
    C語言中<b class='flag-5'>賦值</b><b class='flag-5'>運(yùn)算</b>符詳解

    SCL語言FOR循環(huán)的用法及典型案例

    SCL
    YS YYDS
    發(fā)布于 :2023年06月25日 00:06:13

    C51中的復(fù)合賦值運(yùn)算符的相關(guān)資料分享

    / C51中的復(fù)合賦值運(yùn)算符 /變量 復(fù)合運(yùn)算符 表達(dá)式先把變量與后邊的表達(dá)式進(jìn)行某種運(yùn)算,然后將運(yùn)算的結(jié)果賦給前面的變量。+= 加法
    發(fā)表于 12-07 08:09

    西門子SCL編程:滾動數(shù)據(jù)記錄

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

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

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

    【單片機(jī)自學(xué)筆記】(8):c51中的復(fù)合賦值運(yùn)算符,開發(fā)版上的數(shù)碼管、74HC245、74HC138的使用方法,結(jié)構(gòu)體數(shù)組

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

    如何通過SCL來實(shí)現(xiàn)編程

    SCL作為IEC61131-3編程語言的一種,由于其高級語言的特性,特別適合復(fù)雜運(yùn)算、復(fù)雜數(shù)學(xué)函數(shù)應(yīng)用的場合。本文以FactoryIO軟件中的物料分揀案例作為硬件基礎(chǔ),介紹如何通過SCL來實(shí)現(xiàn)編程。
    的頭像 發(fā)表于 10-26 16:12 ?2347次閱讀

    西門子途S7-1200使用SCL語言實(shí)現(xiàn)雙重循環(huán)

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

    Python變量和簡單賦值語句

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

    SCL中的 EN/ENO 機(jī)制概述

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

    阻塞賦值與非阻塞賦值

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

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

    通過賦值,一個(gè)變量接受另一個(gè)變量或者表達(dá)式的值。在賦值運(yùn)算符“;=”左邊的是變量,該變量接受右邊的地址或者表達(dá)式的值。
    的頭像 發(fā)表于 11-29 09:24 ?2823次閱讀

    STEP7圖中的SCL設(shè)置和屬性解析

    SCL V11中,可以檢查“擴(kuò)展?fàn)顟B(tài)信息”。與SCL V5.x相反,始終創(chuàng)建最小化的調(diào)試信息,這允許進(jìn)行基本調(diào)試!
    的頭像 發(fā)表于 01-02 09:58 ?1604次閱讀
    STEP7<b class='flag-5'>博</b>圖中的<b class='flag-5'>SCL</b>設(shè)置和屬性解析

    西門子SCL練習(xí)1:使用FC計(jì)算平均值

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

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

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