RTE mit Relaiskarte LTP

Ola-HTW
2008-11-27
2008-12-04
  • Ola-HTW - 2008-11-27

    Hallo,

    ich bin Studentin der Elektrotechnik und würde gerne die Software CoDeSys mit RTE in meiner Vorlesung vorstellen. Meine Idee wäre die Ein- und Ausgänge anhand einer Relaiskarte die am LTP Port meines Rechners hängt zu demonstrieren. Ist dies überhaupt möglich. Also laut der Library SysLibPort sollte es eigentlich funktionieren, ich komme das aber nicht wirklich hin. Codesys ist ausßerdem ganz neu für mich, kenne mich mit Step 7 aus. Vielleicht kann mir jemand helfen. Wäre für jede Hilfe dankbar.

    Gruß Ola

     
  • Chräshe - 2008-11-28

    Hallo Ola,

    wie die Ansteuerung über den LPT Port funktioniert weiß ich auch nicht.

    Zur Vorstellung von CoDeSys würde ich allerdings nicht auf externe

    Baugruppen zurückgreifen. Ein großer Vorteil von CoDeSys ist, dass du

    fast alles ohne Hardware testen oder simulieren kannst.

    Zur Demonstration würde ich die VISU verwenden. Zum simulieren der

    Eingänge kannst du dir Schalter einfügen. Die Ausgänge lassen sich z.B.

    mit Kreisen darstellen, die je nach Zustand die Farbe wechseln.

    -> Alarmfarbe innen: %QX0.0

    Gruß

    Chräshe

     
  • Erik Böhm - 2008-11-28

    Moin

    Die Parallele Schnittstelle kann über die Funktionen der SysLibPorts.lib angesteuert werden. Funktioniert mit der RTE wunderbar, und auch sehr schnell. (Parallelport kann bis zu 30KHz).

    Gruss

    Erik

     
  • Ola-HTW - 2008-11-28

    Hallo Eric,

    also nur mal zur verdeutlichung, ich möchte gerne RTE V3 benutzen. Ich bekomme auch ein kleines Programm porblemlos geschrieben, aber wie ich das mit RTE und der Relaiskarte machen kann, da habe ich leider keine Idee.

    Könntest du mit bitte ein Beispiel schicken, oder eine kleine Beschreibung, damit ich das nachvollziehen kann.

    Wäre Dir für deine Hilfe sehr Dankbar

    Gruß Ola

     
  • Tobi - 2008-12-01

    Hallo,

    http://www.stickybit.de/wissen/computer/grundlagen/schnittstellen/schnittstellen.htm#0002

    Was du an den Port anschließt ist völlig egal, wenn dir 8 Bit zu Demozwecken ausreichen könntest du auch einfach ein Scope an Datenbit 1-4 hängen und schon kannst du zeigen, dass die Ausgänge gesetzt werden.

    Da das alles sehr schnell geht, kann man damit auch gut Beziehungen (zeitlicher Art) vom SPS-Programm zu anderen Schaltzeiten (z.B. einem über Bus angeschlossenen Gerät) bilden. Hab ich so schonmal gemacht. Die Basisportadresse ist übrigens meist 0x378. Mit SysPortOut(16#378, byte) kannst du also die Variable 'byte' auf den Parallelport schreiben.

    Viel Spaß

    Tobi

     
  • Erik Böhm - 2008-12-01

    Moin

    Mitr der V3 hab ich das noch nicht getestet, aber eine SysLibPorts gibts auch da.

    In deiner Anwendung schreibst du folgendes:

    SysPortOut.ulAddress := 16#378; // Port Adresse des LPT. Ersichtlich im Gerätemanager von Windows

    SysPortOut.byVal := 16#01; // Inhalt des DatenByte das ausgegeben werden soll

    SysPortOut(); // Funktionsaufruf

    SysPortOut.SysPortOut; // Rückgabewert der Funktion

    Es gibt auch noch Funktionen zu Ausgabe von Word und Dword.

    Das wars auch schon. Damit müsste auf deiner LPT Schnittstelle ein Ausgang gesetzt sein.

    Zum Einlesen von Eingängen gibts analog dazu SysPortIn().

    Gruss Erik (mit k)

     
  • Ola-HTW - 2008-12-04

    Hallo Erik,

    vielen Dank für deine Hilfe. Leider bekomme ich es immer noch nicht hin, dass meine Relaisplatine angesprochen wird. Könntest du mir bitte eine kleines fertiges Beispiel schicken, damit ich es mir anschauen kann.

    Damit würdest du mir echt helfen.

    Danke im voraus

    Gruß Ola

     
  • Tobi - 2008-12-04

    Hallo nochmal.

    Vielleicht hast du ja auch eine Doku zur Relaisplatine zur Hand, die du mal hier ablegen könntest. Wie Erik und ich schon sagten, normalerweise benötigst du nur den Aufruf SysPortOut(16#378, byte) und schon wird das Datenregister des Parallelports beschrieben.

    Was hast du denn sonst für Hardware verfügbar? Wenn gerad kein Scope zur Hand ist, könntest du es auch mit einem Multimeter messen, ob zumindest die Flanke am Port kommt. (Hast du dir meinen Link mal angesehen?) So könntest du die Karte erstmal aus der Fehlersuche ausklammern - vielleicht benötigt die ja noch irgendwelche Initialisierungen oder Ähnliches.

    Was auch denkbar ist, wäre dass dein Parallelport am Rechner entweder deaktiviert ist oder aber auf einer anderen Basisadresse als 16#378 läuft. Viele Boards lassen das zu, es ist aber eher unkonventionell. Das könnte man auch mal abprüfen.

    edit: Was mir gerade noch einfällt: Wie rufst du dein Programm auf? Welche Zykluszeit? Ich weiß nicht, wo bei der Schnittstelle die Grenzen liegen, vielleicht auch einfach mal langsamer testen.

    Grüße,

    Tobi

     

Log in to post a comment.