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

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

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

西門子博途:STRING的使用

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

說明

數(shù)據(jù)類型為 STRING 的操作數(shù)在一個字符串中存儲多個字符,最多可包括 254 個字符。在一個字符串中,可使用系統(tǒng)所創(chuàng)建代碼頁的所有字符。字符在單引號中指定。

字符串中還可包含特殊字符。轉(zhuǎn)義字符 $ 可用于標(biāo)識控制字符、美元符號和單引號。

說明
不同代碼頁
請注意,在 Windows 系統(tǒng)中,特殊字符使用當(dāng)前設(shè)置的代碼頁進(jìn)行編碼。即,由于各操作系統(tǒng)使用的代碼頁不同,因此包含有特殊字符的字符串的顯示也將不同。
正是因?yàn)榇a頁對所在系統(tǒng)的依賴性,用戶程序的國際通用性變得極為困難。目前,僅 7 位 ASCII 編碼中的字符才具有國際通用性。

下表列出了 STRING 變量的屬性:

長度(字節(jié)) 格式 值范圍 輸入值示例
n + 2 1) ASCII 字符串,包括特殊字符 0 到 254 個字符 'Name'
STRING#'NAME'
STRING#'Na...(該字符串的實(shí)際長度超出了屏幕空間。)
STRING#'' (該字符串為空。)
1) 數(shù)據(jù)類型為 STRING 的操作數(shù)在內(nèi)存中占用的字節(jié)數(shù)比指定的最大長度要多 2 個字節(jié)。

下表給出了特殊字符表示法示例:

字符 十六進(jìn)制 含義 示例
$L 或 $l 0A 換行 '$LText', '$0AText'
$N 0A 和 0D 斷行
斷行在字符串中占用 2 個字符,在編輯器的顯示畫面中將轉(zhuǎn)換為 $R$L。
'$NText', '$0A$0DText'
$P 或 $p 0C 分頁 '$PText', '$0CText'
$R 或 $r 0D 回車 (CR) '$RText','$0DText'
$T 或 $t 09 切換 '$TText', '$09Text'
$$ 24 美元符號 '100$$', '100$24'
$' 27 單引號 '$'Text$'','$27Text$27'

如果轉(zhuǎn)義字符 $ 后面跟有該表格中的某個字母,則表格中指定該字符將包含在字符串中。如果轉(zhuǎn)義字符 $ 后面跟隨的字母不在該表格中,則該字母將包含在該字符串中。如果轉(zhuǎn)義字符 $ 后跟隨兩個或一個十六進(jìn)制數(shù)字,該代碼將包含在字符串中。

監(jiān)控表中的應(yīng)用

以下示例適用于 S7-300/400 系列 CPU:監(jiān)視一個數(shù)據(jù)類型為 STRING 的變量時,將僅顯示前 30 個字符。如果實(shí)際長度大于 30 個字符,則將顯示一個省略號 (…) 而非閉合撇號 (')。當(dāng) STRING 的值超過 30 個字符時,無法進(jìn)行更改。

字符串的最大長度

在操作數(shù)的聲明過程中,可在關(guān)鍵字 STRING 后使用方括號指定字符串的最大長度(如,STRING[4])。也可以使用局部或全局常量聲明字符串的最大長度(如,STRING[#loc_const] 或 STRING["glob_const"])。如果未指定最大長度,則相應(yīng)的操作數(shù)長度設(shè)置為標(biāo)準(zhǔn)的 254 個字符。

如果指定字符串的實(shí)際長度小于所聲明的最大長度,則字符將以左對齊方式寫入字符串,并將剩余的字符空間保持為未定義。在值處理和各種顯示過程中,僅涉及可確定字符串實(shí)際長度的所有字符空間量。

說明 對于 S7-300/400 CPU,請注意:如果定義了 STRING 數(shù)據(jù)類型的臨時變量,則在用戶程序中使用變量之前必須使用指定的長度定義 BYTE“字符串最大長度”。
傳遞 STRING 或 WSTRING 數(shù)據(jù)類型的變量

說明

可以將 STRING 或 WSTRING 數(shù)據(jù)類型的變量作為參數(shù)進(jìn)行傳遞下表列出了不同 CPU 系列中 (W)STRING 的傳遞規(guī)則:

CPU 系列 數(shù)據(jù)類型 塊調(diào)用中的傳遞規(guī)則
S7-300/400 STRING 聲明的形參和實(shí)參長度必須相同。
S7-1200/1500 STRING
WSTRING
聲明的形參和實(shí)參長度可以不同。在運(yùn)行過程中,如果目標(biāo)參數(shù)的聲明長度小于接收的 (W)STRING 參數(shù)長度,則截斷 (W)STRING 參數(shù)并將使能輸出 ENO 設(shè)置為 FALSE。
在程序編輯器中,參數(shù)處的灰色矩形表示 (W)STRING 在運(yùn)行過程中可能被截斷。
例外:
調(diào)用 STL 塊時,形參和實(shí)參的聲明長度必須始終相同。

下圖顯示了一個塊調(diào)用中,聲明的形參和實(shí)參長度不同。由于聲明的長度不同,在運(yùn)行過程中,“Input_String_20”和“Output_String_10”可能會截斷。

7320effc-0c1a-11ee-962d-dac502259ad0.png

聲明 STRING 和 WSTRING 數(shù)據(jù)類型的變量 要聲明 STRING 或 WSTRING 數(shù)據(jù)類型的變量,請按以下步驟操作:

選擇接口中的相應(yīng)聲明區(qū)域。
在“名稱”(Name) 列中輸入一個變量名稱。
在“數(shù)據(jù)類型”(Data type) 列中輸入“STRING”或“WSTRING”。輸入時系統(tǒng)將提供自動完成功能。
可選:在關(guān)鍵字 STRING 或 WSTRING 后面,使用方括號指定字符串的最大長度。如果未指定最大長度,則字符串的默認(rèn)長度為 254 個字符。 最大長度為 4 的 WSTRING 示例: WSTRING[4] 使用局部常量定義字符串最大長度的示例: STRING[#My_local_const1] 使用全局常量定義字符串最大長度的示例: STRING["My_global_const1"]

CHAR 隱式轉(zhuǎn)換

隱式轉(zhuǎn)換選項(xiàng)

下表列出了 CHAR 數(shù)據(jù)類型的隱式轉(zhuǎn)換選項(xiàng):

目標(biāo) 進(jìn)行
IEC 檢查
不進(jìn)行
IEC 檢查
說明
CHAR BOOL - - 不能進(jìn)行隱式轉(zhuǎn)換
BYTE - X 源值的位模式以右對齊方式原樣傳遞到目標(biāo)數(shù)據(jù)類型。其余位從左邊開始填充 0。
WORD - X
DWORD - X
SINT - X
USINT - X
INT - X
UINT - X
DINT - X
UDINT - X
REAL - - 不能進(jìn)行隱式轉(zhuǎn)換
LREAL - -
TIME - -
DTL - -
TOD - -
DATE - -
WCHAR - -
STRING X X 該 STRING 長度變短為 1 并包含該字符。
WSTRING - - 不能進(jìn)行隱式轉(zhuǎn)換
x:可以轉(zhuǎn)換
-: 不可轉(zhuǎn)換

顯式轉(zhuǎn)換選項(xiàng) 下表列出了 CHAR 數(shù)據(jù)類型的顯式轉(zhuǎn)換選項(xiàng)和指令:

目標(biāo) 轉(zhuǎn)換 說明 指令助記符
CHAR BOOL - 不能進(jìn)行顯式轉(zhuǎn)換 -
BYTE1) X 源值的位模式以右對齊方式原樣傳遞到目標(biāo)數(shù)據(jù)類型。 CHAR_TO_BYTE
WORD1) X CHAR_TO_WORD
DWORD1) X CHAR_TO_DWORD
SINT X CHAR_TO_SINT
USINT X CHAR_TO_USINT
INT X CHAR_TO_INT
UINT X CHAR_TO_UINT
DINT X CHAR_TO_DINT
UDINT X CHAR_TO_UDINT
REAL - 不能進(jìn)行顯式轉(zhuǎn)換 -
LREAL - -
TIME - -
DTL - -
TOD - -
DATE - -
STRING X 值將轉(zhuǎn)換為字符串 (STRING) 的第一個字符。若未定義字符串的長度,則轉(zhuǎn)換后長度設(shè)置為“1”。如果已定義字符串的長度,則它在轉(zhuǎn)換后保持不變。 CHAR_TO_STRING
WSTRING - 不能進(jìn)行顯式轉(zhuǎn)換 -
WCHAR X CHAR_TO_WCHAR
x:可以轉(zhuǎn)換 - : 不可轉(zhuǎn)換 1) 位串 (BYTE、WORD、DWORD) 和數(shù)據(jù)類型 CHAR 一開始就擴(kuò)展成所需的寬度,然后再復(fù)制這些位。源類型決定了解釋方法。

移動和轉(zhuǎn)換字符串

1. 移動和轉(zhuǎn)換字符串指令的調(diào)用,如圖1所示。

7330931c-0c1a-11ee-962d-dac502259ad0.jpg
圖1. 移動和轉(zhuǎn)換字符串指令

2. 移動和轉(zhuǎn)換字符串指令的使用。

(1)移動字符串指令S_MOVE。

S_MOVE指令可以將參數(shù)IN中的字符串寫入到參數(shù)OUT中的指定數(shù)據(jù)區(qū)域。

在全局DB中創(chuàng)建兩個String類型變量,用來保存數(shù)據(jù),如圖2所示:

73421268-0c1a-11ee-962d-dac502259ad0.jpg
圖2. 在全局DB中創(chuàng)建變量

在OB1中調(diào)用S_MOVE指令,并連接參數(shù),如圖3所示:

735620a0-0c1a-11ee-962d-dac502259ad0.jpg
圖3. 在OB1中調(diào)用S_MOVE指令

將需要復(fù)制的字符串("StringInput")通過輸出參數(shù)OUT("StringOutput")輸出,如圖4所示:

7368a798-0c1a-11ee-962d-dac502259ad0.jpg
圖4. S_MOVE指令執(zhí)行結(jié)果

(2)轉(zhuǎn)換字符串指令S_CONV。

S_CONV指令可以將參數(shù)IN中的數(shù)值轉(zhuǎn)換為OUT輸出中指定的數(shù)據(jù)格式,下面列出了可能進(jìn)行數(shù)值轉(zhuǎn)換的數(shù)據(jù)類型:

1)將字符串轉(zhuǎn)換為數(shù)字值

參數(shù)IN中的數(shù)值數(shù)據(jù)類型為STRING,WSTRING;參數(shù)OUT中數(shù)值的數(shù)據(jù)類型為CHAR,WCHAR,USINT,UINT,UDINT,SINT,INT,DINT,REAL,LREAL。

2)將字符串轉(zhuǎn)換為字符串

參數(shù)IN中的數(shù)值數(shù)據(jù)類型為STRING,WSTRING;參數(shù)OUT中數(shù)值的數(shù)據(jù)類型為STRING,WSTRING。

3)將數(shù)字值或字符轉(zhuǎn)換為字符串

參數(shù)IN中的數(shù)值數(shù)據(jù)類型為CHAR,WCHAR,USINT,UINT,UDINT,SINT,INT,DINT,REAL,LREAL;參數(shù)OUT中數(shù)值的數(shù)據(jù)類型為STRING,WSTRING。

4)將字符轉(zhuǎn)換為字符

參數(shù)IN中的數(shù)值數(shù)據(jù)類型為CHAR,WCHAR;參數(shù)OUT中數(shù)值的數(shù)據(jù)類型為CHAR,WCHAR。

在全局DB中創(chuàng)建四個變量,用來保存數(shù)據(jù),如圖5所示:

7374c3de-0c1a-11ee-962d-dac502259ad0.jpg
圖5. 在全局DB中創(chuàng)建變量

在OB1中調(diào)用S_CONV指令,并連接參數(shù),選擇數(shù)據(jù)類型。在第一個選項(xiàng)中選擇待轉(zhuǎn)換的數(shù)據(jù)類型("ValueInput"),本例中為Int類型;在第二個選項(xiàng)中選擇待生成字符串的數(shù)據(jù)類型("StringOutput"),本例中為String類型,如圖6所示:

738b421c-0c1a-11ee-962d-dac502259ad0.jpg
圖6. 在OB1中調(diào)用S_CONV指令

將需要轉(zhuǎn)換的數(shù)值("ValueInput")轉(zhuǎn)換為輸出格式,在字符串開頭處的空白區(qū)域?qū)懭肟崭?,轉(zhuǎn)換結(jié)果以字符串形式通過輸出參數(shù)OUT("StringOutput")輸出,如圖7所示:

73999984-0c1a-11ee-962d-dac502259ad0.jpg
圖7. S_CONV指令執(zhí)行結(jié)果(LAD語言)

注:如果使用SCL語言調(diào)用S_CONV指令,當(dāng)數(shù)字值轉(zhuǎn)換為字符串時,字符串的第一個字符不會使用空格進(jìn)行填充,如圖8所示:

73a90d4c-0c1a-11ee-962d-dac502259ad0.jpg

圖8. S_CONV指令執(zhí)行結(jié)果(SCL語言)

審核編輯:湯梓紅

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

    關(guān)注

    93

    文章

    2958

    瀏覽量

    114830
  • WINDOWS
    +關(guān)注

    關(guān)注

    3

    文章

    3503

    瀏覽量

    87883
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    566

    瀏覽量

    20384
  • 數(shù)據(jù)類型
    +關(guān)注

    關(guān)注

    0

    文章

    236

    瀏覽量

    13567
  • string
    +關(guān)注

    關(guān)注

    0

    文章

    40

    瀏覽量

    4696

原文標(biāo)題:西門子博途: STRING的使用

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

收藏 人收藏

    評論

    相關(guān)推薦

    北京回收西門子組態(tài)軟件

    回收西門子變頻器SINAMICS V10系列變頻器回收西門子觸摸屏回收西門子組態(tài)軟件回收西門子
    發(fā)表于 05-27 12:16

    西門子1200碼垛機(jī)程序應(yīng)用

    西門子1200碼垛機(jī)、立體倉庫程序(帶注釋),程序應(yīng)用到變頻器、觸摸屏、步進(jìn)電機(jī)、工業(yè)機(jī)器人、視覺相機(jī)。
    發(fā)表于 09-03 07:42

    暢銷西門子助聽器價格表_西門子助聽器價格大全

    暢銷西門子助聽器價格表_西門子助聽器價格大全 1、西門子盒式助聽器 AMIGA 176AO Pocket AMIGA 176AO 西門子助聽器價格:441元
    發(fā)表于 08-23 12:19 ?1.2w次閱讀
    暢銷<b class='flag-5'>西門子</b>助聽器價格表_<b class='flag-5'>西門子</b>助聽器價格大全

    西門子大賽1200電梯參考程序

    西門子大賽1200電梯參考程序,V13文件.有需要的加油!
    發(fā)表于 06-22 15:56 ?183次下載

    西門子是哪個國家的品牌_西門子發(fā)明了什么

    本文開始介紹了西門子是哪個國家的品牌以及西門子的發(fā)展歷史,其次介紹了西門子的發(fā)明成果,最后對西門子的家電進(jìn)行了分析。
    的頭像 發(fā)表于 04-04 08:45 ?5.3w次閱讀

    博世和西門子哪個好_博世和西門子的關(guān)系

    本文開始闡述了博世和西門子的關(guān)系以及分析了西門子和博世哪個更好,其次分析了西門子和博世的冰箱哪個更好,最后介紹了博世和西門子家電集團(tuán)在中國的發(fā)展。
    的頭像 發(fā)表于 04-04 09:30 ?15.7w次閱讀

    如何使用平臺上完成西門子的S7-1500與S7-1200以太網(wǎng)通信?

    一步步教你使用平臺,完成西門子最風(fēng)行的兩款PLC——S7-1500(1515 CPU)與S7-1200(1214 CPU)之間通信,有兩種方法:S7通信和開放式用戶通信。
    的頭像 發(fā)表于 07-09 10:00 ?5.3w次閱讀
    如何使用<b class='flag-5'>博</b><b class='flag-5'>途</b>平臺上完成<b class='flag-5'>西門子</b>的S7-1500與S7-1200以太網(wǎng)通信?

    解析ABB機(jī)器人與西門子S7-1200 profinet通訊

    西門子軟件中做PLC硬件組態(tài),設(shè)置以太網(wǎng)連接。
    的頭像 發(fā)表于 01-18 16:55 ?4.8w次閱讀
    解析ABB機(jī)器人與<b class='flag-5'>西門子</b>S7-1200 profinet通訊

    詳解編程實(shí)現(xiàn)S7300與西門子觸摸屏通訊

    目前國內(nèi)流行用昆侖通泰或者威綸通觸摸屏做項(xiàng)目,一方面價格便宜,另一方面編程簡單。但西門子屏也經(jīng)常會被用到,所以不得不學(xué)。簡單寫一下會用圖建立西門子觸摸屏和S7300PLC的通訊。
    的頭像 發(fā)表于 05-05 11:37 ?1.6w次閱讀

    西門子PLC編程軟件下載

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

    Unity3D與西門子PLC通訊

    本文是做實(shí)體PLC和Unity的通訊,如果沒有實(shí)體PLC可以參考我之前的文上位機(jī)與西門子TIA的PROFINET通訊仿真(虛擬通訊),這篇
    發(fā)表于 04-19 11:43 ?6次下載
    Unity3D與<b class='flag-5'>西門子</b>PLC通訊

    如何在平臺調(diào)試西門子G120變頻器

      隨著工業(yè)自動化邁向智能化越來越近,科技工作者不斷的突破,近年在傳動領(lǐng)域,采用工業(yè)以太網(wǎng)(Profinet)和變頻器通訊非常廣泛,今天我們簡單的介紹下在平臺調(diào)試西門子G120變頻器。
    的頭像 發(fā)表于 04-25 10:17 ?2.6w次閱讀
    如何在<b class='flag-5'>博</b><b class='flag-5'>途</b>平臺調(diào)試<b class='flag-5'>西門子</b>G120變頻器

    西門子1200/1500PLC單按鈕啟??刂?0種設(shè)計方法

    西門子1200/1500PLC單按鈕啟??刂?0種設(shè)計方法
    的頭像 發(fā)表于 08-31 09:14 ?6951次閱讀
    <b class='flag-5'>西門子</b><b class='flag-5'>博</b><b class='flag-5'>途</b>1200/1500PLC單按鈕啟停控制10種設(shè)計方法

    西門子plc單按鈕啟停的十種方法(1200/1500PLC)

    西門子1200/1500PLC單按鈕啟停控制10種設(shè)計方法
    發(fā)表于 08-31 09:15 ?5608次閱讀
    <b class='flag-5'>西門子</b>plc單按鈕啟停的十種方法(<b class='flag-5'>博</b><b class='flag-5'>途</b>1200/1500PLC)

    如何在平臺調(diào)試西門子G120變頻器

    隨著工業(yè)自動化邁向智能化越來越近,科技工作者不斷的突破,近年在傳動領(lǐng)域,采用工業(yè)以太網(wǎng)(Profinet)和變頻器通訊非常廣泛,今天我們簡單的介紹下在平臺調(diào)試西門子G120變頻器。
    發(fā)表于 09-07 12:50 ?4363次閱讀
    如何在<b class='flag-5'>博</b><b class='flag-5'>途</b>平臺調(diào)試<b class='flag-5'>西門子</b>G120變頻器