TIA Datentyp TIME remanent speichern/ in db speichern

Riewedieb

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

Ich habe eine frage und hoffe auf eine Hilfestellung.

Ich habe in ein vorhandenes Projekt 2 Zeiten für eine Heizungssteuerung programmiert. Beide als Datentyp TIME und erreichbar/schreibbahr aus der HMI.
Soweit funktioniert auch alles und die TIME variablen steuern per TON die Heizungsroutine.

Ich habe nur das Problem, dass sie sich nicht als Remanent einstellen lassen (haken setzen nicht möglich).

Das heißt, nachdem Neustarten der Maschine läuft die Heizung erst an, wenn beide Werte neu eingetippt werden.
Obwohl ich einen Startwert festgelegt habe.

Falls das Hilfreich ist, ich Verwende Tia V15 und es ist eine CPU1512SP-1 PN verbaut.

Wie kann ich das Problem lösen?

Für Ideen und Anregungen bin ich sehr dankbar, danke an euch im Vorraus! :)

beste Grüße
Ulli
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kannst du einmal einen Screenshot von der Stelle und deinem DB zeigen?
Bisher habe ich es noch nicht in einem DB geschrieben, weil ich das ehrlichgesagt noch nicht gemacht habe und keinen Plan davon habe.

ich verwende jetzt meine PLC Variable direkt an dem "TON" Baustein.
 

Anhänge

  • Heizungsroutine1.png
    Heizungsroutine1.png
    1,8 MB · Aufrufe: 42
Bisher habe ich es noch nicht in einem DB geschrieben, weil ich das ehrlichgesagt noch nicht gemacht habe und keinen Plan davon habe.
Aber du schriebst doch, du kannst den Haken "remanent" nicht setzen. Wo war dass denn jetzt?

Ich vermute mal aus der Variablentabelle. Ein Eingangswort kann man nicht remanent schalten. Das macht ja auch keinen Sinn.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dir ist klar, dass du ein Eingangsdoppelwort verwendest für den Zeitwert? Woher kommt dieses?
Ich habe auf der Seite meiner HMI eine Fläche zum Eingeben der Zeit erstellt. Als Datentyp TIME gewählt, dementsprechend ist meine PLC Variable auch als TIME deklariert.

Aber du schriebst doch, du kannst den Haken "remanent" nicht setzen. Wo war dass denn jetzt?

Ich vermute mal aus der Variablentabelle. Ein Eingangswort kann man nicht remanent schalten. Das macht ja auch keinen Sinn.

Okay, also geht kein weg dran vorbei einen DB zu erstellen?


Normalerweise "Programmiere" ich nicht mit Siemens, mache das nur aufgrund Personalmangels.
 
Funktionieren tut es bis zum Netzausfall/Ausschalten der Presse Problemlos. Danach bestätigt man die Werte und alles läuft wieder.
okay, ich versuche eine andere rangehensweise, Danke dir für deine Hilfe.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
also geht kein weg dran vorbei einen DB zu erstellen?
1) Laß die HMI nicht auf alle möglichen geeigneten und ungeeigneten globalen Variablen zugreifen (das erschwert die Übersicht für Programmierer nach Dir!), sondern erstelle eine übersichtliche Schnittstelle zwischen PLC und HMI in Form eines oder mehrerer DB "HMI" (oder "von_HMI" / "zu_HMI" ...). In diese DB packst Du die Variablen, auf die die HMI zugreifen soll. Und in diese "HMI"-Variablen kopierst Du die Werte, die das HMI anzeigen soll.

2) Weil TIA bei Änderungen an DB oft diese DB initialisieren will und die Werte in den DB dann futsch sind, packe alle Einstellwerte (insbesondere die remanenten Einstellwerte) in eigene globale DB mit Reserve-Variablen, so daß Du diese DB später möglichst nie mehr ändern musst.

Hier in Deinem Fall erstelle einen DB "Einstellwerte_Heiz" mit den Variablen T_SET_HEATING_ON und T_SET_HEATING_OFF und weiteren Reserve-Time-Variablen für weitere Timer. An den Variablen kannst Du alle gewünschten Häkchen setzen. Die Variablen "Einstellwerte_Heiz".T_SET_HEATING_ON und "Einstellwerte_Heiz".T_SET_HEATING_OFF verschalte an PT der TONs.

Harald
 
So als kleiner Zwischenstand, ich habe nun einen DB erstellt und verarbeite dort meine zwei TIME Daten, mit dem DB steuer ich dann die Zeitglieder TON. Die Schaltung funktioniert soweit und ist auch remanent. Sprich nach Neustart wird die Heizung weiter laufen.

Ich habe nur festgestellt dass ich doch einen Siemens Kurs besuchen muss, eine Lampe Schalten oder ein Ventil zusätzlich ansteuern ist alles kein Problem, oder eben auch die Anpassung der HMI (Wir vertreiben Pressen aus Fernost, die habens nicht so mit Optik) ist kein Problem, sobald es tiefer geht, hört mein Wissen auf.

Vielen Dank für die Hilfestellungen :)
 

Anhänge

  • DB35.png
    DB35.png
    863,7 KB · Aufrufe: 22
2) Weil TIA bei Änderungen an DB oft diese DB initialisieren will und die Werte in den DB dann futsch sind, packe alle Einstellwerte (insbesondere die remanenten Einstellwerte) in eigene globale DB mit Reserve-Variablen, so daß Du diese DB später möglichst nie mehr ändern musst.
Wenn du Variablen wie "Reserve1", "Reserve2" anlegst, dann musst du später diese auch unter diesen Namen verwenden, denn ein Umbenennen setzt ebenfalls alle Werte zurück. Wenn man später kein undokumentiertes Programm ohne sprechende Variablen haben will, kann man sich bei TIA Reserve-Variablen sparen, es bringt nichts. Oder wie soll das funktionieren?
 
Man könnte die Reserve-Variablen auch "Einstellzeit_3, Einstellzeit_4, Einstellzeit_5 ..." nennen, oder gleich ein Array "Einstellzeit [1..100] of Time" nehmen. Und einen sprechenden Variablenname und/oder Beschreibung der Variable sukzessive nur in den Kommentar schreiben. Dann sind die Variablen nicht mehr "undokumentiert". Wird bei Kommentaränderungen der DB initialisiert?
"Sprechende" Variablennamen sind eh' überbewertet, besonders bei Timern - das TIA vergibt ja schon automatisch irgendwelche Variablennamen, mit denen das Programm fehlerfrei übersetzt werden kann. Wozu dann noch sooo viel Arbeit in Überlegen von Variablennamen und Umbenennen investieren, wenn es auch ohne geht ;) Außerdem lassen sich Variablennamen nicht mehrsprachig deklarieren, selbst wenn man es besonders schick und "sprechend" realisieren will. ;)

Wenn man unbedingt will, kann man die vorläufigen Namen der Reserve-Variablen auch später mal umbenennen, wenn es organisatorisch besser passt und man Zeit zum Vorbereiten und Ausbügeln der Zwangs-Initialisierung hat. Besser bei Programmerweiterungen an laufender Anlage (ggf. unter Zeitdruck) eine bereits vorhandene Variable mit nicht optimalem Name verwenden, als sich da auch noch mit gerade unpassenden DB-Initialisierungen rumschlagen zu müssen.

Harald
 
Zurück
Oben