AWL-Code-Portierung von Moeller-Electric (Sucosoft) zu Siemens / Verständnisfrage

So mache ich es auch immer, wenn ich von irgendeiner PLC zu einer anderen PLC konvertieren muss. Das geht für mich in KOP am besten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Umschaltung geht in aller Regel problemlos, solange man den AWL-Code nicht mit SCL aufhübscht. Zumindest in der V 5.06 kann man nämlich beide Sprachen problemlos mischen. Naturgemäß nur nicht innerhalb eines logischen Konstrukts.
Beispiel:
Code:
Ld Freigabe_Putzvorgang
and (RRM_Uhrbetrieb
and Uhr_Start
or (RRM_Spiegeldiff
AND ( Differenz_Start
OR Uhr_Start
)
)
or (externer_Start
andn RRM_Handbetrieb
)
)
st Endschalter_ueberbruecken

LED_Warnung := Endschalter_ueberbruecken & Blinker_1HZ;

Das mache ich bisweilen, wenn ich in alten Programmen was ändern und dabei rechnen muss.
 
Wo ich mich aktuell noch schwer tue ist es die Timerfunktionen von Sucosoft nachzubilden. In den Funktioen S_TimeRising & S_TimeFalling besteht die Möglichkeit eines "Hold", was ich bisher bei Siemens nicht so gefunden habe. Sicher könnte man mit entsprechend Aufwand nachprogrammieren, aber vlt. kennt jemand eine elegante, schnelle Variante, mit TON & TOF habe ich die Möglichkeiten zumindest nicht.

Hier der Auszug am Beispiel S_TimeRising:

1681504339575.png

Nach Internetrecherche gibt es wohl TIA Bibliotheken mit TONR bzw. TOFR, welche sich zumindest von der Funktionsbeschreibung her so lesen.
 
Bei Timern würde ich mir auch nochmal im Detail ansehen, wie das Verhalten bei PT=T#0s ist. Bei Siemens schaltet bei dem Wert ein TON nämlich nicht wie man vermuten würde unverzögert IN auf Q, sondern NIE!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei Timern würde ich mir auch nochmal im Detail ansehen, wie das Verhalten bei PT=T#0s ist. Bei Siemens schaltet bei dem Wert ein TON nämlich nicht wie man vermuten würde unverzögert IN auf Q, sondern NIE!
Da sind wir anfangs auch drauf reingefallen, als wir Zeiten über ein Panel vorgegeben haben und da jemand ins Eingabe-Feld " 0" eingetragen hatte.
 
Wo ich mich aktuell noch schwer tue ist es die Timerfunktionen von Sucosoft nachzubilden. In den Funktioen S_TimeRising & S_TimeFalling besteht die Möglichkeit eines "Hold", was ich bisher bei Siemens nicht so gefunden habe. Sicher könnte man mit entsprechend Aufwand nachprogrammieren, aber vlt. kennt jemand eine elegante, schnelle Variante, mit TON & TOF habe ich die Möglichkeiten zumindest nicht.

Hier der Auszug am Beispiel S_TimeRising:

Anhang anzeigen 68274

Nach Internetrecherche gibt es wohl TIA Bibliotheken mit TONR bzw. TOFR, welche sich zumindest von der Funktionsbeschreibung her so lesen.
Diese Timer S_TimeRise und S_TimeFalling sind eigentlich nicht Standard im Codesys und der IEC61131-3. Die kommen aus der Bibliothek von Moeller (XS40_MoellerFB.lib).
Das kannst du aber mit einem Zähler bauen. "Set" und "Takt" zählt hoch, "Hold" stoppt das zählen und "ReSet" setzt den Zähler zurück...
 
Richtig, diese Timer dienten wohl in erster Linie der Migrationsfähigkeit älterer, noch unter DOS erstellter Programme! Diese Zeitfunktionen sind im Übrigen nur sekundengenau und erlauben maximal 65535 Sekunden oder gut 18h. Mit einem UDInt-Zähler und kleineren Takten wäre da mehr drin, falls nötig.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei Timern würde ich mir auch nochmal im Detail ansehen, wie das Verhalten bei PT=T#0s ist. Bei Siemens schaltet bei dem Wert ein TON nämlich nicht wie man vermuten würde unverzögert IN auf Q, sondern NIE!
Das stimmt so nicht! Das ist nur bei nicht Optimierten Bausteinen und in der 300/400 so. Wenn du Optimierte Bausteine in der 1200/1500 verwendest schalten die Timer bei PT=0 sofort durch.
 
Das stimmt so nicht! Das ist nur bei nicht Optimierten Bausteinen und in der 300/400 so. Wenn du Optimierte Bausteine in der 1200/1500 verwendest schalten die Timer bei PT=0 sofort durch.
Dann scheinen die ja jetzt einen jahrzehnte alten Fehler beseitigt zu habem. Werd's mir nachher mal in einer realen S7 1200 ansehen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Dann scheinen die ja jetzt einen jahrzehnte alten Fehler beseitigt zu habem.
Das ist kein Fehler, sondern Systemverhalten. Das Verhalten wurde von Siemens so festgelegt, bevor andere Gremien anderslautende Standards festgelegt hatten. Und jetzt mit TIA muß Siemens entscheiden, ob sie kompatibel zu früher bleiben oder zu den neueren Standards.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In Tia (CPU1200) schaltet der Timer auch bei 0ms durch. Egal ob optimerter Zugriff oder nicht.
 

Anhänge

  • IMG-20230418-WA0002.jpg
    IMG-20230418-WA0002.jpg
    67,3 KB · Aufrufe: 12
Zuletzt bearbeitet:
Bei Timern würde ich mir auch nochmal im Detail ansehen, wie das Verhalten bei PT=T#0s ist. Bei Siemens schaltet bei dem Wert ein TON nämlich nicht wie man vermuten würde unverzögert IN auf Q, sondern NIE!
Hier hattest du etwas anderes festgestellt (zumindest bei 1200/1500érn):
Ich möchte mal die unterschiedlichen Verhaltensweisen der Timer in den verschiedenen Siemens Steuerungen zur Diskussion stellen, denn meiner Meinung nach ist da die ein oder andere Variante wo das Verhalten mindestens zwefelhaft ist.

Verglichen habe ich:
.........

TON-Timer S7-1200/1500

a) Schaltet IN bei T#0s unverzüglich durch
b) Wurde IN (aus welchen Beweggründen auch immer) mit TRUE aus der AS geladen und als Startwert gesetzt, dann läuft der Timer trotz IN:=true nach Neustart überhaupt nicht ab.
c) Ändern der Zeit bei laufendem Timer von lang nach kurz nicht möglich. Ändern der Zeit bei laufendem Timer von kurz nach lang nicht möglich.
Anders bei der 300/400ér:
S7-300/400: TON SFB4
a) Schaltet IN bei T#0s nicht durch
 
Zurück
Oben