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.
 
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:



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!
 
Reaktionen: rlw
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.
 
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.
 
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.
 
Reaktionen: rlw
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.
 
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.
 
Warnt das TIA wegen dem unterschiedlichen Verhalten beim migrieren oder umschalten zwischen standard/optimiert-Zugriff?
Nein, aber beim Migrieren ist ja der Optimierte Zugriff erstmal ausgeschaltet. Ich vermute, das das auch der Grund dafür ist, das es beide Verhalten noch gibt.
 
In Tia (CPU1200) schaltet der Timer auch bei 0ms durch. Egal ob optimerter Zugriff oder nicht.
 

Anhänge

  • 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):
Anders bei der 300/400ér:
S7-300/400: TON SFB4
a) Schaltet IN bei T#0s nicht durch
 
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…