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 (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
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
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
Es wäre interessant was genau uebers Netzwerk kommuniziert wird. Kannst du einen wireshark mitschnitt machen ?
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]
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]