发表于:2019/2/27 16:50:02
#10楼
以下是引用唱响青春之歌在2019/2/27 16:20:20的发言:
是通过写命令swap写入单片机,然后再读取单片机的寄存器,返回的数据是按照swap的排序?
modbus协议本身没有写swap的命令.swap应该是组态王保留为了适应不同设备的自有变量,这个变量只能写.意思是你自己对应不同设备的数据格式,告诉组态王应该在接收后怎么处理.是通过写命令swap写入单片机,然后再读取单片机的寄存器,返回的数据是按照swap的排序?
这件事没有必要告诉设备(你说的单片机),很多设备也不听你的.数据是双向的,设备顽固,你自己改变就行咯.当然有些设备可以定义改变高低字,但那也是在设备侧不是在组态王侧,比如单片机是你的,你随便改程序.
还是上面的,组态王接到数据后,swap设置对了,它显示3.14,设置不对,就不是显示这个了.你要是在我身边呢,我会亲自用modbus+组态王通讯给你看,因为你这个问题小众(其实字节排序大小endian问题很广泛,几乎每家的计算机都有区别,PLC的话看看西门家mb,mw,md的就知道),我也就不给你发或者另开帖视频演示了.
------------------------------------------------------------------------
然而但是,这个跟你的问题离开远了.你问的是怎么取到字节(一个寄存器的四组数据).不知道你解决没有?但愿我不把你拉坑了(这事常有).
[此贴子已经被作者于2019/2/27 17:08:07编辑过]