-> Hier kostenlos registrieren
Hallo zusammen!
Ich bin neu hier und brauche dringend eure Hilfe!
Ich sitze gerade an meiner Bachelor-Arbeit und soll mich jetzt noch mit LibNoDave beschäftigen.
Erst einmal zu den Dingen, die mir zur Verfügung stehen:
Siemens CPU 313 C
Siemens CP 343-1 Lean
An der CPU sind schalter für die Eingänge und LEDs für die Ausgänge angeschlossen. Quasi ein Hardware-PLCSim... :smile:
Nun zu meinem Problem:
Ich möchte ein Programm schreiben (in C), mit dem ich eine Temperatur überwachen kann. Dazu ist zur Simulation an einem analogen Eingang ein Poti angeschlossen, der die Ist-Temperatur darstellt, die gemessen wird. Nun wird zusätzlich noch eine Soll-Temperatur vorgegeben. Mit einem Programm soll nun mit Hilfe von LibNoDave die Soll- mit der Ist-Temperatur verglichen werden. Übersteigt die Ist-Temperatur die Soll-Temperatur, soll gekühlt werden, also einfach z. B. der Ausgang A124.0 gesetzt werden und bei Unterschreiten der Soll-Temperatur dementsprechend die "Kühlung" ausgehen und eine "Heizung" angehen, also z. B. der Ausgang A124.1.
Das eigentliche Problem ist, dass ich mich mit LibNoDave überhaupt nicht auskenne und auch mich auch schon tagelang durch alle möglichen Foren gekämpft habe, aber noch immer kein Ergebnis...
Zu dem, was ich mir gedacht habe: Es gibt ja bei LND im Ordner "win" die Datei testISO_TCP.exe. Mit dieser kann ich auch schon auf die SPS zugreifen. Also die Verbindung steht. Jetzt dachte ich mir, ich könnte diese Datei (bzw. vielmehr die testISO_TCP.c) als Basis nehmen, um die Kommunikation zur SPS aufzubauen und per "Endlosschleife" mit daveReadBits (oder besser daveReadBytes?!?) die Ist-Temperatur abfragen, mit der Soll-Temperatur vergleichen und per If-Abfrage die mit daveWriteBits (oder besser daveWriteBytes?!?) die Merker M0.0 bzw. M0.1 für "kühlen" bzw. "heizen" setzen.
Wäre ja auch alles noch nicht so schwer. Aber es hängt leider schon an etwas anderem:
Ich hatte mir dann also gedacht: Ok, nimm dir erst mal Code::Blocks und die die testISO_TCP.c und mache daraus eine ausführbare .exe. Das klappt aber leider schon gar nicht. Hab auch schon die libnodave.dll aus dem win-Ordner zu Code::Blocks kopiert und alles mögliche an Header-Dateien. Leider kommen beim Kompilieren immer die Fehlermeldungen, dass Variablen nicht deklariert sind. Dachte, ich könnte das einfach so Kompilieren, aber da habe ich mich ja definitiv getäuscht.
Deshalb jetzt meine Fragen an euch:
Wie gehe ich am Besten daran, ein eigentlich so einfaches Programm mit LND zu realisieren? Was muss ich beachten oder vorher wissen?
Sorry, dass ich vielleicht blöde Fragen stelle, aber ich bin eigenglich nicht der Programmier-Typ und muss jetzt innerhalb der nächsten 2 Wochen irgendwie ein lauffähiges Programm auf die Beine stellen. Wie gesagt, es ist ja nicht viel und wahrscheinlich auch total simpel, aber mich überfordert es gerade, LND mit einzubeziehen, was aber ja notwendig ist...
Vielen Dank schonmal im Voraus an euch!
HoschiD
Ich bin neu hier und brauche dringend eure Hilfe!
Ich sitze gerade an meiner Bachelor-Arbeit und soll mich jetzt noch mit LibNoDave beschäftigen.
Erst einmal zu den Dingen, die mir zur Verfügung stehen:
Siemens CPU 313 C
Siemens CP 343-1 Lean
An der CPU sind schalter für die Eingänge und LEDs für die Ausgänge angeschlossen. Quasi ein Hardware-PLCSim... :smile:
Nun zu meinem Problem:
Ich möchte ein Programm schreiben (in C), mit dem ich eine Temperatur überwachen kann. Dazu ist zur Simulation an einem analogen Eingang ein Poti angeschlossen, der die Ist-Temperatur darstellt, die gemessen wird. Nun wird zusätzlich noch eine Soll-Temperatur vorgegeben. Mit einem Programm soll nun mit Hilfe von LibNoDave die Soll- mit der Ist-Temperatur verglichen werden. Übersteigt die Ist-Temperatur die Soll-Temperatur, soll gekühlt werden, also einfach z. B. der Ausgang A124.0 gesetzt werden und bei Unterschreiten der Soll-Temperatur dementsprechend die "Kühlung" ausgehen und eine "Heizung" angehen, also z. B. der Ausgang A124.1.
Das eigentliche Problem ist, dass ich mich mit LibNoDave überhaupt nicht auskenne und auch mich auch schon tagelang durch alle möglichen Foren gekämpft habe, aber noch immer kein Ergebnis...
Zu dem, was ich mir gedacht habe: Es gibt ja bei LND im Ordner "win" die Datei testISO_TCP.exe. Mit dieser kann ich auch schon auf die SPS zugreifen. Also die Verbindung steht. Jetzt dachte ich mir, ich könnte diese Datei (bzw. vielmehr die testISO_TCP.c) als Basis nehmen, um die Kommunikation zur SPS aufzubauen und per "Endlosschleife" mit daveReadBits (oder besser daveReadBytes?!?) die Ist-Temperatur abfragen, mit der Soll-Temperatur vergleichen und per If-Abfrage die mit daveWriteBits (oder besser daveWriteBytes?!?) die Merker M0.0 bzw. M0.1 für "kühlen" bzw. "heizen" setzen.
Wäre ja auch alles noch nicht so schwer. Aber es hängt leider schon an etwas anderem:
Ich hatte mir dann also gedacht: Ok, nimm dir erst mal Code::Blocks und die die testISO_TCP.c und mache daraus eine ausführbare .exe. Das klappt aber leider schon gar nicht. Hab auch schon die libnodave.dll aus dem win-Ordner zu Code::Blocks kopiert und alles mögliche an Header-Dateien. Leider kommen beim Kompilieren immer die Fehlermeldungen, dass Variablen nicht deklariert sind. Dachte, ich könnte das einfach so Kompilieren, aber da habe ich mich ja definitiv getäuscht.
Deshalb jetzt meine Fragen an euch:
Wie gehe ich am Besten daran, ein eigentlich so einfaches Programm mit LND zu realisieren? Was muss ich beachten oder vorher wissen?
Sorry, dass ich vielleicht blöde Fragen stelle, aber ich bin eigenglich nicht der Programmier-Typ und muss jetzt innerhalb der nächsten 2 Wochen irgendwie ein lauffähiges Programm auf die Beine stellen. Wie gesagt, es ist ja nicht viel und wahrscheinlich auch total simpel, aber mich überfordert es gerade, LND mit einzubeziehen, was aber ja notwendig ist...
Vielen Dank schonmal im Voraus an euch!
HoschiD