Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: Beckhoff und Modbus TCP

  1. #1
    Registriert seit
    15.02.2006
    Beiträge
    7
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten morgen,

    wie die meisten habe ich ein Problem. Diesesmal eines in dem es um Verständniss geht. Seit ca 2 Wochen habe ich auf meinem Tisch ne Beckhoffkelmme BC9000 liegen und Schrittmotorklemmen KL2531 bzw KL2541 sowie ein paar I/O klemmen. das ganze zusammenstecken und mit der KS software per hand zu steuern ok geht.

    nun meine probleme ich bin siemens verstrahlt. durch studium und diplomarbeit. ich bekommt sogesehen in der Beckhoffwelt fast nix hin.

    wir haben vor von linux aus per ethernet die schrittmotoren zu verfahren. mein bisheriger gedanke: für die BC ein programm schreiben (unter TwincadPLC) und dann von linux aus per modbus die steuersignal (in der form von fahre 5000 schritte CW).

    ich verzweifel hier aber schon daran das ich nicht weiß, wo und wie modbus in die variablen eingereift oder wo welches abbild liegt. ob ich erst eines erschaffen muss oder oder. bin total verwirrt.

    zudem habe ich mir bisher nur solche ominoesen tolls geladen um modbus pakete zu erstellen da ich unter windows entwickle. da taucht immer wieder das feld slave auf ich kanns blso nicht zuordnen was das mit meiner steuerung zu tun haben soll.

    ich bin schon für jeden hinweiß auf ein verständliches datenbaltt oder how to dankbar noch dankbarer wenns deutsch ist.
    die anleitung die beckhoff zu modbus leifert halte ich für sehr dürftig die sind irgendwie sehr auf ihrer twincad geschichte verblendet und sehen leider nicht das man auch hin und wieder was anders machen muss außer windows (firmenpolitk)

    naja erstmal so als überblick wäre schön wenn ihr mir helfen könntet

    als gegenangebot kann ich nur sagen, wer probleme mit µc oder elektronik allgemein hat. fragt ruhig im elektronik-projekt forum. da helf ich euch dann gerne

    Mischa
    denn sie wissen nicht was sie tun
    Zitieren Zitieren Beckhoff und Modbus TCP  

  2. #2
    Registriert seit
    13.03.2006
    Beiträge
    428
    Danke
    5
    Erhielt 43 Danke für 43 Beiträge

    Standard

    Als Einstieg in Modbus:
    http://www.beckhoff.de/german/defaul...usbox/b730.htm
    Aber google sollte weiter helfen.
    Die richtige Spezifikation gibts aber glaube ich nur in Englisch.

    Wenn Du Modbus unter Linux+Windows nutzen willst,
    schau Die doch mal unser Projekt
    http://pvbrowser.org
    an.
    Eine deutsche Doku findest Du in unserer wiki.
    http://pvbrowser.de/pvbrowser/index.php?menu=7&topic=7

    In pvbrowser braucht man im Prinzip nur eine INI Datei ausfüllen,
    um auf Modbus zugreifen zu können.
    Den Server kannst Du unter Linux laufen lassen und
    dann mit den Clients für Linux + Windows drauf zugreifen.

    Am einfachsten kannst Du zugreifen, wenn Du Merker
    M0...Mn definierst.
    Dann ist M0 register 0 zugeordnet.

    Viel Erfolg:
    pvbrowser

  3. #3
    Registriert seit
    07.02.2007
    Beiträge
    55
    Danke
    0
    Erhielt 9 Danke für 9 Beiträge

    Standard

    wir haben vor von linux aus per ethernet die schrittmotoren zu verfahren


    Du brauchst zumindest einmal unter deinen Linux die passende Routinen
    die Modbus TCP-IP für dich abwickeln.

    Slaveadresse ist der Modbus-Seriell die Stationsadresse
    und bei Modbus-TCP-IP die IP-Adresse der E/A-Station
    (musst du natürlich vorher vergeben !)

    Die lokalbusmodule am Beckhoff-Ethernetbuskopf werden automatisch
    adressiert (nachzulesen im Handbuch der Busklemme)

    Die Module werden in Adressraum 0-X für binäre Signale und 0-X für Analoge signale gebündelt. Mittels der verschienden FCxx Befehle kannst du diese Register/Coil lesen und schreiben.

    Da ich das ganze hier nicht in kürze beschreiben kann, solltest du dir auf jedenfall das Handbuch der Beckhoff-Busklemme durchlesen und von der modbus.org Homepage kannst du dir diverse Doku/Infos/Test-Treiber runterladen.

    Ich habe das schon oft mit Modulen von Phoenix-Contact gemacht, das ist
    überhaupt kein Problem, dort geht man einmal in den Plug&Play Mode dann ist die Stationskonfiguration automatisch erzeugt, und man kann zwischen
    Standardmode (wie Beckhoff) und die dynamischen Modbustabellen wählen
    Bei dynmischen Modbustabellen kann ich mit einen Lese und Schreibbefehl alle Signale verarbeiten.
    Geändert von peewit (31.03.2007 um 12:19 Uhr)

  4. #4
    Registriert seit
    13.03.2006
    Beiträge
    428
    Danke
    5
    Erhielt 43 Danke für 43 Beiträge

    Standard

    Zitat Zitat von peewit Beitrag anzeigen
    wir haben vor von linux aus per ethernet die schrittmotoren zu verfahren

    Du brauchst zumindest einmal unter deinen Linux die passende Routinen
    die Modbus TCP-IP für dich abwickeln.
    Den Zugriff auf Modbus unter Linux haben wir in pvbrowser integriert.

    Hier ist die Basisklasse für den Modbus Zugriff,
    (geht unter Linux+Windows und Seriell + TCP)
    http://pvbrowser.de/pvbrowser/sf/man...srlModbus.html

  5. Folgender Benutzer sagt Danke zu pvbrowser für den nützlichen Beitrag:

    luchs2a (03.04.2007)

  6. #5
    luchs2a ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.02.2006
    Beiträge
    7
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    nabend,

    Danke das ihr geantwortet habt. anscheined habe ich zu schwammig gefragt oder verstehe eure antworten nicht.

    so ich bin gerade auf arbeit und es wird noch immer nix.

    also ich habe hier zum testen folgendes programm von http://www.modbustools.com/ als testversion geladen. damit kann man angeblich einzelne modbusbefehle schicken.

    Das Datenblatt zum Koppler habe ich mir schon vor 1 woche ausgeduckt und mehrmals zu gemüte gefüht. ich kann daraus nichts sinvolles zusammenhängendes ziehen. es mag ja die ethernetgeschichte mit ihren kabelsorten schön und ausführlich beschrieben aber das was interessant is geht unter (aus meiner sicht).

    also wo und wie greife ich von modbus auf variablen zu? wo müssen die liegen und wie deklariere ich sie? oder greife ich doch direkt auf meine K-busklemmen zu und nicht auf das abbild im BC?

    die routinen für linux werden bei uns im hause von einer anderen gruppe erstellt. denn mus sich dann "nur" sagen was wann zu passieren hat .


    im datenblatt auf seite 80 das modbusTCP-protokoll is mir klar
    aber was will man mir zB. auf seite 81 mit modbusTCP-interface sagen ? is für mich nen fragment das auch mal abgedruckt werden musste.

    ich bin mir fast sicher das mir 2-3 kleinigkeiten zum gesammtverständniss fehlen damit es ein bild ergibt. bisher isses nur buchstabensuppe.


    Mischa
    denn sie wissen nicht was sie tun

  7. #6
    Registriert seit
    13.03.2006
    Beiträge
    428
    Danke
    5
    Erhielt 43 Danke für 43 Beiträge

    Standard

    Vielleicht hilft Dir ja das weiter:

    http://www.modbus.org/specs.php

    PS: Wir haben Modbus anhand von PI_MODBUS_300.pdf implementiert.

  8. #7
    Registriert seit
    13.03.2006
    Beiträge
    428
    Danke
    5
    Erhielt 43 Danke für 43 Beiträge

    Standard

    Die über Modbus adressierten Variablen können sonst wo liegen.
    Bei einer Schneider/Telemechanique Twido SPS liegen z.B. M0...Mn auf Modbus Adr 0 ... n
    Du musst also ins Handbuch deines SPS Anbieters sehen, wenn Du das Mapping wissen möchtest.

  9. #8
    Registriert seit
    03.09.2006
    Beiträge
    129
    Danke
    9
    Erhielt 12 Danke für 8 Beiträge

    Standard

    Vielleicht hilft Dir das:

    Verwende Cimrex41 von Beijer an BC9000. Kommunikation über Modbus und globale Merker am BC9000. Startadresse beim Panel für MW 0 ist 44000. Am BC9000 habe ich nichts gemacht, ausser die für die Kommunikation zum Panel wichtigen Variablen auf globale Merker gelegt.
    z.B. m_hmi_symbol_vakuumpumpe_ein AT %MX2.5 : BOOL;
    ist dann bei Cimrex Adresse 44001.5 (hoffe ich jetzt mal);
    Georg

  10. Folgender Benutzer sagt Danke zu ge_org für den nützlichen Beitrag:

    luchs2a (03.04.2007)

  11. #9
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Zitat Zitat von luchs2a Beitrag anzeigen
    ...
    wir haben vor von linux aus per ethernet die schrittmotoren zu verfahren. mein bisheriger gedanke: für die BC ein programm schreiben (unter TwincadPLC) und dann von linux aus per modbus die steuersignal (in der form von fahre 5000 schritte CW).
    Um Modbus zu benutzen, mußt du ein paar Variablen definieren, die auf speziellen Adressen liegen (ab 2048 oder 2049 wenn ich mich recht erinnere). Diese kannst du dann als Register 1 usw. über Modbus beschreiben. Leider ist die Anzahl der auf Modbus abbildbaren Variablen recht beschränkt (wenn ich es nicht falsch verstanden habe).
    Daher habe ich vor einiger Zeit mal das Beckhoff-eigene Protokoll ADS für Linux implementiert. Damit hast du Zugriff auf alle Speicherbereiche der Steuerung.
    Den Quellcode findest du im Anhang. Laß die Endung .zip weg, sie ist nur für die Forum-Software.
    Angehängte Dateien Angehängte Dateien

  12. Folgende 2 Benutzer sagen Danke zu Zottel für den nützlichen Beitrag:

    gass (07.04.2009),luchs2a (03.04.2007)

  13. #10
    luchs2a ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.02.2006
    Beiträge
    7
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hallo,

    erstmal danke für die weiteren informativen antworten habe es mittlerweile auch geschafft. für alle die ne grundlagenlösung suchen das wäre meine
    Code:
    PROGRAM MAIN
    VAR
    	zustand: BYTE;
    	posGesetzt: BOOL;
    END_VAR
    
    VAR_INPUT
    	statusbyte AT %IB6: BYTE;
    	datain AT %IW8:WORD;
    END_VAR
    
    VAR_OUTPUT
    	controlbyte AT %QB6 :BYTE;
    	dataout AT %QW8: WORD;
    	ziellow AT %MW0: WORD;
    	zielhigh AT %MW2: WORD;
    	starten AT %MW4: WORD;
    	regsitercom AT %MW6: WORD;
    	einschalten AT %MW8: WORD;
    	stop AT %MW10: WORD;
    END_VAR
    Code:
    IF (regsitercom >0) THEN
    	regsitercom:=0;
    	zustand:= 10;
    END_IF
    
    IF ( (starten>0) AND (zustand=0)) THEN
    	starten:=0;
    	controlbyte:=2#00000101;
    END_IF
    
    IF ( (einschalten>0) AND (zustand=0)) THEN
    	einschalten:=0;
    	controlbyte:=2#00000001;
    END_IF
    
    IF ( stop>0) THEN
    	stop:=0;
    	controlbyte:=2#00000001;
    	zustand:=0;
    END_IF
    
    CASE zustand OF
    0:   zustand:=0;			(*nischt *)
    10:  controlbyte := 16#DF; 				(*registerkomm auf register 31*)
            dataout := 16#1235; 				(*schreibschutz aufheben*)
    	zustand := 20;
    20: 	IF ( statusbyte <> controlbyte ) THEN
    	controlbyte:= 2#11000000+2; 		(* registerkomm + registernummer (ziel pos niedriges wort) *)
    	dataout:=ziellow;
    	zustand:=30;
    	END_IF
    30:	IF ( statusbyte <> controlbyte ) THEN
    	controlbyte:= 2#11000000+3; 		(* registerkomm + registernummer (ziel pos high wort) *)
    	dataout:=zielhigh;
    	zustand:=40;
    	END_IF
    40:	IF ( statusbyte <> controlbyte ) THEN
    	controlbyte:= 2#11000000+31; 		(* registerkomm + registernummer (codewort register) *)
    	dataout:=16#0000;  				(* schreibschutz widerherstellen*)
    	zustand:=50;
    	posGesetzt:=1;
    	END_IF
    50:	zustand:=0;
    END_CASE
    es ist eine absolut rudimentäre lösung die grundeinstellungen ahbe ich mit der KS software vorgenommen mir ging es bis zu diesem punkt erstmal um das grundlagenverständnis. das habe ich erstmal in grundzügen erreicht.

    in der von mir angegebenen software folgende adressen beschreiben !dez angaben:

    adrr: 16384 ziel low word
    adrr: 16384 zeil high word
    adrr: 16387 regsiter komm starten
    adrr: 16388 kelmme einschalten
    adrr: 16386 verfahren straten
    adrr: 16389 verfahren stoppen / quitieren

    @zottel das mit der libary werde ich unserer IT weiterleiten.
    is halt ne politische frage, ob modbus oder ads. was wäre denn aus geschwindigkeitssicht zu empfehlen? wie siehts aus wenn beckhoff nochmal darin rum pfuscht?

    soweit ich verstanden habe kann ich 511 merkerwörter für die kommunikation zur verfügung. inwiewiet da noch was für andere variablen angeht keine ahnung.
    mal sehen was ich da für ein konstuckt entwerfe.... . .

    was ich erstmal von der aktion mit nehem das ich mit der doku von beckhoff nichts so richtig anfangen kann ich halte sie für unausgegoren.

    so denn

    Mischa
    denn sie wissen nicht was sie tun

Ähnliche Themen

  1. Beckhoff und Modbus TCP
    Von astro9481 im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 24.09.2011, 02:30
  2. Beckhoff <-> Modbus <-> Wago
    Von cas im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 06.07.2011, 13:52
  3. Beckhoff Modbus Hardware
    Von sablitos im Forum CODESYS und IEC61131
    Antworten: 9
    Letzter Beitrag: 29.06.2011, 18:18
  4. Modbus mit Beckhoff - opensource?
    Von damiche im Forum CODESYS und IEC61131
    Antworten: 0
    Letzter Beitrag: 15.10.2010, 07:30
  5. Modbus DLL/ VB.net für Beckhoff CX
    Von softwareheini im Forum Hochsprachen - OPC
    Antworten: 3
    Letzter Beitrag: 30.05.2010, 13:56

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •