C#语言使用EasyModbus做客户端和西门子1511PLC通信

这篇具有很好参考价值的文章主要介绍了C#语言使用EasyModbus做客户端和西门子1511PLC通信。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、为什么使用EasyModbus?

之前一直使用开源库NModbus,它是一个非常优秀的Modbus通信类库,偶然机会下我发现了EasyModbus,发现EasyModbus的代码非常精炼、间接,一两行代码就可以创建一个Modbus TCP Client。
EasyModbus官网:http://easymodbustcp.net/en/

二、使用步骤

1.添加引用

C#语言使用EasyModbus做客户端和西门子1511PLC通信在官网下载DLL文件,在项目中添加引用。

代码如下(示例):

using EasyModbus;

2.创建一个Modbus TCP Client

代码如下(示例):

ModbusClient modbusClient = new ModbusClient("192.168.0.1",502);//创建一个ModbusTCP客户端,IP地址为127.0.0.1,端口号为502

3.添加一个按钮事件来开启Modbus TCP Client

代码如下(示例):

private void bthConnect_Click(object sender, EventArgs e)
{
  ModbusTCP客户端定时器.Start();//MoubusTCP客户端定时器开启
  modbusClient.Connect();//ModbusTCP客户端连接
}

4.添加一个计时器来刷新数据

代码如下(示例):

private void ModbusTCP客户端定时器_Tick(object sender, EventArgs e)
{
  #region ModbusTCP客户端读取数据
  int[] readHoldingRegisters = modbusClient.ReadHoldingRegisters(txtStart.IntValue, 10);//读取从40001寄存器开始的10个地址
  txtReceive1.IntValue = readHoldingRegisters[0];
  txtReceive2.IntValue = readHoldingRegisters[1];
  txtReceive3.IntValue = readHoldingRegisters[2];
  txtReceive4.IntValue = readHoldingRegisters[3];
  txtReceive5.IntValue = readHoldingRegisters[4];
  txtReceive6.IntValue = readHoldingRegisters[5];
  txtReceive7.IntValue = readHoldingRegisters[6];
  txtReceive8.IntValue = readHoldingRegisters[7];
  txtReceive9.IntValue = readHoldingRegisters[8];
  txtReceive10.IntValue = readHoldingRegisters[9];
  #endregion
  #region 10个值批次写入从40001开始的10个寄存器
  modbusClient.WriteMultipleRegisters(0, new int[10] { txtSend1.IntValue, txtSend2.IntValue, txtSend3.IntValue, txtSend4.IntValue, txtSend5.IntValue, txtSend6.IntValue, txtSend7.IntValue, txtSend8.IntValue, txtSend9.IntValue, txtSend10.IntValue });
  #endregion
  }

5.西门子PLC创建Modbus TCP Server

C#语言使用EasyModbus做客户端和西门子1511PLC通信InterfaceId:本地PLC接口硬件标识符
ID:引用该连接(取值范围:1 到 4095)。该参数将唯一确定 CPU 中的连接。
ConnectionType :连接类型,对于 TCP,选择 11(16#0B)
ActiveEstablished:建立连接的方式所对应的 ID,对于被动连接建立,应选择 FALSE。
RemoteAddress:连接伙伴的 IP 地址,如果要接受来自任何连接伙伴的连接请求,应使用“0.0.0.0”
RemotePort:远程连接伙伴的端口号,如果要接受来自远程伙伴任何端口的连接请求,应使用“0”
LocalPort:本地连接伙伴的端口号,定义 Modbus 客户端连接请求中要监视的 IP 端口。默认为 502。
C#语言使用EasyModbus做客户端和西门子1511PLC通信MB_HOLD_REG :指向“MB_SERVER”指令中 Modbus 保持性寄存器的指针使用地址,上图代表MW100对应40001,MW102对应40002,MW104对应40003…依次类推

6.页面展示

C#语言使用EasyModbus做客户端和西门子1511PLC通信

总结

EasyModbus是非常优秀的Modbus通信类库,代码简洁干练,一两行代码就可以创建一个Modbus TCP连接,特别符合电气工程师的使用习惯。文章来源地址https://www.toymoban.com/news/detail-410095.html

到了这里,关于C#语言使用EasyModbus做客户端和西门子1511PLC通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Go语言的HTTP客户端进行负载均衡

    负载均衡是分布式系统中的重要概念,它用于将流量分散到多个服务器或服务上,以实现更好的性能、可靠性和可扩展性。在Go语言中,可以使用HTTP客户端进行负载均衡,确保请求被均匀地分配到多个服务器或服务上。 下面是一个使用Go语言HTTP客户端进行负载均衡的示例:

    2024年01月21日
    浏览(49)
  • 使用Go语言的HTTP客户端和服务器

    使用Go语言进行HTTP客户端和服务器开发是一种高效且强大的方式。Go语言的标准库提供了对HTTP协议的全面支持,使得创建HTTP客户端和服务器变得简单。 首先,让我们来看一下如何创建一个简单的HTTP服务器。在Go中,可以使用 net/http 包来创建HTTP服务器。以下是一个简单的示例

    2024年01月16日
    浏览(49)
  • Linux系统编程,使用C语言实现简单的FTP(服务器/客户端)

    前言 跟着上官社长 陈哥花了一个月的时间终于把Linux系统编程学的差不多了,这一个月真的是头疼啊,各种bug,调的真心心累,不过好在问题都解决掉了,在此也感谢一下答疑老师,给我提供了很多的思路,本文章是对前段时间学习Linux,做一个小小的总结,才疏学浅,只学

    2024年02月12日
    浏览(72)
  • Unity使用webSocket与服务器通信(三)——C#服务端(Fleck)与Unity客户端( NativeWebSocket)传输多种数据数据

    1、字符串数据 简单的字符串:比如登录请求信息,登录结果返回的信息。 用json系列化的字符串:比如上传一个表到服务器,让它写入到数据库中。 读取文件的时候,读取的是string内容。 2、二进制数据 比如传输的是文件:例如myword.doc,myexcel.xls或者是assetboundle文件。 比如

    2023年04月08日
    浏览(53)
  • C# Socket编程(服务端、客户端)

    1.最直白的Socket代码 服务端 客户端 2.封装过有点绕的Socket代码 服务端 客户端 3.GitHub代码 https://github.com/harrylsp/AndroidADBDriver

    2024年02月16日
    浏览(48)
  • 基于C#的ModbusTcp客户端Demo

            今天跟大家分享一个基于C#的ModbusTcp客户端的创建,本人小白一枚,第一次发表博客,有诸多不足之处,还请谅解,也希望大佬可以指点,如何可以做得更好。 先展示一下成品效果吧。         Demo看起来就跟上图一样,这里ui使用了sunnyui的一些控件,以及运用

    2024年02月11日
    浏览(56)
  • C# socket——简单的TCP 客户端 连接通信

    TCP编程的客户端一般步骤是: 1、创建一个socket,用函数socket()。 2、设置socket属性。 3、设置要连接的对方的IP地址和端口等属性。 4、连接服务器,用函数connect()。 5、收发数据,用函数send()和recv(),或者read()和write()。 6、关闭网络连接。 using System; using System.Net; using System.

    2024年02月11日
    浏览(52)
  • C# 客户端程序 Visual Studio 远程调试方法

    传统桌面客户端的远程调试相比 UWP , ASP 等项目来说,配置比较麻烦,因为它是非部署的应用程序,原理是复制编译的文件到远程计算机,通过网络来连接和 VS 的通信,本文主要讲述 WPF , WinForm 应用程序的远程调试。 下载适合 Visual Studio 版本的最新远程工具。 最新的远程工

    2024年02月08日
    浏览(54)
  • C# 简易TCP网口调试助手(一) 客户端Client

      最近的上位机开发工作中开始频繁涉及到网口、串口的通讯,网上找了各种资料和帖子都没怎么找到好用的开源代码或者工具。目前找到几个好一点的方式来实现的网口和串口通讯工具包,先写个好用的TCP的negut包记录下来,将使用的步骤写下来做个记录。   本博客主要用

    2024年04月13日
    浏览(47)
  • 基于C# Socket实现的简单的Redis客户端

         Redis 是一款强大的高性能键值存储数据库,也是目前 NOSQL 中 最流行 比较流行的一款数据库,它在广泛的应用场景中扮演着至关重要的角色,包括但不限于缓存、消息队列、会话存储等。在本文中,我们将介绍如何基于 C# Socket 来实现一个简单的Redis客户端类 RedisClien

    2024年02月05日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包