Modbus网关BL101 既实现Modbus转MQTT,还能当串口服务器使用_mqtt zabbix rs232

无缝衔接工业4.0时代

尽享数字工厂制造优势

Modbus转MQTT关BL101支持Modbus RTU、Modbus TCP和MQTT协议。

不仅支持主流云平台(阿里云、华为云、亚马逊AWS),还集成了ThingsBoard、Ignition、Zabbix等物联网平台,实现了设备与平台之间无缝通信。

Modbus转MQTT网关BL101采用工业级设计,保证在恶劣环境中的可靠性。适用于工业自动化系统、远程监控和物联网应用,BL101连接着工业的未来,为用户提供可信赖的Modbus设备联网解决方案。

图片

Modbus转MQTT网关BL101硬件接口包括2个或6个RS485/RS232串口、2个网口和1个WiFi无线传输接口。

通过采用自有专利的导轨卡扣技术,简化了安装过程,确保了网关的实用性。

核心特性

支持的协议

下行采集协议:Modbus RTU 、Modbus TCP

上行转发协议:MQTT

支持的云平台:阿里云、华为云、亚马逊AWS、ThingsBoard、Ignition、Zabbix等等。

⭐ 硬件接口

6个RS485/RS232串口:串口之间相互独立,可以设置各自的串口参数采集不同的协议,串口也可以单独设置主从关系,既可以配置为主站也可以配置为从站。

2个网口:用于数据采集和转发,LAN口具备路由功能,为其他设备提供连接外网的通道。

1个4G或WiFi无线传输接口:提供多样化的通信选项,适应不同的工业环境需求。

⭐ 数据安全

支持数据TSL/SSL、X.509证书、SNMPV1/V2、密钥加密等安全网关功能。

⭐ 远程配置支持

支持远程配置,为用户提供便捷的管理和监控方式,不再需要工程师上门节省维护成本。

产品尺寸

长x宽x高:30×83×110mm

图片

标准版 (2串口版本)长x宽x高: 30×83×110mm

PRO版(6串口版本)长x宽x高: 40×83×110mm

⭐ 可靠性强

图片

⭐ 安全性与稳定性

工业级设计:耐用的外壳材质,符合工业环境要求。

稳定性:高效的通信协议转换,确保系统稳定运行。

⭐ 环境适应性

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用C语言编写modbusmqtt json,您需要使用一些库来处理modbusmqtt协议,以及json数据的换。以下是一些可能有用的库: - libmodbus:用于处理modbus协议 - Paho MQTT:用于处理MQTT协议 - cJSON:用于处理JSON数据 以下是一个简单的示例代码,演示如何读取modbus寄存器并将其换为JSON格式的数据,然后发布到MQTT主题: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <modbus/modbus.h> #include <MQTTClient.h> #include <cJSON.h> #define MODBUS_SERVER "localhost" #define MODBUS_PORT 502 #define MODBUS_SLAVE_ID 1 #define MODBUS_REGISTER_ADDRESS 0 #define MODBUS_REGISTER_COUNT 10 #define MQTT_SERVER "tcp://localhost:1883" #define MQTT_CLIENT_ID "modbus2mqtt" #define MQTT_TOPIC "modbus_data" int main(int argc, char *argv[]) { modbus_t *ctx; uint16_t reg[MODBUS_REGISTER_COUNT]; int rc; char *payload; cJSON *root, *data; MQTTClient client; MQTTClient_connectOptions conn_opts = MQTTClient_connectOptions_initializer; // Initialize modbus client ctx = modbus_new_tcp(MODBUS_SERVER, MODBUS_PORT); modbus_set_slave(ctx, MODBUS_SLAVE_ID); // Initialize MQTT client MQTTClient_create(&client, MQTT_SERVER, MQTT_CLIENT_ID, MQTTCLIENT_PERSISTENCE_NONE, NULL); conn_opts.keepAliveInterval = 20; conn_opts.cleansession = 1; // Connect to MQTT broker if ((rc = MQTTClient_connect(client, &conn_opts)) != MQTTCLIENT_SUCCESS) { printf("Failed to connect to MQTT broker, return code %d\n", rc); exit(EXIT_FAILURE); } // Read modbus registers rc = modbus_read_registers(ctx, MODBUS_REGISTER_ADDRESS, MODBUS_REGISTER_COUNT, reg); if (rc == -1) { printf("Failed to read modbus registers: %s\n", modbus_strerror(errno)); exit(EXIT_FAILURE); } // Convert modbus data to JSON root = cJSON_CreateObject(); cJSON_AddItemToObject(root, "type", cJSON_CreateString("modbus_data")); data = cJSON_AddArrayToObject(root, "data"); for (int i = 0; i < MODBUS_REGISTER_COUNT; i++) { cJSON_AddNumberToObject(data, "", reg[i]); } payload = cJSON_Print(root); // Publish to MQTT topic MQTTClient_message message = MQTTClient_message_initializer; message.payload = payload; message.payloadlen = strlen(payload); message.qos = 1; MQTTClient_publishMessage(client, MQTT_TOPIC, &message, NULL); // Clean up modbus_close(ctx); modbus_free(ctx); MQTTClient_disconnect(client, 10000); MQTTClient_destroy(&client); cJSON_Delete(root); free(payload); return 0; } ``` 请注意,此示例代码仅用于演示目的。实际应用程序需要更全面的错误处理和配置选项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值