Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Beckhoff/CoDeSys Lib in C

  1. #1
    Registriert seit
    20.05.2007
    Beiträge
    301
    Danke
    38
    Erhielt 6 Danke für 6 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    gibt es irgendwelche Nachteile eine CoDeSys Lib in C anstatt ST/AS zu implementieren?
    Eventuell im Bezug auf Hardwarekompatibilitäten?
    Zitieren Zitieren Beckhoff/CoDeSys Lib in C  

  2. #2
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Standard

    Wenn man es zum Laufen bringt (Dokumentation äusserst dünn!) dann sollte es nur von dem C Compiler abhängen, ob man effektiver geworden ist als mit ST.

    Ich vermute, C native Code ist schneller, da weniger Prüfung etc. einfliesst als im defensiven ST (Pascal). Natürlich läuft es nur auf dem System, für das der C Compiler den Code erzeugt.

    Ich habe Erfahrung mit Codesys unter WIN CE und dem MSC 6.0 Compiler. Mehr Arbeit reingesteckt als effektiv gewonnen.
    Als Freelancer immer auf der Suche nach interessanten Projekten.

  3. #3
    Registriert seit
    30.08.2005
    Beiträge
    280
    Danke
    41
    Erhielt 96 Danke für 66 Beiträge

    Standard

    Natürlich gibt es die. Erstens ist das erstellen umständlicher, man braucht einen C-Compiler, der auch
    das passende Format liefern muss. Es wird nicht alles unterstützt, was ein C-Compiler kann, das merkt man
    dann vielleicht erst bei der Verwendung der Lib. Und natürlich ist die Lib dann nur für eine Hardware geschrieben.
    Wann immer es geht sollte man eine Lib in IEC schreiben. Wir (3S) schreiben alle unsere Libs in IEC, ausser die
    Systemspezifischen, die direkten Zugriff auf Betriebssystemeigenschaften brauchen, die sind dann Teil
    des Laufzeitsystems.

    Bernhard

  4. #4
    Avatar von Anaconda55
    Anaconda55 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.05.2007
    Beiträge
    301
    Danke
    38
    Erhielt 6 Danke für 6 Beiträge

    Standard

    ST wird doch auch kompiliert? Läuft das ST kompilat dann nativ oder in einer virtuellen Maschine?
    Wenn ich eine binäre Lib die mit ST geschrieben ist weitergebe, dann müsste ich ja die selben Probleme haben, da der Sourcecode nicht vorhanden ist und dieser für ein anderes Zielsystem kompiliert wurde!?

  5. #5
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Zitat Zitat von Anaconda55 Beitrag anzeigen
    ST wird doch auch kompiliert?
    ...
    Ja wird es aber den passenden Compiler hat der Anwender (der Lib) in der Regel eh schon, da er ja seinen eigenen Quellcode mit der Lib zusammen übersetzt.
    Bei C ist er eigentlich immer darauf angewiesen die passende Lib zu seinem Zielsystem zu haben. Dies macht eben nur dann Sinn wenn es nicht anders geht (wegen Betriebssystemfunktionen).

    Werner29 hat es ja bereits ausführlich erklärt warum 3s die Libs in einer IEC Sprache verfasst und in welchen ausnahmen sie zu C greifen.
    If you open your Mind too much, your Brain will fall out.

  6. #6
    Avatar von Anaconda55
    Anaconda55 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.05.2007
    Beiträge
    301
    Danke
    38
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Das heißt aber jetzt trotzdem, dass wenn ich eine Lib entwickle in ST und den Quellcode nicht mitgebe, dass der Lib-Anwender dann eventuell Probleme bekommt mit der kompilierten Version. C oder ST ist dann egal.

  7. #7
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Standard

    Zitat Zitat von Anaconda55 Beitrag anzeigen
    Das heißt aber jetzt trotzdem, dass wenn ich eine Lib entwickle in ST und den Quellcode nicht mitgebe, dass der Lib-Anwender dann eventuell Probleme bekommt mit der kompilierten Version. C oder ST ist dann egal.
    Wenn ein anderes Target bedient werden soll, nützt im Prinzip eine LIB ohne Source nix. Man hat aber das gleiche Problem überall, nur, wer den Source hat kann das System wechseln. Wer dann noch den Compiler selber schreiben kann, also auch dessen Source hat, hat alle Karten.

    Eine Ausnahme (leider, da ich vom Entwickeln lebe) ist Microsoft .NET, da gibt es Tools, die aus einer LIB oder EXE wieder einen brauchbaren Source erstellen können. Deshalb gibt es auch wieder Tools, die den Source vor dem Compi8lieren so verunstalten, dass man auch Hyroglyphen verwenden kann.

    Schöne Weihnachten ansonsten.
    Als Freelancer immer auf der Suche nach interessanten Projekten.

  8. #8
    Avatar von Anaconda55
    Anaconda55 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.05.2007
    Beiträge
    301
    Danke
    38
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Eine Ausnahme (leider, da ich vom Entwickeln lebe) ist Microsoft .NET, da gibt es Tools, die aus einer LIB oder EXE wieder einen brauchbaren Source erstellen können. Deshalb gibt es auch wieder Tools, die den Source vor dem Compi8lieren so verunstalten, dass man auch Hyroglyphen verwenden kann.
    Und diesen obfuscated code finde ich schlimmer als ein asm disassembly. Gibt es einen Obfuscator für ST?

    Wenn ein anderes Target bedient werden soll, nützt im Prinzip eine LIB ohne Source nix. Man hat aber das gleiche Problem überall, nur, wer den Source hat kann das System wechseln. Wer dann noch den Compiler selber schreiben kann, also auch dessen Source hat, hat alle Karten.
    Sowohl für ST Bibliotheken als auch C Bibliotheken muss ich dann für verschiedene Targets jeweils neu kompilieren. Einziger Nachteil, die schlechte Dokumentation zur C CoDeSys-Programmierung sowie die schwierige Umsetzung.

  9. #9
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Standard

    Einen sehr interessanten Link zum Thema, wie viel Performance bringt ein Compiler, wie wirkt sich DEBUG aus etc.

    http://www.codeproject.com/KB/tips/Performances.aspx

    Interessant wäre damit auch, läuft CoDeSys immer im Debug Mode?

    Ich kann doch immer mit der Entwicklungsumgebung mich einloggen?
    Als Freelancer immer auf der Suche nach interessanten Projekten.

  10. #10
    Registriert seit
    30.08.2005
    Beiträge
    280
    Danke
    41
    Erhielt 96 Danke für 66 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    jetzt mal der Reihe nach:

    in CoDeSys sind Bibliotheken nichts anderes als Projekte mit einer anderen Dateiendung. In den Bibliotheken wird der Quellcode gespeichert.
    Man muss die nicht für ein bestimmtes Target compilieren. Um diesen Quellcode zu schützen sollte man ein Passwort vergeben.
    In der V3 gibt es die "compiled-libraries", in denen wird zwar nicht der Quellcode gespeichert, aber targetunabhängiger Zwischencode.

    Debug Mode: in der V 2.3. gibt es in den Compile-Optionen einen Schalter für Debug-Code, nur wenn der eingeschaltet ist, kann man Breakpoints
    setzen und Flowcontrol einschalten, dafür hat man etwas grösseren Code und etwas langsamere Ausführungszeiten.
    In der Praxis wird der Schalter selten ausgeschalten.
    In der V3 gibt es die Unterscheidung nicht, Breakpoints und Flowcontrol benötigen keinen zusätzlichen Code mehr.

Ähnliche Themen

  1. Beckhoff EL6080 Zugriff mit Codesys V3
    Von thomas.nienstaedt im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 27.01.2010, 13:43
  2. Zugriff von Codesys V2.3 auf Beckhoff
    Von Beginner09 im Forum CODESYS und IEC61131
    Antworten: 16
    Letzter Beitrag: 10.06.2009, 17:11
  3. Unterschied Beckhoff - Codesys
    Von Gerri im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 08.06.2009, 20:05
  4. Siemens SCL vs. Codesys/Beckhoff/Phoenix
    Von Stuhlbein im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 25.01.2009, 22:13

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •