本文是Snap7软件包系列教程的第4篇,我们来介绍下Snap7Client用于连接S7服务器的五个方法①:
ConnectTo();
SetConnectionType();
SetConnectionParams();
Connect();
Disconnect();
①方法是面向对象编程的概念,是对象的行为,可以理解为面向过程编程中的函数。
1、Snap7Client.ConnectTo()
Snap7Client的ConnectTo()方法用来连接S7服务器(S7 Server),它有三个参数,分别是:Address、Rack和Slot,其中:
Address:字符串类型,要连接的S7服务器的IP地址;
Rack:整数,要连接的S7服务器的机架号;
Slot:整数,要连接S7服务器的槽号;
如下表所示:
名称 | 数据类型 | 说明 |
---|---|---|
Address | 字符串 | 要连接S7服务器的IP地址 |
Rack | 整数 | 要连接的S7服务器的机架号 |
Slot | 整数 | 要连接S7服务器的槽号 |
该方法的返回值为整数,当成功建立连接时返回0;如果返回值为非零整数则代表某种错误,需要查看错误列表来确定具体的错误。
注:不同S7系列CPU和CP模块的Rack/Slot号请参考上一篇文章:《基于Snap7使用C#编程访问西门子PLC系列教程(3)-Snap7Client(建立连接)》
该方法的函数原型如下图所示:
2、Snap7Client.SetConnectionType()
Snap7Client的SetConnectionType()方法用来设置连接的属性,它有一个参数:ConnectionType,为16位无符号整数,取值见下面表格:
ConnectionType | 值 |
---|---|
PG | 0x01,默认值 |
OP | 0x02 |
S7 Basic | 0x03~0x10 |
SetConnectionType()并不是必须要调用的,默认情况下连接的属性为PG(编程器)。如果想要修改连接属性必须在调用ConnectTo方法之前调用SetConnectionType()方法,并设置参数ConnectionType的值。
正常情况下SetConnectionType()方法返回值为0;若返回值为非零整数则表示参数错误。
SetConnectionType()方法函数原型如下图所示:
3、Snap7Client.SetConnectionParams()
当连接LOGO!0BA7时,要使用Snap7Client的SetConnectionParams()方法设置连接参数。该方法包括三个参数:IP地址、本地TSAP和远程TASP;具体见下面的表格:
名称 | 数据类型 | 说明 |
---|---|---|
Address | 字符串 | S7服务器的IP地址 |
LocalTASP | 16位无符号整数 | 本地TSAP |
RemTSAP | 16位无符号整数 | 远程TSAP |
本地TSAP和远程TSAP是对应的。
客户端的本地TSAP是服务器的远程TSAP,客户端的远程TSAP是服务器的本地TSAP;反之亦然;
该方法仅设置用于连接的内部参数,之后还需要调用Snap7Client的Connect()方法。
另外需要注意,调用SetConnectionParams()方法后不能再调用SetConnectionType()方法,因为SetConnectionType()方法会改变远程TSAP的高字节位。
SetConnectionParams()方法的返回值为整数:0表示设置成功,非零值表示参数错误;其函数原型如下图所示:
4、Snap7Client.Connect()
Snap7Client的Connect()方法用于与Snap7服务器建立连接。方法本身不需要任何参数,因为在调用该方法前需要首先调用SetConnectionParams()方法设置内部参数。
函数原型如下图:
该方法返回值为整数:0表示成功建立连接;如果返回值为非零整数则代表某种错误,需要查看错误列表来确定具体的错误。
5、SnapClient.Disconect()
Snap7Client的Disconnect()方法用于断开与Snap7服务器的连接,方法本身不需要任何参数。
该方法返回值为整数:0表示成功断开连接;如果返回值为非零整数则代表某种错误,需要查看错误列表来确定具体的错误。
函数原型如下图:
好了,关于Snap7Client用于连接的相关函数就先介绍到这里。系列教程的下一篇介绍用于IO读取的方法/函数。
我的微信视频号已经开通,分享一些工控小知识,欢迎扫描下方的二维码体验:
发表评论