在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

快速開發(fā)一個簡單的ModBus TCP主站上位機(附源碼)

億佰特物聯(lián)網(wǎng)應(yīng)用專家 ? 2024-04-12 08:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

現(xiàn)如今,ModBus協(xié)議可以說是工業(yè)控、現(xiàn)場數(shù)據(jù)采集鄰域各種控制設(shè)備與傳感器應(yīng)用最為廣泛的數(shù)據(jù)交互協(xié)議,不管是簡單方便的串口,還是高速穩(wěn)定的以太網(wǎng),ModBus協(xié)議都有相應(yīng)的適配其傳輸特點的協(xié)議。

雖然目前主流的ModBus人機交互主站是組態(tài)王或者各種工控廠家生產(chǎn)的觸摸屏,但如果你想做一些帶邏輯控制或者界面比較自由的上位機,那么該文章將在Visual Studio集成開發(fā)環(huán)境下,使用C#語言和Visual Studio的Winform框架,從環(huán)境安裝、創(chuàng)建工程、ModBus庫的安裝、代碼編寫和程序調(diào)試等幾個步驟,帶你快速開發(fā)出一個Window平臺環(huán)境下的ModBus主站上位機demo。(該文檔以Visual Studio 2017為例)

搭建開發(fā)環(huán)境

Visual Studio 社區(qū)版下載地址:

在“工作負荷”菜單處勾選“.NET桌面開發(fā)”(已省略安裝具體步驟)與你需要的其他組件。

安裝完成后,我們進入下一步。

7bb74668-f862-11ee-9118-92fbcf53809c.png

創(chuàng)建工程

1、打開Visual Studio依次點擊“文件”->“新建”->“項目”

7bc19c58-f862-11ee-9118-92fbcf53809c.png

創(chuàng)建Visual C#的 Windows窗體應(yīng)用,按如下步驟創(chuàng)建Windows窗體應(yīng)用,下面第四步我們可以自定義工程名稱,這里筆者將該工程命名成“ModBusMaster”,完成后點擊“確定。

7bc587fa-f862-11ee-9118-92fbcf53809c.png

ModBus庫的安裝

工程創(chuàng)建完成后,中間紅色部分窗體就是我們該工程默認生成的界面,默認程序運行起來后會加載該界面,但我們先不管界面,我們先為工程安裝Easy ModBusTcp庫。

EasyModBusTCP是基于.NET Framework和Java平臺上的ModBus TCP/UDP/RTU通訊協(xié)議庫。它主要用于工業(yè)自動化領(lǐng)域,幫助用戶實現(xiàn)遠程控制和數(shù)據(jù)采集。

EasyModBusTCP的特點如下:

(1)簡單易用:EasyModBusTCP提供了簡單易用的API,使得用戶可以輕松地實現(xiàn)與ModBus設(shè)備的通信

(2)支持多種編程語言:EasyModBusTCP支持多種編程語言,如C#、VB.NET、Java、C++以及更多C#的變體,如Unity、Mono、.NET Core等。

(3)支持多種ModBus協(xié)議:EasyModBusTCP不僅支持ModBus TCP協(xié)議,還支持ModBus UDP和ModBus RTU協(xié)議。

(4)支持點對點通信:EasyModBusTCP支持點對點通信,每個設(shè)備都有一個唯一的IP地址,使得用戶可以直接與特定設(shè)備進行通信。

(5)支持ModBus報文兩種類型:EasyModBusTCP支持ModBus報文的兩種類型,包括讀取請求和寫入請求。讀取請求用于獲取服務(wù)器上的數(shù)據(jù),寫入請求用于向服務(wù)器寫入數(shù)據(jù)。

(6)可靠的數(shù)據(jù)傳輸:EasyModBusTCP使用TCP連接來確保可靠的數(shù)據(jù)傳輸。在通信之前,需要建立TCP連接,并在通信結(jié)束后關(guān)閉連接。

7bc96988-f862-11ee-9118-92fbcf53809c.png

在上圖紅色區(qū)域點擊鼠標右鍵然后點擊“查看代碼”(或者鍵盤單機“F7”),進入工程代碼文件,然后點擊”項目”->“管理NuGet程序包”。

7bd881f2-f862-11ee-9118-92fbcf53809c.png

在“瀏覽”菜單欄的搜索框中輸入“easy ModBusTCP”,找到如下圖擴展庫后點擊“下載”;

7bef43ce-f862-11ee-9118-92fbcf53809c.png

安裝成功后我們可以在解決方案資源管理器中,引用中找到該擴展庫。

7bf5d3ce-f862-11ee-9118-92fbcf53809c.png

代碼編寫

(1)界面設(shè)計

7bff7050-f862-11ee-9118-92fbcf53809c.png

(2)源碼

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using EasyModBus;

namespace ModBusMaster

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

this.Master = new ModBusClient();

this.slaveIP.Text = "192.168.3.7";

this.serverPort.Text = "502";

Master.UnitIdentifier = 2;

}

EasyModBus.ModBusClient Master = null;

private bool SlaveCoilWrite(int regaddr , bool status)

{

try

{

Master.WriteSingleCoil(regaddr, status);

}

catch

{

return false;

}

return true;

}

private void btn_connect_Click(object sender, EventArgs e)

{

if (Master.Connected) return;

Master.Connect(this.slaveIP.Text, int.Parse(this.serverPort.Text));

}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)

{

Master.Disconnect();

}

private void btn_do1_on_Click(object sender, EventArgs e)

{

SlaveCoilWrite(0, true);

}

private void btn_do2_on_Click(object sender, EventArgs e)

{

SlaveCoilWrite(1, true);

}

private void btn_do3_on_Click(object sender, EventArgs e)

{

SlaveCoilWrite(2, true);

}

private void btn_do4_on_Click(object sender, EventArgs e)

{

SlaveCoilWrite(3, true);

}

private void btn_do1_4_on_Click(object sender, EventArgs e)

{

//for (int i = 0; i < 4; i++)

//{

// SlaveCoilWrite(i, true);

//}

bool[] sta = new bool[4] { true , true , true , true};

try

{

Master.WriteMultipleCoils(0, sta);

}

catch

{

}

}

private void btn_do1_off_Click(object sender, EventArgs e)

{

SlaveCoilWrite(0, false);

}

private void btn_do2_off_Click(object sender, EventArgs e)

{

SlaveCoilWrite(1, false);

}

private void btn_do3_off_Click(object sender, EventArgs e)

{

SlaveCoilWrite(2, false);

}

private void btn_do4_off_Click(object sender, EventArgs e)

{

SlaveCoilWrite(3, false);

}

private void btn_do1_4_off_Click(object sender, EventArgs e)

{

//for (int i = 0; i < 4; i++)

//{

// SlaveCoilWrite(i, false);

//}

bool[] sta = new bool[4] { false, false, false, false };

try

{

Master.WriteMultipleCoils(0, sta);

}

catch

{

}

}

}

}

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

    關(guān)注

    2565

    文章

    52856

    瀏覽量

    765983
  • MODBUS
    +關(guān)注

    關(guān)注

    28

    文章

    2091

    瀏覽量

    79329
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1401

    瀏覽量

    80762
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

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

    Modbus種常見的工業(yè)系統(tǒng)通訊協(xié)議。在我們的設(shè)計開發(fā)工作中經(jīng)常使用到它。在這篇中我們將簡單實現(xiàn)
    的頭像 發(fā)表于 12-13 14:39 ?5462次閱讀
    基于QT的<b class='flag-5'>Modbus</b> RTU<b class='flag-5'>主</b><b class='flag-5'>站上位</b>工具設(shè)計

    Modbus TCP Server程序開發(fā)與Yocto系統(tǒng)構(gòu)建

    解壓后,源碼為“modbus_server_tcp.c”,它模擬Modbus TCP傳感器。
    的頭像 發(fā)表于 02-14 13:38 ?987次閱讀
    <b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b> Server程序<b class='flag-5'>開發(fā)</b>與Yocto系統(tǒng)構(gòu)建

    求基于Modbus/tcp協(xié)議的上位

    現(xiàn)在在做基于MODBUS/Tcp協(xié)議的上位,求大家能給我教程!不勝感激!實在不會!來個例子也不錯!
    發(fā)表于 05-20 15:50

    【NanoPi M2試用體驗】之Modbus-TCP開發(fā)Modbus協(xié)議二)

    的測試成功了。NanoPi M2結(jié)合QT、串口、MySQL、Modbus-RTU、Modbus-TCP,已經(jīng)可是實現(xiàn)功能強大的工業(yè)現(xiàn)場數(shù)據(jù)采集了,只要我們認真去發(fā)掘,其實小小的卡片
    發(fā)表于 05-29 18:51

    Modbus站問題

    ModbusRTU兩站之間如何交互數(shù)據(jù)? 工業(yè)控制中,般都是主從通訊方式居多,有時也會碰到兩站之間通訊。例如某工作站上位
    發(fā)表于 11-24 16:36

    TCP通信協(xié)議-Labview上位

    現(xiàn)在用單片進行信息采集,通過GPRS模塊上傳到PC,用Labview做上位TCP通信協(xié)議,想請教下,
    發(fā)表于 12-10 08:58

    基于Modbus TCP的MCGS上位軟件教程

    配置設(shè)備參數(shù)圖1.IP地址配置成上位一個網(wǎng)段,例如安裝上位軟件的上位
    發(fā)表于 08-09 14:24

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

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

    labview涂料串口DIY上位源碼

    labview 涂料串口,自己做的上位源碼,通過串口控制機械臂。
    發(fā)表于 01-19 14:41 ?11次下載

    EPSON機器人如何與視覺上位實現(xiàn)TCP通信

    上位開發(fā)中經(jīng)常會有機器人通信,今天跟大家分享下,EPSON機器人如何與視覺上位實現(xiàn)
    發(fā)表于 10-10 15:35 ?2099次閱讀

    上位開發(fā)新手指南(二)上位通信

    上位開發(fā)中,串口通信和TCP通信是兩種常見的通信方式。串口通信是指通過串口將數(shù)據(jù)發(fā)送和接收到控制器或其他外設(shè)中,TCP通信則是通過網(wǎng)絡(luò)將
    發(fā)表于 05-08 11:37 ?8次下載
    <b class='flag-5'>上位</b><b class='flag-5'>機</b><b class='flag-5'>開發(fā)</b>新手指南(二)<b class='flag-5'>上位</b><b class='flag-5'>機</b>通信

    上位的入門

    開發(fā)上位前,我們應(yīng)該準備好三軟件modbus poll, modbus Salve, Configure VirtualSerialPo
    發(fā)表于 05-08 11:40 ?1次下載
    <b class='flag-5'>上位</b><b class='flag-5'>機</b>的入門

    基于QT的簡單上位

    。同樣的,我們也從編寫簡單的基于QT的上位來體會體會上位
    發(fā)表于 05-08 10:57 ?18次下載
    基于QT的<b class='flag-5'>簡單</b>的<b class='flag-5'>上位</b><b class='flag-5'>機</b>

    QT|編寫簡單上位

    QT | 編寫簡單上位 時間 :2023-03-19文章目錄QT | 編寫
    發(fā)表于 05-08 10:12 ?3次下載
    QT|編寫<b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>簡單</b>的<b class='flag-5'>上位</b><b class='flag-5'>機</b>

    EtherCAT站網(wǎng)關(guān)HT5S-ECM-MTP接半導體用空氣流量計與MODBUS TCP上位通訊測試

    EtherCAT站網(wǎng)關(guān)HT5S-ECM-MTP接半導體用空氣流量計與MODBUS TCP上位通訊測試 HT5S-ECM-MTP 是
    的頭像 發(fā)表于 06-12 15:43 ?675次閱讀
    EtherCAT<b class='flag-5'>主</b>站網(wǎng)關(guān)HT5S-ECM-MTP接半導體用空氣流量計與<b class='flag-5'>MODBUS</b> <b class='flag-5'>TCP</b><b class='flag-5'>上位</b><b class='flag-5'>機</b>通訊測試
    主站蜘蛛池模板: 亚洲免费不卡 | 欧美三级在线观看黄 | 天天操天天干天天爱 | 韩国免费特一级毛片 | 日本不卡在线观看免费v | 天堂在线视频 | 又粗又大撑满了好爽 | 夜夜综合网 | 久久深夜福利 | 粉嫩尤物在线456 | 免费一级毛毛片 | 日韩特级毛片 | 天天操人人射 | 久久九色| 天堂新版www中文 | 亚洲综合一区二区 | 美女色黄一男一女 | 国产精品资源手机在线播放 | 婷婷网址| 中文字幕第十页 | xx在线| 日本一区二区三区欧美在线观看 | 亚洲三级视频 | 天天干天天干天天插 | 在线三区 | 白丝丝袜高跟国产在线视频 | 综合久久99 | 色婷婷综合在线 | 9966国产精品视频 | 野外啪啪抽搐一进一出 | 成人免费观看一区二区 | 国产福利不卡一区二区三区 | 狠狠色婷婷七月色综合 | 天天摸日日摸人人看 | 色香蕉色香蕉在线视频 | 爱婷婷视频在线观看 | 六月色播 | 亚洲天堂一区二区三区 | 浓厚な接吻と肉体の交在线观看 | 夜夜嘿视频免费看 | 成人午夜免费视频 |