TIA TCP-Fileserver: SCL-Sourcecode Programmerweiterung

HT-T

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

ich habe folgendes Anliegen und hoffe das ihr mir helfen könnt.

Folgendes bereits aufbereitetes Programm habe ich erfolgreich in meines implementiert:
TCP-Fileserver (siehe Link): https://support.industry.siemens.com/cs/document/109475508/tcp-fileserver-f%C3%BCr-s7-controller?lc=de-de
Hier liegt die fertige Projektdatei ab welche die Grundfunktion des Programms beschreibt.

Ich kann nun also wie im Beispiel des TCP-Fileserver ein CSV-Array erzeugen und mit beliebigen Zeichen füllen und wie folgt ausgeben:
1675687002748.png

Zukünftig möchte ich die Werte in einer .xlsx Datei ausgeben und wie folgt dargestellt, möglichst automatisiert ausgeben lassen:
1675687228192.png

Wie in der Doku des Programms beschrieben ist für solch eine Anpassung eine Erweiterung des Source-Codes von Nöten.
Da ich bisher noch nicht die Ehre hatte in dem Bereich der SCL-Programmierung Erfahrung zu sammeln wollte ich mir hier Hilfe suchen :giggle:.

1675687327971.png
Grundgedanken für Erweiterung

Als erstes müsste ich von meinem Verständnis aus das Programm so erweitern das nach jedem einzeln übertragenen Wert ein Zeilenumbruch stattfindet.
Da ich zwei Arrays besitze, eines für den Eingangsdruck das andere für den Ausgangsdruck, müsste ich noch ein extra Programm schreiben welches mir zuerst das eine Array in den Speicher des TCP-Client kopiert und nach der erfolgreichen Übertragung anschließend das Array des Ausgangsdruck kopiert und überträgt.

Oder man müsste den TCP-Client um ein weiteres Array erweitern sodass beide Arrays vorab befüllt und anschließend der Reihe nach in die .xlsx Datei schreiben.
Array 1 -> Schreibt in Spalte A von 1 bis *
Array 2 -> Schreibt in Spalte C von 1 bis *

Selbstverständlich bin ich für andere Lösungsansätze auch offen...

Den Sourcecode des ganzen Programms habe ich als .txt angehängt, solltet ihr euch die Mühe machen die Projektdatei zu öffnen so findet ihr diese auch im 1675688479468.png



Ich würde mich freuen von euch zu hören! :)
 

Anhänge

  • TCP-FileServer_Sourcecode.txt
    13,2 KB · Aufrufe: 26
Zukünftig möchte ich die Werte in einer .xlsx Datei ausgeben und wie folgt dargestellt, möglichst automatisiert ausgeben lassen:
Vergiss es, Du wirst mit der Steuerung keine xlsx-Datei im proprietären (undokumentierten/geheimen?) Excel-xlsx-Format erzeugen können.

Gib die Werte im standardisierten csv-Format aus. Also erstelle eine csv-Datei, fülle die mit den gewünschten Werten und übertrage die csv-Datei an den PC. Dort am PC kann die Datei von Excel geöffnet werden (enthält dann aber keinerlei Formatierungen, Diagramme, ...) und als xlsx-Datei gespeichert werden. Wenn Du die Formatierung in der xlsx-Datei nicht immer wieder neu machen willst, dann könntest Du in der xlsx-Datei ein importieren/einlesen der csv-Datei als Makro programmieren, oder die Werte aus der geöffneten csv-Datei in die xlsx-Datei kopieren.

Wie eine csv-Datei üblicherweise aussieht weißt Du? Hier ein Beispiel für 3 Variablen (Spalten) mit 5 Datensätzen (Zeilen):
Code:
Eingangsdruck;Zeit;Ausgangsdruck
1,1;2,1;3,1
1,2;2,2;3,2
1,3;2,3;3,3
1,2;2,4;3,3
0; 0; 0,0

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gib die Werte im standardisierten csv-Format aus. Also erstelle eine csv-Datei, fülle die mit den gewünschten Werten und übertrage die csv-Datei an den PC. Dort am PC kann die Datei von Excel geöffnet werden (enthält dann aber keinerlei Formatierungen, Diagramme, ...) und als xlsx-Datei gespeichert werden. Wenn Du die Formatierung in der xlsx-Datei nicht immer wieder neu machen willst, dann könntest Du in der xlsx-Datei ein importieren/einlesen der csv-Datei als Makro programmieren, oder die Werte aus der geöffneten csv-Datei in die xlsx-Datei kopieren.
Du kannst alles Mögliche als Makro in der Sprache VBA (VisualBasicForApplications) in einer XLSX-Datei programmieren. ABER, wenn Du diese Datei mit den Makros abspeichern willst, dann speichere sie als XLSM-Datei ab, sonst werden die Makros nicht mit abgespeichert. ;)
Also im ZweifelsFalle wenigstens für Deine eigenen Zwecke zusätzlich die XLSM-Variante aufbewahren!
 
Wenn du direkt xlsx schreiben willst, dann würde ich das PC-Programm entsprechend anpassen. Da gibt es mehrere Möglichkeiten solche Dateien zu schreiben, entweder über ein passendes Modul für die Verarbeitung von xlsx-Dateien, oder über OLEDB wäre auch noch eine Möglichkeit. Entweder du erweiterst das Protokoll soweit, dass die SPS mitschickt in oder ab welche Zelle geschrieben wird, und welches Tabellenblatt usw. oder du lässt es beim CSV-Format, und trennst dann selber die Zellen und schreibst z.B. den ersten Wert immer in A1.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

danke für eure Antworten. Und ja das Thema mit dem Format ist nicht so wichtig, für mich würde es keine Rolle spielen wenn der Export erst einmal als CSV-Datei stattfindet.

Mein erstes Problem ist jedoch das die Umwandlung meiner Int Messwerte in Char lediglich ein CSV-String in die Datei geschrieben wird.
Das bedeutet aus einzelnen Messwerten wie z.B.

Eingangsdruck Array [0]...[999]:
Eingangsdruck[0]: 10
Eingangsdruck[1]: 15
Eingangsdruck[2]: 12
Eingangsdruck[3]: 10
Eingangsdruck[4]: 20
Eingangsdruck[5]: 18
...

Die SPS macht daraus ein CSV-String in der erste Zeile der CSV-Datei in dem es einfach alle Werte in einen Char umwandelt und diesen dann am Stück ausgibt:

101512102018

Das macht die Werte komplett unbrauchbar, weil es keine klare Unterbrechungen gibt an den man im Nachhinein ausmachen kann welche Werte gemessen wurden.


Meine erste Aufgabe wäre also an der richtigen Stelle im Sourcecode dem TCP-Client zu sagen dass er nach jeder Zelle des Array zu mindestens einen Zeilenumbruch stattfinden lassen soll, oder?


Ideal wäre wenn ich einen Weg finden könnte das gleichzeitig beide Arrays innerhalb des Programms in die CSV geschrieben werden.
Der Eingangsdruck z.B. in Spalte A und der Ausgangsdruck in Spalte B.

Hat von euch jemand eine Idee wie das aussehen könnte und an welcher Stelle ich den Code einzufügen hätte?


Grüße
HT-T
 
@volker
Hallo Volker,
ich habe in meinem ersten Beitrag eine .txt Datei mit dem kompletten SCL-Code angehängt.
Leider kann ich ihn hier nicht rein kopieren da er die maximale Anzahl von 1000 Zeichen übersteigen würde.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hab ich übersehen.
bevor ich mir das ansehe kannst du mal probieren nach dem wert ein
CR (carrige return) Dez 13
und oder
LF (line feed) Dez 10
einzufügen

testarray[1] Char 48.0 ' ' --- ' 1'
testarray[2] Char 49.0 ' ' --- '$R'
testarray[3] Char 50.0 ' ' --- '$L'
testarray[4] Char 51.0 ' ' --- ' 2'
 
ich habe in meinem ersten Beitrag eine .txt Datei mit dem kompletten SCL-Code angehängt.
Leider kann ich ihn hier nicht rein kopieren da er die maximale Anzahl von 1000 Zeichen übersteigen würde.
Das ist doch kein kompletter SCL-Code, sondern lediglich irgendein Siemens Baustein, der ein Char-Array an einen TCP-Server sendet. Für Dein Problem ist es völlig uninteressant wie der Siemens Baustein das macht. Oder hast Du in dem Siemens-Code irgendeinen eigenen Code versteckt? Ich finde nichts, was mit der Zusammenstellung und Formatierung einer Datensatz-Zeile aus Werten Deines SPS-Programms zu tun hat.


Mein erstes Problem ist jedoch das die Umwandlung meiner Int Messwerte in Char lediglich ein CSV-String in die Datei geschrieben wird.
(...)
Die SPS macht daraus ein CSV-String in der erste Zeile der CSV-Datei in dem es einfach alle Werte in einen Char umwandelt und diesen dann am Stück ausgibt:

101512102018

Das macht die Werte komplett unbrauchbar, weil es keine klare Unterbrechungen gibt an den man im Nachhinein ausmachen kann welche Werte gemessen wurden.
Zeige uns Deinen Quellcode, wo Du die Zahlenwerte in das Char-Array einträgst.

Meine erste Aufgabe wäre also an der richtigen Stelle im Sourcecode dem TCP-Client zu sagen dass er nach jeder Zelle des Array zu mindestens einen Zeilenumbruch stattfinden lassen soll, oder?
Du musst in einem Char-Array die csv-Datei Zeile für Zeile, Zeichen für Zeichen zusammenbasteln und dabei an den nötigen Stellen auch die Formatierungs-Trennzeichen einfügen. Danach musst Du das ausgefüllte Char-Array dem Siemens TCP-Client-Baustein übergeben, damit der die Daten an einen TCP-Server sendet.
Das Trennzeichen zwischen Werten in einer Zeile/Datensatz ist üblicherweise das Semikolon ';' (16#3B)
Das Trennzeichen zwischen Datensätzen ist üblicherweise die Zeilenschaltung '$R$L' (die 2 Zeichen 16#0D und 16#0A)

Für Deine Werte wäre das die Zeichenfolge: '10$R$L15$R$L12$R$L10$R$L20$R$L18$R$L'

siehe Wikipedia: CSV Dateiformat

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eins der beiden Zeichen könnte aber reichen. Dann ist der Datenblock nicht so groß.
Naja, ob eine Zeile mit 3 Werten anstatt ca 16 Zeichen nur 15 Zeichen lang ist, spart nicht wirklich.

Wenn ich mit Excel 2010 eine neu erstellte Datei im csv-Format speichere, dann verwendet Excel das traditionell übliche 0D 0A
Das verstehen auch andere Programme, wie z.B. Notepad.
In irgendeiner neueren Windows- oder Excel-Version hatte MS auch mal die Folge 0A 0D eingeführt, das haben manche Programme nicht mehr korrekt angezeigt.

Harald
 
hab ich übersehen.
bevor ich mir das ansehe kannst du mal probieren nach dem wert ein
CR (carrige return) Dez 13
und oder
LF (line feed) Dez 10
einzufügen

testarray[1] Char 48.0 ' ' --- ' 1'
testarray[2] Char 49.0 ' ' --- '$R'
testarray[3] Char 50.0 ' ' --- '$L'
testarray[4] Char 51.0 ' ' --- ' 2'

Welchem Wert soll ich wo was einfügen? :unsure:
Sorry verstehe nur Bahnhof, die Felder der Array werden nicht händisch geschrieben.
Diese werden von einem weiteren Baustein in die Array der Datenbank nach einer Analogwert-Umwandlung von Gleitkommazahl zu einer Ganzzahl versandt.

Wo soll ich also "CR (carrige reutrn) Dez 13" oder "LF (line feed) Dez 10) einfügen?
 
Das ist doch kein kompletter SCL-Code, sondern lediglich irgendein Siemens Baustein, der ein Char-Array an einen TCP-Server sendet. Für Dein Problem ist es völlig uninteressant wie der Siemens Baustein das macht. Oder hast Du in dem Siemens-Code irgendeinen eigenen Code versteckt? Ich finde nichts, was mit der Zusammenstellung und Formatierung einer Datensatz-Zeile aus Werten Deines SPS-Programms zu tun hat.



Zeige uns Deinen Quellcode, wo Du die Zahlenwerte in das Char-Array einträgst.


Du musst in einem Char-Array die csv-Datei Zeile für Zeile, Zeichen für Zeichen zusammenbasteln und dabei an den nötigen Stellen auch die Formatierungs-Trennzeichen einfügen. Danach musst Du das ausgefüllte Char-Array dem Siemens TCP-Client-Baustein übergeben, damit der die Daten an einen TCP-Server sendet.
Das Trennzeichen zwischen Werten in einer Zeile/Datensatz ist üblicherweise das Semikolon ';' (16#3B)
Das Trennzeichen zwischen Datensätzen ist üblicherweise die Zeilenschaltung '$R$L' (die 2 Zeichen 16#0D und 16#0A)

Für Deine Werte wäre das die Zeichenfolge: '10$R$L15$R$L12$R$L10$R$L20$R$L18$R$L'

siehe Wikipedia: CSV Dateiformat

Harald

Dann bin ich fälschlicherweise davon ausgegangen, wie bereits erwähnt ich habe in diesem Bereich keinerlei Erfahrung...

Wo finde ich den erwähnten Quellcode, dann würde ich diesen auch gerne zur Verfügung stellen.

Ja die Übergabe funktioniert ja schon, allerdings weiß ich nicht an welcher Stelle ich das Format so anpassen kann das er es mir im gewünschten Format ausgibt... Muss ich einen weiteren eigenständigen SCL-Programmstein schreiben der das übernimmt oder wo muss man anpacken sodass die Steuerung dies berücksichtigt. Tut mir Leid das ich so ahnungslos bin aber ich habe leider einen wesentlich geringeren Wissensstand in solch einer Thematik.

Ich bin davon ausgegangen dass der TCP-Client Baustein für die Übergabe des CSV-String verantwortlich ist das dieser auch das Format definiert, bzw. eine Standard besitzt welcher ausgeführt wird, wenn nicht an einer anderen Stelle ein anderes Format beschrieben ist...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der TCP-Client erstellt keinen Inhalt der csv-Datei. Er versendet nur ein Char-Array an einen TCP-Server, so daß der TCP-Server den Inhalt des Char-Arrays als csv-Datei abspeichert.
Was in dem Char-Array drinsteht muß man selber vorher hineinschreiben.
Dafür am besten einen eigenen Programmbaustein erstellen, wo mit String-Anweisungen ein String mit einer Zeile oder der ganzen csv-Datei erstellt wird und am Ende in das Char-Array kopiert wird (ich glaube Strg_TO_Chars oder so ähnlich).
Z.B. mit VAL_STRG den Zahlenwert in eine Zeichenkette konvertieren, dann zur Formatierung der csv-Datei mit CONCAT ein Trennzeichen hinzufügen/anhängen, dann den nächsten Zahlenwert, dann wieder ein Trennzeichen usw.

Harald
 
Zukünftig möchte ich die Werte in einer .xlsx Datei ausgeben und wie folgt dargestellt, möglichst automatisiert ausgeben lassen:

Kannst du auch mit PC-Programmierwerkzeugen umgehen?
Das Server-Projekt ist mit VisualStudioNet erstellt, das müsste man anpassen um das zu automatisieren.

Ich mach sowas mittlerweile ganz pobelig mit PureBasic und Snap7. Das ist viel einfacher als mit VisualStudio zu hantieren.
Vor allem wenn man auf dem Analgenrechner etwas an der Software ändern muss.

Ich hab ein Logging Projekt, welches aus Prozessdaten in der SPS in einem festen DB automatisch CSVs erzeugt und diese
mit einem Zeitstempel im Dateinamen versieht. Ist aber nur schnell zusammengestrickt und im Moment noch nichts für die Allgemeinheit.

Wenn du PC Programmieren kannst, kannst du vielleicht damit was anfangen. Ansonsten ist es eher nichts für dich!
 
Wo finde ich den erwähnten Quellcode, ...
... allerdings weiß ich nicht an welcher Stelle ich das Format so anpassen kann das er es mir im gewünschten Format ausgibt...
Muss ich einen weiteren eigenständigen SCL-Programmstein schreiben der das übernimmt ...
Eigentlich müsste doch schon die ProgrammPassage existieren, wo Du die gewünschte Formatierung vornehmen kannst.
Die Stelle, die Dir "lückenlos" die 6 einzelnen Werte zu einem String zusammenklatscht ...
Eingangsdruck Array [0]...[999]:
Eingangsdruck[0]: 10
Eingangsdruck[1]: 15
Eingangsdruck[2]: 12
Eingangsdruck[3]: 10
Eingangsdruck[4]: 20
Eingangsdruck[5]: 18
...

Die SPS macht daraus ein CSV-String in der erste Zeile der CSV-Datei in dem es einfach alle Werte in einen Char umwandelt und diesen dann am Stück ausgibt:

101512102018
... würde ich suchen. Dort würde ich nach jedem der ersten 5 Werte ein ';' einfügen *) und nach dem sechsten Wert einmal '$R$L'.

Dabei unterstelle ich, dass jeweils die 6 Werte in 6 Spalten nebeneinander dargestellt werden sollen und danach in der nächsten Zeile wiederum die nächsten 6 Werte in denselben 6 Spalten.

*) : Das Semmikolon ist "verhandelbar" aber meistens zweckmässiger als das ursprünglich verwendete Komma als TrennZeichen zwischen den Spalten der Tabelle. Das Komma lebt im Namen der CSV-Datei (Comma Separated Values) dennoch munter weiter.
Da im Englischen statt des bei uns üblichen DezimalKommas der DezimalPunkt verwendet wird (und die TausenderGruppierungsZeichen - im Englischen Komma und bei uns Punkt - wohl noch als Luxus galten), war das Komma ursprünglich frei zur Verwendung als SpaltenTrennZeichen.
Dafür am besten einen eigenen Programmbaustein erstellen, wo mit String-Anweisungen ein String mit einer Zeile oder der ganzen csv-Datei erstellt wird und am Ende in das Char-Array kopiert wird (ich glaube Strg_TO_Chars oder so ähnlich).
Z.B. mit VAL_STRG den Zahlenwert in eine Zeichenkette konvertieren, dann zur Formatierung der csv-Datei mit CONCAT ein Trennzeichen hinzufügen/anhängen, dann den nächsten Zahlenwert, dann wieder ein Trennzeichen usw.
Evtl. aber nicht immer ein und dasselbe TrennZeichen verwenden!
Wie oben schon gesagt/angedeutet: als TrennZeichen zwischen zwei Zeilen '$R$L' und als TrennZeichen zwischen zwei Spalten das "verhandelbare" ';'.
"Verhandelbar" heisst, dieses Zeichen muss von dem Sender und dem Empfänger der CSV-Datei sinnvoll ausgesucht und zwischen beiden abgesprochen und "festgenagelt" werden. "Sinnvoll" ausgesucht wiederum heisst, dieses Zeichen sollte tunlichst nicht in den "NutzDaten" vorkommen, die übertragen werden sollen, damit dieses Zeichen, wenn es denn "eingestreut" wird, vom Empfänger immer eindeutig als SpaltenTrennZeichen gedeutet werden kann.
Ich glaube, Du bist in diesem Fall die "PersonalUnion" von Sender und Empfänger und Probleme bei der Absprache sollten deshalb nicht vorkommen. ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der TCP-Client erstellt keinen Inhalt der csv-Datei. Er versendet nur ein Char-Array an einen TCP-Server, so daß der TCP-Server den Inhalt des Char-Arrays als csv-Datei abspeichert.
Was in dem Char-Array drinsteht muß man selber vorher hineinschreiben.
Dafür am besten einen eigenen Programmbaustein erstellen, wo mit String-Anweisungen ein String mit einer Zeile oder der ganzen csv-Datei erstellt wird und am Ende in das Char-Array kopiert wird (ich glaube Strg_TO_Chars oder so ähnlich).
Z.B. mit VAL_STRG den Zahlenwert in eine Zeichenkette konvertieren, dann zur Formatierung der csv-Datei mit CONCAT ein Trennzeichen hinzufügen/anhängen, dann den nächsten Zahlenwert, dann wieder ein Trennzeichen usw.

Harald
Hallo Harald,
danke für deine Hilfe...

Wäre es nicht einfacher wenn ich den Datentyp des Array von Char auf Int umstellen würde, so müsste ich ohne Umwandlung meine Messwerte direkt in den Array des TCP-Client übertragen.

Weiss jemand warum der Baustein DB5 wie einen Schreibschutz in der Deklaration seiner Variablen und deren Datentyp besitzt?
Gibt es eine Möglichkeit diesen aufzuheben?

Wenn ich einen eigenständigen [FB] mit samt [DB] erstelle dann habe ich das Problem nicht, mir scheint also das hier von Seitens Simens ein Schreibschutz gesetzt wurde?


1675850137862.png


Die Anwenderkonstante habe ich bereits erstell und auf Int gestellt:
1675850208355.png
 
Zuletzt bearbeitet:
Kannst du auch mit PC-Programmierwerkzeugen umgehen?
Das Server-Projekt ist mit VisualStudioNet erstellt, das müsste man anpassen um das zu automatisieren.

Ich mach sowas mittlerweile ganz pobelig mit PureBasic und Snap7. Das ist viel einfacher als mit VisualStudio zu hantieren.
Vor allem wenn man auf dem Analgenrechner etwas an der Software ändern muss.

Ich hab ein Logging Projekt, welches aus Prozessdaten in der SPS in einem festen DB automatisch CSVs erzeugt und diese
mit einem Zeitstempel im Dateinamen versieht. Ist aber nur schnell zusammengestrickt und im Moment noch nichts für die Allgemeinheit.

Wenn du PC Programmieren kannst, kannst du vielleicht damit was anfangen. Ansonsten ist es eher nichts für dich!
Hallo Maagic, danke für deine Antwort.
Das kommt ganz darauf an was du darunter verstehst, ich hatte in meinem Studium 1 Semester Informatik wo wir etwas C# und C++ hatten.
Meine Kenntnisse sind also höchstens auf einem grundsätzlichen Verständnis.

Wo finde ich denn das erwähnte Server-Projekt? Wenn ich mich nicht irre dann ist der Compiler weniger entscheidend sondern das beherrschen der Programmiersprache oder liege ich hier falsch?

Das wäre doch eigentlich auch mein Anwendungsfall, wenn du möchtest kannst du es ja teilen, vielleicht würde mich das weiter bringen...
ich erwarte auch keine vollständige Ladenfertige Lösung, insofern ich verstanden habe wo ich anzupacken habe und welche Befehle ich modifizieren oder einfügen muss bzw. ich dazu lerne habe ich kein Problem etwas rumzutüfteln.

Welche Hochsprache meinst du denn mit "PC Programmieren" ?

Gruß
HT-T
 
Eigentlich müsste doch schon die ProgrammPassage existieren, wo Du die gewünschte Formatierung vornehmen kannst.
Die Stelle, die Dir "lückenlos" die 6 einzelnen Werte zu einem String zusammenklatscht ...

... würde ich suchen. Dort würde ich nach jedem der ersten 5 Werte ein ';' einfügen *) und nach dem sechsten Wert einmal '$R$L'.

Dabei unterstelle ich, dass jeweils die 6 Werte in 6 Spalten nebeneinander dargestellt werden sollen und danach in der nächsten Zeile wiederum die nächsten 6 Werte in denselben 6 Spalten.

*) : Das Semmikolon ist "verhandelbar" aber meistens zweckmässiger als das ursprünglich verwendete Komma als TrennZeichen zwischen den Spalten der Tabelle. Das Komma lebt im Namen der CSV-Datei (Comma Separated Values) dennoch munter weiter.
Da im Englischen statt des bei uns üblichen DezimalKommas der DezimalPunkt verwendet wird (und die TausenderGruppierungsZeichen - im Englischen Komma und bei uns Punkt - wohl noch als Luxus galten), war das Komma ursprünglich frei zur Verwendung als SpaltenTrennZeichen.

Evtl. aber nicht immer ein und dasselbe TrennZeichen verwenden!
Wie oben schon gesagt/angedeutet: als TrennZeichen zwischen zwei Zeilen '$R$L' und als TrennZeichen zwischen zwei Spalten das "verhandelbare" ';'.
"Verhandelbar" heisst, dieses Zeichen muss von dem Sender und dem Empfänger der CSV-Datei sinnvoll ausgesucht und zwischen beiden abgesprochen und "festgenagelt" werden. "Sinnvoll" ausgesucht wiederum heisst, dieses Zeichen sollte tunlichst nicht in den "NutzDaten" vorkommen, die übertragen werden sollen, damit dieses Zeichen, wenn es denn "eingestreut" wird, vom Empfänger immer eindeutig als SpaltenTrennZeichen gedeutet werden kann.
Ich glaube, Du bist in diesem Fall die "PersonalUnion" von Sender und Empfänger und Probleme bei der Absprache sollten deshalb nicht vorkommen. ;)
Hallo Heinileini, danke erstmal für deine Antwort...

"Eigentlich müsste doch..."
Exakt das war auch mein Gedanke, im Regelfall macht ein Programm ja auch nicht mehr als man ihm mitteilt...
Wie gesagt mir ist nicht mehr Code bekannt als der des TcpClient[FB111] welchen ich bereits in der Textfile im ersten Beitrag geteilt habe.
Vielleich versteckt sich auch noch irgendwo im Projekt mehr Code, leider wüsste ich nicht wo da ich in diesem Bereich noch nie etwas getan habe.

Hättest du denn ein Code Beispiel für z.B. die ersten 2-3 Messwerte (Eingangsdruck, Ausgangsdruck) ?

Dieses könnte ich dann ja analog erweitern für meinen gesamten Array-Bereich... insofern ich die Stelle gefunden habe wo ich diesen Code dann einfügen darf :LOL:
 
Zurück
Oben