-> Hier kostenlos registrieren
Hallo zusammen,
ich bin derzeit an einem Projekt, bei dem ich eine 1500er CPU als Haupt-SPS habe und bis zu 5 1200er CPUs als dezentrale Rechenknechte bei denen ich die jeiweils 6 HSCs komplett ausreize.
Nun projektiere ich die Kommunikation untereinander und würde dies gerne mit iDevice tun. Datenvolumen 1500er => 1200er etwa 146 Bytes, andere Richtung ca. 20 Bytes.
Die eigentliche iDevice-Kommunikation läuft soweit, die E/A-Prozessabbilder der Kommunikationspartner werden sauber übertragen. Geplant habe ich je Kommunikationspaar je einen Sende- und Empfangs-DB, erstellt über UDTs, schön strukturiert. Auf der 1500er-Seite lässt sich der Sende-DB (als Beispiel) mit dem BLKMOV-Befehl schön auf das Ausgangsprozessabbild schieben, die Signale lassen sich dann auf 1200er-Seite im Eingangswort auslesen.
Jetzt zum eigentlichen Problem. Die 1200er hat ja bekanntlich den BLKMOV-Befehl nicht im Befehlssatz, also habe ich versucht, die Eingangsdaten mit dem POKE_BLK-Befehl in einem SCL-Baustein auf den entsprechenden Empfangs-DB mit gleicher Struktur wie der Sende-DB auf der 1500er-Seite zu kopieren. Leider ohne Erfolg, der Empfangs-DB hat überall die Startwerte.
Anbei den Code im SCL-Baustein:
Machen soll er folgendes: 146 Bytes beginnend aus dem IW256 in den DB1 mit Offset 0 zu schreiben.
Vielleicht kann mir jemand helfen, bzw. sieht jemand wo ich einen Fehler gemacht habe.
Danke schonmal und Gruß
Invasa
ich bin derzeit an einem Projekt, bei dem ich eine 1500er CPU als Haupt-SPS habe und bis zu 5 1200er CPUs als dezentrale Rechenknechte bei denen ich die jeiweils 6 HSCs komplett ausreize.
Nun projektiere ich die Kommunikation untereinander und würde dies gerne mit iDevice tun. Datenvolumen 1500er => 1200er etwa 146 Bytes, andere Richtung ca. 20 Bytes.
Die eigentliche iDevice-Kommunikation läuft soweit, die E/A-Prozessabbilder der Kommunikationspartner werden sauber übertragen. Geplant habe ich je Kommunikationspaar je einen Sende- und Empfangs-DB, erstellt über UDTs, schön strukturiert. Auf der 1500er-Seite lässt sich der Sende-DB (als Beispiel) mit dem BLKMOV-Befehl schön auf das Ausgangsprozessabbild schieben, die Signale lassen sich dann auf 1200er-Seite im Eingangswort auslesen.
Jetzt zum eigentlichen Problem. Die 1200er hat ja bekanntlich den BLKMOV-Befehl nicht im Befehlssatz, also habe ich versucht, die Eingangsdaten mit dem POKE_BLK-Befehl in einem SCL-Baustein auf den entsprechenden Empfangs-DB mit gleicher Struktur wie der Sende-DB auf der 1500er-Seite zu kopieren. Leider ohne Erfolg, der Empfangs-DB hat überall die Startwerte.
Anbei den Code im SCL-Baustein:
Code:
POKE_BLK(area_src:=16#81,
dbNumber_src:=0,
byteOffset_src:=256,
area_dest:=16#84,
dbNumber_dest:=1,
byteOffset_dest:=0,
count:=146);
Machen soll er folgendes: 146 Bytes beginnend aus dem IW256 in den DB1 mit Offset 0 zu schreiben.
Vielleicht kann mir jemand helfen, bzw. sieht jemand wo ich einen Fehler gemacht habe.
Danke schonmal und Gruß
Invasa
Zuletzt bearbeitet: