SPIDER_ACCESS: Auslesen von REAL-Werten ergibt einstellige Ganzzahl

Begonnen von rrbd, 25. September 2015, 19:38:03

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

rrbd

Moin,

SPIDER_ACCESS ist für mich öfters ganz nützlich, wenn ich für ein Programm in einer Phoenix ILC1xx aus einer anderen Phoenix ILC1xx irgend einen Wert brauche und keine Lust oder Möglichkeit habe, das Programm der anderen SPS für andere Übertragungsmodi zu ergänzen. Leider versagt das Verfahren beim Übertragen von REAL Zahlenwerten, das Ergebnis ist stets eine Ganzzahl zwischen 0 und 9.

Ehe ich selbst anfange, den Code zu untersuchen: weiß jemand einen Trick (ggf. Codeanpassung für einen "MySPIDER_ACCESS" ähnlich http://www.oscat.de/community/index.php/topic,2040.msg12289.html#msg12289 (ja ja, ich wollte das immer mal bereit stellen), wie man an einen brauchbaren Wert kommt?

Gruß

Rainer

peewit

hi

das sollte problemlos funktionieren
um hierzu einen kommentar abgeben zu können musst du aber mehr details liefern

codebeispiel, online bildschirmhardcopy
ist das eine lokale oder globale variable
funktioneren anderen datentypen und nur real nicht
ist die ausgegebene zahl nur ohne kommastellen, oder ....
welche sps und firmware hast du

rrbd

Das wird im wesentlichen schon funktionieren, aber der String wird irgendwo auf dem Übertragungsweg halt am Punkt abgeschnitten. Ich hatte diverse Zahlen werte ausprobiert, stets mit leicher Quelle und ziel:

Quell-DDC Visu     Spider_Access    REAL
                        - Ergebnis
199.9 Pa            1                      1.999...E2
200.1 Pa            2                      2.001...E2
14.9 °C             1                     1.491...E1
69.9 %              6                     6.992...E1

Es wird also nur der Ganzzahlanteil der Mantisse in der Zielvariablen ausgegeben, aus einer Außentemperatur von  14.9 °C mit der REAL-Darstellung  1.494... wird die SPIDER_ACCESS - Ausgbe "1"

Rainer

peewit

Es wäre interessant was genau uebers Netzwerk kommuniziert wird. Kannst du einen wireshark mitschnitt machen ?

rrbd

Zitat von: peewit in 28. September 2015, 19:21:31
Es wäre interessant was genau uebers Netzwerk kommuniziert wird. Kannst du einen wireshark mitschnitt machen ?

Moin,

von der Kommunikation zwischen den SPSsen? Keine Ahnung, wie das gehen sollte.

Da es gerade mal wieder praktisch gewesen wäre, die Funktion nutzen zu können, hab ich noch einmal etwas geforscht. Ergebnisse:
a) Das Problem ist nicht auf REAL-Werte beschränkt, ich sehe dasselbe Problem beim Lesen von INT-Werten, wahrscheinlich ist es ein grundsätzliches Problem, dass nur die führende Ziffer ausgelesen (oder angezeigt?) wird.

Die beiden folgenden Screenshots aus einer Phoenix ILC131 (pcworx_network_130) wurden kurz nacheinander erstellt, der Wert der Variabelen in der QUELL-SPS ((für den Test manipulierter) Außentenperatur-Messwert * 10) war grob bekannt.

Wie ließe sich jetzt der Verdacht erhärten, dass die Ursache des Problems ein falscher Wert (=0)  für "BODY_LEN" ist? Am praktikabelsten fände ich immer noch eine Screensharing-Sitzung, damit ein Experte mal zum Debuggen über meinen PC in die SPS  reingucken kann.

Da ich eh schon mal am Probieren bin werde ich für eine neue Version dieses Projekts eine aktuelle netlib verwenden.


[gelöscht durch Administrator]

rrbd

Hier sieht man noch mal das Ergebnis im Programm und dazu den korrekten Wert in der Quell-SPS in der dazugehörigen Visualisierung:

Von den "48.3%" an der Quelle bleibt beim SPIDER_ACCESS nur die führende "4". Das ist kein toter Wert, ändert sich der Zahlenwert an der Quelle auf irgendetwas > 50%, ändert sich der SPIDER_ACCESS - Ausgang zuverlässig auf ide erwartete "5". Das ist so bei diversen Werten und Variablen, die ich durchprobierte.

[gelöscht durch Administrator]