c#与西门子plc通讯

前言:示例所用工具为博途v15+advanced v5.0+s7netplus。

写这个是因为网络上对于plc方面的介绍实在太少了,而且信息都很分散。作为初学者在这里走了太多弯路。所以记录一下。以及中间一些常见的bug和需要注意的地方

由于写的比较细,所以会很长。

博途 PortalV18 +advanced v5.0 安装   

直接看这个教程:这是一位大佬微信公众号的教程:直接跟着它一步一步安装即可。值得注意的是。在安装过程中把系统自带的防火墙关掉

c#与西门子plc通讯

如果有装360和电脑管家什么的。也要关掉。最好卸载不然容易出现一些奇奇怪怪的问题。切记!

TIA Portal V18软件安装教程

启动博途

首先按照教程装好之后会有六个图标:

c#与西门子plc通讯

上面4个不用管,其中TIA Portal V18是博途编程软件(后面简称博途)。S7-plcsim advanced V5.0是仿真软件(用来模拟真的plc)(后面简称仿真软件)

首先打开博途:

创建新项目:项目名自定义

c#与西门子plc通讯

创建项目慢属于正常现象。和电脑关系不大

在启动页面点击》设备与网络 》根据图片所示创建就好。其中勾选打开设备视图表示进入编程页面。在启动页面有一个直接打开设备视图,即便没有创建设备(即cpu)也能直接进去,在里面创建。

创建过程中会让你勾选几个常用的选择   我记得是关于安全方面的。我自己的电脑给关闭了。反正如果只是给c#模拟通讯的话那几个权限全部打开。

c#与西门子plc通讯

创建好之后大概的界面就长这样:这里只介绍c#通讯方面,所以博途软件具体使用就不做阐述

和c#通讯时主要是读取其中数据块的数据。根据图中步骤直接创建一个数据库即可。名称随意

c#与西门子plc通讯

plc与c#中主要类型介绍:

代码有介绍。其他的都是普通的类型

    //plc中类型与c#类型 bool => Bit
    //Byte => byte
    //word => ushort
    //DWord => uint
    //Int => short
    //DInt => int
    //Real => float
    //LReal => double
    //String => string       //string只能存ascii码
    //DateTimeLong=>datetime
    //s7wstring=>string      //wstring可以存中文   占用字符是string的两倍

直接在界面上设置好值:

其中需要特别说明的是db12  这是他的名字可以随意写。

类型array的意思是  例:Array[0..1] of Int    一个数组,下标从0开始,有两个子项。是int类型

图中db12[0]就是第一个值。在后面的起始值双击可以直接设置

c#与西门子plc通讯

以上就是博途软件数据的添加方法。至于具体的使用方法可以去找一下视频教程

连接仿真

设置博途访问权限

这一步比较关键,而且容易出现很多bug

第一   打开电脑

c#与西门子plc通讯

你会发现多了一个虚拟网卡,名称以Siemens开头的。这是仿真软件为你安装的一个虚拟网卡。

本地plc通讯使用这个

c#与西门子plc通讯

右键》属性

勾选第一个。双击第二个

c#与西门子plc通讯

勾选使用下面的ip地址:

其中ip地址推荐使用192.168.xx.dd

xx推荐写不大于100的地址。dd同理。数字过大也可能会出现一些奇奇怪怪的问题

子网掩码255.255.255.0即可。不用改。     设置好之后点击保存

c#与西门子plc通讯

第二   打开博途软件

找到  设备和网络》双击2   那个绿色的小点。在下面会有设置ip地址。将ip地址设置的和在虚拟网卡中一致。最后一段比虚拟网卡中大一点

例如虚拟网卡中是192.168.43.a            那么这里最好是192.168.43.a+1      最后一位最好要大一点并且一定不能一致,这里很重要。

c#与西门子plc通讯

第三:勾选块支持仿真

点击项目》右键找到属性》点击保护》勾选块编译时支持仿真》点击确定

c#与西门子plc通讯

第四   设置访问权限

点击设备》右键属性》常规》保护plc组态设备》取消勾选      先不要点确定

c#与西门子plc通讯

访问级别》 选择完全访问》

c#与西门子plc通讯

连接机制》勾选允许put/get访问》取消安全通信》点击确定

这里就是让c#能连接到我们的plc。

这里再除了勾选put/get访问权限(非常重要),其他的我再打开设备的时候就提过一次。在打开视图的时候能取消的都取消。

c#与西门子plc通讯

第五  取消数据块访问优化

找到程序块》数据块》右键属性》常规》取消   优化的块访问 数据库从opc ua可访问  两项

到此博途的设置就结束了

c#与西门子plc通讯

 启动仿真软件 advanced  v5

界面大概长这样

首先打开tcp/ip 连接。plc通讯是基于tcp的

数字表示左侧的意思

1:打开tcp/ip连接

2:local表示本地。用虚拟网卡选择这个,如果是用的以太网可以勾选。不过上面的ip地址也要改成以太网的iop地址。不做赘述

3:连接名称  随意写,不重复即可,建议用日期

4:写在博途软件中设置的地址。(这里一定要一致)

5:与上一致

6:表示型号,这里以1500举例。需要和博途软件选择的设备一致

7:开启

c#与西门子plc通讯

启动之后:

这里开始会有问题

绿:正常      黄:等待      红:报错

三个灯  第一个表示:是否正常运行

第二个表示plc有错误

第三个表示电源(仿真中基本不会有问题)

c#与西门子plc通讯

打开之后第一个灯是黄色和绿色都属于正常。

这里容易出现的问题:第二个灯一直不停的闪红灯

解决方法1:查看虚拟网卡的ip是否与仿真软件设置的一致。如果一致就会报错 。仿真软件的IP需要与博途的ip一致。不能与网卡的IP一致

解决方法2:将授权文件删除。重新授权。选择”网络中的浮动地址“即可。其中已授权文件夹名为“ax nf zz”。需要先删除,具体怎么删除可以百度

c#与西门子plc通讯

推荐使用Everything软件删除      voidtools

c#与西门子plc通讯

解决方法3:删掉360,火绒等安全软件重装。(非常重要)

直到只有第一个灯是亮的。并且不为红色

下载仿真

以上把环境都准备好了。以上没问题即可进入下一步

手动选择设备》点击下载

c#与西门子plc通讯

选择pnie》选择siemens 虚拟网卡》开始搜索

c#与西门子plc通讯

这个时候非常容易报错

例如:在指定地址未发现设备(检查ip地址是否正确。)

找到两个设备,发现一个不兼容的设备:

解决方案1:打开控制面板》设置小图标》找到设置pg/pc接口

c#与西门子plc通讯

选择serial cable.ppL.1  >下面第三个》点击确定》重新搜索即可

c#与西门子plc通讯

解决方案2:下载工具https://download.csdn.net/download/qq_53217825/88333254

下载之后里面有一个exe文件,安装之后重启即可。安装过程不要改动,一直下一步即可

解决方案3:删掉360,火绒等安全软件重装(只需要重装仿真软件就好)。(非常重要)

上面都操作好了。如果还有问题可以私信或评论。

下载到设备

直道没有bug》点击下载

c#与西门子plc通讯

点击连接

c#与西门子plc通讯

点击装载

c#与西门子plc通讯

点击完成

c#与西门子plc通讯

这个时候仿真软件第一个灯亮绿色

如果是其他情况表示有bug。

c#与西门子plc通讯

跟着以上操作博途软件的设置基本完成。

c#使用s7netplus通讯

打开vs。添加一个控制台程序     (这只是一个例子,具体添加任意类型的程序都可)

引入nuget包:S7netplus

c#与西门子plc通讯

根据以下进行连接即可。

Plc plc = new Plc(CpuType.S71500, "192.168.43.14" + "", 0, 1);//机架号,插槽号通常为0和1   ip写仿真软件中设置的ip。

plc.Open();//打开plc连接
if (plc.IsConnected)   //判断是否成功
{
    Console.WriteLine("PLC连接成功");
}
plc.Close();//关闭连接

c#与西门子plc通讯

关于c#读取数据请查看我另一篇文章:http://t.csdn.cn/92rfL

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/be4768dfeb.html