我是靠谱客的博主 真实雪糕,最近开发中收集的这篇文章主要介绍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通!----------------

最后

以上就是真实雪糕为你收集整理的C#界面通过nettoplcsim与西门子PLC仿真连接的全部内容,希望文章能够帮你解决C#界面通过nettoplcsim与西门子PLC仿真连接所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部