# Modbus Slave??



## Tiger30 (16 Februar 2009)

Hallo
auf Wago-Internetseite ist das Beispiel: Realisierung eines Modbus Masters mit dem Wago-I/O-System zu finden. Dieses Beispiel möchte ich bei mir aufm Rechner Testen
Die Hardware dafür habe ich schon: 
    -Feldbuscontroller:Wago 750-841
    -serielles Interface:750-650
    -Endbusklemme
In der Beschreibung sollte einen Datenaustausch zwischen die srielle Schnittstelle und einen Modbus Slave
Meine Frage: was kann ich unter Modbus Slave verstehen? bzw was kann ich nehemn damit ich dieses Beispiel bei mir testen kann

mfg
T.


----------



## BadTaste (16 Februar 2009)

Sag mal hast du schon mal Modbus Slave in einer Suchmaschine deiner Wahl eingegeben?
http://www.google.de/search?source=...2&=&q=modbus+slave&btnG=Google-Suche&meta=lr=

schöne Grüße
Michael


----------



## Tiger30 (17 Februar 2009)

ja klar habe ich im google gesucht nur halt bin ich nicht weiter gekommen


----------



## BadTaste (17 Februar 2009)

Hallo Tiger30,
na dann verstehe ich deine Frage wohl nicht.
Hier steht wie der Modbus arbeitet und sogar wie das Telegramm aufgebaut ist der Vorteil bei dem Modbus ist das du jedes Byte sehen und auch überprüfen kannst: http://de.wikipedia.org/wiki/Modbus

Hier kannst du ein Slave Simulator downloaden: http://www.simplymodbus.ca/RTUslave.htm

So willst du nun auch noch wissen wie du deine serielle Schnittstelle mit deinem Wago 750-650 Klemmen verbinden mußt, oder kannst du das in deiner Wago Doku selber nachlesen?.

Bitte sei mir nicht böse aber ich unterstelle Dir mal mangelnde Recherche im Netz, da es wohl keinen Bus gibt der so einfach, offen und so zahlreich im Netz beschrieben ist wie der ModBus.

schöne Grüße
Michael


----------



## Tiger30 (17 Februar 2009)

Hallo Michael,
Danke für deine Antwort.
Der Slave Simulator habe ich jetzt runtergeladen. 
Wenn ich jetzt die schnittstelle von meinem PC mit dem wago serielles Interfach 750-650 verbinde, dann kann ich schon Daten zwischen PC und wago Controller austauschen oder?


----------



## BadTaste (17 Februar 2009)

Ja das kannst du... der Master (deine Wago) ist der einzige der auf dem Bus was Fragen darf und Fragt dann den Slave mit der eingestellten Adresse ab, im Prinzip ist das so:
-> Master an Slave mit Adresse X sende mir eine X Anzahl von Registern
-> Slave an master hier sende ich dir die angefragten Register

 antwortet der Slave nicht in einer gewissen zeit so gibt es ein Timeout Fehler

Du musst noch beachten das das serielle RS232 Kabel RxD und Txd vertauscht sein muß.

viel Erfolg
Michael


----------



## Tiger30 (17 Februar 2009)

Ich muss mir selber ein RS232 Kabel basteln, damit ich den serielle interface(wago 750-650) mit der schnittstelle vom PC(wo Modbus Slave Simulator läuft) verbinden kann.
du meinst ich muss RxD(PC-seite) mit TxD(Wago Seite) verbinden? damit ein Datenaustauch stattfinden kann


----------



## BadTaste (17 Februar 2009)

Hallo Tiger30,
Ja genau du mußt die 
Wago Klemme 1 (TxD) <-----> (RxD) SUB9 Pin2
Wago Klemme 5 (RxD) <-----> (TxD) SUB9 Pin3
Wago Klemme 3,7 (GND) ----- (GND)SUB9 Pin5

http://www.wago.com/wagoweb/documentation/750/ger_dat/d065000d.pdf

und

http://www.pci-card.com/schnittstellen.html


----------



## Tiger30 (17 Februar 2009)

Hallo Michael
so ich habe die hardware so weit angeschlossen und parametriert. 
Das Programm haeb ich laufen lassen und die Wago SPS hat keinen Fehler gemeldet.
Nun halt die Daten die ich von vom Wago geschickt habe(3 wörter) sehe ich die net im Modbus Slave! Ich weiss nicht was ich da noch anpassen muss
Im programm ist die Slave Adresse schon festgelegt und zwar 5 wo kann ich die Adresse vom Slave(Modbus Slave Simulator) ändern?

Danke im voraus

mfg
T


----------



## BadTaste (18 Februar 2009)

Hallo Tiger,
als allererstes würde ich mal schauen ob die serielle Schnittstelle was richtiges empfängt, also starte doch  mal ein normalesTerminalprogramm (empfehlen kann ich da  http://www.der-hammer.info/terminal/) und nun solltest du bei richtiger Einstellung baudrate unsw. ein Telegramm in der Art von: 01 03 00 00 00 64 44 21 (alles Hexadezimal) hier mal die Aufschlüsselung dazu, weil du ja was lernen möchtest 
01 = Adresse Slave
03 = Funktion lesen register (holding)
00 = highbyte Startregister
00 = lowbyte Startregister
00 = highbyte Anzahl Register
64 = lowbyte Anzahl Register
44= CRC Check highbyte
21= CRC Check lowbyte

Achte darauf das du die Daten ja in Hexadezimal bekommst also das Terminalprogramm so einstellen mußt.


----------



## Tiger30 (19 Februar 2009)

Hallo Michael
Ich kann immer noch nicht nachvollziehen wo die gesendeten daten landen.
Der Wago Controller meldet keinen fehler.
Ich habe die gleiche Einstellungen der serielle Schnittstelle an Com2 vom PC, HTerminal und Wago serielle Interface.
Das Programm sollte drei Wörter senden.

mfg
T.


----------



## BadTaste (19 Februar 2009)

Hallo Tiger30,
dein Programm hat meiner Ansicht nach ein paar Fehler.
ich habe dir mal ein simples Programm zusammengemalt in CFC. Normalerweise würde ich das in ST machen, aber für die Übersicht, zum Beobachten und lernen ist das so besser. Fang doch mal damit an und spiele etwas mit den Daten rum. Da ich grade keine serielle Schnittstelle zur Verfügung habe, habe ich es nicht testen können (nur Simulator). Ich habe auch mein Progkabel nicht hier, sonst kann man nämlich die Serielle Schnittstelle auf 1 stellen und mit der Programmierschnittstelle alles testen.

viel Erfolg
Michael


----------



## Tiger30 (20 Februar 2009)

Hallo Michael,
Danke für dein beispiel. Leider kann ich es nicht testen weil ich das Programm nicht einloggen kann. Ich bekomme immer den fehlercode 10/5 das bedeutet das die Steueurkonfiguration falsch ist.
Ich habe alles versucht um den fehler zu beheben. Die Steuerkonfiguartion stimmt soweit. An dem Controller 750-841 ist nur ein serielles Interface 750-650/00012 und ein Endbusklemme angeschlossen.
Ich habe ein Reset gemacht und wieder versucht das Programm einzuloggen leider erfolgslos.
Die Com Einstellungensind soweit alle richtig eingetragen.
An der Stelle komme ich leider nicht weiter. hast du vllt ein idee woran es liegen könnte oder was ich denn machen soll damit ich weiter kommen kann

danke im voraus
mfg
T.


----------



## BadTaste (20 Februar 2009)

Ja ich glaube das kann ich,
log dich mal per Webbrowser auf die Steuerung ein gehe unter PLC und klick da mal den Haken an: Use alternative Target ID 

dann sollte es wieder gehen und hier der grund dafür:

*The 750-841 has a new Target-ID. *

With  firmware 13 of the 750-841 it was necessary to create a new CoDeSys-Target-ID.  
In existing projects it is possible to change the target in the folder  Resources under the item Targetsettings. The new target will be part of the  version 2.3.8.5 of WAGO-IO-PRO CAA. It is also available via the WAGO support.  For compatibility reasons it is possible to change the target ID in the 750-841  to versions before 12. This is possible on the page PLC in the web-based  management.


----------



## Tiger30 (20 Februar 2009)

ja das habe ich jetzt gemacht aber ich bekomme weiterhin immer den gleichen Fehler:
Kommunikationsfehler(#0)
An der Steuerungskonfiguration liegt's nicht. Scheinbar der Controller merkt die Steuerkonfiguration vom alten Projket und die will er haben


----------



## Tiger30 (20 Februar 2009)

Hi Michael
so endlich jetzt kann ich das Programm einloggen. Nun kann ich leider die daten in HTerminal nicht sehen. Die Verbindung zu Com Schnittstelle wird erfolgreich hergestellt nur die Daten kann ich net sehen.
Weisst du vllt was ich noch im HTerminal ändern kann damit ich die empfangenen Daten an RS232 sehen kann


----------



## BadTaste (23 Februar 2009)

Tiger30 schrieb:


> Hi Michael
> Die Verbindung zu Com Schnittstelle wird erfolgreich hergestellt nur die Daten kann ich net sehen.


woher weißt du das?


----------



## Tiger30 (24 Februar 2009)

der Wago Controller meldet keinen Fehler zurück und der Terminal auch


----------



## BadTaste (24 Februar 2009)

Bitte schick mir mal ein Screenshot vom Programm (PLC_PRG) wenn du eingeloggt bist, ich glaube da stimmt etwas grundliegend nicht. Weil so schwer ist das eigendlich gar nicht... die Steuerung hast du schon in Run gestellt oder? (unten rechts das Symbol online ist grün)

was zeigt den die Modbus Rückmeldung eigentlich an?

schöne Grüße
Michael


----------



## Tiger30 (24 Februar 2009)

*Modbus Slave*

Hallo Michael

wie gesagt der Controller meldet gar keinen fehler auch der serielle Interface.


danke im voraus für deine Mithilfe

Mfg
T.


----------



## BadTaste (25 Februar 2009)

Hallo,
schick doch mal das Projekt da müsste man mal bei der Adressierung bzw. der Hardwarekonfiguration schauen (Bitte projektarchiv mit Bibliotheken)


----------



## Tiger30 (25 Februar 2009)

Hallo Michael
anbei das Projekt

mfg
T.


----------



## BadTaste (25 Februar 2009)

Bitte Zielsystemeinstellungen und Steuerungskonfiguration mal prüfen!
Also ich kann deine Steuerungskonfiguration so *gar nicht* öffnen... was hast du denn da eingetragen? 
Das sollte etwa so aussehen wie im Anhang.

schöne Grüße
Michael


----------



## Oberchefe (2 März 2009)

klappt irgendwie nicht:


----------

