视觉学习(7) —— 接收数据和发送数据以及全局变量和浮点数

发布时间:2023年12月26日

?1、前提

创建一个四个字节的地址

2、发送数据

(1)直接发送数据

再观察地址里的值

与我们想要值不一样

输入0,而实际值则为

结论:直接输入值到地址,值会发生变化

(2)走全局变量发送数据

添加全局变量(值为1,更好的区分)

走全局变量发送数据

查看地址的数据值

发现问题:

这里可以观察到,地址数值为 00 01 00 00 ,与预想不符

查看地址的绑定

虽然寄存器个数是2个,但是Int类型是16位

所以结果只在前两个字节显示,我们将其更改为32位,再发送一次

(8bit = 1字节)(16bit = 2字节)(32bit = 4字节)

地址的数据显示为16进制显示

此时的结果为 00 00 00 01 ,是我们的准确结果

3、接收数据

若Int类型选择16位,但接收数据是32位的数据会如何,用float类型测试一下

将输入值更改成32位浮点数(大小端可以自己选)—— 这里是大端

更改后如下图

输入浮点数3.14,视觉里查看地址数据

接收数据接收地址里的数据

将地址数据进行解析(地址位置0-3,是因为四个字节,0,1,2,3)

可以发现Int类型为16位并不影响接收32位数据

4、视觉发送浮点数数据

执行发送,观察数值

可以看到 Int类型为16bit依旧可以发浮点数的数据

如果将发送顺序更改呢

从站接收的数据明显发生变化

5、结论

(1)视觉接收别人发送的数据

只需要注意寄存器个数即可,一个寄存器存16bit即两个字节,想接收 Int类型和float类型 ,则需要两个寄存器

(2)视觉发送数据给别人

整数:

看地址中寄存器个数选择

一个寄存器为一个地址,即 Int类型选择16bit

两个寄存器为一个地址,即 Int类型选择32bit

浮点数:

双方先约定好浮点数的传输走的是大端还是小端

再去更改发送顺序

大端好像是ABCD

小端没有进行试验,可以自行尝试,非常简单

文章来源:https://blog.csdn.net/basinle/article/details/135220335
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。