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

Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 31

Thema: C-Compiler für S7! wer macht mit?

  1. #21
    Barnee ist offline Benutzer
    Themenstarter
    Registriert seit
    18.12.2005
    Beiträge
    71
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Jochen Kühner
    Wenn dies alles so unsinnig ist, frage ich mich, warum gibt es auch auf dem pc so viele programmiersprachen???

    Wenn ich vor einem problem sitze könnte ich ja auch immer sagen das könnte ich doch auch mit dieser oder jener lösen, warum gibt es die anderen überhaupt noch?? ich denke je mehr auswahl desto besser. es kann ja sein das sich durch einen c compiler mache aufgabe viel einfacher lösen lässt als wie es mit einer der schon vorhandenen funktioniert hätte...

    ich denke man sollte diesen schritt einfach wagen, man muss ihn ja nicht verwenden... und bei den problemen bei denen der einsatz dann sinvoll ist wird er schon verwendet werden...
    Die Welt außerhalb von S5/S7 ist nicht so propietär, deshalb gibt es dort auch viele Wege, die man beschreiten kann, wobei die Wahl der Mittel sich trotzdem immer nach dem Zwecke richten sollte. Ob nun Pascal, C oder C++ um nur weniges zu nennen, entspricht der Entwicklung auf diesem Sektor. In der Windoof-Welt ist man aber schon wieder dabei, sich von BG einnorden zu lassen, ohne dem Microsoft Foundation Club geht da fast nix mehr und dreimal darf man raten auf welcher Basis die Siemens-OPC-Server funktionieren. Für viele Bitbumser bleibt fast gar nichts anders mehr übrig, als sich dem Diktat zu beugen.

    Es gibt ein paar Dinge, die man in SCL nicht machen kann, die aber in AWL sehr wohl sauber und sicher ausformuliert werden können. Das ist z.B. ein Antrieb, um über andere Lösungen nachzudenken. Die Tatsache, das AWL nicht totzuschweigen ist und das AWL Sprachelemente aus C verwendet, ist ein weiterer Antrieb für mich. Was mich außerdem ärgert, ist die Konstanten-Schreibweise in SCL, die sich doch erheblich von den Pascal-Syntaxregeln unterscheidet (ich erwarte schon den Einwand der S7-Puristen).


    Zitat Zitat von ohGott
    Wer kennt noch Coros LSB?
    So so von Dir war der Kram ..... aber war ok

    Ich kenne LSB noch sehr gut weil ich auch schon lange dabei bin.
    Wie stellst Du dir den Ablauf vor???


    Gruß
    Wenn du Interesse hast, dann melde dich an und schreib mir eine PN. Ich habe bis zum jetzigen Zeitpunkt (Wochenende) noch nicht mit einer solchen Resonanz gerechnet. Diskussionen um das Thema werden wir demokratisch in einem Team in einer privaten Atmosphäre führen.


    Gruß Barnee

  2. #22
    Registriert seit
    20.10.2003
    Ort
    Biberach
    Beiträge
    5.068
    Danke
    959
    Erhielt 1.459 Danke für 922 Beiträge

    Standard

    Hallo,

    hat für die S5 schon mal jemand versucht, es gab dazu
    ein Buch vom Franzis-Verlag:

    Maschinensteuerung mit dem PC. Steuerungsaufgaben der SPS erfolgreich mit dem PC realisieren.
    Autor: HOFER, Johannes,
    ISBN 3772348211.
    Gibt es wohl nur noch im Antiquariat.

    Hat damals aber eher weniger Leute interessiert.

    Viele Grüße

    Gerhard Bäurle
    Beste Grüße Gerhard Bäurle
    _________________________________________________________________
    Hardware: the parts of a computer that can be kicked. – Jeff Pesis

  3. #23
    Registriert seit
    24.12.2005
    Beiträge
    127
    Danke
    1
    Erhielt 9 Danke für 9 Beiträge

    Standard

    Bei mir ist dann so die Idee entstanden, eine Entwicklungsumgebung für S7-Bausteine zu entwickeln, die im Rahmen der Möglichkeiten, die sich auf Simatic-S7 (Serie300/400) beziehen, statt einer Anlehnung an Pascal eben mit einer Ausrichtung zu C aufwarten kann. Der generierte Code wird im AWL-Format im Rahmen einer Textdatei gespeichert, der in die S7-Umgebung als AWL-Quelle importiert werden kann. Die Ausrichtung zu C sollte alle in C üblichen Methoden beinhalten, sofern dies entsprechend den Adressierungsmöglichkeiten der S7 durchführbar wäre.
    Beinhaltet das auch die Standard C Library? Wobei ich nur die in diesem Zusammenhang sinnvollen Teile meine. Unter sinnvoll verstehe ich z.B. alles, was in <math.h> zu finden ist.
    Wo nichts ist,
    da kann nichts sein.
    Zitieren Zitieren +  

  4. #24
    Registriert seit
    19.09.2005
    Ort
    Freudenstadt
    Beiträge
    811
    Danke
    64
    Erhielt 101 Danke für 64 Beiträge

    Standard

    Zitat Zitat von Question_mark
    Hallo,
    Zitat Zitat von Lazarus
    Letzter Satz: Zottels Zeigerakrobatik ist trotz allem den möglichkeiten entsprechend sehr sauber und gut verständlich.
    Ja, keine Frage. Der Code von Zottel musste nur als Beispiel dafür herhalten, was ich auf einer SPS nicht haben möchte. Und die Kunden, die in der Nachtschicht einen Fehler suchen, bestimmt auch nicht.
    Der Code von Zottel wurde schon in mehreren Threads als Beispiel für die "schrecklichen Zustände" in C herangezogen. Das Problem ist nur, das die Quellen von libnodave dafür gar kein gutes Beispiel sind, da sich Zottel meines Erachtens nach an die "guten Sitten" beim Programmieren gehalten hat. Meine Erfahrungen mit C/C++ habe ich vor 14+ Jahren gesammelt, seitdem rosten sie vor sich hin. Trotzdem komme ich mit Zottels Code sehr gut zurecht !

    Das Problem, das viele mit C haben (ich auch), ist doch, das C fast alles schluckt, was es vorgesetzt bekommt, und manche Programmierer dementsprechend unleserlichen Code schreiben. Nur ist das im Grunde genommen ja kein Fehler von C, sondern der dieser Programmierer. Der Fehler von C ist nur, das es solche Exzesse überhaupt erlaubt.

    Ich sehe daher die Akzeptanz von C als Programmiersprache in der SPS auch kritisch, aber wer weiß, auf dem PC ist C ja auch trotz der beschriebenen Probleme wohl die am meisten verbreitete Sprache.

    Gruß Axel
    Man muß sparn wo mn knn!

  5. #25
    Registriert seit
    12.04.2005
    Ort
    Black Forest
    Beiträge
    1.336
    Danke
    27
    Erhielt 130 Danke für 117 Beiträge

    Standard

    Hallo Leute,

    also für spezielle Funktionen könnte ich mir auch vorstellen diese lieber in C oder VB zu programmieren als in AWL!
    Wenn in z.B. in "C" übersichtlich programmiert wird, so kann der Code einfacher und schneller gelesen werden als in AWL.

    Ich kenne nun nicht die Arbeitsgebiete der meisten Leute hier am Board, unser Gebiet ist der Sondermaschinenbau (Tranferstraße, Bearbeitungszentren, Montagelinien usw.). Hier wird heute sehr viel Fremdapplikationen wie Videoüberwachung, Mobby uvm. und auch Verwaltungstechnische Aufgaben in der PLC abgehandelt.
    Z.B. eine Paletten oder Werkzeugverwaltung in einem Bearbeitungszentrum.
    Diese Dinge in C zu Programmieren währe teils sehr hilfreich, da wenn z.B. ProTool Pro eingesetzt wird, dort teils auch mit C teilen in den Bildern gearbeitet wird.

    Wenn das "Know-How" sitzt, kann der Kunde auch einen AWL oder FUP Baustein anschauen. Ein Kunde oder das Servicpersonal muß auch nicht in allen Bausteinen änderungen vornehmen. Es beschwert sich auch keiner, das z.B. bei ner NCU57x.x im Grundprogramm oder bei Hi-Graph oder bei TL2000 Bausteine gesperrt sind. ALso kann der Hersteller auch Bausteine mit Know-How sperren.

    Sicherlich war früher die Nachfrage an C für für Step7 nicht so groß, aber die Möglichkeiten, Funktionen sowie Anforderungen sind in den letzten Jahre auch sehr gewachsen. Von der anderen Seite, ist es für Siemens auch nicht so einfach auf verschiedene Ebenen zu Entwickeln. Man merkt dies sehr stark, wenn man mal die versch. Engenieering Tools von Siemens zusammen verwendet. Dies ist bei Projekten in der Automobil-Industrie ja immer der Fall, da kommen die Projekthandbücher von A&D Siemens und am Anfang gibst sehr oft Probleme mit der Kombination der einzelnen Tools!

  6. #26
    Anonymous Gast

    Standard

    Hallo

    @Barnee

    Bei uns ist dieses Thema auch schon öfters diskutiert worden, denn es gäbe schon einige Fälle, bei denen man einen Algorithmus portieren möchte, in denen ein C-nach-AWL-Umsetzer sehr viel Arbeit abnehmen würde.

    Die Frage ist jetzt wie Ernst die Sache schon ist und auf welche Basis man aufbaut. GCC wäre da durchaus auch eine denkbare Möglichkeit. Das Problem wird aber das Debuggen!

    Gruß

    Longbow
    Zitieren Zitieren Großes Interesse  

  7. #27
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Zitat Zitat von Question_mark
    Hallo,
    Der Code von Zottel musste nur als Beispiel dafür herhalten, was ich auf einer SPS nicht haben möchte. Und die Kunden, die in der Nachtschicht einen Fehler suchen, bestimmt auch nicht.
    Die Hauptanwendung sähe ich darin, einfache Aufgaben aus der allgemeinen Informatik zu portieren. Ich erinnere mich, hier mal Code für den Bubblesort-Algorithmus gepostet zu haben. In S7-AWL, weill das der gemeinsame Nenner mit dem Anfragenden war. Das sieht schon ziemlichich schrecklich aus und im Vergleich zu "richtigen" Programmiersprachen ist es eine Zumutung, Array-Indizes zu Fuß berechnen zu müssen.
    Wenn ihr euch AWL-Code anschaut, in dem dann noch ein bischen mit den Adressregistern hantiert wird, steht er schlechtem C-Code an Unübersichtlichkeit nicht nach.
    Natürlich gehen diese DInge auch mit SCL ganz ordentlich, aber SCL ist nun mal eine Zusatzoption, was häufig dazu führt, daß der Wartungsmann entweder kein SCL hat oder die SCL-Quellen nicht hat oder kein SCL kann.
    Wenn der C-Compiler frei verfügbar wäre, fiele wenigstens die erste Hürde weg und die zweite könnte er mit etwas Interesse überwinden. Außerdem gibt es umfangreiche Sammlungen von Beispielcode für so etwas in C (oder Fortran), aber kaum in SCL.
    Insgesamt sehe ich so ein Projekt positiv.
    Zwei "Spezialitäten" der SPS sollten berücksichtigt werden:
    1. Daß sie Maschinenbefehle zur Manipulation von Bits hat (hat ein 8051 auch, also mal bei Keil-C gucken).
    2. Daß Schleifen variabler Länge die Echtzeitfähigkeit jedes Codes zunichte machen. Die S7 bietet die Möglichkeit, derartigen Code in einen OB zur Hintergrundbearbeitung zu packen.

    Bezüglich vorhandener open source C-Compiler: GCC ist mehr für 32-Bit-Architekturen gemacht. Die S7 kann zwar 32-Bit-Arithmetik, aber der knappe Speicher wird besser byteweise belegt. Daher schau dir mal den SDCC an, ein C-Compiler für diverse Mikrocontroller. Dem bräuchte man nur ein neues back end (Code-Generator) hinzuzufügen, wenn mich nicht irre.

  8. #28
    Barnee ist offline Benutzer
    Themenstarter
    Registriert seit
    18.12.2005
    Beiträge
    71
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von arcis
    ....Die Ausrichtung zu C sollte alle in C üblichen Methoden beinhalten, sofern dies entsprechend den Adressierungsmöglichkeiten der S7 durchführbar wäre.
    Beinhaltet das auch die Standard C Library? Wobei ich nur die in diesem Zusammenhang sinnvollen Teile meine. Unter sinnvoll verstehe ich z.B. alles, was in <math.h> zu finden ist.
    Bitte um etwas Vorsicht bei solchen Vorhaben. Eine Library hat immer eine Bindung an den Prozessor für die der Code-Generator entwickelt wurde. Eine stdio-Lib für einen x86 läuft sicher nicht auf einem PowerPC, wenn diese nicht explizit für den PowerPC erstellt wurde. Unser Prozessor ist ein Etwas, das nur MC7-Code versteht, um es mal salopp auszudrücken. So denke ich mir, das sich nicht die Frage stellt, ob existierende Standard-Libs verwendbar wären. Meine (unsere) Standard-Libs sind die existierenden SFB's und SFC's, die allesamt nur STEP7 verstehen.

    @deltalogic
    Nee, 'tschuldigung is nich ganz mein Thema. Ich will nicht eine PLC auf einem PC realisieren, das gibt's ja schon..

    Zitat Zitat von afk
    Zitat Zitat von Question_mark
    Hallo,
    Zitat Zitat von Lazarus
    Letzter Satz: Zottels Zeigerakrobatik ist trotz allem den möglichkeiten entsprechend sehr sauber und gut verständlich.
    Ja, keine Frage. Der Code von Zottel musste nur als Beispiel dafür herhalten, was ich auf einer SPS nicht haben möchte. Und die Kunden, die in der Nachtschicht einen Fehler suchen, bestimmt auch nicht.
    Der Code von Zottel wurde schon in mehreren Threads als Beispiel für die "schrecklichen Zustände" in C herangezogen. Das Problem ist nur, das die Quellen von libnodave dafür gar kein gutes Beispiel sind, da sich Zottel meines Erachtens nach an die "guten Sitten" beim Programmieren gehalten hat.
    Leider habe ich bisher noch keinen Einblick in Zottel's Quellcode von "libnodave" genommen, um mir hier meine eigenes Urteil bilden zu können. Wenn aber afk von der Einhaltung der guten Sitten spricht, was gäbe es dann noch daran auszusetzen? Ich finde man sollte nicht alles in Topf werfen, um danach "igitt" zu rufen. Ich nehme mal an, dass afk weiss wovon er spricht, so zeigt doch Diskussion auf, dass bisher zu viel in die von mir vorgetragene Idee hinein interpretiert worden ist.

    Ein Beispiel eines schlechten Programmierstils in SCL habe ich hier:
    Code:
    IF &#40;Cond_Enable AND 16#0001&#41;= TRUE THEN
    
        C1 &#58;= TRUE;
    
    ELSE
    
        C1 &#58;= FALSE;
    
    END_IF;
    
    
    
    IF SHR&#40;IN&#58;=&#40;Cond_Enable AND 16#0002&#41;,N&#58;=1&#41;= TRUE THEN
    
        C2 &#58;= TRUE;
    
    ELSE
    
        C2 &#58;= FALSE;
    
    END_IF;
    Das lässt sich in ZWEI Zeilen verpacken ohne an Informationsgehalt zu verlieren:
    Code:
    C1 &#58;= &#40;Cond_Enable AND 16#0001&#41; <> 0;
    C2 &#58;= &#40;Cond_Enable AND 16#0002&#41; <> 0;
    Wie man sieht, ist die Angst vor unübersichtlichen Code nicht nur auf C beschränkt, man kann schlechten Programmierstil in jeder Programmiersprache üben, wenn man es nicht besser weiss. In "richtigem" Pascal würden die Zeilen übrigens so aussehen:
    Code:
    C1 &#58;= &#40;Cond_Enable AND $1&#41; <> 0;
    C2 &#58;= &#40;Cond_Enable AND $2&#41; <> 0;
    In C würden die beiden Zeilen so aussehen:
    Code:
    C1 = &#40;Cond_Enable & 0x1&#41; != 0;
    C2 = &#40;Cond_Enable & 0x2&#41; != 0;
    Zitat Zitat von Boxy
    Hallo Leute,
    also für spezielle Funktionen könnte ich mir auch vorstellen diese lieber in C oder VB zu programmieren als in AWL!
    Wenn in z.B. in "C" übersichtlich programmiert wird, so kann der Code einfacher und schneller gelesen werden als in AWL.
    Das trifft genau meine Beweggründe!

    Zitat Zitat von Longbow
    Hallo

    @Barnee

    Bei uns ist dieses Thema auch schon öfters diskutiert worden, denn es gäbe schon einige Fälle, bei denen man einen Algorithmus portieren möchte, in denen ein C-nach-AWL-Umsetzer sehr viel Arbeit abnehmen würde.
    Die Frage ist jetzt wie Ernst die Sache schon ist ....
    Ja, wie ich sehe, stehe ich mit meinen Gedanken zu dieser Idee nicht alleine.
    Mir ist die Sache schon ernst, auch wenn ich das ganze vorerst einmal vor einem sportiven Hintergrund sehe. Wer mitmachen will, kann sich bei mir via PN melden, ich gehe davon aus, in dieser Woche ein Team bilden zu können. Alles weitere auf einem privaten Kanal.

    Gruß Barnee

    PS. Ist das normal, dass das Forum am Sonntagnachmittag immer Offline geht?

  9. #29
    Barnee ist offline Benutzer
    Themenstarter
    Registriert seit
    18.12.2005
    Beiträge
    71
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo @
    Die Anzahl der Beiträge wie auch die Anzahl der Zugriffe (616 z.Zt.) bestätigen mir, dass ich mit meinem Vortrag der Idee (auch wenn sie nicht neu ist) doch bei einigen Forumsbesuchern offene Türen einrennen konnte.

    Es haben sich einige Interessierte bei mir gemeldet, die bereit sind, in einem Team ein solches Projekt gemeinsam zu realisieren. Dafür danke ich erst einmal an dieser Stelle. Aus Gründen der Fairness halte ich das Angebot zum Mitmachen noch bis Mittwochabend offen. Spätere Meldungen können ggf. noch berücksichtigt werden, wir wollen jedoch die Beteiligung in einer überschaubaren Größe halten. Ich werde ab diesem Termin ein Zusammentreffen realisieren, auf welcher Basis das geschehen soll, werden wir zwischenzeitlich intern klären.

    Die Meldung zum Mitmachen sollte über PN erfolgen.

    Gruß Barnee
    Zitieren Zitieren C-Compiler für S7, wer macht mit?  

  10. #30
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Barnee
    Code:
    C1 &#58;= &#40;Cond_Enable AND 16#0001&#41; <> 0;
    C2 &#58;= &#40;Cond_Enable AND 16#0002&#41; <> 0;
    sehr interessant zu wissen.
    wir haben hier auch eine maschine die in scl programmiert ist und die haben das 'in dem schlechten code' gemacht.
    als ich das gesehen habe hab ich mich auch gefragt, was für aufwand den ich in awl mit einem U = erschlagen kann.

    aber woher weiss man dass das auch viel besser geht.

    ich hab hier vor einiger zeit schon mal gefragt ob es nicht ein brauchbares referenzbuch über scl gibt. leider ohne ergebnis,

    oben angesprochenen maschine wurde auch mit c geschrieben.
    die haben einen compiler geschrieben der aus dem c-code einen scl-code macht. ist zwar ein umweg aber leichter zu realisieren wie direkt von c nach awl. (soweit ich das beurteilen kann).

    der generierte awl-code ist natürlich grauenerregend wie alle von scl compilierten quellen.

    EDIT:
    der erzeugte awl-code von der guten variante sieht übrigens auch viel besser aus:
    nur für c1.
    den sinn vom L0.3 kann ich aber nicht nachvollziehen.

    schlecht:
    Code:
          SET   
          SAVE  
          =     L      0.3
          U     #TEMP0
          SPBN  M001
          SET   
          =     #TEMP1
          SPA   M002
    M001&#58; CLR   
          =     #TEMP1
    M002&#58; CLR   
          U     L      0.3
          SAVE  
          BE
    gut
    Code:
          SET   
          SAVE  
          =     L      0.3
          U     #TEMP0
          =     #TEMP1
          U     L      0.3
          SAVE  
          BE
    am besten. von hand
    Code:
          U     #TEMP0
          =     #TEMP1
          BE
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

Ähnliche Themen

  1. Gedanken zum C Compiler
    Von seeba im Forum Hochsprachen - OPC
    Antworten: 37
    Letzter Beitrag: 17.10.2015, 11:51
  2. was ist den aus dem C-Compiler für S7 geworden?
    Von LowLevelMahn im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 06.10.2008, 17:12
  3. SCL-Compiler und Case-Anweisung
    Von herdi im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 10.09.2008, 10:02
  4. Markus und der S7 C-Compiler
    Von Markus im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 27.01.2006, 01:33
  5. Freier SCL-Compiler ?
    Von linax im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 04.12.2003, 20:25

Lesezeichen

Berechtigungen

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