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

Seite 2 von 5 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 41

Thema: EA-Feld Konfiguration

  1. #11
    M0rti ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.02.2015
    Beiträge
    16
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo JS, sorry für die lange Pause, musste das Problem selbst erstmal genauer eingrenzen. Ich vermute nun eine Idee zu haben was dort passiert ist.
    In meinem Datenbaustein stimmen Anfangswert und Aktualwert nicht mehr überein. Die Anfangswerte der hier betrachteten Ventile liegen bei W#16#0. Beobachte ich den Aktualwert ist dieser bei den meisten
    jedoch W#16#1000 oder W#16#1020. Dieser "Offset" sorgt denke ich dafür das das "falsche" Bit überprüft wird und sich deswegen die Farbe auch nicht mehr ändert wie bereits oben erwähnt.
    Die Frage ist nun, wie bekomme ich diesen Offset wieder weg. Ich möchte ja das mein Aktualwert meinem Anfangswert entspricht. Ich nehme mal an das sollte möglich sein oder?

    Gruß,
    M0rti

  2. #12
    Registriert seit
    03.02.2015
    Ort
    Hatten
    Beiträge
    183
    Danke
    16
    Erhielt 32 Danke für 29 Beiträge

    Standard

    Hi Morti,

    Du hast aber schon mit DBs gearbeitet, oder?
    Der Anfangswert ist der Initialwert der Variable, wenn du den Baustein anlegst. Wenn Du den Anfangswert nicht änderst (z.B. weil die Variable irgendeine Einstellung speichert), ist der 0.
    Die Aktualwerte sind die Werte, die nun durch den Prozeß in die Variablen geschrieben werden. Also Deine Prozeßwerte.
    Wenn Du also in den Variablen den Zustand Deiner Ventile speicherst, so MUSS sich der Aktualwert vom Anfangswert unterscheiden (sonst wäre ja eine Speicherung des Zustands nicht notwendig!).
    Anfangswert/Aktualwert 0 = Ventil hat keinen Zustand
    Aktualwert 'irgendwas' = Programm läuft und das Ventil hat einen Zustand

    Sobald das Programm läuft, hat der Anfangswert keine Bedeutung mehr. Der Anfangswert ist nur für den allerersten Zyklus des Programms auf der jungfräulichen SPS notwendig.
    Du kannst allerdings auch während der Laufzeit alle Variablen auf Anfangswert setzen: Beobachten -> Menü Bearbeiten -> Baustein initialisieren. Dann werden die Aktualwerte mit den Anfangswerten überschrieben.

    Also bitte lauf nicht in die falsche Richtung...

    Wenn Du schreibst, die meisten Ventile haben entweder 16#1000 oder 16#1020, so wird ja hier das Bit 6 (von 1..16) getoggelt. Ist das auf/zu? Das hieße dann, daß auf Bit 6 (von 1..16) eine Rückmeldung liegt, z.B. offen. Dann ist 1=offen, 0=geschlossen. Bit 16 steht immer an, z.B. vielleicht für "Ventil OK". Das ist alles nur geraten und soll Dir nur als Hinweis dienen, wie es funktionieren könnte.

  3. #13
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Bei W#16#1020 ist nach meiner Rechnung Bit 5 und Bit 12 (von 0..15) gesetzt.

    Aktualwert = ist der Wert, den die Variable im Arbeitsspeicher hat. Kann durch das Programm gelesen und geschrieben/verändert werden - der normale Zweck einer Variable.
    Anfangswert = ist der Wert, den die Variable im Ladespeicher hat. Auf diesen Wert wird der Aktualwert gesetzt (initialisiert), jedesmal wenn der DB vom Ladespeicher in den Arbeitsspeicher geladen wird (z.B. bei Urlöschen oder SFC83)


    Zitat Zitat von M0rti Beitrag anzeigen
    Die entsprechenden Objekte in WinCC, z.B das besprochene Ventil, ist und WAR schon immer mit einem Dynamischen-Dialog für die Hintergrundfarbe belegt. An diesen Einstellungen wurde nie etwas geändert bzw verändert. Seitdem das das Projekt aber erweitert wurde, erfüllte dieser Dynamische-Dialog nicht mehr seinen Zweck. Die Aktion dahinter sieht so aus: Die verknüpfte Variable wird auf ein Bit geprüft. Bei Änderung dieses Bits soll eben die Farbe "gesetzt" werden.
    [...]
    In dem Dynamischen Dialog wird Bit8 geprüft. Bit8 ändert sich jedoch nach Betätigung des Buttons nicht! Ich habe es folglich umgestellt, das auf das Bit geprüft wird, das sich auch wirklich ändert und zack es funktioniert!

    Ich verstehe nur nicht, warum dies bei allen Objekten in WinCC nun der Fall ist! Vorher hat es ja funktioniert und wie bereits gesagt, an den Objekteigenschaften wurde NIE etwas verändert ganz nach dem Motto "Never touch a running system"
    Trotzdem wird nun praktisch überall das falsche Bit überprüft. Wie kann das kommen?
    Wie sieht der Dynamic-Dialog aus?
    Wird da vielleicht mit einer global definierten Konstante oder Variable verknüpft?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. #14
    Registriert seit
    20.01.2009
    Beiträge
    190
    Danke
    32
    Erhielt 15 Danke für 14 Beiträge

    Standard

    Zitat Zitat von M0rti Beitrag anzeigen
    Sprich ich nehme das alte Backup-Projekt, in dem alles funktioniert (Farbe etc) und editiere nur die DB's. Schwubs funktioniert ein Farbumschlag nicht mehr.
    Hast du getestet, ob mit dem Backup alles richtig funktioniert?
    Also:
    - Backup einspielen
    - Funktion testen

    Die DBs sind hoffentlich keine Instanz-DBs.
    Stell doch mal den DB hier rein.

    Wenn ALLE Ventile nach einer Änderung nicht mehr richtig anzeigen, hast du wahrscheinlich den Ventilbaustein geändert.
    Vermutlich gibt es EINEN Ventilbaustein, der bei jedem Ventil verwendet wird (instanziert). Eine Änderung an diesem Baustein wirkt sich dann auf alle Ventile aus.

  5. #15
    M0rti ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.02.2015
    Beiträge
    16
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Leute,

    also ersteinmal bitte hier nicht mit den Bits vertun. Das Bit8, welches ich anspreche wird erst nach einer Aktion geprüft. Die entsprechenden Hex-Werte habe ich hier im Forum noch überhaupßt nicht angegeben.
    Der prinzipielle Unterschied zwischen Anfangswert und Aktualwert ist mir schon klar. Meiner Meinung nach sollte sich der Aktualwert aber nicht vom Anfangswert unterscheiden, solange ich keine Aktion ausführe, denn auf die Variablen wird sonst auch nirgends zugegriffen.

    Bis vor kurzem hat auch mit den Backups alles funktioniert, dies ist jetzt auch nicht mehr der Fall ich drehe noch am Rad

    Die DB bzw einen Ausschnitt hab ich mal mitgeschickt, falls du es so haben wolltest. Denke die Version ist etwas älter, aber ich habe es ja nur übernommen
    Die Verknüpfung mit der Dynmaik sollte auch mitgeschickt worden sein.

    Was sind denn genau Instanz-DBs und wie oder was würde das für mich bedeuten?

    Gruß,
    M0rti

    Ach ja und nochmal. Weder an der DB (bis auf die Erweiterung neuer Variablen) noch an den Verknüpfungen in WinCC wurde seit der Erweiterung des Projekts etwas geändert! Deshalb vermute ich das es etwas mit dem Aktualwert zu tun hat.
    Angehängte Grafiken Angehängte Grafiken

  6. #16
    M0rti ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.02.2015
    Beiträge
    16
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Um die Sache vollständig zu machen und zu zeigen warum ich denke das es an den Aktualwerten liegt hier einmal der Code für die Handsteuerung eines Aktors.
    Für jedes Ventil gibt es 2 Buttons in WinCC. Mit dem Button Hd-Strg wird der SPS gesagt das das Ventil per Hand gesteuert wird (da wir es in manchen Prozessen auch über Matlab automatisiert steuern können). Mit dem Button 1/0 (also Ein_Aus) kann dann das Ventil geöffnet bzw geschlossen werden.

    Der Code "per Mousclick" ist beigefügt. Es sollte aus dem Code hervor gehen warum ich denke das es an den Aktualwerten bzw Anfangswerten liegen könnte. Ich wüsste sonst nicht wo der Fehler ist.
    Angehängte Grafiken Angehängte Grafiken

  7. #17
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Deine Bilder zeigen:
    - Die Hintergrundfarbe wird dynamisiert vom Bit .8
    - Die erste Aktion (Hd-Strg) setzt/rücksetzt das Bit .15 wegen: mask=0x8000
    - Die zweite Aktion (Ein_Aus) setzt/rücksetzt das Bit .1 wegen: mask=0x0002

    Was davon war "schon immer" so und was hast Du geändert?

    Ich denke, mit Deiner Theorie der Aktualwerte und Anfangswerte bist Du völlig auf dem Holzweg.
    WinCC liest die Aktualwerte der Variablen. Wenn die Aktualwerte sich nicht ändern würden, dann würde es keine Farbumschläge geben.
    Die Anfangswerte kann WinCC garnicht aus der SPS lesen.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  8. #18
    M0rti ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    17.02.2015
    Beiträge
    16
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Harald,

    Wie der Farbumschlag funktioniert ist mir bewusst, in dem Code bin ich sehr gut drin. Wie mehrfach erwähnt habe ich nichts an sämtlichen Einstellungen geändert, die du in den Bildern siehst.
    Schon klar das die Aktualwerte die Ereignisse triggern. Da ich ja eben nichts geändert habe, müssen sich ja folglich die Aktualwerte seit Erweiterung des Projekts geändert haben.

  9. #19
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.733
    Danke
    317
    Erhielt 1.522 Danke für 1.283 Beiträge

    Standard

    Naja, aber die konkreten Aktualwerte sind doch bezüglich dieses C-Teils völlig egal.
    Ist das Bit High wird es Low, und umgekehrt, vollkommen egal was im Aktualwert gerade stehen möge.
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  10. #20
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Der C-Code in den Aktionen ist ganz schönes Gebastel:
    Mit GetTagWordWait wird eine Word-Variable gelesen, einer DWORD-Variablen zugewiesen, mit einem INT verknüpft und wieder auf den Word-Tag geschrieben ...

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. Konfiguration Antriebsgerät
    Von jupiter3 im Forum Antriebstechnik
    Antworten: 4
    Letzter Beitrag: 31.12.2013, 00:30
  2. Antworten: 9
    Letzter Beitrag: 26.06.2012, 15:59
  3. Konfiguration einer Master-Slave Konfiguration
    Von Aeppel713 im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 29.03.2011, 09:00
  4. Beckhoff Konfiguration
    Von Diesla im Forum Feldbusse
    Antworten: 4
    Letzter Beitrag: 22.12.2007, 10:30
  5. HW-Konfiguration ET200S
    Von Spiff im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 19.06.2007, 07:06

Stichworte

Lesezeichen

Berechtigungen

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