西门子smartclient怎么用_基于Snap7使用C#编程访问西门子PLC系列教程(3)-Snap7Client(建立连接)...

本文是Snap7软件包系列教程的第3篇。

在上一篇文章中,我们介绍了S7通信协议中有三种角色:客户端/服务器/伙伴;有两种通信模式:客户端/服务器(Client/Server)模式和伙伴/伙伴(Partner/Partner)模式,最常见的是客户端/服务器模式。

与S7通信中的角色类似,Snap7软件包中包括三个主要的类①:Snap7Client:S7通信的客户端角色;

Snap7Server:S7通信的服务器角色;

Snap7Partner:S7通信的伙伴角色;

①"类"是面向对象编程中的重要概念,它具有可定义的属性、方法和事件,具有继承性与多态性。类是对象的模板,类的实例就是对象变量。

本文及后续几篇文章都将介绍Snap7Client类,本文主要介绍如何使用Snap7Client与S7系列PLC建立连接,包括如下几个主题:S7连接的参数;

Snap7Client可连接的对象;

S7-1200/1500连接的设置;

1、S7连接的条件

使用S7协议连接S7系列PLC需要明确三个参数:远程IP地址、本地TSAP和远程TSAP;远程IP地址是指要连接的目标PLC的IP地址;

TSAP是"Transport Services Access Point"的缩写,中文翻译为"传输服务访问点"。它是传输层与会话层之间的访问接口,每一个TSAP可以唯一标识一个访问实例。具体来说,在一个传输连接中可能存在多个进程,TASP可以区分不同进程的数据传输,与TCP或UDP协议的端口号(Port)类似,在一些网络应用中可以使用的方式来表示TSAP。TSAP可以是数字或者字符串,在S7协议中,TSAP是一个16位的字。

从Snap7的1.1.0版本开始,为了支持LOGO!和S7-200系列PLC,Snap7Client允许在连接PLC之前先调用SetConnectionParams()方法②来设置本地TSAP和远程TSAP。不过在很多时候,我们使用Snap7Client的ConnectTo方法,该方法只需要给出远程PLC的IP地址、机架号(Rack)和槽号(Slot);

②"方法"是类的函数,调用方法时就会执行该函数。更多内容可以查看“面向对象编程”的资料。

Rack和Slot是Snap7Client连接的关键,不同类型的PLC其Rack和Slot的定义不同,详见下面的列表:

Snap7Client的连接使用"ping"机制。

在尝试与远程PLC建立连接之前,Snap7Client首先ping一下对方的IP地址。如果得到回复,则发起S7连接请求;如果超时没有得到回复,则可以判断对方不在线(未通电或线路故障);由于ping机制的超时是固定的,因此可以节省TCP协议不确定的超时时间,使响应更加快速;

2、Snap7Client可连接的对象

Snap7Client可以连接的对象包括:S7-300/400 CPU;

S7-1200/1500 CPU;

S7-200/ 200 SMART CPU;

LOGO!CPU;

CP343/443;

WinAC;

SINAMICS变频器(比如G120系列);

Snap7Server;

3、S7-1200/1500连接的设置

由于S7-1200/1500系列PLC采用扩展的S7协议,而Snap7Client使用的是"基本"S7协议,因此在连接这类CPU时需要做一些设置,包括:CPU的访问级别必须为"完全访问权限",如下图所示:CPU的"连接机制"中要勾选"允许来自远程对象的PUT/GET通信访问", 如下图所示:对数据块的访问仅限于全局数据块(Global DB),并且需要取消勾选"优化的块访问",如下图所示:

好了,关于Snap7Client的连接条件及相数设置就先介绍这么多。下一期文章我们介绍Snap7Client的三个方法:ConnectTo()、SetConnectionParams()和Disconnect()。

推荐我的新书《西门子S7-200 SMART PLC应用技术——编程、通信、装调、案例》,感兴趣的小伙伴欢迎看下:西门子S7-200 SMART PLC应用技术——编程、通信、装调、案例​www.founderchip.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值