Stufenschalter

hank12

Level-1
Beiträge
132
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

habe 5 digitale Eingänge. Möchte folgende Funktion relaisieren.

Wenn 0 der 5 Eingänge auf High ist dann è Ausgang 0%
Wenn 1 der 5 Eingänge auf High ist dann è Ausgang 20%
Wenn 2 der 5 Eingänge auf High ist dann è Ausgang 40%
Wenn 3 der 5 Eingänge auf High ist dann è Ausgang 60%
Wenn 4 der 5 Eingänge auf High ist dann è Ausgang 80%
Wenn 5 der 5 Eingänge auf High ist dann è Ausgang 100%

Gibt es hier eine fertige Funktion die so einen Art Stufenschalter realisiert?
 
Bitsum

hallo,

such mal im Forum nach BITSUM. Und wenn du die Anzahl der Bits hast kannst du über Vergleicher oder Sprungleiste die entsprechenden Werte ausgeben. Haste ne Absaugung für 5 Maschinen? ;-)

André
 
Vielen Dank für Eure Antworten hat mir schon mal weitergrholfen. Wollte vorerst mal den BITSUM Baustein verwenden - Den FC99 aus der standard library

Dieser erwartet beim IN ein DWORD
Am Ausgang bekomm ich einen INT


Habe jetzt 5 Digitale Eingänge E0.0--E0.4. Wie verknüpf ich denn die Eingänge, dass ich hieraus ein DWORD bekomme und diesen dem FC99 an den IN geben kann?

Kann ich den AUSGANG (INT) des FC99 direkt mit dem Ausgang der Analogbaugruppe verbinden, sodass dann 0...10V rauskommen? 10V wenn alle 4 an sind, 6V wenn nur 3 an sind usw.??
 
Zuviel Werbung?
-> Hier kostenlos registrieren
..kann ich nehmen,


allerdings würde es mich trotzdem intressieren (brauche es für eine andere Funktion) wie ich den Zustand von 4 Bits z.Bsp. den Status der digitalen Eingänge in eine DWORD umwandeln kann?


Kann mir hier jemand sagen wie?


Danke!
 
Könnte eine Lösung folgendermassen aussehen?
Ich bitte um Berichtigung

// Digitale Zustände in einen DB Laden

U E0.0
T DB2.DBX0.0

U E0.1
T DB2.DBX0.1

U E0.2
T DB2.DBX0.2

U E0.3
T DB2.DBX0.3

// Dach dem FC99 das DWORD aus dem DB übergeben

call FC99
IN: DB2.DBD0
RET: MW20 (in diesem Fall: minimal 0 und maximal 4)


// Danach: wenn alle 4 gesetzt sind dann wäre der Ausgang ja 100%
umsetzen für Analogausgang PAW256


L MW20
L 25
*R
T PAW256 Ergebnis: wenn 3 digitale Eingänge gesetzt wären: 75%
== 7,5V


Ist das überhaupt korrekt oder bin ich jetzt auf einem ganz falschen Dampfer??
 
FC99 und Einlesen eines Binärwertes

Möchte digitale Zustände lesen und an den FC99 BITSUM übergeben.

Könnte eine Lösung folgendermassen aussehen?
Ich bitte um Berichtigung

// Digitale Zustände in einen DB Laden

U E0.0
T DB2.DBX0.0

U E0.1
T DB2.DBX0.1

U E0.2
T DB2.DBX0.2

U E0.3
T DB2.DBX0.3

// Dach dem FC99 das DWORD aus dem DB übergeben

call FC99
IN: DB2.DBD0
RET: MW20 (in diesem Fall: minimal 0 und maximal 4)


Ist das korrekt?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Code:
 L     ED     0                    //Lade Eingangsdoppelwort 0
      L     DW#16#F000000               //Maske Laden zum ausmaskieren der unerwünschten Bits
      UD                                //es bleiben nur die Bits E0.0 bis E0.3 erhalten
      T     DB2.DBD    0                // in Ziel-DB schreiben
um deine 0 bis 100% richtig auf das PAW zu bekommen
musst du den FC106 (Unscale) aus der Bibliothek benutzen.
zu finden ist der FC106 in der Standart Library/TI-S7 Converting Blocks
 
zunächst einmal würde ich sagen du müßtest dieses mit direkten Zuweisungen lösen
u e0.0
=db2.dbx0.0
der Rest ist i.o. denke ich
gruß thomas
 
@hank12

Du mußt dafür keinen extra Thread aufmachen, belaß das doch in dem bereits begonnenen.
Ich führe das mal zusammen!
 
Zurück
Oben