Datenaustausch, geht das so?

WL7001

Level-2
Beiträge
182
Reaktionspunkte
17
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe folgende Konstellation :
DP-Master : S7400 vom Kunden
DP-Slave : meine 314C-2DP
Konfiguration : Master Slave , lokale Adresse E500, Länge 16 Worte, Konsistenz Gesamt
Konfiguration : Master Slave , lokale Adresse A500, Länge 16 Worte, Konsistenz Gesamt
Konfiguration : Master Slave , lokale Adresse A532, Länge 16 Worte, Konsistenz Gesamt
Konfiguration : Master Slave , lokale Adresse A564, Länge 16 Worte, Konsistenz Gesamt

nachdem ich meine Daten die der Kunde zur Visualisierung haben möchte in einem DB(4) und die Daten die ich für mein Programm brauche in einem anderen DB(3) gesammelt habe, wollte ich diese mit SFC14 und SFC senden / lesen. War auch alles fertig.

Jetzt will der Kunde die Daten aber nicht mit SFC14/15 lesen/schreiben sondern direkt zugreifen. Soweit auch kein Problem dachte ich, schreibe ich eben mit dem SFC20 die Daten aus den DB direkt auf die PEWs / PAW´s.

Ich habe das wie folgt geschrieben, geht das so?

zum Lesen der PEWs
CALL SFC 20
SRCBLK: P#E 500.0 Byte32
RETVAL: xxx
DSTBLK: P#DB3.DBX0.0 Byte32

zum Beschreiben der ersten 16 PAWs
CALL SFC 20
SRCBLK: P#DB4.DBX0.0 Byte32
RETVAL: xxx
DSTBLK: P#A500.0 Byte32

zum Beschreiben der zweiten 16 PAWs
CALL SFC 20
SRCBLK: P#DB4.DBX32.0 Byte32
RETVAL: xxx
DSTBLK: P#A532.0 Byte32

zum Beschreiben der dritten 16 PAWs
CALL SFC 20
SRCBLK: P#DB4.DBX64.0 Byte32
RETVAL: xxx
DSTBLK: P#A564.0 Byte32

Wenn das so richtig ist, könnte ich auch der Einfachheit halber statt der letzten 3 SFC20 Aufrufe nur einen nehmen, also

zum Beschreiben aller 48 PAWs gleichzeitig :
CALL SFC 20
SRCBLK: P#DB4.DBX0.0 Byte96
RETVAL: xxx
DSTBLK: P#A500.0 Byte96

Bin für eine Beurteilung dankbar.

Gruß Wilhelm
 
Hallo Wilhelm,
liegen denn die Adressen im Bereich deines Prozess-Abbildes ?
Wenn nein, dann sollte es eher so aussehen :
Code:
zum Lesen der PEWs
CALL SFC 20
SRCBLK: P#[B][COLOR=red]P[/COLOR][/B] 500.0 Byte32
RETVAL: xxx
DSTBLK: P#DB3.DBX0.0 Byte32

... und natürlich entsprechend für die PAW's ...

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Wilhelm,

ich sehe da keine Probleme, ich würde allerdings die Konsistenz auf EINHEIT umstellen, da bei einem Direktzugriff keine Konsistenz über die gesamte Länge mehr gegeben ist.

MfG
FrankW
 
Hi LL,

ich dachte, in dem Moment wo ich die Bereiche im DP-Slave vergebe, sind diese Teil meines Prozessabbildes. Oder was versteh ich da nicht?

Auch das hier :
SRCBLK: P#P 500.0 Byte32

verstehe ich nicht. Woher weiss das PRG denn, ob es E500 oder A500 ist? Oder fehlt da nur das E oder A ?

Gruß Wilhelm
 
Hallo Wilhelm,
zum Teil des Prozess-Abbildes wird die HW nur, wenn du es in der HW-Konfig der CPU so einstellst.

Wenn du auf P500.0 schreibst, dann adressierst du damit den Ausgang, wenn du davon liest, dann adressierst du den Eingang. Den Zustand der PAW's kannst du nicht abfragen (es sei denn du hast ihn dir irgendwo zwischen-gespeichert). Der Bereich A und E ist im Grunde eine Zwischen-Speicherung der Perepherie (die aber automatisch passiert).

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Wilhelm,

Dem Kunden kann es doch sch..egal sein, wie du die Daten bewegst. SFC14/15 sind eigentlich genau die richtigen Bausteine. Die Konsistenz muss auf beiden Seiten gleich eingestellt sein.

Gruß, Onkel

Ja, dachte ich auch. Aber ....., so isses eben. Er will es eben so.

Gruß Wilhelm
 
Zurück
Oben