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

完整教程:新手怎么利用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会显示对应状态。

相关作品