打印
[UNO]

Modbus Slave测试开关灯

[复制链接]
14202|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 hbzjt2011 于 2016-12-1 16:55 编辑

Modbus RTU通讯协议因为功能强大,移植方便,通讯简单的优点,广泛用于与工控仪表、PLC、HMI等设备的通讯,为此Arduino也支持其Master和Slave设备的通讯,现在测试Arduino作为从站时读写线圈的功能。
1、硬件连接:
Arduino UNO              USB转TTL
RX------------------------TX
TX------------------------RX
GND----------------------GND
使用线圈100的值来控制Arduino D13引脚,也就是板载的LED灯,主站使用PC端的Modbus Poll软件来模拟。

2、代码:
#include <Modbus.h>
#include <ModbusSerial.h>

// Modbus Registers Offsets (0-9999)
const int LAMP1_COIL = 100;
// Used Pins
const int ledPin = 13;

// ModbusSerial object
ModbusSerial mb;

void setup() {
    // Config Modbus Serial (port, speed, byte format)
    mb.config(&Serial, 38400, SERIAL_8N1);
    // Set the Slave ID (1-247)
    mb.setSlaveId(10);  
   
    // Set ledPin mode
    pinMode(ledPin, OUTPUT);
    // Add LAMP1_COIL register - Use addCoil() for digital outputs
    mb.addCoil(LAMP1_COIL);
}

void loop() {
   // Call once inside loop() - all magic here
   mb.task();
   
   // Attach ledPin to LAMP1_COIL register     
   digitalWrite(ledPin, mb.Coil(LAMP1_COIL));
}

3、PC端操作:
打开Modbus Poll软件作为主站,设置通讯参数:

设置从站地址和读写线圈地址:

使用05功能码发送ON\OFF状态:

4、展示效果:


相关帖子

沙发
songchenping| | 2016-12-2 08:42 | 只看该作者

使用特权

评论回复
板凳
sh8hd| | 2016-12-9 16:46 | 只看该作者

使用特权

评论回复
地板
huangyunfa| | 2019-2-13 15:29 | 只看该作者
有做成功的吗?
跃跃欲试。。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:欢迎参与LabVIEW版块的讨论学习! 点我一键即达

157

主题

2338

帖子

41

粉丝