技术文章/ ARTICLE

我的位置:首页  >  技术文章  >  西门子S7-1200/1500PLC程序控制SCALANCE网络通讯

西门子S7-1200/1500PLC程序控制SCALANCE网络通讯

更新时间:2026-06-29      浏览次数:178

在工业现场,大量SCALANCE网络设备和各种

类型的PLC一起广泛使用。用户有时候希望通过

PLC程序来读取SCALANCE设备的状态或者控制

SCALANCE设备的行为,以满足特定的需求,

这是可行的。

譬如,对于SCALANCE W,就可以通过PLC来

修改SSID名称,更改信道,强制扫描和漫游、

重启设备等等。当然也可以通过PLC获取AP连接

的客户端列表等诊断信息。

本文以S7-1500 PLC编程修改SCALANCE W

客户端的SSID为例,阐述编程和配置的思路及

要点。用户据此可自行编程,实现更多期望的功

能。

系统架构和基础知

识

系统的参考架构如下图,具有以太网接口的PLC

S7-1200/1500和SCALANCE设备相连。

image.png

该应用中PLC与SCALANCE的数据交换基于SNMP

协议,有必要先对SNMP的基础知识作简要介绍。

SNMP(简单网络管理协议)是用于IP网络管理网

络设备的标准协议,其根据客户机-服务器模型工

作,如下图。

image.png

 

在SNMP架构模型中,网络组件可以分为管理单元和

被管理单元。

管理单元,指网络管理站,在本例中指S7-

1500PLC.其作为SNMP Manager,在通信中角色为

客户端。

被管理单元,指被管理的网络实体,在本例中指

SCALANCE W700 无线客户端。被管理单元具有

MIB(管理信息库)和SNMP Agent,在通信中角

色为服务器。

MIB是SNMP管理器可以调用或修改的所有对象的集

合。MIB由SNMPAgent管理。SNMPAgent是在每

个被管理设备上运行的应用程序。当SNMP Manager

请求时,SNMP Agent可以查询和修改MIB对象。

SNMP Manager向SNMP Agent发送Get命令用于读

取被管设备信息,发送Set命令用于修改设备参数。

MIB对象以树结构组织,由对象标识符

(OID)标识。OID描述了通过分层结构的MIB树到

所需MIB 对象的路径。如下图中所示的OID

1.3.6.1.2.1.1.1是“sysDescr"(系统描述)对象的

路径。

MIB对象以树结构组织,由对象标识符

(OID)标识。OID描述了通过分层结构的MIB树到

所需MIB 对象的路径。如下图中所示的OID

1.3.6.1.2.1.1.1是“sysDescr"(系统描述)对象的

路径。

SNMP基于UDP/IP实现,通用端口号为161,

1、下载S7-1500 PLC SNMP程序库

已经编写好了用于S7-1500的SNMP

程序库,使用该程序库,用户只需要填写正确的

参数即可实现对SCALANCE的参数读写。在如下

网页链接中下载库文件,此处提供了博途V16和

V17的不同版本。

所下载的库文件包括了PLC以太网通信相关的多个应

用程序,SNMP通信是其中之一。

2、在TIA博途中使用下载的库

打开TIA博途中的S7-1500项目,在右侧的“库"--

“全局库"中点击打开全局库按钮,找到解压后的全

局库文件地址,下载的全局库被打开。在本例中打开

的是前述V17版本的全局库,而且本实验环境所用

TIA博途为V18版本,所以打开时自动将该全局库升

级为V18版本。

image.png

打开后可以看到

Libraries_Comm_Controller_V18(如果选择的

是V16版本,则名称可能与此不同),该库中包

含了众多通信相关的程序。选择LSNMP,将其拖

放到左侧PLC程序块目录下,可以看到在PLC的程

序块目录下增加了LSNMP的子目录,子目录下的

程序块就可以被主程序调用去实现读写的功能。

image.png

3、编写主程序

开始具体编程,将LSNMP_Set拖放至主程序中,填

入必要的参数。

image.png

参数excute :在上升沿的时候执行Set命令

参数abort :断开连接的命令

参数community : 用于SNMP Manager 和

SNMP Agent的之间的认证,所以在PLC中赋予

该参数的值要与SCALANCE W700中配置的值一

致。在本例中,是写操作,此处采用的是缺省值

private.

image.png

参数timeout :命令发出后等待回复的时间,超

时报错。

参数connParam :这是关于PLC与SCALANCE设

备之间 UDP 连接的参数,其类型为

LSNMP_typeConnParam.

参数varBinding :这是需要发送或接收数据的组

合,对应于读取或控制SCALANCE 设备变量的具

体参数,其类型为LSNMP_typeBind.

4、LSNMP_typeConnParam

和LSNMP_typeBind详解

LSNMP_typeConnParam和LSNMP_typeBind

这两个数据类型在将LSNMP库拖放至主程序时已自

动添加到PLC数据类型中。

image.png

创建一个新的DB 块SCALANCE_DB来存储

connParam和varBinding这两个接口参数,其类型

及赋值是理解控制程序的关键,下面分别阐述。

类型 LSNMP_typeConnParam

在创建的DB块中定义一个名为ConnnectionPara的

变量,其类型为LSNMP_typeConnParam,这是

PLC与SCALANCE之间UDP连接的参数,展开后如

下图。

image.png

ipAddress : 被管理单元的IP地址,本例中指

SCALANCE W700 的IP地址,此处为

192.168.0.18 .

localPort :本地端口号,可自行定义,但不要使用

常用的缺省的端号。

类型LSNMP_typeVarBind

在DB块中再定义一个名为SSID的变量,其类型为

LSNMP_typeBind,这是需要读取或控制

SCALANCE 设备变量的具体参数,展开后如下图。

image.png

oID,对象ID,字符串类型,对应想要读取或控制的

具体对象。本例中,要设置客户端中SSID的名称,

其

对

应

的

OID

是:‘1.3.6.1.4.1.4329.20.1.1.1.1.27.1.1.2.2.1.2.6.1

type:该OID所对应值的类型。本例中SSID值类型

是字符串,对应值为4。常见数据类型对应关系如

下:

16#02:整型,Integer

16#04: 字符串,String

16#41:计数器,Counter

length :对象值的长度,在本例中,要设定的SSID

是“TEST1234",共8个字符,占8个字节,所以此

处设置为8.

value : 这里存储该OID具体的值,本例中是字符串

“TEST1234"。

5、测试结果

当参数设置正确,在程序中将接口参数execute对应

实参"SetSSID"产生上升沿时,就将客户端的SSID修

改为“TEST234"。

在SCALANCE W700的网页配置页面中,可以看到

SSID已修改。

image.png

扫码加微信

TEL:13816550676

扫码加微信