0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于QT的Modbus RTU主站上位工具設(shè)計(jì)

CHANBAEK ? 來(lái)源:木南創(chuàng)智 ? 作者:尹家軍 ? 2022-12-13 14:39 ? 次閱讀

Modbus是一種常見(jiàn)的工業(yè)系統(tǒng)通訊協(xié)議。在我們的設(shè)計(jì)開(kāi)發(fā)工作中經(jīng)常使用到它。在這一篇中我們將簡(jiǎn)單實(shí)現(xiàn)一個(gè)基于QT的Modbus RTU主站上位工具。

1、概述

??Modbus RTU主站應(yīng)用很常見(jiàn),有一些是通用的,有一些是專(zhuān)用的。而這里我們希望實(shí)現(xiàn)一個(gè)主要針對(duì)我們的產(chǎn)品調(diào)試的Modbus RTU主站工具。

??在開(kāi)始軟件設(shè)計(jì)之前,我們先來(lái)簡(jiǎn)略地分析一下,實(shí)現(xiàn)這樣一個(gè)Modbus RTU主站工具包含的主要內(nèi)容有哪些。我們認(rèn)為軟件需要如下幾個(gè)方面的內(nèi)容:

(1)、串口參數(shù)的配置

??Modbus RTU通過(guò)串口來(lái)實(shí)現(xiàn)通訊,所以我們需要對(duì)串口相關(guān)的參數(shù)進(jìn)行配置。對(duì)串口的配置主要是串口名、波特率、校驗(yàn)位、數(shù)據(jù)位和停止位等。對(duì)于這些參數(shù)我們讓使用者可以根據(jù)需要選擇。

??而串口號(hào),我們希望軟件可以自動(dòng)搜索當(dāng)前可用的串口列表。而且我們可以通過(guò)操作更新可用的串口列表。對(duì)串口的操作主要是串口的打開(kāi)與關(guān)閉。

(2)、從站信息的配置

??我們實(shí)現(xiàn)Modbus RTU主站應(yīng)用就是訪問(wèn)從站的數(shù)據(jù),所以我們需要在主站應(yīng)用中配置從站的信息。主要有站地址、數(shù)據(jù)類(lèi)型、數(shù)據(jù)格式等,我們將其設(shè)置為可以選擇。

讀取從站的參數(shù)配置,主要是起始地址、讀取的數(shù)量。寫(xiě)從站參數(shù)的配置,主要是起始地址、寫(xiě)入的數(shù)量以及寫(xiě)入的數(shù)值。

(3)、對(duì)從站的操作

??Modbus RTU主站對(duì)從站的操作無(wú)非是讀從站數(shù)據(jù)和寫(xiě)從站數(shù)據(jù),我們通過(guò)制定讀寫(xiě)的寄存器類(lèi)型、起始地址、數(shù)量等通過(guò)按鈕操作來(lái)實(shí)現(xiàn)讀寫(xiě)命令的發(fā)送。

??除了手動(dòng)操作讀寫(xiě)外,很多時(shí)候我們可能需要Modbus RTU主站自動(dòng)周期性的讀取從站的數(shù)據(jù)。所以我們讓其可以選擇以多長(zhǎng)的周期自動(dòng)循環(huán)讀取。

(4)、對(duì)信息的顯示

??接收信息的顯示,作為一款工具軟件, 我們當(dāng)然希望看到我們發(fā)給從站的命令究竟有沒(méi)有成功,最簡(jiǎn)單的和直觀的辦法就是將接收到的信息顯示出來(lái)。對(duì)于Modbus RTU主站當(dāng)然是顯示對(duì)應(yīng)的地址的值。

??同樣的,我們有時(shí)候想要看到發(fā)送和接收到的原始報(bào)文,所以我們對(duì)發(fā)送和接收到的報(bào)文也作相應(yīng)的顯示。

??對(duì)于個(gè)別數(shù)據(jù)有時(shí)候我們還希望看到他的變化趨勢(shì),所以我們可以添加一個(gè)圖形顯示,用以顯示我們制定的數(shù)據(jù)的變化趨勢(shì)。

??運(yùn)行狀態(tài)的顯示, 我們希望對(duì)操作的狀態(tài)進(jìn)行反饋以指示操作的動(dòng)作是否執(zhí)行,所以我們需要狀態(tài)欄來(lái)實(shí)現(xiàn)這一需求。

2、界面設(shè)計(jì)

??根據(jù)上一節(jié)中分析的需求,我們先來(lái)設(shè)計(jì)軟件的界面。我們?cè)赒T中基于QMainWindow類(lèi)生成一個(gè)操作界面,包括菜單欄、工具欄和狀態(tài)欄以滿足需求中對(duì)狀態(tài)顯示及操作命令的要求。

??而在中間顯示區(qū)域,我們將其劃分為2列。在左邊的一列從上到下設(shè)置:串口配置操作區(qū)域和讀寫(xiě)從站的交互配置區(qū)域。在右側(cè)的一列從上到下設(shè)置:動(dòng)態(tài)曲線顯示區(qū)域、收發(fā)消息顯示區(qū)域以及直接輸入報(bào)文發(fā)送命令的輸入?yún)^(qū)域。具體的界面設(shè)置如下圖所示:

??完成如上圖的布局后,我們可以選擇在屬性中配置控件的參數(shù),也可以在代碼中添加相關(guān)的參數(shù)。在這里在代碼中通過(guò)初始化形式完成參數(shù)的設(shè)置。完成整個(gè)布局后我們先試著運(yùn)行程序,正常運(yùn)行則出現(xiàn)如下的界面:

??上圖就是完成布局后的運(yùn)行界面,不過(guò)我們還沒(méi)有實(shí)現(xiàn)相應(yīng)的編碼,所以目前尚不能實(shí)現(xiàn)我們第一節(jié)中所預(yù)想的功能。

3、編碼實(shí)現(xiàn)

??接下來(lái)這一小節(jié),我們將來(lái)編碼實(shí)現(xiàn)相應(yīng)的功能。我們主要將功能分為串口操作功能、從站操作功能以及信息顯示功能三個(gè)部分來(lái)實(shí)現(xiàn)。

3.1、串口操作功能

??對(duì)串口的操作首先就是對(duì)串口參數(shù)的設(shè)置。我們?cè)诖a中對(duì)界面上的串口號(hào)、波特率、數(shù)據(jù)位、校驗(yàn)位和停止位的ComboBox控件進(jìn)行初始化。其中串口號(hào)通過(guò)自動(dòng)搜索當(dāng)前可用的串口來(lái)實(shí)現(xiàn)。具體的實(shí)現(xiàn)方式如下:

//搜索串口
void MainWindow::SearchSerialPorts()
{
    ui->comboBoxPort->clear();

    foreach(const QSerialPortInfo &info,QSerialPortInfo::availablePorts())
    {
        ui->comboBoxPort->addItem(info.portName());
    }
}

??對(duì)串口的操作主要是串口的打開(kāi)和關(guān)閉,在這里因?yàn)槭荕odbus RTU主站應(yīng)用,我們稱(chēng)之為連接和斷開(kāi)。建立或斷開(kāi)與從站的連接實(shí)際就是對(duì)串口的配置與操作,只是針對(duì)Modbus RTU作了一些封裝,具體實(shí)現(xiàn)如下:

//串口連接
void MainWindow::on_actionConnect_triggered()
{
    if (!modbusDevice)
        return;

    modbusDevice->setConnectionParameter(QModbusDevice::SerialPortNameParameter,ui->comboBoxPort->currentText());
    modbusDevice->setConnectionParameter(QModbusDevice::SerialBaudRateParameter,ui->comboBoxBaud->currentText().toInt());

    switch(ui->comboBoxParity->currentIndex())                   //設(shè)置奇偶校驗(yàn)
    {
        case 0: modbusDevice->setConnectionParameter(QModbusDevice::SerialParityParameter,QSerialPort::NoParity);break;
        default: break;
    }

    switch(ui->comboBoxData->currentIndex())                   //設(shè)置數(shù)據(jù)位數(shù)
    {
        case 1:modbusDevice->setConnectionParameter(QModbusDevice::SerialDataBitsParameter,QSerialPort::Data8);break;
        default: break;
    }

    switch(ui->comboBoxStop->currentIndex())                     //設(shè)置停止位
    {
        case 1: modbusDevice->setConnectionParameter(QModbusDevice::SerialStopBitsParameter,QSerialPort::OneStop);break;
        case 2: modbusDevice->setConnectionParameter(QModbusDevice::SerialStopBitsParameter,QSerialPort::TwoStop);break;
        default: break;
    }

    modbusDevice->setTimeout(1000);
    modbusDevice->setNumberOfRetries(3);

    if (modbusDevice->connectDevice())
    {
        //開(kāi)啟自動(dòng)讀取
        if(ui->checkBoxAuto->isChecked())
        {
            connect(pollTimer,&QTimer::timeout, this, &MainWindow::ReadRequest);
            pollTimer->setInterval(ui->spinBoxInterval->value());
            pollTimer->start();
        }

        //連接槽函數(shù)
        //QObject::connect(serialPort, &QSerialPort::readyRead, this, &MainWindow::ReadSerialData);

        // 設(shè)置控件可否使用
        ui->actionConnect->setEnabled(false);
        ui->actionDisconnect->setEnabled(true);
        ui->actionRefresh->setEnabled(false);
    }
    else    //打開(kāi)失敗提示
    {

        QMessageBox::information(this,tr("錯(cuò)誤"),tr("連接從站失??!"),QMessageBox::Ok);
    }
}

3.2、從站操作功能

??在前面一節(jié)中我們已經(jīng)設(shè)計(jì)過(guò),對(duì)從站的操作包括手動(dòng)按鈕讀取從站數(shù)據(jù)、手動(dòng)按鈕寫(xiě)入從站數(shù)據(jù)以及自動(dòng)周期讀取從站數(shù)據(jù)。

??手動(dòng)讀取從站數(shù)據(jù)是指點(diǎn)擊按鈕時(shí)觸發(fā)一次讀從站的操作,而從站的地址、讀取的寄存器類(lèi)型、讀取的寄存器起始地址和寄存器的數(shù)量均根據(jù)界面上相應(yīng)的設(shè)置確定。具體的實(shí)現(xiàn)如下:

//讀數(shù)據(jù)請(qǐng)求
void MainWindow::ReadRequest()
{
    if (!modbusDevice)
    {
        QMessageBox::information(NULL,  "Title",  "尚未連接從站設(shè)備");
        return;
    }

    QModbusDataUnit::RegisterType type;

    switch(ui->comboBoxDataType->currentIndex())
    {
        case 0:type=QModbusDataUnit::Coils;break;
        case 1:type=QModbusDataUnit::DiscreteInputs;break;
        case 2:type=QModbusDataUnit::InputRegisters;break;
        case 3:type=QModbusDataUnit::HoldingRegisters;break;
        default:type=QModbusDataUnit::Invalid;
    }

    int startAddress = ui->spinBoxStartRead->value();
    Q_ASSERT(startAddress >= 0 && startAddress < 10);

    // do not go beyond 10 entries
    quint16 numberOfEntries = qMin(quint16(ui->spinBoxNumberRead->value()), quint16(10 - startAddress));
    QModbusDataUnit readUnit=QModbusDataUnit(type, startAddress, numberOfEntries);

    statusBar()->clearMessage();

    if (auto *reply = modbusDevice->sendReadRequest(readUnit, ui->spinBoxStation->value()))
    {
        if (!reply->isFinished())
            connect(reply, &QModbusReply::finished, this, &MainWindow::ReadSerialData);
        else
            delete reply; // broadcast replies return immediately
    }
    else
    {
        statusBar()->showMessage(tr("Read error: ") + modbusDevice->errorString(), 5000);
    }

}

??手動(dòng)寫(xiě)從站操作是指點(diǎn)擊按鈕觸發(fā)一次寫(xiě)從站操作,而從站的地址、寫(xiě)入的寄存器類(lèi)型、寫(xiě)入的寄存器起始地址、寫(xiě)入的寄存器的數(shù)量以及寫(xiě)入的值均根據(jù)界面上相應(yīng)的設(shè)置確定。而寄存器的值得輸入以“,”分割,具體的實(shí)現(xiàn)如下:

//寫(xiě)數(shù)據(jù)請(qǐng)求
void MainWindow::WriteRequest(QList values)
{
    if (!modbusDevice)
    {
        QMessageBox::information(NULL,  "Title",  "尚未連接從站設(shè)備");
        return;
    }

    QModbusDataUnit::RegisterType type;

    switch(ui->comboBoxDataType->currentIndex())
    {
        case 0:type=QModbusDataUnit::Coils;break;
        case 1:type=QModbusDataUnit::DiscreteInputs;break;
        case 2:type=QModbusDataUnit::InputRegisters;break;
        case 3:type=QModbusDataUnit::HoldingRegisters;break;
        default:type=QModbusDataUnit::Invalid;
    }

    int startAddress = ui->spinBoxStartWrite->value();
    Q_ASSERT(startAddress >= 0 && startAddress < 10);

    QModbusDataUnit writeUnit = QModbusDataUnit(type,startAddress, values.size());
    for(int i=0; isize(); i++)
    {
        writeUnit.setValue(i, values.at(i));
    }

    //serverEdit 發(fā)生給slave的ID
    if (auto *reply = modbusDevice->sendWriteRequest(writeUnit,ui->spinBoxStation->value()))
    {
        if (!reply->isFinished())
        {
            connect(reply, &QModbusReply::finished, this, [this, reply]() {
                if (reply->error() == QModbusDevice::ProtocolError) {
                    qDebug() << QString("Write response error: %1 (Mobus exception: 0x%2)")
                                .arg(reply->errorString()).arg(reply->rawResult().exceptionCode(), -1, 16);
                } else if (reply->error() != QModbusDevice::NoError) {
                    qDebug() << QString("Write response error: %1 (code: 0x%2)").
                                arg(reply->errorString()).arg(reply->error(), -1, 16);
                }
                reply->deleteLater();
            });
        }
        else
        {
            reply->deleteLater();
        }
    }
    else
    {
        qDebug() << QString(("Write error: ") + modbusDevice->errorString());
    }
}

??對(duì)于自動(dòng)周期性讀取從站數(shù)據(jù)我們通過(guò)一個(gè)計(jì)時(shí)器周期性操作,而從站的地址、讀取的寄存器類(lèi)型、讀取的寄存器起始地址、寄存器的數(shù)量以及間隔時(shí)間通過(guò)界面設(shè)置。而其操作與手動(dòng)按鈕觸發(fā)一樣。

3.3、信息顯示功能

??對(duì)于信息的顯示我們主要考慮3個(gè)方面的內(nèi)容。一是讀取回來(lái)的從站數(shù)據(jù)結(jié)果顯示;二是上下行報(bào)文的監(jiān)視;三是操作過(guò)程及狀態(tài)的顯示。

??首先是對(duì)讀取回來(lái)的從站數(shù)據(jù)進(jìn)行顯示,在這里我們將讀取的寄存器地址及其對(duì)應(yīng)的數(shù)據(jù)顯示在消息框中。同時(shí)我們將部分?jǐn)?shù)據(jù)在圖形顯示中以曲線的形式展示出來(lái)。

//曲線顯示
void MainWindow::ChartDisplay()
{
    QColor acolor[8]={Qt::red,Qt::blue,Qt::green,Qt::cyan,Qt::yellow,Qt::magenta,Qt::black,Qt::darkRed};
    QStringList name={"拋物線","正弦值","正弦值","固定值","固定值","固定值","固定值","固定值"};
    QVector list[8];
    QVector newlist[8];

    for(int j=0;j<8;j++)
    {
        list[j] = lineSeries[j]->pointsVector();//獲取現(xiàn)在圖中列表

        if (list[j].size() < 200)
        {
            //保持原來(lái)
            newlist[j] = list[j];
        }
        else
        {
            //錯(cuò)位移動(dòng)
            for(int i =1 ; i< list[j].size();i++)
            {
                newlist[j].append(QPointF(i-1,list[j].at(i).y()));
            }
        }

        newlist[j].append(QPointF(newlist[j].size(),values[j]));//最后補(bǔ)上新的數(shù)據(jù)

        lineSeries[j]->replace(newlist[j]);//替換更新

        lineSeries[j]->setName(name[j]);//設(shè)置曲線名稱(chēng)
        lineSeries[j]->setPen(acolor[j]);//設(shè)置曲線顏色
        lineSeries[j]->setUseOpenGL(true);//openGl 加速

        //mChart->setTitle("Pressure Data");//設(shè)置圖標(biāo)標(biāo)題
        mChart->removeSeries(lineSeries[j]);
        mChart->addSeries(lineSeries[j]);
        mChart->createDefaultAxes();//設(shè)置坐標(biāo)軸
    }

    ui->graphicsView->setChart(mChart);
}

??其次對(duì)于上下行報(bào)文我們也將其顯示到消息顯示框中。在QT對(duì)Modbus協(xié)議進(jìn)行封裝后,我們沒(méi)有辦法直接獲取上下行的報(bào)文,我們可以開(kāi)啟日志答應(yīng)功能,再?gòu)钠渲薪厝∠鄳?yīng)的報(bào)文。

QLoggingCategory::setFilterRules(QStringLiteral("qt.modbus* = true"));

??而操作過(guò)程及狀態(tài)顯示則比較簡(jiǎn)單,我們?cè)跔顟B(tài)欄顯示相應(yīng)的操作過(guò)程和操作的狀態(tài)。

4、小結(jié)

??完成了編碼調(diào)試后,我們尚需要對(duì)這一工具進(jìn)行一些測(cè)試。首先我們安裝一個(gè)虛擬串口軟件用以虛擬我們用于測(cè)試的串口,并找到一款Modbus RTU的從站模擬軟件。當(dāng)然有實(shí)際的從站和硬件的串行端口更好,在這里我們先用軟件模擬。具體的配置如下圖所示:

??而Modbus RTU從站我們使用MThings來(lái)模擬,當(dāng)然也可以使用其它Modbus RTU從站模擬軟件。我們模擬10個(gè)保持寄存器和10個(gè)線圈,之所以這么設(shè)置是因?yàn)檫@兩種數(shù)據(jù)類(lèi)型支持讀寫(xiě),方便我們測(cè)試。具體的配置如下圖所示:

??現(xiàn)在將我們?cè)O(shè)計(jì)的Modbus RTU主站運(yùn)行起來(lái),并使用它去訪問(wèn)我們剛才配置的Modbus RTU從站。首先我們實(shí)驗(yàn)讀從站數(shù)據(jù)操作。測(cè)試的結(jié)果如下圖所示:

??這里我們讀取從站從地址0開(kāi)始的10個(gè)保持寄存器,并將值顯示在消息框和圖形中。我們模擬了2路正弦信號(hào)、1路拋物線信號(hào)和5路固定值信號(hào)。接下來(lái)我們測(cè)試一下寫(xiě)操作。測(cè)試的結(jié)果如下圖所示:

??這里對(duì)從站的從地址3開(kāi)始的3個(gè)保持寄存器的值進(jìn)行修改。設(shè)定的值分別是123、456和789,操作完成后我們查看從站的結(jié)果如下:

??上圖中與我們?cè)O(shè)定值的完全符合,說(shuō)明我們的寫(xiě)從站操作時(shí)正確的。到這里我們基于QT的Modbus RTU主站就基本實(shí)現(xiàn)了。當(dāng)然,我們還可以根據(jù)需要修改或添加一些功能以適應(yīng)不同的應(yīng)用需求。我們已經(jīng)將代碼發(fā)布到Gitee,歡迎下載和交流。

下載地址:https://gitee.com/ErichMoonan/ModbusMaster

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • MODBUS
    +關(guān)注

    關(guān)注

    28

    文章

    1718

    瀏覽量

    76415
  • 通訊協(xié)議
    +關(guān)注

    關(guān)注

    10

    文章

    263

    瀏覽量

    20271
  • Qt
    Qt
    +關(guān)注

    關(guān)注

    1

    文章

    300

    瀏覽量

    37596
  • RTU
    RTU
    +關(guān)注

    關(guān)注

    0

    文章

    384

    瀏覽量

    28547
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)教 labview 做一個(gè)modbus RTU

    最近在用LabVIE想做一個(gè)modbus RTu站,我的步驟是1、新建工程,2、新建一個(gè) IO server,選擇modbus (串口,)3、新建一個(gè)VI現(xiàn)在有幾疑問(wèn),1、我通過(guò)這樣
    發(fā)表于 11-17 17:09

    【NanoPi M2試用體驗(yàn)】之Modbus-RTU站開(kāi)發(fā)

    NanoPi M2試用體驗(yàn)之Modbus-RTU站開(kāi)發(fā)本菜鳥(niǎo)之前的幾篇使用報(bào)告介紹了基于NanoPi M2無(wú)線網(wǎng)卡設(shè)置、NFS文件系統(tǒng)搭建、Mysql安裝、Mysql可視化配置,以及基于QT
    發(fā)表于 05-26 09:20

    Modbus站問(wèn)題

    ModbusRTU兩站之間如何交互數(shù)據(jù)? 工業(yè)控制中,一般都是主從通訊方式居多,有時(shí)也會(huì)碰到兩個(gè)站之間通訊。例如某工作站上位機(jī)(站)需要監(jiān)控一個(gè)plc末端設(shè)備,常規(guī)來(lái)說(shuō)plc應(yīng)作
    發(fā)表于 11-24 16:36

    請(qǐng)問(wèn)在STM32上跑modbus rtu站應(yīng)該怎么做

    最近一個(gè)項(xiàng)目中需要用到485通信,下面的期間是modbus rtu協(xié)議,我是小白沒(méi)搞過(guò)modbus,有沒(méi)有移植過(guò)的大神給小弟指點(diǎn)迷津啊,要在STM32上跑modbus
    發(fā)表于 01-11 09:04

    如何快速實(shí)現(xiàn)Modbus RTUModbus TCP協(xié)議轉(zhuǎn)換?

    Modbus協(xié)議是工業(yè)現(xiàn)場(chǎng)串口設(shè)備之間常用的連接方式,其中最常見(jiàn)的就是Modbus RTUModbus TCP兩種。許多工廠需要將現(xiàn)場(chǎng)各種不同型號(hào)設(shè)備的數(shù)據(jù)都能夠通過(guò)一個(gè)
    發(fā)表于 08-18 18:36

    上位機(jī)MODBUS RTU多從站通訊的VB程序

    上位機(jī)MODBUS RTU多從站通訊的VB程序,實(shí)現(xiàn)上位機(jī)與下位機(jī)之間的數(shù)據(jù)傳輸。
    發(fā)表于 10-12 16:05 ?77次下載

    淺談ModBus RTUModBus TCP

    ModBus RTUModBus TCP作為ModBus協(xié)議的兩個(gè)主要變體,傳統(tǒng)上,ModBus RT
    的頭像 發(fā)表于 12-30 14:36 ?2188次閱讀

    ModBus RTUModBus TCP

    一、兩個(gè)密切相關(guān)的協(xié)議:RTU 與 TCP ModBus RTUModBus TCP作為ModBus協(xié)議的兩個(gè)主要變體,傳統(tǒng)上,
    的頭像 發(fā)表于 02-07 10:05 ?2794次閱讀

    C#上位機(jī):Modbus RTU通訊實(shí)例

    本文是對(duì)前文的補(bǔ)充,主要是針對(duì)上位機(jī)的串口通訊在Modbus RTU協(xié)議方面的運(yùn)用。在前文中有詳細(xì)代碼描述了如何搭建一個(gè)串口通訊上 位機(jī)模板,在本文中,給出一些在前文中代碼基礎(chǔ)上的Modbu
    發(fā)表于 05-09 14:38 ?6次下載
    C#<b class='flag-5'>上位</b>機(jī):<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>通訊實(shí)例

    EtherNet/IP轉(zhuǎn)Modbus-RTU站協(xié)議網(wǎng)關(guān)(JM-EIP-RTU

    RTU網(wǎng)絡(luò)之間無(wú)縫內(nèi)部連接。 廣泛應(yīng)用:應(yīng)用于Modbus RTU接口的變頻器、上位機(jī)、儀表、馬保等等。例如在房山某污水處理廠的PLC控制系統(tǒng)項(xiàng)目中,羅克韋爾PLC作為EtherNe
    的頭像 發(fā)表于 08-26 14:43 ?165次閱讀
    EtherNet/IP轉(zhuǎn)<b class='flag-5'>Modbus-RTU</b><b class='flag-5'>主</b>站協(xié)議網(wǎng)關(guān)(JM-EIP-<b class='flag-5'>RTU</b>)

    EtherNet/IP轉(zhuǎn)Modbus-RTU站網(wǎng)關(guān)(EtherNet/IP轉(zhuǎn)Modbus-RTU

    RTU網(wǎng)絡(luò)之間無(wú)縫內(nèi)部連接。 廣泛應(yīng)用:應(yīng)用于Modbus RTU接口的變頻器、上位機(jī)、儀表、馬保等等。例如在房山某污水處理廠的PLC控制系統(tǒng)項(xiàng)目中,羅克韋爾PLC作為EtherNe
    的頭像 發(fā)表于 09-04 10:55 ?127次閱讀
    EtherNet/IP轉(zhuǎn)<b class='flag-5'>Modbus-RTU</b><b class='flag-5'>主</b>站網(wǎng)關(guān)(EtherNet/IP轉(zhuǎn)<b class='flag-5'>Modbus-RTU</b>)

    Modbus RTU轉(zhuǎn)CC-Link協(xié)議網(wǎng)關(guān)(CC-Link轉(zhuǎn)Modbus RTU

    遠(yuǎn)創(chuàng)智控YC-CCLK-RTU型網(wǎng)關(guān)實(shí)現(xiàn)了CC-Link從站和Modbus RTU站(從站)。網(wǎng)關(guān)作為CC-Link從站接入到CC-Link網(wǎng)絡(luò)中,比如連接到三菱PLC。CCLK-
    的頭像 發(fā)表于 09-07 14:59 ?207次閱讀
    <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>轉(zhuǎn)CC-Link協(xié)議網(wǎng)關(guān)(CC-Link轉(zhuǎn)<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>)

    CC-Link IEFB站轉(zhuǎn)Modbus RTU協(xié)議網(wǎng)關(guān)(YC-CCLKIEM-RTU

    一,設(shè)備主要功能 遠(yuǎn)創(chuàng)智控YC-CCLKIEM-RTU型網(wǎng)關(guān)在CC-Link IEFB總線側(cè)實(shí)現(xiàn)站功能,在Modbus RTU串口側(cè)實(shí)現(xiàn)從站功能??蓪C-Link IEFB協(xié)議的設(shè)
    的頭像 發(fā)表于 09-09 15:58 ?103次閱讀
    CC-Link IEFB<b class='flag-5'>主</b>站轉(zhuǎn)<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>協(xié)議網(wǎng)關(guān)(YC-CCLKIEM-<b class='flag-5'>RTU</b>)

    EtherCAT站轉(zhuǎn)Modbus RTU網(wǎng)關(guān)(EtherCAT轉(zhuǎn)Modbus RTU

    一,設(shè)備主要功能 遠(yuǎn)創(chuàng)智控YC-ECTM-RTU型網(wǎng)關(guān)將EtherCAT協(xié)議的設(shè)備接入到Modbus RTU網(wǎng)絡(luò)中;可將EtherCAT站接入Mo
    的頭像 發(fā)表于 09-09 16:32 ?130次閱讀
    EtherCAT<b class='flag-5'>主</b>站轉(zhuǎn)<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>網(wǎng)關(guān)(EtherCAT轉(zhuǎn)<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>)

    Modbus RTU轉(zhuǎn)CC-link協(xié)議網(wǎng)關(guān)(Modbus RTU轉(zhuǎn)CC-link)

    一,設(shè)備主要功能 捷米特JM-CCLK-RTU網(wǎng)關(guān)實(shí)現(xiàn)CC-Link從站和Modbus RTU站(從站)。即將CC-Link作為CC-Link從站接入到
    的頭像 發(fā)表于 09-10 10:28 ?195次閱讀
    <b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>轉(zhuǎn)CC-link協(xié)議網(wǎng)關(guān)(<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>轉(zhuǎn)CC-link)