C#语言使用EasyModbus做客户端和西门子1511PLC通信
一、为什么使用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通信相关推荐
- 关于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% ...
- 哪种语言更适合做自动化测试?
经常有测试新手问我:Python和Java语言,哪个更适合做自动化测试?本来想简单的回答一下的,但又觉得对不起大家对小编的信任.因此,小编今天专门写了一篇文章来回答这个问题.欢迎各位大佬补充~ 1.什 ...
- python语言的主要网站是_python语言主要是做什么的
python是一款应用非常广泛的脚本程序语言,谷歌公司的网页就是用python编写.python在生物信息.统计.网页制作.计算等多个领域都体现出了强大的功能.python和其他脚本语言如java.R ...
- 下列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 ...
- 编程行业高手级别必学C语言,要挣大钱必学C语言,要做黑客、红客必学C语言,要面试名企、外企、高薪职位必学C语言。
于大部分程序员, C语言 是学习 编程 的第一门语言,很少有不了解C的程序员. C语言除了能让你了解编程的相关概念,带你走进编程的大门,还能让你明白程序的运行原理,比如,计算机的各个部件是如何交互的, ...
- python语言能做什么-python语言到底可以做什么呢?
python语言到底可以做什么呢? 作者:小龙博客-网络日志 2020年08月12日 没有评论 分类:电脑技巧 Python python到底可以做什么呢?先说个笑话,很多人一开始学习 Python ...
- python能做机器人吗_最火的Python语言也能做机器人仿真,你会不?
原标题:最火的Python语言也能做机器人仿真,你会不? 最近接到好多刚踏出大学的学弟学妹们的问候,面临人生中的第一次求职,可有感觉自己没在学校学到一技之长,但又不想随便找份工作将就,那这种情况下该怎 ...
- 菱形图案c语言程序,C语言程序设计,做一个菱形图案
C语言程序设计,做一个菱形图案 答案:4 信息版本:手机版 解决时间 2019-10-03 02:06 已解决 2019-10-02 09:41 这个题的做法 最佳答案 2019-10-02 ...
- c语言乘积imnl,2017年计算机二级C语言考前必做试题及答案2
(21)有以下程序: 程序运行后的输出结果是( ). A.852 B.963 C.741 D.875421 (22)有以下程序: 程序运行后的输出结果是( ). A.let=4 B.m=2 C.m=6 ...
最新文章
- java ee webservice_javaEE调用webservice总结【利用WSDL】(转载)
- 图灵2010.05书讯
- Django 操作Mysql数据库 对表进行增删改查
- 计算机英语复习,计算机英语期末复习
- final year project prepare part one 认知论
- Cinder 组件详解 - 每天5分钟玩转 OpenStack(47)
- cargo maven_与Maven 3,Failsafe和Cargo插件的集成测试
- Downloader Middlewares反反爬虫【学习笔记04】
- 织梦php添加函数调用,dedecms自定义函数及实际案例调用
- SQL SERVER自带调试工具SQL Server Profiler简单用法
- 计算机网络工程师多久过期,软考网络工程师证书有效期
- 用计算机上初中英语课的方法,如何上好初中英语读写课
- x,y,w,h与xmin,ymin,xmax,ymax的关系
- MBP清除NVRAM和PRAM
- Tomcat修改默认主页
- 关于数据库工作方面的一些感悟
- yilia 的html模板,自己动手修改完善yilia主题(下)
- PLC内部等效电路怎么设计?
- 【毕业N年系列】 毕业第二年
- MacOS 安装 gstreamer 最新版本(1.20.0)
热门文章
- 响应式图像_如何为响应图像使用HTML5“图片”,“ srcset”和“大小”
- z390 黑苹果启动盘_黑苹果硬件选购指南之ITX篇补充说明
- pythone二级题库 + 刷题软件 (超详细解析,看完必过) 第七套
- EaseUS RecExperts for mac(萤幕录影软件)
- 一加和OPPO是什么关系?我来揭秘
- CentOS 6.5 安装部署iSCSi共享存储
- 第2章 Java基础语法
- WIN10 WSL2搭建自用网盘NextCloud记录
- initWithFrame,initWithCoder,awakeFromNib的区别
- NLP3:原始文本资料的读取与处理