zuerst einmal, falls ich Beitrag im falschen Thread eingestellt habe, bitte verschieben, da ich Neuling im Forum bin. Danke.
Nun zu meinem Problem:
Ich besitze einen Raspberry 3 mit einem PIXtend V 1.3, welches ich über CoDeSys konfiguriere. Ich würde dabei gern die RS232-Schnittstelle des PIXtend ansprechen. Hardwaremäßig funktioniert die Schnittstelle auch soweit (Rx und Tx Übertragung mit Testprogrammen überprüft anhand USBtoRS232-Converter).
Nun hängt es eher an der Software...., da ich auch mich erst in CoDeSys einarbeite bin ich auch vom Programmieren noch nicht so fit. Ich würde dabei gerne die Schnittstelle ansprechen und an eine weitere Hardware (Motor) die Nachrichten übertragen. Der Motor selbst, besitzt eine eigene Programmiersprache, die entweder mit einer BYTEfolge oder HEX-Zeichen angesprochen werden kann über die RS232-Schnittstelle.
Vom Quellcode her habe ich bisher nur die paar Zeilen:
1) Vom Quellcode her und auch von den Baustein aufrufen, hab ich das soweit richtig verstanden und richtig programmiert um die RS232-Schnittstelle anzusprechen oder sollte ich bei der SysCom.lib noch ein bisschen was beachten?
2) In welchem format wird der STRING über die Schnittstelle geschickt? Wird er als ASCII-Code erkannt oder in einem anderen Format?
3) Gibt es eine Möglichkeit den STRING in z.B. in einen CHAR, danach in HEX und von da aus in BYTE umzuwandeln? oder eine direkte Möglichkeit den String Buchstabenweise in BYTE zu zerlegen (z.B. mit einer for-Schleife)? Falls ja, habt ihr für mich einen Denkanstoß?
Vielen Dank schonmal für eure Mitarbeit und Denkanstöße. Zweck ist eine Projektarbeit fürs Studium.
Gruß
Chriis
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Danke schonmal.
Die Schnittstelle läuft jetzt weitestgehend...
Nun hätte ich aber noch ein weiteres Problem:
Soweit ich das auf meinem Oszi sehe, sendet die RS232-Schnittstelle über den Zeichenstring nur ASCII-Werte (oder lieg ich da falsch?).
Gibt es nun eine Möglichkeit anstatt den ASCII-Zeichen direkt HEX oder BYTE über die Schnittstelle zu verschicken z.B. durch ASCII-to-HEX konvertierung oder ähnliches?. Den Motor selbst kann ich nämlich nicht direkt über die ASCII-Zeichen ansprechen sondern nur über eine HEX- bzw. BYTE-folge. Über ein Beispielprogramm oder zumindest Ansätze würde ich mich freuen.
Gruß
Chriis
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo,
zuerst einmal, falls ich Beitrag im falschen Thread eingestellt habe, bitte verschieben, da ich Neuling im Forum bin. Danke.
Nun zu meinem Problem:
Ich besitze einen Raspberry 3 mit einem PIXtend V 1.3, welches ich über CoDeSys konfiguriere. Ich würde dabei gern die RS232-Schnittstelle des PIXtend ansprechen. Hardwaremäßig funktioniert die Schnittstelle auch soweit (Rx und Tx Übertragung mit Testprogrammen überprüft anhand USBtoRS232-Converter).
Nun hängt es eher an der Software...., da ich auch mich erst in CoDeSys einarbeite bin ich auch vom Programmieren noch nicht so fit. Ich würde dabei gerne die Schnittstelle ansprechen und an eine weitere Hardware (Motor) die Nachrichten übertragen. Der Motor selbst, besitzt eine eigene Programmiersprache, die entweder mit einer BYTEfolge oder HEX-Zeichen angesprochen werden kann über die RS232-Schnittstelle.
Vom Quellcode her habe ich bisher nur die paar Zeilen:
Jetzt zu meinen Fragen:
1) Vom Quellcode her und auch von den Baustein aufrufen, hab ich das soweit richtig verstanden und richtig programmiert um die RS232-Schnittstelle anzusprechen oder sollte ich bei der SysCom.lib noch ein bisschen was beachten?
2) In welchem format wird der STRING über die Schnittstelle geschickt? Wird er als ASCII-Code erkannt oder in einem anderen Format?
3) Gibt es eine Möglichkeit den STRING in z.B. in einen CHAR, danach in HEX und von da aus in BYTE umzuwandeln? oder eine direkte Möglichkeit den String Buchstabenweise in BYTE zu zerlegen (z.B. mit einer for-Schleife)? Falls ja, habt ihr für mich einen Denkanstoß?
Vielen Dank schonmal für eure Mitarbeit und Denkanstöße. Zweck ist eine Projektarbeit fürs Studium.
Gruß
Chriis
schau mal hier rein...
http://forum.codesys.com/viewtopic.php?f=21&t=5699
Gruß, Wollvieh.
Danke schonmal.
Die Schnittstelle läuft jetzt weitestgehend...
Nun hätte ich aber noch ein weiteres Problem:
Soweit ich das auf meinem Oszi sehe, sendet die RS232-Schnittstelle über den Zeichenstring nur ASCII-Werte (oder lieg ich da falsch?).
Gibt es nun eine Möglichkeit anstatt den ASCII-Zeichen direkt HEX oder BYTE über die Schnittstelle zu verschicken z.B. durch ASCII-to-HEX konvertierung oder ähnliches?. Den Motor selbst kann ich nämlich nicht direkt über die ASCII-Zeichen ansprechen sondern nur über eine HEX- bzw. BYTE-folge. Über ein Beispielprogramm oder zumindest Ansätze würde ich mich freuen.
Gruß
Chriis
Nochmals kurz zum Verständnis:
Ich müsste eine etwas größere BYTE-Folge bzw. HEX-Zahl als Befehl weiterschicken.
wir liegen dabei in dieser Größe:
01 01 00 00 00 00 00 32 34 (hex)
wie kann ich diese HEX-zahl am besten über die RS232-Schnittstelle schicken?
Gruß
Chriis