字符串定義及格式
字符串最大長(zhǎng)度占用長(zhǎng)度為256個(gè)字符長(zhǎng)度,其中
第一個(gè)字符定義為字符串的最大長(zhǎng)度數(shù)值
第二個(gè)字符定義為字符串的有效長(zhǎng)度數(shù)值
從第三個(gè)字符開(kāi)始為實(shí)際有效的字符,最大可設(shè)置254個(gè)字符長(zhǎng)度,每個(gè)字符的數(shù)據(jù)類(lèi)型是:Char。字符是以ASCII的方式存儲(chǔ)。
ASCII碼與16進(jìn)制和10進(jìn)制轉(zhuǎn)換關(guān)系如下圖所示:
表1 ASCII碼表
字符串轉(zhuǎn)換
1. STEP7庫(kù)功能
STEP7庫(kù)中提供了如下幾個(gè)轉(zhuǎn)換塊:(庫(kù)文件路徑:庫(kù)libraries---Standard Libray---IEC Function Blocks)
(FC94,95路徑:庫(kù)libraries---Standard Libray---TI-S7 Converting Blocks)
FC編號(hào) | 功能名稱(chēng) | 描述 |
FC5 | DI_STRING | 雙整數(shù)轉(zhuǎn)字符串 |
FC16 | I_STRING | 整數(shù)轉(zhuǎn)字符串 |
FC30 | R_STRING | 實(shí)數(shù)轉(zhuǎn)字符串 |
FC37 | STRING_DI | 字符串轉(zhuǎn)雙整數(shù) |
FC38 | STRING_I | 字符串轉(zhuǎn)整數(shù) |
FC39 | STRING_R | 字符串轉(zhuǎn)實(shí)數(shù) |
FC94 | ATH | ASCII轉(zhuǎn)換為十六進(jìn)制 |
FC95 | HTA | 十六進(jìn)制轉(zhuǎn)換為ASCII |
表2. 字符串轉(zhuǎn)換
2 .整數(shù)(雙整數(shù))轉(zhuǎn)字符串
以FC5為例,雙整數(shù)為有符號(hào)整數(shù),因此如圖第三個(gè)有效字符為符號(hào)位,顯示“+”。
注意: 此處字符串定義最大長(zhǎng)度為254個(gè)字符,圖二中第一位最大長(zhǎng)度為-2為有符號(hào)數(shù)值。
圖1. FC5及數(shù)據(jù)塊定義
圖2. 變量表監(jiān)看
3 .實(shí)數(shù)轉(zhuǎn)字符串
實(shí)數(shù)轉(zhuǎn)換為字符串,顯示格式為科學(xué)計(jì)數(shù)法。如圖3所示:
圖3. 科學(xué)計(jì)數(shù)法顯示
其有效數(shù)據(jù)最多顯示7位。同時(shí)轉(zhuǎn)換后的字符串固定占用14個(gè)有效字符長(zhǎng)度。
注意,建立字符串最大長(zhǎng)度時(shí)務(wù)必要大于14個(gè)字符長(zhǎng)度,否則FC30不執(zhí)行,無(wú)輸出。
圖4. FC30實(shí)例
4 .字符串轉(zhuǎn)16進(jìn)制
FC94功能實(shí)際為將連續(xù)的字符轉(zhuǎn)換為連續(xù)的16進(jìn)制。
因此,使用時(shí)注意:
1. 輸入"IN"為有效字符的起始地址,即字符串的前兩個(gè)固定占用字符需要跳過(guò)
2. 轉(zhuǎn)換個(gè)數(shù)與字符串本身定義的有效字符長(zhǎng)度數(shù)值無(wú)關(guān),只與輸入"N"有關(guān)
3. 字符占8位,16進(jìn)制占16位;因此轉(zhuǎn)換后占位方式如圖6
圖5. FC94
圖6. FC94監(jiān)看
如何將Date 或 Date_and_Time數(shù)據(jù)類(lèi)型轉(zhuǎn)換為字符串?
參看"來(lái)自西門(mén)子技術(shù)支持熱線(xiàn)的故事"鏈接,此外,另有付費(fèi)的功能塊包: 數(shù)據(jù)類(lèi)型轉(zhuǎn)換的工具集
如何將字符串轉(zhuǎn)換為實(shí)數(shù)(非科學(xué)計(jì)數(shù)法形式)?
請(qǐng)參考:哪些標(biāo)準(zhǔn) STEP 7函數(shù)可用來(lái)對(duì)字符串變量和ASCII 字符進(jìn)行轉(zhuǎn)換和比較?
字符串比較
1. STEP7庫(kù)功能
STEP7庫(kù)中提供了如下幾個(gè)比較塊:(庫(kù)功能路徑:庫(kù)libraries---Standard Libray---IEC Function Blocks)
FC編號(hào) | 功能名稱(chēng) | 描述 |
FC10 | EQ_STRING | S1=S2 |
FC13 | GE_STRING | S1≥S2 |
FC15 | GT_STRING | S1>S2 |
FC19 | LE_STRING | S1≤S2 |
FC24 | LT_STRING |
S1 |
FC29 | NE_STRING | S1≠S2 |
表3. 字符串比較
注意:
1. 比較功能,比較的是兩個(gè)字符串的有效數(shù)據(jù)長(zhǎng)度部分。即字符串定義的最大長(zhǎng)度與比較結(jié)果無(wú)關(guān)。見(jiàn)圖7
2. 比較大小時(shí),字符從上至下依次比較。見(jiàn)圖8
3. 比較大小時(shí),字符轉(zhuǎn)換為16或10進(jìn)制比較。即非數(shù)字字符,是轉(zhuǎn)換為16或10進(jìn)制進(jìn)行比較。見(jiàn)圖9
圖7. FC10比較大小
圖8. FC13比較大小
圖9. FC13比較大小
為何比較帶"+-"的字符串,"-"的字符串反而大于"+"字符串?
如圖9,由于"+"對(duì)應(yīng)十進(jìn)制43,"-"對(duì)應(yīng)十進(jìn)制45;因此對(duì)于+-號(hào)比較,"-"的字符串反而大于"+"的字符串。
字符串功能
1. STEP7庫(kù)功能
STEP7庫(kù)中提供了如下幾個(gè)功能塊:(庫(kù)功能路徑:庫(kù)libraries---Standard Libray---IEC Function Blocks)
FC編號(hào) | 功能名稱(chēng) | 描述 |
FC2 | CONCAT | 合并字符串 |
FC4 | DELETE | 刪除字符串內(nèi)字符 |
FC11 | FIND | 字符串查找 |
FC17 | INSERT | 字符串插入 |
FC20 | LEFT | 讀取左側(cè)字符串 |
FC21 | LEN | 字符串內(nèi)有效字符長(zhǎng)度 |
FC31 | REPLACE | 字符串替換 |
FC32 | RIGHT | 讀取右側(cè)字符串 |
表4. 字符串功能
注意:以上功能塊均以字符串的有效長(zhǎng)度為基礎(chǔ)。
審核編輯:湯梓紅
-
ASCII
+關(guān)注
關(guān)注
5文章
172瀏覽量
35837 -
字符串
+關(guān)注
關(guān)注
1文章
590瀏覽量
22203 -
STEP7
+關(guān)注
關(guān)注
4文章
103瀏覽量
33163
原文標(biāo)題:字符串定義及格式
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
剖析提升字符串格式化效率的小技巧

strtok拆分字符串

2.2 python字符串類(lèi)型
python字符串格式化

評(píng)論