C#使用S7netPlus与PLC通讯(超简单)

前言

在这里插入图片描述

刚接到手一个项目,是开发一款程序,要和PLC有数据交互,如上图,设备发生故障后,PLC会发电报,我们收到电报后把故障显示出来,同时点击解除故障,也会给PLC发送相对应的电报。查了蛮多资料但是感觉还是无从下手(资料是挺多的,但是感觉太繁琐了,有很多地方都没有必要,比如模拟PLC环境,一连下四五个软件,我感觉没有必要。),最后问了一下我之前公司的好哥们,正好他就是做上位机的,所以跟着学会了怎么连接PLC,怎样读写数据。我这里暂时也没有PLC,所以我使用的也是仿真模拟软件:HslCommunication
在这里插入图片描述
安装包下载:

链接:https://pan.baidu.com/s/1dE3KAFUQgXJ2wRB7oWJewA 
提取码:acpk

1.引入S7netPlus包

在这里插入图片描述

2.连接

           //PLC类型 IP地址 机架号 槽号//这里我们使用的是仿真软件,所以默认是的IP地址是本机地址Plc plc = new Plc(CpuType.S7300, "127.0.0.1", 0, 0);try{plc.Open();if (plc.IsConnected == false){textBox1.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ")+"PLC连接失败!";}else{textBox1.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ")+"PLC连接成功!";}}catch (Exception ex){textBox1.Text = ex.Message;}

效果图如下:
在这里插入图片描述
在这里插入图片描述
这样就连接上了,真实情况下的PLC也可以连接上。

3.读取数据

我这里写的比较多,是因为我专门写了个Demo来测试连接、读写的。

///代码中用到三种数据获取方式: DBX、DBW、DBD,深入理解的可以查一下网上资料///简单理解就是 DBX读取位,比如bool类型;DBW读取字;DBD读取数值///注释中是对应的 TIA Portal 数据块类型var db1Bool1 = (bool)plc.Read("DB1.DBX0.0");Console.WriteLine("DB1.DBX0.0: " + db1Bool1);bool db1Bool2 = (bool)plc.Read("DB1.DBX0.1");Console.WriteLine("DB1.DBX0.1: " + db1Bool2);// Intint intVariable = (ushort)plc.Read("DB1.DBW2.0");Console.WriteLine("DB1.DBW2.0: " + intVariable);// Realvar realVariabl = ((uint)plc.Read("DB1.DBD4.0")).ConvertToFloat();Console.WriteLine("DB1.DBD4.0: " + realVariabl);// DIntvar dIntVariable = (uint)plc.Read("DB1.DBD8.0");Console.WriteLine("DB1.DBD8.0: " + dIntVariable);// DWordvar dWordVariable = (uint)plc.Read("DB1.DBD12.0");Console.WriteLine("DB1.DBD12.0: " + dWordVariable);// Wordvar wordVariable = (ushort)plc.Read("DB1.DBW16.0");Console.WriteLine("DB1.DBW16.0: " + wordVariable);

拿DB1.DBD12.0来举例:

var dWordVariable = (uint)plc.Read("DB1.DBD12.0");
textBox1.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ")+"DB1.DBD12.0读取值为:"+dWordVariable ;

在这里插入图片描述
我们可以看到在软件里面这个程序块的值是123456,那么我们接下来用程序试一下。
在这里插入图片描述
很完美,读取到了这个模块里的值。

4.写入数据

 plc.Write("DB1.DBD12.0", 123457);

一行写入,简单到爆炸,那么我们验证下效果。
在这里插入图片描述
写入成功!是不是超级简单。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/27754.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#与西门子PLC通信上位机程序

1.该程可以实现c#与西门子全系列plc(200smart,300,400,1200,1500)的以太网s7通讯,通讯传输快稳定。 2.该程序采用.dll动态链接库方式,是最近几年才出来的一种与西门子plc通讯的方式,本人经过几个…

C#中使用S7.net与西门子PLC通讯

最近因为工作的原因用到了西门子PLC,在使用过程中一直在思考上位机和PLC的通讯问题,后来上网查了一下,找到了一个专门针对S7开发的一个.net库–《S7netPlus》,PLC通讯方法比较多,所以也是在不断地学习中,以…

C#调用PCHMI与西门子PLC连接通讯

文章目录 一、PCHMI环境配置二、PCHMI连接S7(PLC)三、标签与按钮的使用总结 一、PCHMI环境配置 创建一个新项目 打开项目属性,更改输出路径为"bin\binexe"下 工具箱新建个选择卡,我们命名为PCHMI 鼠标右键【选择项】…

第三方调试助手的与S7-1200 PLC的通信

1、概述 西门子S7-1200 PLC支持多种协议通过以太网通讯方式,如OPC、TCP、S7、MODBUS-TCP等。TCP方式相比其它协议,具有更多的灵活性,更快的数据响应等优点, 需要PLC与电脑还有其他设备进行TCP通讯,使用TCP调试助手与…

TIA 博图 使用 S7通讯 Put Get 对两台PLC进行通讯

1.打开设备组态-属性-找到防护与安全: 把允许来自远程的PUT/GET 通讯访问✔,两台PLC都是这样,把组态下载进去。 2.设备与网络中,用端口1把两台设备连在一起: 两台设备需要在同一个网段里面 3.在PLC3新建一个DB块&#…

文心一言 VS 讯飞星火 VS chatgpt (23)-- 算法导论4.2 5题

五、V.Pan 发现一种方法,可以用 132 464 次乘法操作完成 68 x 68 的矩阵相乘,发现另一种方法,可以用 143 640 次乘法操作完成 70 x 70 的矩阵相乘,还发现一种方法,可以用155 424次乘法操作完成 72 x 72 的矩阵相乘。当…

【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口

目录 🐱背景🐱工具🐱分析流程🐔登陆分析🐔检索分析🐔模拟HTML代码请求🐔 解析HTML🐔 再次分析🐟分析js算法🐟 拿下furl🐟拿下sfname🐟拿下sfname🐔 构造请求🐔再次瓶颈🐔分析cookie🐟 成功演示🐱总结

[云炬python3玩转机器学习]6-2模拟梯度下降法

模拟梯度下降法 In [1]: import numpy as np import matplotlib.pyplot as plt import datetime;print (Run by CYJ,,datetime.datetime.now()) In [2]: plot_x np.linspace(-1., 6., 141) plot_xOut[2]: array([-1. , -0.95, -0.9 , -0.85, -0.8 , -0.75, -0.7 , -0.65…

OneFlow源码解析:静态图与运行时

作者|郑建华 更新|许啸宇、张文骁、成诚 OneFlow静态图的训练效率远高于动态图(eager模式)。本文试图通过一个简单例子,结合v0.8.0版本的代码,解读一下静态图和运行时的实现机制。 在开始之前,建…

infer源码阅读之yolo.cu

目录 yolo.cu注意事项一、2023/3/30更新前言1.宏定义2.Norm3.后处理3.1 affine_project3.2 decode3.2.1 decode_common3.2.2 decode_v8 3.3 nms3.4 invoker 4.预处理5.decode_mask6.AffineMatrix7.InferImpl7.1 adjust_memory7.2 preprocess7.3 load7.4 forwards 8.其它9.拓展之…

【爬虫实例】从B站和某论文网站分析python爬虫的一般编写思路———To someone

问题背景 好久没写爬虫了,前两天友人来问我python能不能爬论文,能不能告诉她爬虫的基本运行原理是什么,跑起来是什么样子。 我一看,论文爬取——爬虫最实用的场景之一,这不拿捏? 于是便尝试现场演示一番。…

【Metaverse系列一】元宇宙的奥秘

你有没有想过逃离闷热的会议室,瞬间移动到马尔代夫的沙滩上开会?开完会,纵身跳入大海和美人鱼捉迷藏。然后一个鲤鱼打挺直冲云霄,进入天宫一号开展科学研究,发现微重力环境下韭菜的长势喜人,而且在特定光照…

科大讯飞版ChatGPT测评:很好很强大

大家好,我是黄海广。 今天我体验到了科大讯飞版本的ChatGPT,这个产品凭借其强大的功能和出色的性能,超出了我对国产大模型的预期。 一、产品简介 这个模型全名叫讯飞星火认知大模型,官方是这么解释这个产品的: “科大讯…

七大语言模型PK,ChatGPT内容基线测评稳居第一

随着ChatGPT的爆火与流行,大型语言模型(LLM)与生成式人工智能(AIGC)不断跃入大众视野,随之也带来了许多内容风险隐患。 近日,知道创宇内容安全专家对互联网上流行的7款大型语言模型进行了全面和…

ChatGPT风靡全球,我们应该为未来感到担心吗?

近期,关于ChatGPT的话题再次引爆全网,不少用户加入到“玩疯了”的阵营中……有赞叹不已的、有表示惊奇的、有展示BUG的,但总体来说,ChatGPT的整体社交评价还是非常向好的。 微软CEO纳德拉就坦言,ChatGPT服务的风靡&…

库克考虑卸任苹果CEO,谁会是下一任接班人?

作者 | Carol 出品 | CSDN(ID:CSDNnews) 十年前,8 月 24 日那天,史蒂夫乔布斯宣布辞去苹果 CEO 一职,正式任命蒂姆库克成为苹果的新掌门人。如今,恰逢库克上任苹果 CEO 十周年。在今年4月份&…

历史上的今天:乔布斯辞去苹果CEO一职;Windows 95 发布

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2022 年 8 月 24 日,14 年前的今天,北京奥运会闭幕式举办,宣告圆满结束,为所有国人打上了一针强心剂。而在科技历史上&am…

最全盘点苹果高管团队 谁有可能成为下一代继任者?

编译|辰辰 出品|网易智能 随着苹果首席执行官蒂姆库克(Tim Cook)已经掌舵10年,他和高级副手们正将更多注意力放在培养公司新一代领导者上。 目前库克管理团队的成员都是在苹果工作20多年,已经赚到数千万美元、年龄在55岁至60岁左右…

行业报告 | AI+制造业赋能,机器视觉开启掘金新大陆(上)

原创 | 文 BFT机器人 01 核心要点 Al制造业赋能,META 发布 SAM 助力机器视觉迎来 GPT 时刻。 机器视觉技术使得工业设备能够“看到”它正在进行的操作并进行快速决策,完整机器视觉系统由硬件软件组成,分别进行成像和图像处理工作。 目前,以“…

2024奇点将至:人类尚未准备好迎接S2F大于100的巨硬资产

奇点将至! “奇点”这个词儿本来是搞人工智能的那帮人从物理学里借用过来唬人的。大意是指所谓AGI通用人工智能降临的那一刻。计算机将在智能上全方位碾压人类。 最近ChatGPT的爆红让无数人产生了错觉,真的彷佛看到AGI近在咫尺。 但是,穿越过…