Meldenummernverfahren, aber wie?

Anton234

Level-2
Beiträge
197
Reaktionspunkte
7
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, hab über den Nachmittag im Forum gestöbert, aber leider nichts rausgefunden, wie ich mir ein Meldenummernverfahren einrichte.
Im Systemkurs 1 von WInCCflex steht beschrieben, dass das Meldenummernverfahren, welches die Systemfunktion Alarm S nutzt am sinvollsten ist, da Bitmelde und Analogmelde mehr Nachteile aufweisen.
Ich nutze eine S7 312C -MPI-Adapter und WinCCflex auf einem PC.

Wie funktioniert den das mit Alarm S? Um welche Systemfunktion handelt es sich denn?
Hab leider in den ST-PRO1 Unterlagen nichts gefunden.
Besten Dank
Andy
 
Step7-Hilfe und Handbücher

Hallo Andy,

Step7 hat eine Hilfefunktion. Im Simatic Manager unter Hilfe > Hilfethemen... > Index > "Meldenummernverfahren" eingeben
Da wird das Meldenummernverfahren und auch Alarm_S erklärt.

oder im Handbuch "Programmieren mit Step7" Kapitel 16
oder im Systemhandbuch "System- und Standardfunktionen für S7-300/400" Kapitel 24
Die Handbücher werden mit Step7 installiert und sind zu finden unter Start > SIMATIC > Dokumentation

Passend zur Frage:
Wie können Systemfehlermeldungen einer SIMATIC S7-300 / 400 in WinCC flexible angezeigt werden?

Gruß
Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
hab jetzt das ganze mal auf der siemens-support seite durchstöbert und hab anhand des beispieles : http://support.automation.siemens.c...lib.csinfo&lang=de&objid=22319131&caller=view
das ganze versucht aufzubauen.
Leider hat sich das erste Problem schon beim Schritt 1 ergeben;

habe den FB angelegt und die IN-Parameter erstellt; wollte dann die Attribute S7_server und S7_a_type für diesen FB anlegen; leider sind dies Systemattribute bei mir aber nicht definiert.
Jetzt heißt es ja unter der Anleitung, dass Alarm D Meldungen bei 300er erst ab Version 2.5 unterstützt wird, aber Alarm S müsste ja von allen unterstütz werden.
Nutze 312C Baujahr 2006 V2.0 Artikelnr. 6AG1 312-5BD01-2AB0
Besten Dank
Andy
 
Zuletzt bearbeitet:
Laut Katalog ST70 2007:
S7Meldefunktionen: 6; abhängig von projektierten Verbindungen

Prozessdiagnose: ja
gleichzeitik akwive Alarm-S Bausteine: max 20
 
gefunden, aber

ok, das mit den Attributen hat geklappt, diese mussten direkt an den INs verändert werden
Leider spuckt mir der Ret_Val 8084 aus.
Das liegt laut der Hilfe daran, dass sich der Sig nicht verändert hat; aber den Sig hab ich mehrmals verändert, nur beim Aufruf des Bausteins war dieser nicht auf 1.
Wozu dient denn das, was vor m baustein aufruf programmiert wurde? Da komm ich leider nicht ganz mit, da ich nur mit FUP groß/aufgezogen worden bin:confused:
siehe http://cache.automation.siemens.com/dnl/DA1Mjc2MwAA_24013249_FAQ/WinCC_flexible_Alarm_S_D_04_d.gif
Besten dank
andy
 
d.h. dann muss ich ne Flankenauswertung machen, zuvor ich auf den Sig geh?
Was bedeutet die Programmierung vor dem Aufruf?
 
ich hab das bei mir in etwa so gelöst:

U Sig
X MSig
SPBN S0001

"BS-Aufruf"

U Sig
= MSig


S0001: nop 0

ich denke mit den Einstellung davor übergibst du Meldetext usw, ich nutze sowas aber nicht im AWL sondern gehe über die BS-Objekteigenschften im Manager.
 
Code:
FUNCTION_BLOCK "AL8D"
TITLE =Meldungen
AUTHOR : Micha
FAMILY : ALARM
VERSION : 1.0
 
VAR_INPUT
  ENABLE : BOOL ; //Meldungen zulassen
  Meldung1 : BOOL ; //Meldeereignis
  Meldung2 : BOOL ; //Meldeereignis
  Meldung3 : BOOL ; //Meldeereignis
  Meldung4 : BOOL ; //Meldeereignis
  Meldung5 : BOOL ; //Meldeereignis
  Meldung6 : BOOL ; //Meldeereignis
  Meldung7 : BOOL ; //Meldeereignis
  Meldung8 : BOOL ; //Meldeereignis
  CMP_ID : DWORD  := DW#16#1; //Kennung zur Identifikation des Teilsystems für ALARM-D
  ID1 { S7_server := 'alarm_archiv'; S7_a_type := 'alarm_s' }: DWORD ; //Meldenummer für ALARM-D
  ID2 { S7_server := 'alarm_archiv'; S7_a_type := 'alarm_s' }: DWORD ; //Meldenummer für ALARM-D
  ID3 { S7_server := 'alarm_archiv'; S7_a_type := 'alarm_s' }: DWORD ; //Meldenummer für ALARM-D
  ID4 { S7_server := 'alarm_archiv'; S7_a_type := 'alarm_s' }: DWORD ; //Meldenummer für ALARM-D
  ID5 { S7_server := 'alarm_archiv'; S7_a_type := 'alarm_s' }: DWORD ; //Meldenummer für ALARM-D
  ID6 { S7_server := 'alarm_archiv'; S7_a_type := 'alarm_s' }: DWORD ; //Meldenummer für ALARM-D
  ID7 { S7_server := 'alarm_archiv'; S7_a_type := 'alarm_s' }: DWORD ; //Meldenummer für ALARM-D
  ID8 { S7_server := 'alarm_archiv'; S7_a_type := 'alarm_s' }: DWORD ; //Meldenummer für ALARM-D
  SD1 : REAL ; //Begleitwert Meldung 1
  SD2 : REAL ; //Begleitwert Meldung 2
  SD3 : REAL ; //Begleitwert Meldung 3
  SD4 : REAL ; //Begleitwert Meldung 4
  SD5 : REAL ; //Begleitwert Meldung 5
  SD6 : REAL ; //Begleitwert Meldung 6
  SD7 : REAL ; //Begleitwert Meldung 7
  SD8 : REAL ; //Begleitwert Meldung 8
END_VAR
VAR
  sbFL1 : BOOL ; 
  sbFL2 : BOOL ; 
  sbFL3 : BOOL ; 
  sbFL4 : BOOL ; 
  sbFL5 : BOOL ; 
  sbFL6 : BOOL ; 
  sbFL7 : BOOL ; 
  sbFL8 : BOOL ; 
END_VAR
VAR_TEMP
  tiRET_VAL : INT ; 
END_VAR
BEGIN
NETWORK
TITLE =Meldung 1
      U     #ENABLE; 
      U     #Meldung1; 
      =     #Meldung1; 
      FN    #sbFL1; 
      O     #Meldung1; 
      SPBN  END1; 
      CALL "ALARM_D" (
           SIG                      := #Meldung1,
           ID                       := W#16#EEEE,
           EV_ID                    := #ID1,
           CMP_ID                   := #CMP_ID,
           SD                       := #SD1,
           RET_VAL                  := #tiRET_VAL);
END1: NOP   0; 
NETWORK
TITLE =Meldung 2
      U     #ENABLE; 
      U     #Meldung2; 
      =     #Meldung2; 
      FN    #sbFL2; 
      O     #Meldung2; 
      SPBN  END2; 
      CALL "ALARM_D" (
           SIG                      := #Meldung2,
           ID                       := W#16#EEEE,
           EV_ID                    := #ID2,
           CMP_ID                   := #CMP_ID,
           SD                       := #SD2,
           RET_VAL                  := #tiRET_VAL);
END2: NOP   0; 
NETWORK
TITLE =Meldung 3
      U     #ENABLE; 
      U     #Meldung3; 
      =     #Meldung3; 
      FN    #sbFL3; 
      O     #Meldung3; 
      SPBN  END3; 
      CALL "ALARM_D" (
           SIG                      := #Meldung3,
           ID                       := W#16#EEEE,
           EV_ID                    := #ID3,
           CMP_ID                   := #CMP_ID,
           SD                       := #SD3,
           RET_VAL                  := #tiRET_VAL);
END3: NOP   0; 
NETWORK
TITLE =Meldung 4
      U     #ENABLE; 
      U     #Meldung4; 
      =     #Meldung4; 
      FN    #sbFL4; 
      O     #Meldung4; 
      SPBN  END4; 
      CALL "ALARM_D" (
           SIG                      := #Meldung4,
           ID                       := W#16#EEEE,
           EV_ID                    := #ID4,
           CMP_ID                   := #CMP_ID,
           SD                       := #SD4,
           RET_VAL                  := #tiRET_VAL);
END4: NOP   0; 
NETWORK
TITLE =Meldung 5
      U     #ENABLE; 
      U     #Meldung5; 
      =     #Meldung5; 
      FN    #sbFL5; 
      O     #Meldung5; 
      SPBN  END5; 
      CALL "ALARM_D" (
           SIG                      := #Meldung5,
           ID                       := W#16#EEEE,
           EV_ID                    := #ID5,
           CMP_ID                   := #CMP_ID,
           SD                       := #SD5,
           RET_VAL                  := #tiRET_VAL);
END5: NOP   0; 
NETWORK
TITLE =Meldung 6
      U     #ENABLE; 
      U     #Meldung6; 
      =     #Meldung6; 
      FN    #sbFL6; 
      O     #Meldung6; 
      SPBN  END6; 
      CALL "ALARM_D" (
           SIG                      := #Meldung6,
           ID                       := W#16#EEEE,
           EV_ID                    := #ID6,
           CMP_ID                   := #CMP_ID,
           SD                       := #SD6,
           RET_VAL                  := #tiRET_VAL);
END6: NOP   0; 
NETWORK
TITLE =Meldung 7
      U     #ENABLE; 
      U     #Meldung7; 
      =     #Meldung7; 
      FN    #sbFL7; 
      O     #Meldung7; 
      SPBN  END7; 
      CALL "ALARM_D" (
           SIG                      := #Meldung7,
           ID                       := W#16#EEEE,
           EV_ID                    := #ID7,
           CMP_ID                   := #CMP_ID,
           SD                       := #SD7,
           RET_VAL                  := #tiRET_VAL);
END7: NOP   0; 
NETWORK
TITLE =Meldung 8
      U     #ENABLE; 
      U     #Meldung8; 
      =     #Meldung8; 
      FN    #sbFL8; 
      O     #Meldung8; 
      SPBN  END8; 
      CALL "ALARM_D" (
           SIG                      := #Meldung8,
           ID                       := W#16#EEEE,
           EV_ID                    := #ID8,
           CMP_ID                   := #CMP_ID,
           SD                       := #SD8,
           RET_VAL                  := #tiRET_VAL);
END8: NOP   0; 
END_FUNCTION_BLOCK
(*$ALARM_SERVER <HEADERS STEP7_VERSION="262144" CODING="true"><LANGUAGE LCID="1031">German</LANGUAGE><STD_LANGUAGE>1031</STD_LANGUAGE><HEADER PARENT="RkIyMDA4" PARENT_SYM="QUw4RA=="><VERSION>Q1BVX1dJREVfQUxBUk1OUg==</VERSION><STRUCTTYPE>1</STRUCTTYPE><ATTR_STATE>0</ATTR_STATE><PRODUCER>1</PRODUCER><ALARM NAME="SUQx"><ATTR_STATE>0</ATTR_STATE><ALARMNR>0</ALARMNR><ALARMTYPE>YWxhcm1fcw==</ALARMTYPE><DISPLAYGROUP>16</DISPLAYGROUP><SUBCOUNT>1</SUBCOUNT><RANGE>0</RANGE><PROTOCOL>0</PROTOCOL><SUBALARM ID="1"><ALARM_CLASS>4</ALARM_CLASS><ALARM_ART>7</ALARM_ART><QUITGROUP>16</QUITGROUP><PRIORITY>1</PRIORITY><QUIT>1</QUIT><ATTR_STATE>0</ATTR_STATE><TEXT1 LCID="1031">TWVsZHVuZyAx</TEXT1></SUBALARM></ALARM><ALARM NAME="SUQy"><ATTR_STATE>0</ATTR_STATE><ALARMNR>0</ALARMNR><ALARMTYPE>YWxhcm1fcw==</ALARMTYPE><DISPLAYGROUP>16</DISPLAYGROUP><SUBCOUNT>1</SUBCOUNT><RANGE>0</RANGE><PROTOCOL>0</PROTOCOL><SUBALARM ID="1"><ALARM_CLASS>4</ALARM_CLASS><ALARM_ART>7</ALARM_ART><QUITGROUP>16</QUITGROUP><PRIORITY>1</PRIORITY><QUIT>1</QUIT><ATTR_STATE>0</ATTR_STATE><TEXT1 LCID="1031">TWVsZHVuZyAy</TEXT1></SUBALARM></ALARM><ALARM NAME="SUQz"><ATTR_STATE>0</ATTR_STATE><ALARMNR>0</ALARMNR><ALARMTYPE>YWxhcm1fcw==</ALARMTYPE><DISPLAYGROUP>16</DISPLAYGROUP><SUBCOUNT>1</SUBCOUNT><RANGE>0</RANGE><PROTOCOL>0</PROTOCOL><SUBALARM ID="1"><ALARM_CLASS>4</ALARM_CLASS><ALARM_ART>7</ALARM_ART><QUITGROUP>16</QUITGROUP><PRIORITY>1</PRIORITY><QUIT>1</QUIT><ATTR_STATE>0</ATTR_STATE><TEXT1 LCID="1031">TWVsZHVuZyAz</TEXT1></SUBALARM></ALARM><ALARM NAME="SUQ0"><ATTR_STATE>0</ATTR_STATE><ALARMNR>0</ALARMNR><ALARMTYPE>YWxhcm1fcw==</ALARMTYPE><DISPLAYGROUP>16</DISPLAYGROUP><SUBCOUNT>1</SUBCOUNT><RANGE>0</RANGE><PROTOCOL>0</PROTOCOL><SUBALARM ID="1"><ALARM_CLASS>4</ALARM_CLASS><ALARM_ART>7</ALARM_ART><QUITGROUP>16</QUITGROUP><PRIORITY>1</PRIORITY><QUIT>1</QUIT><ATTR_STATE>0</ATTR_STATE><TEXT1 LCID="1031">TWVsZHVuZyA0</TEXT1></SUBALARM></ALARM><ALARM NAME="SUQ1"><ATTR_STATE>0</ATTR_STATE><ALARMNR>0</ALARMNR><ALARMTYPE>YWxhcm1fcw==</ALARMTYPE><DISPLAYGROUP>16</DISPLAYGROUP><SUBCOUNT>1</SUBCOUNT><RANGE>0</RANGE><PROTOCOL>0</PROTOCOL><SUBALARM ID="1"><ALARM_CLASS>4</ALARM_CLASS><ALARM_ART>7</ALARM_ART><QUITGROUP>16</QUITGROUP><PRIORITY>1</PRIORITY><QUIT>1</QUIT><ATTR_STATE>0</ATTR_STATE><TEXT1 LCID="1031">TWVsZHVuZyA1</TEXT1></SUBALARM></ALARM><ALARM NAME="SUQ2"><ATTR_STATE>0</ATTR_STATE><ALARMNR>0</ALARMNR><ALARMTYPE>YWxhcm1fcw==</ALARMTYPE><DISPLAYGROUP>16</DISPLAYGROUP><SUBCOUNT>1</SUBCOUNT><RANGE>0</RANGE><PROTOCOL>0</PROTOCOL><SUBALARM ID="1"><ALARM_CLASS>4</ALARM_CLASS><ALARM_ART>7</ALARM_ART><QUITGROUP>16</QUITGROUP><PRIORITY>1</PRIORITY><QUIT>1</QUIT><ATTR_STATE>0</ATTR_STATE><TEXT1 LCID="1031">TWVsZHVuZyA2</TEXT1></SUBALARM></ALARM><ALARM NAME="SUQ3"><ATTR_STATE>0</ATTR_STATE><ALARMNR>0</ALARMNR><ALARMTYPE>YWxhcm1fcw==</ALARMTYPE><DISPLAYGROUP>16</DISPLAYGROUP><SUBCOUNT>1</SUBCOUNT><RANGE>0</RANGE><PROTOCOL>0</PROTOCOL><SUBALARM ID="1"><ALARM_CLASS>4</ALARM_CLASS><ALARM_ART>7</ALARM_ART><QUITGROUP>16</QUITGROUP><PRIORITY>1</PRIORITY><QUIT>1</QUIT><ATTR_STATE>0</ATTR_STATE><TEXT1 LCID="1031">TWVsZHVuZyA3</TEXT1></SUBALARM></ALARM><ALARM NAME="SUQ4"><ATTR_STATE>0</ATTR_STATE><ALARMNR>0</ALARMNR><ALARMTYPE>YWxhcm1fcw==</ALARMTYPE><DISPLAYGROUP>16</DISPLAYGROUP><SUBCOUNT>1</SUBCOUNT><RANGE>0</RANGE><PROTOCOL>0</PROTOCOL><SUBALARM ID="1"><ALARM_CLASS>4</ALARM_CLASS><ALARM_ART>7</ALARM_ART><QUITGROUP>16</QUITGROUP><PRIORITY>1</PRIORITY><QUIT>1</QUIT><ATTR_STATE>0</ATTR_STATE><TEXT1 LCID="1031">TWVsZHVuZyA4</TEXT1></SUBALARM></ALARM></HEADER></HEADERS> *)

... funktioniert astrein!

Micha
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Hilfe zum SFB 18 hab ich gelesen, zuvor ich die Frage gestellt hab, leider blieb der Funke aus und es kam nicht zum Sprung:confused:

"Sie müssen darauf achten, daß Sie die SFC 17/SFC 18 nur dann aufrufen, wenn der Wert des meldungsauslösenden Signals SIG gegenüber dem letzten Aufruf invertiert ist. Ist dies nicht der Fall, so wird Ihnen dies über RET_VAL mitgeteilt, und es wird keine Meldung gesendet. Beim allerersten Aufruf der SFC 17/SFC 18 müssen Sie dafür Sorge tragen, daß am Eingang SIG 1 anliegt. Sonst bekommen Sie über RET_VAL eine Fehlerinformation, und es wird keine Meldung gesendet."

Wie muss ich nun das ganze Umsetzen?
Das mit dem allersten Aufruf hab ich nicht eingehalten, da ich die Hilfe erst gelesen hab, als der Ret_Val was ausgespuckt hat.

Besten Dank
andy
 
Du kannst den jeweiligen AufrufOB mit SFC6 bestimmen und deinen Baustein im Anlauf initialisieren.
Dafür hab ich das ganze in einen FB gepackt, der auch im anlauf bearbeitet wird
 
Gibts denn keinen der mir bezüglich Fup etwas weiterhelfen kann, denn das ganze funkt immer noch nicht :-(

Besten dank
Gruß andy
 
Zuletzt bearbeitet:
Da das ganze in AWL ist, steig ich da nicht ganz durch.

Wozu werden die Boolschen Variablen verwendet?

welche meinst du? die inputs? das sind die meldungsindikatoren. oder meinst du die statischen? das sind flankenauswertungshilfsmerkerchen... eigentlich ist der baustein vom killa doch selbsterklärend genug, zumindest gut strukturiert :D
 
In Eintrag 15 hab ich meinen FB gepostet, der sieht aber anders aus als der auf der Siemens-Support-Seite
http://cache.automation.siemens.com/dnl/DA1Mjc2MwAA_24013249_FAQ/WinCC_flexible_Alarm_S_D_04_d.gif
Woran liegt der Unterschied, ich hab nur den Aufruf drin.

Gruß andy

im siemensbild wird der ALARM_D, in deinem der ALARM_S aufgerufen ... wird das jetzt hier son ratespiel?`geh zu 9live, die suchen ständig frische, motivierte moderatoren!
 
isch mir eigentlich egal ob Alarm_S oder D,
ich mein die Begleitwerte String, Hex.... das steht bei mir nicht drin....
...was ist 9live, ein Forum?*ROFL*
 
Zuletzt bearbeitet:
Zurück
Oben