MATLAB与LabVIEW基于TCP通信

目标:MATLAB编写服务器接收数据程序,LabVIEW采集发送数据,基于TCP/IP通信。
前提:
LabVIEW已经写好发送数据程序,采集的数据(双精度浮点型)通过强制类型转换函数转换成字符串并发送。
过程:
1、调通两边网络,LabVIEW所在电脑ip设置为192.168.0.10,端口号为8081(这个应该可以随便设,没关系),MATLAB所在电脑ip设置为192.168.0.110,端口号为8082,通过一根网线连接,先用网络调试助手分别进行连接通信,确保通信成功。
2、调通网络后,LabVIEW发送的数据能被MATLAB接收,只是不是原数据,需要将数据还原。具体对应关系如下图所示,我分了两种情况,即当发送数据为字符串时的接收情况以及发送数据为double型再通过强制类型转换函数转换成字符串发送时的接收情况。
在这里插入图片描述
3、将接收到的数据还原成双精度浮点数,涉及IEEE754浮点数和十进制数的转换,具体程序如下。

server = tcpserver("192.168.0.110",8082,"Timeout",20,"ConnectionChangedFcn",@connectionFcn); 
pause(1);
if server.NumBytesAvailable>0
   server.NumBytesAvailable
end
pause(1);
data=read(server,server.NumBytesAvailable);
a=length(data);
data1=[];
count=0;
if mod(a,8)==0
    while count<a/8
        b=dec2bin(data(count*8+1:count*8+8),8);
        c=reshape(b',1,[]);
        M=bin2dec(c(13:64));
        E=bin2dec(c(2:12));
        x=(-1)^c(1)*(1+M*2^(-52))*2^(E-1023);
        data1(count+1)=x;
        count=count+1;
    end
end
disp(data1) 
clear server

其中的函数模块程序如下。

function connectionFcn(src, ~)
if src.Connected
    disp("Client connection accepted by server.")
end
end

之后就通信成功啦啦啦啦。
在这里插入图片描述成功图:
在这里插入图片描述
OVER
PERFECT
zhq加油,你是最棒的,你一定行,你肯定行,你必须行!!!

  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值