有些朋友經(jīng)常問(wèn)我實(shí)數(shù)與字符串之間怎么轉(zhuǎn)化,尤其是在EthernetKRL的Binarystream的使用中。那么這邊文章以代碼的形式來(lái)展示。
一.實(shí)數(shù)轉(zhuǎn)化為字符串:
;***************************************************
;* Customer : *
;* Roboter : *
;* Version : Vxxxxxx *
;* Roboter Nr. : xxxxxx *
;* Controller Nr: xxxxxx *
;* *
;* Autor : Andrew Wang *
;* Company : *
;* Department : *
;* Telephone : 86 156-8082-2827 *
;* *
;* Version : 1.0 *
;* Created : 12.12.2018 *
;* Modified : *
;* Project : *
;* *
;*ProgramName:Real_2_String*
;* Convert a REAL variant to a string variable; *
;**************************************************
DEFFCT CHAR[32] Real_2_String(rVar:IN )
DECL CHAR Ret[32]
DECL INT Offset,I
DECL STATE_T state
DECL REAL rVar
Offset=0
FOR I=1 TO 32
Ret[I]=0
ENDFOR
SWRITE(Ret[],State,offset,"%f",rVar)
Return (ret[])
ENDFCT
測(cè)試程序:
DEF CHeck( )
DECL CHAR test[32]
DECL REAL x
DECL INT I
FOR I=1 TO 32
Test[i]=0
ENDFOR
X=-3.14
Test[]=Real_2_string(x)
HALT
END
測(cè)試結(jié)果:
如果將程序修改下,就可以保留小數(shù)點(diǎn)后幾位的格式:
;***************************************************
;* Customer : *
;* Roboter : *
;* Version : Vxxxxxx *
;* Roboter Nr. : xxxxxx *
;* Controller Nr: xxxxxx *
;* *
;* Autor : Andrew Wang *
;* Company : *
;* Department : *
;* Telephone : 86 156-8082-2827 *
;* *
;* Version : 1.0 *
;* Created : 12.12.2018 *
;* Modified : *
;* Project : *
;* *
;* Program Name : Real_2_String *
;* Convert a REAL variant to a string variable; *
;**************************************************
DEFFCT CHAR[32] Real_2_String(rVar:IN )
DECL CHAR Ret[32]
DECL INT Offset,I
DECL STATE_T state
DECL REAL rVar
Offset=0
FOR I=1 TO 32
Ret[I]=0
ENDFOR
SWRITE(Ret[],State,offset,"%.3f",rVar)
Return (ret[])
ENDFCT
測(cè)試結(jié)果:
二.字符串轉(zhuǎn)實(shí)數(shù):
對(duì)于字符串轉(zhuǎn)實(shí)數(shù)有兩種方式,一種是系統(tǒng)函數(shù),一種用戶(hù)自定義的函數(shù);
-
系統(tǒng)自定義函數(shù):
;**************************************************
;* System Built-in function-StrToReal *
;* Return Vaule=StrToReal(CHAR:IN,REAL:OUT) ; *
;* Convert a string in a Real variable ; *
;* Range value of Argument IN :Char Array ; *
;* Range value of Argument OUT :REAL ; *
;* Range value of Result is Bool as Result; *
;**************************************************
測(cè)試程序:
測(cè)試結(jié)果:
-
用戶(hù)定義函數(shù):
;***************************************************
;* Customer : *
;* Roboter : *
;* Version : Vxxxxxx *
;* Roboter Nr. : xxxxxx *
;* Controller Nr: xxxxxx *
;* *
;* Autor : Andrew Wang *
;* Company : *
;* Department : *
;* Telephone : 86 156-8082-2827 *
;* *
;* Version : 1.0 *
;* Created : 12.12.2018 *
;* Modified : *
;* Project : *
;* *
;* Program Name : String_To_Real *
;* Convert a string variant to a real variable; *
;**************************************************
GLOBAL DEFFCT REAL String_To_Real(StringIn[]:IN)
DECL STATE_T state
DECL CHAR StringIn[]
DECL REAL RealOut
DECL INT zOffset
zOffset=0
SREAD(StringIN[],State,zOffset,"%f",RealOut)
RETURN(RealOut)
ENDFCT
測(cè)試程序:
測(cè)試結(jié)果:
責(zé)任編輯:xj
原文標(biāo)題:庫(kù)卡編程篇實(shí)數(shù)與字符串轉(zhuǎn)化
文章出處:【微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
編程
+關(guān)注
關(guān)注
88文章
3679瀏覽量
94858 -
字符串
+關(guān)注
關(guān)注
1文章
589瀏覽量
21094 -
庫(kù)卡
+關(guān)注
關(guān)注
0文章
83瀏覽量
14417
原文標(biāo)題:庫(kù)卡編程篇實(shí)數(shù)與字符串轉(zhuǎn)化
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論