bcd schalter an di

prinz1978

Level-2
Beiträge
149
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo leute
weis einer wie ich einen bcd schalter 4 stellig an ein 16x digital input anschliese? plan whäre ein hit . also ich habe an einem schalter (geht von 0 bis 9) ein + anschluss und 4 ausgänge und das mal 4 also 4 stellen (von 0000 bis 9999) danke im vorraus.
mfg
 
Hallo,
so müßte es gehen:

C o----------o----------o-----------o
8 o 1.3 ........o 1.7 ........o 0.3 .........o 0.7
4 o 1.2 ........o 1.6 ........o 0.2 .........o 0.6
2 o 1.1 ........o 1.5 ........o 0.1 .........o 0.5
1 o 1.0 ........o 1.4 ........o 0.0 .........o 0.4
o= Lötpunkt.
BCD Schalter von hinten gesehen.

MfG Günter.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo
was mir gerade aufgefallen ist das jeder einzelner schalter die gleiche stellung schalten was ein problem ist denke ich mal.die müssten ja untereinander irgendwie zusammenhängen oder lige ich falsch? ich meine bei der zahl 9999 würde dan der gleiche bitmuster im eb 0 und im eb 1 sein was ja falsch whäre.
mfg
 
Zuletzt bearbeitet:
danke da ist dann noch etwas was mir nicht eingeht :confused: was ist dann der unterschied wenn ich im programm schreibe z.b L 9999 T mw 4 oder ich tippe bcd schalter 9999 ( eb 0 und eb 1 haben jetzt ein bitmuster) T mw 5
sind jetz mw 4 und mw 5 gleich oder nicht gleich :confused: :confused: :confused:

mfg
 
Hier noch einmal eine etwas ausführlichere Darstellung des Anschlusses des BCD-Schalters an die SPS:

Code:
[B]BCD-Schalter von vorne:[/B]
 
         10^3             10^3             10^1             10^0
 
                  EB 0                              EB 1
 
8    BIT 15 - E0.7    BIT 11 - E0.3    BIT 07 - E1.7    BIT 03 - E1.3
4    BIT 14 - E0.6    BIT 10 - E0.2    BIT 06 - E1.6    BIT 02 - E1.2
2    BIT 13 - E0.5    BIT 09 - E0.1    BIT 05 - E1.5    BIT 01 - E1.1
1    BIT 12 - E0.4    BIT 08 - E0.0    BIT 04 - E1.4    BIT 00 - E1.0

Code:
[B]BCD-Schalter von hinten:[/B]
 
         10^0             10^1             10^2             10^3
 
                  EB 1                              EB 0
 
8    BIT 03 - E1.3    BIT 07 - E1.7    BIT 11 - E0.3    BIT 15 - E0.7
4    BIT 02 - E1.2    BIT 06 - E1.6    BIT 10 - E0.2    BIT 14 - E0.6
2    BIT 01 - E1.1    BIT 05 - E1.5    BIT 09 - E0.1    BIT 13 - E0.5
1    BIT 00 - E1.0    BIT 04 - E1.4    BIT 08 - E0.0    BIT 12 - E0.4

Gruß Kai
 
Ausweten BCD-Codierer

Hallo,
Auswerten mußt Du Deine Eingänge natürlich auch noch. Nehmen wir mal an die Einerstelle Deines BCD-Codierers liegt an E 1.0 bis E 1.3.

Z.B. so:

UN E1.0 Wertigkeit 1
UN E1.1 Wertigkeit 2
UN E1.2 Wertigkeit 4
UN E1.3 Wertigkeit 8
= M3.0 Merkern Einerstelle ist 0

usw.

U E1.0
UN E1.1
UN E1.2
U E1.3
= M4.1 Merker Einerstelle ist 9

Und das auch für die Zehner- Hunderter- und Tausenderstelle
 
Zuletzt bearbeitet:
Für die Umwandlung kannst du schreiben:

Code:
      L     EW     0                    // BCD-Zahl ohne Vorzeichen
      T     MD    10                    // BCD-Zahl mit Vorzeichen
      BTD                               // BCD-Zahl mit Vorzeichen => DINT-Zahl
      T     MW    20                    // INT-Zahl

Gruß Kai
 
also irgendwie bekomme ich die zwei werte einfach nicht gleich obwohl ich umgewandelt habe irgend etwas mache ich falsch hier ein screenshot.
mfg
 

Anhänge

  • serdar.JPG
    serdar.JPG
    196,3 KB · Aufrufe: 29
Anhand deiner Frage mit MW4 und MW5 nehme ich mal einfach an du arbeitest mit Step5.

Ich glaube es gibt einen Standard-FB, FB240 ??? Schau mal bei den fest eingebauten 200-er FB nach.

Ah ich seh gerade doch S7, dann nimm jedenfalls nicht MW4 und MW5 das wird nix bei S7.
Die Befehle heißen BTD (DINT) und BTI (INT).
 
Zuletzt bearbeitet:
nein ich arbeite mit s7 der code von kai hat funktioniert aber im ernst ich würde da ni im leben draufgekommen kannst du das ein wenig genauer erklären ?????? kai wie kommt man auf sowas drauf ?????
 

Anhänge

  • serdar.JPG
    serdar.JPG
    201,7 KB · Aufrufe: 15
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
MW 4 besteht aus MB 4 und MB 5
MW 5 besteht aus MB 5 und MB 6

Du überschreibst also mit dem einen MW, einen Teil des anderen.
Deslhalb nutzt man im Allgemeinen möglichst nie ungerade MW.

Das Gleiche kann passieren bei:

MD 4 und MD 6 auch hier aufpassen
MD 4 besteht aus Byte 4,5,6,7
MD 6 besteht aus Byte 6,7,8,9
 
danke nochmal für die vielen antworten das problem ist jetzt beseitigt kann mann diese eingaben auch an eine display ausgeben welches lcd display könnt ihr mir empfehlen?
mfg
 
der code von kai hat funktioniert aber im ernst ich würde da ni im leben draufgekommen kannst du das ein wenig genauer erklären ?????? kai wie kommt man auf sowas drauf ?????

Eine BCD-Zahl (16-Bit) besteht aus 4 Tetraden mit jeweils 4 Bit. Die Tetrade 1 bildet dabei das Vorzeichen und die Tetraden 2-3 die Ziffern der BCD-Zahl (16-Bit).

Das Problem ist nun aber, dass wir hier eine BCD-Zahl (16-Bit) ohne Vorzeichen und dafür mit 4 Ziffern haben.

Bei der Umwandlung der BCD-Zahl (16-Bit) mit dem Befehl BTI in eine INT-Zahl (16-Bit), wird die Tetrade 1 der BCD-Zahl (16-Bit) als Vorzeichen interpretiert. Und da wir hier kein Vorzeichen haben, sondern 4 Ziffern, bekommen wir bei der Umwandlung mit dem Befehl BTI ein falsches Ergebnis.

Wir müssen also die BCD-Zahl (16-Bit) zuerst in eine BCD-Zahl (32-Bit) umwandeln. Wir haben dann eine BCD-Zahl (32-Bit) mit einem Vorzeichen und 7 Ziffern. Die ersten 3 Ziffern werden dabei mit einer 0 aufgefüllt. Die letzten 4 Ziffern sind unsere Ziffern aus der BCD-Zahl (16-Bit).

Die BCD-Zahl (32-Bit) kann dann mit dem Befehl BTD in eine DINT-Zahl (32-Bit) umgewandelt werden.

Und aus der DINT-Zahl (32-Bit) können wir dann die INT-Zahl (16-Bit) bilden.

Gruß Kai
 
Ich denke mal, da kommt vieles zusammen. Zunächst einmal natürlich die Erfahrung, dann aber eben auch Bücher oder das Internet. Man muss aber gar nicht alles wissen, man muss nur wissen, wo man etwas finden kann.

Gruß Kai
 
Hier noch einmal ein paar Erläuterungen zu meinem Programmcode:

Code:
      L     EW     0                    // BCD-Zahl ohne Vorzeichen
      T     MD    10                    // BCD-Zahl mit Vorzeichen
      BTD                               // BCD-Zahl mit Vorzeichen => DINT-Zahl
      T     MW    20                    // INT-Zahl

Code:
[B][COLOR=red]L EW0[/COLOR][/B]
 
[B][COLOR=black]BCD       2        4        6        8[/COLOR][/B]
 
[COLOR=black]BIT    15 - 12  11 - 08  07 - 04  03 - 00[/COLOR]
 
[B][COLOR=black]EW0    0 0 1 0  0 1 0 0  0 1 1 0  1 0 0 0[/COLOR][/B]
 
[COLOR=red][B]T MD10[/B][/COLOR]
 
[B][COLOR=black]BCD[/COLOR][/B][COLOR=black]       +        0        0        0[B]        2        4        6        8[/B][/COLOR]
 
[COLOR=black]BIT    31 - 28  27 - 24  23 - 20  19 - 16  15 - 12  11 - 08  07 - 04  03 - 00[/COLOR]
 
[B][COLOR=black]MD10[/COLOR][/B][COLOR=black]   0 0 0 0  0 0 0 0  0 0 0 0  0 0 0 0[B]  0 0 1 0  0 1 0 0  0 1 1 0  1 0 0 0[/B][/COLOR]
 
[COLOR=red][B]BTD[/B][/COLOR]
 
[B][COLOR=black]DEZ    + 2 4 6 8[/COLOR][/B]
 
[COLOR=black]BIT    31 - 28  27 - 24  23 - 20  19 - 16  15 - 12  11 - 08  07 - 04  03 - 00[/COLOR]
 
[COLOR=black][B]AKKU1[/B]  0 0 0 0  0 0 0 0  0 0 0 0  0 0 0 0[B]  0 0 0 0  1 0 0 1  1 0 1 0  0 1 0 0[/B][/COLOR]
 
[COLOR=red][B]T MW20[/B][/COLOR]
 
[B][COLOR=black]DEZ    + 2 4 6 8[/COLOR][/B]
 
[COLOR=black]BIT    15 - 12  11 - 08  07 - 04  03 - 00[/COLOR]
 
[B]MW20[/B][COLOR=black]   [B]0 0 0 0  1 0 0 1  1 0 1 0  0 1 0 0[/B][/COLOR]

Gruß Kai
 
Zurück
Oben