MELD报警信息的产生

描述

DB801 信息缓冲

DB802 信息观看

DB803 信息档案

FC650 信息传输MeldSend

DB804-DB811 德语报警数据库由SiVArc 生成

DB814-DB821中文报警数据库由SiVArc 生成

例如:

一个代报警的功能块里的设置//

VAR_Temp

TempPointerMsys        : ANY;          //中间变量

TempPointerFlanken      :ANY;          //中间变量

TempPointerMeldpuffer   :ANY;          //中间变量

TempPointerDiagnose     : ANY;          //中间变量

pMeldFeld AT TempPointerMsys: STRUCT

BYTE0               : BYTE;         //Byte 0

TYP                 : BYTE;         //Byte 1   Daten/Parametertyp

ANZ                 : WORD;        //Byte 2+3  Laenge der Variablen

DBNR                : WORD;        //Byte 4+5  DB-Nummer

BZ                  : DWORD;       //Byte6 bis 10 Bereichszeiger

END_STRUCT;

pMeldAbb AT TempPointerFlanken:STRUCT

BYTE0               : BYTE;         //Byte 0

TYP                 : BYTE;         //Byte 1    Daten/Parametertyp

ANZ                 : WORD;       //Byte 2+3   Laenge der Variablen

DBNR                : WORD;       //Byte 4+5   DB-Nummer

BZ                  : DWORD;      //Byte 6 bis 10 Bereichszeiger

END_STRUCT;

pMeldDBNR AT TempPointerMeldpuffer:STRUCT

BYTE0               : BYTE;         //Byte 0

TYP                 : BYTE;         //Byte 1     Daten/Parametertyp

ANZ                 : WORD;       //Byte 2+3    Laengeder Variablen

DBNR                : WORD;       //Byte 4+5    DB-Nummer

BZ                  : DWORD;      //Byte 6 bis 10 Bereichszeiger

MSYS                    : STRUCT       

xF_1                : BOOL;

xF_2                : BOOL;

xF_3                : BOOL;

xF_4                : BOOL;

xF_5                : BOOL;

xF_6                : BOOL;

xF_7                : BOOL;

xF_8                : BOOL;

xF_9                : BOOL;

xF_10               : BOOL;

xF_11               : BOOL;

Flanken             : ARRAY[1..2] OF BYTE;

AenderungsID            : STRUCT

SNr                 : WORD;

ANr                 : BYTE;

Detail              : BYTE;

TempPointerMsys:= Msys;

TempPointerFlanken:= Msys.Flanken;

TempPointerMeldpuffer := ST_Meld;

pMeldFeld.BZ := pMeldFeld.BZ OR 16#1000000;

// Speicherbereich im Bereichszeiger von 84 (DB) auf 85 (DI) aendern

pMeldAbb.BZ  := pMeldAbb.BZ  OR 16#1000000;

// Speicherbereich im Bereichszeiger von 84 (DB) auf 85 (DI) aendern

pMeldFeld.TYP   := 1;   // Typ:=1 ist gleich BOOL

pMeldFeld.ANZ   := 16; 

// Anzahl der Meldungen min. 8 Bit oder mehr, muss jedoch durch 8 teilbar sein.

pMeldAbb.TYP    := 2;   // Typ:=2 ist gleich BYTE

pMeldAbb.ANZ    := 2;   // Anzahl der Bytes im ARRAY min. jedoch 1Byte

故障信息存储部分:

MSYS.xF_1   := xF_Sign;         //'MT0/Signatur hat sichgeaendert'

MSYS.xF_2   := xF_Mode;         //'MT0/Anlage im unsicherenBetrieb'

MSYS.xF_3   := NOT RUECK;       //'STE/Rueckfuehrkreis'

MSYS.xF_4   := NOT AC AND (ACKR OR NOT CFG.X3); //'STE/Passivierung'

MSYS.xF_5   := NOT BusOK;       //'STE/Busfehler'

MSYS.xF_6   := xVKE_IBN_nio;    //'STE/Vorbesetzungsfehler VKE/IBN'

MSYS.xF_7   := xF_S7TimeStamp;  //'MT0/Zeitstempel Projektordnern.i.O.'

MSYS.xF_8   := xPN_MAINT;       //'MT1/Wartungsanforderung (HW-Konfigbeachten)

MSYS.xF_9   := xF_PN_Diag;      //'MT1/PN Diagnose (HW-Konfig beachten)

MSYS.xF_10  := xPN_Wart_Q;;     //'MT1/PN Wartungsbedarf(HW-Konfig beachten)

MSYS.xF_11  := NOT AC AND NOT ACKR AND CFG.X3;//'ST0/Depassivierung Erforderlich'

故障号的指针地址例如:85000250

变量

校验故障号的地址指针例如:85000260

变量

要写入的DB块号  801

变量

传输故障点信息

MeldSend(AufrufNr       := 1

,Anz_Meld      := 11

,pMeldFeld     := pMeldFeld.BZ

,pMeldAbb      := pMeldAbb.BZ

,MeldDB        := WORD_TO_INT(pMeldDBNR.DBNR)

,AenderungsID  := AenderungsID

,Integritaet   := xIntegritaet

,Neustart      := Neustart

);

变量

FC650 将 pMeldFeld 发出给  pMeldAbb

AenderungsID            : STRUCT  初始化默认值

SNr         DB块号

ANr         01

Detail       FF

变量

FB651 在初始化时,可以使DB801的ActPtr=0

在FB651中通过COM_RST=1使的DB801的ActPtr=0和DB802 的S_MSGID值为0

FB650 用于信息的传输到DB802和DB803  已近语言控制

变量

L     49

InVw: T     #Index   用于初始化

+     -1

SLD  5

LAR1 

L    0

T    DBD [AR1,P#0.0]

L    #Index

LOOP InVw

T    #MsgV.S_MSGID[1]  DB802里的ID进行初始化

T    #MsgV.S_MSGID[2]  DB802里的ID进行初始化

T    #MsgV.S_MSGID[3]  DB802里的ID进行初始化

LAR1 P##MsgQ

L    0

L    DIW [AR1,P#0.0]

T    #MsgQ_DB

<>I  

SPBN  EXIT

AUF   DB [#MsgQ_DB]

L     0

T     #MsgQ.ActPtr        DB801的ActPtr被清零

FLib: L     0

L     #MsgPtr         出现一次故障#MsgPtr在FC650中被加           

SPBN  NPtr

CALL  "READ_CLK"                  SFC1读取CPU时间

RET_VAL:=#Result

CDT    :=#Zeitstempel

FB650将DB801 里的信息放入到DB802 只显示20条信息,或DB803 报警历史纪录

FB650将多语言块的故障TEXT文本,时间,状态,ID故障号给入到DB802和DB803里。

FB650 将DB801 的ActPtr 时刻消除0

变量

画面Meldeanzeige  是显示DB802里的内容

变量

画面Meldearchiv_250  是显示DB803里的内容

变量

FB651 用于 多语言转换

变量

变量

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分