首页 理论教育 基于SFC13、SFC51、FC10、FB10和FC3的故障诊断方法

基于SFC13、SFC51、FC10、FB10和FC3的故障诊断方法

时间:2023-06-23 理论教育 版权反馈
【摘要】:丙烯-乙烯嵌段共聚物中乙烯含量一般在5%~20%范围内。表1-64 丙烯-乙烯嵌段共聚物的物理力学性能①3mmV型缺口。表1-65 嵌段共聚物与无规共聚物的性能比较图12-72 数组AA②当DTYPE=2时,表示读取的单个站的当前诊断信息。此外,还有一些其他的诊断方法,如使用FB126和FC125诊断,请读者自行参考相关资料。

基于SFC13、SFC51、FC10、FB10和FC3的故障诊断方法

1.用SFC13进行故障诊断

SFC13是STEP7中专用的诊断指令,具有强大的诊断功能。

以下用一个例子介绍SFC13的应用。先进行如图12-44所示硬件组态

双击图12-44所示的从站模块IM153-1,弹出的界面可以看到从站的诊断地址1022(就是16#03FE),如图12-45所示。在DB82中创建数组,如图12-46所示。

978-7-111-58358-5-Chapter12-60.jpg

图12-44 硬件组态

978-7-111-58358-5-Chapter12-61.jpg

图12-45 DP从站属性

在OB82中编写程序,如图12-47所示。

创建并监控变量表如图12-48所示,以下解读故障含义。

如未编写如图12-47所示的程序,单击如图12-49中的“十六进制格式”按钮,弹出从站信息,此信息与变量表中的信息的含义是相同的。

在解读十六进制代码的含义前,须知:这些代码和不同的从站设备是相关的,读者应查阅相关手册,得出代码表达的含义。本例使用的是ET-200M,所以读者要查阅ET-200M手册。以下给出部分手册查阅到的信息。ET200M的诊断数据结构见表12-10。

978-7-111-58358-5-Chapter12-62.jpg

图12-46 创建数组

978-7-111-58358-5-Chapter12-63.jpg

图12-47 程序

978-7-111-58358-5-Chapter12-64.jpg

图12-48 变量表

12-10 ET200M的诊断数据结构

978-7-111-58358-5-Chapter12-65.jpg

站状态1各位为1的意义见表12-11。

978-7-111-58358-5-Chapter12-66.jpg

图12-49 故障代码

12-11 站状态1各位为1的意义

978-7-111-58358-5-Chapter12-67.jpg

站状态2各位为1的意义见表12-12。

12-12 站状态2各位为1的意义

978-7-111-58358-5-Chapter12-68.jpg

站状态3一般为16#00。

如图12-50所示,第0个字节16#00、第1个字节16#04和第2个字节16#00表示无故障,第3个字节16#02表示主站地址是2,第4、5个字节16#418B是制造商的ID,这个代号可以在“模块信息”中看到。

978-7-111-58358-5-Chapter12-69.jpg

图12-50 故障代码

2.用SFC51进行故障诊断

系统功能SFC51“RDSYSST”(读取系统状态)可以读取系统状态列表或部分系统状态列表。用读取的信息进行故障诊断。

(1)系统状态列表(SSL)介绍

1)系统状态列表(SSL)的作用。系统状态列表(SSL)用于描述PLC的当前状态。SSL的内容只能通过系统功能进行读取,而不能修改。换言之,部分列表是虚拟列表,只在有特殊请求时由CPU的操作系统所创建。

系统功能SFC51“RDSYSST”用于读取“系统状态列表”、部分列表或CPU的SSL列表摘录。对于PROFINETIO,这些SSL包含了I/O模块、PROFINET IO主站系统或实际控制器的状态信息。当选择所用的、特别是在一个中断或起动OB中使用的SSL_ID时,必须注意SFC仅能同步执行。如果执行SFC之后,Busy位激活,表明几个循环周期执行一次SFC,数据还没有完全读出,因此数据是无效的。接收到的系统状态列表数据记录包括了诊断PROFINETIO设备上的信息概览。

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

2)局部系统状态列表(SSL)的结构。局部系统状态列表(SSL)由报头和数据记录组成。报头由局部SSL的标识符SSL_ID、索引INDEX、包含局部SSL中的数据记录的字长度和数据记录的个数组成。局部SSL的标识符SSL_ID占一个字(16位),它由局部SSL编号(第0~7位)、局部SSL摘录号(第8~11位)和模块类型(第12~15位)组成,如图12-51所示。

978-7-111-58358-5-Chapter12-70.jpg

图12-51 局部SSL的标识符SSL_ID

SSL_ID的模块类型占高四位,主要读取模块的类型,如果读取到的二进制数据为2#0000、2#0100、2#1000和2#1100,则分别对应的模块类型为CPU模块、接口模块IM、功能模块FM和通信模块CP。

某些局部SSL或者它的摘录需要一个对象类型标识符或者一个对象号,此时必须使用索引INDEX。通过局部SSL的摘录号,可以指定要读取局部列表的哪一个子集。部分SSL_ID列表和INDEX的对应关系见表12-13。

12-13 部分SSL_ID列表和INDEX的对应关系

978-7-111-58358-5-Chapter12-71.jpg

(2)SFC51指令介绍

读取“系统状态列表(SFC51)指令比较难理解,其含义见表12-14。

12-14 读取系统状态列表(SFC51)指令和参数

978-7-111-58358-5-Chapter12-72.jpg

要理解这条指令,必须对照表12-13,或者查看帮助。例如,当SZL_ID=16#0694和INDEX为PROFINETIO系统总线号(取值范围是100~115,如图12-53中为100)配合时,读取的信息是IO控制器系统的中央机架/站中的扩展单元的诊断状态。有时,SZL_ID的数值与INDEX数值无关,例如当SZL_ID=16#0391时,读取的信息是所有无法获得的模块的状态信息,不需要指定INDEX数值,即与INDEX数值无关。

SFC51的SZL_HEADER的数据类型是STRUCT(结构),必须在调用SFC51的组织块中创建结构。创建的方法是在OB块的局部变量的最下方生成临时变量SZL_HEADER,其数据类型为STRUCT。本例是在OB1中创建,局部变量表的结构如图12-52所示。SZL_HEADER中有两个元素,分别为LENTHDR和N_DR,其数据类型为WORD(字)。LENTHDR是读取的SSL或者SSL的数据记录的长度,N_DR是读取的数据记录的编号。

978-7-111-58358-5-Chapter12-73.jpg

图12-52 局部变量表的结构

(3)SFC51的应用举例

【例12-5】某控制系统采用PROFINET通信,其硬件组态如图12-53所示,请用SFC51指令读取PROFINETIO的故障信息。

978-7-111-58358-5-Chapter12-74.jpg

图12-53 系统硬件组态

1)先创建共享数据块DB1,用于存储故障信息。

2)再在OB1中编写如图12-54所示的梯形图程序,注意编写程序之前,需要创建如图12-52所示的结构SZL_HEADER,否则编写的程序会报错。

注意本例的INDEX=16#64就是十进制的100,也就是如图12-53中PROFINETIO系统总线号,理解这点十分重要。

3)创建变量表进行监控,如图12-55所示。MW6中是数据记录的长度,监控为258,MW6为数据记录个数,监控为1。MW10=16#0294是SSL_ID。

对于DB1.DBB6为2#0000_0011,其中bit0表示组信息,如果为1,表示至少有一个IO设备与IO控制器进行通信;如果为0,表示IO站点全部丢失。Bit1~Bit5表示设备号1~5的IO设备的状态,1表示IO设备存在;0表示IO设备丢站。其他的高字节中的位(Bit)的含义依次类推,表示对应IO设备的状态。

978-7-111-58358-5-Chapter12-75.jpg

图12-54 梯形图

978-7-111-58358-5-Chapter12-76.jpg

图12-55 变量表监控

4)对数据块DB1进行监控,如图12-56所示,同样可以解读出设备的通信状态。

3.用FC10进行故障诊断

(1)FC10(AG_CNTRL)的功能

978-7-111-58358-5-Chapter12-77.jpg

图12-56 数据块DB1监控

在故障诊断时,可以使用FC10(AG_CNTRL)程序块对连接进行诊断。具体如下:

1)读出连接信息。根据状态信息,可以确定所有或单个通信模块CP连接是否有用。

2)复位已组态的连接。可以复位个别或所有通信模块CP的连接。终止活动连接,并重新建立连接。

(2)FC10(AG_CNTRL)参数简介

FC10(AG_CNTRL)的指令和参数见表12-15。

12-15 FC10(AG_CNTRL)的指令和参数

978-7-111-58358-5-Chapter12-78.jpg

(3)FC10(AG_CNTRL)的应用举例

【例12-6】某控制系统采用工业以太网通信,其网络组态如图12-57所示,请用FC10指令读取通信反馈信息。

硬件配置和网络组态不再赘述,前面章节已经讲解。

978-7-111-58358-5-Chapter12-79.jpg

图12-57 网络组态图

1)客户端是S7-400,客户端的程序如图12-58所示。

2)编写服务器端梯形图程序,如图12-59所示。

978-7-111-58358-5-Chapter12-80.jpg

图12-58 客户端梯形图

978-7-111-58358-5-Chapter12-81.jpg

图12-59 服务器端梯形图

3)在客户端的“块”中创建变量表;在变量表中监控反馈信息。

①使M10.0=1,激活通信状态,使MW2(CMD)=16#0001。反馈信息读取到MD20中,如图12-60所示。当CMD=1时,反馈值的低16位有效,其各位含义见表12-16。

978-7-111-58358-5-Chapter12-82.jpg

图12-60 用变量表监控

12-16 CMD=1反馈值的低16位含义

978-7-111-58358-5-Chapter12-83.jpg

如图12-60所示,反馈信息为2#0000_0000_0000_0000_0111_0000_0001_0111。以下根据表12-4解释其含义。

●位0是1,表示为发送和接收作业保留的连接。

●位1是1,表示正在执行发送作业。

●位2、3是01,表示上次发送作业成功完成。(www.xing528.com)

●位4是0,表示无接收连接。

●位5是0,表示没有执行接收作业。

●位6、7是01,表示上次接收作业成功完成。

●位12、13是11,表示处于连接状态。

●位14是1,表示CP处于RUN状态。

●位15是0,表示FC10尚未复位连接或复位ID已清除。

综合以上信息可知:以太网处于连接状态,CP运行正常,发送数据正常。

②使M10.0=1,激活通信状态,使MW2(CMD)=16#0002。反馈信息读取到MD20中,如图12-61所示。当CMD=2时,反馈值的低16位有效。

当CMD=16#0000_0001时,表示成功地将复位作业传送给CP。触发连接中止及后续的连接建立。

当CMD=16#0000_0002时,表示无法将复位作业传送给CP,原因是CP上的服务尚未起动(例如,CP处于STOP状态)。

如图12-53所示,反馈信息为2#0000_0000_0000_0000_0000_0000_0000_0001=16#0000_0001。表示成功地将复位作业传送给CP。

③使M10.0=1,激活通信状态,使MW2(CMD)=16#0003,获取所有的连接状态信息,两个双字反馈值有效。反馈信息读取到MD20和MD24中,如图12-62所示。当为1时,表示连接,为0时表示连接终止或者没有组态。图12-62中反馈信息为2#0000_0000_0000_0000_0000_0000_0000_0000,表示都未连接。如果为反馈信息为2#0000_0000_0000_0000_0000_0000_0000_0111,则表示ID号为1、2和3的处于连接状态。

978-7-111-58358-5-Chapter12-84.jpg

图12-61 用变量表监控

978-7-111-58358-5-Chapter12-85.jpg

图12-62 用变量表监控

4.用FB10进行故障诊断

使用AG_CNTEX(FB10)程序块可以对连接进行诊断,并可使用Ping命令通过网络对设备进行寻址。必要时,可以使用AG_CNTEX重新初始化连接建立过程。

(1)FB10的功能

AG_CNTRL(FC10)和与程序块AG_CNTEX(FB10)相比,程序块AG_CNTEX可提供更多功能。AG_CNTEX包含了AG_CNTRL的所有功能,可以在用户程序中以相同方式使用这些功能。其具体功能如下:

1)读出连接信息。根据状态信息,可以确定复位所有或单个CP连接是否有用。

2)复位已组态的连接。可以复位CP的个别或所有连接。

3)终止活动连接,并重新建立连接。

4)读出CP中组态的连接类型(相对于AG_CNTRL的扩展功能)。

5)发送PING命令(相对于AG_CNTRL的扩展功能)。

6)可以检查网络中的特定节点是否可到达。

(2)FB10(AG_CNTEX)参数简介

FB10(AG_CNTEX)的指令参数含义见表12-17。

12-17 FB10(AG_CNTEX)的指令和参数

978-7-111-58358-5-Chapter12-86.jpg

PING参数引用数据块,其数据结构见表12-18。

12-18 PING参数引用数据块的数据结构

978-7-111-58358-5-Chapter12-87.jpg

(3)FB10指令的应用举例

【例12-7】某控制系统采用工业以太网通信,其网络组态如图12-57所示,请用FB10指令读取通信反馈信息,并用PING功能检查网络是否正常连接。

FB10指令读取通信反馈信息方法与FC10读取反馈信息的方法完全相同,在此不详细介绍,仅将反馈信息列出。

1)创建自定义数据类型UDT1,如图12-63所示,其符号名为“PingA”。

978-7-111-58358-5-Chapter12-88.jpg

图12-63 创建UDT1

2)创建数据块DB1,其符号名为“Ping”,创建3个变量,分别是Ping1、Ping2和Ping3,其数据类型为前面创建的UDT1,即“PingA”,如图12-64所示。单击程序编辑器菜单中的“视图”→“数据视图”,弹出如图12-65所示的界面。

注意:不创建UDT1也可行,但在创建数据块时就比较麻烦,如果以太网连接的站点越多,使用自定义数据类型就越方便。

在图12-65中,有三个IP地址分别是192.168.0.3(192的十六进制是C0,存储在Ping1.Ping[0]中;168的十六进制是A8,存储在Ping1.Ping[1]中)、192.168.0.4和192.168.0.5。

978-7-111-58358-5-Chapter12-89.jpg

图12-64 创建DB1(声明视图)

978-7-111-58358-5-Chapter12-90.jpg

图12-65 DB1的数据视图

3)客户端是S7-400PLC,客户端的程序如图12-66所示。

4)编写服务器端梯形图程序,如图12-67所示。

5)在客户端的“块”中,创建变量表,在变量表中,监控反馈信息。

5.用FC3对CP342-5的从站进行故障诊断

(1)FC3(DP_DIAG)的功能

程序块FC3(DP_DIAG)用于请求诊断信息,通过指定一个站地址,还可以为一个指定的从站请求诊断数据。为了将诊断数据传送到CPU,应该在CPU中保留一个内存区域,然后在调用中指定该区域。该内存区域可以是一个数据块区或一个位存储区。还可以在作业中指定可用内存区域的最大长度。

FC3(DP_DIAG)只有在DP主站模式中才起作用,从站模式无效。其具体功能如下:

978-7-111-58358-5-Chapter12-91.jpg

图12-66 客户端梯形图

978-7-111-58358-5-Chapter12-92.jpg

图12-67 服务器端梯形图

1)请求DP站列表。

2)请求DP诊断列表。

3)请求DP单个状态。

4)非周期性地读取DP从站的输入/输出数据。

5)读取较早的DP单个诊断信息。

6)读取DP状态。

7)读取用于PLC/CP停止的DP模式。

8)读取DP从站的当前状态。

(2)FC3(DP_DIAG)指令参数

FC3(DP_DIAG)的指令参数含义见表12-19。

12-19 FC3(DP_DIAG)的指令和参数

978-7-111-58358-5-Chapter12-93.jpg

(续)

978-7-111-58358-5-Chapter12-94.jpg

(3)FC3指令的应用举例

【例12-8】某控制系统采用PROFIBUS-DP通信,其硬件组态如图12-68所示,请用FC3指令读取通信诊断信息。

978-7-111-58358-5-Chapter12-95.jpg

图12-68 硬件组态图

1)创建一个项目,硬件组态如图12-68所示,具体操作步骤参考8.4.6(CP342-5PROFIBUS-DP作主站的通信)。

2)创建一个数组。在创建数组前,先创建共享数据块DB1,再在数据块中创建一个数组(包含16个元素,数据类型为字节),如图12-69所示。

978-7-111-58358-5-Chapter12-96.jpg

图12-69 数组

3)编写梯形图程序如图12-70所示。

978-7-111-58358-5-Chapter12-97.jpg

图12-70 梯形图

M80.2为0表示不存在新的诊断数据,当M80.2为1表示有新的诊断数据。

①当DTYPE(MB50)=0时,表示读取的数据为DP站列表,站地址的范围是0~127。

DP站的列表的地址用FC3的输入参数DIAG设置,长度为16 B(128位),每一位对应一个DP地址,即对应于一个DP从站,如图12-71所示。

978-7-111-58358-5-Chapter12-98.jpg

图12-71 DP站列表中从站状态位

状态位为0的含义有三种情况:从站处于周期性传输状态、没有使用该站以及该从站输入/输出数据的长度组态为0。

状态位为1的含义是从站没有处于周期性传输状态。

当DTYPE(MB50)=0时,数据块中的数组AA中存储的数据就是位状态,使数组处于监控状态,如图12-72所示。数字AA的第一个字节AA[0]=16#10=2#0001_0000,对应的就是3号站,其含义是3号站没有处于周期性传输状态。可能的原因是3号站掉电或者电缆断开等原因。假如,AA[0]=16#18=2#0001_1000,表示的含义是3、4号站没有处于周期性传输状态。

978-7-111-58358-5-Chapter12-99.jpg

图12-72 数组AA

②当DTYPE(MB50)=2时,表示读取的单个站的当前诊断信息。使数组AA处于监控状态,如图12-73所示。

前3个字节(AA[0]~AA[2])表示站的状态;第4个字节表示主站地址,本例为16#02;第5、6个字节表示的是制造商标识号;第7个字是固定数值;从第9个字开始表示的是诊断信息。

978-7-111-58358-5-Chapter12-100.jpg

图12-73 数组AA

当然,DTYPE还有其他的取值,请读者自己参考相关手册。

此外,还有一些其他的诊断方法,如使用FB126和FC125诊断,请读者自行参考相关资料。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈