赞
踩
前言:示例所用工具为博途v15+advanced v5.0+s7netplus。
写这个是因为网络上对于plc方面的介绍实在太少了,而且信息都很分散。作为初学者在这里走了太多弯路。所以记录一下。以及中间一些常见的bug和需要注意的地方
由于写的比较细,所以会很长。
直接看这个教程:这是一位大佬微信公众号的教程:直接跟着它一步一步安装即可。值得注意的是。在安装过程中把系统自带的防火墙关掉
如果有装360和电脑管家什么的。也要关掉。最好卸载不然容易出现一些奇奇怪怪的问题。切记!
首先按照教程装好之后会有六个图标:
上面4个不用管,其中TIA Portal V18是博途编程软件(后面简称博途)。S7-plcsim advanced V5.0是仿真软件(用来模拟真的plc)(后面简称仿真软件)
首先打开博途:
创建新项目:项目名自定义
创建项目慢属于正常现象。和电脑关系不大
在启动页面点击》设备与网络 》根据图片所示创建就好。其中勾选打开设备视图表示进入编程页面。在启动页面有一个直接打开设备视图,即便没有创建设备(即cpu)也能直接进去,在里面创建。
创建过程中会让你勾选几个常用的选择 我记得是关于安全方面的。我自己的电脑给关闭了。反正如果只是给c#模拟通讯的话那几个权限全部打开。
创建好之后大概的界面就长这样:这里只介绍c#通讯方面,所以博途软件具体使用就不做阐述
和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]就是第一个值。在后面的起始值双击可以直接设置
以上就是博途软件数据的添加方法。至于具体的使用方法可以去找一下视频教程
这一步比较关键,而且容易出现很多bug
你会发现多了一个虚拟网卡,名称以Siemens开头的。这是仿真软件为你安装的一个虚拟网卡。
本地plc通讯使用这个
右键》属性
勾选第一个。双击第二个
勾选使用下面的ip地址:
其中ip地址推荐使用192.168.xx.dd
xx推荐写不大于100的地址。dd同理。数字过大也可能会出现一些奇奇怪怪的问题
子网掩码255.255.255.0即可。不用改。 设置好之后点击保存
找到 设备和网络》双击2 那个绿色的小点。在下面会有设置ip地址。将ip地址设置的和在虚拟网卡中一致。最后一段比虚拟网卡中大一点
例如虚拟网卡中是192.168.43.a 那么这里最好是192.168.43.a+1 最后一位最好要大一点并且一定不能一致,这里很重要。
点击项目》右键找到属性》点击保护》勾选块编译时支持仿真》点击确定
点击设备》右键属性》常规》保护plc组态设备》取消勾选 先不要点确定
访问级别》 选择完全访问》
连接机制》勾选允许put/get访问》取消安全通信》点击确定
这里就是让c#能连接到我们的plc。
这里再除了勾选put/get访问权限(非常重要),其他的我再打开设备的时候就提过一次。在打开视图的时候能取消的都取消。
找到程序块》数据块》右键属性》常规》取消 优化的块访问 数据库从opc ua可访问 两项
到此博途的设置就结束了
界面大概长这样
首先打开tcp/ip 连接。plc通讯是基于tcp的
数字表示左侧的意思
1:打开tcp/ip连接
2:local表示本地。用虚拟网卡选择这个,如果是用的以太网可以勾选。不过上面的ip地址也要改成以太网的iop地址。不做赘述
3:连接名称 随意写,不重复即可,建议用日期
4:写在博途软件中设置的地址。(这里一定要一致)
5:与上一致
6:表示型号,这里以1500举例。需要和博途软件选择的设备一致
7:开启
这里开始会有问题
绿:正常 黄:等待 红:报错
三个灯 第一个表示:是否正常运行
第二个表示plc有错误
第三个表示电源(仿真中基本不会有问题)
打开之后第一个灯是黄色和绿色都属于正常。
解决方法1:查看虚拟网卡的ip是否与仿真软件设置的一致。如果一致就会报错 。仿真软件的IP需要与博途的ip一致。不能与网卡的IP一致
解决方法2:将授权文件删除。重新授权。选择”网络中的浮动地址“即可。其中已授权文件夹名为“ax nf zz”。需要先删除,具体怎么删除可以百度
推荐使用Everything软件删除 voidtools
解决方法3:删掉360,火绒等安全软件重装。(非常重要)
直到只有第一个灯是亮的。并且不为红色
以上把环境都准备好了。以上没问题即可进入下一步
手动选择设备》点击下载
选择pnie》选择siemens 虚拟网卡》开始搜索
例如:在指定地址未发现设备(检查ip地址是否正确。)
找到两个设备,发现一个不兼容的设备:
解决方案1:打开控制面板》设置小图标》找到设置pg/pc接口
选择serial cable.ppL.1 >下面第三个》点击确定》重新搜索即可
解决方案2:下载工具https://download.csdn.net/download/qq_53217825/88333254
下载之后里面有一个exe文件,安装之后重启即可。安装过程不要改动,一直下一步即可
解决方案3:删掉360,火绒等安全软件重装(只需要重装仿真软件就好)。(非常重要)
上面都操作好了。如果还有问题可以私信或评论。
直道没有bug》点击下载
点击连接
点击装载
点击完成
这个时候仿真软件第一个灯亮绿色
如果是其他情况表示有bug。
跟着以上操作博途软件的设置基本完成。
打开vs。添加一个控制台程序 (这只是一个例子,具体添加任意类型的程序都可)
引入nuget包:S7netplus
根据以下进行连接即可。
- 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#读取数据请查看我另一篇文章:http://t.csdn.cn/92rfL
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。