组态王通过modbus协议读取设备的浮点数和Long型的整数,有时候会出现数值很大,或者为0,还有字符串显示不对的情况,这时候就需要做字节顺序转换。本文重点介绍三种调整Modbus字节顺序的方法。

1.建Swap寄存器

利用给寄存器swapF0等特殊寄存器赋值来改变读取数据的高低字节排序,以浮点型数据为例,在数据词典中定义swapF变量,通道号为0,数据类型BYTE,只写,采集频率为0,如图1所示。

然后将swapF0在画面上输出,对其依次赋值0、1、2、3,观察浮点型变量的值,直到浮点型数据的值显示正确,记录swapF0最终的值。具体过程如图2、图3、如图4所示。


由图4可见,当 swapF0等于1时,浮点数显示正常,然后在应用程序命令语言的启动时把swapF0的赋值脚本写上,即swapF0=1,如图5所示。

需要注意的是,swapF0在数据词典中定义的初始值与最终调试所赋予的值不能一样,比如本例中swapF0=1,那么swapF0变量的初始值就不能为1,可以设为其他值,在程序启动时,swapF0的值需要有一个变化的过程。按照这种方法,同样可以调整字符串型、长整型、CRC校验、长BCD型字节顺序,其变量定义的如图6所示。

2.修改安装路径-Driver文件夹中modbusmaster.ini文件

打开组态王的安装路径,找到modbusmaster.ini文件,如图7所示。

在文档的最下方,找到[Swap],通过对long、float、longbcd、string赋值,就可以改变其对应的字节顺序,如图8所示。


注:此种方式修改会影响工程中所有的modbus设备,建议工程中只有一个modbus设备时使用。

3.设备地址后边加上Swap功能设定

定义设备时,在设备地址处设置该设备中某种数据类型的字节排列顺序。
串口连接方式(Rtu和ASCII):
Address[:Delay: BeforeDelay][|SwapF|SwapL|SwapC]
TCP连接方式:
IP[:Port] Address[/TimeOut] [|SwapF|SwapL|SwapC]

Address 0-255 设备地址
Delay 0-60000 发送每条命令帧后的延迟时间(毫秒)
BeforeDelay 0-60000 发送每条命令帧前的延迟时间(毫秒)
Port 0-65535 设备IP地址端口,(不写时默认为502)
TimeOut 0-65535 网络超时(不写时默认3秒)

SwapF 0-3 浮点数的字节顺序,默认为配置文件中所写
SwapL 0-3 长征性的字节顺序,默认为配置文件中所写
SwapC 0-1 CRC校验的字节顺序,默认为配置文件中所写

如:1:500:500|1|0|0
如:192.168.21.20:502 1/50|1|0|0
注:如果在设备定义中对Swap系列功能设定,需要同时设定3个Swap顺序,且SwapF、SwapL、SwapC次序不可更改。

组态王中Modbus字节顺序的调整相关推荐

  1. 属性面板 脚本_如何在组态王中实现同类型设备公用操作面板的调用---干货

    在用组态王做工程项目的过程中,同类型设备比较常见,比如阀门XV0101和XV0102,或者更多的阀门.它们有相同类型的点,同时点的数量也完全一样.完全相同.比如:XV0101阀门有DI点:开到为.关到 ...

  2. 组态王和modbus协议

    最近接触到一个项目,是运行在组态王软件中的仪表设备,使用modbus协议通讯. 原以为modbus是一套完整的协议,从网上下载了粗略看了一下.后来拿到竞品的样品,安装了组态王,连接运行了一下,才发现与 ...

  3. 组态王中PLC数据连接MySQL数据库教程

    南方科技大学创新设计课程朗坤项目组 前言:本文作者非专业编程专业,相关教程可能不是很严格,仅仅提供一种思路,方便今后各位解决PLC数据抓取的问题.如果有什么遗漏,欢迎各位前辈批评斧正,不胜感激. PL ...

  4. 组态王中时间存access怎么存,组态王通过Access数据库起始截止日期查询方法

    1)在组态王画面中添加两个日期时间控件即:Microsoft Date and Time Picker Control 6.0,控件名称分别为date1和date2:2)在date1控件的CLOSEU ...

  5. 组态王中时间存access怎么存_组态王数据保存

    功能介绍 工业自动化技术发布交流 文章介绍如何将组态王的数据存入access数据库中. 1. 首先创建一个access数据库,命名为组态王.mdb,mdb文件是老版本的access数据库文件,如果使用 ...

  6. 组态王bitset用法_组态王中的函数 bitset ( var,bitno,onoff )这个函数的中 var 指的是离散变量_绘本戏剧答案_学小易找答案...

    [填空题]按机件被剖开的范围分,剖视图可分为:全剖视图.半剖视图.____.答案 [填空题]移出断面图的轮廓线用____绘制,重合断面图的轮廓线规定用____画出. [填空题]平面图形中的尺寸, 按其 ...

  7. 组态中怎么使用mysql数据库_组态王中PLC数据连接MySQL数据库教程

    操作步骤: ①     确定中控室电脑连网,并且安装MySQL环境,下载地址如下:https://www.mysql.com/downloads/ ②     修改win MySQL服务信息(最好修改 ...

  8. 组态王软件与S7-200SMART无线MODBUS通信

    本方案是组态软件与西门子 S7-200 Smart 进行无线 MODBUS 通信的实现方法.此方案可以作为西门子 S7-200 Smart与组态软件的无线 MODBUS 通信实例.在本方案中采用了西门 ...

  9. 组态中怎么使用mysql数据库,组态王写入MySQL数据库

    涉及部分概念,如下: 记录体 记录体用来连接表格的列和组态王数据词典中的变量.选择工程浏览器左侧大纲项"SQL访问管理器文件\记录体",在工程浏览器右侧用鼠标左键双击"新 ...

  10. 组态王弹出服务器正在运行中,组态王常见问题集锦(二)

    1.变量设定中最大(小)值及最大(小)原始值意义? 答:组态王变量的属性页中的最小原始值.最大原始值和最小值.最大值这四个数值是用来确定原始值与工程值之间的转换比例(当最小值和最小原始值一样,最大值和 ...

最新文章

  1. 1. vi 与 vim 有什么区别呢,它们之间有什么关系?
  2. elementUI table 表格表头居中 颜色、内容居左
  3. 为什么很多人只提苹果手机比安卓手机流畅耐用,却不提苹果手机比安卓手机贵几倍?
  4. Leetcode 261.以图判树
  5. Android自定义控件7--自定义开关--绘制界面内容
  6. java spring初始化_Spring框架初始化解析
  7. 细说php完美分页类
  8. linux i3 桌面,Linux 桌面平铺管理器 - i3wm
  9. 华为android解锁,华为bootloader怎么解锁 华为手机bootloader解锁教程
  10. SAP UI5 初学 ( 一 )、简介
  11. 项目实训- 基于unity的2D多人乱斗闯关游戏设计与开发(综述)
  12. 易语言删除c盘源码,易语言基础教程利用API删除自身及子文件
  13. Ignite学习笔记——Ignite的安装与配置
  14. 吃货在东京 -- 记那段吃不饱的日子 之三 筑地的生鱼刺身
  15. 英特尔核显驱动hd630_英特尔首款独显 Xe Max 评测出炉:低于移动端 GTX 1050 Ti
  16. mysql的between and的用法
  17. 魅族note8完美打开usb调试模式的教程
  18. 基于2022高考数学全国卷I概率题解题思路初步分析新冠病毒疫苗
  19. Scratch课程设计(一)
  20. fatal error: cusparse.h: No such file or directory compilation terminated. error: command ‘/usr/loca

热门文章

  1. linux怎么看本机ip,linux下查看本机IP的两种方法
  2. sql条件查询表数据条数
  3. EI的检索方法快速检索(Quick Search)
  4. MSET key value [key value ...]
  5. SVG排版教程 | SVG排版入门基础知识汇总
  6. 开发人员的linux操作系统Tips
  7. vue移动端日历显示查看每日详情列表
  8. ArcGIS georeference地理配准提高精度
  9. 如何查看windows的CUDA版本
  10. Imagination开放PowerVR光线追踪技术授权