西門(mén)子plc代理為你整理的西門(mén)子plc字符串指令,希望能有所幫助。
1.求字符串長(zhǎng)度指令
求字符串長(zhǎng)度指令SLEN返回IN參數(shù)指定的字符串的長(zhǎng)度值,OUT為字節(jié)類型。
2.字符串復(fù)制指令
字符串復(fù)制指令SCPY將IN參數(shù)指定的字符串復(fù)制到OUT指定的地址區(qū)中。
3.字符串連接指令
字符串連接指令(SCAT)將IN參數(shù)指定的字符串連接到OUT指定的字符串的后面。
【例】 字符串指令應(yīng)用舉例。
LD I0.0
STR_CPY ”HELLO ”,VB0 //將字符串“HELLO ”復(fù)制到VBO開(kāi)始的存儲(chǔ)區(qū)
SCAT ”WORLD”,VB0 //將字符串“WORLD”復(fù)制到VBO開(kāi)始的字符串的后面
STRLEN VB0,AC0 //求VB0開(kāi)始的字符串的長(zhǎng)度
字符串變量的首字節(jié)是字符串的長(zhǎng)度,VB0開(kāi)始的字符串為“HELLO”(后有一個(gè)空格),VB0中是字符串的長(zhǎng)度6。執(zhí)行SCAT指令后,得到新的字符串為“HELLO WORLD”,STRLEN指令求出的字符串的長(zhǎng)度為11。
4.從字符串中復(fù)制子字符串指令
SSCPY指令從INDX指定的字符編號(hào)開(kāi)始,將IN指定的字符串的N個(gè)字符串復(fù)制到OUT中,OUT為字節(jié)類型。
指令“SSCPY VB0,7,5,VB20”將從VB0開(kāi)始的字符串中的第7個(gè)字符開(kāi)始,復(fù)制5個(gè)字符到VB20開(kāi)始的新字符串。
5.字符串搜索指令
SFND指令在字符串IN1中搜索字符串IN2,由字節(jié)變量OUT指定搜索的起始位置。如果在IN1中找到了與IN2中字符串相匹配的一段字符,則在OUT中存入這段字符IN1中的首個(gè)字符的位置。如果沒(méi)有找到,則OUT被清零。
6.字符搜索指令
CFND指令查找在字符串IN1中是否有字符串IN2中包含的任意字符,字節(jié)變量OUT指定搜索的起始位置。如果找到了匹配的字符,字符的位置被寫(xiě)入OUT中。如果沒(méi)有找到,OUT被清零。
假設(shè)存儲(chǔ)在VBO開(kāi)始的區(qū)域的字符串包含溫度值,存儲(chǔ)在VB20開(kāi)始的區(qū)域中的字符串包含所有的數(shù)字、“+”號(hào)和“-”號(hào),用于識(shí)別字符串中的溫度值。下面的程序在字符串中找到數(shù)字的起始位置,并將其轉(zhuǎn)換為實(shí)數(shù),溫度值存放在VD200中。
LD I0.0
MOVB 1,AC0 //AC0用作OUT參數(shù)并指向字符串的首個(gè)字符
CFND VB0,VB2,AC0 //在VB0字符串中尋找數(shù)字字符
STR VB0,AC0,VD200 //將字符串。中的溫度值轉(zhuǎn)換為實(shí)數(shù)