Indirekete Bearbeitung S5 nach S7

Marc_3

Level-1
Beiträge
30
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Ich bin zurzeit dabei ein S5-Programm nach S7 umzusetzen und bin bei einigen Fb´s in der S5 auf einen so genannten Bearbeite Befehl "B" gestoßen und weiß nicht genau wie ich ihn umsetzen kann in der S7. Es wäre klasse wenn mir jemand an dem unten beschriebenen Auszug aus dem S5 Programm eine passende S7 Lösung beschreiben könnte, das würde mir sehr viel helfen.

vielen Dank im voraus, Marc

Auszug aus einem FB der S5:

L Eingang_FB
+F
I 20
T MW 176

B MW 176
A DB 0

B MW 178
L DW 0
A DB 2
T DW 6

L MW 176
L KH 0014
!=F
= M 234.0
UN M234.0
SPB =M002

A DB 10
B MW 178
L DW 0
A DB 2
T DW 16
 
Hallo Marc_3,
Das ganze macht noch keinen richtigen Sinn, irgendwas fehlt da noch.

Auszug aus einem FB der S5:

L Eingang_FB
+F
Da muss noch vorher was in den Akku geladen werden, sonst wird die Anweisung "+F" irgendetwas undefiniertes anstellen.
Auch in das MW 178 muss vorher etwas geschrieben werden, damit das einen Sinn ergibt.
Vielleicht solltest Du noch etwas mehr Code posten, damit man die Funktion nachvollziehen kann.
Gruss
Question_mark
 
Kompletter FB aus der S5

Hallo,
danke für die Antworten hat mir schon etwas weitergeholfen.

Hier der komplette FB5 aus meiner 115U, leider ohne Beschreibung da ich nur einen AG-Abzug habe.

gruß Marc

Name: D-Tausch
Bez : PRNR
Bez : P2
Bez : DWAD
Bez : D2
----------------------------

UN M 14.2
UN M 63.0
SPB =M001
S M 63.0
R M 63.2

LW =DWAD
L =D2
+F
T MW 178

LW =PRNR
L =P2
+F
I 20
T MW 176

B MW 176
A DB 0

B MW 178
L DW 0
A DB 2
T DW 6

L MW 176
L KH 0014
!=F
= M 234.0
UN M 234.0
SPB =M002

A DB 10
B MW 178
L DW 0
A DB 2
T DW 16

A DB 11
B MW 178
L DW 0
A DB 2
T DW 8

SPA =M003

M002:
A DB 12
B MW 178
L DW 0
A DB 2
T DW 16

A DB 13
B MW 178
L DW 0
A DB 2
T DW 8

M003:
M001:
O M 63.2
O M 14.2
ON M 63.0
SPB =M004

S M 63.2
R M 63.0

A DB 2
L DW 21

B MW 176
A DB 0

B MW 178
T DW 0

SPA FB 14
Name: Aktsoll

M004: BE
 
Konvertierung

Hallo Dago,
auch wenn ich nicht gemeint war, antworte ich mal. Ich habe damit schon Anlagen umgesetzt und das Tool ist wirklich ausgezeichnet. Nur sobald es an die Umsetzung von Befehlen mit indirekter Adressierung geht, ist eine Umsetzung aus verständlichen Gründen nicht möglich. Das ist ungefähr so schwierig (oder eher gesagt unmöglich) wie das reverse engineering eines exe Programmes zurück nach C++ oder Delphi. Der Konverter markiert jedoch diese Stellen und gibt evtl. auch Hinweise, wie das zu lösen ist. Hier ist dann kreative Handarbeit angesagt. Man muss erst mal die S5-Funktion verstehen und das dann nach STEP7 umsetzen.
Und wenn von der S5 nur ein AG-Abzug ohne Kommentare und Symbolik vorhanden ist, dann gute Nacht. :shock:

Gruss
Question_mark
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Onkel,

Leider kann man mit dem Programm "konvertieren" nur einen gewissen Programmteil nach S7 umsetzen, die FB's muss man per Hand umsetzen da es gewisse Befehle wie diesen Bearbeite Befehl "B" gibt die sich nicht ohne weiteres umsetzen lassen. Genaueres kannst du wenn du möchtest bei dem Link von Wolfgang weiter oben nachlesen.

gruß Marc
 
mit analogen werten gibt es auch probleme da die bei s5 noch anders normiert wurden, mit speziellen fb´s.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Konverter

@marc_3,
die FB's muss man per Hand umsetzen
Einspruch Euer Ehren, hier könnte der Eindruck enstehen, alle FB's müssen per Hand umgesetzt werden. Dies ist nur bei indirekter Adressierung notwendig, ansonsten kann der Konverter schon damit umgehen. Dies nur zur Klarstellung, damit das keiner falsch versteht..
Gruss
Question_mark
 
Markus schrieb:
mit analogen werten gibt es auch probleme da die bei s5 noch anders normiert wurden, mit speziellen fb´s.

Aber dafür gibt es doch extra die Standard-Library mit S5-S7 ConvertingBlocks, oder? Soweit Siemens das hinbekommen hat, werden die Standardsachen mit diesen Bausteinen abgedeckt.

pt
 
Hallo Marc_3,
ich habe mal versucht deinen FB5 von S5 nach S7 umzuwandeln.
Der neue FB5 benötigt einen "Instanz"-DB welchen ich DB5 genannt habe.
Hier ein Beisiel wie der FB5 aussehen könnte. (Ohne Garantie ;-))

Code:
0.0	in	PRNR	WORD	W#16#0		
2.0	in	P2	  WORD	W#16#0		
4.0	in	DWAD	WORD	W#16#0		
6.0	in	D2	  WORD	W#16#0
===============================

FB5 : D-Tausch
Netzwerk 1:Titel
      UN    M     14.2
      UN    M     63.0
      SPB   M001
      S     M     63.0
      R     M     63.2

//=Vorbereiten der Adress-Pointer=
      L     #DWAD
      L     #D2
      +I 
// T MW 178   
      T     MW   180                    // MW178 & MW180 = MD178

      L     #PRNR
      L     #P2
      +I    
      INC   20
      T     MW   176
//===============================

      AUF   DB [MW   176]

      L     DBW [MD   178]              // [Muss ein Doppelwort sein] !!
      AUF   DB     2
      T     DBW    6

      L     MW   176
      L     B#16#14                     // L KH 0014
      ==I   
      =     M    234.0
      UN    M    234.0
      SPB   M002

      AUF   DB    10
// B MW 178 
      L     DBW [MD   178]              // [Muss ein Doppelwort sein] !!
      AUF   DB     2
      T     DBW   16

      AUF   DB    11
// B MW 178 
      L     DBW [MD   178]              // [Muss ein Doppelwort sein] !!
      AUF   DB     2

      T     DBW    8
      SPA   M003

M002: AUF   DB    12

// B MW 178 
      L     DBW [MD   178]              // [Muss ein Doppelwort sein] !!
      AUF   DB     2
      T     DBW   16

      AUF   DB    13
// B MW 178 
      L     DBW [MD   178]              // [Muss ein Doppelwort sein] !!
      AUF   DB     2
      T     DBW    8

M003: NOP   0
M001: O     M     63.2
      O     M     14.2
      ON    M     63.0
      SPB   M004

      S     M     63.2
      R     M     63.0

      AUF   DB     2
      L     DBW   21

      AUF   DB [MW   176]

// B MW 178 
      T     DBW [MD   178]              // [Muss ein Doppelwort sein] !!

      UC    FB    14
//    Call FB14 , DB14                  // Alternativ
M004: BE

Habe hier mal eine Datei "Fb5_db5.zip" angehängt die den FB5/DB5 als Bibliothek enthält.
Die ZIP-Datei kannst du in das Verzeichniss "C:\Siemens\Step7\S7libs" entpacken.
Danach kannst du in STEP7 die Bausteine in dein Projekt kopieren.
Melde dich falls noch Fragen offen sind.

Gruss
Guido
 

Anhänge

  • fb5_db5.zip
    13,1 KB · Aufrufe: 5
Zuviel Werbung?
-> Hier kostenlos registrieren
@Guido

Hallo Guido,

eine kleine Korrektur sei mir erlaubt :wink:

Das MD178 muß für die indirekte Adressierung im Pointerformat vorliegen, außerdem müsste, unter der Voraussetzung, daß S5-Datenwortnummern übergeben werden, das Ganze mit 2 (Bytes pro DW) multipliziert werden.

Die Sequenz müsste also lauten:

Code:
//=Vorbereiten der Adress-Pointer= 
      L     #DWAD 
      L     #D2 
      +I 
// T MW 178    
      SLD   4                        //  * 2 und in Pointer wandeln, Bitadresse = 0
      T     MD   178                 // MW178 & MW180 = MD178

Gruß Jörg
 
Hallo

schönen Dank für die schnellen Antworten, werde den Baustein morgen gleich mal meiner S7 zum Frühstück geben


gruß Marc
 
Zurück
Oben