Forum: PC-Programmierung Probleme mit Makefile


von HariboHunter (Gast)


Lesenswert?

Hi Jungs,
Ich hätt da nu auch mal gerne ein Problemchen.
Seit 2 Wochen versuche ich mit verschiedenen Compilern und Hilfe aus
dem Netz ein bestimmtes Makefile zu compilen. Die Acplt/ Ks - Source
downloadbar auf der Hp der Uni Aachen. Meint ihr ich krieg das hin?
Nein!
Ich habs mit Visual C++ (6.0 Studio) oder auch mit dem Borland C
Compiler oder mit Dev C++ probiert, nix klappt.
Jetzt lade ich gerade den Cygwin runter und werde versuchen mich
dahinein zu denken. Dabei wollte ich mich in Shell/Linux etc. doch gar
nicht einarbeiten. Nunden, hier meine erste Frage ...
Wer kennt sich damit aus? Wie schaffe ich es mit dem Cygwin und
möglichst wenig Parametrierung dieses Makefile in nette kleine .Exe -
dateien zu verwandeln ohne das mir die Eingabeleiste hunderte von
Fehlermeldungen entgegenkotzt? Jetzt kommt mir bitte net mit rtfm. Wenn
einer ein paar Tips hat, oder gute Links, dann poste sie bitte.

von Tobi H. (tobi-) Benutzerseite


Lesenswert?

Wenns mit devc++ nicht geht, dann wahrscheinlich mit cygwin auch nicht.
Auch gut wäre ein direkter Link zu den besagten Dateien, damit die, die
sich damit auskennen (ich nehm mich mal aus ;) das auch schnell finden.

von Thomas (Gast)


Lesenswert?

Also ein Makefile wird kein Compilier übersetzen können. Es ist ja nur
eine Anweisung, welche Dateien kompiliert und gelinkt werden sollen.
Auf den ersten Blick könnte man das auch mit einer Batch-Datei machen,
aber Make schaut auch immer nach, welche Dateien sich geändert hat, und
kompiliert dann nur diese neu.

von HariboHunter (Gast)


Lesenswert?

,ja scho Die c++ Dateien habe ich im Hintergrund liegen ...
 Aber der Makefile ist die Ausgangsbasis ...
Ich hab noch ein paar Ideen... welche dann geklappt hat, werde ich
posten.

ps: einfach bei Google ACPLT eingeben, auf der Hp unter ACPLT/KS die
nötigen Komponenten runterladen wenn jemand Spaß an Klient- Server -
Programierung hat.

von Thomas (Gast)


Lesenswert?

Hab grad mal versucht das auf meinem Rechner mit Debian zu kompilieren.
Hat bei mir aber auch nicht funktoniert, da eine strstream.h verlagt
wird. Mittlerweile wurde die aber durch sstream und stringstream
ersetzt. Also entweder im Quellcode rumfummeln, oder noch nen Kompiler
auftreiben, der etwas älter ist...

von HariboHunter (Gast)


Lesenswert?

Also ,,, ich probiers weiter,,, sollte ich Fortschritte machen, dann
meld ich mich hier.

von HariboHunter (Gast)


Lesenswert?

So, die wichtigen Teile des makefiles kompiliert. - War nach Meinung
eines Programmers der sich damit auskennen sollte, ein Fehler im
Quelltext.- konnte ich nix machen, sorry.

Nundenn, ich habe nun (mit ein wenig Hilfe ;-) ) eine Wrapper.dll für
Delphi geschrieben in dem ich die Elementaren Funktionen ( Ksgetep und
KsgetVar (setep und setvar sowie die History-elemente werden zum Glück
nicht verlangt) als Übergabeparameter bekomme. Klappt schon, aber ist
noch irgendwo ein Bug drinne der diese unschönen Fehlerfenster
hervorbringt. Aber ich habe eine Kommunikation vom Server zum Host.-
immerhin.

Jetzt ärger ich mich mit der Ttreeview- Komponente herum. - Zum Glück
gibts da aber einiges in einschlägigen Foren.

von HariboHunter (Gast)


Lesenswert?

So, Treeview- Komponente macht nun auch was ich von ihr möchte.
Sind aber noch probleme mit der Darstellung. Melde mich später nochmal.

von Thomas (Gast)


Lesenswert?

Was kann man mit dieser Software zu Hause denn testen?
Befasse mich beruflich auch mit Prozessleittechnik, aber der Sinn des
Projektes hat sich mir noch nicht so richtig erschlossen.

Für eine Uni find ich es schon ziemlich peinlich, Code zu
veröffentlichen der sich nicht fehlerfrei übersetzen lässt. Aber das
ist ne andere Baustelle...

von HariboHunter (Gast)


Lesenswert?

Ich habe von meiner Firma den Auftrag bekommen, einen Clienten in der
Programmiersprache 'Delphi' für der Acplt/ks Standart der Th-Aachen
zu entwickeln. Das Grundgerüst hierzu ist auf der Homepage des
Prozessleittechnik- Institutes downloadbar. Die cpp- Dateien sind nach
dem Download für das entsprechende Betriebssystem zu compilieren.
Einige Programmschnippsel machten aber beim erzeugen derbe Probleme und
führten zum Abbruch (Kann aber auch sein das ich zu blöd bin es richtig
zu machen, will mich nicht darauf festnageln lassen.).
Wichtig sind hierbei der Portmapper, der Manager und der Testserver(für
Testzwecke).
Einmal Aktiviert, stellen Diese im internen Netzwerk oder (nach kleinen
Änderungen) im Internet einen Server voller wunderbarer Maschinendaten
bereit. Wird der Portmapper über TCP/IP vom Clienten angepingt,
(IP-Adresse des Rechners) kann man sich mit dem Clienten durch die
Struktur des (oder der - Es gehen auch viele Server auf einem Rechner)
Servers hangeln, ohne vorher eine Parametrierung am clienten vorgenommen
haben zu müssen.( Das sollte auf jedenfall in Gedanken so
funktionieren.).
Es lassen sich aber mit ein wenig Googlen schon Firmen finden, die
dieses System mit großem Erfolg einsetzen.
Zur Anwendung werden wir Dieses System im Bereich
Fernwartung/Fehlersuche/Visualisierung von Produktionsstraßen bringen,
weil sich mein Chef dadurch erhofft, nicht mehr bei jedem Problemchen,
einen Mitarbeiter um die Welt jagen zu müssen. Die vorherrschende
Visualisierung macht den Clienten in der Sprache Delphi erforderlich.
Daher können wir nicht einfach etwas vorhandenes einkaufen, leider :-(
.
Für daheim könnte man seine Gebäudeautomatisierung vieleicht damit
ausstatten, ist aber ein wenig overkill. Gedacht ist es halt in diesem
Fall für Produktionsstraßen mit Intranet- Anbindung.

Fortschritt:
Im Augenblick schlage ich mich mit der funktionalen Verknüpfung der
Einzelelemente in der Delphi-Unit herum. Die Kommunikation läuft aber
schon sehr zufriedenstellend ( Mit kleineren Bugs...(AAARrrrrghhh))
Wird aber noch Zeit kosten ein vorzeigbares Programm zu proggen. Und
dann weiß ich nicht, ob ich es Öffentlich machen darf...
Macht aber alles wirklich einen Riesenspaß.

von Thomas (Gast)


Lesenswert?

Das Prinzip der Plattformunabhängigkeit ist ja schon nicht schlecht. Was
ich in den Dokumentationen jedoch vermisse sind irgendwelche
Informationen darüber, wie der Server die Daten aus dem Prozess selber
erhält. Dies könnten dann evtl. OPC-Server sein. Dann wäre man aber
wieder auf ein Betriebssystem angewiesen, denn die Protokolle zur
Anbindung an verschiedene SPSen sind ja nicht offengelegt. Es gibt zwar
Versuche dieses per Reverse-Engineering herauszufinden (siehe libnodave
für Siemens), ob sich solche Lösungen jedoch ohne Patenverletzungen
verkaufen lassen wage ich zu bezweifeln.

PLS-seitig fehlen da auch weitergehende Informationen, wie der Client
an bestehende Systeme angebunden werden soll.
Oder habt ihr vor, ein eigenes Leitsystem zu entwickeln? Gibt es
bestehende Leitsysteme deren Schnittstellen soweit offenliegen, dass
man da eigene Anbindungstreiber schreiben kann. Da würde mir dann auch
wieder nur OPC oder DDE einfallen.

von HariboHunter (Gast)


Lesenswert?

Ich habe nachgefragt, da ich mich mit dem Server-Teil bisher noch nicht
beschäftigt hab. (das machen andere)
Siemens wird aus firmenpolitischen Gründen nicht benutzt.
Die Schnittstellen von IPc -> Server liegen über Ads offen - was mir
aber nicht viel sagt- aber sie sind halt einsehbar.

Soweit ich das im Augenblick verstanden hab, solange beschäftige ich
mich noch nicht mit dem Zeuch- und Bücher gibt es auch keine... Auch
ich vermisse eine etwas ausführlichere Prosa sehr. :-)

Die ACPLT ist ein eigenständiges Leitsystem als plattformunabhängige
Alternative zu OPC und mit offenen Schnittstellen und Open Source. Das
Übertragungsprotokoll ist TCP/IP. Die notwendige Treiberdatei heißt
Onc/Rpc welche in Linux- Systemen Standart ist, aber bei Ms.. erst noch
installiert werden muss. Auf das OncRpc greift dann das Acplt-zeugs
zurück und stellt die schnittstellen in den .lib - Dateien zur
Verfügung, welche in den Quelltexten mitgeliefert werden. Darauf
basiert dann der neue Treiber der die .lib und .h - Dateien  in einer
.dll für nicht-cpp lesbar macht.

Bei Fragen zur Serverseite, stellen Sie diese bitte an die Leute, die
das Acplt inzwischen recht erfolgreich im Markt vertreiben.

von Thomas Hergenhahn (Gast)


Lesenswert?

> Es gibt zwar
>Versuche dieses per Reverse-Engineering herauszufinden (siehe
>libnodave
>für Siemens), ob sich solche Lösungen jedoch ohne Patenverletzungen
>verkaufen lassen wage ich zu bezweifeln.
Libnodave selbst steht unter LGPL, so daß man damit ziemlich alles tun
darf. Ich bin kein Anwalt, aber meines Wissens nach ist "reverse
engineering" durch Mithören und analysieren der übertragenen Daten
hierzulande absolut erlaubt. Ich habe auch noch nicht gehört, daß das
viel weiter verbreitete Samba-Projekt irgendwelchen Ärger wegen der
Nachbildung der Protokolle von Microsoft gehabt hätte.

Ist mit "Ads" Beckhoffs ADS gemeint?

von HariboHunter (Gast)


Lesenswert?

Boa, jetzt gehen wir aber ins Detail. - Dabei wollte ich die Serverseite
doch ruhen lassen.
Ja der Standart im Werk ist Beckhoff.
Witzige Sache das mit dem ethercat. - Bisher konnte mir noch keiner
erzählen wie die Sicherheit auf den Bus bringen.

von Thomas Hergenhahn (Gast)


Lesenswert?

ADS und Ethercat sind verschiedene Dinge. Was meinst du mit
"Sicherheit"? Die wesentliche Neuerung ist, daß sie Ethernet
echtzeitfähig machen. Da sie in einem Netzsegment nur einen Master und
sonst nur Slaves haben, können sie auf CSMA/CD verzichten.

von HariboHunter (Gast)


Lesenswert?

Das die Sachen nichts miteinander zu tun haben, sollte klar sein.

Und inwiefern können sie auf
Carrier Sense Multiple Access / Collision Detection verzichten??
reden die Slaves nur wenn sie gefragt werden? dann hat das aber mit
Erthernetprotokoll nicht mehr viel zu tun, oder? ... ok ist ein anderes
thema.

von Thomas Hergenhahn (Gast)


Lesenswert?

Soweit ich es verstanden habe funktioniert es so: CSMA/CD ist das, was
dazu führt, daß Übertragungszeiten auf dem Ethernet nicht vorhersehbar
sind bzw. keine obere Schranke dafür angebbar ist. Ethercat Slaves
reden nur, wenn sie gefragt sind bzw. eigentlich reden sie überhaupt
nicht. Der Master sendet ein Paket und die Slaves hören zu. Sie
manipulieren Bit im durchlaufenden Paket, wenn sie Information abgeben
wollen.Beim gemeinsamen Betrieb von normalem Ethernet mit Ethercat
blicke ich nicht 100% durch, aber es muß in etwa so sein, daß
Pausenzeiten der Ethercat-Kommunikation zur Übertragung "normaler"
Pakete genutzt werden. Ein Gerät, daß beides kann, sendet noramles
Ethernet nur in den Pausen und verwendet dann in diesen wieder CSMA/CD.
Logischerweise müßten dann meiner Meinung nach Geräte, die Ethercat
nicht kennen, über spezielle Gateways angebunden werden.Ob das so ist,
weiß ich gerade nicht.

von HariboHunter (Gast)


Lesenswert?

Thx, Das reicht auf jedenfall als Ausführung, wenn ich bei der
Vorstellung meiner Arbeit danach gefragt werde.

Ich habe 80% meiner Arbeit fertig. Die Darstellung läuft,
Die Kommunikation ist fehlerfrei, die Optik nett anzuschauen.
Noch ein paar kleinere Sachen fertig machen, dann die Wünsche von
meinem Cheff noch erfüllen und den ganzen Kram noch in Textform
pressen.

Ich kann nur jedem, der sich ein wenig mit Prozessdiagnose/ Leittechnik
beschäftigt, empfehlen, sich das Acplt/ks einmal näher anzuschauen. Es
hat tolle Möglichkeiten.

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
Noch kein Account? Hier anmelden.