使用SFC51系统功能诊断Profinet网络
作者:华闰祺 徐海峰 计正寅 发布时间:2014/6/25 14:24:35

摘要:利用S7 PLC程序库中的SFC51系统功能,诊断Profinet网络,分析网络节点状态,实现现场实时监控与诊断。

关键词:SFC51PLC;现场总线;程序结构  

 

 

1 Profinet网络

Profinet Profibus 国际组织推出,是新一代基于工业以太网技术的自动化总线标准。Profinet 提供了一个优化的、基于以太网第二层(Layer 2)的实时通信通道,极大地减少了数据在通信栈中的处理时间。Profinet 实时通信(RT)的典型响应时间为5~10ms

 

2 西门子S7 PLC程序架构

西门子S7 PLC用户程序和所需的数据放置在块中,使程序部件标准化、用户程序结构化,可以简化程序组织,使程序易于修改、查错和调试。块结构显著地增加了PLC程序的组织透明性、可理解性和易维护性。具体程序结构见表1

1 S7 PLC程序结构

简要描述

组织块(OB

操作系统与用户程序的接口,决定用户程序的结构。

系统功能块(SFB

集成在CPU模块中,通过SFB调用一些重要的系统功能,有存储区。

系统功能(SFC

集成在CPU模块中,通过SFC调用一些重要的系统功能,无存储区。

功能块(FB

用户编写的包含经常使用的功能的子程序,有存储区。

功能(FC

用户编写的包含经常使用的功能的子程序,无存储区。

背景数据块(DI

调用FBSFB时用于传递参数的数据块,在编译中自动生成数据。

共享数据块(DB

存储用户数据的数据区域,供所有的块共用。

系统功能块和系统功能是为用户提供的已经编好程序的块,可以调用不能修改,不占用户程序空间。SFB有存储功能,其变量保存在指定给它的背景数据块中。

 

3 SFC51系统功能

SFC 51RDSYSST”系统功能用于读取“系统状态列表”(SSL)、部分列表或CPUSSL列表摘录。对于Profinet IO,这些SSL包含了I/O模块、Profinet IO主站系统或实际控制器的状态信息。在一个中断或启动OB中使用SSL ID时,必须注意SFC仅能同步执行。

PN通信部分列表是虚拟列表,只是在有请求时由CPU的操作系统创建。虚拟列表来自CPU内部的PN IO控制器的缓冲区,缓冲区由控制器的启动和ALARM信息进行维护和刷新。

SFC51的系统状态列表(SSL)用于描述可编程逻辑控制器的当前状态。SSL的内容只能通过系统功能进行读取,而不能修改。部分列表是虚拟列表,只是在有特殊请求时由CPU的操作系统所创建。常用在Profinei IO诊断上的SSL_ID如表2所示。

2 SSL_ID内容

SSL_IDw#16#

部分列表

PROFINET

INDEX

W#16#

0C91

PROFINET接口模块(集成的或外部的)上的模块状态信息

逻辑基地址,输出模块bit15=1

0D91

PROFIENT中的所有模块的模块状态信息

Bit010:站号,Bit1114PN IO系统总线号的后两位,Bit15:1

0094

PROFINET接口模块(集成的或外部的)上的模块预期信息

100-115PN IO系统总线号

0294

读取实际的站点是否存在

同上

0694

读取实际的站点是否出错

同上

0794

读取实际的站点维护状态

同上

0C96

PROFINET中的所有模块的模块状态信息

逻辑基地址,输出模块Bit15=1

在调试中,根据具体需要,选择要用的SSL_ID。要注意的是,SFC 51只能获得设备的状态信息,但不能获得具体的故障原因信息。

 

4 编程与调试

在主程序OB1中调用SFC 51(程序如图1所示),设置好各个参数即可完成对PROFINET网络诊断的功能。

1 OB1中调用SFC51

各参数具体意义:

1REQ:使能位,为1时启动处理。

2SSL_ID:要读取的系统状态列表或部分列表的SSL_ID。程序中用的是0294,表示读取所有站点是否存在。SSL_ID的选择是诊断中的关键,根据不同的ID可以读取不同的信息。

3INDEX:部分列表中对象的类型或边号。程序中的16进制64表示十进制的100,为Profinet网络总线的序号。INDEX的值与选择的SSL_ID有关,具体的信息可以点

击帮助查询。

4RET_VAL:如果执行SFC出错,则RET_VAL参数将包含出错代码。可以根据其所报的错误代码,到帮助中查阅具体说明。

5BUSY:为“1”表示尚未完成读取。

6SSL_HEADER:一个结构体,在DB80里的定义如图2所示。其中,LENTHERSSL列表或SSL部分列表的数据记录的长度。

2 SSL_HEADER定义

7DRSSL列表或SSL部分列表读取的目标区域(读出的系统状态存储的数据区域,

其大小为SSL_HEADERLENTHERN_DR的乘积大小)。

3 测试结果

测试结果如图3所示,DB80.DBB62#1111_1111。其中Bit0表示组信息,如果

1,表示至少有一个IO设备与IO控制器进行通信,如果为0,表示IO站点全部丢失。Bit1~Bit7表示设备号1~7IO设备的状态,1表示IO设备存在,0表示IO设备丢站。其它Bit和高字节中的Bit依次类推,表示对应IO设备的状态。

参考文献

[1]宋德玉 可编程控制器原理及应用系统设计[M] . 北京:冶金工业出版社,1999

[2]廖常初.S7-30/400 PLC应用技术[M].北京:机械工业出版社,2005

[3] 陈忠华.编程控制器与工业自动化系统.机械工业出版社[北京].北京:2006

[4]许立梓,程良伦.工业控制机及其网络控制系统[北京].北京:机械工业出版社,2005

 

 

作者简介:

华闰祺(1984-)、硕士,西门子自动化认证工程师,研究方向为电气自动化及过程控制、电气设计、数据采集与监测系统等。

收稿日期:2013-12-16