Ergebnis 1 bis 3 von 3
  1. #1
    Mitglied
    Registriert seit
    Jan 2012
    Beiträge
    2

    Question [C#] TwinCAT, Lesen und schreiben von Variablen

    Hallo liebe Community,
    ich weiß dies ist mein erste Beitrag und sofort komme ich mit einer etwas größeren Frage um die Ecke. Ich habe ein Problem undzwar habe ich einen kleinen Roboter mit Fischertechnik gebaut und diesen mit TwinCAT und C# "programmiert". Es gibt zwei Modis in der C# Anwendung einen manuellen Betrieb und einen Automatik Betrieb, wo man mehrere Stationen angeben kann und dann den Roboter startet, dannach fährt dieser diese Stationen ab, zumindest in der theorie, leider klappt das noch nicht ganz.
    Die Stationen etc. werden in einer XML Datei gespeichert und werden dann später ausgelesen, bsp in einen String/Array, aber mein Problem ist jetzt wie übergebe ich diese Variablen bzw. diese Daten einzeln an den Roboter, dabei sollte es so ablaufen, dass ich erst eine Sttation übertrage, der Roboter gibt mir zurück sobald er diese erreicht hat(Das mit dem antworten, dass er die Station erreicht klappt schon), erst dannach soll die nöchste Station übertragen werden...
    Ich bin mit meinen Künsten am Ende!

    Ich würde mich über Snippets/Beispiele und erklärungen sehr freuen.
    (Bitte nicht nur Fachausdrücke verwenden, da ich in C# noch recht neu bin)

    Mit freundlichem Gruß
    CedBec

    __
    PS: wer sagt lern erst dies und das dann erst garnicht schreiben, das sind Praktikums aufgaben doch leider bekomme ich als 15 Jähriger <Praktikant kaum bis garkeine unterstützung...
    Geändert von CedBec (26. 01. 2012 um 12:31 Uhr) Grund: Textanpassung

  2. #2
    Mitglied
    Registriert seit
    May 2009
    Beiträge
    1.888

    Standard Re: [C#] TwinCAT, Lesen und schreiben von Variablen

    Ohne den Code des C#-Programms zu sehen kann man da nur sehr allgemeine Tips geben, besser wäre es du würdest die relevanten Teile des Programms posten...

    Aber grundsätzlicher Ansatz:
    - Programmcode (quer)lesen und versuchen die grundlegende Struktur zu verstehen
    - Irgendwo befindet sich die Schleife welche im Automatikbetrieb die einzelnen Stationen ausliest, anfährt & ausgibt. Dieses Schleifenkonstrukt finden.
    - Programm verändern: Nach einem der 3 Schritte eine Art "Wartebefehl" einbauen so dass das Programm auf eine Reaktion von dir warten muss bevor es fortfährt. Eingabe von der Kommandozeile von dir erwarten z.B., dann musst du nach jeder Station Return eingeben.

    Das war eine einfache Änderung die noch nicht deinen Wünschen entspricht.

    Für die "Luxusversion" solltest du den Datenfluss und Programmablauf genauer analysieren (fällt leichter wenn du vorher die grundsätzliche Struktur überblickt hast) und dann dort wo die Daten aus der XML-Datei geladen werden mit deinen Veränderungen ansetzen.

    Du solltest dafür sorgen das nicht nur eine sondern mehrere Dateien gelesen werden können oder alternativ die Daten von einem Input-Stream (der dann von Konsole oder über Netzwerk kommt) gelesen werden können.

    Dann die Programmstruktur so umbauen das die Schleife die du vorher schon umgebaut hast nicht nur wartet sondern auch nach jedem Schritt die jeweils nächsten Daten für den nächsten Schritt neu einliest (Neue/andere XML-Datei oder von einem Input-Stream).

    Das muss nicht unbedingt einfach sein, weil du vermutlich identifizieren musst welche Schritte die sonst nur einmal (vor/nach dem lesen der einen XML-Datei) ausgeführt wurden du vielleicht jetzt auch vor/nach jedem Schritt nochmal ausführen musst.
    Dabei könntest du dann auch feststellen dass das Programm evtl. noch gar nicht auf mehrmaliges ausführen getrennter Schritte vorbereitet ist und darauf noch angepasst werden muss.

    D.h. die gestellte Aufgabe ist evtl. gar nicht so einfach...

  3. #3
    Mitglied

    (Threadstarter)


    Registriert seit
    Jan 2012
    Beiträge
    2

    Standard Re: [C#] TwinCAT, Lesen und schreiben von Variablen

    Guten Morgen!
    Danke für deine Antwort, deine Tipps haben mir schon ein wenig weiter geholfen, dass dieses Projekt nicht leicht ist, ist mir schon seit knapp 2 Wochen bewusst .
    Wir arbeiten nun seit knapp 2 Wochen daran, es hat dafür natürlich auch einige Spielerreien wie z.B Tastensteuerung und anderes, ich werde mal sehen wie weit sich deine Tipps heute noch realisieren lassen, da heute unser letzter Tag ist, Schülerpraktikum geht nunmal nur 3 Wochen .

    Mit freundlichem Gruß,
    CedBec

    __
    Edit:

    Danke für die Hilfe, hat mir ein wenig geholfen, es war eigentlich ganz simpel ich musste nur eine Zeile ändern...
    Ich habe es nun soweit verändern das alles über C# gesteuert wird und nicht mehr über das TwinCAT Programm. Gute Idee, würde ich da mal sagen, da es nun alles super klappt.
    So einfach kann es gehen:
    iTick = (Int32)tcClient.ReadAny(TICK, typeof(Int32));

    ich weiß nicht wieso ich nicht direkt drauf gekommen bin ^^.
    Ich hätte übringends gern den Code der Funktion geschickt, doch leider ist mir verboten worden, bzw. ich sollte/durfte mir das Programm nicht nach hause schicken daher habe ich das hier dann lieber sein gelassen..

    Und danke nocheinmal für die Hilfe

    Mit freundlichsten Grüßen
    CedBec
    Geändert von CedBec (27. 01. 2012 um 15:34 Uhr)

  4.  
     
     

Berechtigungen

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