当前位置:   article > 正文

S7netplus通信开发及西门子S7 PLC设置_s7netplus说明文档

s7netplus说明文档

PLC设置及S7netplus通信开发

本文主要讲解使用S7netplus通信开发及TIA Portal安装和硬软件配置。本文基于使用西门子s7系列PLC设备,未涉及到使用模拟器仿真PLC。

TIA Portal(Totally Integrated Automation)的安装与修复

1.安装

使用官方下载的TIA_Portal_STEP_7_Pro_WINCC_Adv_V15_1_Upd5安装程序进行安装,按照步骤逐步安装。

2.科学研究

如果手上咱们没有官方的license,可以使用Sim_EKB_Install_2019_12_13程序,针对安装的TIA版本,选择安装对应程序的长密钥。例如安装了S7 professional,选择对应的长密钥:
导入安装软件和包的密钥

3.故障

进行科学研究后若出现无法使用的情况下,可能出现的是License Manager出现故障。

4.修复

若出现故障需要修复或重装License Manager,则需要进行如下步骤操作:
(1)通过程序卸载TIA相关的软件
(2)通常S7,Wincc等相关的软件可以顺利卸载,但是安装文件夹里面的TIAADMIN会无法删除,因为后台一直在启动着TIA Administrator的相关服务。
(3)通过任务管理,分别关闭UMC相关的服务。并在计算机管理里面关闭如下服务:
关闭TIA相关服务
若还有与西门子相关的一些服务(如含关键字:Simatic,Siemens,TIA等),则同样关掉。
(4)手动删除原安装文件夹里面的所有文件,此时可以顺利删除
(5)完成全部删除,重启。此后可以重新安装TIA软件,按照前面1-2步骤重装。

PLC配置与TIA Protal的使用

启动TIA Portal,新建项目,依次进行如下操作:

1.添加设备

从项目树中添加设备,从PLC设备上找到对应型号,添加。
在这里插入图片描述

2.设置IP

在添加的PLC设备,右键找到属性,在以太网地址选项中定义PLC设备的IP地址。
属性

3.修改属性

Profinet接口中的Web服务器访问中勾选启动Web服务。

同时在Web服务器中勾选如下选项:

通过浏览器访问PLC地址,可以看到一个简单的PLC页面:

4.开放权限

为了能够从第三方需要开放权限,通过如下选项获得完全访问权限

5.允许远程对象PUT/GET

连接机制里面选择允许远程对象PUT/GET通信访问

6.配置数据源

PLC有两种数据来源,一种是从端口直接过去数据,一种是通过程序,即程序块定义数据块来源。

PLC变量是从PLC端口直接转发数据,程序块内可以定义程序和数据块,数据块通过自定义的程序确定数据的地址和内容。
在PLC变量中定义需要的数据包括:类型,地址等:

在程序块中添加数据块:

在数据块中定义添加数据类型:

注意:在数据块选择属性,在常规属性反选优化的块访问:

7.下载配置和程序到设备

完成硬软件配置后,需要编译并下载到设备,只有完成下载后设备才能有效。

8.启动设备

启动PLC设备,启动后才可获取设备数据:

S7netplus通信开发

1.新建项目

Visual Studio新建C#项目,在Nuget搜索并安装S7netplus:

2.添加S7.net依赖

项目中引用S7.net,定义Plc对象:

Plc plc = new Plc(CpuType.S71200, "192.168.1.118", 0, 1);
  • 1

其中CpuType是PLC类型;IP是PLC的IP地址;Rack是机架号,默认为0;Slot是机架上的位置号,默认为1。

plc.Open();
  • 1

启动连接。

plc.IsConnected
  • 1

确定连接是否成功。

3.Plc类通过地址访问数据

通过PLC的数据地址访问需要的数据:
数据块访问:地址构成为 数据块号.PLC数据类型+偏移量
例如:DB1.DBD2.0,其中DB1为数据块号;DBD为数据类型,其中的D代表Dword,即32位Uint,W代表Word,即16位Ushort,X代表bit,即1位bit;2.0为偏移量,在数据块中定义的地址:

PLC的数据块原始只有三种数据类型,虽然在TIA Portal中可以定义多种数据类型,如bool,real(即float),int,word(即16bit ushort),byte等等,但在实际传输中所有的数据类型将统一归为bit,word,dword三种类型,在通过字节数据转换转为所需的数据类型。如读取浮点值:

var realVariable = ((uint)plc.Read("DB1.DBD2.0")).ConvertToFloat();
  • 1

PLC变量访问:通过地址访问变量数据,地址形式为TIA Portal变量表里面定义的地址,地址有三种标识符,为I,M,Q,对应的数据类型标识为bit,word,dword,与上面的数据块的类型相同,其中bit类型的地址示例为I0.0,word类型的地址例为QW1,dword类型的地址例为MD2,在开发中的读取方式为:

var variable = (bool)plc.Read("I0.0");
  • 1

直接通过变量表显示的地址即可读取对应端口的变量名。

4.通过数据结构类型读取数据

Plc类中提供第二种读取方式,即:

public object Read(DataType dataType, int db, int startByteAdr, VarType varType, int varCount, byte bitAdr = 0); 
  • 1

dataType为PLC的数据源类型,即DataBlock或Memory等,db为数据块的编号,如DB1.DBW20.3,则db为1,startByteAdr为地址起始位,如DB1.DBW20.3,则startByteAdr为20,varType为数据类型,varCount为读取的数据位长度,bitAdr位地址数据位,如DB1.DBW20.3,则bitAdr为3。
例如:bool db1d1 = (bool)plc.Read(DataType.DataBlock, 1, 20, VarType.Bit, 1, 3);
则读取对应的地址为DB1.DBW20.3的数据。

5.读取PLC数组

读取方式为:

var bytes = (byte[])plc.ReadBytes(DataType.DataBlock, 1, 2, 4);
  • 1

数据源类型为DataBlock,数据块编号为1,偏移量为2,读取数据长度为4。所有类型的数据将通过字节数组的形式进行传输,以32位float为例,则传输4长度字节数组,数组的数据构成顺序与C#的对应数据类型以数组方式构成的顺序相反,如:

float variable = BitConverter.ToSingle(new byte[] { bytes[3], bytes[2], bytes[1], bytes[0]}, 0);
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/290062
推荐阅读
相关标签
  

闽ICP备14008679号