Wolf WRS-K Modbus an Siemens S7-1515

themasterchris

Level-2
Beiträge
46
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Servus Leute,
ich hoffe ihr könnt mir ein bisschen helfen.
Ich soll eine Siemens S7-1515 an eine Lüftungsanlage von Wolf anbinden.
An der Lüftungsanlage ist Modbus verbaut mit dem Wolf WRS-K Modul.

Auf Seiten der Siemens Steuerung haben wir ein CM PtP RS422/485 HF Modbus Baugruppe verbaut.

Nun wäre meine Frage ob das von euch schon mal jemand gemacht hat? Denn leider ist mir nicht ganz klar wie ich auf die Modbus-Daten des Wolf Lüftungsgerätes komme.

Wäre wirklich gut wenn da jemand was dazu sagen könnte, da ich echt auf dem Schlauch stehe ;)

Vielen Dank schon mal
LG Chris
 
Ganz einfach per Modbus RTU.
Du mußt dir von Wolf mal die Liste bzw. Handbuch mit den Adressen der Lüftungsanlage geben lassen oder hast du das schon ?
 
Naja relativ bei 0 hab vorher nur Modbus TCP gemacht und das funktioniert bei mir in anderen Projekten schon sehr gut.
Nur meine tiefgreifende Frage wäre, wie kann ich die Betriebsdaten auslesen und in einen DB schreiben?
Z.B Sammelstörung in einen DB
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Naja, so ein bisschen frage ich mich nun was Du möchtest: Ein Beispiel (Siemens-Link) oder die Lösung (ich öffne die Beispiele und kopiere den Inhalt hier hinein)?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du hat also eine 6ES7541-1AB00-0AB0 .
Nur lesen ist eigentlich keine große Nummer.

Mit dem Baustein Modbus_Comm_Load siehe Hilfe TIA wird die Schnittstelle eingestellt.
Mit dem Baustein Modbus_Master greifst du auf die Wolfsteuerung zu. Auch hier mal einen Blick in die TIA Hilfe.


An deiner Stelle würde ich mal die Adressen sortieren. Dann siehst du man kann mit einem Auftrag alle digitalen Signale und auch Analogen auf einmal erfassen.
Bei den Digitalsignale ist der Index = Adresse. Bei den Analogsignalen ist zb. Index + 40001 = Zulufttemperatur Wolf siehe Hilfe TIA

Achtung bei Modbus gibt es oft einen Versatz in der Adresse von 1. Einige Hersteller zählen 0,1,2,3 andere wieder 1,2,3

Wenn Du die 6ES7541-1AB00-0AB0 im Büro auf dem Tisch hast könnte man mit der Software Modbus Slave Simulator (modbustools.com)
alles im Ruhe testen bevor Du an die Anlage mußt.

Anhang anzeigen 52699
 
Du bist ja nicht der Weltmeister mit Informationen.
Hast du schon etwas angefangen ???? Man kann jemandem schlecht helfen wenn man einem alles aus der Nase ziehen muß.

Hast Du die Karte im Büro und auch eine CPU ? Schon mal etwas mit einer seriellen Schnittstelle gemacht oder 0-Ahnung ?
 
Servus,
sorry das ich nicht so Informationsfreudig bin. Also Modbus RTU bzw. serielle Kommunikation hab ich bis jetzt noch überhaupt nichts gemacht. Anlage steht leider schon beim Kunden (und das auch noch im Keller) und das mit dem Modbus ist erst nachgerüstet worden, deshalb alles ein bisschen schwierig.
Ich habs jetzt mit dem Beispiel Programm von Siemens (Link oben) ausprobiert und krieg auch schon die passenden Analog-Werte rein. Soweit also eigentlich alles gut und ging auch definitiv einfacher als ich mir das gedacht hatte.
Im Anhang schick ich mal einen Screenshot von meiner Konfiguration mit. Hier lese ich aber wie gesagt nur die Analogwerte aus und das auch erst bei Adresse 400001 beginnend.

Meine Frage wäre jetzt noch wie komme ich an die Digitalwerte?

Soll ich dazu das Ganze im Master_comm[2] machen mit der DATA_ADDR 1? Oder wie sollte ich das anstellen?

Bildschirmfoto 2021-02-05 um 12.38.36.jpgBildschirmfoto 2021-02-05 um 12.48.19.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hier lese ich aber wie gesagt nur die Analogwerte aus und das auch erst bei Adresse 400001 beginnend.
erst ab Adresse 400001 - Dazu hat der Captain ja schon geschrieben das Siemens 400001 = Adresse 0 bei Modbus ist. In der TIA-Hilfe ist eine Tabelle, da steht es beschrieben. Also liest Du nicht erst bei Adresse 400001 sondern tatsächlich bei 0 bzw 1 bei Wolf. Die 400000 davor dienen Siemens nur dafür um eine "Kodierung" einzufügen damit zwischen Coils und Holding Register unterschieden werden kann.

Meine Frage wäre jetzt noch wie komme ich an die Digitalwerte?

Soll ich dazu das Ganze im Master_comm[2] machen mit der DATA_ADDR 1? Oder wie sollte ich das anstellen?
Genau. DATA_ADDR 1 bei Mode 0 liest die Bits/Coils, also die digitalen Werte.
(Anmerkung: Du hast die DATA_LEN bei den Halteregistern auf 255 stehen. Die wird er nicht alle einlesen, eventuell im Status ein Fehler stehen, obwohl Werte ankommen. Du darfst nur 125 Wörter lesen und müsstest für 255 dann 2 Abfragen erstellen. Da Wolf aber weniger als die 125 anbietet dürfte das bisher nicht auffallen.
Bei Bits dürfen es, öh, 20**? Bits sein, werden aber ja auch nicht so viele benötigt.)

Ob Du es im Comm[2] liest oder ob Du die DATA_ADDR und den Empfangspuffer veränderst bleibt Dir überlassen. Denke nur daran das immer nur eine Abfrage aktiv sein darf, also der aktive muss fertig sein, dann erst den nächsten Auftrag anstossen, und das hier dann scheinbar ja im Wechsel. Es sei denn es muss noch geschrieben werden, dann hat man bereits 3 Aufträge, 4 wenn Digitale und Analoge Werte gelesen und geschrieben werden.

Als Orientierungshilfe:
Ich erstelle in meinen Programmen für jeden Auftrag einen eigenen DB (bei Dir Comm[1], Comm[2]), damit es übersichtlicher bleibt, besonders bei der Fehlersuche, und für die Steuerung dann hierfür eine Integer-Variable welche ich bei jedem Done um 1 addiere, also als Zähler (vorletztes Netzwerk als P_Trig alle Done als Oder einfügen). Die Aufträge arbeiten dann immer nur wenn Variable=X und am Ende des Bausteins (letztes Netzwerk) wird einfach abgefragt ob die Variable >=4 ist (bei 3 Aufträgen) und dadurch auf 1 gesetzt. So kann ich jederzeit Aufträge hinzufügen und muss nicht alle überarbeiten. Im Panel kommt dann noch ein Button "Kommunikation aktivieren", der die Variable auf 0 legt bei Inaktiv und auf 1 bei aktiv, Gestaltung mache ich so das der Button grundsätzlich als aktiv angezeigt wird, dann aber dynamisch bei 0 als grau. So sind alle aktiven Aufträge abgedeckt, falls die Kommunikation unterbrechbar sein soll.
 
Zurück
Oben