智能家居填坑003 Modbus设备接入篇

Modbus设备

格控TCP系列507E、508M、508D

1、IO端口多:508D有32个DI口、508M有24个DO口、507E有8个DI和8个DO口。

2、原生支持有线Modbus-TCP协议。

3、价格便宜,差评少。

4、支持二次开发:后期计划将普通设备逻辑写入里面,就可以脱离服务器。

5、产品相关资料 :格控资料

准备

格控设备在说明书里详细的说明了设备的设置方式,在此就不多加叙述(不同品牌的设置方式存在差异,均需详细参考说明书)。

1、给设备分配与你所在网段匹配的ip地址。

eg. 我的网段是192.168.0.X,我设置的508M:192.168.0.203、508D:192.168.0.202

2、使用附赠的测试软件,测试设备是否已正常连接。

3、node-red安装节点node-red-contrib-modbus。

node-red相关设置

1、在整个过程中主要使用modbus-flex-write、modbus-flex-getter两个节点。

2、modbus-flex-getter轮询:获取线圈或寄存器信息

3、配置服务端

4、 写入操作指令

5、串成流以后就如下所示

[

{

"id": "13aff178.470a47",

"type": "inject",

"z": "f570f583.ba8418",

"name": "",

"topic": "",

"payload": "",

"payloadType": "date",

"repeat": "0.2",

"crontab": "",

"once": true,

"onceDelay": "0",

"x": 180,

"y": 3160,

"wires": [

[

"ff699d5b.46a718"

]

]

},

{

"id": "ff699d5b.46a718",

"type": "function",

"z": "f570f583.ba8418",

"name": "Read 0-31 on Unit 1 FC2",

"func": "msg.payload = { value: msg.payload, ‘fc‘: 2, ‘unitid‘: 1, ‘address‘: 0 , ‘quantity‘: 32 };\nreturn msg;",

"outputs": 1,

"noerr": 0,

"x": 390,

"y": 3160,

"wires": [

[

"25928808.805ab"

]

]

},

{

"id": "25928808.805ab",

"type": "modbus-flex-getter",

"z": "f570f583.ba8418",

"name": "获取按键状态",

"showStatusActivities": false,

"showErrors": false,

"logIOActivities": false,

"server": "bc23592e.d784c8",

"useIOFile": false,

"ioFile": "",

"useIOForPayload": false,

"x": 620,

"y": 3160,

"wires": [

[

"aebee8cf.f142a8"

],

[]

]

},

{

"id": "efe7fdc6.38e45",

"type": "comment",

"z": "f570f583.ba8418",

"name": "定时轮询",

"info": "",

"x": 160,

"y": 3120,

"wires": []

},

{

"id": "e74381c4.affad8",

"type": "inject",

"z": "f570f583.ba8418",

"name": "start",

"topic": "",

"payload": "",

"payloadType": "date",

"repeat": "",

"crontab": "",

"once": true,

"onceDelay": "0",

"x": 170,

"y": 3280,

"wires": [

[

"25cb2616.ce8292"

]

]

},

{

"id": "25cb2616.ce8292",

"type": "function",

"z": "f570f583.ba8418",

"name": "Read 0-31 on Unit 1 FC2",

"func": "msg.payload = { value: msg.payload, ‘fc‘: 2, ‘unitid‘: 1, ‘address‘: 0 , ‘quantity‘: 32 };\nreturn msg;",

"outputs": 1,

"noerr": 0,

"x": 390,

"y": 3280,

"wires": [

[

"f3f8587.497f2a8"

]

]

},

{

"id": "f3f8587.497f2a8",

"type": "modbus-flex-getter",

"z": "f570f583.ba8418",

"name": "获取按键状态",

"showStatusActivities": false,

"showErrors": false,

"logIOActivities": false,

"server": "bc23592e.d784c8",

"useIOFile": false,

"ioFile": "",

"useIOForPayload": false,

"x": 620,

"y": 3280,

"wires": [

[

"4aba02be.620b74",

"a1768992.a4da3"

],

[]

]

},

{

"id": "beb6a924.cb22c",

"type": "comment",

"z": "f570f583.ba8418",

"name": "完整轮询",

"info": "",

"x": 160,

"y": 3240,

"wires": []

},

{

"id": "4aba02be.620b74",

"type": "delay",

"z": "f570f583.ba8418",

"name": "",

"pauseType": "delay",

"timeout": "5",

"timeoutUnits": "seconds",

"rate": "1",

"nbRateUnits": "1",

"rateUnits": "second",

"randomFirst": "1",

"randomLast": "5",

"randomUnits": "seconds",

"drop": false,

"x": 460,

"y": 3380,

"wires": [

[

"25cb2616.ce8292"

]

]

},

{

"id": "aebee8cf.f142a8",

"type": "debug",

"z": "f570f583.ba8418",

"name": "",

"active": true,

"tosidebar": true,

"console": false,

"tostatus": false,

"complete": "false",

"x": 830,

"y": 3160,

"wires": []

},

{

"id": "a1768992.a4da3",

"type": "debug",

"z": "f570f583.ba8418",

"name": "",

"active": true,

"tosidebar": true,

"console": false,

"tostatus": false,

"complete": "false",

"x": 830,

"y": 3280,

"wires": []

},

{

"id": "bc23592e.d784c8",

"type": "modbus-client",

"z": "",

"name": "",

"clienttype": "tcp",

"bufferCommands": true,

"stateLogEnabled": false,

"tcpHost": "192.168.0.203",

"tcpPort": "502",

"tcpType": "DEFAULT",

"serialPort": "/dev/ttyUSB",

"serialType": "RTU-BUFFERD",

"serialBaudrate": "9600",

"serialDatabits": "8",

"serialStopbits": "1",

"serialParity": "none",

"serialConnectionDelay": "100",

"unit_id": "1",

"commandDelay": "1",

"clientTimeout": "1000",

"reconnectOnTimeout": true,

"reconnectTimeout": "2000",

"parallelUnitIdsAllowed": true

}] 

6、改变设备状态就更简单了

原文地址:https://www.cnblogs.com/kiddfu/p/12350104.html

时间: 2024-08-30 14:02:05

智能家居填坑003 Modbus设备接入篇的相关文章

智能家居填坑004 Modbus接入逻辑篇

背景 自复位开关->modbus DI模块->node-red->modbus DO模块->继电器->设备(灯具或插座) 参照003篇,已经成功接入两个模块. 思路 在nr里定义一个变量用来记录设备状态,所有的操控都是直接操作这个变量,然后用变量去控制相应的设备.这样,无论控制源是开关.语音助手.传感器.场景.人工智能等都转化为对变量的直接操控.变量可以储存为全局变量或者写入数据库. var switchCFD = {payload:{power:true,lm:100,co

智能家居填坑005 开关复用

背景 餐厅规划了一组主灯.两组灯带(一组3000k.一组6000k).一组筒灯. 在后期装修中餐厅主灯换成了风扇灯,筒灯换成了飞利浦智睿筒灯.但是在餐厅只设置了一个两位自复位开关. 常规情况下不能满足主灯.风扇.灯带.筒灯的开关. 思路 为满足灯具的控制需求,需要对两位开关实现一些功能上的复用. 设:左边开关为 开关1,右边为 开关2 点击 开关1 :打开主灯 三秒内 再次 点击 开关1 :打开风扇低档 三秒内 再次 点击 开关1 :打开风扇中档 三秒内 再次 点击 开关1 :打开风扇高档 三秒

[Python3 填坑] 003 关键字?保留字?预留字?

目录 1. print( 坑的信息 ) 2. 开始填坑 (1) 问题的由来 (2) 网上搜索 (3) 最终结论 (4) 后记 1. print( 坑的信息 ) 挖坑时间:2019/01/04 明细 坑的编码 内容 Py002-1 Python 的"关键字"与"保留字"有没有区别 2. 开始填坑 (1) 问题的由来 照理说,我不该这么折腾. 就我浅薄的知识而言,说到编程语言中的"关键字",最先想到的还是 C.可能是先入为主的关系,后来简短地接触过一

第12章 智能家居

12.1智能家居概述 12.1.1传统家居与智能家居 物联网智能家居.传统智能家居区别 传统智能家居发展了20多年,至今为止取得了一定的进步,但技术落后.观点陈旧.创新乏力一直是中国传统智能家居企业的整体特征. 今天,随着物联网技术的高速发展,无线物联网技术给传统智能家居带来了全新的产业机会,一些全球优秀企业纷纷涉足物联网智能家居行业.在我国,虽然部分企业在无线物联网核心技术上取得了很大突破,但我们也应该清醒地看到大量技术落后的产品充斥市场仍是当前我国智能家居行业的重要特征.很多传统企业甚至一些

智能家居初学者小米、美的和京东们将梦归何处?

提起智能家居,你可能会想起电影里自动拉开的窗帘.语音控制的电视和自动亮起的吊灯.在国内,小米.美的.京东等国内企业也已经进军智能家居领域,但智能家居走到现在,似乎已经形成了一个难以打破的僵局:智能家居已经广为人知,但普及率却非常低. 小米.美的.京东:掘金者们的智能家居之梦 近些年来,集智能.便捷.创新于一体的智能家居产品给人们带来了精神与身体上的解放,智能家居也因其特殊的家庭应用场景而备受关注.而国内涉足智能家居领域的企业也是数不胜数,主要有三类,一类是互联网科技公司,如小米.百度等:一类是传

迅为4412开发平台Zigbee模块在物联网智能家居中的应用

  物联网智能家居的发展物联网随着互联网的发展,可以通过互联网实现物和物的互联,就有了物联网的概念.传统家居电器 有了物联网之后,在家居电器范围中,就是通过物联网技术将家中的各种设备连接到一起,家居中有了物联就可以称为智能家居.智能家居可以知道家居中的实时状态,远程控制等等. ISM频段 ISM频段, 无线频段都是受到管控,除了ISM频段. 常用的ISM无线频段, 433/868MHz的射频协议: 2.4G的WIFI.BLE和ZigBee. 智能家居协议选择判断标准 智能家居协议选择判断标准,对

智能家居功能发展的四个阶段

智能家居机房动力环境监控发 展至今,已不能简单地用“圈里热,圈外冷”来描述了.事实上,从智能路由到智能网关,从智能门锁到智能窗帘,从智能开关到智能灯泡,从智能盒子到智能电 视,智能家居正四处开花,悄然影响我们的生活.在发展的约二十年间,人们对智能家居的普遍看好和智能家居的快速发展趋势从未改变,不断变化的是智能家居的 功能,而不同时期的不同功能,会为我们带来不一样的体验. 单从功能的角度看,智能家居并非一味地追求探测.感觉和学习,也不会只是远程控制.语音控制和手势控制,更不会仅停留于相互连接.相互

智能家居安全性堪忧(转)

智能家居最重要一点是能提升家庭的安全性,但是如果现在告诉你说智能家居本身也存在安全问题,你会作何感想?不得不承认,强化家庭安全本是智能家居"职责",而如今安全问题却已成为智能家居设备自身最严重的问题之一.   早前,惠普的Fortify应用程序安全部门,对市面上最热门的10款消费级物联网产品,进行了研究分析,发现仅在这10款最热门的智能家居设备中,就存在250种不同的安全漏洞.而这10款产品都是智能家居中最为常见的设备,包括"电视.网络摄像头.家用恒温器.遥控插座.喷水控制器

当你选择智能家居之前,一定要懂得这些场景需求—成都首脑智能

"智能家居"仿佛正在开始从前几年的"高不可攀"慢慢***进入到寻常百姓家的生活当中.但是当你开始考虑做智能家居的时候,你真的需要认真看完此文. 你不必深入了解智能家居,但一定要想清楚自己的需求,需要智能家居为你解决哪些生活问题,比如你想要装电动窗帘,但是之前根本没留电源接口,有可能就来不及了.就像你去相亲,比起看到一个喜欢上一个,更加重要的是要清楚自己要的是什么类型,条件,长相等. 如果你只是想要尝试下新鲜的生活方式,在原有的家居风格增添一些智能的元素,那么在前期几