在軟件的指令列表里面,我們可以看到還有字符串指令,那么今天就學(xué)習(xí)一下字符串指令,雖然字符串指令在應(yīng)用方面可能會(huì)用的比較少,但作為s7-200的指令,我們還是要學(xué)習(xí)一下。字符串指令里面有字符串長(zhǎng)度指令、字符串復(fù)制指令、復(fù)制子字符串指令、字符串連接指令、查找子字符串指令和查找字符串中的字符指令。

那么就先學(xué)習(xí)一下這些指令,對(duì)于字符串連接指令STR_CAT,顧名思義,就是把字符串進(jìn)行連接起來;字符串長(zhǎng)度指令STR_LEN是返回IN指定的字符串長(zhǎng)度,也就是計(jì)算輸入字符串里面有多少個(gè)有效字符;字符串復(fù)制指令STR_CPY就是直接將IN指定的字符串復(fù)制至OUT指定的字符串;而復(fù)制子字符串指令它的操作內(nèi)容除了輸入IN輸出OUT之外,還有INDX和N,INDX是索引到哪個(gè)字符,N是字符數(shù),這個(gè)指令是將從輸入字符串索引到的字符開始的N個(gè)字符輸出。下面就看一下指令在程序中的使用。

以上程序在第一個(gè)STR_CAT輸入字符串“HELLO”,在第二個(gè)STR_CAT輸入字符串“WORLD”,那么指令執(zhí)行之后就將“HELLO WORLD”送到VB0里面,后面的SSTR_CPY指令是將“HELLO WORLD”中第7個(gè)字符開始的5個(gè)字符輸出到VB10,那么最后是將“WORLD”輸出到VB10的,再執(zhí)行STR_CPY指令是直接將VB10中的“WORLD”復(fù)制到VB100里面,最后的STR_LEN指令是計(jì)算VB100里面有多少個(gè)字符,VB100里面有5個(gè)字符,那么指令執(zhí)行后VB200輸出的就是5。
下面再繼續(xù)學(xué)習(xí)一下查找子字符串指令和查找字符串中的字符指令。查找子字符串指令是從OUT定義的字符位置開始,在字符串IN1中找符合IN2的字符串,如果找到一個(gè)與字符串IN2完全符合的字符系列,該系列的第一個(gè)字符位置被寫入到OUT里。如果在字符串IN1中未找到符合IN2的字符串,OUT被設(shè)為0。

以上程序首先是對(duì)要用的V存儲(chǔ)器VB300進(jìn)行初始化,賦值1,因?yàn)槲恢玫挠?jì)算是以1開始計(jì)數(shù)的。因VB100里面的字符串是“WORLD”,執(zhí)行STR_FIND指令后,在字符串VB100中找符合“rld”的字符串,找到后把“rld”字符串的第一個(gè)字符的位置寫入到VB300里面,那么在VB300中輸出的就是3。
而查找字符串中的字符指令從OUT定義的字符位置開始,在字符串IN1中找符合IN2里定義的任何字符,如果找到一個(gè)字符與IN2里定義的任何字符一致,那么把找到的第一個(gè)字符位置寫入到OUT里。如果未找到相符的字符,OUT被設(shè)為0。

以上程序首先是對(duì)要用的V存儲(chǔ)器VB400進(jìn)行初始化,賦值1,因?yàn)槲恢玫挠?jì)算是以1開始計(jì)數(shù)的。因VB100里面的字符串是“WORLD”,執(zhí)行CHR_FIND指令后,在字符串VB100中找符合字符串“l(fā)od”的任意字符,找到后把“l(fā)od”字符串的第一個(gè)字符的位置寫入到VB400里面,那么在VB400中輸出的就是2。
那么這就是對(duì)字符串指令的學(xué)習(xí)了。因?yàn)檫@些指令用的相對(duì)較少些,記不住也沒關(guān)系,先有個(gè)了解,等需要用的時(shí)候查找一下幫助看下指令的用法就可以了。