C#S7.NET实现西门子PLCDB块数据采集的完整步骤

s7,net,plcdb · 浏览次数 : 179

小编点评

**S7.NET库对西门子PLC DB块数据的读写测试流程** **软件:** - Windows环境下的链路层网络访问的行业标准工具(WinPcap_4_1_3.exe) - SIMATIC_PLCSIM_Advanced_V3_Upd1.exe 西门子PLC编程软件博图 - TIA Portal V15软件 **配置流程:** **1.S7-PLCSIM Advanced V3.0 Upd1配置流程:** - 支持仿真的类型:S7-1500 和 smart200 -通讯模式:Local - 模拟器 IP 地址:模拟 PLC 的 IP 地址 - 配置完成后点击 Start 按钮 **2.TIA Portal V15软件的配置流程:** - 创建新项目 - 添加新设备(S7-1500 CPU 可选) - 右键项目名称(S7TestVer)进入属性窗口 - 勾选“块编译时支持仿真” - 勾选“允许来自远程对象的PUT/GET通信访问” - 检查访问级别,选择该 PLC 的存取等级 - 添加数据块(DB块),命名后点击确定 - 双击DB01块,添加内容,用于后续测试 - 编译并下载参数到模拟 PLC **3.C#上位机的程序测试:** ```csharp // 初始化 S71500 PLC Plc S71500 = new Plc(CpuType.S71500, "192.168.0.1", 0, 1); // 读取数据 if ((bool)S71500.Read("DB1.DBX0.0")) { txb_Bool.Text = "1"; } else { txb_Bool.Text = "0"; } // 写数据 if (txb_Bool.Text == "1") { S71500.Write("DB1.DBX0.0", 1); } else { S71500.Write("DB1.DBX0.0", 0); } ``` **易错点:** - 配置模拟 PLC 的 IP 地址时,请确保正确输入。 - 配置块访问时,选择“优化块访问”。 - 测试过程中,请确保模拟 PLC 的运行正常。

正文

前言

本文介绍了如何使用S7.NET库实现对西门子PLC DB块数据的读写,记录了使用计算机仿真,模拟PLC,自至完成测试的详细流程,并重点介绍了在这个过程中的易错点,供参考。

 

用到的软件:

1.Windows环境下链路层网络访问的行业标准工具(WinPcap_4_1_3.exe)下载链接:https://www.winpcap.org/install/bin/WinPcap_4_1_3.exe

2.模拟西门子PLC的软件(SIMATIC_PLCSIM_Advanced_V3_Upd1.exe)下载链接:https://support.industry.siemens.com/cs/attachments/109772889/SIMATIC_PLCSIM_Advanced_V3.exe
3.西门子PLC编程软件博图,用来编辑DB块等操作,提供测试环境(TIA_Portal_STEP_7_Pro_WINCC_Pro_V15)百度网盘链接:https://pan.baidu.com/s/1O4ndJKFKJKJcMQxLBM7P6Q?pwd=c8ht

提取码:c8ht

下载完后需要激活,可自行百度
软件安装流程:请按上面软件1-3依次安装,可以避开很多问题点。
 
配置流程:
1.S7-PLCSIM Advanced V3.0 Upd1的配置流程:
(1)Advanced V3.0支持仿真的类型只有S7-1500和smart200的PLC,别的型号暂不支持,但是原理一致;
(2)通讯的模式选择Local;
(3)模拟器中的IP地址设定为模拟的PLC的IP地址;
(4)设定完成之后,点击Start按钮;

 (5)模拟PLC正常启动,Active PLC中会显示PLC状态,此时为黄灯长亮(因为没有打开博图软件初始化PLC,初始化之后会变成绿灯长亮),至此PLCSIM Advanced配置完成;

 

2.TIA Portal V15软件的配置流程:

(1)创建新项目

(2)添加新设备(S7-1500的CPU均可)

(3)右键项目名称(S7TestVer)进入属性窗口,在保护中勾选“块编译时支持仿真”;

(4)右键设备名称(PLC_1)进入属性窗口,在 防护与安全 -- 连接机制 中勾选“允许来自远程对象的PUT/GET通信访问”,同时需要检查访问级别,选择该PLC的存取等级;

(5)右键程序块进入添加新块窗口,选择数据块(DB块)确认命名后点击确定;

(5)右键BD01块进入属性窗口,选择属性,取消勾选“优化的块访问”;

(6)双击DB01块,添加内容,用于后续测试;

(7)编译并下载参数到模拟PLC,下载时会提示先搜索PLC,完成后下载参数即可;

 (8)下载完成后,可以看到Active PLC中显示的PLC状态为绿灯,至此PLC配置完成;

3.C#上位机的程序测试:

 1 Plc S71500 = new Plc(CpuType.S71500,"192.168.0.1",0,1);
 2 public Form1()
 3 {
 4     InitializeComponent();
 5 }
 6 
 7 private void btn_Comm_Click(object sender, EventArgs e)
 8 {
 9     if (S71500.IsConnected)
10     {
11         btn_Comm.BackColor = Color.Gray;
12         S71500.Close();
13         btn_Comm.Text = "未建立链接";
14     }
15     else
16     {
17         S71500.Open();
18         btn_Comm.BackColor = Color.Green;
19         btn_Comm.Text = "已连接";
20     }
21 }
22 
23 private void btn_Read_Click(object sender, EventArgs e)
24 {
25     if ((bool)S71500.Read("DB1.DBX0.0"))
26     {
27         txb_Bool.Text = "1";
28     }
29     else
30     {
31         txb_Bool.Text = "0";
32     }
33 }
34 
35 private void btn_Write_Click(object sender, EventArgs e)
36 {
37     if (txb_Bool.Text == "1")
38     {
39         S71500.Write("DB1.DBX0.0", 1);
40     }
41     else
42     {
43         S71500.Write("DB1.DBX0.0", 0);
44     }
45 }

与C#S7.NET实现西门子PLCDB块数据采集的完整步骤相似的内容:

C#S7.NET实现西门子PLCDB块数据采集的完整步骤

前言 本文介绍了如何使用S7.NET库实现对西门子PLC DB块数据的读写,记录了使用计算机仿真,模拟PLC,自至完成测试的详细流程,并重点介绍了在这个过程中的易错点,供参考。 用到的软件: 1.Windows环境下链路层网络访问的行业标准工具(WinPcap_4_1_3.exe)下载链接:http

C语言的简单学习

C语言是编译型语言,先编译再运行,通常用gcc进行编译,于是安装了Ubuntu操作系统。至于编辑器,VS Code也能用,先sudo apt install build-essential gdb,再在VS Code安装C/C++ extension,就可以进行开发了。 C语言程序都是 .c文件结尾

C#数据结构与算法入门教程,值得收藏学习!

前言 最近看到DotNetGuide技术社区交流群有不少小伙伴提问:想要系统化的学习数据结构和算法,不知道该怎么入门,有无好的教程推荐的?,今天大姚给大家推荐2个开源、免费的C#数据结构与算法入门教程,值得收藏学习! 数据结构与算法的作用 数据结构与算法在计算机科学中具有不可替代的地位和作用。通过学

GGTalk 开源即时通讯系统源码剖析之:聊天消息防错漏机制

GGTalk 内部实现了多种机制以确保消息的可靠性(不会错漏消息和重复消息),那么这些机制具体是怎么实现的了?

C#的多线程UI窗体控件显示方案 - 开源研究系列文章

上次编写了《LUAgent服务器端工具》这个应用,然后里面需要新启动一个线程去对文件进行上传到FTP服务器,但是新线程里无法对应用主线程UI的内容进行更改,所以就需要在线程里设置主UI线程里控件信息的方法,于是就有了此博文。此文记录的是一种高级用法。 为了实际的使用,笔者将线程操作放在独立的类当中,

C#/.NET/.NET Core编程技巧练习集(学习,实践干货)

DotNet Exercises介绍 DotNetGuide专栏C#/.NET/.NET Core编程常用语法、算法、技巧、中间件、类库练习集,配套详细的文章教程讲解,助你快速掌握C#/.NET/.NET Core各种编程常用语法、算法、技巧、中间件、类库等等。 GitHub开源地址:https:/

C#/.NET/.NET Core优秀项目和框架2024年6月简报

前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。

C#语言编写的仅有8KB大小的简易贪吃蛇开源游戏

前言 今天大姚给大家分享一款由C#语言编写的仅有8KB大小的简易贪吃蛇开源游戏:SeeSharpSnake。 项目特点 该仓库中的项目文件和脚本可以用多种不同的配置构建相同的游戏,每个配置生成的输出大小也不同。 项目源码运行 F5 运行 SeeSharpSnake项目,查看优秀效果: 构建不同大小版

C#中关于 object,dynamic 一点使用心得

首先说一下使用场景 WebAPI接口入参使用 object和 dynamic 后续解析和处理 1.object和dynamic 区别 在.NET中,object和dynamic也有一些区别: object:object是.NET中的顶级类,所有类都是object的子类。在C#中,您可以使用objec

C#/.NET这些实用的技巧和知识点你都知道吗?

前言 今天大姚给大家分享一些C#/.NET中的实用的技巧和知识点,它们可以帮助我们提升代码质量和编程效率,希望可以帮助到有需要的同学。 .NET使用CsvHelper快速读取和写入CSV文件 本文主要讲解.NET中如何使用CsvHelper这个开源库快速实现CSV文件读取和写入。 https://m