Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 6 von 6

Thema: TIA V13 Bitmeldung projektieren

  1. #1
    Registriert seit
    19.05.2014
    Beiträge
    15
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo miteinander

    Trotz all meinen Bemühungen über diverse andere Beiträge schlauer zu werden, wurde ich es einfach nicht!

    Meine Überlegungen die ich zur Zeit mache sind folgende:

    - Stör-, Warn- und Betriebsmeldungen in der SPS programmieren und an einem Panel Darstellen.
    - Für jede Meldegruppe gibt es einen separaten DB. Der DB soll Bausteinoptimiert erzeugt werden!


    In der "Classic-Welt" ist mir das Vorgehen bekannt...
    Aber wie mache ich das mit einem Bausteinoptimierten DB?

    Meine erste Idee ist wie folgt:

    - DB Betriebsmeldungen erstellen
    - Variable "Motormeldung" vom Typ INT einfügen.
    - In einem FB ein Programm schreiben, welches bei erfüllter Bedienung mittels dem Slice-Zugriff das erste BIT der Variable "Motormeldung" setzt. (Betriebsmeldungen.Motormeldung.X1)
    - In den HMI-Variablen eine neue Variable Namens "Motormeldung" erstellen und als PLC-Variable die im DB Betriebsmeldungen erstellte Variable "Motormeldung" angeben.
    - Unter dem Punkt HMI-Meldungen > Bitmeldungen eine Meldung erstellen mit der Triggervariable der vorhin erstellten HMI-Variable.

    Funktioniert wunderbar! Nur bin ich mir nicht sicher ob ich auf dem Holzweg bin!?
    Im allgemeinen stört mich die geringen Informationen in der SPS! Wenn ich einen Slice-Zugriff mache, weiss ich nur das ich z.B. auf das erste BIT eines INT zugreife. Was dieses Bit
    aber für eine Meldung generiert, sehe ich nur über das HMI...

    Gibt es da noch bessere Ansätze? Möchte unbedingt bei Bausteinoptimiert bleiben!
    Und übrigens wurde ein INT genommen, da die HMI-Variable kein WORD erlaubt.

    Gruss
    Zitieren Zitieren TIA V13 Bitmeldung projektieren  

  2. #2
    Registriert seit
    19.06.2015
    Beiträge
    459
    Danke
    26
    Erhielt 40 Danke für 35 Beiträge

    Standard

    ich mache das in der klassischen SPS so.

    DATA_BLOCK "DB_Alarme"
    TITLE =Die alarm-Nummer im DB ist identisch mit der Nummer im
    //WinCCflexible-Bitmeldungen
    //
    //in dem Fall ein Array mit 30 Wordvariablen im DB10
    //Der Text im DB Kommentar wird von der entsprechenden Nummer einfach in das Textfeld des Wordarrays übernommen,
    //
    { S7_language := '7(1) Deutsch (Deutschland) 20.07.2015 06:04:30' }
    VERSION : 0.1


    STRUCT
    alarm_009 : BOOL ;
    alarm_010 : BOOL ;
    alarm_011 : BOOL ; //
    alarm_012 : BOOL ;
    alarm_013 : BOOL ;
    alarm_014 : BOOL ; //
    alarm_015 : BOOL ; //
    alarm_016 : BOOL ; //
    alarm_001 : BOOL ; //
    alarm_002 : BOOL ; //
    alarm_003 : BOOL ; //alarm_003
    alarm_004 : BOOL ; //alarm_004
    alarm_005 : BOOL ; //alarm_005
    alarm_006 : BOOL ; //alarm_006
    alarm_007 : BOOL ; //alarm_007
    alarm_008 : BOOL ; //alarm_008
    alarm_025 : BOOL ; //alarm_025 /Störung Ventil


    Im HMI lege ich ein absolutes array an, das aus word ist.Das mache ich so groß das es alle Bitvariablen abdeckt.Die Störmelde-Nummer entspricht dann der Nummer der Alarmvariable.Den Text übernehme ich vom Alarm DB -Kommentar.Du siehst die Bytes sind vertauscht.So musst du jetzt quasi weitermachen.
    ich weiss nicht ob das bei dir geht.Kenne mich mit dem neuen System nicht aus.

  3. Folgender Benutzer sagt Danke zu silverfreaky für den nützlichen Beitrag:

    Swissfighter88 (23.07.2015)

  4. #3
    Registriert seit
    11.12.2009
    Beiträge
    2.115
    Danke
    388
    Erhielt 390 Danke für 271 Beiträge

    Standard

    Hallo,

    das Bediengerät erlaubt schon den Datentyp "Word" - Aber nicht als interne Variable.
    Wenn Du eine SPS-Word Variable verknüpfst funktioniert das.

    Wo ist jetzt dein Problem mit dem Slice zugriff?
    Code:
    "BITMELDUNGEN".STOERUNGEN.GRUPPE1.%X0 = Bitmeldung 1
    "BITMELDUNGEN".STOERUNGEN.GRUPPE1.%X1 = Bitmeldung 2
    "BITMELDUNGEN".STOERUNGEN.GRUPPE1.%X2 = Bitmeldung 3
    "BITMELDUNGEN".STOERUNGEN.GRUPPE1.%X3 = Bitmeldung 4
    "BITMELDUNGEN".STOERUNGEN.GRUPPE1.%X4 = Bitmeldung 5
    "BITMELDUNGEN".STOERUNGEN.GRUPPE1.%X5 = Bitmeldung 6
    "BITMELDUNGEN".STOERUNGEN.GRUPPE1.%X6 = Bitmeldung 7
    "BITMELDUNGEN".STOERUNGEN.GRUPPE1.%X7 = Bitmeldung 8
    Mit X8 - X15 könnte man jetzt noch die Quittiervariablen machen und gut.

    Quittieren tue ich z.B. so:

    Code:
    "BITMELDUNGEN".STOERUNGEN.GRUPPE1.%B1 := (255 - "BITMELDUNGEN".STOERUNGEN.GRUPPE1.%B0);
    Dann werden alle Bitmeldungen quttiert, die gegangen sind. Ist eine Meldung noch nicht gegangen kann sie nicht quittiert werden.

    Mit folgendem Werte ich eine Sammelstörung aus:

    Code:
    ("BITMELDUNGEN".STOERUNGEN.GRUPPE1.%B0 > 0)
    Edit: und hier meine DB-Deklaration



    Grüße

    Marcel
    Angehängte Grafiken Angehängte Grafiken
    Stell Dir vor es geht, und keiner kriegts hin!

  5. Folgender Benutzer sagt Danke zu Matze001 für den nützlichen Beitrag:

    Swissfighter88 (23.07.2015)

  6. #4
    Swissfighter88 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    19.05.2014
    Beiträge
    15
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke euch beiden!

    Variante von silverfreaky
    Super Sache für nicht optimierte Bausteine! Werde ich mir merken

    Variante von Mate001
    Probleme mit dem Slice-Zugriff habe ich eigentlich nicht. Ich möchte einfach meinen Programmcode übersichtlich behalten.
    Danke für deine Codebeispiele. Sind echt nützlich. Ich setze das Mal so um.

    Grüsse

  7. #5
    Swissfighter88 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    19.05.2014
    Beiträge
    15
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo nochmals

    @ Mate001:
    Kannst du mir die Idee mit der Quittiervariable noch ein wenig genauer Erklären?
    Ansätze sind mir klar, aber wie ich das Ganze im WinCC realisiere nicht!

    Gruss

  8. #6
    Registriert seit
    29.06.2016
    Beiträge
    1
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    Kann mir jemand sagen, warum ich für eine einfache Bitmeldungen überhaupt INT/WORD-Variablen benötige und nicht mit simplen BOOL arbeiten kann?

    Ich will – wie der Themenstarter – auf einem Panel Bitmeldungen anzeigen (und gegebenenfalls auch quittieren)
    Viele meiner Störmeldungen kommen auf der SPS hardwaremäßig als Digitaleingang und werden als BOOL verarbeitet. Eigentlich könnte ich die 1:1 im Meldesystem als Trigger verwenden. Wegen dem Meldesystem muss ich jetzt aber zusätzlich dazu überall noch Integer-Vars anlegen, damit das Meldesystem sie verarbeiten kann...
    Mit erscheint diese Restriktion im TIA-Portal einfach überflüssig. Aber vielleicht verstehe ich als Neuling auf diesem Gebiet einfach irgend etwas nicht richtig...

    Zusatzfrage (TIA v13sp1):
    Wenn ich eine Bitmeldung mit einer Integer-Variable als Trigger anlege (funktioniert soweit), ist das Feld für die Quittiervariable ausgegraut und ich kann sie nicht definieren.
    Wenn ich als Trigger eine BOOL-Variable verwende, kann ich ich plötzlich eine Quittiervariable festlegen (bekomme dann aber natürlich die Fehlermeldung wegen der BOOL, die nicht akzeptiert wird als Bitmeldung)
    Was muss ich machen um beides richtig projektieren zu können?

    LG
    Geändert von Ullus (30.06.2016 um 14:26 Uhr)

Ähnliche Themen

  1. TIA Siemens S7 TIA V13 Basic <> TIA V13 Professional
    Von piksieben im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 05.11.2014, 19:23
  2. Antworten: 0
    Letzter Beitrag: 20.10.2014, 20:25
  3. TIA TIA V12 - Verdrehte Bitmeldung
    Von Dagobert1987 im Forum Simatic
    Antworten: 20
    Letzter Beitrag: 04.06.2014, 21:55
  4. Antworten: 2
    Letzter Beitrag: 11.05.2014, 08:14
  5. Antworten: 14
    Letzter Beitrag: 22.10.2011, 07:20

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •