本文是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

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

  1. 西门子标准报文1常用_基于Snap7使用C#编程访问西门子PLC系列教程(2)-S7协议

    本文是Snap7软件包系列教程的第2篇,我们来介绍下S7协议,包括如下几个主题: 1.S7协议简介 2.S7协议命令简介 3.S7协议通信的角色与模式 1.S7协议简介 S7协议是西门子S7系列PLC ...

  2. php读取西门子plc_基于Socket访问西门子PLC系列教程(二)

    本文是西门子开放式TCP通信的第2篇,上一篇我们讲了使用西门子1200PLC作为TCP服务器的程序编写,可以点击下方链接阅读:[公众号dotNet工控上位机:thinger_swj] 基于Socket ...

  3. 基于Socket访问西门子PLC系列教程(二)

    本文是西门子开放式TCP通信的第2篇,上一篇我们讲了使用西门子1200PLC作为TCP服务器的程序编写,可以点击下方链接阅读:[公众号dotNet工控上位机:thinger_swj] 基于Socket ...

  4. 信捷plc485通信上位机_基于Snap7实现与西门子PLC通信

    如果你对西门子PLC通信或者上位机开发稍微有一点研究的话,应该对Snap7有所耳闻. Snap7是一个基于以太网与西门子S7系列PLC通信的开源库,在世界领域应用很广.但也许是因为资料比较少,而且很多 ...

  5. 西门子smartclient怎么用_西门子200SMART PLC软件各功能怎么用?编程必备!

    这次分享的是关于西门子STEP7- Micro/ WIN SMART软件,让入门PLC的用户更清晰的定位每个功能的应用,快速掌握其中的原理,让其帮助你上手PLC.作为新一代的小型控制器的编程和组态软件 ...

  6. 西门子smartclient怎么用_西门子s7-200smart modbus-tcp通信实例编程详细指导

    西门子s7-200smart modbus-tcp通信实例编程详细指导 2020-11-24 西门子S7-200Modbus-TCP通信例子[]绝密[]NDA[X]公开一. 组网概述本文以 ZKA-4 ...

  7. java android长连接_基于Java Socket的自定义协议,实现Android与服务器的长连接(一)...

    一.基础知识准备 在正式给大家介绍自定义协议之前,我们先对网络传输和协议解析的相关知识点做一个基本的介绍,尽管这些知识点我们在学校里学过,但难免会有所遗忘,这里先做一个简单的介绍,以便对后文的内容理解 ...

  8. 基于arcgis的python编程秘笈第2版_基于ArcGIS的Python编程秘笈(第2版)

    基于ArcGIS的Python编程秘笈(第2版) 译者简介 审阅人简介 1 面向ArcGIS的Python语言基础 1.1 使用IDLE进行Python脚本开发 1.1.1 Python Shell窗 ...

  9. s7200液位控制程序_基于s7-200的液位控制系统系统设计及plc控制程序.doc

    基于s7-200的液位控制系统系统设计及plc控制程序 2015届本科毕业设计(论文) 题 目:基于s7-200的液位控制系统: 系统设计及PLC控制程序 学生姓名: 院(系): 专业班级: 指导教师 ...

最新文章

  1. 如何解决JavaScript中的根查找
  2. python随机生成车牌_Python实现随机生成任意数量车牌号
  3. python新手小项目-推荐:一个适合于Python新手的入门练手项目
  4. 12月16号 双链表
  5. RabbitMQ 四种Exchange
  6. 随机化算法-数值随机化算法
  7. c语言调用子程序的方式,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...
  8. vue2.0+vue-video-player实现hls播放的案例
  9. 计算机科学,大一学生怎样来爱你(文PPT)
  10. java希尔排序的实例,Java 插入排序之希尔排序的实例
  11. CleanWipe:无需密码彻底卸载Symantec(赛门铁克)
  12. 一个挺好用的生成GIF格式图片的小程序
  13. springboot之Result结果类处理
  14. 翻译《有关编程、重构及其他的终极问题?》——13.表格化的格式化
  15. 5种赚钱方式,设计师加薪不用靠老板!
  16. Python之利用marshmallow实现序列化与反序列化
  17. mac 管理 android手机助手,Mac 篇十二:Mac如何更高效的管理安卓手机和iPhone,老机器也可用哦...
  18. SpringDataJPA学习笔记
  19. Cairo图形指南(6)
  20. Vlookup函数和Sumif函数详解

热门文章

  1. python +pyqt 小说下载阅读器 转语音合成 ,基于PyQt5生成图形页面(已打成exe可直接下载使用)
  2. javaWeb 使用线程池+队列解决订单并发问题
  3. iis服务器帝国cms7.5编辑器不能使用解决办法
  4. 基于Android的校园通的开题报告
  5. 电脑桌面便签如何安装
  6. Pragmatic Scala:Create Expressive, Concise, and Scalable Applications (读书笔记)
  7. sath89/oracle-xe-11g
  8. wordpress如何快速搭建商城
  9. 系统封装 ES3使用方法
  10. 爱心 python 词云_Python词云