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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
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
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
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
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
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)
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
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