C#界面通过nettoplcsim与西门子PLC仿真连接
我!!终于!!成功了!!!本踩坑大王终于跳出来了!!!!先放个图纪念一下
下面详细记录一下如何用C#上位机与西门子S7-1200在PLCSIM中进行仿真连接。过程不难,但是我踩了很多坑。
以下是我整个开发的环境和配置
- 安装一个以太网环回配适器 (这个要视情况安装,由于我的电脑是连接无线网,没有可用的以太网,我之前的网络配置是下图被框上的那部分,在未安装虚拟网卡的时候一直都连接不上。安装之后得以解决~)
-
- 教程: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通!----------------
C#界面通过nettoplcsim与西门子PLC仿真连接相关推荐
- 西门子PLC S7-200smart连接威伦通触摸屏流程
目录 一.准备物料 二.制作通讯线 1.查询端口及端口脚位定义 2.制作通讯线 三.通讯测试连接 1.触摸屏设置及编辑程序 2.PLC编辑程序 ...
- NetToPlcSim_PLC_西门子PLC访问DEMO
一.前言 (1)电脑全仿真实现上位机与仿真PLC间的通信,通过NetToPlcSim桥接本机电脑IP地址与PLCSIM仿真的实际PLC的IP地址,再通过<西门子PLC访问DEMO>测试软件 ...
- 西门子 PLC TCP 通信协议
flexmanager PLC 通信协议 http://www.flexem.cn/Index.html PLC与PC网络通信实验 https://blog.csdn.net/loblab/artic ...
- 信捷plc485通信上位机_基于Snap7实现与西门子PLC通信
如果你对西门子PLC通信或者上位机开发稍微有一点研究的话,应该对Snap7有所耳闻. Snap7是一个基于以太网与西门子S7系列PLC通信的开源库,在世界领域应用很广.但也许是因为资料比较少,而且很多 ...
- 西门子PLC与DGUS Ⅱ屏软硬件连接指南
DGUS应用锦集(七)西门子PLC软硬件连接指南 本文介绍迪文DGUS Ⅱ触摸屏与西门子PLC通过Modbus RTU协议实现通讯的 ...
- 从零搭建本地PLC仿真环境:SIMATIC_PLCSIM_Advanced、Portal、KEPServer、OPCUA客户端工具
背景 近期在为一个工业控制领域的上位机数采项目进行技术预研,苦于手头没有PLC(Programmable Logic Controller,可编程逻辑控制器)硬件设备,为了快速.完整地体验下从 PLC ...
- 西门子PLC的S7协议报文解析说明
我们以S7的1500系列来查看握手和读取.写入[字Word或者位Bit]命令报文 以下报文不做说明时都是十六进制字节. 西门子PLC需要连接成功后发送两次握手命令方可进行读写通信. 西门子PLC的S7 ...
- WINCC与STEP7的仿真连接_过路老熊_新浪博客
一.概述 测试WINCC与西门子PLC的连接可以直接在本机完成,不需要实际PLC 二.连接步骤 1. 将程序下载至PLC-SIM中,并将PLC-SIM中的连接方式选为PLCSIM(TCP/IP),如 ...
- snap7通过NetToPLCsim工具接入模拟西门子PLC S7-1200步骤简介
概述 本文主要是设备通过S7协议接入西门子PLC S7-XXXX系列的开发使用文档,主要包括西门子PLC组态工具博途V15,PLC模拟工具S7-PLCSIM,IP地址映射工具NetToPLCsim等使 ...
最新文章
- 6-spark学习笔记-spark core 数据与存储
- 一文读懂数据库最新技术趋势:TDSQL带你深度纵览VLDB 2019
- 1.怎样定制VC#DataGrid列标题?
- Confluence 6 选择一个外部数据库
- 从“在winform里打开网页功能”引发的问题探究
- Java宣言的时候,JAVA面向对象-对象宣言
- 在 vi 中替换字符串
- 深度学习 机器学习 花书免费下载《Deep Learning》
- 如何快速连接无线Wifi 使用二维码
- Halcon_3D点云筛选,目标轮廓提取,切平面求取目标间隙宽度
- 微信小程序 — 公立医院申请
- 使用VM Ware创建虚拟机
- 李宏毅 Transformer(Decoder部分)
- navicat导入excel文件的步骤以及可能碰到的问题
- 文本分析简历项目收集-----机器学习(仅供参考)
- java微信开发平台_Java微信公众平台开发(1) 接入微信公众平台
- 马云和他的少年阿里 百度云下载
- html鼠标手状态,css鼠标样式
- 【虚幻引擎UE】UE5 简单实现范围计算并绘制圆圈
- 【复杂网络社团结构研究】拉普拉斯矩阵定义及性质详细推导
热门文章
- iis服务器响应上限,IIS6 ASP 页的执行造成响应缓冲区超过其配置限制的解决方法...
- c++——iocp模型
- 开科唯识冲刺创业板:年营收3.7亿 红杉奕信是二股东
- Ubuntu添加用户到docker组用户,免sudo执行
- SpringBoot临时文件目录/data/apps/temp
- 在线文档技术-编辑器篇
- 深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接
- Filter 返回 json 数据
- YOLOv1的损失函数和关键概念详解
- CentOS7mini版给yum更换阿里云仓库