network.lib > PC WorX

SPIDER_ACCESS: Lesen von SAIA nach Phoenix ILC

(1/4) > >>

rrbd:
Hallo,

nachdem das Verfahren zwischen Phoenix ILC problemlos funktioniert, wollte ich nun mal probieren, aus einer SAIA PCD3.M2130V6 über Netzwerk mit SPIDER_ACCESS zu lesen. Leider erst mal Prellbock, "No Such Component Found" (Error-Ausgang von SPIDER_ACCESS bleib aber 0). Hatte so etwas bei http://www.oscat.de/community/index.php/topic,2017.msg10521.html#msg10521 schon befürchtet.

Nun  ist die spannende Frage woran es liegt. Man muss wissen dass sich die Bedeutung von "für den Webzugriff freigegeben", "Instanz-Variable", "Globale Variable" grundlegend von der IEC 61131 (PC WORX) Welt unterscheiden.

Variablennamen
Findet man in einer Saia eine Variable "RLT1.AUSSENTEMPERATUR", Bedeutet "RLT1" nicht wie bei PC WORX, dass die Variable zu einem Arbeitsblatt  "RLT1" gehört. Vielmehr bietet die SAIA-Programmierumgebung die Möglichkeit einer Art Baumstruktur in der Namensgebung. Ich kann also "einfach so" für meine Anlage "RLT1" eine Gruppe "RLT1.Istwerte" mit einer Ganzzahlvariablen "RLT1.Istwerte.Außentemperatur" anlegen.  "RLT1.Istwerte" hat aber keinerlei Bezug zur Programmstruktur, sondern ist wie gesagt nur eine komfortable Möglichkiet, Variablennamen zu verwalten, einen neuen Varablensatz  für gleichartige Funktion eines gleichartigen Anlagenteils zu erzeugen ("RLT2.Istwerte"), mit denen sich dann sehr einfach ein Programmteil für diesen anderen Anlagenteil "RLT2" erzeugen lässt.

Globale Varablen
Hat in der SAIA-Welt eine andere bedeutung. Ein (FUPLA-) Programm kann jede menge Programmbausteine (Zyklisch abgearbeitete COB, bedingt abgearbeitete PB usw usw usw enthalten, die aber alle auf die gleichen mit "Local" gekennzeichneten Variablen zurückgreifen.
Nur bei Verwendung mehrerer Funktionsplan-Dateien (Heizungsanlage.fup und Lueftung.fup, die am Schluss zu einer Maschinencode-Datei zusammengelinkt werden, müssen globale Variablen definiert werden, die dann in allen .fup mit derselben Bedeutung verwendet werden.
Evtl. ähnlich ist das bei der Erstellung einer Web-Visualisierung, die SAIA-SpiderControl-Lösung setzt überhaupt Globale Variablen ("Public") voraus, alles andere wird beim Build mit "Unresoved EXTERNALs" als Fehler gebrandmarkt. Ein "PDD-Flag" wie bei PC WORX gibt es nicht.

Variablennamen in der Saia-WebVisu
Im Visu-Editor werden dieselben Variablennamen wie im FUPLA-Programm benutzt, die verwendeten sind eh alle Global. Heißt, fpr mein Register "RLT1.Zul.Is.B_TmpAussen0"  (Public) aus dem Fupla heißt der PPO im Visu-Editor für das WEBVISU.prj auch "RLT1.Zul.Is.B_TmpAussen0". Allerdings muss beim SAIA-System vor dem Build des Programms für die SPS noch ein Compilierungsvorgang durchgeführt werden, der eine Datei webserver.wsc erzeugt. Nur mit diesem Vorgang funktioniert der Datenaustausch zwischen der Visu und dem SPS-Programm. Was immer das bedeutet, ich habe mal ein Dateibeispiel angehängt, das auch die o.g. Variable enthält, die ich für meine Tests auch ausprobiert habe.

Ich hatte schon mal bei http://www.sbc-support.ch/faq/item/item.detail.php?it_index=101574&search_for=excel&back_url=%2Ffaq%2Fitem%2Fitem.search.php%3Fcmd%3DSEARCH%26category%3D0%26search_for%3Dexcel%26send_form.x%3D0%26send_form.y%3D0%26sort_order%3D-1%26search_area%3D0%26items_per_page%3D10%26frame%3Dresult%23idx101574 nachgelesen in der Hoffnung, dass mir das neuer Einsichten bringt, leider vergeblich.

Hat jemand schon mal Variablen aus einer SAIA mit SPIDER_ACCESS gelesen? Oder wie können wir mal systematisch ermitteln, wie der Zugriff funktionieren kann?

Viele Grüße

Rainer

[gelöscht durch Administrator]

peewit:
hallo

erstelle eine mini test visu seite mit zwei variablen
eine anzeige variable die ständig von der sps gelesen wird und eine variable die du mit einem button 0/1 schalten kannst

dann mach bitte einen wireshark datenmitschnitt und schalte den button mehrmals

dann kan ich erkennen was bei saia anders zu machen ist

schreib mir dann noch die original variablennamen hinzu, und eventuell eine erklärung der struktur

rrbd:
Hallo, danke für die schnelle Reaktion, ich kümmere mich schnellstmöglich (morgen). Wenn ich Dich richtig verstanden habe benötigst du eine Saia-Visualisierung mit irgendeinem Wert (ich nehme mal einen Temperaturmesswert) und einen Binärwert, ich denke, ich nehme einen Button, der per Button (mous-down, mouse-up) zwischen Binär-0 und Binär-1 wechselt, das ganze als Wireshark-Mitschnitt.

Hinsichtlich Struktur müsstest Du vielleicht noch mal nachfragen wenn du erste Ergebnisse hast, ich bin im Augenblick nicht sicher, ob ich verstanden habe, was du meinst, aber schau'n wir mal.

Viele Grüße

Rainer

peewit:
struktur

ich sehe im wireshark mitschnitt ja nur einen variablennamen mit irgend welchen zusatzzeichen
ich weiss aber nicht was nun der nakte reale sps variablenname ist

was willst du denn überhaupt damit machen ?

alternativ dazu, habe ich ja auch die net_var bausteine geschrieben
mit denen du viel besser daten zwischen zwei steuerungen austauschen kannst

rrbd:
> alternativ dazu, habe ich ja auch die net_var bausteine geschrieben

Hallo, ich weiß, setze ich auch ein. Das ist natürlich die effizientere Lösung, aber der Charme der SPIDER_ACCESS-Lösung ist, dass man mal spontan auf einen Wert einer anderen SPS zugreifen kann, ohne dass man das Programm auf der Datenquellen-SPS anfassen muss - was ja auch gar nicht immer möglich ist.

Insbesondere die SAIA-SPS ist aus einer ganz anderen Welt, da ist's nichts mit net_var Baustein 'reinpfriemeln. Und meine Möglichkeiten würde es halt sehr erweitern, wenn ich von einer Phoenix-ILC aus einfachen Zugriff auf jeweils wenige Daten in einer SAIA-SPS hätte.

Zum beiliegenden Wireshark-Protokoll:

Meine Mini-Visu hatte eine Alarmlampe, die auf ein Flag (Bool) mit Symbol-Namen "Druck.SM.StoerK1" mit der Maschinenadresse "F2981" (ausgelesen aus der SPS) reagiert.

Außerdem habe ich 2 Buttons, die ein anderes Flag mit Symbolnamen "Allgemein.Dummy" und der Maschinenadresse "F03067" jeweils per Schreibzugriff in die SPS auf 1 oder 0 setzen.

Dieser Schreibzugriff (aus Sicht der Visu) war leicht im Protokoll zu finden, siehe z.B. Eintrag 53 im Wiresharkprotokoll.

Ich hoffe, die Aufzeichnungen helfen Dir weiter,

Gruß

Rainer

[gelöscht durch Administrator]

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln