有些朋友经常问我实数与字符串之间怎么转化,尤其是在EthernetKRL的Binarystream的使用中。那么这边文章以代码的形式来展示。
一.实数转化为字符串:
;***************************************************
;* 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
测试程序:
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
测试结果:
如果将程序修改下,就可以保留小数点后几位的格式:
;***************************************************
;* 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
测试结果:
二.字符串转实数:
对于字符串转实数有两种方式,一种是系统函数,一种用户自定义的函数;
-
系统自定义函数:
;**************************************************
;* 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; *
;**************************************************
测试程序:
测试结果:
-
用户定义函数:
;***************************************************
;* 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
测试程序:
测试结果:
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
编程
+关注
关注
88文章
3441浏览量
92417 -
字符串
+关注
关注
1文章
552浏览量
20135 -
库卡
+关注
关注
0文章
78浏览量
14109
原文标题:库卡编程篇实数与字符串转化
文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
如何提取串口接收字符串数组里的某个字符串?
前几天搞了好久串口发送接收字符串的程序代码,终于搞出来了。还没高兴多久,新的问题又来了。我使用STM8S105K4的UART2串口跟蓝牙模块通信的,我发送字符串指令给蓝牙后,蓝牙返回来了十几
发表于 04-22 06:05
PSoC™ 6 UART通信反复发送字符串是为什么?
我正在尝试使用 UART 代码,但我修改了代码,一次又一次地发送字符串,而这次他只询问用户一次。
所以我想再三询问用户。 我还设置了一个 while (1) 循环,但仍然不起作用。 因此,请提供反复发送新字符串的 uart 示例。
发表于 03-05 07:26
USB字符串描述符里面的序列号字符串到底是什么东西?
在设备描述符里面,有一个表示序列号字符串描述符的编号,请问这个序列号字符串的描述符是什么东西呢?
厂商字符串和设备字符串都能理解,而且在电脑的“设备与打印机”里面都找到了。但请问这个
发表于 01-24 08:06
labview扫描字符串怎么用
LabVIEW 是一种流程化编程语言和开发环境,主要用于控制、测量和监测系统。在 LabVIEW 中,扫描字符串是一项常见的任务,它允许用户按照一定的模式从输入字符串中提取所需的信息。下面我将详细
c语言字符串定义
C语言是一种强大而广泛使用的编程语言,字符串是其中一个非常重要的概念。在C语言中,字符串是由一系列字符组成的数组,它可以表示文本、数字等各种类型的数据。在本文中,我们将详尽、详实、细致地介绍C语言
java字符串转化为日期格式
在Java中,字符串转化为日期格式是一个常见的需求。日期格式在处理时间相关的操作时非常重要,它可以用来表示一段时间的开始和结束,也可以用来计算时间差等。本文将详细介绍如何将一个字符串转化
mysql字符串包含某个字符串
MySQL是一种开源的关系型数据库管理系统,被广泛用于构建Web应用程序和其他大型数据驱动的应用。在进行MySQL数据库查询时,经常需要使用字符串包含操作,即判断一个字符串是否包含另一个字符串。本文
怎么把int类型的数据转换成字符串?
怎么把 int 类型的数据转换成字符串:
看项目有用 micrilib,itoa() 函数 和 sprintf() 能不能用呢?怎么用
比如把 int a=10;转换成字符串 charbuf[]=\"10\";
发表于 11-01 08:27
求助,如何把一串字符串运算转化成定长字符串?
是128bit的,按4位二进制组合成一个十六进制,所以最后出来的十六进制字符串是32个,比如d3379f609e1aa88da2f50018d4fa218f。
发表于 11-01 07:52
评论