C#界面通过nettoplcsim与西门子PLC仿真连接

我!!终于!!成功了!!!本踩坑大王终于跳出来了!!!!先放个图纪念一下

         下面详细记录一下如何用C#上位机与西门子S7-1200PLCSIM中进行仿真连接。过程不难,但是我踩了很多坑。

        以下是我整个开发的环境和配置

  • 安装一个以太网环回配适器 这个要视情况安装,由于我的电脑是连接无线网,没有可用的以太网,我之前的网络配置是下图被框上的那部分,在未安装虚拟网卡的时候一直都连接不上。安装之后得以解决~)
    •  教程:Windows10系统添加虚拟网卡(Microsoft Loopback Adapter)的方法_windows虚拟网卡_一个懒鬼的博客-CSDN博客
  • Visual Studio 2019:编写C#界面
    • 本项目中需要配置S7.net, 教程是这个博客的前半部分↓
    • 西门子PLC与C#程序的S7.net通信_qq_20792765的博客-CSDN博客
  • TIA Portal V16:编写梯形图等配置,这个不多说
  • S7-PLCSIMV16:仿真PLC
  • NetToPLCSIM-S7:用于作为PLCSIM与C#之间的媒介,二者无法直接联通
    下载&使用教程:西门子——好用的通讯仿真通讯工具NetToPLCsim_西门子仿真端口_我叫DP的博客-CSDN博客

 如果始终无法联通,可能是以下问题

1.没有安装虚拟网卡,那就按照上面的教程装一个

2.没有将虚拟网卡的地址配置到与PLCSIM同频段


 下面按照上位机开发的思路和顺序,做一个教程

1.查看PLC的地址,并将自己的网口地址与之匹配

PLC的地址在这里:

 配置我们的网口地址:

打开网络和共享中心---更改配适器选项---右键以太网2---属性 

 

2.编写一个C#界面

我只做一个简单的连接操作,所以整个界面非常简单

它的功能就是我点击一下【连接】按钮,如果连接成功将在下面显示一行【PLC成功连接】,如果不成功将显示【PLC未成功连接】。点击【断开连接】,可以实现连接断开

完整代码段:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using S7.Net;namespace YaJiYunDong
{public partial class Form1 : Form{public Form1(){InitializeComponent();}Plc myplc = new Plc(CpuType.S71200, "192.168.1.20", 0, 1);private void button1_Click(object sender, EventArgs e){myplc.Open();if (myplc.IsConnected){label1.Text = "PLC已连接";}else{label1.Text = "PLC连接未成功";}}private void Btn_disconnect_Click(object sender, EventArgs e){myplc.Close();label1.Text = "PLC连接已断开";}}
}

其中比较核心的代码是这些:

 

 

第二部那个橘黄色的框框一定要注意!我在这卡了好久,因为每次配置的都是PLCSIM的地址,总是连接失败

3.配置PLC端 

        在组态好的PLC设备属性中,找到“防护与安全”–>“连接机制”中,勾选“允许来自远程对象的PUT/GET通信访问”;

在这里插入图片描述

 配置好后,编译---启动仿真让 PLCSIM 保持在RUN的状态

4.NetToPLCSIM连接

 

这里选择刚才配置的环回配适器地址

 

这里选择PLCSIM 的地址

 因为我这个是S7-1200,所以slot改成1,然后OK

 

 到这里就成功连接上了~

另外需要注意的是,如果搜索不到PLCSIM的IP地址,重新仿真一下就可以了

也可能在打开NetToPLCSim的时候,会弹出“Port 102 is in use!”的警告,如果遇到这个情况,点击是,之后在将PLCSIM关掉重新启动一下就可以了
在这里插入图片描述

总之,这里遇到问题就把PLC重新仿真一下试试

 5.上位机连接

在此之前要确保仿真PLC在RUN的位置

运行我们的上位机程序,在界面中点击【连接】,显示PLC已连接,则说明成功~

这个小例子比较简单,在这个基础上后续再进行优化~


以下问题在上述规范操作中都可以得到解决:

1. 由于连接方在一段时间后没有正确答复

2.界面提示 “连接未成功”


------------------最后希望大家都能ping通!----------------

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

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

相关文章

C#与西门子PLC通讯

C#与西门子PLC通讯 S7NetPLC设置C#程序 S7Net PLC在工业自动化领域是常用的控制器,一般在和上位机界面通讯时,经常使用组态软件。以西门子PLC为例,上位机可以使用西门子的WINCC。但是,当面对需求比较多样化的需求时,W…

C#使用S7NetPlus以及PLCSIM Advanced V3.0实现西门子PLC仿真通讯

PLCSIM Advanced 简介 PLCSIM Advanced是西门子推出的一款功能强大的仿真软件,目前最新发布的版本为4.0,但鉴于新版本可能存在未知的bug,故本文使用V3.0。 V3.0支持仿真1500PLC及ET 200SP,可实现Socket网络通讯功能,…

西门子PLC与C#程序的S7.net通信

1、导入S7.net通信文件:打开工具->NuGet包管理器->管理解决方案得NuGet程序包,入下图搜索S7,安装S7netplus。 在程序中引用S7.Net文件 建立西门子PLC类 using System; using System.Collections.Generic; using System.Linq; using…

JAVA与西门子S7 PLC通信,方式一:S7connector

背景 在公司项目中,需要用到和PLC进行通讯,经过搜索后查询到使用JAVA与PLC通信两种方式,测试后达到正常读写的目的,于是记录下学习过程。 环境 SpringSpringMVCMybatisPlus / SpringBoot PLC: 西门子 S7-1500/S7-1200(1214C) …

汇川PLC和PLC之间ModebusTCP通讯

目录 一、AM402做主站和H3U通讯 1、Modebus主站中组态配置 2、读从站寄存器配置 3、写从站寄存器配置 4、程序中使用对从站读写操作的寄存器值 (1)I/O映射中地址关联 (2)创建自定义全局变量 (3)程序…

倍福TwinCAT3上位机与PLC通信测试(ADS通信) 包含C#和C++代码

倍福TwinCAT3上位机与PLC通信测试(ADS通信) 包含C#和C代码 倍福TwinCAT3上位机与PLC通信测试(ADS通信) 包含C#和C代码 本次测试需要环境: VS2013,TwinCAT3(本人版本TC31-Full-Setup.3.1.4018.16) 代码:C#代码&…

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

前言 刚接到手一个项目,是开发一款程序,要和PLC有数据交互,如上图,设备发生故障后,PLC会发电报,我们收到电报后把故障显示出来,同时点击解除故障,也会给PLC发送相对应的电报。查了蛮…

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,这个产品凭借其强大的功能和出色的性能,超出了我对国产大模型的预期。 一、产品简介 这个模型全名叫讯飞星火认知大模型,官方是这么解释这个产品的: “科大讯…