Linux schnell genug für RS485 Buszyclus?

Für Fragen von Einsteigern und Programmieranfängern...

Linux schnell genug für RS485 Buszyclus?

Beitragvon NoCee » 23. Mär 2018, 10:20 Linux schnell genug für RS485 Buszyclus?

Hallo zusammen,

ich möchte im Betrieb eine Baugruppe an einer Maschine simulieren weils
die nicht mehr gibt.
Dabei handelt es sich um einen Barcodescanner in einer Hochregallagerfördertechnik für
Paletten. Die Baugruppe macht eine Busverbindung vom Barcodescanner zu einem Multiplexer
für mehrere Barcodescanner in der Anlage. Dieser Multiplexer pollt alle vorhandenen Busadressen
auf dem RS485 Bus der Reihe nach durch. Das Protokoll ist offengelegt, die Software krieg ich sicherlich hin.
Als Ersatzhardware würde ich gerne ein Arm/Linux System einsetzen so was wie Beaglebone Black da der
die seriellen Schnittstellen direkt auf der CPU hat und nicht über USB oder i2C angeschlossen hat und mit
Lazarus mit oder ohne Gui programmiert werden kann.

Vielleicht hat ja jemand Erfahrung mit solchen Bussystemen
Kann man mit so einem Mini-Linuxrechner ein Bussystem betreiben oder ist ein Rechner mit Linux
dafür nicht echtzeitfähig genug?

Wenn der Master (Multiplexer) eine Adresse abfägt, will dieser innerhalb der Bustimeoutzeit eine Antwort,
sonst wird die Adresse als defekt/nicht vorhanden angenommen.
Wir haben da mehrere Busvarianten im Haus. Unter anderem 9600bd und 38400bd aber auch 187k.
Die Linuxkiste macht fast nichts anderes als dieses Busprotokoll abzuarbeiten.
Oder wäre da ein Unterprozessor wie etwa ein Arduino oder so notwendig bzw. besser geeignet?
Als OS soll da schon ein Standard-Linux laufen. Ein Echtzeitfähiges Linux würde meine Kompetenzen leicht
überfordern.

Danke schon mal für Antworten
Gruß NoCee
NoCee
 
Beiträge: 103
Registriert: 3. Mär 2011, 21:34
Wohnort: Ulm
OS, Lazarus, FPC: Win7 (L 1.0.8 FPC 2.6.2) | 
CPU-Target: 64Bit
Nach oben

Beitragvon m.fuchs » 23. Mär 2018, 10:28 Re: Linux schnell genug für RS485 Buszyclus?

NoCee hat geschrieben:Wenn der Master (Multiplexer) eine Adresse abfägt, will dieser innerhalb der Bustimeoutzeit eine Antwort,
sonst wird die Adresse als defekt/nicht vorhanden angenommen.

Kommt darauf an, ob du damit leben kannst dass die Adresse als defekt/n.v. angenommen wird. Wenn das zwischendurch mal kein Problem ist (weil zum Beispiel beim nächsten Durchlauf alles gut ist), dann kannst du mit einem Standard-Linux mal ausprobieren.
Wenn das nicht geht wirst du um ein echtes Realtime-Setup (in welcher Form auch immer) nicht herumkommen.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
 
Beiträge: 1963
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.8.4, FPC 3.0.4) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon mschnell » 23. Mär 2018, 13:03 Re: Linux schnell genug für RS485 Buszyclus?

Ist das kein Asynchron - Protokoll ?

Ein Asynchron-Protokoll lässt sich vermutlich mit der UART - Hardware des BeagleBone auch unter Linux realisieren, sofern - wie bei jedem anständigen Protokoll, bei Bustimeout erstmal ein oder mehrere Retries gemacht werden, bevor der Knoten als nicht vorhanden deklariert wird.

Wenn das ein spezielles Bit-Protokoll oder der Timeout wirrklich "hart" ist, ist das vermutlich aus Timing-gründen unter Linux schwierig bis unmöglich. Aazu verfügt der BeagleBone-Chip (von TI) aber über Coprozessoren, die unabhängig von Linux arbeiten mit dem Hauptprozessor (Linux-System) kommunizieren können. Arduino brauchst Du also nicht. Die Hardware bringt der BeagleBone schon mit.

-Michael
mschnell
 
Beiträge: 3221
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

• Themenende •

Zurück zu Einsteigerfragen



Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 2 Gäste

porpoises-institution
accuracy-worried