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 1Daten/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
SLD5
LAR1
L0
TDBD [AR1,P#0.0]
L#Index
LOOPInVw
T#MsgV.S_MSGID[1] DB802里的ID进行初始化
T#MsgV.S_MSGID[2] DB802里的ID进行初始化
T#MsgV.S_MSGID[3] DB802里的ID进行初始化
LAR1P##MsgQ
L0
LDIW [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
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 用于 多语言转换
-
数据库
+关注
关注
7文章
3799浏览量
64381 -
变量
+关注
关注
0文章
613浏览量
28366
原文标题:MELD报警信息的产生
文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论