Page 1 of 1

Wechsel von RevPi Core 3+ zu Connect sinnvoll?

Posted: 05 May 2020, 15:16
by RMeissnerCC
Hallo,
für unser derzeitiges Projekt verwenden wir einen RevPi Core 3+ mit zwei DIO und einem AIO Modul. Desweiteren benutzen wir einen USB Modbus-Adapter sowie zwei USB-2-RS485 Adapter. Ebenso wird eine externe Festplatte über USB beschrieben. Leider haben wir seit längerem Probleme mit den USB Verbindungen sowie mit den Zykluszeiten im cycleloop des RevPi.

An Modbus haben wir insgesamt drei Geräte via daisy chain verbunden, über das serielle Interface sind pro Adapter zwei Geräte angeschlossen.

Teilweise verlieren wir die USB Verbindnungen nur kurz oder die Verbindung stellt sich insofern um, als dass sich der USB Port ändert.
Bei großer Last bricht das Ethernet Interface ab und wir müssen den RevPi neu starten.

Da wir viele Geräte und Messpunkte aufnehmen müssen, ist eine einzelner Cycleloop bei uns teilweise über eine Sekunde lang, v.a. Modbus und die seriellen Schnittstellen kosten uns da viel Zeit.

Unsere Hauptprobleme sind also:
* "wackelige" USB Verbindung zu Modbus und seriellem Interface
* zu langsames Messen, bzw. unser Programm muss zu lange auf Modbus und das serielle Interface warten

Daher liebäugeln wir mit dem RevPi Connect für Modbus und ein oder zwei Gates zum auslesen der seriellen Geräte. Dazu stellen sich uns aber ein paar Fragen:

Inwiefern müssen wir die Hardwareverbindungen konfigurieren? Für Modbus sehe ich ein Beispiel im Tutorial, nicht aber für das serial gate.

Würde ein Wechsel von einem Modbus-Adapter hin zum RevPi Connect zu einer Entlastung des USB-Hubs/Ethernet Hubs führen?

Brauchen wir für unsere Anwendung ein besonderes Image oder Extrasoftware? Inwieweit könnte unsere derzeitige Softwareimplementierung beibehaltn werden und was müsste auf jeden Fall geändert werden?

Benötigen wir PiBridges, X2 und X4 Plugs oder sind diese im Bestellumfang enthalten?

Wieviele Module können denn an den RevPi Connect angeschlosse werden?

Wie schnell können Modbus und serielle Interfaces ausgelesen werden?
Grob gesagt haben wir 10 Werte die wir via Modbus pro Sekunde auslesen wollen, sowie ungefähr die gleiche Anzahl an Schreib- und Lesevorgänge über das andere serielle Interface. Wäre das Lesen von seriellem oder Modbus-Interface blockierend?

Viele Grüße

Re: Wechsel von RevPi Core 3+ zu Connect sinnvoll?

Posted: 07 May 2020, 18:18
by dirk
Hi RMeissnerCC, danke für die ausführlichen und hilfreichen Informationen.
Um es kurz zu sagen - ich schlage vor, Du machst einen Test und dann schauen wir nochmals genauer drüber, ob ein Wechsel sinnvoll ist, ok?

Das Thema lautet "DMA Bounce Buffer" erhöhen. Wie geht das?
Das geht ganz einfach so - öffne die Datei "/boot/cmdline.txt" und füge den Parameter hinzu:

Code: Select all

coherent_pool=4M
Ein Kollege hatte festgestellt, dass er nur vier USB-Ethernet-Geräte (zusätzlich zu den beiden integrierten Ethernet-Ports am Connect) verwenden kann, wenn er diese Einstellung erhöht.

Es gibt auch zahlreiche Probleme im GitHub Repository
https://github.com/raspberrypi/linux/issues/2924

Wir werden standardmäßig einen höheren Wert für das nächste Kernel-Update verwenden.
Du solltest daher den Parameter in "/boot/cmdline.txt" nur eingeben, wenn Du tatsächlich Probleme hast, die damit gelöst werden können.

Andernfalls kann es vorkommen, dass wir den Wert standardmäßig festlegen, z.B. auf 8 MByte und der Du schrumpfst mit einem alten Eintrag auf 4 MByte. Das wäre kontraproduktiv.

Re: Wechsel von RevPi Core 3+ zu Connect sinnvoll?

Posted: 07 May 2020, 19:03
by RMeissnerCC
Hy Dirk,
I will switch to english - I apologize for the initial german post, my post should be understandable to a more international community.

Thank you for your advice. I will test that tomorrow.

However, how does that address my questions with respect to the RevPi Connect? I.e.:
1. Would the RevPi Connect take care of all modbus communication such that we do not have to worry about it and we do not need to wait for modbus commands?
2. Would the serial gate be able to communicate to a RS485 serial interface?
3. How would we program such a gate?

Thank you very much for your help and I am looking forward to your next input,

Best, Robert

P.S. Should I translate my initial post to english?

Re: Wechsel von RevPi Core 3+ zu Connect sinnvoll?

Posted: 08 May 2020, 08:00
by lukas
The RS485 interface on the front plate of the Connect is actually an FTDI chip attached to the USB bus. So if you do experience issues with too much traffic on the USB bus, this won't solve the problem. However I doubt that's the cause here. USB2 supports 480 MBit/s, theoretically allowing for four fully-saturated 100 MBit Ethernet interfaces with plenty of bandwidth to spare for RS485.

Are all the devices attached to your Core bus powered? If so, double-check that you're not exceeding the allowed 900 mA (sum of both ports).

Re: Wechsel von RevPi Core 3+ zu Connect sinnvoll?

Posted: 08 May 2020, 09:22
by RMeissnerCC
Dear Lukas, thank you for your helpful reply.
I understood the RS485 interface on the front of the RevPi Connect such, that we can configure the RevPi to take care of modbus signals. So we do not have to do that, to us it is like reading a value from a DIO or AIO module. Is that correct?
If that is the case, it would be an improvement for us, simply because our software does not need to wait for the modbus command to be done communicating with the other device.

I will check the power consumption. We have a powered usb hub and an external SSD connected to the USB hub. Both should not require that much power.

Re: Wechsel von RevPi Core 3+ zu Connect sinnvoll?

Posted: 12 May 2020, 14:07
by dirk
Dear RMeissnerCC, if you configure your modbus master or slave using PiCtory you don't have to handle Modbus commands. You use the process image to read/write data to/from modbus.

Re: Wechsel von RevPi Core 3+ zu Connect sinnvoll?

Posted: 13 May 2020, 08:57
by RMeissnerCC
Good morning Dirk and lukas,
perfect. That is just what we want.
Is there a way of knowing whether writing to a device actually works? The device I am having does not have LEDs or other suitable things so except for directly reading from it through the ModbusMaster I have no way of knowing whether the writing worked.
Best, Robert