-> Hier kostenlos registrieren
Hallo zusammen,
ich habe folgendes Problem:
Innerhalb eines Funktionsbausteins sind mehrere Datenstrukturen enthalten (Länge 64 Byte). Diese Datenstrukturen müssen an einen DP Slave übertragen werden. Die Länge der zuübertragenden Datenstruktur ist abhängig von meiner zuvor definierten Telegrammlänge (z.B. IN/OUT64Byte; IN/OUT32Byte usw.). Dies funktioniert problemlos mit SFC14/15 und ich kann entsprechend 32 oder 64 Bytes an Slave übertragen bzw. lesen. Nun aber habe ich das Problem, dass es eine Telegrammlänge 64IN/4OUT Bytes gibt. An dieser Stelle kann ich keine SFC15 einsetzen (Fehlermeldung bei Übertragung von 4 Bytes). Welche Möglichkeiten bleiben mir zur Übertragung dieser 4 Bytes an den Slave ? (Um die 4 Bytes konsistent zuübertragen reicht eine Lade/Transfer Operation aus, aber die Parametrierung muss variabel sein).
Folgende Informationen liegen mir als Variable vor:
Adresse im A Bereich --> W#16#200
Telegrammlänge --> 4
Die Nummer des zugehörigen Instanz-DB kann variabel sein (über DINO bekomme ich diese Nummer). Die Positionen meiner Datenfelder innerhalb des DB sind immer identisch (z.B. DB32.DBX104.0 Byte 4).
Welche Möglichkeiten bleiben um die 4 Bytes an den Slave zu übertragen ? (SFC20 ?; SFC81 ?;..). Die Parametrierung des Ausgangsbereichs (z.B. PAD512) sowie die Nummer des DBs ist variabel.
ich habe folgendes Problem:
Innerhalb eines Funktionsbausteins sind mehrere Datenstrukturen enthalten (Länge 64 Byte). Diese Datenstrukturen müssen an einen DP Slave übertragen werden. Die Länge der zuübertragenden Datenstruktur ist abhängig von meiner zuvor definierten Telegrammlänge (z.B. IN/OUT64Byte; IN/OUT32Byte usw.). Dies funktioniert problemlos mit SFC14/15 und ich kann entsprechend 32 oder 64 Bytes an Slave übertragen bzw. lesen. Nun aber habe ich das Problem, dass es eine Telegrammlänge 64IN/4OUT Bytes gibt. An dieser Stelle kann ich keine SFC15 einsetzen (Fehlermeldung bei Übertragung von 4 Bytes). Welche Möglichkeiten bleiben mir zur Übertragung dieser 4 Bytes an den Slave ? (Um die 4 Bytes konsistent zuübertragen reicht eine Lade/Transfer Operation aus, aber die Parametrierung muss variabel sein).
Folgende Informationen liegen mir als Variable vor:
Adresse im A Bereich --> W#16#200
Telegrammlänge --> 4
Die Nummer des zugehörigen Instanz-DB kann variabel sein (über DINO bekomme ich diese Nummer). Die Positionen meiner Datenfelder innerhalb des DB sind immer identisch (z.B. DB32.DBX104.0 Byte 4).
Welche Möglichkeiten bleiben um die 4 Bytes an den Slave zu übertragen ? (SFC20 ?; SFC81 ?;..). Die Parametrierung des Ausgangsbereichs (z.B. PAD512) sowie die Nummer des DBs ist variabel.