网页开发平台的运用-使用Arduino实现ModbusTCP控制

Arduino是被广泛使用的电子原型平台,包含硬件(各种型号的开发板)与软件(Arduino IDE),Arduino实现环境感知功能依赖于各种传感器(温湿度传感器、空气质量传感器等),通过传感器的数据感知,Arduino可通过灯光,转子等装置来对环境做出反馈或改变。

Modbus是工业电子设备间通信的业界标准,可通过串口、以太网以及其他支持互联网协议的网络进行通信。

ModbusTCP是利用以太网TCP/IP实现的Modbus通信协议,我们可以使用带网络扩展板的Arduino开发板来制作Modbus从机。通过Modbus协议的通讯指令,我们向Arduino中的寄存器发送写指令,通过改变寄存器的状态实现灯光的控制。

接下来我们开始组装Arduino,使用到的零件如下:


零件名称

数量

1

Arduino Uno R3 开发板

1

2

Arduino Ethernet W5100网络扩展板

1

3

USB数据线

1

4

网线

1

5

面包板

1

6

杜邦线

若干

7

LED灯

1

8

220Ω电阻

1

Arduino开发板与Ethernet W5100网络扩展板组装完成后的外观如下图所示。


网页开发平台的运用-使用Arduino实现ModbusTCP控制

我们设计的程序的流程如下:


网页开发平台的运用-使用Arduino实现ModbusTCP控制

使用Arduino IDE 编译并上传以下Arduino程序。

// 采用 MyArduinoProjects Modbus TCP 链接库
// http://myarduinoprojects.com/modbus.html
#include 
#include 

#include "MgsModbus.h"                                //引入Modbus TCP 链接库
MgsModbus Mb;

// 设置网络 (网络扩充卡 MAC 可自行修改 +1 避免冲突)
byte mac[] = {0x90, 0xA2, 0xDA, 0x0E, 0x94, 0xB6 };     //设置Arduino设备的网卡MAC地址
IPAddress ip(192, 168, 1, 162);     //设置Arduino设备的网络IP地址
IPAddress gateway(192, 168, 1, 1);  //设置网关的IP地址
IPAddress subnet(255, 255, 255, 0); //设置子网掩码

#define LED_PIN 8                                    //定义LED PIN为8
int LedSwitch=0;

void setup() {
   Serial.begin(9600);
   Ethernet.begin(mac, ip, gateway, subnet);         // 启动网络
   Serial.println("网络已经开通"); 

   //设置要使用的缓存器地址
   //0 1 2 3 4 是 Holding 缓存器的顺序,其地址分别是10000,10001,10002,10003,10004
   // 新增缓存器   mb.MbData(i);   
   Mb.MbData[0] = 0;                                 // 0=关闭LED灯 1=打开LED灯
   pinMode(LED_PIN, OUTPUT);                         // 设定脚位 PIN 8为输出模式
}
 
void loop() {
   LedSwitch=Mb.MbData[0];                           // 读取数字缓存器的数值
   if (LedSwitch!=0){
       digitalWrite(LED_PIN, HIGH);                  //PIN 8输出为HIGH,LED点亮
   }
   else {    
   digitalWrite(LED_PIN, LOW);                       //PIN 8输出为LOW,LED熄灭
   }
   delay(500);                                       //延时 0.5秒
   Mb.MbsRun();                                      //呼叫 Modbus   
}

上述设计完成后,我们使用FastWeb网页开发平台快速设计界面。


网页开发平台的运用-使用Arduino实现ModbusTCP控制

点击右侧的开关图像,开关打开,上方的灯泡切换为亮灯的状态,同时连接Arduino开发板的LED发光二极管处于点亮的状态;在亮灯状态下,点击右侧的开关图像,开关关闭,上方的灯泡切换为灯灭的状态,同时连接Arduino开发板的LED发光二极管处于关闭的状态。

关于FastWeb网页开发平台的说明参考:

ModbusTCP控制LED灯(WEB) | 爱招飞帮助手册

Web网站设计 - 爱招飞 IsoFace

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章