RASCII-Protokoll für Rückmeldekontakte am CAN Interface

RASCII-Protokoll für Rückmeldekontakte am CAN Interface

Postby MrGShumway » 19.09.2016, 11:07

moin moin,
wie ich neulich im englischen Forenteil berichtet habe, wollte ich nun mein Eigenbau CAN-Interface über Rs232 über das RASCII-Protokoll kommunizieren lassen. Nachdem jetzt der Sketch soweit fertig ist und ein kleiner Testaufbau mit einem RFID-Leser, einem Lastsensor und einem einfachen Rückmeldemodul am CAN aufgebaut ist, wollte ich die Anbindung an Rocrail wagen.
Der RFID-Leser funktioniert super und man kann die 4 byte der 32 bit Zahl mit etwas rumrechnen zu dem Wert zusammensetzen, der auf dem RFID-Tag steht. Lokidentifikation etc. funktioniert auch super.
Bei der Digital-In und Analog-In Meldung aber wird nur erkannt, dass es sich um ein event handelt, nicht aber, dass es ein Rückmeldeereignis ist. Wahrscheinlich hab ich irgendwo in meinem Serial-String was falsch zusammengebaut, aber ich weiß einfach nicht was.
Im moment übertrage ich für die einfachen Rückmeldekontakte:

Code: Select all
$LLEEBBPPSS
L: Länge (hier 08)
E: Event-Nr. (hier 03 - hab auch 01 versucht)
B: Busmodul 1 - 255
P: Port (konnte nur 1 - 16 testen)
S: Status (0/1)


Genauso konnte ich für den Lastsensor (Event: 04 und Status: 1-128 (das letzte Bit ist die Overloadflag, die besagt, dass der Gleisabschnitt abgeschaltet wurde) nicht wirklich mehr herauskitzeln.

Auf der CAN Seite habe ich den Identifier des Datenframes so zusammengesetzt, dass die oberen 3 Bit zur Typenidendifikation (also rückmeldekontakt, rfid, lastsensor, railcom-leser) und die unteren 8 bit zur Adressierung reserviert sind. Das hat die Eigenheit, dass unterschiedliche Datentypen von einer Adresse kommen. Der railcom-leser ist auf 8 ports auch lastsensor und natürlich auch digitaler I/O für einfache Rückmeldekontakte. Das Interface überträgt daraus nur die Adressierungsbits und und ändert sonst nur entsprechend die Stringlänge zu den unterschiedlichen Typen. Ist das in der Steuerung noch sinnvoll umsetzbar, oder sollte man lieber für jede Funktion auch eine eigene Busadresse oder Portadresse belegen?

Liebe Grüße
Julian
MrGShumway
 

Re: RASCII-Protokoll für Rückmeldekontakte am CAN Interface

Postby rjversluis » 19.09.2016, 11:19

Hi Julian,

du kannst doch direkt mein Library verwenden:
https://github.com/rocrail/Arduino/tree ... ies/RASCII
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBUS - CANGCx ] - [ G: CBUS - CANGCx ]
rjversluis
Site Admin
 

Re: RASCII-Protokoll für Rückmeldekontakte am CAN Interface

Postby MrGShumway » 19.09.2016, 20:24

moin Rob,
danke, dass du dich immer so schnell meiner Probleme annimmst. Ich hab es mir tatsächlich leicht gemacht und direkt deine Library von GitHub verwendet. Das hat auch eine Menge Zeit gespart. Das Datenformat für die Digital-Ins habe ich aus dem beigelegten Beispiel abgeschaut. Soweit läuft ja auch alles. Aber meine Rocrailinstallation erkennt in den Daten keine Rückmeldeereignisse. Bei den RFIDs klappt es ja wie verrückt, aber einfache Melderauslösungen bekomme ich nicht übertragen. Es wirkt korrekt erkannt, dass ein Event aufgelaufen ist und was genau drin stand.

Code: Select all
21:11:27 event: 03020401


Unter der Adresse kommt aber beim Rückmelder nichts an.

Vielen Dank und Liebe Grüße
Julian
MrGShumway
 

Re: RASCII-Protokoll für Rückmeldekontakte am CAN Interface

Postby rjversluis » 20.09.2016, 06:39

Hallo Julian,

kannst du ein passende Rocrail trace dazu hier anhängen?
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBUS - CANGCx ] - [ G: CBUS - CANGCx ]
rjversluis
Site Admin
 

Re: RASCII-Protokoll für Rückmeldekontakte am CAN Interface

Postby MrGShumway » 20.09.2016, 10:06

sehr gern.
nach dem Init habe ich zwei RFIDS eingelesen und ein Input auf Adresse 3 Port 4 ausgelöst.

Liebe Grüße
Julian
You do not have the required permissions to view the files attached to this post.
MrGShumway
 

Re: RASCII-Protokoll für Rückmeldekontakte am CAN Interface

Postby rjversluis » 20.09.2016, 10:47

Hi Julian,

du musst für Sensoren EVT_DSEN verwenden und nicht EVT_DIN welche für Ausgang Objekte ist.
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBUS - CANGCx ] - [ G: CBUS - CANGCx ]
rjversluis
Site Admin
 

Re: RASCII-Protokoll für Rückmeldekontakte am CAN Interface

Postby MrGShumway » 20.09.2016, 11:47

Ja, perfekt!
jetzt funktioniert alles. Danke
MrGShumway
 


Return to Arduino (DE)