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

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

3天内不再提示

如何使用Arduino UNO创建简单的Modbus设备

454398 来源:网络整理 作者:网络整理 2019-11-15 10:05 次阅读

步骤1:工具和软件

工具与材料

Arduino UNO

用于Arduino的RS485 Shield

用于PC连接的任何RS485-USB适配器(或更便宜的一种)

可选:

面包板

推按钮

红色LED

220欧姆电阻

10k电阻

跳线

软件

Arduino IDE

Modbustester

步骤2:连接RS485

接线非常简单。您只需要将HAT的A和B端子与Modbus系统的A和B线连接即可。 Y和Z端子不用于此类应用。对于长距离,建议对A和B使用双绞线。

步骤3:接线Arduino(可选)

建议向Arduino添加一个LED和一个按钮,以查看MODBUS通信的某些效果。

步骤4:DIP开关设置

我们的RS422/RS485 Shield带有3个DIP开关银行。您必须如上图所示为Modbus设置这些DIP开关。

开关1:1-OFF 2-ON 3-ON 4-OFF

开关2 :1-OFF 2-OFF 3-ON 4-ON

开关3:1-OFF或ON * 2-OFF 3-OFF 4-OFF

*取决于位置在Modbus线路中的RS422/RS485屏蔽层上,您必须打开或关闭终端电阻。仅当屏蔽层在总线线路的一端时,才应将电阻器切换到ON位置。在所有其他情况下,请关闭终端电阻:

步骤5:跳线设置

在盾牌上找到3个不同的跳线区域。跳线JP1对于电源电压非常重要。 Arduino UNO内部可使用5V。您必须将该跳线设置为5V位置(对于3.3V板,例如Arduino 101,将其设置为3.3V位置)。

此外,将左上角的通信端口的跳线设置为如图所示以上。在这种情况下,端口0和1上的内部UART将连接到屏蔽的RS485接口

最后但并非最不重要的一点是,我们必须为RX/TX控制端口设置跳线。由于配置了自动RX/TX切换,因此我们不用此跳线。

步骤6:安装MODBUS Tester软件

在本示例中,我们将PC作为MODBUS主站。您必须下载Modbustester。请将zip压缩文件解压缩到硬盘上的新目录中。打开软件,然后如上图所示更改标记的字段。您必须先连接USB-RS485适配器-请在Modbustester中为此适配器选择正确的COM端口。

步骤7:Arduino软件

我们为Arduino UNO,Genuino 101和STM Nucleo提供了3个示例程序。请将它们加载到Arduino IDE中进行编译和编程

这些程序非常简单,可让您对MODBUS通信的基本功能有所了解。您可以根据需要添加其他功能。

在编译之前不要忘记安装库SimpleModbus:

https://github.com/angeloc/simplemodbusng

第8步:测试您的工作

现在可以测试您的工作了!

您可以按Modbustester中的“读取”按钮。该命令将读取我们新的从设备的存储器的8个字节。在地址400008中,您可以找到按钮的状态。地址400001-400006包含ADC端口的值。

使用写入按钮,您可以操作从站中的寄存器。您可以在地址400007中输入0或1来打开或关闭LED。

责任编辑:wv

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

    关注

    28

    文章

    1808

    浏览量

    77042
  • Arduino
    +关注

    关注

    188

    文章

    6471

    浏览量

    187183
收藏 人收藏

    评论

    相关推荐

    自己设计的Arduino UNO R3主控板原理图+PCB源文件(可直接打样)

    一年前做的Arduino UNO r3,开源精神,把自己这块板子奉献给大家,板子没有什么问题,可以直接打样制作,原理图文件都表明了型号。不用谢~ Arduino UNO R3主控板原理
    发表于 12-10 10:14

    基于Arduino的串口通信项目

    基于Arduino的串口通信项目涉及多个方面,包括硬件连接、软件编程、串口参数配置等。 一、硬件准备 Arduino开发板 :确保你有一块Arduino开发板,如Arduino
    的头像 发表于 11-22 09:24 597次阅读

    MODBUS TCP 转 CANOpen

    产品概述 SG-TCP-COE-210 网关可以实现将 CANOpen 接口设备连接到 MODBUS TCP 网络中。用户不需要了解具体的 CANOpen 和 Modbus TCP 协议即可实现
    的头像 发表于 09-24 13:59 280次阅读
    <b class='flag-5'>MODBUS</b> TCP 转 CANOpen

    使用Modbus、楼宇自控、电力协议转Modbus协议网关实现生产设备的远程监控和管理

    Modbus网关BL120ML的下行采集协议支持Modbus RTU、DLT645、BACnet MS/TP、Lonworks协议、IEC104、IEC61850、BACnet IP协议的设备,实现
    的头像 发表于 08-08 17:29 390次阅读
    使用<b class='flag-5'>Modbus</b>、楼宇自控、电力协议转<b class='flag-5'>Modbus</b>协议网关实现生产<b class='flag-5'>设备</b>的远程监控和管理

    Modbus RTU、Modbus TCP转MQTT网关实现Modbus设备与云平台的无缝通信

    钡铼Modbus转MQTT网关,简而言之,就是通过将Modbus协议(包括Modbus RTU和Modbus TCP)的数据转换为MQTT协议的数据格式,从而实现
    的头像 发表于 07-23 16:58 2971次阅读
    <b class='flag-5'>Modbus</b> RTU、<b class='flag-5'>Modbus</b> TCP转MQTT网关实现<b class='flag-5'>Modbus</b><b class='flag-5'>设备</b>与云平台的无缝通信

    ESP32的程序是不是和uno r3一样都是以插入就开始运行?

    大神们好,小弟一直在用Arduino Uno R3来运行hex编好了的程序,但是uno r3的容量实在是太少了,所以想问问ESP32可以代替Uno r3吗? 还有,如果我有几个hex程
    发表于 06-25 07:56

    简单介绍Modbus RTU协议

    介绍modbus rtu之前,我们可以了解到,Modbus是施耐德电气公司,于1979年发明的,是全球第一个真正用于工业现场的总线协议。
    的头像 发表于 05-09 09:13 2542次阅读
    <b class='flag-5'>简单</b>介绍<b class='flag-5'>Modbus</b> RTU协议

    Modbus转Profinet网关连接打印设备与PLC通讯

    Modbus转Profinet网关(XD-MDPN100)是一种能够实现Modbus协议和Profinet协议之间转换的设备Modbus转Profinet网关可提供单个或多个RS48
    的头像 发表于 05-07 18:17 1216次阅读
    <b class='flag-5'>Modbus</b>转Profinet网关连接打印<b class='flag-5'>设备</b>与PLC通讯

    工业设备监控Modbus转Ethernet/IP网关

    BL123是一款高效的Modbus转EtherCAT网关,配备2个RS485串口、1个RS232串口和3个以太网口。该网关实现了Modbus协议到EtherCAT协议的转换 为不同协议设备的通信提供
    的头像 发表于 04-29 17:40 531次阅读
    工业<b class='flag-5'>设备</b>监控<b class='flag-5'>Modbus</b>转Ethernet/IP网关

    如何使用Arduino设置热敏电阻来创建温度计

    在本教程中,我们将指导您如何使用Arduino设置热敏电阻以创建基本温度计。提供的原理图、试验板图和示例代码将使热敏电阻工作变得简单明了。
    的头像 发表于 02-11 10:37 2555次阅读
    如何使用<b class='flag-5'>Arduino</b>设置热敏电阻来<b class='flag-5'>创建</b>温度计

    如何使用Arduino UNO板和电位器控制伺服电机

    在本Arduino伺服电机教程中,您将学习如何使用Arduino UNO板和电位器控制伺服电机。
    的头像 发表于 02-11 10:11 2849次阅读
    如何使用<b class='flag-5'>Arduino</b> <b class='flag-5'>UNO</b>板和电位器控制伺服电机

    如何使用Arduino UNO和TIP120晶体管驱动和控制直流电机的速度

    在本 Arduino 电机指南中,您将学习如何使用 Arduino UNO 和 TIP120晶体管驱动和控制直流电机的速度。在此示例中,您将使用按钮来提高电机速度,然后减慢速度,这要归功于脉宽调制 (PWM) 的强大功能。
    的头像 发表于 02-11 10:08 1501次阅读
    如何使用<b class='flag-5'>Arduino</b> <b class='flag-5'>UNO</b>和TIP120晶体管驱动和控制直流电机的速度

    如何使用arduino板控制接触器?

    我将避免铅酸电池过载。我想通过使用近 30A 的接触器和 arduino uno 板来控制电池过载。如何使用arduino板控制接触器?
    发表于 01-22 07:14

    什么是Modbus协议?

    Modbus协议是一种在工业自动化领域广泛应用的通信协议,它允许不同设备之间进行可靠的数据交换和控制。该协议最初由Modicon公司于1979年创建,旨在提供一种简单而有效的方法,使P
    的头像 发表于 01-09 08:00 951次阅读
    什么是<b class='flag-5'>Modbus</b>协议?

    Profinet转Modbus使设备互联更简单

    Modbus和Profinet之间的转换可以使工业自动化设备互联更加方便和高效。通过Modbus转Profinet网关(XD-MDPN100/200),设备通信更灵活可靠,降低工程师配
    的头像 发表于 01-04 17:54 428次阅读
    Profinet转<b class='flag-5'>Modbus</b>使<b class='flag-5'>设备</b>互联更<b class='flag-5'>简单</b>