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
小端没有进行试验,可以自行尝试,非常简单