Merkerbereich kopieren

DiGo1969

Level-2
Beiträge
138
Reaktionspunkte
9
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich möchte den kompletten Merkerbereich in Siemens SCL von M0.0 bis M256.7 nach M40000.0 bis M40256.7 kopieren. Wie kann ich den Merkeraufruf indirekt machen um eine Schleife zu programmieren, damit ich mir nicht die Finger wund schreiben muss?

Dirk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ja gibt es

den hohen Merkerbereich gibt es.

Und zwar setzte ich eine sogenannte X7 CPU von INAT ein. Auf dieser CPU kann man ein S5 und ein S7 Programm gleichzeitig laufen lassen. Um nun von der S7-Seite auf die Merker der S5 zugreifen zu können muss ich einen Offset von 40000 eingeben.
Bevor die Frage kommt wozu ich da mit S5 und S7 was machen will: Diese CPU ist als Zwischenschritt bei der Ablösung einer S5 nach S7. Bei dieser CPU kann ich Schritt für Schritt einen PB, FB... nach dem anderen dürch FC, FB... ersetzten. Sollte dann das ganze Programm auf der S7-Seite laufen tausche ich die S5 durch eine S7 aus und erspare mir die Zeit einer IBN, denn ich arbeite direkt an der laufenden Anlage.

Dirk
 
Hallo Dirk,

Du bist Dir schon im klaren, dass Du damit alle Merker im S5-Teil überschreibst?

Grüße
Gebs
 
darum geht es zwar nicht, aber ich glaube dass das so funktionieren müsste:

OB1:
- kopieren der Merker S7 nach S5
- CALL S5-Programm
- kopieren der Merker S5 nach S7
- CALL S7-Programm


Dirk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja, das sollte so funktionieren, aber d.h. Du musst beim Ersetzen des S5-Codes sehr genau die Aufrufstruktur beachten.
Und wie machst Du das mit der Kommunikation? Vom S7-Teil aus kannst Du die S5-CP's nämlich nicht ansprechen!

Grüße
Gebs

[edit]
P.S.: Wie hast Du das denn mit den Zählern, Timern und den DB's vor?
[/edit]
 
Zuletzt bearbeitet:
Kommunikation ist kein Problem, denn die läuft schon direkt aus der CPU. Da gibt eine TCPIP-Schnittstelle, über die ich mit Siemens H1 ran komme.

Über die Timer, Zähler... mach ich mir keine Gedanken, denn die arbeiten ja auf jeder Seite für sich.

Über die DB's habe ich mir noch keine Gedanken gemacht. Vielleicht genau so wie mit den Merkern. Glücklicher weise kann in SCL dies sehr einfach indirekt und in schleifen gemacht werden.

Dirk
 
Bevor die Frage kommt wozu ich da mit S5 und S7 was machen will: Diese CPU ist als Zwischenschritt bei der Ablösung einer S5 nach S7. Bei dieser CPU kann ich Schritt für Schritt einen PB, FB... nach dem anderen dürch FC, FB... ersetzten.
Dirk
Das ist echt mutig.:cool:
Zwei SPS die sich ein Programm teilen.
Auf eine solche Idee bin ich in 30 Jahren PLC noch nicht gekommen.
Gib bitte Bescheid, ob es geklappt hat und mit welchen Problemen du da gekämpfst hast.


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Dirk:
Bei den DB's wirds ein wenig problematisch, wenn Du auf die Zykluszeit
achten muss.

@bike:
Ich habe schon ein paar Steuerungen mit der X5/X7-CPU umgerüstet. Wenn
man sich der Unterschiede von S5 und S7 bewusst ist (Flankenmerker bei Timern
und Zählern etc.), ist es kein Problem. Die unterschiedliche Adressierung handelt die CPU.
Alles in allem hab' ich mit dem Teil überwiegend gute Erfahrungen gemacht.
Es gab' hier und da mal Problemchen aber die konnten wir dann zusammen mit
dem Entwickler (total super, er war sogar vor Ort) lösen.

Grüße
Gebs
 
Gut, wenn das so einfach funktioniert.
Dass INAT ihr Geschäft kennen weiss ich aus eigener Erfahrung, als wir deren kompinierte TCP/IP und H1 Karte eingesetzt haben. Da waren auch Geburtsfehler zunächst, wurden aber alle behoben.

Also wenn ich ein Retrofit machen darf/muss, dann verwende ich eine PLC.
Ganz erschliesst mir die Verwendung von den kompinierten PLC nicht ganz.
Das kann aber auch meiner Sichtweise auf diese Steuerungen liegen.


bike
 
Wie sind deine Erfahrung bezüglich der Kompatibilität der Inat CPU zu S5 und zu S7?
Irgendwelche Probleme festgestellt?
Ich würde sie evtl. auch gerne mal bei einem der nächsten Retrofit-Projekte einsetzen.
Klappt es mit Profibus oder Profinet ohne Ärger?

Besten Dank!

Gruß
Dieter
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich frage mich gerade wie das bei einem Umbau mit der X5/X7 CPU läuft.

Wird später wenn das Programm fehlerfrei läuft die Hardware auch noch umgebaut? Also die CPU ist nur zur Inbetriebnahme?

Oder bleibt diese X5/X7 CPU im Rack sitzen. Dann hat man aber die ganzen alten S5-Karten drin -> keine Ersatzteile.
Mir erschließt sich nicht so direkt der Sinn des Ganzen. Gleiches gilt auch für die Profibus-Anschaltungen für S5-Racks. Da hat man auch noch die alte S5-Hardware.
 
Operation am offenen Herz

Zum Thema S5 -> S7 hab ich folgendes schon gemacht: In WINCC eine AS511-Verbindung zur S5 und eine Ethernet-Verbindung zur S7. In Abhängigkeit eines Bits (E, DBX,...) schreibt und liest die jeweilige CPU die Peripherie der anderen CPU oder bearbeitet das eigene Programm. WINCC tauscht über ein global Script die DB aus, in denen die Prozessabbilder stehen. Diese Abfrage natürlich an erster Stelle des OB1. Natürlich müssen falls vorhanden Interrupts/Alarme z.B. OB85 beachtet werden und auch in Abhängigkeit des Bits (z.B. U Bit - >BEB) bearbeitet werden. Hab da wirklich beachtliche Zeiten erreicht.
Extrem schnelle Sachen gehen nicht,klar.
Gruß
Sailor
 
@Dieter:
Wie sind deine Erfahrung bezüglich der Kompatibilität der Inat CPU zu S5 und zu S7?
Irgendwelche Probleme festgestellt?
Bezüglich der S7 habe ich bisher keine Probleme gehabt. Bei der S5 gabs es mal
ein Problem mit der Kommunikation zu einem CP. Aber der Entwickler war sofort
bei mir vor Ort und hat das Problem gelöst und mir eine neue Firmware geschrieben.
Klappt es mit Profibus oder Profinet ohne Ärger?
Profibus lief reibungslos. Mit Profinet hab' ich hier keine Erfahrung.

@Thomas:
ch frage mich gerade wie das bei einem Umbau mit der X5/X7 CPU läuft.

Wird später wenn das Programm fehlerfrei läuft die Hardware auch noch umgebaut? Also die CPU ist nur zur Inbetriebnahme?

Oder bleibt diese X5/X7 CPU im Rack sitzen. Dann hat man aber die ganzen alten S5-Karten drin -> keine Ersatzteile.
Mir erschließt sich nicht so direkt der Sinn des Ganzen. Gleiches gilt auch für die Profibus-Anschaltungen für S5-Racks. Da hat man auch noch die alte S5-Hardware.
Ich hab es bisher so gemacht:
1. Tausch der S5-CPU gegen eine INAT-CPU, läuft mit S5-Code
2. Nach und nach wird der S5-Code gegen S7-Code getauscht.
3. Ersetzen des S5-Zentralgerätes durch eine S7 mit IM 463-2
4. Ersetzen der S5-Peripherie (meist mit Adaptern um Verdrahtungsfehler zu vermeiden)

Grüße
Gebs
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Leute,
da ja nun alle anderen Sachen geklärt und diskutiert wurden noch mal zurück zu meinem eigentlichen Problem: Merberbereich kopieren ist das möglich oder muss ich mir meine Finger wund schreiben?

Dirk
 
die richtung war im ursprungpost noch nicht verständlich, deswegen SFC20 ... damit kannst du in der S7-welt große datenmengen sauber umkopieren ...

in S5 wirste wohl zur schleife greifen müssen und dazu noch indirekt adressieren ...
 
in S5 wirste wohl zur schleife greifen müssen und dazu noch indirekt adressieren ...

Nicht unbedingt. Wenns Zum Beispiel ne 948er CPU ist dann gehts mit TNW 255 in einem Rutsch.

Aber nicht so wie Dirk es bräuchte, denn bei der X5/X7 kann man nur von dem S7-Code auf die S5 zugreifen.

Grüße
Gebs
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
wie die Richtung ist nicht verständlich???
Ich möchte in der S7 jedes Bit, Byte, Word oder ... in einem Befehl kopieren ohne mir die Finger wund zu schreiben. Im einfachsten Fall kann das so aussehen:

L MD 0
T MD 40000

L MD 4
T MD 40004

L MD 8
T MD 40008
usw.

oder in SCL

MD0:= MD40000;
MD4:= MD40004;
MD8:= MD40008;
usw.


Eine Möglichkeit in SCL wäre mir lieber...

Dirk
 
Hallo Dirk,

wie schon gesagt: SFC 20

Code:
      CALL  "BLKMOV"
       SRCBLK :=P#M 0.0 BYTE 256
       RET_VAL:=#RetVal
       DSTBLK :=P#M 40000.0 BYTE 256
Grüße
Gebs
 
Hallo Dirk,

wie schon gesagt: SFC 20

die lösung aus beitrag nummer 2 :ROFLMAO:
und wenn die X7 das nun nicht kann?
dann machste da ne schleife mit indirekter adressierung


Code:
*

      TAR1  #dAR1temp
      TAR2  #dAR2temp

      LAR1  P#0.0
      LAR2  P#40000.0

      L     64
next: T     #iLoopCount

      L     MD [AR1,P#0.0]
      T     MD [AR2,P#0.0]

      +AR1  P#4.0
      +AR2  P#4.0

      L     #iLoopCount
      LOOP  next

      LAR1  #dAR1temp
      LAR2  #dAR2temp

übrigens, wenn ich es nur mit AR1 versuche nimmt er die 40000 bei der transferanweisung nicht, ersetzt sie durch P#7232.0 ... hat das irgendwas zu bedeuten :rolleyes:
 
Zurück
Oben