Beckhoff Bk 9050

Antworten
JoKo2001
Beiträge: 7
Registriert: Donnerstag 24. Oktober 2013, 07:06

Beckhoff Bk 9050

Beitrag von JoKo2001 » Sonntag 1. Dezember 2013, 19:06

Hallo ich möchte eine Beckhoff BK9050 mit ProfiLap über Modbus betreiben.

Hat das Jemand schon geacht???

Die Ausgänge Lassen sich ansprechen, denn ihre Startadresse liegt bei 0. Weiss jemand ab welcher Startadresse die Eingänge liegen?
Mit einem Web IO von W&T hat es auch schon funktioniert, da die Startadresse der Eingänge bei 1000 Hex und die Adresse der Ausgänge bei
1020 Hex liegen.
ES wäre toll wenn mir einer bei meinem Problem helfen könnte

tom_g
Beiträge: 215
Registriert: Freitag 31. Oktober 2008, 14:59

Re: Beckhoff Bk 9050

Beitrag von tom_g » Montag 2. Dezember 2013, 10:47

Hallo JoKo,

ich arbeite hie und da mit diesem Typ Buskoppler.

Inputs und Outputs beginnen je bei Offset 1. Beckhoff reiht die Register des Prozessabbildes in der Steckreihenfolge der Klemmen auf, wobei nach digitalen und analogen Klemmen unterschieden wird.

Gruss Thomas
Curiousity makes us progress !

JoKo2001
Beiträge: 7
Registriert: Donnerstag 24. Oktober 2013, 07:06

Re: Beckhoff Bk 9050

Beitrag von JoKo2001 » Mittwoch 4. Dezember 2013, 17:21

Hallo Thomas,

das ist richtig, aber wenn du die Klemme mit dem aufruf Modbus/TCP-Read Coils und Write Multiple Coils ansprechen willst so kannst du nicht
die gleiche Start address eintragen.
Da sich die Ausgänge mit address 0 (1) ansprechen lassen, wenn ich nun die Eingänge auch mit 0 (1) ansprechen lese ich mir nur die geschriebenen Ausgänge zurück.
ich habe 3x4 Ausgangsmodule und 10 x4 Eingangsmodule dabei ist es egal wo die Ausgänge angeordnet sind, da sie sich immer mit der gleichen address (Kanal) ansprechen lassen.
Also müsste theoretisch die Eingänge einen anderen address Bereich haben.
Ich habe es auch schon mit der Start address 1020,1021,1148,1149,512,513,514 und auch 2040,2041 versucht kein Erfolg.
Das Modul lässt sich ab address 4094 nicht mehr ansprechen.
Oder hast du eine Idee was ich falsch gemacht habe???


Gruß Joachim

tom_g
Beiträge: 215
Registriert: Freitag 31. Oktober 2008, 14:59

Re: Beckhoff Bk 9050

Beitrag von tom_g » Donnerstag 5. Dezember 2013, 21:33

N'abend Joachim,

ich habe Dein Beispiel jetzt zwar nicht getestet; aber kurz die Doku des BK9050 runtergeladen und angesehen:

Ich zitiere:
"
ModbusTCP Prozessabbild
Das Prozessabbild des ModbusTCP unterscheidet grundsätzlich digitale und byteorientierte oder wortorientierte Signale (Busklemmen). Zusätzlich wird nach Ein- und Ausgängen unterschieden. Welche Busklemmen zu welchem Mapping gehören kann anhand der Mapping Tabelle entnommen werden.

Digitale Eingänge Digitale Ausgänge
Offset 0 ... 4095 Offset 0 ... 4095
Modbus Funktion Modbus Funktion
Lesen 2 (read discrete input) Lesen 1 (read coils)
Schreiben: - (geht nicht) Schreiben 5, 15 (write single/multiple coil)

Analoge/digitale Eingänge Analoge/digitale Ausgänge
Offset 0x000 ... 0x0FF Offset 0x800 ... 0x8FF
Modbus Funktion Modbus Funktion
Lesen 3, 23 (read holding registers) Lesen 3, 4, 23 (read holding/input registers)
Schreiben: - (geht nicht) Schreiben 6, 16, 23 (write single/multiple registers)

"

->
*Die Register sind Words (16 Bit breit)
*In PL muss man Offset + 1 eingeben
*Ich entnehm der Doku, dass Input- und Outputregister dieselben Offsets verwenden, es sind aber wohl getrennte Speicher !
*Beckhoff mappt je nach Klemmensetup teilweise Statusregister in das Prozessabbild. Dann sind die interessierenden Datenregister versetzt und nicht schön wie erwartet aufgereiht. Der Setup der Klemmen lässt sich mit KS2000, eine Konfigurationssoftware von Beckhoff machen.
Die ist leider nicht frei... ich habe sie und kann bei Gelegenheit mal sehen, wie es sich bei Deinen genannten Klemmen verhält.
*Mittels KS2000 lässt sich einfach verfolgen, wo die Eingänge gemappt sind, wenn ein Eingänge gezielt verändert wird, kann man das im Monitor verfolgen.
*In PL geht das auch, wenn Du an bekannten Klemmeneingängen ein Taktsignal anlegst, mit den read 3 oder 4 Befehlen bis max 64 Register zu 16 bit aufs Mal abfragst z.B. mit 10 Hz Zeitgeber, mit den PL Zustandsanzeigen schaust, wo sich was ändert.
Wenn Du dann nicht alle 64 Register aufs Mal abfragen willst, dann kannst Du eine Funktion anlegen, welche die ermittelte Adresse gezielt abfragt.

*Denk dran, gute Praxis:
ModBus (aber auch andere Kommunikationsblöcke) sollen immer als "daisy chain" aufgerufen werden: ein Taktgeber (z.B. 10Hz) taktet den obersten ModBus-Funktionsblock. Dieser liefert am Ausgang das "busy" Signal, welches nun verwendet wird, um den nächsten ModBus-Block zu takten. Nimm NICHT parallel ablaufende Zeitgeber für jeden Block !
So läuft alles sauber sequentiell durch, so schnell es die ModBus-Abfrage halt erlaubt; im besten Fall läuft die Kette so schnell durch, dass (in meinem Beispiel) alle 100ms eine neue Abfragekette durchläuft.

Viel Erfolg. Wenn ich was Konkretes habe, melde ich mich wieder in diesem thread

PS: nenn mir noch genau die verwendeten Klemmentypen und Konfiguration (wie sie gesteckt sind)

Schönen Abend und Gruss Thomas
Curiousity makes us progress !

JoKo2001
Beiträge: 7
Registriert: Donnerstag 24. Oktober 2013, 07:06

Re: Beckhoff Bk 9050

Beitrag von JoKo2001 » Dienstag 10. Dezember 2013, 21:58

Hallo Thomas

danke vielmals hat mir echt weiter geholfen, Aus und Eingänge lassen sich einwandfrei lesen und Schreiben.
Ich habe ein kleines Projet im anhang.

JoKo2001
Beiträge: 7
Registriert: Donnerstag 24. Oktober 2013, 07:06

Re: Beckhoff Bk 9050

Beitrag von JoKo2001 » Dienstag 10. Dezember 2013, 22:01

Projekt
Dateianhänge
Beckhoff 9050.prj
(24.05 KiB) 438-mal heruntergeladen

tom_g
Beiträge: 215
Registriert: Freitag 31. Oktober 2008, 14:59

Re: Beckhoff Bk 9050

Beitrag von tom_g » Mittwoch 11. Dezember 2013, 20:16

Hoi JoKo,

schön, dass Du's hingekriegt hast !

ich hab Dein Projekt kurz geladen; an sich OK

Noch 'nen Tipp (ohne dass ich Schulmeister sein will, ist nur gut gemeint...)

Generell gilt: Sparsam mit den Sprüngen umgehen, die machen ein PL-Projekt langsam. Brauch lieber Direktverbindungen (Drähte) für die Propagation von Signalen.
Evt. macht ModBus das Projekt selbst sehr langsam, dann spielen die Sprünge eine untergeordnete Rolle. Zudem ist die Hauptsache, dass Dein Ziel erreicht wird, egal wie schnell !

Schönen Abend und viel Spass mit ProfiLab:

Gruss Thomas
Curiousity makes us progress !

Antworten

Zurück zu „Thema Modbus“