Seite 1 von 1

Bitte ein Bit

Verfasst: 29 Nov 2021, 21:49
von Pinot
Ich möchte beim Stoppen einer Anwendung ein paar Bits abspeichern. So, dass ich sie beim Wiedereinschalten auslesen, und die SW entsprechend initialisieren kann. Kurz: ein Automat wird in einem Status X abgeschaltet werden und soll eben in diesem Status beim Wiederstart weitermachen. Nichtvolatiler Speicher in Form von Flash ist ja vorhanden, sogar ein Kartenleser. Wie schreibt man denn da mit RoboPro ein paar Bits rein und wie holt man sie wieder heraus? Irgendwie finde ich nichts Erleuchtendes.

Re: Bitte ein Bit

Verfasst: 30 Nov 2021, 01:21
von DirkW
Moin Pinot,

Herzlich Willkommen im Forum.

In RoboPRO geht das mit dem Liste-Element, siehe auch Hilfe-Funktion von ROBOPro.(Bild unten)

In der Leiste von ROBOPro oben im Reiter:
- Hilfe - Hilfe aufrufen dann Register "Index" aufrufen und mit dem Wort "Liste" in der Suche nach dem Text 8.4.5 suchen.

Mein Tipp:
Am besten einmal ein Beispiel-Programm aus der Bibliothek verwenden und ausprobieren. ;)

Liste.JPG
Liste.JPG (236.69 KiB) 3881 mal betrachtet

Gruß
Dirk

Re: Bitte ein Bit

Verfasst: 30 Nov 2021, 08:11
von Bjoern
Hallo Dirk,

Pinot wollte aber eine persistente Speicherung. So hatte ich das verstanden.
Und das macht weder die Liste noch irgend ein anderer Befehl in RoboPro wenn ich mich nicht täusche.

Björn

Re: Bitte ein Bit

Verfasst: 30 Nov 2021, 10:42
von steffalk
Tach auch!

Wenn es nur wenige Bit sind und mit RoboPro wirklich nicht machbar sein sollte (z.B. durchs Speichern der Liste im Online-Betrieb), macht vielleicht auch eine mechanische Lösung Spaß. Sowas wie https://ftcommunity.de/bilderpool/model ... 0-bit-ram/ nur halt eleganter, oder auch auf einem anderen Weg. Kippschalter umschalten oder so.

Gruß,
Stefan

Re: Bitte ein Bit

Verfasst: 30 Nov 2021, 11:24
von Pinot
Hallo Dirk,

das Listenelement kenne ich. Und natürlich auch Variablen, die mir als Byte oder Word völlig ausreichen würden. Nur wo persistiere ich die (NON-volatil), wenn der Strom weg ist?

Kann man mit RoboPro auf den Speicherkartenslot zugreifen um dort ein File wegzuschreiben? Das wäre mal ein (wenn auch umständlicher) Anfang.

Re: Bitte ein Bit

Verfasst: 30 Nov 2021, 12:39
von DirkW
Hallo Pinot,

mit ROBOPro ist das Ansprechen der SD-Karte leider nicht möglich.
Vielleicht hilft dir dieser Thread weiter.

viewtopic.php?f=8&t=6577&hilit=sd+karte

Gruß
Dirk

Re: Bitte ein Bit

Verfasst: 30 Nov 2021, 14:33
von vleeuwen
An example of reading and writing list data from/into a file wih a RoboPro extension has been describe here
https://github.com/fischertechnik/txt_d ... LI_TeachIn
This writing/reading can also be done with a mounted sd-card.

Re: Bitte ein Bit

Verfasst: 30 Nov 2021, 17:33
von Torsten
Hallo Pinot,

wenn Du mit ROBOPro und der SLI-Erweiterung nicht zum Ziel kommst, gibt es als Alternative noch Python, das auf dem TXT auch zur Verfügung steht (ab der Firmwareversion 4.4). Damit kannst Du auf jeden Fall auf das Linux-Dateisystem zugreifen.

Viele Grüße
Torsten

Re: Bitte ein Bit

Verfasst: 30 Nov 2021, 17:46
von vleeuwen
SLI programming is with normal standard C++, so you have the standard Linux IO-system available. No difference with Python. But a very strong program development system with strong typing to help you and avoid mistakes. Mounting a sd-card is part of the OS and not of the program language.

Re: Bitte ein Bit

Verfasst: 01 Dez 2021, 10:17
von jodeka
Wenn Du nur ein paar Bits abspeichern willst,
so empfähle ich Dir ein externes EPROM-Modul.
Dieses wird über die I2C Schnittstelle angesprochen und
kostet ein paar Euros (je nach Größe)

Suche im Web nach AT24C01 , AT24C02 , usw..

Die letzten zwei Zahlen geben Dir die Größe in K-Bits.
(z.B. 01 = 1024 Bits = 128 Bytes)

Viel Vergnügen

jode

Re: Bitte ein Bit

Verfasst: 01 Dez 2021, 14:37
von fishfriend
Hallo...
OK, I2C...
Noch ein anderer Ansatz:

Ich hab hier noch FRAM liegen. Ich hatte damit mal versucht die Kommunikation PC-Inteface mitzuschreiben, es dann aber anders gemacht.
Zumindest kann man da halt was speichern und lesen. Ist zwar ein bisschen wie mit Kanonen auf Spatzen.. sollte aber auch gehen.
So etwas wie hier:
https://www.adafruit.com/product/1895
Mit freundlichen Grüßen
fishfriend
Holger hOwey

Re: Bitte ein Bit

Verfasst: 01 Dez 2021, 17:15
von fotoopa
fishfriend hat geschrieben:
01 Dez 2021, 14:37
Ich hab hier noch FRAM liegen. Ich hatte damit mal versucht die Kommunikation PC-Inteface mitzuschreiben, es dann aber anders gemacht.
Zumindest kann man da halt was speichern und lesen. Ist zwar ein bisschen wie mit Kanonen auf Spatzen.. sollte aber auch gehen.
So etwas wie hier:
https://www.adafruit.com/product/1895
What about the I2C adddress of the MB85RC I2C FRAM (0x50 - 0x57) ? Won't this cause a conflickt with the TXT? I also have 2 of these modules but never used them for that reason.

Frans.

Re: Bitte ein Bit

Verfasst: 01 Dez 2021, 17:58
von fishfriend
Hallo...
Hmmm. No idear.
I have never use it with a TXT. Only with a Arduino.
Mit freundlichen Grüßen
fishfriend
Holger Howey

Re: Bitte ein Bit

Verfasst: 01 Dez 2021, 20:18
von Dirk Fox
Hallo zusammen,

das Schreiben von ein paar Bit ins EEPROM des TXT ist möglich - habe ich auch schon gemacht. Es liegt im I2C-Adressbereich des FRAM - Holgers Idee klappt also, sogar ohne FRAM :-). Ein entsprechender I2C-Treiber findet sich sogar in der I2C-Bibliothek des TXT.

In den "TX(T) I2C Application Notes" gibt es dazu entsprechende Hinweise:

"I2C: Using the address range 0x50..0x57 of the TX integral EEPROM

The TX Controller has an integrated Microchip 24AA08 I2C EEPROM. This device
occupies I2C addresses 0x50 to 0x57 (7-bit = 0xA0 to 0xAF 8-bit). The TX
Controller firmware uses the first sector at device address 0x50 and 0x54. These
addresses are not accessible via ROBOPro. The other sectors are free and can be
used by ROBOPro programs. A ROBOPro driver for the EEPROM is available in the
library folder. A total of 768 bytes is accessible by this driver."

Beste Grüße,
Dirk

P.S.: Ich würde nicht zu exzessiv schreiben, da ein EEPROM nur endlich viele Schreib-Lese-Zyklen verkraftet. Einmal pro Programmaufruf ist kein Thema, 5.000 x pro Programmaufruf kann dann schon irgendwann eng werden.

Re: Bitte ein Bit

Verfasst: 02 Dez 2021, 10:18
von fotoopa
Thanks Dirk for the useful information. I'm definitely going to give that a try.

FRans.

Re: Bitte ein Bit

Verfasst: 02 Dez 2021, 21:46
von Pinot
@Dirk: Super, vielen Dank für den Tipp! Jaja, ein EEPROM sollte wirklich nicht als Arbeitsspeicher missbraucht werden. Es ist eben der Klassiker für Konfigurationsdaten.