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

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

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

西門(mén)子博途:STRING的使用

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

說(shuō)明

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

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

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

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

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

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

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

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

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

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

字符串的最大長(zhǎng)度

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

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

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

說(shuō)明

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

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

下圖顯示了一個(gè)塊調(diào)用中,聲明的形參和實(shí)參長(zhǎng)度不同。由于聲明的長(zhǎng)度不同,在運(yùn)行過(guò)程中,“Input_String_20”和“Output_String_10”可能會(huì)截?cái)唷?/p>

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

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

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

CHAR 隱式轉(zhuǎn)換

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

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

目標(biāo) 進(jìn)行
IEC 檢查
不進(jìn)行
IEC 檢查
說(shuō)明
CHAR BOOL - - 不能進(jìn)行隱式轉(zhuǎn)換
BYTE - X 源值的位模式以右對(duì)齊方式原樣傳遞到目標(biāo)數(shù)據(jù)類(lèi)型。其余位從左邊開(kāi)始填充 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 長(zhǎng)度變短為 1 并包含該字符。
WSTRING - - 不能進(jìn)行隱式轉(zhuǎn)換
x:可以轉(zhuǎn)換
-: 不可轉(zhuǎn)換

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

目標(biāo) 轉(zhuǎn)換 說(shuō)明 指令助記符
CHAR BOOL - 不能進(jìn)行顯式轉(zhuǎn)換 -
BYTE1) X 源值的位模式以右對(duì)齊方式原樣傳遞到目標(biāo)數(shù)據(jù)類(lèi)型。 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) 的第一個(gè)字符。若未定義字符串的長(zhǎng)度,則轉(zhuǎn)換后長(zhǎng)度設(shè)置為“1”。如果已定義字符串的長(zhǎng)度,則它在轉(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ù)類(lèi)型 CHAR 一開(kāi)始就擴(kuò)展成所需的寬度,然后再?gòu)?fù)制這些位。源類(lèi)型決定了解釋方法。

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

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

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

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

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

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

在全局DB中創(chuàng)建兩個(gè)String類(lèi)型變量,用來(lái)保存數(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")通過(guò)輸出參數(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ù)類(lèi)型:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

審核編輯:湯梓紅

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

    關(guān)注

    94

    文章

    3056

    瀏覽量

    116153
  • WINDOWS
    +關(guān)注

    關(guān)注

    4

    文章

    3554

    瀏覽量

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

    關(guān)注

    1

    文章

    585

    瀏覽量

    20563
  • 數(shù)據(jù)類(lèi)型

    關(guān)注

    0

    文章

    236

    瀏覽量

    13638
  • string
    +關(guān)注

    關(guān)注

    0

    文章

    40

    瀏覽量

    4739

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

    暢銷(xiāo)西門(mén)子助聽(tīng)器價(jià)格表_西門(mén)子助聽(tīng)器價(jià)格大全

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

    西門(mén)子大賽1200電梯參考程序

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

    西門(mén)子是哪個(gè)國(guó)家的品牌_西門(mén)子發(fā)明了什么

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

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

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

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

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

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

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

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

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

    西門(mén)子PLC編程軟件下載

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

    Unity3D與西門(mén)子PLC通訊

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

    如何在平臺(tái)調(diào)試西門(mén)子G120變頻器

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

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

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

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

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

    如何在平臺(tái)調(diào)試西門(mén)子G120變頻器

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