TIA Umbau S5 auf S7

Laurin_SPS

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

zurzeit befinde ich mich in der Ausbildung zum Automatiker.

Ich bin im vierten Lehrjahr und bekam so eben die Aufgabenstellung meiner Individuellen Praktischen Arbeit (IPA)

Ein Teil der Aufgabe besteht darin eine S5 Steuerung durch eine S7 1200 SPS zu ersetzen.
Zudem soll das Programm übernommen werden.

beim Auslesen des Programms aus der S5, erhielt ich ein Programm in AWL.

Jedoch muss ich das Programm nun in KOP oder FUP schreiben, da ich aus irgendeinem Grund im TIA Portal keine AWL Programme
schreiben kann.

folgendes Netzwerk hat mir Schwierigkeiten bereitet:

Netzwerk 12

:U M 3.0
:U A 3.0
:L KT 030.1
:SE T 1
:U M 3.0
:U(
:U T 1 01
:O M 3.1 01
) 01
= M 3.1
:***



Ich hoffe sehr jemand von euch kann mir weiter helfen.

Danke schon im voraus.
 
Naja, entweder KOP oder FUP oder SCL nutzen.

Woren hapert es denn bei den paar Zeilen Programmcode. Die Zeilen lesen sich doch recht einfach ( Einschaltverzögerung mit Selbsthaltung ).
 
Moin Laurin_SPS,

was genau bereitet Dir denn Schwierigkeiten an dem AWL-Code?

:U M 3.0
:U A 3.0
:L KT 030.1 ==> 30*0,1s = 3s
:SE T 1

:U M 3.0
:U(
:U T 1
:O M 3.1
)
= M 3.1

Sieht aus, als sollte M3.1 in Selbsthaltung gehen, wenn der Ausgang >=3s ansteht. Mit M3.0 wird Alles ausgeschaltet.

VG

MFreiberger
 
Danke für deine Antwort

Ich habe vor diesem Programm noch nie eine Anwendungsliste gesehen.
Uns wurde lediglich FUP und KOP gelernt.

Gibt's da nicht so was wie einen Konverter der mir das AWL in FUP oder KOP übersetzt?
 
Du kannst das Programm mit Step7 Classic von S5 nach S7 migrieren.
Da kann man dann teilweise AWL-Code in der Darstellung in KOP/FUP umschalten. Manchmal muß man aber auch per Hand nachbessern, damit das geht.
In der Regel mit NOP 0 Anweisungen, Siehe unten.

Bildschirmfoto 2019-03-18 um 15.07.45.pngBildschirmfoto 2019-03-18 um 15.07.32.jpg
 
Moin Laurin_SPS,

Ich habe vor diesem Programm noch nie eine Anwendungsliste gesehen.
Uns wurde lediglich FUP und KOP gelernt.

Dann ist das natürlich nicht so einfach den Code in KOP/FUP zu übersetzen.


Gibt's da nicht so was wie einen Konverter der mir das AWL in FUP oder KOP übersetzt?

Nein. Von KOP/FUP in AWL geht. Dann sieht man aber, dass man sich seht strikt an eine spezielle Syntax halten muss.
Wenn Operationen in AWL verwendet wurden, die sich in KOP/FUP nicht programmieren lassen geht es gar nicht.

Zu S5-Zeiten waren die grafischen Programmiersprachen noch stark eingeschränkt und nicht alles ließ sich damit umsetzen.


VG

MFreiberger
 
Ich habe eine 1200er, was schlägst du vor ?

Grudsätzlich kannst du das auch in KOP FUP interpretieren.
Ansonsten in SCL.

In jedem Fall ist es üblicherweise mit einfachem abtippen nicht getan. Verstehen was der Code gemacht hat, sollte man schon.
z.B.
Code:
[COLOR=#333333]:U M 3.0
[/COLOR][COLOR=#333333]:U A 3.0[/COLOR]
[COLOR=#333333]:L KT 030.1[/COLOR]
[COLOR=#333333]:SE T 1[/COLOR]

Läd einen Timer indem das VKE einer Undverknüpfung eines Merkers und eines AUSGANGS macht (lesend auf Ausgänge zuzugreifen halte ich nicht für zeitgemäss)
Genausowenig einen interpretierten S5 Timer zu verwenden.

etc.
 
wenn man z.B. in Step7 "sauber" programmiert hat, kann man zwischen KOP/FUP/AWL umschalten.
In Step5 bin ich mir nicht sicher
In S5 konnte man anwählen, ob ein Baustein in KOP, FUP oder AWL angezeigt werden sollte. Netzwerke, die sich nicht (ohne weiteres) in KOP bzw. FUP anzeigen liessen, wurden dann trotz einer Anwahl von KOP oder FUP in AWL angezeigt.
Gespeichert wurde ein S5-Programm im Speicher der SPS bzw. in Dateien auf Diskette oder Festplatte im "MC5-Code", der 1:1 dem AWL-Code entsprach.
Die Angabe, ob ein AWL-Befehl 1 oder 2 oder 3 Worte Speicher belegt, bezieht sich auf den MC5-Code.
In separaten Dateien waren normalerweise symbolische Namen (z.B. SprungMarken) und Kommentare enthalten, im SPS-Speicher jedoch nie, weil sie für die SPS irrelevant waren und Speicherplatz beansprucht hätten.
Die NOPs, die für die KOP- bzw. FUP-Darstellung benötigt wurden, wurden vom KOP- bzw. FUP-Editor automatisch beim ProgrammEintippen eingefügt. Wie der Name NOP (NullOperator) schon sagt, tut er nichts, wenn er von der CPU "ausgeführt" wird - ausser Speicherplatz und Rechenzeit zu verplempern. Die NOPs waren im Speicher der SPS enthalten, so dass das PG die Netzwerke der Bausteine in der KOP- bzw. FUP-Form auch online darstellen konnte, wenn kein passendes offline-Projekt greifbar war.

Gruss, Heinileini
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, gebe ich dir Recht. Eigentlich wäre dies der richtige Zeitpunkt, den Programmcode ins 21 Jahrhundert "hochzurüsten"

Wäre es nicht hilfreich an diesem konkreten Beispiel zu zeigen wie ein "hochgerüsteter" Code für das 21. Jahrhundert aussehen sollte?
Es ist leicht zu sagen "so nicht" aber wie statt dessen weiß der Auszubildende dann immer noch nicht
 
Es ist leicht zu sagen "so nicht" aber wie statt dessen weiß der Auszubildende dann immer noch nicht
Stimmt. Aber frühzeitig schon damit anzufangen, zunächst nur anzudeuten, was man vermeiden sollte, ist sicherlich besser, als den Frischling mit einer Vielzahl von Vorgriffen auf noch bevorstehende Themen zuzuschütten.

Wäre es nicht hilfreich an diesem konkreten Beispiel zu zeigen wie ein "hochgerüsteter" Code für das 21. Jahrhundert aussehen sollte?
Im Prinzip hast Du Recht, aber . . .
Hmmm. Anhand eines total aus dem Zusammenhang herausgerissenen Netzwerks oder noch knapperen CodeSchnipsels die Welt zu erklären, finde ich etwas abenteuerlich.

Was möchtest Du denn an dem Beispiel
Code:
Netzwerk 12:
U   M 3.0
U   A 3.0
L   KT 030.1
SE  T 1
U   M 3.0
U(
U   T 1     01
O   M 3.1   01
)           01
=   M 3.1
***
demonstrieren?
- dass man keine Ausgänge abfragen soll?
- dass man in S7 keine S5-Timer verwenden soll?
- dass symbolische Namen sooo viel besser lesbar sein können als kryptische Buchstaben-Ziffern-Kombinationen?
- dass man bei vielen S5-CPUs statt
Code:
  U   T1 
  O   M 3.1 
  auch 
  O   T1 
  O   M 3.1
hätte schreiben können?
- dass man sich die Klammern hätte sparen können, also statt
Code:
  U   M 3.0
  U(
  U   T 1     
  O   M 3.1   
  )           
  =   M 3.1
  einfacher
  O   T 1     
  O   M 3.1   
  U   M 3.0
  =   M 3.1
möglich gewesen wäre?
- dass es gute bis zwingende Gründe gibt, sich für bzw. gegen temporäre/lokale Variablen zu entscheiden?
- dass man die Variablen immer brav deklarieren muss und so viele Möglichkeiten hat, dabei Fehler zu machen?
- dass man ständig die nötigen TypKonvertierungen beachten muss?
- dass man sich die Übersetzung von S5-AWL in S7-AWL sparen kann, da man das S5-Programm direkt z.B. in SCL übersetzen könnte?
- was für und was gegen "optimierte" Daten- bzw. Programm-Bausteine spricht?
- . . . ?

Gruss, Heinileini
 
Zurück
Oben