【LabVIEW开发】字符串数组与字符串的互相转化在同⼀个地⽅跌倒两次,才能体会到“好记性不如烂笔头”!
⼀、字符串数组→字符串
最近在做⼀个项⽬,需要使⽤LabVIEW开发上位机软件,在软件的流程图上显⽰第三⽅仿真软件发送过来的数据,并将下位机倍福PLC采集的开关量数据发送给第三⽅仿真软件,LabVIEW上位机与第三⽅仿真软件之间采⽤UDP协议进⾏通信。
使⽤过LabVIEW进⾏UDP通信的都知道,LabVIEW的UDP收发模块只能发送和接收字符串,不能发送数组或其他类型的数据,如果要发送,就必须将这些类型的数据转化为字符串。⼀般我们的数据都是保存在数组中的,我们就来看看labview中字符串数组是如何转化为字符串的。
1. 既然是数组,我⾸先想到的是索引数组,将数组的每⼀项索引,然后⽤字符串连接符将每⼀项连接起来,就变成了⼀个长字符串,如下图:
但是,如果我要发送的数据是100个变量时,也就是说字符串数组有100个元素,如果也采⽤数组索引,那数组索引这个模块岂不是要拉的⽆限长(100个索引值),LabVIEW不应该只有这么⽆脑的⽅法,肯定还有更简洁的⽅法!
2. 后来不断尝试发现字符串数组的索引功能可以⽤for循环代替,如下图:
那么,LabVIEW是不是还有更简单的⽅法呢?
3. 必然还有更简单的⽅法,既不需要数组索引,也不需要for循环以及移位寄存器,实现如下:
简直是 So Easy!
需要注意⼀点的就是,默认的连接字符串模块是有两个输⼊节点的,⿏标上移将2个输⼊节点缩成⼀个就可以使⽤了。
⼆、字符串→字符串数组
既然字符串数组可以转换成字符串,那字符串能不能分解成字符串数组呢?
LabVIEW必然可以啊!主要有两种⽅法,区别就在于,分解成的字符串数组中的每⼀元素占多少个字节。数组转换成字符串
1. 当分解成的每个数组元素只占⼀个字节⽐如16进制字符串01、英⽂单词等,实现⽅法如下:
2. 当分解成的每个数组元素占多个字节,⽐如表⽰浮点数的4字节16进制字符串或者占2个字节的中⽂汉字,实现⽅法如下:
如果不想使⽤while循环,使⽤for循环也可以实现,如下:
这样,就可以通过改变删除数组元素模块的长度参数,来获取任意字节数的字符串数组。
3. 对于纯英⽂字符串,还有如下简易⽅法:
这个程序中需要注意⼀点就是,最上⽅的分隔符参数⾥需要敲⼊⼀个空格符。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论