Hallo Ich bin neu hier und versuche meinen Weg zu finden. Ich habe mich seit einigen Jahen mit php/html/mysql beschäftigt. Mein Problem ist nun folgendes: Ich habe 8 DRR132 Kühlstellenregler. Diese sind an einem tGW-715 über RS-485 angeschlossen. Der tGW ist wiederrum im LAN eingebunden. Ich möchte nun über eine php-Seite auf die Daten in den Reglern zugreifen. Baut Rate, Save-Adressen und IP des tGW sind festgelegt und ich kann über LAN Browser zugreifen/kommunizieren. Letztendlich möchte ich die Temperaturen auf einer MYSQL-DB ablegen. Wie frag ich nun über eine php-Seite die Regler ab. Ich hab schon sehr lange gesucht, und komm einfach nicht weiter. Mit RS-485-Abfragen hab ich mich noch nie beschäftigt :-( Ich bedanke mich schon mal :-)
php ist ziemlich sicher nicht das Werkzeug, mit dem Du die rs485-Kommunikation auf die Beine stellen möchtest. php ist dafür da, daß Du damit auf die Datenbank zugreifst, um eine hübsche (dynamische) Webseite daraus zu basteln. Aber das Befüllen der Datenbank mit den via rs485 ermittelten Daten hat nichts in php und schon gar nichts in "php-seiten" verloren, das gehört in einen separaten, anderen Mechanismus ausgelagert, der eben zyklisch via RS485 die Daten ermittelt und sie in die Datenbank einfüllt. Andererseits scheinst Du ja sogar schon etwas zu haben, was die RS485-Kommunikation übernimmt, dieses "tGW" genannte Gerät, das Du wiederum via "LAN Browser" ansprechen kannst (was auch immer das sein mag). Also dürfte für das Befüllen Deiner Datenbank auch ein Mechanismus genügen, der zyklisch über das Netzwerk mit diesem "tGW"-Gerät kommuniziert, die Daten extrahiert, aufbereitet und in die Datenbank stopft. Nein, ich werde jetzt nicht recherchieren, was ein "tGW-715" sein soll.
ist der tGW-715 das hier? http://www.icpdas.com/root/product/solutions/industrial_communication/pds/tgw-700.html wenn ich das richtig verstehe ist das ein Modbus RTU (per RS485) auf Modbus TCP/IP Gateway d.h. du brauchst keine RS485 Kommunikation mit PHP machen sondern nur TCP/IP Modubus mit etwas Glück könnte dieser Modbus TCP/IP Client fuer PHP helfen die Daten abzufragen https://github.com/krakorj/phpmodbus Achtung: ich habe keine Ahnung von dem tGW-715 noch von der phpmodbus Implementation - aber ich denke damit kommst du weiter
die Modbus-Variable/Adressen sind Geräte/Konfigurations-Spezifisch - da gibt es keinen Standard möglicherweise findest du mehr Details zu den Modbus-Variablen in dem PFD "Manuale DRR132 2300.10.170-RevA" auf http://www.pixsys.net/en/products/thermostats-refrigeration-controllers/drr132 (Anmeldung erforderlich) zum Testen kannst du auch erstmal diese Software verwenden http://sourceforge.net/projects/qmodmaster/ oder diese http://www.simplymodbus.ca/TCPclient.htm und wenn du alles hast das ganze dann nach php portieren
Vielen lieben Dank für die vielen Infos. Also das es über php schlecht geht, hab ich verstanden. Ja es handelt sich um das o.g. Gerät tGW-715. Die vorgeschlagenen Programme zum Testen habe ich ausprobiert. Das Funktioniert auch. Jetzt steh ich aber immer noch vor meinem eigentlichen Problem. Ich müste also ein Programm schreiben, mit dem ich die Daten auslese und sofort auf einen ext. Server in die MSQL-DB lade. Muss ich das mit C++ machen?? Da werd ich mit meinem Wissen aber nicht weiter kommen... :-( Die MODBUSS Adressen usw. hab ich vom Hersteller. Aus dem Bauch herraus, komm ich wohl mit der Seite: https://github.com/krakorj/phpmodbus am weitesten?
:
Bearbeitet durch User
Dein letzter Ansatz ist schon mal richtig. Wenn du mit C++ nicht klar kommst, dann nimm halt ANSI-C das hast du die Schnittstellen für MODBUS auf der einen und SQL auf der andern fertig bzw. findest reichlich Infos im i-Net.
Warum sollte er das unbedingt in C (oder C++) machen - er kann doch PHP gut (oder Trenkel?) und wenn er die phpmodbus nutzt und sein kleines Script auf der Kommandozeile startet gibt es 0 unterschied zu einer "nativeren" Lösung - PHP muss doch nicht im Webserver laufen - und wenn würde die C-Lösung das auch nicht so einfach können noch dazu hat PHP auch einen MySQL-Client im Bauch mach es einfach so kleines PHP-Script
1 | mysql verbindung auf |
2 | modbus verbindung auf |
3 | while(true) |
4 | deine variablen lesen per modbus lesen |
5 | echo auf console + insert in mysql |
6 | sleep(ein paar ms) |
7 | modbus verbindung zu |
8 | mysql verbindung zu |
Danke für die vielen Anregungen :-) So ich hab das jetzt alles Ruhen lassen, bin eigentlich nicht dazu gekommen, mich weiter einzuarbeiten. Jetzt will ich das aber mal langsam lösen. Also der Ansatz von Bert3 gefällt mir irgentwie am besten. Wie kann das genau aussehen. Dazu muss ich doch sicher erstmal ne DB direkt bei mir auf dem Rechner haben. Wollte das alles eigentlich über nen extrenen Server laufen lassen.
bevor du dich an die Datenausgabe in die MySQL wagst könntest du ja mal schauen ob die Modbus Kommunikation funktioniert also nur die Daten Abfragen und Ausgeben - dann sehen wir weiter und ob die DB lokal oder remote läuft ist völlig egal - nur die IP-Adresse ist anders und dein PHP nicht in die Webseite einbetten sondern einfach auf der Kommandozeile mit php.exe deinprogram.php starten
Also die Abfrfage mit Modbus ec. kann ich machen und mir die Daten der einzelnen Geräte anzeigen lassen. So nun komme ich zum eigentlichen Problem. Das schreiben der PHP-Seite. Normale Internetseiten mit PHP hab ich schon sehr oft geschrieben. Das wars aber auch schon. Ich hab schon eine Weile geoogelt um nach entsprechenden Komandos zu suchen, mit dennen ich die Daten per PHP abfragen kann. Aber da fehls mir kommlett. Mus doch als erstes Das Gerät öffen mit der IP und den Port. Und dann die entsprechente Adresse und das Register abfragen. Aber wie das alles. :-(
Drück dich bitte klar aus
1 | -- |
2 | Also die Abfrfage mit Modbus ec. kann ich machen und mir die Daten der |
3 | einzelnen Geräte anzeigen lassen. |
4 | -- |
du kannst das also jetzt schon per PHP? wiederholst du nur deine Wünsche?
1 | -- |
2 | So nun komme ich zum eigentlichen Problem. Das schreiben der PHP-Seite. |
3 | Normale Internetseiten mit PHP hab ich schon sehr oft geschrieben. |
4 | Das wars aber auch schon. Ich hab schon eine Weile geoogelt um nach |
5 | entsprechenden Komandos zu suchen, mit dennen ich die Daten per PHP |
6 | abfragen kann. Aber da fehls mir kommlett. |
7 | -- |
von welchen Kommandos redest du? hast du meine Posts (nochmal, mit den Links) komplett gelesen?
1 | -- |
2 | Mus doch als erstes Das Gerät öffen mit der IP und den Port. |
3 | Und dann die entsprechente Adresse und das Register abfragen. |
4 | Aber wie das alles. :-( |
5 | -- |
ich hab doch diesen Link gepostet https://github.com/krakorj/phpmodbus das sind Beispiele dabei - was fehlt noch?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.