Freigabe von Merkerbereichen in e!Cockpit

juja

Level-2
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich bin gerade dabei den PFC200 (750-8202) mit e!Cockpit zu testen, d.h. das Codesysprojekt V2 vom 750-800 zu übertragen.
Das C#-Programm soll eine Verbindung zum PFC200 aufbauen und über ein fest definiertes Datenprotokoll, mit dem Controller kommunizieren.
Die Kommunikation war bisher immer über verschiedene Merkerbereiche, die von Anwendung und Controller gelesen und beschrieben wurden.
Mit e!Cockpit scheint dies nun anders zu sein...

Um überhaupt eine Verbindung zwischen PFC200 und Anwendung aufzubauen zu können, wurde ein Modbus-Master in e!Cockpit eingefügt.
Das funktioniert auch soweit.
Mein Problem liegt bei der Freigabe der Merkervariablen. Ich habe schon einige Moglichkeiten versucht, jedoch tappe ich noch immer Dunkeln.
Hat vielleicht jemand vielleicht einen Lösungsansatz für mich?

LG JuJa
 
Hallo juja,

Ein Zugriff auf den Merkerbereich aus dem MODBUS Master ist leider derzeit nicht möglich, es wird allerdings an einer Lösung gearbeitet.

So wie es scheint möchtest du gar kein MODBUS verwenden, daher würde ich dir die WagoAppSocket empfehlen.
Mit der Bibliothek hast du die Möglichkeit selber Clients oder Server aufzusetzen, hier bist du nicht abhängig von irgendwelchen Protokollen und kannst selber entsprechend deinem C#-Programm Daten senden oder empfangen.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,
richtig, ich möchte nicht unbedingt Modbus verwenden.
Danke für den Tipp. Ich werde gleich anfangen mich mit der WagoAppSocket zu beschäftigen. :s9:
Falls ich nicht klar kommen sollte, werde ich mich wieder melden.

Vielen Dank!!
JuJa
 
Huhu!
Leider hat dies nicht so geklappt, wie ich es mir erwünscht habe...
Ich habe mir den Baustein FbTcpServerSingleConnect eingebaut. Eine Verbindung wird auch aufgebaut. War gar kein Problem.
Jedoch ist es mir bisher nicht gelungen irgendwelche Daten auszulesen.
Obwohl ich die entsprechenden Protokolle freigegeben habe und mir den ModbusSampleCommon runtergeladen habe, konnte ich noch nicht mal Register, wie z.B. Gerätecode auslesen. (Fehlermeldung Illegal Data Access)
Mache ich dies mit Codesys, ist das kein Problem. Ich stehe irgendwie auf dem Schlauch...
Noch mal zur Situation: Unser C#-Programm hat die "Modbus TCP common Driver class" (auf dieser Seite sollten keinerlei Änderungen gemacht werden.)
Kommuniziert werden muss daher über die entsprechenden Speicherbereiche (%MW0, %MW41,...)
Ist das überhaupt so möglich mit der WagoAppSocket?

LG JuJa
 
Hallo juja,

in deinem vorherigem Post warst du nicht abhängig von Modbus, nun schreibst du das es nicht geändert werden darf? Kann Dir leider nicht ganz folgen.

Die WagoAppSocket ist eine Bibliothek und dient der Netzwerkkommunikation, das bedeutet du kannst selber z.B. Server/Clients (UDP oder TCP) aufsetzen.
Ein direkter Zugriff auf Merkerbereiche ist derzeit nicht über Modbus realisierbar, du könntest einen anderen Adressbereich verwenden hierfür wäre dann die WagoAppModbus zuständig bzw. ein generischer Master / Slave welcher innerhalb der Geräteübersicht hinzugefügt und konfiguriert wird.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi!
Vielleicht habe ich mich nicht ganz verständlich ausgedrückt und/oder wir haben aneinander vorbeigeredet...
Situation mit dem 880 (Codesys) und dem C#-Programm:
  • C#-Programm hat die "Modbus TCP common Driver class" (auf dieser Seite sollten keinerlei Änderungen gemacht werden.)
  • Über das C#-Programm werden Register ausgelesen und über die Speicherbereiche (%MW0, %MW41,...) mit dem Controller kommuniziert (IP-Verbindung über Port 502).
  • In Codesys wurde weder Modbus noch sonst ein Baustein für die Kommunikation eingepflegt.

Nun, um zu testen, ob wir unsere Geräte mit dem PFC und e!Cockpit optimieren können:
  • Codesys-Projekt sollte in e!Cockpit komplett so lauffähig sein (bis auf die Kommunikation geht schon mal alles).
  • Entsprechende Adressänderungen wären auf beiden Seiten kein Thema, aber die komplette C#-Seite umzubauen (nur für den Test, ob e!Cockpit eine denkbare Options für uns und unsere Geräte wäre) wäre momentan zu riskant und zu aufwendig.
  • Leider funktioniert der generischer Master / Slave noch nicht ganz so. Ich bekomme immer Fehlermeldungen beim Öffnen.

Sobald ich Zeit habe, schaue ich mir die WagoAppModbus an. Aber ich denke, solange die Kommunikation über die Speicherbereiche und das Auslesend der Register noch nicht möglich ist, werden wir noch bei Codesys bleiben.
Gute Software, braucht Zeit um zu Reifen, und so ist das nicht nur bei unseren Geräten, sondern auch bei e!Cockpit. ;)

Vielen Dank für deine Hilfe!
 
Hallo Jura,

okay nun habe ich Dich verstanden.

Bei e!Cockpit geschieht diese Freigabe nicht automatisch, so dass man hier erst mit einem generischen Master innerhalb der Geräteansicht Variablen freigeben muss.
Während dieser Freigabe wird auch gleich festgelegt welche Berechtigung diese Variablen haben und in welchem Register sich diese befinden.
e!Cockpit - Slave Konfiguration


Die Fehlermeldung die du eventuell erhälst könnte von Strings mit einer definierten Länge stammen z.B. STRING(10) welche sich im Anwenderprogramm befinden.
 
Das habe ich mir fast so gedacht..
Nur meine Fehlermeldung hat momentan nichts mit Strings zu tun, denn ich kann weder an meinem Laptop (Windows 10), noch am Entwicklungsrechner (Windows 7) den Konfigurator öffnen...
cockpit.png
Ich hatte das den Support auch geschickt, aber keinerlei Meldung / Info weiter erhalten.
Ich hatte auch e!Cockpit deinstalliert und neu installiert, aber keinerlei Veränderungen... :sad:
 
Guten morgen,
bei beiden Rechnern läuft die 1.0.1.2701
Automatische Updates sind aktiviert.
Danke für das Beispiel, den Slave-Konfigurator kann ich ohne Probleme öffnen.
 
Hallo, ich stehe ziemlich auf dem Schlauch... Ich möchte zur Datenarchivierung per Modbus TCP auf die WAGO 8203 (e!cockpit) zugreifen.
Ich habe bereits einen Generic Modbus Master eingerichtet und entsprechend Variablen freigegeben, z.B. an Adresse 32000.
Aber die Variable ist immer 0, obwohl ich ganz sicher einen sinnvollen Wert habe.
Wenn ich statt von der Wago die Werte von einem anderen Slave (kleines Freeware-Programm) hole, kann ich sie sehen.
wago.jpg
Für einen Hinweis wäre ich dankbar,

Andreas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Tja, habs gefunden. Ich hatte die Variablen RW definiert, also read & write, also wird die Variable quasi synchronisiert und da die Gegenstelle keine Werte liefert wird sie bei jedem Durchgang auf 0 gesetzt. Klar eigentlich. Ich hab sie nun auf RO gesetzt und nun kann ich sie über modbus ( F4 ) erreichen. Also alles prima, das WE ist gerettet.

Liebe Grüße
 
Zurück
Oben