IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Node-Red系列——NodeRed订阅opcua数据,并通过mqtt发布 -> 正文阅读

[网络协议]Node-Red系列——NodeRed订阅opcua数据,并通过mqtt发布

目录

1.nodered?订阅opcua数据

2. nodered发布为mqtt

3. 部署运行结果,通过emqx接收数据

4. nodered的json代码


nodered搭配结果如下图:

1.nodered?订阅opcua数据

前言:opcua数据来自kepware模拟数据,具体nodered的OPCUA安装,mqtt安装参考下文使用kepware配置opcua服务端,并使用UaExpert作为opc客户端进行连接(匿名和用户名密码)_鲸鱼姐的博客-CSDN博客_kepware opc ua服务器配置

Node-Red系列——NodeRed通过OPC UA读取数据并写入mysql_鲸鱼姐的博客-CSDN博客

Node-Red系列——NodeRed创建mqtt broker(mqtt服务器),并使用mqttx进行消息发送验证_鲸鱼姐的博客-CSDN博客_mqttx 发送消息

(1)inject节点配置

(2)OPCUA-Item节点配置

(3)OPC client配置

action采用subscribe方式,Interval为1 second(s)??

注意订阅间隔的单位,可以为毫秒,秒,小时,分钟

2. nodered发布为mqtt

(1)function节点

将msg.topic作为device的键值,msg的payload作为value的键值。这样接收的mqtt端可以通过device进行设备区分。

msg.payload = {
    'device': msg.topic,
    'value': msg.payload
};
return msg;

(2)mqtt out配置

配置服务端和主题

(3)debug节点

3. 部署运行结果,通过emqx接收数据

(1)nodered运行结果

(2) 运行mqtt服务端——emqx,接收nodered发送的mqtt消息

使用emqx的websocket客户端连接,并订阅plc/data主题

?订阅后,emqx可以收到nodered发出的mqtt消息

4. nodered的json代码

[
    {
        "id": "b521b512ccf51472",
        "type": "tab",
        "label": "流程 3",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "a16131868eeaedda",
        "type": "OpcUa-Item",
        "z": "b521b512ccf51472",
        "item": "ns=2;s=通道 2.设备 1.tt1",
        "datatype": "Int32",
        "value": "",
        "name": "tt1",
        "x": 190,
        "y": 140,
        "wires": [
            [
                "ba7429bb4b39cf36"
            ]
        ]
    },
    {
        "id": "ba7429bb4b39cf36",
        "type": "OpcUa-Client",
        "z": "b521b512ccf51472",
        "endpoint": "058a91456e27a0bc",
        "action": "subscribe",
        "deadbandtype": "a",
        "deadbandvalue": 1,
        "time": "1",
        "timeUnit": "s",
        "certificate": "n",
        "localfile": "",
        "localkeyfile": "",
        "securitymode": "None",
        "securitypolicy": "None",
        "folderName4PKI": "",
        "name": "",
        "x": 380,
        "y": 120,
        "wires": [
            [
                "98aeb1313adf6976"
            ]
        ]
    },
    {
        "id": "702470447b1bbcbe",
        "type": "inject",
        "z": "b521b512ccf51472",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "str",
        "x": 50,
        "y": 120,
        "wires": [
            [
                "a16131868eeaedda",
                "efd47eaa4a986b84"
            ]
        ]
    },
    {
        "id": "0bd1292815c00b3a",
        "type": "mqtt out",
        "z": "b521b512ccf51472",
        "name": "mqtt out",
        "topic": "plc/data",
        "qos": "1",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "019d2a5c6d879e6a",
        "x": 620,
        "y": 220,
        "wires": []
    },
    {
        "id": "5116c26ea1dcb1e6",
        "type": "debug",
        "z": "b521b512ccf51472",
        "name": "debug 24",
        "active": false,
        "tosidebar": true,
        "console": true,
        "tostatus": true,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 630,
        "y": 300,
        "wires": []
    },
    {
        "id": "98aeb1313adf6976",
        "type": "function",
        "z": "b521b512ccf51472",
        "name": "function 10",
        "func": "msg.payload = {\n    'device': msg.topic,\n    'value': msg.payload\n};\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 430,
        "y": 220,
        "wires": [
            [
                "5116c26ea1dcb1e6",
                "0bd1292815c00b3a"
            ]
        ]
    },
    {
        "id": "efd47eaa4a986b84",
        "type": "OpcUa-Item",
        "z": "b521b512ccf51472",
        "item": "ns=2;s=通道 2.设备 1.tt2",
        "datatype": "Int32",
        "value": "",
        "name": "tt2",
        "x": 190,
        "y": 100,
        "wires": [
            [
                "ba7429bb4b39cf36"
            ]
        ]
    },
    {
        "id": "058a91456e27a0bc",
        "type": "OpcUa-Endpoint",
        "endpoint": "opc.tcp://192.168.31.88:49320",
        "secpol": "None",
        "secmode": "None",
        "none": true,
        "login": false,
        "usercert": false,
        "usercertificate": "",
        "userprivatekey": ""
    },
    {
        "id": "019d2a5c6d879e6a",
        "type": "mqtt-broker",
        "name": "",
        "broker": "127.0.0.1",
        "port": "1883",
        "clientid": "",
        "autoConnect": true,
        "usetls": false,
        "protocolVersion": "4",
        "keepalive": "60",
        "cleansession": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthPayload": "",
        "birthMsg": {},
        "closeTopic": "",
        "closeQos": "0",
        "closePayload": "",
        "closeMsg": {},
        "willTopic": "",
        "willQos": "0",
        "willPayload": "",
        "willMsg": {},
        "userProps": "",
        "sessionExpiry": ""
    }
]

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 21:14:47  更:2022-10-08 21:16:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 11:41:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码