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# 开发技巧 轻松监控方法执行耗时

前言 MethodTimer.Fody 是一个功能强大的库,可以用于测量 .NET 应用程序中的方法的执行时间。允许你在不修改代码的情况下,自动地测量和记录方法的执行时间。 这个工具是基于.NET的 weaving 技术,通过修改IL(Intermediate Language,中间语言)代码来插入

C#开源、简单易用的Dapper扩展类库 - Dommel

前言 今天大姚给大家分享一个C#开源(MIT License)、免费、简单易用的Dapper扩展类库,帮助.NET开发者使用Dapper的CRUD操作变得更简单:Dommel。 项目特性 Dommel 使用 IDbConnection 接口上的扩展方法为 CRUD 操作提供了便捷的 API。 Dom

C语言指针易混淆知识点总结

指针 定义 指针是一个变量,存储另一个变量的内存地址,它允许直接访问和操作内存中的数据,使得程序能够以更灵活和高效的方式处理数据和内存。 获取变量地址:使用取地址符 &。 访问地址上的数据:使用解引用符 *。 例子1 指针是存储另一个变量地址的变量。通过使用取地址符 & 和解引用符 *,我们可以灵活

C++如何在main函数开始之前(或结束之后)执行一段逻辑?

1. 问题 2. 考察的要点 3. 解决策略 3.1. 方案一:使用GCC的拓展功能 3.2. 方案二:使用全局变量 3.3. 方案三:atexit 4. Demo测试 4.1. 测试代码 4.2. 执行结果 5. 程序异常退出场景 5.1. 存在的问题 5.2. 解决方案 5.2.1. 原理 5.

C#/.NET这些实用的编程技巧你都会了吗?

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

C# 使用模式匹配的好处,因为好用所以推荐~

类型检查和转换:当你需要检查对象是否为特定类型,并且希望在同一时间内将其转换为那个类型时,模式匹配提供了一种更简洁的方式来完成这一任务,避免了使用传统的as和is操作符后还需要进行额外的null检查。 复杂条件逻辑:在处理复杂的条件逻辑时,特别是涉及到多个条件和类型的情况下,使用模式匹配可以使代码更

【C++】使用ort推理yolov10

【C++】使用ort推理yolov10 前言:由于笔者是编导专业,想玩玩yolo模型,搜来搜去全是python,所以在学会之后写一篇文章帮助和笔者同样情况的人 环境 Windows 10 C++17 onnxruntime18.1(DML版本) opencv4.9 visual studio2022

C++使用gnuplot-cpp库绘制图像

最近想要对一些时变的变量进行可视化,搜索来搜索去选择了使用gnuplot这个工具。 sudo apt-get install gnuplot sudo apt-get install gnuplot-x11 # 使其支持linux终端 这样就安装完gnuplot了。接着可以在命令行中键入gnuplo

C++11标准库梳理

shared_future、async、packaged_task、promise、future、atomic、CAS、condition_variable、condition_variable_any、unique_lock、recursive_timed_mutex、this_thread、ha...