TIA ET200SP erste DQ Karte blinkt | Forcen funktioniert

Suspectus

Level-1
Beiträge
9
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Moinsen,

ich habe das Problem dass die Ausgänge der ersten DQ Karte einer ET200SP immer blinken wenn ich sie aus dem Programm heraus versuche zu schalten, Forcen funktioniert.

Verwendete Komponenten:
  • TIA v18 | Update 5
  • CPU 1515-2PN | Firmware 2.9.8 (projektiert 2.9)
  • IM 155-6 PN ST | Firmware 4.2
  • DQ 16x24VDC/0.5A ST | Firmware 0.0
  • Weitere E/A Karten

Ich habe bereits versucht:
  • Reihenfolge der E/A Karten getauscht, egal in welcher Reihenfolge ich sie stecke und projektiere, es ist immer die erste DQ Karte.
    Ich hatte auch versucht nur die DQ und das Servermodul anzuschliessen und die beiden DQ Karten von der Reihenfolge zu vertauschen.
    Bei z. B. folgendem Aufbau funktionieren alle Karten einschliesslich der 2. DQ Karte ganz normal, nur die erste DQ blinkt, es sei denn man forced sie.
    ET200 - DI - DI - DQ - DQ - AI - A - Servermodul (die erste Karte hat ein weisses Base Modul mit Spannung)

  • Die Adressen der Ausgänge habe ich getauscht in einen Bereich der im restlichen Projekt nicht verwendet wird, dabei habe ich die Variablen nicht automatisch umverdrahtet.

  • Mit folgendem SCL Code am ende im OB1 versucht einen auf der Karte liegenden Ausgang zu beschreiben, da ich zuvor die Adressen komplett geändert hatte und es keine weiteren Querverweise gibt denke ich nicht dass im Programm an anderer Stelle er wieder mit false beschrieben wird.
    Code:
    "variablenname":P := TRUE;
    "variablenname" := TRUE;

  • Das Prozessabbild für diese Karte deaktiviert.

  • Wertstatus und Configuration Control deaktiviert

  • L+/M und BaseUnit überprüft

  • Online & Diagnose zeigt keine Fehler/Warnungen oder ähnliches: "Baugruppe vorhanden. OK"

  • Mit Wireshark den Netzwerk-Verkehr zur ET200 belauscht, keine weiteren Zugriffe gesehen die nicht von der CPU kommen, das Profinet Protokoll zu verstehen habe ich trotz GSD Datei nicht so wirklich geschafft, ich sehe zwar die Schreibzugriffe, kann aber nicht zuordnen welche Ausgänge das genau sind.

  • Die ET200 komplett so wie sie ist habe ich von einem TIA Projekt in ein anderes (mit dem selben CPU Typ) kopiert und das Ethernet Kabel umgesteckt. Bei der funktioniert es Merkwürdigerweise ganz normal, daher vermute ich das es irgendwas im Projekt oder in den Einstellung der CPU sein muss, ich komme aber nicht darauf was es sein könnte und kann leider nicht so einfach alle anderen Programmteile und Teilnehmer rausschmeissen da es sich um eine laufende Anlage handelt.

Hat da jemand eine Idee woran das liegen könnte, ich bin langsam echt ratlos 😩
 
  • Mit folgendem SCL Code am ende im OB1 versucht einen auf der Karte liegenden Ausgang zu beschreiben, da ich zuvor die Adressen komplett geändert hatte und es keine weiteren Querverweise gibt denke ich nicht dass im Programm an anderer Stelle er wieder mit false beschrieben wird.
Ich bin ziemlich überzeugt das du es trotzdem irgendwo mit False beschreibst, möglicherweise mit einem Pointer oder ein überlagertes Word.
Da kommst du am ehesten dahinter wenn du einfach mal alles im Programm überspringst und dann mal Softwareteil für softwareteil wieder aktivierst.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die schnelle Antwort.
Das komplette Programm zu überspringen kann ich leider nicht machen, da das direkt zu einem Anlagenstillstand führen würde.

Ich dachte eigentlich, dass ich das ausschließen kann, da ich die Ausgangsadressen testweise auf einen Bereich gelegt habe, der im restlichen Projekt nirgendwo verwendet wird, ohne die Variablen mit umzuverdrahten.
 
Ich dachte eigentlich, dass ich das ausschließen kann, da ich die Ausgangsadressen testweise auf einen Bereich gelegt habe, der im restlichen Projekt nirgendwo verwendet wird, ohne die Variablen mit umzuverdrahten.
Das kommt ein bisschen auf die Komplexität der Software an. Du kannst auch indirekt auf die Karten schreiben Stichwort RD/WRREC SETIO_PART SETIO etc.
Das ginge dann vollsymbolisch. d.H. nur durch Adressänderung wird der zugriff nicht geändert. Suche im Programm mal nach diesen Anweisungen.

Alternativ mal in PLCSIM laden und schauen was da passiert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Stichwort RD/WRREC SETIO_PART SETIO
Danke! Damit hast du mich in die richtige Richtung gebracht. Da gab es scheinbar noch Überbleibsel im Code von einem Vorgänger meines Vorgängers. 🥲


Die Lösung war:
Ein BMO für einen FU, dem man beim Aufruf eine Adresse als Integer mitgibt. Diese Adresse wurde dann im BMO mit PAW auf den normalen Ausgang geschrieben und zusätzlich (der Problemverursacher) mit DPWR_DAT an die Systemkonstante mit genau dieser Nummer geschrieben.
Es war also einfach nur Zufall, dass genau diese Adressnummer ebenfalls die Nummer der Systemkonstante der Ausgangskarte war, und die Programmierung des BMO's war kompletter Quatsch, DPWR_DAT war da einfach fehl am Platz.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Es wäre vielleicht besser gewesen wenn du da nichz zwei identische treads gemacht hättest (bzw einen gelöscht hättest).
Ich hatte den ersten versehentlich unter der HMI Sparte gepostet, deshalb habe ich einen zweiten erstellt, mit dem Vorhaben, den ersten zu löschen. Allerdings kann man scheinbar seinen eigenen Thread nicht löschen, was ich nicht wusste... Sorry

Und die Lösung etwas genauer beschrieben.
Ich finde, die Lösung ist ziemlich genau beschrieben. Was fehlt dir denn?

Was ist ein BMO? Davon habe ich noch nie gehört.
BMO = Betriebsmittelobjekt

Im Prinzip eine Funktion (in TIA als FC oder FB realisiert) die auf eine bestimmte Komponente zugeschnitten ist, um diese im Programm strukturiert und wiederverwendbar zu verwalten.

Ist zugegeben ein sehr deutscher Begriff, ich hatte es so gelernt.
AWL Deutsch/English Umstellung ist auch ganz schlimm :sick:
 
Ich hatte den ersten versehentlich unter der HMI Sparte gepostet, deshalb habe ich einen zweiten erstellt, mit dem Vorhaben, den ersten zu löschen. Allerdings kann man scheinbar seinen eigenen Thread nicht löschen, was ich nicht wusste... Sorry
Links unten an jedem Beitrag gibt es den Button "Melden".
Damit kannst Du Kontakt zu den Admins aufnehmen und diese z.B. um Löschung oder Verschieben des Threads in ein besser geeignetes Forum bitten.
;)
 
Zurück
Oben