Suche Modbus komponenten

Rund um die LCL und andere Komponenten

Suche Modbus komponenten

Beitragvon DL3AD » 24. Okt 2018, 12:10 Suche Modbus komponenten

Hallo,

ich möchte einen Solarladeregler auslesen - der wird mit dem Modbus RTU-Protokoll üder eine serielle Schnittstelle (RS485) angesprochen.
Serielle habe ich bisher immer mit Synapse gemacht.
Nun suche ich Komponenten / Paket mit dem ich das Modbus RTU-Protokoll handeln kann.

Welche Möglichkeiten gibt es da ?

Gruß Frank
DL3AD
 
Beiträge: 371
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon Mathias » 24. Okt 2018, 16:40 Re: Suche Modbus komponenten

Wie ist diese Schnittstelle in deinem PC vorhanden ?
Wird sie als als COM-Port präsentiert ?
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon af0815 » 24. Okt 2018, 16:44 Re: Suche Modbus komponenten

Grundlegend fällt mir da PascalScada ein. Das macht den Modbus Master. IMHO kann das sowohl über seriell als auch über TCP/IP. Ich habe bisher nur den TCP/IP Teil verwendet. Pascalscada ist im OPM enthalten.

In den Examples sind 2 Beispiele vorhanden mit denen du was anfangen könntest: laz_modbus_rtu_scanner und laz_modbus_rtu_ats48
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3490
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon DL3AD » 24. Okt 2018, 17:53 Re: Suche Modbus komponenten

Die Schnittstelle ist als Serial Port auf dem PC vorhanden - als normaler COM-Port bzw. USBttyxxx
DL3AD
 
Beiträge: 371
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon af0815 » 24. Okt 2018, 21:04 Re: Suche Modbus komponenten

Übrigends könnte man das auch mit Synaser selbst implementieren, besonders wenn man nur 1 oder 2 Befehle übertragen will.

Infos dazu hier: http://www.modbus.org/docs/Modbus_Appli ... V1_1b3.pdf besonders so um Seite 11 herum sieht man die grundlegenden Kommandos und auch die Antworten.

Die Frage ist vielmehr, was brauchst du genau um den Solarladeregler auszulesen. Ich gehe fast davon aus, das die Werte in Registern liegen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3490
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon DL3AD » 25. Okt 2018, 06:43 Re: Suche Modbus komponenten

... ja ich möchte eigentlich nur eine Batteriespannung und den Ladezustand auslesen - und ja die liegen in Registern - alles lt. Modbus RTU Standard.
Die Register, Datenformate, ... ist alles bekannt.
Ich werde dann mal selber was stricken - hätte ja sein können dass es eine Komponente / Paket gibt die das Standard Modbus RTU kann.

Danke
Gruß Frank
DL3AD
 
Beiträge: 371
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon af0815 » 25. Okt 2018, 08:33 Re: Suche Modbus komponenten

DL3AD hat geschrieben:Ich werde dann mal selber was stricken - hätte ja sein können dass es eine Komponente / Paket gibt die das Standard Modbus RTU kann.

Dazu verwende ich u.a. PascalScada. Es darf dich nicht erschrecken, das kann mehr, Ich verwende auch nur den Modbusteil davon.

Wenn man die Komponenten plaziert und konfiguriert hat, reduziert sich der Aufwand auf:
Code: Alles auswählen
procedure TForm1.BuReadClick(Sender: TObject);
begin
  TagMod1.Read;
  TagMod2.Read;
  TagMod3.Read;
  TagMod4.Read;
  TagMod5.Read;
  SG.Cells[1,1]:= FloatToStr(TagMod1.Value);
  SG.Cells[2,1]:= FloatToStr(TagMod2.Value);
  SG.Cells[3,1]:= FloatToStr(TagMod3.Value);
  SG.Cells[4,1]:= FloatToStr(TagMod4.Value);
  SG.Cells[5,1]:= FloatToStr(TagMod5.Value);
end;
 


SG ist ein StringGrid auf dem ich die Werte Anzeige. Der Rest wird im OI auf den Komponenten eingestellt. Du hast dann eine PortKomponnete (RS232/485), das Protokoll (Modbus) und die diversen Tags. Mehr ist es nicht.

So nebenbei - ist auch der Entwickler erreichbar und macht auch Wartung seiner Komponente. Habe selbst schon persönlichen Kontakt mit ihm gehabt um ein paar kleinere Probleme zu lösen, die im industriellen Umfeld auftreten können.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3490
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon corpsman » 25. Okt 2018, 18:06 Re: Suche Modbus komponenten

Bei meiner UUart Komponente ist im UNterordner das Program Modbus Diagnostics mit dabei, es demonstriert wie man Modbus RTU und Modbus TCP Verbindungen mit Synapse und ich glaube L-Net aufbauen kann (die Demo liest nur).

Das hilft evtl auch weiter *g*
--
Just try it
corpsman
 
Beiträge: 1055
Registriert: 28. Feb 2009, 08:54
Wohnort: Stuttgart
OS, Lazarus, FPC: Kubuntu 14.04, Lazarus SVN Trunk, FPC 3.0 | 
CPU-Target: 32Bit
Nach oben

• Themenende •

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron
porpoises-institution
accuracy-worried