Startseite > Forum > IEC 61131-Programmierung (LogicLab) > Modbus-Kommunikation zwischen SlimLine und Wechselrichter
- Dieses Thema hat 14 Antworten, 1 Teilnehmer und wurde zuletzt aktualisiert 2 Jahre, 5 Monate da Sergio Bertana.
-
AutorPost
-
März 4, 2019 bei 3: 44 pm #46707Alessandro CampodonicoPartecipante
Ich muss mit dem 4-Wechselrichter schneider ATV12 kommunizieren, um ihm einen grundlegenden Befehl zu geben, eine Startrichtung und eine Geschwindigkeitsreferenz zu geben sowie einige andere grundlegende Daten, Absorption, Frequenz und Alarme zu erfassen.
ATV12 Kommunikation ist Modbus in RS485, ich benutze einen SlimLine CPU Compact Ethernet, das einen TCP / IP-Port und einen RS232-Port hat. Ich habe mir das Forum angesehen und weiß nicht, ob ich es richtig verstanden habe, aber es besteht möglicherweise die Möglichkeit, einen TCP / IP-Konverter -> Modbus RS485 direkt zu haben zu SlimLine mit verschiedenen FBs? verstehe ich richtig oder bin ich völlig aus dem weg?
Ansonsten könnte ich noch den RS232-CPU-Port verwenden, aber an dieser Stelle wäre ich gezwungen, einen Konverter zu setzen, oder?
Zur Information benutze ich bereits die TCP / IP Verbindung des SlimLine zur Kommunikation mit einem weintek HMI-Panel und einem Router.
März 4, 2019 bei 5: 34 pm #46756Sergio BertanaAdministrator des ForumsDas System SlimLine kann sowohl als TCP / Seriell-Konverter fungieren (Betreff) als Modbus TCP / Modbus RTU-Konverter (Betreff), aber diese beiden Funktionen werden in Ihrem Fall nicht benötigt. Soweit ich weiß, möchten Sie den Wechselrichter von einem SPS-Programm aus verwalten.
Dazu müssen Sie lediglich eine FB instanziieren ModbusMaster und Verwalten von Befehlen an Umrichter (Sie können darauf Bezug nehmen Thema). Natürlich war es besser, ein MPS054A1 * 0-CPU-Modul zu verwenden, das bereits über die isolierte serielle RS485-Schnittstelle verfügt, wenn Sie jedoch das kompakte Modell im Bereich der Konverter haben Seriell / Seriell Sie können den Konverter finden, der zu Ihnen passt.
In Bezug auf die TCP-Verbindung, mit der Sie eine Verbindung zu einer beliebigen Verbindung herstellen können, werden die einzigen Grenzen durch die Anzahl der Sockets angegeben, die das System verwalten kann (derzeit 32), und durch die Verwendung von verschiebbarem Speicher RMalloc. Jeder Socket verwendet die bei seiner Erstellung definierte Speichermenge.
April 17, 2019 bei 12: 04 pm #47310Alessandro CampodonicoPartecipanteVielen Dank für die Klarstellung, ich habe noch eine Frage, um alle 4-Wechselrichter verwalten zu können. Benötige ich 4-Seriell / Seriell-Wandler? Oder reicht einer?
Wenn einer ausreicht, wie sollen sie verbunden werden?
April 17, 2019 bei 12: 09 pm #47314Sergio BertanaAdministrator des ForumsDas Hauptmerkmal des Modbus-Protokolls ist genau das, dass es in der Lage ist, in Multidrop zu arbeiten, dh ein Mastersystem zu haben, bei dem bei Zweidrahtverbindungsdialogen mit einem oder mehreren Slave-Systemen jedes Slave-System seine eigene Adresse hat (definierter Modbus-Knoten).
In Ihrem Fall müssen Sie also für jeden Wechselrichter eine andere Adresse (Modbus-Knoten) festlegen und können dann mit nur einer seriellen RS485-Leitung mit jedem sprechen. Die Verbindung erfolgt einfach parallel, die beiden Adern sind bei allen Geräten parallel geschaltet (siehe hierzu Anwendungshinweis).
April 18, 2019 bei 12: 02 pm #47318Alessandro CampodonicoPartecipantePerfekt, sehr nett wie immer. Letzte Frage :) Verwenden Sie stattdessen einen RS485 / Ethernet-TCP / IP-Konverter und verbinden Sie die Wechselrichter in TCP / IP mit demelsist Könnte ich den Vorteil haben, direkt auf die Wechselrichter zugreifen zu können, vielleicht über easyaccess? Vielleicht ist es also möglich, die Parameter auf Distanz zu ändern?
April 18, 2019 bei 12: 11 pm #47320Sergio BertanaAdministrator des ForumsEin bisschen Verwirrung… Zunächst einmal, wenn Sie einen Konverter verwenden Ethernet / Seriell Um mit den Wechselrichtern zu kommunizieren und wenn Sie über EasyAccess vom HMI aus darauf zugreifen möchten, müssen Sie es vom aus "aushaken" SlimLine, sonst der ModbusMaster der SlimLine es kümmert sich um die Kommunikation.
Viel, aber viel, viel besser ist die Verwendung der seriellen Delo-Schnittstelle SlimLine zum Dialog mit dem Inveter, dann weiter zu SlimLine einen TCP-Server an einem TCP-Port (Nehmen wir den 1000-Port an). Wenn Sie eine Verbindung von Ethernet zum 1000-Port des SlimLine (Sie können dies mit EasyAccess tun). Im Programm können Sie den ModbusMB-FB deaktivieren und den FB DataStreamExch oder ModbusTCPGateway aktivieren, um Daten von der Ethernet-Verbindung an die serielle Schnittstelle zu leiten, zu der die Wechselrichter (Forum).
November 27, 2020 bei 8: 09 #58344Alessandro CampodonicoPartecipanteIch verwende den Modbus Master FB, um mit 5 Wechselrichtern mit hervorragenden Ergebnissen zu kommunizieren. Aber auf scheinbar zufällige Weise meldet mir der FB einen Fehler, dass das Ausspionieren mit Toolly 10007506 ist. Wenn ich nicht falsch verstanden habe, zeigt dies einen Fehler beim Empfangen von Daten an. Dieser Fehler unterbricht jedoch nicht die Kommunikation, die ohne Probleme fortgesetzt wird. Der Fehler tritt bei allen Wechselrichtern mehr oder weniger alle 2/4 Minuten zufällig auf. Hier ist der Bericht der Spionagekonsole
03:23:03 (.310)|Tx|02 03 1C 20 00 01 82 63 03:23:03 (.011)|Rx|02 03 02 00 03:23:03 (.002)|Rx|Error:10007606, On Case:212, Back:51 ... 03:23:05 (.310)|Tx|03 03 1C 20 00 01 83 B2 03:23:05 (.016)|Rx|02 03 02 00 05 01 B7
Es ist klar, dass einige Zeichen in der Antwort fehlen, aber ich verstehe nicht warum. Die Konfiguration der Baudrate usw. Ich würde sagen, dass es korrekt ist, sonst denke ich, dass es niemals kommunizieren würde, stattdessen kann ich die Wechselrichter steuern.
Das Timeout beträgt 100 ms, die Verzögerung beträgt 10 ms (aber selbst wenn es auf höhere Werte von 300 ms gebracht wird), tritt das gleiche Problem auf. Ein Ratschlag ?
November 27, 2020 bei 8: 21 #58347Sergio BertanaAdministrator des ForumsWie Sie sagen und wie aus dem Spionagebericht hervorgeht, gehen Zeichen der Antwort in der FB verloren ModbusMaster Der Parameter muss definiert werden IFTime was die Interframe-Zeit angibt. Im RTU-Protokoll sind die Pakete durch eine Zeit getrennt, die je nach Baudrate variiert und daher korrekt eingestellt werden muss.
Wenn das Gerät, das antwortet, aus irgendeinem Grund eine Pause in die Antwort einfügt, interpretiert die FB dies als Ende des Pakets, überprüft es und stellt fest, dass es fehlerhaft ist.
Die FB ModbusMaster_v1 Es wurde komplett neu gestaltet, die Kontrolle über die Interframe-Zeit wurde eliminiert, das Paket wird vollständig beschnüffelt und verifiziert, wodurch es unabhängig von der Zeit wird.
Sie sagen mir nicht, welche FB Sie verwenden. Ich rate Ihnen, zur Version v1 zu wechseln und deren Funktion zu überprüfen. Achten Sie darauf, dass wir beim Wechsel zu v1 die Definition der Timeout- und Verzögerungszeiten geändert haben. Jetzt handelt es sich um ECHTE Werte, die in Sekunden ausgedrückt werden.
November 27, 2020 bei 11: 34 #58348Alessandro CampodonicoPartecipanteVielen Dank für die schnelle Antwort, ich wollte versuchen, die Bibliothek mit dem FB zu aktualisieren ModbusMaster_v1 wo kann ich es finden?
November 27, 2020 bei 11: 37 #58350Sergio BertanaAdministrator des ForumsWie Sie aus sehen manuale ist in der Bibliothek eLLabMdbDevsLibmüssen Sie die ausführen herunterladen.
November 27, 2020 bei 2: 04 pm #58352Alessandro CampodonicoPartecipantePerfekt scheint es, dass das Update auf ModbusMaster_v1 aktualisiert wurde.
Immer sehr hilfsbereit und hilfsbereit wie immer!
Februar 18, 2021 bei 8: 24 #59081Alessandro CampodonicoPartecipanteAls ich im Forum spazierte, lernte ich diesen FB ACModbus kennen. Angesichts der Tatsache, dass ich in bestimmten Instrumenten Ihre Systeme für die Kommunikation über Modbus RS485 mit 5 Wechselrichtern verwende, hätte ich gerne weitere Informationen zu diesem FB, von dem ich annehme, dass er kürzlich geboren wurde.
Wenn ich nicht falsch verstanden habe, ist es "bequem", es zu verwenden, wenn Sie nicht aufeinanderfolgende Register auf mehreren Geräten lesen müssen, richtig?
Wie verbessert sich die Kommunikation? Könnte die Verwendung dieses FB die Kommunikationsleistung und damit auch die Geschwindigkeit verbessern?
Danke für die Erklärungen
Februar 18, 2021 bei 8: 33 #59086Sergio BertanaAdministrator des ForumsWie du zu Recht gesagt hast die FB ACModbusDer Array-Befehl Modbus wurde erstellt, um die Kommunikation mit Modbus-Geräten zu erleichtern, indem Sie die Befehle definieren können, die über ein Array von Strukturen des Typs ausgeführt werden sollen ACMODBUS_DATA.
Die Verwendung des FB vereinfacht sicherlich das Schreiben von Programmen, da er alle Planungsvorgänge der Befehle übernimmt und den Übergang von einem Befehl zum anderen optimiert, genau mit dem Ziel, die bestmögliche Leistung zu erzielen.
Aber wenn jemand ein Programm in ST mit dem FB geschrieben hat ModbusMaster Durch geeignete Planung der Befehle wurden bereits alle möglichen Strategien implementiert, um die Zeiten zu minimieren, zu denen bereits die maximale Leistung und damit auch der FB erzielt wurde ACModbus wird nicht in der Lage sein, mehr zu tun.
November 22, 2021 bei 8: 12 #62156Andrea T.PartecipanteTut mir leid, ich kann den ModbusMaster-Funktionsblock in der Bibliothek eLLabMdbDevsLib.plclib nicht finden.
November 22, 2021 bei 8: 21 #62167Sergio BertanaAdministrator des ForumsIch weiß nicht, welche Version der Bibliothek Sie haben, aber wenn Sie die neueste Version von der Site herunterladen, werden Sie sicherlich den Modbus-Master-Management-FB finden.
Jetzt heißt es ModbusMaster_v1, wer unsere Bibliotheken kennt, weiß, dass bei jeder Änderung der I/O-Parameter in einem Bibliotheksobjekt (Funktion oder FB) auch der Name des Objekts durch Hinzufügen einer Version geändert wird, wie in diesem Fall "_v1".
Wenn ein früheres ModbuMaster-Objekt in einem alten Projekt verwendet wurde, kann es aus der Bibliothek wiederhergestellt werden eLLabObsoleteLib.
Es versteht sich von selbst, dass es bei einer Überarbeitung eines alten Projekts immer noch besser ist, immer die aktuellsten verfügbaren Versionen zu verwenden.
-
AutorPost
- Sie müssen angemeldet sein, um auf dieses Thema antworten zu können.