CODESYS - das IEC 61131-3 Programmiersystem

Willkommen im offiziellen CODESYS - Forum von 3S-Smart Software Solutions | A member of the CODESYS Group
Deutsche Version English version russian version 
Aktuelle Zeit: Do Jul 18, 2019 1:51 pm

Alle Zeiten sind UTC




Ein neues Thema erstellen  Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: TO_STRING Länge der String Variable
BeitragVerfasst: Fr Jan 29, 2016 7:26 am 
Offline
Häufiger Nutzer
Häufiger Nutzer

Registriert: Di Jul 24, 2007 4:17 pm
Beiträge: 130
So ganz klar ist uns das Problem noch nicht, darum frag ich hier mal nach:

Ich habe eine Zahl. Nun übertrage ich die Zahl in einen STRING mit der Typwandlung INT_TO_STRING
Das funktioniert auf normalen STRING Variablen ohne Probleme.

ABER wenn ich das nun DIREKT auf eine Pointeradresse lege, passiert folgendes:
Es wird ein 80 byte langer String auf den Pointer geschrieben. Der schreibt mir natürlich über das Ende raus und nach mehreren Tagen/Wochen hängt sich die CPU mit einem undefinerten Fehler auf. (zumindest scheint das der Fehler zu sein.)

So nun meine Frage: Wie behandelt Codesys dieses Problem korrekt:

Beispiel: PT_Zeile^:=DINT_TO_STRING(ABS(Value_V));
<Nachtrag> die PT_Zeile ist folgendermaßen definiert: PT_Zeile: POINTER TO STRING(nnn);
<Nachtrag> dh. das Problem tritt erst auf wenn PT_Zeile LÄNGER als "nnn" wird (ist aber bei 80 Zeichen nicht ganz unwahrascheinlich)
<Nachtrag> In der Folgezeile wird der Pointer dann mit PT_Zeile:=PT_Zeile+LEN(DINT_TO_STRING(ABS(Value_V))) verschoben.
<Nachtrag> Und wenn's beim Beschreiben PT_Zeile^ zu lang geworden wäre, bleibt der Controller stehen.

Ich habe diese Art von Befehl schon 1000 fach (ohne Übertreibung) verwendet und noch nie Probleme bekommen...
... und nun schätzen wir, daß unser Problem von dem oben beschriebenen Effekt herrührt.

Ich schreibe hier absichtlich KEIN Zielsystem hin. Mich würde interessieren was Codesys dazu sagt.

Danke Mg


Nach oben
   
BeitragVerfasst: Di Feb 02, 2016 6:41 am 
Offline
Häufiger Nutzer
Häufiger Nutzer

Registriert: Di Jul 24, 2007 4:17 pm
Beiträge: 130
H A L L O ... I S T W E R D A

Bitte um Anwort. Das Thema ist DRINGEND und der Fehler ist MASSIV.
Inzwischen sind wir draufgekommen daß der Fehler nur auf dem WAGO IPC auftritt.
(Wago 750-880 ist Ok und Bachmann 207 ist Ok, weitere haben wir noch nicht getestet)
Trotzdem würde mich hier interessieren, wie diese Problematik im Codesys generell behandelt wird.

Mg


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 2 Beiträge ] 

Alle Zeiten sind UTC


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de