Hanswurst92
Level-2
- Beiträge
- 26
- Reaktionspunkte
- 9
-> Hier kostenlos registrieren
Hallo zusammen,
ich möchte gerne, wie im Titel oben beschrieben, mehrere Integerwerte, die in einem Datenbaustein einer SPS in einen anderen Datenbaustein einer anderen SPS kopieren. Dafür verwende ich den PUT-Baustein. Das funktioniert mit einem Integerwert wunderbar, wenn ich aber mehrere Integerwerte versenden will, indem ich die letzte Zahl im Pointer beim ADDR_1 Eingang des PUT-Bausteins erhöhe, bekomme ich nur den Fehler 4 (siehe angehängtes Bild). Dieser besagt ja, dass der Pointer fehlerhaft ist. (Bitte nicht von den Namen der DBs verwirren lassen, diese sind sehr doof gewählt, weil ich es nur schnell mal testen wollte). Wenn ich aber nun den zu übertragenen Wert auf einen DInt stelle und versuche, zwei Integerwerte zu übertragen, funktioniert es.
Ich dachte ich könnte mehrere Integers übertragen, indem ich einfach die Adresse des ersten Integers an den SD_1 Eingang hänge und dann am ADDR_1 Eingang angebe, wie viel Werte ab diesem übertragen werden sollen. Aber aus meinen Versuchen schließe ich, dass ich nicht über die Grenzen des Wertes, den Ich bei SD_1 angebe, Daten versenden kann, sondern nur maximal den Wert der dort angegeben ist oder Bruchteile, wie z.B. einzelne Bits.
Wenn ich damit richtig liege, müsste ich also die Integers vorher in ein Array packen und diese dann direkt an den SD_1 Eingang hängen und unter der Angabe de Typs Char (laut Doku muss bei Angabe von Datenstrukturen der Typ Char verwendet werden) über ADDR_1 versenden.
Sehe ich das richtig so oder ist es auch unkomplizierter möglich mehrere Daten über ADDR_1 zu versenden ? (Ja ich kann auch ADDR_2 bis ADDR_4 verwenden, aber so könnte ich ja nicht mehr als 4 Integer auf einmal versenden)
Ich hoffe das war halbwegs verständlich,
Gruß Hans
ich möchte gerne, wie im Titel oben beschrieben, mehrere Integerwerte, die in einem Datenbaustein einer SPS in einen anderen Datenbaustein einer anderen SPS kopieren. Dafür verwende ich den PUT-Baustein. Das funktioniert mit einem Integerwert wunderbar, wenn ich aber mehrere Integerwerte versenden will, indem ich die letzte Zahl im Pointer beim ADDR_1 Eingang des PUT-Bausteins erhöhe, bekomme ich nur den Fehler 4 (siehe angehängtes Bild). Dieser besagt ja, dass der Pointer fehlerhaft ist. (Bitte nicht von den Namen der DBs verwirren lassen, diese sind sehr doof gewählt, weil ich es nur schnell mal testen wollte). Wenn ich aber nun den zu übertragenen Wert auf einen DInt stelle und versuche, zwei Integerwerte zu übertragen, funktioniert es.
Ich dachte ich könnte mehrere Integers übertragen, indem ich einfach die Adresse des ersten Integers an den SD_1 Eingang hänge und dann am ADDR_1 Eingang angebe, wie viel Werte ab diesem übertragen werden sollen. Aber aus meinen Versuchen schließe ich, dass ich nicht über die Grenzen des Wertes, den Ich bei SD_1 angebe, Daten versenden kann, sondern nur maximal den Wert der dort angegeben ist oder Bruchteile, wie z.B. einzelne Bits.
Wenn ich damit richtig liege, müsste ich also die Integers vorher in ein Array packen und diese dann direkt an den SD_1 Eingang hängen und unter der Angabe de Typs Char (laut Doku muss bei Angabe von Datenstrukturen der Typ Char verwendet werden) über ADDR_1 versenden.
Sehe ich das richtig so oder ist es auch unkomplizierter möglich mehrere Daten über ADDR_1 zu versenden ? (Ja ich kann auch ADDR_2 bis ADDR_4 verwenden, aber so könnte ich ja nicht mehr als 4 Integer auf einmal versenden)
Ich hoffe das war halbwegs verständlich,
Gruß Hans