Array mit Char an FC übergeben?

Ingo

Level-1
Beiträge
19
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich möchte mir einen FC bauen, der mir einen Text über ein Display ausgeben kann.
Diesen möchte ich als Funktion aufrufen, mit übergabe des auszugebenden Wortes (Char).
In der Hilfe kann ich finden, dass man Arrays machen kann, aber bei der Übergabe scheitere ich.
In der Scvhnittstelle kann ich als in zwar Array als Datentyp wählen
(Array [<?..?>] of Type) kann damit aber nicht wirklich was anfangen.

Hier die Frage:
Geht das überhaupt was ich vorhabe?
Wenn ja, bitte Denkanstöße...

Achso,
verwende eine S7 614 (ähnlich 314 glabe ich)

Dank und Gruß Ingo
 
Zuletzt bearbeitet:
Was spricht gegen ein STRING? Das ist ja im Prinzip ein Char-Array mit einem unterschied das dieses "Array" im ersten Byte die Gesamtlänge des STRINGs als Zahl stehen hat und in dem zweiten Byte die aktuelle Länge. Danach kommen die Bytes die vom Typ Char die Zeichen repräsentieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich möchte mir einen FC bauen, der mir einen Text über ein Display ausgeben kann.
Diesen möchte ich als Funktion aufrufen, mit übergabe des auszugebenden Wortes (Char).
In der Hilfe kann ich finden, dass man Arrays machen kann, aber bei der Übergabe scheitere ich.
In der Scvhnittstelle kann ich als in zwar Array als Datentyp wählen
(Array [<?..?>] of Type) kann damit aber nicht wirklich was anfangen.

Hier die Frage:
Geht das überhaupt was ich vorhabe?
Wenn ja, bitte Denkanstöße...

Achso,
verwende eine S7 614 (ähnlich 314 glabe ich)

Dank und Gruß Ingo

Hallo Ingo,

wenn du keinen String verwenden willst, dann probier folgendes:

Erstelle einen UDT, in dem du einen Array of CHAR definierst.

Den Array machst du so groß, wie du ihn benötigst.
(z.B. 1 .. 10 für 10 Characters).

Dann erstellst du einen DB, welcher diesen UDT verwendet oder den UDT als Typ benutzt.

Am FC generierts du dann einen Eingang als "UDT" und parametrierst deinen Datenbereich mit dem Char-UDT an.
(Das geht recht bequem symbolisch)

Alternativ kannst auf den Char-UDT Datenbereich auch mittels Any-Pointer zugreifen.

CU

Jürgen

.
 
Ich glaube, Ingo meint etwas anderes.
Wenn ich es richtig verstanden habe, dann soll der FC eine IN-Variable vom Typ ARRAY_of_CHAR haben. Das ist so machbar. Du kannst dem FC dann aber auch nur ein ARRAY_Of_CHAR übergeben (als Pointer) und nicht eine Sammlung von Einzelwerten (-Zeichen). Das Gleiche gilt auch für einen STRING. auch dieser ist nicht als freier Parameter zu übergeben. Das geht nur bei den (Standard-)Variablen bis max. 32 Bit.

Ergo:
Erzeuge dir dein ARRAY_of_CHAR in einem DB und parametriere das (am Besten symbolisch) an deine FC und es geht - aber ich glaube, das wolltest du nicht ...

Gruß
LL
 
Hallo,
vorab danke ich euch für eure Hilfe.

Das mit dem String ist glaube ich das was ich möchte.

Im Prinzip will ich den Ausgabetext an einen FC übergeben und der soll dann Zeichen für Zeichen an das Display geben.
Leider scheitere ich bei der Übergabe des Textes.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
vorab danke ich euch für eure Hilfe.

Das mit dem String ist glaube ich das was ich möchte.

Im Prinzip will ich den Ausgabetext an einen FC übergeben und der soll dann Zeichen für Zeichen an das Display geben.
Leider scheitere ich bei der Übergabe des Textes.

Hallo ingo,

wenn dein Display das String-Format handeln kann,
dann solltets du das auch verwenden.

Ein Tip am Rande:
Variable UND Ausgabefeld am Display groß genug deklarieren,
dass auch der längste String noch angezeigt werden kann.

CU

Jürgen

.
 
Zurück
Oben