Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
Modbus
nuc980
【NUC980开发板DIY项目大挑战】modbus采集器
发布于 2022-05-29 00:42:04 浏览:765
订阅该版
**项目描述** 在工业场景中modbus是非常常用及重要的通讯协议,在智慧工厂的改造中,通过modbus采集器可以简单的完成很多的智慧工厂项目。NUC980有非常丰富的外设资源,串口有10个,可以扩展出多个485接口,还有128M内存,用于多任务运行。 **DIY过程** 首先画了一个板子: ![image.png](https://oss-club.rt-thread.org/uploads/20220528/20f1cc890b6b1f6b9e83f52ded0c2097.png.webp) 通过arduino接口扩展了2个485和2个can,can与本次项目没有关系。 然后是软件开发过程: 软件设计的思路是通过服务+应用的形式开发产品。服务有modbus-rtu、tcp服务和mqtt服务,也可以扩展其他服务。 应用测试根据服务的数据流进行打包及转发。服务及应用都是通过配置文件进行配置的。 配置文件如下: ```json { "name":"server1", "app":[ { "name":"test1", "from":"rtu", "from_type":"mb_rtu", "to":"tcp", "to_type":"tcp", "addr":1, "base_reg":0, "reg_num":10, "function":1 }, { "name":"test2", "from":"rtu", "from_type":"mb_rtu", "to":"mqtt", "to_type":"mqtt", "addr":2, "base_reg":0, "reg_num":10, "function":5 } ], "srv":[ { "name":"rtu", "type":"mb_rtu", "uart":"/dev/uart1", "rts_pin":16, "baud":115200, "data_bits":8, "parity":"N", "stop_bits":1 }, { "name":"tcp", "type":"tcp", "addr":"192.168.137.1", "port":11223 }, { "name":"mqtt", "type":"mqtt", "prefix":"/device/nuc980", "url":"tcp://mqtt.broker:1883" } ] } ``` '/name'表示设备的名称,用于表示数据包来自于那个设备; '/app/n/name'表示应用的名字,用于区分同一设备的不用业务逻辑; '/app/n/from'表示数据源的服务名字,与下面的服务对应; '/app/n/from_type'表示数据源的服务是mb_rtu还是mb_tcp; '/app/n/to'表示数据的去向,对应服务名; '/app/n/to_type'表示服务类型,tcp、mqtt等。 '/app/n/addr'modbus设备地址; '/app/n/base_reg'modbus寄存器起始地址; '/app/n/reg_num'读取寄存器的个数; '/app/n/function'modbus功能码; '/srv/n/name'服务名,用于应用调用对应的服务; '/srv/n/type'服务类型mb_rtu、mb_tcp、tcp、mqtt等; '/srv/n/uart'串口设备路径; '/srv/n/rts_pin'485收发控制脚; '/srv/n/baud'串口波特率 '/srv/n/data_bits'串口数据位 '/srv/n/parity'串口校验位 '/srv/n/stop_bits'串口停止位 '/srv/n/addr'tcp服务地址 '/srv/n/port'tcp服务端口 '/srv/n/prefix'mqtt的topic前缀 '/srv/n/url'mqtt的broker地址 通过上面的配置参数就会启动相应的服务,通过MThings软件模拟modbus-rtu从机,通讯日志如下: ![image.png](https://oss-club.rt-thread.org/uploads/20220529/65ad4ad2e47bca11bc20e090125dcfbe.png) tcp服务器接收到的数据如下: ![image.png](https://oss-club.rt-thread.org/uploads/20220529/89d26f168589e8cb18947904bf2384d9.png) mqtt服务的数据如下: ![image.png](https://oss-club.rt-thread.org/uploads/20220529/9a42e855367edb8ad3e80dc89ddea986.png) mqtt topic规则:${prefix}/${设备名}/${应用名}/data **视频地址** 【NUC980 modbus采集器-哔哩哔哩】 https://b23.tv/0tNW5RM **代码** https://gitee.com/vandoul/nuc980-mod-bus-gw **心得体会** 本次活动使用的是rt-thread stduio IDE,使用还是挺方便的,通过IDE集成的工具可以不通过env就完成工程的配置工作。NUC980的内存资源以及高性能,在项目开发过程中还是很顺手的,基本不需要考虑任务资源占用问题,虽然没有测试上百上千的任务运行情况,但是后期还是很期待等项目功能完善之后的表现的。
0
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
wakojosin
这家伙很懒,什么也没写!
文章
2
回答
1
被采纳
0
关注TA
发私信
相关文章
1
ModbusRTU协议栈漏发送最后一个字节
2
3.0 增加freemodbus,编译不过
3
RT_THREAD上面的串口MODBUSRTU为啥没功能码?
4
关于 freemodbus 里存在的一点问题分享
5
请教如何使用组件里的FreeMODBUS
6
求一个FreeModbus的从机测试程序
7
FreeModbus的从机调试说明(含测试程序)
8
rtt_freemodbus
9
freemodbus怎么配置到uart
10
FreeModeBus从机调试问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
xiaorui
1
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部