0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

EsDA MPC-ZC1 应用——串口服务器(一)

ZLG致远电子 2022-08-26 16:49 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文以实现串口MQTT服务器为项目目标,展开讲解,介绍如何通过EsDA工具和MPC-ZC1平台,进行应用开发,逐步完成项目需求。

01f97284-23ec-11ed-9ade-dac502259ad0.jpg 简介

工业串口服务器,以提供串口与网络服务器之间的双向数据透明传输为核心业务。在不用修改原有产品系统的情况下,为串口设备提供了便捷的联网通道,即扩展了物联网功能,又保障了原有系统的稳定性。

串口端主要为 RS-232、485、422 等接口,网络端通常为 TCP、UDP、MQTT、HTTP 等协议服务器。

本文以实现串口MQTT服务器为项目目标,展开讲解,介绍如何通过 EsDA 工具和 MPC-ZC1 平台,进行应用开发,逐步完成项目需求。

0205bc4c-23ec-11ed-9ade-dac502259ad0.jpg  前期准备

可通过 EsDA MPC-ZC1 入门篇相关文章,掌握 EsDA 基本开发流程:

  • EsDAMPC-ZC1入门(一)——软件安装
  • EsDAMPC-ZC1入门(二)——LED控制

一、项目需求

项目开发前,先对项目需求进行梳理和拆解,主要有以下几点:

支持串口通信

支持MQTT通信;

串口与MQTT服务器实现数据透传;

支持串口和MQTT服务器控制 LED 显示。

* 本文仅以 LED 作为扩展业务,可根据实际需求进行扩展。

二、业务框图

根据项目需求,大致将系统划分为以下几大模块:

02148056-23ec-11ed-9ade-dac502259ad0.png

1. 串口通信

实现串口的数据收发功能;

实现串口基本参数配置功能(波特率、奇偶校验位、数据位)。

2. MQTT通信

  • 实现MQTT客户端功能;
  • 配置目标服务器地址、端口
  • 发布和订阅指定主题。

3. 数据解析

  • 解析数据流中的控制命令

4. 数据分发

  • 将解析出来的数据分发到其他模块


01f97284-23ec-11ed-9ade-dac502259ad0.jpg 业务开发

可通过 EsDA MPC-ZC1 入门篇相关文章,掌握 EsDA 基本开发流程:

一、串口通信

实现串口通信模块,需要使用到串口相关的 AWFlow 节点,包括 serial_ex、serial_in_ex、serial_out_ex 3个节点。1. 节点介绍1.1 serial_ex串口配置节点,属于隐式节点,不会被显示在画布中,需要配套对应的功能节点一起使用。1.1.1 属性

0231db88-23ec-11ed-9ade-dac502259ad0.png

  • 名称(name):节点名称,用于索引查找本节点;
  • 显示名称(displayName):用于画布上显示的名称;
  • 端口(port):用于索引串口设备;
  • 波特率(baudrate):串口波特率参数;
  • 字节大小(bytesize):数据位参数;
  • 奇偶校验(parity):串口奇偶校验位参数;
  • 停止位(stopbits):串口停止位参数;
  • 流控(flowcontrol):串口流控模式配置;
  • 帧超时(frame_timeout):收到数据后的总体等待时间;
  • 帧长度(frame_length):期望收据的数据长度;
  • 码间超时(intersymbol_timeout):字节间的最大超时时间。

其中帧超时、帧长度、码间超时可用于分包应用,3个参数可同时使用,任意一个条件满足都会触发分包。

* 配置节点(config类型)只存在节点属性,不具备输入输出功能。

1.2 serial_in_ex

串口接收节点,负责读取指定串口接收到的数据。1.2.1 属性02493d64-23ec-11ed-9ade-dac502259ad0.png

名称(name):节点名称,用于索引查找本节点;

显示名称(displayName):用于画布上显示的名称;

  • 配置节点名称(config):绑定一个串口配置节点;

1.2.2 输入* pump类型节点通常不具备数据输入。1.2.3 输出

payload:读取到串口接收的数据,字符串(可按二进制提取);

payloadLength:数据长度,uint32_t 类型;

payloadType: payload 的数据类型,用于后续节点数据处理;

istream:数据流对象,保存着串口接收的原始数据流;

*当帧超时、帧长度、码间超时其中任意参数有效时,输出payload 格式,否则输出 istream

1.3 serial_out_ex

串口发送节点,将上级节点输出的数据发送至串口发送接口。

1.3.1 属性

0256c344-23ec-11ed-9ade-dac502259ad0.png

名称(name):节点名称,用于索引查找本节点;

显示名称(displayName):用于画布上显示的名称;

配置节点名称(config):绑定一个串口配置节点。

1.3.2 输入

payload:负载数据,字符串类型(也可按二进制转换);

payloadLength:负载数据长度,uint32_t类型;

payloadType:指示payload的数据类型;

istream:数据流对象。

*支持输入 payload istream 数据,优先使用 istream

1.3.3 输出

* sink类型节点通常不具备数据输出。

2. 回发验证

我们通过一个串口数据回发功能来验证串口通信模块。

2.1添加节点

添加 serial_in_ex 和 serial_out_ex 节点到画布上。02605166-23ec-11ed-9ade-dac502259ad0.png

2.2配置节点

双击 serial_in_ex 节点,打开属性面板。026a8ca8-23ec-11ed-9ade-dac502259ad0.png

选择“添加新的 serial_ex 节点”,点击编辑配置,进入配置节点属性面板。

0277df52-23ec-11ed-9ade-dac502259ad0.png

串口设备:Uart1;

波特率:115200;

字节大小:8bits;

奇偶校验:None

停止位:1bits;

流控:None;

帧超时:100;

帧长度:0;

码间超时:0。

点击添加,完成配置。

028620c6-23ec-11ed-9ade-dac502259ad0.png

可以看到已经创建了一个新的配置节点,名为 serial_ex,继续点击完成,结束接收节点的配置。

同样的,双击 serial_out_ex 节点,打开属性面板,直接选择刚刚创建的配置节点。

0299c720-23ec-11ed-9ade-dac502259ad0.png

点击完成,保存配置。

2.3绘制流图

serial_in_exserial_out_ex节点进行连接。

02a82d88-23ec-11ed-9ade-dac502259ad0.png

2.4下载验证

确保硬件正确连接。

02b558c8-23ec-11ed-9ade-dac502259ad0.png

选择流图下载接口。

02e5c3be-23ec-11ed-9ade-dac502259ad0.png点击下载。

02f9eff6-23ec-11ed-9ade-dac502259ad0.png

030ccb3a-23ec-11ed-9ade-dac502259ad0.png

完成流图下载,通过串口工具进行数据回发测试。

031e96b2-23ec-11ed-9ade-dac502259ad0.png

二、MQTT通信

实现 MQTT 通信模块,需要使用到相关的AWFlow节点,包括mqtt_config、mqtt_in、mqtt_out3个节点。

1. 节点介绍

1.1 mqtt_config

MQTT 配置节点,属于隐式节点,不会被显示在画布中,需要配套对应的功能节点一起使用。

1.1.1 属性

032ebccc-23ec-11ed-9ade-dac502259ad0.png

名称(name):节点名称,用于索引查找本节点;

显示名称(displayName:用于画布上显示的名称;

主机地址(host):目标服务器域名(IP地址);

端口(port):目标服务器网络端口;

重连间隔(retry-interval):MQTT后台服务重连时间间隔,单位毫秒;

客户端ID(client-id):MQTT客户端ID;

用户名(user-name):MQTT客户端用户名;

密码(password):MQTT客户端密码;

保活包发送间隔(keep-alive-interval):保活数据包发送周期,单位秒;

清除会话(clean-session):使能自动清除历史会话;

上线主题服务质量等级(online-topic-qos):上线QoS服务质量;

上线主题(online-topic-topic):上线主题;

上线主题数据(online-topic-data):上线主题数据;

遗嘱主题服务质量等级(last-will-qos):遗嘱QoS服务质量;

遗嘱主题(last-will-topic):遗嘱主题;

遗嘱主题数据(last-will-data):遗嘱主题数据;

使能SSL(enable-ssl):使能SSL加密功能;

根证书路径(root-ca-ssl):根证书文件全路径;

客户端证书路径(client-certificate-path):客户端证书文件全路径;

客户端密钥路径(client-private-key-path):客户端密钥文件全路径。

MQTT 配置属性项比较多,但好在节点中已经内置了常用的默认配置,用户仅需根据应用修改所需属性项即可。

* 配置节点(config类型)只存在节点属性,不具备输入输出功能。

1.2 mqtt_in

MQTT 订阅节点,提供订阅指定主题的功能。

1.2.1 属性

0342f296-23ec-11ed-9ade-dac502259ad0.png

  • 名称(name):节点名称,用于索引查找本节点;
  • 显示名称(displayName):用于画布上显示的名称;
  • 主题(topic):配置需要订阅的主题;
  • 消息质量(qos):QoS主题服务质量等级;
  • 配置(config):绑定一个MQTT配置节点。

1.2.2 输入

pump类型节点通常不具备数据输入。

1.2.3 输出

  • topic:主题标识,字符串类型;
  • payload:负载数据,指针(pointer)类型;
  • payloadLength:负载数据长度,uint32_t类型。

1.3 mqtt_out

MQTT 发布节点,向服务器发布指定主题数据。

1.3.1 属性

034ea7e4-23ec-11ed-9ade-dac502259ad0.png

名称(name):节点名称,用于索引查找本节点;

显示名称(displayName):用于画布上显示的名称;

消息质量(qos):QoS主题服务质量等级;

保留标志(retain):使能主题信息在服务器保留;

主题(topic):发布的主题;

配置(config):绑定一个MQTT配置节点。

1.3.2 输入

  • topic:发布主题名称;
  • payload:负载数据;
  • payloadLength:负载数据长度,uint32_t类型;

1.3.3 输出

* sink类型节点通常不具备数据输出。2. 回发验证我们通过一个MQTT数据回发功能来验证MQTT通信模块。2.1 添加节点添加 mqtt_in 和 mqtt_out 节点到画布上。035cde7c-23ec-11ed-9ade-dac502259ad0.png

2.2 配置节点

双击 mqtt_in_ex 节点,打开属性面板。036d7ff2-23ec-11ed-9ade-dac502259ad0.png

选择“添加新的 mqtt 节点”,点击编辑配置,进入配置节点属性面板。

037fcd56-23ec-11ed-9ade-dac502259ad0.png

该节点已经内置好大部分常用的配置信息,此处,我们仅修改3个必须的属性项:

主机地址:broker.emqx.io;

端口号:1883;

重连间隔:1000。

点击添加,完成配置。

0390ec62-23ec-11ed-9ade-dac502259ad0.png

可以看到已经创建了一个新的配置节点,名为 mqtt,同时我们配置一个订阅主题 EsDA-MQTT-Down ,继续点击完成,结束接收节点的配置。

同样的,双击mqtt_out节点,打开属性面板,直接选择刚刚创建的配置节点,同时配置一个发布主题EsDA-MQTT-Up 。

039d59e8-23ec-11ed-9ade-dac502259ad0.png

点击完成,保存配置。

2.3 绘制流图

将 mqtt_in 与 mqtt_out 节点进行连接。

03abde00-23ec-11ed-9ade-dac502259ad0.png

2.4 下载验证

确保硬件正确连接,需要4G天线,以及一张可正常联网的SIM卡。

02b558c8-23ec-11ed-9ade-dac502259ad0.png

选择流图下载接口。

02e5c3be-23ec-11ed-9ade-dac502259ad0.png

点击下载。

02f9eff6-23ec-11ed-9ade-dac502259ad0.png

030ccb3a-23ec-11ed-9ade-dac502259ad0.png

完成流图下载后,可通过MQTT客户端工具进行数据回发测试。

此处我们选择MQTTX,下载链接

https://www.emqx.com/zh/downloads/MQTTX/1.8.2/MQTTX-Setup-1.8.2-x64.exe

下载结束并完成MQTTX客户端的安装,启动MQTTX客户端软件。

041aaef2-23ec-11ed-9ade-dac502259ad0.png

点击新建连接,创建MQTT连接,如下进行配置。

042be0dc-23ec-11ed-9ade-dac502259ad0.png

点击连接,完成客户端配置,进入连接后,添加订阅主题。

0442b1cc-23ec-11ed-9ade-dac502259ad0.png

订阅MPC-ZC1发布的主题EsDA-MQTT-Up 。

0451bde8-23ec-11ed-9ade-dac502259ad0.png

最后发布MPC-ZC1订阅的主题EsDA-MQTT-Down 。

04654566-23ec-11ed-9ade-dac502259ad0.png

输入发布的内容EsDA MQTT Test Message!,点击发布主题,随后可以收到 MPC-ZC1 回发同样的内容。

0479ba82-23ec-11ed-9ade-dac502259ad0.png

三、串口MQTT透传

前面我们已经完成串口通信、MQTT通信功能,并进行数据回发测试,接下来我们要完成本项目的核心功能,串口与MQTT服务器之间的数据透明传输。

从前面两次数据回发的流图中,我们很容易想象到如下图所示的方式进行流图变换。

049394c0-23ec-11ed-9ade-dac502259ad0.png

没错,只需将2条回发的数据流进行交换连接,即可达到2个通信接口的数据透明传输。为了流图简洁性,我们进行节点的位置调整,如下所示。04a5a926-23ec-11ed-9ade-dac502259ad0.png

下载流图,进行透传测试,效果如下图。

04b52a22-23ec-11ed-9ade-dac502259ad0.png

04d97e7c-23ec-11ed-9ade-dac502259ad0.png

至此,我们完成串口服务器的核心功能,数据透明传输。后续我们会继续围绕串口服务器项目,进行业务的扩展,增加透传命令来控制设备上的LED。04e6c0be-23ec-11ed-9ade-dac502259ad0.jpg04fa36c6-23ec-11ed-9ade-dac502259ad0.jpg

【版权声明】本文为ZLG开发者社区用户原创内容,未经授权不得转载。欢迎更多用户到社区交流互动、创作博文,一经采用,可获得百元京东E卡。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    14

    文章

    10343

    浏览量

    91737
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    17路UART,多串口服务器方案分享

    。 ▍ 多串口服务器方案 我们基于创龙科技T536评估板,搭建了套12路串口服务器方案,该方案通过2路RS232、6路RS485和4路TTL UART接口连接12个温湿度传感,基于
    的头像 发表于 03-02 17:03 181次阅读
    17路UART,多<b class='flag-5'>串口服务器</b>方案分享

    麦米串口服务器:打通传统工业设备上云的“最后公里”

    从工厂到交通再到楼宇、农牧业,串口服务器正以惊人的渗透力,成为传统设备与数字世界连接的“毛细血管”。麦米多功能串口服务器“多串口、全联网、通协议、能远程、高防护”减少复杂布线,组网简单,让传统设备焕发新生,以最小成本迈出数字化转
    的头像 发表于 01-13 17:00 668次阅读
    麦米<b class='flag-5'>串口服务器</b>:打通传统工业设备上云的“最后<b class='flag-5'>一</b>公里”

    2026值得推荐的工业级串口服务器:捷宸电子IPCSUN DCOM660D 全场景解析

    无论是追求高性价比的中小企业,还是有严苛工业需求的大型企业,捷宸电子IPCSUN DCOM660D 工业级串口服务器都能提供适配的解决方案。在工业串口服务器选型、稳定型串口转网设备采购等场景中,这款兼具性能、稳定性与实用性的产品
    的头像 发表于 12-29 15:09 905次阅读

    串口服务器产品解析与应用方案选型指南

    广泛。本文将基于权威数据平台的统计和市场分析,全面解读串口服务器技术的发展现状、行业标准、主要品牌厂商、优势产品及应用方案,为从业者提供详尽的参考指南。 串口服务器技术概述 1.1 什么是
    的头像 发表于 11-18 15:33 777次阅读

    APort串口服务器,传统串口设备的智能化联网核心

    云等固有短板,成为制约设备智能化与能源数字化的瓶颈。APort100系列串口服务器正是针对这行业痛点推出的核心通信设备,通过精准实现RS485串口信号与TCP/IP网络协议的双向转换,为传统设备搭建高效“联网桥梁”,助力企业快
    的头像 发表于 11-14 15:37 381次阅读
    APort<b class='flag-5'>串口服务器</b>,传统<b class='flag-5'>串口</b>设备的智能化联网核心

    什么是串口服务器,它有哪些功能作用?

    在现代工业自动化和物联网系统中,大量传统设备仍通过串行接口进行通信。这些设备设计精良、性能稳定,但却因缺乏网络接口而难以融入现代工业网络。 串口服务器 的出现完美解决了这困境,它作为种高效的协议
    的头像 发表于 11-03 16:05 1958次阅读
    什么是<b class='flag-5'>串口服务器</b>,它有哪些功能作用?

    新品上新:NB12x、183x系列工业级多串口服务器

    新品上市NB系列多串口以太网通信服务器NB124/144/x-V2系列工业级4串口服务器NB124x-V2/NB144x-V2是亿佰特推出的工业级多串口服务器,支持RS232/RS48
    的头像 发表于 09-11 19:34 1201次阅读
    新品上新:NB12x、183x系列工业级多<b class='flag-5'>串口服务器</b>

    2025年串口服务器选购指南及应用方案详解

    众多品牌和解决方案,如何选择款适合的串口服务器成为企业关注的核心问题。 本文将基于权威性数据和市场分析,从主流品牌、优势产品、应用场景及选购指南四个方面,为您详细解读串口服务器的选购策略,供行业参考。
    的头像 发表于 09-05 09:39 869次阅读

    串口服务器技术详解:2025年行业标准与应用指南

    性能、更高安全性和更广泛应用场景的方向演进。 本文基于权威数据平台的分析,深入探讨串口服务器的基础技术、行业标准、主流品牌和应用案例,为企业在选购和部署串口服务器时提供全面参考。 串口服务
    的头像 发表于 09-02 17:55 1736次阅读

    开疆智能ModbusTCP转Ethernet网关连接FBOX串口服务器配置案例

    本案例是串口服务器通过串口采集第三方设备数据转成ModbusTCP的服务器后欧姆龙PLC通过Ethernet连接到网关,读取采集到的数据。具体配置过程如下。 配置过程: Fbox做从站 FBox采集
    的头像 发表于 08-15 18:00 1113次阅读
    开疆智能ModbusTCP转Ethernet网关连接FBOX<b class='flag-5'>串口服务器</b>配置案例

    串口服务器选型全攻略:开启高效通信新时代​

    串口通信协议转换为 TCP/IP 网络接口协议,实现串口设备的网络化,拓展通信距离,保障数据双向透明传输。然而,面对市场上琳琅满目的串口服务器产品,如何精准选型成为众多企业的关键难题。接下来,将为您详细剖析
    的头像 发表于 06-16 10:00 787次阅读
    <b class='flag-5'>串口服务器</b>选型全攻略:开启高效通信新时代​

    【教程】使用NS1串口服务器对接智普清言免费AI大语言模型

    AI大语言模型可以帮助我们解决各种问题,如翻译、写文案、创作诗歌、解决数学问题、情感陪伴等等。今天教大家如何使用NS1串口服务器模块实现对接智普清言AI大语言模型,实现与大语言模型的对话。NS1模块
    的头像 发表于 06-12 19:33 911次阅读
    【教程】使用NS<b class='flag-5'>1</b><b class='flag-5'>串口服务器</b>对接智普清言免费AI大语言模型

    串口服务器:隔离485+232,双向透传

    串口服务器(Serial Device Server)是种将传统串口设备(如RS-232、RS-485、RS-422等)连接到网络的硬件设备,其主要功能是将串口数据转换为网络数据,
    的头像 发表于 05-27 15:02 719次阅读

    安全可控·国产典范—上海卓岚ZLAN5107-C全国产化 串口服务器助力工业通信自主化

    全国产化串口服务器ZLAN5107-C代表了工业通信设备自主创新的重要成果,为各行业数字化转型提供了安全可靠的基础设施。
    的头像 发表于 05-14 13:24 1223次阅读
    安全可控·国产典范—上海卓岚ZLAN5107-C全国产化 <b class='flag-5'>串口服务器</b>助力工业通信自主化

    ProfiNet转Modbus网关模组+PoE受电串口服务器

    新品上市ProfiNet网关模组串口服务器部分新品参与送样文末了解详情↓↓↓PN1-S25ProfiNet网关模组PN1-S25是款专为工业通信设计的ProfiNet转ModbusR
    的头像 发表于 04-24 19:32 985次阅读
    ProfiNet转Modbus网关模组+PoE受电<b class='flag-5'>串口服务器</b>