首页 > 编程语言 >C#S7.NET实现西门子PLCDB块数据采集的完整步骤

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

时间:2024-04-23 15:33:24浏览次数:35  
标签:S71500 PLCDB C# S7 PLC Comm btn Advanced

前言

本文介绍了如何使用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)百度网盘下载链接:下载完后需要激活,可自行百度 软件安装流程:请按上面软件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 }

标签:S71500,PLCDB,C#,S7,PLC,Comm,btn,Advanced
From: https://www.cnblogs.com/Jerry9521/p/18152715

相关文章

  • docker - [07] 部署ES+Kibana
    思考问题:以后在Tomcat部署项目,如果每次都要进入容器会十分麻烦,是否可以在容器外部提供一个映射路径,webapps,在外部放置项目,自动同步到容器内部? 一、启动esdockerrun-d--nameelasticsearch-p9200:9200-p9300:9300-e"discovery.type=single-node"elasticsearch:7.6.......
  • list all possible combination of group separator and decimal separator by iterat
    一共有7种子组合01[,2C][.2E]en-US02[C2A0][,2C]fr-FR03[.2E][,2C]da-DK04[’E28099][.2E]de-CH05[C2A0][.2E]tn-BW06[,2C][/2F]fa-IR07[’E28099][,2C]wae-CHvarlist=CultureInfo.GetCultures(CultureTypes.AllCultures);Dictionary<string,List<str......
  • easyExcel
    一、导入1、单个sheet页写法一(使用监听器)://导入接口@GetMappingpublicvoidreadExcel(@RequestParam("file")MultipartFilefile)throwsIOException{InputStreaminputStream=file.getInputStream();EasyExcel.read(inputStream)......
  • 题解 CF1743F【Intersection and Union】
    postedon2022-10-2119:23:54|under题解|sourceproblem给定\(n\)个集合\(S_i\),以\(l_i,r_i\)的形式给出,集合的元素就是\(\{x|x\in[l_i,r_i]\cap\mathbb{N}\}\)。有三种集合间的二元运算,分别是交(\(\cap\))、并(\(\cup\))、对称差(\(\oplus\))。其中对称差(\(A\oplusB......
  • window10安装insightface、onnxruntime-gpu、视频换脸
    1.https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html#requirements2.下载cuda_12.2.0_536.25_windows3.下载cudnncudnn-windows-x86_64-8.5.0.96_cuda11-archive4.condacreate-nonnx_testpython=3.105.根据官方文档说明cuda12.x的版本安装o......
  • 如何将Docker中GitLab数据备份到宿主Linux上
    一宿主机准备存放备份文件的目录建议以年月日进行命名使用putty.exe或者PowerShell登录远程服务器cdshare(如果没有当前目录请创建该共享目录)mkdir20220930(在共享目录下创建备份文件夹)二进入Docker容器内部备份数据1.执行命令sudodockerexec-itgitlab/bin/......
  • docker compose 部署MetaBase,非常好用的BI工具
    docker-compose部署MetabaseMetabase官网:MetaBase部署步骤docker-compose文件准备docker-compose.ymlversion:'3.9'services:metabase:image:metabase/metabase:latestcontainer_name:metabasehostname:metabasevolumes:-/dev/ur......
  • docker虚拟化(一)
    常见的虚拟化有两种:kvm虚拟化和docker容器虚拟化kvm和vmware是类似的,kvm用于linux平台,vmware用于windows平台kvm叫做硬件级服务器虚拟化,虚拟物理服务器的。kvm虚拟化的隔离级别是硬件级的,遵循完整的网络协议和三次握手规则kvm优点:安全性高     缺点:启动时间和真实的操作......
  • JTCR-java.util 更多实用类-18
    BitSetBitSet类是用于存放二进制位值的布尔数组,数组大小按需增加。构造器为BitSet();//指定初始化数组大小BitSet(intsize);publicclassBitSetDemo{//bit1的值//{0,2,4,6,8,10,12,14}//bit2的值//{1,2,3,4,6,7,8,9,11,12,......
  • C# 将DataTable 导出 CSV
    完整代码publicstaticbooldataTableToCsv(DataTabletable,stringfile){try{stringtitle="";FileStreamfs=newFileStream(file,FileMode.OpenOrCreate);//File......