当前位置: 首页 > news >正文

完整教程:新手怎么利用Qt连接汇川Easy系列的小型PLC

1.确认PLC版本

根据手头上的plc版本,在汇川官网上找到对应的plc用户手册。

汇川官网:汇川技术 - 推进工业文明 共创美好生活

例如我手头上的是:Easy 521-0808-TN,找到对应的用户手册

2.连接PLC与PC

根据用户手册,查看PLC对应的部件说明

再查看对应的电源规格

从这里我们可以看到对应的额定电源电压是24V,额定电流是1A。

根据对应线位,连接电源,打开拨码开关。

蓝线为负极,红线为正极,网线连接到PC端。

确认后打开电源,灯光如图所示。

3.Qt 连接汇川 Easy 系列 PLC

打开Qt Creator工程后建立一个Qt程序。

1.项目配置

在 Qt 项目的.pro文件中添加QT += serialbus以启用 Modbus 模块

QT       += core gui network serialbus

2.PLC 配置

  • 确保汇川 Easy 系列 PLC 已启用 Modbus TCP 功能
  • 记录 PLC 的 IP 地址(默认可能为 192.168.1.88)和端口(默认 502)

3.Qt基本连接代码编写

      PLC_TEST的头文件 plc_test.h

#ifndef PLC_TEST_H
#define PLC_TEST_H
#include
#include
#include
#include
QT_BEGIN_NAMESPACE
namespace Ui { class Plc_Test; }
QT_END_NAMESPACE
class Plc_Test : public QMainWindow
{
Q_OBJECT
public:
Plc_Test(QWidget *parent = nullptr);
~Plc_Test();
bool connectToPLC(const QString &ipAddress, int port);
private slots:
void onStateChanged(QModbusDevice::State state);
private:
Ui::Plc_Test *ui;
private:
QModbusTcpClient *m_modbusClient;
};
#endif // PLC_TEST_H

PLC_TEST的C++文件 plc_test.cpp

#include "plc_test.h"
#include "ui_plc_test.h"
#pragma execution_character_set("utf-8")
Plc_Test::Plc_Test(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::Plc_Test)
{
ui->setupUi(this);
m_modbusClient = new QModbusTcpClient(this);
// 连接状态变化信号
connect(m_modbusClient, &QModbusTcpClient::stateChanged,
this, &Plc_Test::onStateChanged);
bool connected = connectToPLC("192.168.1.88",502);
}
Plc_Test::~Plc_Test()
{
delete ui;
}
void Plc_Test::onStateChanged(QModbusDevice::State state)
{
if (state == QModbusDevice::ConnectedState) {
ui->statelab->setText("成功连接到PLC");
} else if (state == QModbusDevice::UnconnectedState) {
ui->statelab->setText("已断开与PLC的连接");
} else if (state == QModbusDevice::ConnectingState) {
ui->statelab->setText("正在连接到PLC...");
}
}
bool Plc_Test::connectToPLC(const QString &ipAddress, int port)
{
if (m_modbusClient->state() == QModbusDevice::ConnectedState) {
return true;
}
m_modbusClient->setConnectionParameter(QModbusDevice::NetworkAddressParameter, ipAddress);
m_modbusClient->setConnectionParameter(QModbusDevice::NetworkPortParameter, port);
// 设置超时和重试次数
m_modbusClient->setTimeout(1000);
m_modbusClient->setNumberOfRetries(3);
return m_modbusClient->connectDevice();
}

简单讲解一下函数

函数名参数返回值功能说明
onStateChangedQModbusDevice::State statevoid根据Modbus设备状态更新UI标签文本,显示连接状态(成功/断开/正在连接)。
connectToPLCconst QString &ipAddress, int portbool配置Modbus客户端参数(IP地址、端口、超时和重试次数),并尝试连接到PLC设备。若已连接则直接返回true

关键细节说明

  • onStateChanged
    通过state参数判断设备状态,动态更新ui->statelab的文本内容,提供用户直观的连接状态反馈。

  • connectToPLC
    在调用connectDevice()前设置网络地址、端口、超时时间(1000毫秒)和重试次数(3次)。若设备已处于连接状态,则跳过重复连接。

  • 如果连接成功UI上的statelab会显示对应状态。

http://www.rkmt.cn/news/7285.html

相关文章:

  • 3D影像地形图的制作:利用ArcGISPro - 指南
  • n8n实践-使用n8n搭建一个定时发送天气预报邮件的工作流
  • Cython-编程学习指南第二版-全-
  • 印度尼西亚股票数据API对接实现
  • 一天一款实用的AI工具,第1期,AI标题生成工具
  • 详细介绍:智慧校园统一身份认证中心:一个账号畅行校园内外
  • LlamaIndex 项目深度技术分析 - 详解
  • qoj853 Flat Organization
  • 2025年9月中国数据库排行榜:达梦挺进榜眼位,崖山首入前十强
  • linux proc fs node
  • 【稳定检索、线上线下参会、马理工主办】第十一届建筑、土木与水利工程国际学术会议(ICACHE 2025)
  • history路由模式下的nginx配置
  • createHashRouter
  • 设计模式 7章
  • 洛谷 P1967 [NOIP 2013 提高组] 货车运输 题解
  • 【每日一问】示波器探头校准技巧和校准原理是什么?
  • 向量数据库 FAISS、LanceDB 和 Milvus
  • ms sql dml 操作
  • cpu的各种寄存器及其功能
  • 学python的第6天
  • 如何关闭电视的ACR功能及其对隐私保护的重大意义
  • TypeScript tsconfig选项 “lib” 是做什么的
  • Blelloch并行扫描算法
  • 牛客刷题-Day1
  • 第三届人工智能与自动化控制国际学术会议(AIAC 2025)
  • webshell流量 - voasem
  • 基于pyspark的双十一美妆数据分析及可视化 - 实践
  • 大模型三阶段训练方法(LLaMa Factory)
  • 三行Python代码实现深度学习推理:Infery全面解析
  • 网页禁止复制