Modbus是一种串行通信协议,是莫迪康公司为PLC(编程逻辑控制器)通信而设计的协议。Modbus目前已经成为工业领域通信协议的业界标准,大部分的仪器仪表都支持该通信协议。很早以前就开发过基于Modbus协议的各种驱动,在2007年的时候还曾写了一篇《我的Modbus Slave/Client开发历程》的博客文章 。

YFIOs就是YFSoft I/O Server的简称,是一款物联网时代的轻量级嵌入式组态系统。支持策略和驱动二次开发,不过常规策略和驱动开发有些繁琐,由于大部分物联网设备都支持modbus协议,所以提供给一款快速开发的modbus驱动的工具,还是非常必要的。

本篇文章将介绍一款基于modbus协议的温湿度模块的快速驱动开发过程。

打开“YFIOsIDE”程序,启动后,单击“文件”主菜单下面的“modbus驱动开发向导”。

查温湿度传感器的说明书我们可以知道,温度和湿度在modbus寄存器的偏移地址是0和1(40000区),我们把标识符分别设置为“T”和“H”。看说明书我们可知,直接读取的值还不是温度和湿度,还需要除以10,所以我们配置一下运算表达式为“$Value/10.0”,其中$Value就是我们直接从指定地址区读到的原生值。

驱动名称和制造商等信息,可以根据实际进行填写就行,我们这里采用默认值。设备地址和串口参数,可以设置为该设备的默认参数。

参数配置好后,我们单击“编译”按钮进行驱动文件编译,为了让YFIOs管理程序方便加载我们新编译的驱动,我们选择目录为YFIOsManager程序下的“Driver”目录。

编译成功后,我们发现在指定的目录出现一个dll和pe文件,文件名就是我们配置的“驱动名称”。

我们打开YFIOsManager程序,单击“驱动列表”项,可以看到我们刚刚编译的驱动。

好,我们测试一下刚刚编译好的驱动,看看是否能正常工作。我们添加一个用户驱动,选择我们刚刚创建好的驱动。

YF3300的RS485为COM2。配置好后,数据配置里面就会自动出来对应的变量来,如下图所示:

我们让YF3300接一个温湿度模块,把相关的组态配置部署到YF3300中去。

YF3300采购链接(最后一个颜色分类是YF3300网关):

https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-10400358307.7.82854d48viZm7V&id=42910631014

部署运行后,我们在“数据监控”中看到温湿度已经可以正常读取了。

从以上可以看成,只要知道对应的属性地址,我们可以非常迅速的开发出一款比较实用的设备驱动。另外驱动的配置可以导出为xml文件,后续可以根据需要进行修改和扩展。如果要实现的驱动比较复杂,还可以导出为Visual Studio C#项目,可以更为自由的实现对应的驱动了。

单击“导出为C#工程”,选定好要导出的目录,然后就可以到一个完整的C#驱动程序了(一个驱动接口工程,一个驱动pe工程)。

想体验阿里云IoT平台的网友,可以单击如下链接:https://dev.iot.aliyun.com/sale?source=deveco_partner_yefan

【阿里云IoT+YF3300】9.快速开发modbus设备驱动的更多相关文章

  1. 【阿里云IoT+YF3300】11.物联网多设备快速通信级联

    我们见到的很多物联网设备,大都是“一跳”上网,所谓的“一跳”就是设备直接上网,内嵌物联网模块或者通过DTU直接上网.其实稍微复杂的物联网现场,往往网关下面连接若干物联网设备(如下图),并且这些物联网设 ...

  2. 【阿里云IoT+YF3300】1.时代大背景下的阿里云IoT物联网的现状和未来

    “未来十到二十年,大家基本已经形成了一个共识,那便是新格局的奠定将由 AI 和物联网技术来支撑.放眼国内,在这些互联网巨头之中,未来真正成为竞争对手厮杀的,阿里和华为是首当其冲,在这两个领域双方分别暗 ...

  3. 【阿里云IoT+YF3300】10.快速开发188协议设备驱动

    188协议的全称为CJ-T188-2004 <户用计量仪表数据传输技术条件>,是针对水表.燃气表.热量表和其他集中采集的一个国家行业标准协议. YFIOs就是YFSoft I/O Serv ...

  4. 【阿里云IoT+YF3300】8.物联网设备用户脚本开发

    除了我们必须熟悉的网页脚本,比如JavaScript.其实在工业自动化中,组态软件是必备脚本的,只是有的脚本语言风格类似C或类似Basic而已.比如昆仑通泰的组态屏中的组态软件.通过安装组态软件可以简 ...

  5. 【阿里云IoT+YF3300】6.物联网设备报警配置

    纵然5G时代已经在时代的浪潮中展现出了它的身影,但是就目前的物联网环境中,网络问题仍旧是一个比较突出的硬伤.众所周知,在当前的物联网规划中,与其说是实现万物互联,倒不如说是行业指标数据监控.对于一些特 ...

  6. 【阿里云IoT+YF3300】12.阿里云IoT Studio入门介绍

    阿里云IoT Studio是针对物联网场景提供的生产力工具,可覆盖各个物联网行业核心应用场景,帮助您高效经济地完成设备.服务及应用开发.物联网开发服务提供了移动可视化开发.Web可视化开发.服务开发与 ...

  7. 【阿里云IoT+YF3300】13.阿里云IoT Studio WEB监控界面构建

    Web可视化开发是阿里云IoT Studio中比较重要的一个功能,通过可视化拖拽的方式,方便地将各种图表组件与设备相关的数据源关联,无需编程,即可将物联网平台上接入的设备数据可视化展现. 目前支持的组 ...

  8. 【阿里云IoT+YF3300】14.阿里IoT Studio打造手机端APP

    在上一篇<13.阿里云IoT Studio WEB监控界面构建>中,我们介绍了用阿里云IoT Studio(原Link Develop)可视化构建WEB界面程序.本篇文章将介绍用阿里云Io ...

  9. 【阿里云IoT+YF3300】15.阿里云物联网小程序构建

    2013年8月,“轻应用”概念提出,但是仅仅活跃四年随后淡出 ,直到2017年1月9号借助微信小程序成功续命.一时间,以微信小程序和支付宝小程序为代表的轻应用解决方案迅速贯穿多个环节,成为“万物互联” ...

随机推荐

  1. Mysql 存储过程 + python调用存储过程 (内置函数讲解及定义摘抄)

    定义 存储过程:就是为以后的使用而保存的一条或多条 MySQL语句的集合.可将其视为批文件,虽然它们的作用不仅限于批处理. 个人使用存储过程的原因就是因为 存储过程比使用单独的SQL语句要快 有如下表 ...

  2. 【hbase】hbase-2.2.1配置独立的zookeeper的安装与测试

    下载hbase-2.2.1-bin.tar.gz并执行安装命令: [hadoop@hadoop01 ~]$ tar -zxvf hbase--bin.tar.gz 查看安装目录: [hadoop@ha ...

  3. uWSGI+django+nginx的工作原理流程与部署历程

    一.前言献给和我一样懵懂中不断汲取知识,进步的人们. 霓虹闪烁,但人们真正需要的,只是一个可以照亮前路的烛光 二.必要的前提2.1 准备知识 django一个基于python的开源web框架,请确保自 ...

  4. CentOS7编译安装httpd-2.4.41 php7.3

    CentOS7编译安装httpd-2.4.41 php7.3 安装参考环境: CentOS Linux release 7.5.1804 (Core) 一.安装依赖包 httpd安装的依赖包 # yu ...

  5. Jenkins 插件:Job Configuration History(记录job的历史更新记录)

    1. 添加插件   添加完成后,Jenkins,左下,多一个菜单栏 .可以查看,job的更新记录,见下图 .   如上,End再也不用担心,有同学乱改Job ,却不知道哪里被改的情况了. 注:1)这个 ...

  6. js节点的创建添加删除

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. 一个在开源中国博客上讲解的AC自动机

    原文出处:http://my.oschina.net/amince/blog/196426 原 荐 AC(Aho—Corasiek) 多模式匹配算法 摘要 如何在一篇文章中,搜索多个关键字,如何快速查 ...

  8. yarn cluster和yarn client模式区别——yarn-cluster适用于生产环境,结果存HDFS;而yarn-client适用于交互和调试,也就是希望快速地看到application的输出

    Yarn-cluster VS Yarn-client 从广义上讲,yarn-cluster适用于生产环境:而yarn-client适用于交互和调试,也就是希望快速地看到application的输出. ...

  9. linux系统编程之信号(六)

    今天继续学习信号相关的知识,主要还是学习sigqueue另外信号发送函数,并配合上节学习的sigaction的用法,进入正题: sigqueue函数: sigval联合体: 实际上sigval参数是用 ...

  10. .NET 中String 和StringBuilder 以及他们的区别

    stirng对象是不可变的,每次使用String类的方法进行运算时(赋值.拼接),都会在内存中生成新的字符串对象,这就要为新对象分配新的内存空间. StringBuilder 实例的 int Capa ...