TXT über Ft_Extender mit Ftduino verbunden und RoboPro

Community-Firmware (cfw), Selbstbaucontroller (TX-Pi, ftduino, usw.), usw.
Forumsregeln
Bitte beachte die Forumsregeln!
jomifa
Beiträge: 41
Registriert: 09 Jun 2019, 15:22

Re: TXT über Ft_Extender mit Ftduino verbunden und RoboPro

Beitrag von jomifa » 16 Mär 2020, 11:46

Hallo Stefan,
dein o.g. Beispiel für eine Motorensteuerung läuft prima. Wenn ich die Universaleingänge I1-I8 nutzen möchte, weiss ich nicht, wie ich diese ansprechen kann. Wie müsste das dazu notwendige Unterprogramm aufgebaut sein, dass diese Eingänge abgefragt werden können? Die Zuweisungsfunktionen für die Eingänge sind ja bereits in deinem Beispielprogramm vorhanden.

Gibt es dazu irgendetwas Informationen, wie die Übertragung an den ftDuino aussehen muss?

VG
Joachim

Benutzeravatar
elektrofuzzis
Beiträge: 212
Registriert: 25 Jun 2016, 09:40

Re: TXT über Ft_Extender mit Ftduino verbunden und RoboPro

Beitrag von elektrofuzzis » 17 Mär 2020, 18:01

Hallo Joachim,

das ist recht einfach:
input.PNG
input.PNG (28.07 KiB) 2858 mal betrachtet
Mit input_set_mode setzt Du für einen Eingang (hier I1) den angeschlossenen Schalter oder Sensortyp. Du kannst zwischen SWITCH/Schalter, RESISTANCE/Widerstandsmessung und VOLTAGE/Spannungsmessung wählen. Das entspricht letztendlich der Eingangsart beim RoboPro Universaleingangselement. Im Zweifelsfall die drei Varianten ausprobieren.

Mit input_get liest Du den Eingang aus.

Die Programmierschnittstelle ist 1:1 die gleiche wie Tills C-Interface für den ftDuino. An den einzelnen Funktionen in der Bibliothek ist auch jeweils der Kartenreiter Beschreibung mit sinnvoller Information gefüllt. Ansonsten hilft ggf. auch Tills Manual weiter.

Viel Spaß damit,

Stefan

jomifa
Beiträge: 41
Registriert: 09 Jun 2019, 15:22

Re: TXT über Ft_Extender mit Ftduino verbunden und RoboPro

Beitrag von jomifa » 18 Mär 2020, 10:51

Hallo Stefan,
vielen Dank für deine Info.

Ich hatte die Funktionen "input_set_mode" und "input_get" und andere vorher nicht geladen.


VG
Joachim

jomifa
Beiträge: 41
Registriert: 09 Jun 2019, 15:22

Re: TXT über Ft_Extender mit Ftduino verbunden und RoboPro

Beitrag von jomifa » 20 Mär 2020, 16:09

Hallo Stefan,
ich habe jetzt die Anbindung des ftDuino mit zwei Universaleingängen I1 und I2 an den TXT Controller soweit laufen. Allerdings ergeben sich ab und zu Problemsituationen in dem sich das Programm nicht vollständig beenden lässt, weil eine ftDuino Routine sich nicht beendet hat. Obwohl der Watchdog bei einem Ende des RoboPro Programms beendet werden soll, tut er das nicht zu 100%. Desgleichen läuft ab und zu noch eine der ftDuino input Routinen, die die Beendigung des RoboPro Programms verhindern. Ich verstehe nicht, warum die erste input_set_mode Routine immer noch als ausführend angezeigt wird. Sie wird doch nur beim Programmstart einmal ausgeführt. Der zweite Aufruf wird als nicht ausführend angezeigt. Kann ja eigentlich nicht sein, weil ja der erste Aufruf noch aktiv angezeigt wird. Manchmal stürzt auch das RoboPro Programm ab.

Ich habe die TXT Version 4.6.6 im Einsatz.

Die Routine PosEM ist eine Routine zur Motorensteuerung auf dem TXT Controller und hat keinen Einfluss auf die ftDuino Funktionen und umgekehrt.

Kannst du irgendeinen formalen Fehler in dem Programmablauf (Auszug) erkennen?

VG
Joachim
Dateianhänge
Der Aufruf der Input_get Routine in einem Unterprogramm als eigenständiger Prozess
Der Aufruf der Input_get Routine in einem Unterprogramm als eigenständiger Prozess
ftDuino UP.JPG (79.99 KiB) 2771 mal betrachtet
Robo Pro Hauptprogramm mit den initialen ftDuino Routinen als eigenständige  Prozesse
Robo Pro Hauptprogramm mit den initialen ftDuino Routinen als eigenständige Prozesse
ftDuino HP.JPG (76.95 KiB) 2771 mal betrachtet

Benutzeravatar
elektrofuzzis
Beiträge: 212
Registriert: 25 Jun 2016, 09:40

Re: TXT über Ft_Extender mit Ftduino verbunden und RoboPro

Beitrag von elektrofuzzis » 21 Mär 2020, 07:22

Hallo Joachim,

damit bei RoboPro sich ein Programm beendet, müssen alle "Threads" beendet sein. Für die Endlosschleife im Watchdog zu unterbrechen, gibt es eine Semaphore "ftDuino_Break". Diese wird mit dem Kommando "Break" gesetzt. Das setzt Du vor jedem Thread-Ende:
break.PNG
break.PNG (6.59 KiB) 2731 mal betrachtet
Beim Ende des Watchdog-Threads hat es natürlich keinen Effekt mehr, richtet aber auch keinen Schaden an.

Warum sich Dein Input-Kommando immer noch als "laufend" darstellt, ist mir nicht klar. Evtl. eine Nebenwirkung bei RoboPro mit dem Watchdog. Kannst Du mir mal Deinen Quelltext als PN schicken?

Gruß,

Stefan

Antworten