一、为什么使用EasyModbus?

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

二、使用步骤

1.添加引用

在官网下载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

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。
MB_HOLD_REG :指向“MB_SERVER”指令中 Modbus 保持性寄存器的指针使用地址,上图代表MW100对应40001,MW102对应40002,MW104对应40003…依次类推

6.页面展示

总结

EasyModbus是非常优秀的Modbus通信类库,代码简洁干练,一两行代码就可以创建一个Modbus TCP连接,特别符合电气工程师的使用习惯。

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

  1. 关于Go语言在服务端做Restful接口和socket通信

    转载自: http://xiaorui.cc/2014/10/25/%e5%85%b3%e4%ba%8ego%e8%af%ad%e8%a8%80%e5%9c%a8%e6%9c%8d%e5%8a%a1% ...

  2. 哪种语言更适合做自动化测试?

    经常有测试新手问我:Python和Java语言,哪个更适合做自动化测试?本来想简单的回答一下的,但又觉得对不起大家对小编的信任.因此,小编今天专门写了一篇文章来回答这个问题.欢迎各位大佬补充~ 1.什 ...

  3. python语言的主要网站是_python语言主要是做什么的

    python是一款应用非常广泛的脚本程序语言,谷歌公司的网页就是用python编写.python在生物信息.统计.网页制作.计算等多个领域都体现出了强大的功能.python和其他脚本语言如java.R ...

  4. 下列python语言、返回结果不是uc_MKAN1-UC 5103作业代写、代做Analytics作业、Java,Python,c/c++程序语言作业代做...

    MKAN1-UC 5103作业代写.代做Analytics作业.Java,Python,c/c++程序语言作业代做 日期:2020-05-21 11:08 Marketing Analytics Sp ...

  5. 编程行业高手级别必学C语言,要挣大钱必学C语言,要做黑客、红客必学C语言,要面试名企、外企、高薪职位必学C语言。

    于大部分程序员, C语言 是学习 编程 的第一门语言,很少有不了解C的程序员. C语言除了能让你了解编程的相关概念,带你走进编程的大门,还能让你明白程序的运行原理,比如,计算机的各个部件是如何交互的, ...

  6. python语言能做什么-python语言到底可以做什么呢?

    python语言到底可以做什么呢? 作者:小龙博客-网络日志 2020年08月12日 没有评论 分类:电脑技巧 Python python到底可以做什么呢?先说个笑话,很多人一开始学习 Python ...

  7. python能做机器人吗_最火的Python语言也能做机器人仿真,你会不?

    原标题:最火的Python语言也能做机器人仿真,你会不? 最近接到好多刚踏出大学的学弟学妹们的问候,面临人生中的第一次求职,可有感觉自己没在学校学到一技之长,但又不想随便找份工作将就,那这种情况下该怎 ...

  8. 菱形图案c语言程序,C语言程序设计,做一个菱形图案

    C语言程序设计,做一个菱形图案 答案:4  信息版本:手机版 解决时间 2019-10-03 02:06 已解决 2019-10-02 09:41 这个题的做法   最佳答案 2019-10-02 ...

  9. c语言乘积imnl,2017年计算机二级C语言考前必做试题及答案2

    (21)有以下程序: 程序运行后的输出结果是( ). A.852 B.963 C.741 D.875421 (22)有以下程序: 程序运行后的输出结果是( ). A.let=4 B.m=2 C.m=6 ...

最新文章

  1. java ee webservice_javaEE调用webservice总结【利用WSDL】(转载)
  2. 图灵2010.05书讯
  3. Django 操作Mysql数据库 对表进行增删改查
  4. 计算机英语复习,计算机英语期末复习
  5. final year project prepare part one 认知论
  6. Cinder 组件详解 - 每天5分钟玩转 OpenStack(47)
  7. cargo maven_与Maven 3,Failsafe和Cargo插件的集成测试
  8. Downloader Middlewares反反爬虫【学习笔记04】
  9. 织梦php添加函数调用,dedecms自定义函数及实际案例调用
  10. SQL SERVER自带调试工具SQL Server Profiler简单用法
  11. 计算机网络工程师多久过期,软考网络工程师证书有效期
  12. 用计算机上初中英语课的方法,如何上好初中英语读写课
  13. x,y,w,h与xmin,ymin,xmax,ymax的关系
  14. MBP清除NVRAM和PRAM
  15. Tomcat修改默认主页
  16. 关于数据库工作方面的一些感悟
  17. yilia 的html模板,自己动手修改完善yilia主题(下)
  18. PLC内部等效电路怎么设计?
  19. 【毕业N年系列】 毕业第二年
  20. MacOS 安装 gstreamer 最新版本(1.20.0)

热门文章

  1. 响应式图像_如何为响应图像使用HTML5“图片”,“ srcset”和“大小”
  2. z390 黑苹果启动盘_黑苹果硬件选购指南之ITX篇补充说明
  3. pythone二级题库 + 刷题软件 (超详细解析,看完必过) 第七套
  4. EaseUS RecExperts for mac(萤幕录影软件)
  5. 一加和OPPO是什么关系?我来揭秘
  6. CentOS 6.5 安装部署iSCSi共享存储
  7. 第2章 Java基础语法
  8. WIN10 WSL2搭建自用网盘NextCloud记录
  9. initWithFrame,initWithCoder,awakeFromNib的区别
  10. NLP3:原始文本资料的读取与处理