Car-PC.info

cPOS - Analogeingänge Multiplexen

minifan78 - Di 25 Aug, 2009 15:25
Titel: Analogeingänge Multiplexen
Hi,

ich bin neu hier und wollte erstmal ein herzliches HALLO vorraus schicken.

Ich hab einen kleinen mini-itx und will den in mein Auto verfrachten. Wenn man sowas schon macht braucht man auch ein gewisses "Mäusekino", wo man alles mögliche an Temperaturen etc. angezeigt bekommt.

Leidiges Problem ist, mein Auto hat nichtmal ein Steuerteil Smile ist also zu alt um alles auf die leichte Tour zu lösen. Nachdem ich mir nun einen Plan zurechtgelegt hab, kriege ich das Problem nur ein paar Analogeingänge an der K8055 benutzen zu können. Da hat sich gleich die Frage aufgetan wieso man die nicht mit einem MUX ehöhen kann.

Also quasie einen 4-Channel oder 8-Channel Mux je Analogkanal einbaut, würde dann bedeuten, dass ich 4/8 Signale auf einen Analogeingang lege.
Die Ausgänge des Mux schalte ich dann mit den Digitalausgängen durch und kann somit ein vielfaches an Sensoren anschließen.

Softwaremässig gibt das aber Cpos nicht her, ich kann nicht den Analogeingang im Skin vernünftig zuordnen (sind ja 4/8 unterschiedliche Werte mit ein und dem selben Namen). Ob man die Abtastzeiten einstellen kann hab ich noch nicht 100%ig erforscht, aber alleine die Anzeige würde schon nicht funktionieren. Oder gibt es da einen Weg den ich nur nicht sehe?


Kann man so eine Multiplexfunktion in Cpos integrieren, oder gibt es die schon und ich bin nur zu blind? Also das man ein 2^x Signal mit den Digitalausgängen kreieren kann und dieses dann zu dem jeweiligen Zeitpunkt am Analogeingang ausliest und in eine neue Variable gibt.

Ist bissl viel Text, aber hoffentlich kommt es halbwegs rüber was ich anstellen möchte.

Danke+Gruß

Minifan78
datenflo - Di 25 Aug, 2009 20:23
Titel:
Willkommen im Forum.
Den Analogeingängen kannst du mehrere Funktionen zuordnen. Wenn man exakte Signale rein gibt von der Theorie sogar 255 pro Eingang

Der analoge Eingang arbeitet mit werten von 0-255 die man auch im Skin oder Eventhandler auswerten kann.
Man sagt bzw schreibt dann zb anai_0 = 145
dann wird die in dem Zusammenhang stehende Aktionausgeführt wenn der Wert 145 da ist. Voraussetzung dafür ist halt das man mit einer Konstanten Spannung arbeitet die sehr stabil sein muß damit die Werte nicht schwanken.
Das einzige Problem bei der Sache ist, das immer nur ein Wert verarbeitet werden kann. Wenn also 2 "funktionen" gleichzeitig anspringen herscht Verwirrung.
Zusätzlich kann man auch noch mit <und> arbeiten um einen gewissen bereich einzugränzen. Mit & kann man mehrere Ereignisse miteinander verknüpfen.

Als kleinen Trost kann ich dir aber mitteilen, das eine mehrfachunterstützung für die velleman geplant ist und dann bis zu 4 Karten von cPOS angesprochen werden können. Wann das allerdings soweit ist kann ich nicht sagen, das wird sich wohl noch ne Weile hin ziehen Sad

Ich hoffe das hilft dir ein wenig weiter.
MR Action - Di 25 Aug, 2009 21:08
Titel:
Mahlzeit....

Also Datenflo hat dich missverstanden - glaub ich... Seine Umschreibung brauchste bei ner LFB oder so... Wink

Was du willst is ja mehere Messwerte auf einen Eingang legen und diese dann "durchschalten"...

Zu deinem Problem, ich fürchte es geht nicht... Man könnte bei Bernd betteln, das die Sensoren, die man selbst anlegen kann auch von einem Eventabhängig eingelesen werden können... Dann wäre es wohl möglich aber schön ist anders...

Entsprechend, bastel dir doch selbst ne Karte und schick deine Signal über nen simuliertes CAN-Interface an deinen CarPC... Sollte die "einfachste" und wohl auch am besten funktionierende sein...

Grüße,
Micha...
datenflo - Di 25 Aug, 2009 22:17
Titel:
ne missverstanden hab ich da nix....das Methode zum enlesen der LFB kann man ja zweckenfremdem ....wenn man das nach seiner Idee macht kann man ja auch nur ein Signal verarbeiten und nich alle gleichzeitig...beim analogen Eingang muss man sich dann nur ne Kleinigkeit basteln das halt ein gewisser Widerstand geschaltet wird.
philipp_c - Di 25 Aug, 2009 22:19
Titel:
Jetzt hast nochmal bestätigt, dass Du es missverstanden hast Wink

Er will nicht 2^n Werte sondern 2^n * 2^m Werte einlesen

Und in cpos kann man nicht sowas machen?

if (dig1) bla = ana1;
if (dig2) blub = ana1;
...
MR Action - Di 25 Aug, 2009 22:55
Titel:
nö... Nicht das ich wüsste....
datenflo - Mi 26 Aug, 2009 00:25
Titel:
OkOk das war echt ein Missverständnis Very Happy
minifan78 - Mi 26 Aug, 2009 09:01
Titel:
Moin,

philip_c hat schon richtig beschrieben, was ich erreichen will.

4 mal K8055 oderso sind da keine Alternative, weil 200Euro für 8 Analogeingänge oder eben 52Euro für 32.

Ist es nicht einfacher so einen Multiplexer zu implementieren als xy zusätzliche Karten?

Ich bin kein Software Guru und versuch mal zu umschreiben was man bräuchte:

Set digo_0=1, digo_1=0, digo_2=0.... für 50ms
25ms Pause dann anai_0_1=anai_0
25ms Pause
Set digo_0=1, digo_1=1,......usw.
das für alle 16 mögliche Kombinationen und diese Schleife dann alle 10s wiederholen (glaube kaum das jemand Kfz Messwerte realtime braucht). Natürlich müsste man da die Zeiten etc. einstellen können, aber die Abfolge der Kombinationen (Adressierung) wäre immer gleich.

Zur Not muss ich mir da wirklich eine eigene Karte löten, oder mal versuchen im Sourcecode rumzutippen. Kann man sich den einfach nach Registrierung auf der Cpos-HP runterladen oder gibts da noch Bedingungen?
datenflo - Mi 26 Aug, 2009 09:11
Titel:
Den Source kannst du dir über das SVN laden. Eine Anleitung zum SVN findest du auch auf cpos-online.de.
Das Menü SVN ist erst nach der Regestrierung sichtbar.

Zum Ursprungsthema.
Ist es dann nicht evt doch einfacher und besser MrActions Vorschlag zu wählen? Per Can sind dann auch alle Werte realtime und das Ganze ist beliebig erweiterbar. Mit Can kann cPOS ja auch umgehen.
minifan78 - Mi 26 Aug, 2009 09:21
Titel:
Jo, MrActions Idee ist dann die letzte Lösung (für mich), aber ich hab ja noch die Minimalhoffnung das sich jemand mit Programmiererfahrung rund um CPOS der Sache annimmt Smile

Mein rumgewurschtel in CPOS wäre auch ehr Suboptimal.
datenflo - Mi 26 Aug, 2009 09:24
Titel:
Das Problem bei der Sache ist, das man sowas nicht mal eben dazu "basteln" kann. Durch den EventHandler werden da wohl tiefere Engriffe nötig sein. Aber evt. hast du ja Glück und Shanel langweilt sich irgendwann in nächster Zeit wieder Very Happy
philipp_c - Mi 26 Aug, 2009 09:26
Titel:
Wäre es denn schwer diese Variablen einzubauen und das in den Event Manager zu kippen? Gerade bei Temperatursensoren gibt es ja oft etliche Kanäle und es macht da wenig Sinn die öfter als 500ms die Werte einzuholen. Diese Notwenigkeit gab es ja schon etliche male hier im Forum. Und im einfachsten Fall reicht ja ein Wechsler Relais um aus einem Eingang zwei zu machen. (Der verbaute Controller macht es ohnehin nicht anders, der hat auch nur einen Wandler)

Diese CAN Geschichte löst jetzt vielleicht den Einzelfall, aber schön ist das ja nicht.

Edit: Anfrage hat sich mit datenflo überschnitten
datenflo - Mi 26 Aug, 2009 09:40
Titel:
Wenn ich jetzt nich arg falsch liege, seh ich da nur das Problem das cPOS sich alle Daten in Echtzeit holt und nicht "zwichenpuffert" sprich man würde auch wenn man in Intervallen abfragt nie alle Daten gleichzeitig angezeigt bekommen. Die vorher eingelesenen Werte würden bei der Abfrage des nächsten Sensors auf 0 abfallen und nicht den letzten Wert "behalten". Man könnte sich so höchstens per openbox oder durch trickserei mit den Menus immer einen Wert anzeigen lassen und so hin und her schalten. Aber ob das so ne feine Sache ist, alles auf einmal im Überblick zu haben fänd ich um einiges besser und auch optich ansprechender.
philipp_c - Mi 26 Aug, 2009 09:44
Titel:
Schöner wäre es ja für jeden Sensor den man da anlegt einen Buffer zu haben und in diesen Buffer schreibt man dann mit einer Bedingung. Wie zB das oben aufgeführte. Damit wären alle Daten permanent verfügbar nur halt dann vielleicht mal einige hundert ms alt.
minifan78 - Mi 26 Aug, 2009 09:54
Titel:
@datenflo

mir würde es völlig reichen wenn jemand das Thema auf die "ToDo-Liste" nimmt. Ich erwarte/hoffe nicht auf eine Lösung in der nächsten Woche oder Monat, 6-12Monate warten wäre für mich kein Problem. Ist immerhin nur ein Hobby.

~EDIT~

Mit dem "Buffer" bin ich jetzt bissl verwirrt. Also eigentlich existiert der doch schon. Wenn ich den Befehl aus der DLL benutze, fülle ich damit eine Variable z.B. anai_0 die einen Speicherplatz des PC zugewiesen bekommt (sonst würde man auch heute nichts sehen, nichtmal ne 0). Diese Variable überschreibe ich aber nun alle 1ms, aber "gebuffert" also vorhanden ist sie doch eigentlich immer, ausser ich gebe den Speicher frei. Also wenn ich eine neue Variable generiere wird diese auch einem Speicherplatz bekommen müssen und solange vorhanden sein bis ich den Platz freigebe oder eben überschreibe. Also wie gesagt ich bin kein Softwareexperte, aber irgendwie so denke ich läuft es eh schon ab.
MR Action - Mi 26 Aug, 2009 10:27
Titel:
Hehe, ich glaub shaneL freut sich tierisch wenn er das sieht.... Aber an und für sich würde eine Bedingung im Sensormenü schon reichen - das durchschalten usw. kann der eventhandler ja - misst man zwar nur eine Messreihe pro Sekunde aber das ja halb so wild...

Davon ab, find ich den Vorschlag nen Can-Bus vorzukaspern immernoch toller, ist schneller und weniger von cpos abhängig...
minifan78 - Mi 26 Aug, 2009 18:29
Titel:
Ok, nu hab ich mal bissl im EvenHandler rumgespielt.

F:timerstart_0
E:timer_0 < 1
S:

F:set_digo_0 = 1
E:timer_0 = 2
S:

F:NeueVariable1 = anai_0
E:timer_0 = 3
S:

F:set_digo_0 = 0
E:timer_0 = 4
S:

F:NeueVariable2 = anai_0
E:timer_0 = 5
S:

F:timerstop_0 & timer_0 = 0
E:timer_0 = 6
S:

würde es so oder so ähnlich gehen?

Das mit der Sekunde ist natürlich bissl blöde.



Gruß

Minifan78
Alle Zeiten sind GMT + 1 Stunde
Powered by phpBB2 Plus and Kostenloses Forum based on phpBB