S7netplus通信开发及西门子S7 PLC设置

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);

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

plc.Open();

启动连接。

plc.IsConnected

确定连接是否成功。

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();

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

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

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

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

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

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

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);

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

float variable = BitConverter.ToSingle(new byte[] { bytes[3], bytes[2], bytes[1], bytes[0]}, 0);
  • 5
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
S7NetPlus通信开发是一种用于西门子S7系列可编程逻辑控制器(PLC)的通信开发工具。它提供了方便快捷的通信接口和功能,使用户能够轻松地实现PLC与其他设备之间的数据交换和通信S7NetPlus支持多种通信协议,包括以太网、串口、Modbus、OPC和Profibus等。它能够与各种不同的设备和系统进行通信,例如上位机、工控机、人机界面以及其他PLC等。用户可以通过配置简单的参数来设置通信方式和通信协议,从而实现与目标设备之间的数据交换。 除了基本的数据交换功能,S7NetPlus还提供了丰富的通信接口和功能。它支持读取和写入PLC的位、字、双字数据,并提供了高效的批量数据传输功能,以提高数据传输速度。此外,它还支持报警机制,能够在通信故障或异常情况下及时发出警报,提醒用户进行处理。 S7NetPlus通信开发工具易于使用,通过简单的编程接口,用户能够快速地将其集成到自己的应用程序中。它提供了友好的API文档和示例代码,帮助用户快速上手。此外,S7NetPlus还具有良好的稳定性和可靠性,能够在长时间运行和大量数据传输的情况下保持高性能。 总之,S7NetPlus通信开发是一种强大而灵活的工具,用于实现西门子S7系列PLC与其他设备之间的数据交换和通信。它的丰富功能和稳定性,使其成为工厂自动化和工业控制领域中不可或缺的工具之一。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值