更新内容,v4.2.2版本:
1.增加Modbus协议读取多个寄存器,并且按多种数据类型解析数据。
2.Modbus Serial和Modbus TCP两个驱动合并成一个驱动。
3.修改数据库结构,保存配置信息。
4.优化ServerSuperIO核心代码,应用过程中的潜在问题。

v4.2.2 下载地址:官方下载


目       录

3. Modbus协议,读取多个寄存器,实现多种数据类型解析... 2

3.1           概述... 2

3.2           Modbus基础知识... 2

3.3           读取多个寄存器,多种数据类型解析... 4

3.4           实现效果展示... 6

3.5           未来驱动的规划... 7

2.1    概述

在发布《标准Modbus和非标准协议的使用、测试以及驱动开发》之后,有些网友反馈在Modbus协议驱动方面是否可以实现读多个寄存器和按多种数据类型解析数据。一是平时工作比较忙,二是有些犯懒。在传感器及仪器仪表行业用到Modbus协议的情况比较多,但是大部分使用都比较简单,可能往往只需要一个命令读取数据,对返回数据进行解析。我认为针对这种情况开发一个简单的驱动非常简单,加之网友的水平参差不齐,也没有针对网友的反馈进行积极的回应。但是从一个产品的角度考虑,确实应该进行完善,也确实有市场方面的需求,有很多公司是借鉴Modbus协议形式进行自定义协议,情况比较复杂。所以,利用出差的这段时间,针对Modbus驱动实现读取多个寄存器和按多种数据类型解析数据,以满足不同应用现场的需求。

2.2    Modbus基础知识

Modbus采用的通讯机制为呼叫应答方式,或叫主从方式(master/slave)。主机发送请求命令,从机接到命令后进行校验数据的完整性,以及确定是否发给自己的命令,校验成功后,返回指定的数据信息,完成一次完整的通讯。呼叫应答通讯机制如下图:

Modbus协议依靠网络传输层定义了一个简单的数据传输协议,串口通讯(Modbus Serial)的RTU和ASCII模式以及网络通讯(Modbus TCP)模式在协议编码和操作方面有所区别。基本协议格式如下图:

下位机地址和功能码,示意图:

    白皮书介绍:下载地址

2.3    读取多个寄存器,多种数据类型解析

主要针对【寄存器个数】和【解析数据方式】两个选择进行升级,在设备驱动中增加监测点的时候,可以选择这两项内容。如下图:

1个寄存器个数代码2个字节,转换成字节数的公式为:读取数据字节数=寄存器个数*2,根据实际情况设置。

解析数据方式为24种,主要针对short、ushort、int、uint、float和double数据类型进行解析,由于传感器与电脑的高低位排序有所差异,所以针对同一种数据类型分不同的解析方式。解析数据方式,如下图:

2.4    实现效果展示

使用Modbus TCP进行演示,连接Modbus Slave,127.0.0.1:502,读取1个数据点,按“short,2字节,顺序:先高后低”解析数据,如下图:

2.5    未来驱动的规划

ServerSuperIO相当于系统建设中数据交互的中枢,将来对下连接各种PLC及传感器,也在积极规划开发基于各种PLC的驱动;对上连接WEB组态以及管理系统。所有都通过配置完成,为中小企业提供一站式的项目解决方案,降低成本、提高效率。

最近国产自主安全可控的redcore browser浏览器融资2.5个亿,实际上使用是的Google的开源内核,假设有“创新”的成分,估计也只是皮毛。尽管ServerSuperIO算不上高大上,但是也算是积累了10年的工作经验,算是真正的自主安全可控。哈哈……。


1.[连载]《C#通讯(串口和网络)框架的设计与实现》

2.[开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍

2.应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的整体方案

3.C#工业物联网和集成系统解决方案的技术路线(数据源、数据采集、数据上传与接收、ActiveMQ、Mongodb、WebApi、手机App)

5.github地址:https://github.com/wxzz/ServerSuperIO

6.助力中小企业级连云端,促进工业互联网平台蓬勃发展,全套解决方案。

物联网&集成技术 QQ群:54256083

《ServerSuperIO Designer IDE使用教程》-3.Modbus协议,读取多个寄存器,实现多种数据类型解析。发布:v4.2.2版本的更多相关文章

  1. 《ServerSuperIO Designer IDE使用教程》- 5.树形结构管理设备驱动,小版本更新。发布:v4.2.3.1版本

    v4.2.3.1 更新内容:1.选择和管理设备驱动,增加树状结构显示.2.优化ide代码,核心代码没有改动.下载地址:官方下载 5. 树形结构管理设备驱动,小版本更新 5.1    概述 此次升级主要 ...

  2. 《ServerSuperIO Designer IDE使用教程》-1.标准Modbus和非标准协议的使用、测试以及驱动开发。附:v4.2发布

    ServerSuperIO Designer IDE v4.2版本更新内容: 增加ServerSuperIO.Host运行程序,可以使用IDE进行测试,Host为运行环境. 针对设备驱动增加导入监测点 ...

  3. 《ServerSuperIO Designer IDE使用教程》-2.与硬件网关数据交互,并进行数据级联转发,直到云端。发布:v4.2.1版本

    v4.2.1 更新内容:1.重新定义数据转发文本协议,使网关与ServerSuperIO以及之间能够相关交互数据.2.扩展ServerSuperIO动态数据类的方法,更灵活.3.修复Designer增 ...

  4. 《ServerSuperIO Designer IDE使用教程》-4.增加台达PLC驱动及使用教程,从0到1的改变。发布:v4.2.3版本

    v4.2.3 更新内容:1.优化数据存储部分,提高效率.2.修复数据库服务停止造成程序异常退出的现象.3.修复本机没有串口造成无法增加设备驱动的情况.4.增加编辑设备和监测点配置信息功能.5.增加台达 ...

  5. 《ServerSuperIO Designer IDE使用教程》- 6.增加与阿里云物联网(IOT)对接服务,实现数据交互。发布:v4.2.4 版本

    v4.2.4 更新内容:1.增加了对接阿里物联网平台的服务.下载地址:官方下载   6. 增加与阿里云物联网(IOT)对接服务,实现数据交互  6.1    概述 为了满足业务系统数据上云的要求,Se ...

  6. 《ServerSuperIO Designer IDE使用教程》- 7.增加机器学习算法,通讯采集数据与算法相结合。发布:4.2.5 版本

    v4.2.5更新内容:1.修复服务实例设置ClearSocketSession参数时,可能出现资源无法释放而造成异常的情况.2.修复关闭宿主程序后进程仍然无法退出的问题.2.增加机器学习框架.3.优化 ...

  7. ServerSuperIO Designer IDE 发布,打造物联网通讯大脑,随心而联。附:C#驱动源代码。

    1.概况 注:ServerSuperIO Designer IDE 同行业网友随便使用,不涉及到软件使用限制的问题. 从2015年到现在的将近两年的时间,一直在开发.完善ServerSuperIO(S ...

  8. 利用Modbus协议读取电能表的数据

    1.电脑要有485转232的转换器2.你要看懂DLT_645—1997规约的通讯协议,现在大多电能表厂都会遵行这个通讯协议,DLT_645—1997规约不是最新的通讯协议.就看电表的使用什么通讯协议. ...

  9. RS485通信和Modbus协议(转)

    转自:http://www.51hei.com/bbs/dpj-23230-1.html 在工业控制.电力通讯.智能仪表等领域,通常情况下是采用串口通信的方式进行数据交换.最初采用的方式是RS232接 ...

随机推荐

  1. MySQL数据库、表常用操作

    1.按条件查询表中数据: mysql> select user,host,password from user; 2.按组合条件查询表中数据: mysql> select id, pass ...

  2. mysql 修改表结构、表字段注释语句

    虽然现在有各种各样的工具可以直接对表结构进行修改,但是我还是喜欢使用语句进行修改.以下语句是对表增加字段.给字段加注释的语句 alter table orders add column isupdyq ...

  3. eclipse 包 取消代码第一行package包名 自动补全时取消自动引入包名 修改名字 取消引用 自动导入publilc static void main(String[] args) {}

    --项目 --包 包是为了管理类文件,同个包下不允许同名类文件,但不同包就可以,把类放在包里是规范 (https://zhidao.baidu.com/question/239471930532952 ...

  4. 【转】BTree,B-Tree,B+Tree,B*Tree

    B树: 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right): 2.所有结点存储一个关键字: 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树: 如: ...

  5. Ceph rdb

    Ceph 独一无二地用统一的系统提供了对象.块.和文件存储功能,它可靠性高.管理简便.并且是自由软件. Ceph 的强大足以改变公司的 IT 基础架构.和管理海量数据. Ceph 可提供极大的伸缩性— ...

  6. windows类似grep的命令——findstr

    windows类似grep的命令——findstr   使用Chrome发现访问google总是向香港那边跳转,估计配置文件中google网站映射的地址是www.google.com.hk,便想着改配 ...

  7. 分类器的评价指标-ROC&AUC

    ROC 曲线:接收者操作特征曲线(receiver operating characteristic curve),是反映敏感性和特异性连续变量的综合指标,roc 曲线上每个点反映着对同一信号刺激的感 ...

  8. 四、Tensorflow的分布式训练

    TensorFlow中的集群(cluster)指的是一系列能够针对图(Graph)进行分布式计算任务(task).每个任务是同服务(server)相关联的.TensorFlow中的服务会包含一个用于创 ...

  9. 记一次安装python umysql模块的报错

    今天,在写一个python脚本的时候要用到数据库相关的umysql模块,但在引用的时候报没有此模块,第一反应就是去安装此模块,但是报没有找到pip命令. #pip install umysql -ba ...

  10. 非阻塞读和写:str_cli函数

    void str_cli(FILE *fp, int sockfd) { int maxfdp1, val, stdineof; ssize_t n, nwritten; fd_set rset, w ...