WinCC Flex Standard und Beckhoff BC9000

Flitzpiepe84

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

bin neu hier und brauche mal euren Rat und Wissen, denn meines scheint ein wenig knapp zu sein :rolleyes:

Erst einmal erklärt worum es geht:
Wir haben in unserer Firma eine Beckhoff BC9000 Steuerung zu einer Klimaanlage im Produktionsbereich sowie eine Visualisierung zur Anzeige und Änderung/Anpassung von bestimmten Betriebsparametern.
Die Visualisierung läuft auf mehreren Windows-PC´s und läuft nicht gerade sehr sauber aufgrund von Logging (Betriebsparameter) und permanten Abruf von Variablen über TCP/IP von der BC9000.

Ich will/möchte nun diese Visualisierung über ein Siemens HMI-Panel mit Netzwerk-Anschluss ersetzen, da wir kein Backup des Programmes besitzen und somit eine Neu-Erstellung der Visualisierung über TwinCat PLC enfällt, da ein Download von der Steurung nicht möglich ist.
Auf Papier haben wir aber den Programm-Aufbau und somit auch alle Eingänge, Ausgänge und Merker(bereiche) (in der Hoffnung, dass die Dokumentation stimmt :rolleyes:).


Zur Zeit nutze ich zu Probezwecken ein OP 177B color DP. Eine Verbindung des Panels zum Netzwerk besteht und auch das Anpingen der BC9000 geht ohne Probleme.

Doch nun komm ich ins schlingern:
1. was muss ich nun in WinCC Flex Standard in den Verbindungs-Einstellungen einstellen, damit ich ein paar Werte auslesen kann?

Treiber: Modicon Modbus TCP/IP (ist klar und auch eingestellt)
Verbindung: Ethernet (auch eingestellt)
CPU-Typ: 984 (laut anderer Threads wäre das richtig)
Adresse: 192.168. ... . ... (auch eingestellt)
Port: 502 (nach Handbuch der BC9000 der Port für Modbus TCP)

2. in der BC9000 werden Merkerbereiche mit der Symbolik deklariert: %MB...
Wie kann ich diese mit der WinCC auslesen? anderen Threads zufolge muss ich auf das ModBus-Register zurück greifen, welches laut Dokumentation BC9000 von 0x4000 bis 0x4800 geht.
Wo steht aber nun beispielsweise der Merkerbereich %MB132 im Modbus-register? Wenn ich 0x4132 als Variable in WinCC angebe und diese auslese bekomme ich nur ###### als Ausgabe im Panel.

Was mache ich jetzt falsch? Liegt es an den Einstellungen für die Verbindung, an den Variablen oder beidem? Hoffe ihr könnt mir helfen...

Danke schon im Vorraus!
 
Ich habe dafür folgende Einstellungen:

Verbindungen:
Kommunikationstreiber : Modicon MODBUS TCP/IP
CPU-Typ: Compact, Quantum, Momentum
Server: IP-Adresse vom BC
Port: 502

Variablen:
Auslesen von MW0:
Adresse:
Bereich: 4xHolding Register
4x: 416385

Auslesen von MW2:
Adresse:
Bereich: 4xHolding Register
4x: 416386

Das trickige dabei ist die Adressangabe. Bei anderen Modbusbibliotheken reicht eigentlich die Angabe "16385" um das MW0 zu lesen. Flex will aber mal wieder eine Extrawurst.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Thomas V2.1

erstmal danke für die schnelle Antwort.

du schreibst in deiner Antwort, dass du MW0, also Merkerwort 0 ausliest.
Wie bist du auf die Angabe in welchem Bereich des ModBus-Registers sich das Merkerwort befindet gekommen? Kann man das irgendwo nachvollziehen? Denn MW0 (Merkerwort) ist ja nicht gleich MB0 (Merkerbereich oder Merkerbit?)?

Ich muss auf der BC9000 die deklarierten (und fest vorgegeben) %MB102, %MB104, .... bis %MB160 auslesen.
 
Hm, ich glaube ich hab das einfach ausprobiert ;-) Ich habe bisher aber immer nur komplette Worte eingelesen.

Dass ab Register 0x4000 der Merkerbereich liegt steht in der Beckhoff Modbus-TCP Doku:

http://infosys.beckhoff.com/index.p.../html/bt_ethernet modbus function.htm&id=1948

Der Merkerbereich ist imho bei allen BC9xxx Typen gleichartig zu lesen.
Wenn du spezielle andere Bereiche lesen möchtest, musst du in der entsprechenden Doku zu dem genauen Controller-Typ nachlesen.
 
So, mein Problem des Variablen-Abrufes hat sich dank deiner Tips und Ratschläge gelöst. Ich habe meine Ersten Variablen abrufen können und kann sie auch im Panel anzeigen lassen mit periodischer Aktualisierung.

Nun gibt es ein paar Merkerbereiche (%MB...) die ich auch von hand parametrieren muss und will.
Wie muss ich denn diese OffSet-Adressen deklarieren? Bei der Adresse 4X416385 steht ja, wenn ich es richtig verstanden habe, die 4 nach dem "x", dafür was ich mit dem Wert im OffSet-Register machen will.

Muss da jetzt eine andere Zahl dafür eingetragen werden, bzw wofür steht diese 4 überhaupt? Lesen oder Lesen/Schreiben?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Muss da jetzt eine andere Zahl dafür eingetragen werden, bzw wofür steht diese 4 überhaupt? Lesen oder Lesen/Schreiben?

Ich habe mir das irgendwann mal mit Wireshark angesehen. WinCCflex überträgt die 4 an einer anderen Stelle im Protokoll, und nicht im eigentlichen Registerfeld das im Modbus-TCP Protokoll dafür vorgesehen ist.

Ich muss mal sehen ob ich das Logfile noch habe. Oder du testest das selber mal. Du kannst dann am einfachsten auf dem PC die WinCCflexible Runtime starten, und auf diesem Rechner dann auch Wireshark mitlaufen lassen. Der BC9000 muss natürlich übers Netzwerk erreichbar sein.
Ansonsten kann ich dir damit erst am Wochenende weiterhelfen, hab momentan nichts zum Testen da.
 
Wireshark hab ich bis jetzt noch nicht angeschau bzw ausprobiert, aber das schaut ganz nützlich aus...

Also an den OffSet-Adressen musste ich nichts mehr ändern, sondern konnte sie so verwenden zum schreiben. Musste nur im WinCC flex angeben ob ich Lesen/Schreiben, nur Lesen oder nur Schreiben will, wenn ich die Variable an ein Ein-/Ausgabefeld vergeben habe.

So im großen und ganzen funktioniert es jetzt auch alles. Fehlt nur noch das Loggen der Betriebsparameter in bestimmten Zeitabständen und die Darstellung dieser Werte in einem Histogramm.
Brauch ich nur erst ein anderes Panel, das OP177B color DP unterstützt dass Logging bzw. Scripts nicht.
 
Zurück
Oben