哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

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

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

億佰特物聯(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)的適配其傳輸特點(diǎn)的協(xié)議。

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

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

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

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

安裝完成后,我們進(jìn)入下一步。

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

創(chuàng)建工程

1、打開Visual Studio依次點(diǎn)擊“文件”->“新建”->“項(xiàng)目”

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

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

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

ModBus庫的安裝

工程創(chuàng)建完成后,中間紅色部分窗體就是我們?cè)摴こ棠J(rèn)生成的界面,默認(rèn)程序運(yùn)行起來后會(huì)加載該界面,但我們先不管界面,我們先為工程安裝Easy ModBusTcp庫。

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

EasyModBusTCP的特點(diǎn)如下:

(1)簡單易用:EasyModBusTCP提供了簡單易用的API,使得用戶可以輕松地實(shí)現(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)支持點(diǎn)對(duì)點(diǎn)通信:EasyModBusTCP支持點(diǎn)對(duì)點(diǎn)通信,每個(gè)設(shè)備都有一個(gè)唯一的IP地址,使得用戶可以直接與特定設(shè)備進(jìn)行通信。

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

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

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

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

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

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

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

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

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

代碼編寫

(1)界面設(shè)計(jì)

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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2577

    文章

    55462

    瀏覽量

    793792
  • MODBUS
    +關(guān)注

    關(guān)注

    28

    文章

    2515

    瀏覽量

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

    關(guān)注

    8

    文章

    1433

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

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

    解壓后,源碼為“modbus_server_tcp.c”,它模擬個(gè)Modbus TCP傳感器。
    的頭像 發(fā)表于 02-14 13:38 ?1823次閱讀
    <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é)議的上位機(jī)

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

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

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

    Modbus站問題

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

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

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

    基于Modbus TCP的MCGS上位機(jī)軟件教程

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

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

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

    labview涂料機(jī)串口DIY上位機(jī)源碼

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

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

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

    上位機(jī)的入門

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

    基于QT的簡單上位機(jī)

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

    QT|編寫個(gè)簡單上位機(jī)

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

    快速通關(guān)上位機(jī)TCP通信:上位機(jī)通信防崩指南

    以太網(wǎng) TCP 通信是上位機(jī)開發(fā)中常用的通信方式,西門子 S7 通信、三菱 MC 通信以及 MQTT、OPC UA、Modbus
    的頭像 發(fā)表于 08-13 13:40 ?1128次閱讀
    <b class='flag-5'>快速</b>通關(guān)<b class='flag-5'>上位</b><b class='flag-5'>機(jī)</b><b class='flag-5'>TCP</b>通信:<b class='flag-5'>上位</b><b class='flag-5'>機(jī)</b>通信防崩指南

    Profinet從轉(zhuǎn)Modbus(TCP)總線協(xié)議轉(zhuǎn)換網(wǎng)關(guān)

    ,設(shè)備主要功能 1、 疆鴻智能JH -TCP-PN 型網(wǎng)關(guān)是Profinet從轉(zhuǎn)Modbus(TCP)/從工業(yè)級(jí)Profinet網(wǎng)關(guān)。?
    的頭像 發(fā)表于 09-18 14:57 ?707次閱讀
    Profinet從轉(zhuǎn)<b class='flag-5'>Modbus</b>(<b class='flag-5'>TCP</b>)<b class='flag-5'>主</b>總線協(xié)議轉(zhuǎn)換網(wǎng)關(guān)
    汾阳市| 敖汉旗| 双城市| 弋阳县| 顺义区| 九龙城区| 深泽县| 临安市| 西林县| 通渭县| 仁怀市| 衡阳县| 德州市| 阜新市| 尉犁县| 永顺县| 安吉县| 吴忠市| 恩平市| 太原市| 紫云| 宁陵县| 杭锦旗| 醴陵市| 安平县| 南阳市| 南开区| 长葛市| 白朗县| 辽源市| 五指山市| 清水河县| 涪陵区| 阿图什市| 穆棱市| 屯昌县| 昌吉市| 方正县| 海丰县| 额敏县| 盱眙县|