# S5 auf S7 Übersetzen (AWL)



## Mark112 (13 April 2010)

Hallo,
ich muss in meinem Betrieb folgendes Netzwerk übersetzen. Leider sind hier Befehle eingebaut wo ich nichts anfangen kann, kann mir jemand Helfen oder sogar übersetzen?

:A DB 3
:UN M 32.4
:SPB =M001
:L DW 0
:L EW 38
: <=F
:S M 33.2
M001 :U M 32.4
:O M 32.6
:SPB =M002
:L KF +0
:T PW 38
M002:***

LG Mark112

PS: Das größte problem habe ich mit dem begriff:
L KF +0


----------



## bs (13 April 2010)

> PS: Das größte problem habe ich mit dem begriff:
> L KF +0


KF bedeutet Konstante Festpunkt Du kannst das mit L 0 ersetzen.

Grüße
BS


----------



## Mark112 (13 April 2010)

Danke, jetzt kommt noch rot das a db 3 in der ersten zeile und L DW0 in der 3.zeile
sowie das T PW 38 vorletzte Zeile und Das M001: U M 32.4 kann das daran liegen das 3 Netzwerke weiter auch ein solcher Sprungbefehl benutzt wird?


----------



## Rainer Hönle (13 April 2010)

A DB 3 wird zu AUF DB 3
L DW 0 wird zu L DBW 0 // Achtung: S5 adressiert wortweise, S7 byteweise!!!
T PW 38 wird zu T PAW 38 // Achtung: Stimmt die Belegung wirklich??


----------



## PhilippL (13 April 2010)

Mark112 schrieb:


> :A DB 3
> :UN M 32.4
> :SPB =M001
> :L DW 0
> ...



A DB3 ist gleichbedeutend wie AUF DB3 in der S7-Welt
Jetzt wird dein L DW0 auch nicht mehr rot markiert.
Es wäre auch möglich A DB3 zu löschen und bei L DB3.DBW0 zu schreiben.

das T PW38 sollte eigentlich auf ein Peripheriewort (in S7 => PAW38 ) zeigen bin mir aber nimmer ganz sicher. Ich denke abermal das sollte so sein. 

Oh Gott sind meine S5-Zeite lange her... *grübel*

Gruß

PhilippL

PS: Rainer war schneller


----------



## Mark112 (13 April 2010)

Danke war alles sehr Hilfreich

Ich Übersetzt das Programm hier von einer alten S5 95U^^ Soll es eig. auch nur Wort wörtlich übersetzten nur manche Befehle werden nicht mehr angenommen.

Jetzt nur noch das einzigste Problem Die eingabe M001: U M32.4 nimmt er mir noch nicht an, kann das daran liegen das zwei Netzwerke Weiter auch Der Befehl steht nur nicht mit 32.4 sodern .6 also M001: U M32.6
Kann ich diesen Sprungbefehl nur einmal in einem Projekt vergeben? Oder worand liegt es 

Ich habe in meiner Ausbildung leider nie was mit S5 gelernt ist nicht mehr im Ausbildungsplan :-( aber in unserem Betrieb noch verbreitet!

Gruß Mark112


----------



## clweb (13 April 2010)

Mit der S7 Software  der S5/S7 Konverter mitgeliefert. Für solche einfachen Programme (ohne S5 Systembefehle) ist der Konverter bestens geeignet, und er verwaltet auch bestens die  Adressierung in den DBs (Word in S5,  in S7).


----------



## bike (13 April 2010)

clweb schrieb:


> Mit der S7 Software  der S5/S7 Konverter mitgeliefert. Für solche einfachen Programme (ohne S5 Systembefehle) ist der Konverter bestens geeignet, und er verwaltet auch bestens die  Adressierung in den DBs (Word in S5,  in S7).



Und erzeugt einen S7 Code, den keiner mehr versteht. 

Also es ist besser das manuell zu machen und dann auch gleich zu dokumentieren. 

bike


----------



## Mark112 (13 April 2010)

wie finde ich den S5 Konverter? Hab noch nie etwas damit gemacht?
LG


----------



## bike (13 April 2010)

Bei den Installierten Step 7 Programmen.
Aber wie schon erwähnt ich würde es dir abraten, du wirst, wenn du darin Fehler suchst ein echtes Problem vor dir haben.


bike


----------



## Rainer Hönle (13 April 2010)

Mark112 schrieb:


> Danke war alles sehr Hilfreich
> 
> Ich Übersetzt das Programm hier von einer alten S5 95U^^ Soll es eig. auch nur Wort wörtlich übersetzten nur manche Befehle werden nicht mehr angenommen.
> 
> ...



Sprungmarken müssen im Baustein eindeutig sein. Einfach mal umbennen (Marke plus Absprünge). Dann sollte es funktionieren.


----------



## clweb (13 April 2010)

Den übersetzten Code versteht man schon. Ich sagte ja, wenn keine Systembefehle dabei sind.
Ich hatte auch mal ein Kunde der per Hand ûbersetzt hat, und all seine DB Adressen waren falsch, da er vergessen hatte das man die Wortadressen in Byteadressen wandeln muss. 
Also wie gesagt für trivialer Code ohne Systembefeund indirekter Adressierung ist der Konverter schon brauchbar. Die meisten Programme aus 95U und 100U können damit gewandelt werden.
Aber jeder ist frei....


----------



## Mark112 (13 April 2010)

funktioniert eh nicht bei mir  warum auch immer^^ also das Eine Programm habe ich jetzt soweit übersetzt. Vielen Dank für eure Hilfe.
Hab jetzt noch FB´s wo ich nicht reinschauen kann wenn da noch jemand was wüsste, ich bin natürlich ganz ohr ;-)
FB 240, FB 241, 242, 243, 250, 251


----------



## clweb (13 April 2010)

Diese FBs sind im System der 95U integriert.
In der Bibliothek S5_S7  (oder so ähnlich) im Step7 sin FCs die diese S5 FBs emulieren bzw ersetzen.
Ein Teil davon sind Multiplikation/Division die man durch die einfachen Befehle ersetzen kann (gibt aber FCs die die gleichen Parameter die S5 FBs haben)


----------



## testuser (13 April 2010)

bike schrieb:


> Und erzeugt einen S7 Code, den keiner mehr versteht.
> 
> Also es ist besser das manuell zu machen und dann auch gleich zu dokumentieren.
> 
> bike



kann auch nicht nachvollziehen wie man diesen misr *sorry* jemanden empfehlen kann. bausteinnummern und -typen ändern sich, es wird glaube alles in FBs gewandelt.

dann lieber ein bisschen zeit investieren und ein programm neu schreiben und gleichzeitig logisch aufbauen.

ich habe das einmal verwendet und bin dann mit den erzeugten code überhaupt nicht zurecht gekommen. anschließend das programm händisch neu aufgebaut und alles läuft ohne probleme.


----------



## clweb (13 April 2010)

testuser schrieb:


> kann auch nicht nachvollziehen wie man diesen misr *sorry* jemanden empfehlen kann. bausteinnummern und -typen ändern sich, es wird glaube alles in FBs gewandelt.


Ja in S5 gab es OBs,PBS und FBs
In S7 gibt es keine PBs, deren funktion wird von FCs übernommen und die FBs von S7 haben nichts mit den S5 FBs zu tun. Also müssen sie S5 FBs auch als FCs gewandelt werden. Da ist klar das die Nummern nicht behalten werden können.
Durch denringen Speicher in den S5 SPS, war deren Code auch nicht immer lesbar geschrieben. Es wurde Speicher optimiert. Und ein Konverter kann kein schlechter Code in guten Code wandeln.
Aber um KOP oder FUP Bausteine zu wandeln ist er schon hilfreich und erspart Kopierarbeit.


----------



## JörgK (13 April 2010)

> Hab jetzt noch FB´s wo ich nicht reinschauen kann wenn da noch jemand was wüsste, ich bin natürlich ganz ohr ;-)
> FB 240, FB 241, 242, 243, 250, 251


Wie clweb schon schrieb, sind das in der CPU integrierte FBs, die sich nicht auslesen lassen (Siemens halt).

Anbei mal nen Sceeny mit der Liste der Funktionen dieser FBs.


----------



## bike (13 April 2010)

clweb schrieb:


> Aber um KOP oder FUP Bausteine zu wandeln ist er schon hilfreich und erspart Kopierarbeit.



Wenn kopieren die Lösung ist, dann hast du wohl recht.

Doch wie schon beschrieben beginnt das Problem mit den eingebauten Funktionen von S5.

Also ich habe bis heute noch kein Programm gefunden, das von S5 nach S7 mit dem Crosscompiler so umgesetzt wurde, dass es sofort funktioniert hat und das auch noch verständlich ist.

Wenn das S5 Programm vorhanden ist und für die Maschine ein vernünftiger Plan existiert, dann ist es besser und zukunftssicherer das Programm neu zu schreiben.

bike


----------



## Mark112 (14 April 2010)

clweb schrieb:


> Diese FBs sind im System der 95U integriert.
> In der Bibliothek S5_S7 (oder so ähnlich) im Step7 sin FCs die diese S5 FBs emulieren bzw ersetzen.
> Ein Teil davon sind Multiplikation/Division die man durch die einfachen Befehle ersetzen kann (gibt aber FCs die die gleichen Parameter die S5 FBs haben)


 
d.h. ich finde die bei Step 7 in der Bibliothek? und die FB´s von dem S5 Programm sind bei Step7 dann als FC hinterlegt?


----------



## MarkusP210 (14 April 2010)

Gelöscht!!


----------



## bike (14 April 2010)

Mark112 schrieb:


> d.h. ich finde die bei Step 7 in der Bibliothek? und die FB´s von dem S5 Programm sind bei Step7 dann als FC hinterlegt?


Ja du kannst finden.
in der Standard library.
Da gibt es eine S5 -S7 Converting Blocks.

bike


P.S: Aber noch einmal der Hinwies:
Tu dir das nicht an, wenn du die Anlage noch länger betreuen willst oder musst.


----------



## HPE (14 April 2010)

Also ganz so schlimm wie bike es darstellt, finde ich es nicht. Gerade einfache Programme der 95U/100U-Reihe mit hauptsächlich Bitverknüpfungen lassen sich ganz gut konvertieren. Natürlich geht es nicht ohne Nacharbeit und das S7-Programm wird auch nicht besser als es das S5-Programm vorher war. Aber wenn das S5-Programm vorher brauchbar war, dann würde ich es auf jeden Fall versuchen. Was mich noch am meisten stört, ist das "willkürliche" umnummerieren der Bausteine beim Konvertieren. Ich ändere daher meist vor dem Konvertieren manuell die Nummer des S7-Zielbausteins z.B. nach folgendem Schema:
(S5) PB x --> (S7) FC x
(S5) FB x --> (S7) FC 200+x
Damit finde ich mich anschliessend wesentlich einfacher zurecht.


----------



## bike (14 April 2010)

HPE schrieb:


> Also ganz so schlimm wie bike es darstellt, finde ich es nicht.



Kann es sein, dass ich vielleicht aus Erfahrung weiß, wie scheiße  es ist ein konvertiertes Programm zu warten und ggF zu ändern? 


bike

P.S: Schade eigentlich, dass Step7 Ver 1 nicht so echt bekannt und benutzt wurde. Würde eine natürliche Selektion der PLC Programmierer, oder die sich dazu berufen fühlen, nach sich ziehen.


----------



## JörgK (14 April 2010)

> d.h. ich finde die bei Step 7 in der Bibliothek? und die FB´s von dem S5 Programm sind bei Step7 dann als FC hinterlegt?


Jup,

Bibliothek -> Standard Library -> S5-S7 Converting Blocks

S5 -> S7
-------------------------
FB240 -> FC81
FB241 -> FC82
FB242 -> FC83
FB243 -> FC84
FB250 -> FC100...FC107 (einfach mal die FCs einzeln anwählen und mit F1 die jeweilige Hilfe lesen)
FB251 -> FC108


----------



## Mark112 (28 April 2010)

Alles klar danke euch


----------



## superkato (26 Oktober 2012)

übersetze auch gerade was. SPB FB 126 (Send-A) was ist das denn bei S7 ?
Gibts eine Liste mit ALT <-> NEU FB's ìrgendwo als Übersicht und hilfe beim Übersetzen?

Kann jemand ein gutes Tool empfehlen, der S5 Converter von Step7 zeigt mir immer 70Fehler an  ?


----------



## clweb (26 Oktober 2012)

Ja es gibt FBs bzw Fcs in S5 Konverter Bibiothek.
Aber was nicht direkt übersetzt werden kann sind FBs die bestimmte Hardware unterstützen sowie der FB126. Die Kommunikationsbaugruppen werden bei S7 ganz anders verwaltet und da kann man nur per Hand die Anpassungen vornehmen. Genau so mit den Nachfolger der S5 IP Baugruppen.


----------



## Eliza (26 Oktober 2012)

Auch ich darf jetzt ein S5-Altprogramm nach S7 retten. Soweit hat das mit dem Konverter ganz gut geklappt. Habe jetzt nur ein kleines Verständnisproblem mit einem Taktgeber. Der sieht im übersetzten S7-Code jetzt so aus:


```
AUF DB 11;
       UN  M 100.7;
       L   DBW 0;
       SE  T 0;
       U   T 0;
       =   M 100.7;
       UN  M 100.7;
       BEB;
       UN  M 100.0;
       =   M 100.0;              // 1XGRUNDZEIT
       BEB;
       UN  M 100.1;
       =   M 100.1;             // 2XGRUNDZEIT
       BEB;
       UN  M 100.2;
       =   M 100.2;             // 4XGRUNDZEIT
       BEB;
       UN  M 100.3;
       =   M 100.3;             // 8XGRUNDZEIT
       BEB;
       UN  M 100.4;
       =   M 100.4;             // 16XGRUNDZEIT
       BEB;
       UN  M 100.5;
       =   M 100.5;             // 32XGRUNDZEIT
       BEB;
       UN  M 100.6;
       =   M 100.6;             // 64XGRUNDZEIT
```

in DB11.DBW0 steht HEX50, im Programm werden M100.0 und M100.1 verwendet.

Ich würde die ganze Geschichte jetzt gerne mit S7 Taktmerkern lösen, weiß nur leider überhaupt nicht, welche Frequenz die jetzt haben müssen. Vielleicht hat ja jemand eine Idee.

Gruß, Eliza


----------



## centipede (26 Oktober 2012)

Dein Grundtakt ist der Merker 100.7 über den Timer 0. Die Zeit steht im DB11 DW0.
Die weiteren Merker sind immer eine "Verdoppelung" der Zeit, entspricht eigentlich von der Funktion genau dem S7-Taktmerkerbyte.
Ob die Zeiten passen hängt vom DW0 ab.


----------



## MRose (26 Oktober 2012)

Hallo,

HEX50 wären dann KT50.0 also 500ms.


----------



## Eliza (26 Oktober 2012)

Hallo!
Soweit klar. in DBW0 steht ja nun die 50 (HEX). Nur zum Verständnis: wieso 50 und nicht 30 oder 60 oder......... ?
Also wenn ich jetzt MB1 als Taktmerkerbyte in S7 nehme, dann entspricht M100.0 dem M1.0, M100.1 dem M1.1. Oder sehe ich das verkehrt?

Gruß


----------



## MRose (26 Oktober 2012)

Das ist verkehrt. 
M100.0 entspricht dann M1.3 und M100.1 dem M1.5 (glaub ich  ).


----------



## Eliza (26 Oktober 2012)

ja, das scheint logisch. wenn die HEX50 500ms entsprechen, dann ist das so, wie du schreibst. Danke!


----------

