Kodierschschaltung mit Step 7 Awl

Zuviel Werbung?
-> Hier kostenlos registrieren
3 byte ist aber auch eine eher ungewöhnliche zahl an ausgängen ... eine 16er und ne 8er karte? oder eine 32er wo das letzte byte abgeschossen wurde? ... ich weiß, tut eigentlich nichts zur sache, aber es denkt sich leichter, wenn man ein word für zeilen und ein word für spalten hat ... um mal bei der matrix zu bleiben...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
1x16 1x8


aber naja i glaub mal das des prog eigentlich stimmt was i vom ralle üb ernommen und ein bisschen modified hab


code:


L EB 0 // ausmaskieren der Eingangsbits 1-4
L 2#1111
UW
T MB 1 // schreiben der Bits 1-4 auf MB1

L EB 0 // ausmaskieren der Eingangsbits 5-8
L 2#11110000
UW
SRW 4
T MB 2 // schreiben der Bits 5-8 auf MB2




L P#0.0 // Laden der Einerbit Startadresse
L MB 1 // Laden des Einerbitwertes
+D
LAR1
U "S1"
FP M 3.0
S A [AR1,P#0.0] // Einerausgangsbit setzen, läuft von 0.0 an vörwärts
U "S2"
R A [AR1,P#0.0] // Einerausgangsbit rücksetzen

L P#2.7 // Laden der Einerbit Startadresse
L MB 2 // Laden des Zehnerbitwertes
-D
LAR2
U "S1"
FP M 3.1
S A [AR2,P#0.0] // Zehnerausgangsbit setzen, läuft von 2.7 an rückwärts
U "S2"
R A [AR2,P#0.0] // Zehnerausgangsbit rücksetzen
 
also ausgänge hätte ich 0.0 bis 2.7 zur verfügung


da ich aber immer 2 ausgänge schalten muss um 1 lampe zum leuchten zu bringen muss ich 0.0-1.1 und 2.7-1.6 auswählen
da es sonst zu überschneidungen kommt sprich es wird nur ein ausgang angesteuert anstatt 2

naja tricky

Ja, das ist ja klar, aber wie genau soll jetzt die Matrixaufteilung sein?
 
1x16 1x8


aber naja i glaub mal das des prog eigentlich stimmt was i vom ralle üb ernommen und ein bisschen modified hab


code:


L EB 0 // ausmaskieren der Eingangsbits 1-4
L 2#1111
UW
T MB 1 // schreiben der Bits 1-4 auf MB1

L EB 0 // ausmaskieren der Eingangsbits 5-8
L 2#11110000
UW
SRW 4
T MB 2 // schreiben der Bits 5-8 auf MB2




L P#0.0 // Laden der Einerbit Startadresse
L MB 1 // Laden des Einerbitwertes
+D
LAR1
U "S1"
FP M 3.0
S A [AR1,P#0.0] // Einerausgangsbit setzen, läuft von 0.0 an vörwärts
U "S2"
R A [AR1,P#0.0] // Einerausgangsbit rücksetzen

L P#2.7 // Laden der Einerbit Startadresse
L MB 2 // Laden des Zehnerbitwertes
-D
LAR2
U "S1"
FP M 3.1
S A [AR2,P#0.0] // Zehnerausgangsbit setzen, läuft von 2.7 an rückwärts
U "S2"
R A [AR2,P#0.0] // Zehnerausgangsbit rücksetzen

Das mit dem R kommt mir komisch vor.
Wie wird den "S2" geschalten?
Vergleich mal hiermit: http://www.sps-forum.de/showpost.php?p=123260&postcount=10
 
Zuviel Werbung?
-> Hier kostenlos registrieren
s1 einschalter e1.0
s2 auschalter e1.1

habs jetzt so gelöst>>> code:


L EB 0 //Zehnerstelle
L 10
/I
T MB 2
L EB 0 //Einerstelle
L 10
MOD
T MB 1






L P#0.0 // Laden der Einerbit Startadresse
L MB 1 // Laden des Einerbitwertes
+D
LAR1
U "S1"
FP M 3.0
S A [AR1,P#0.0] // Einerausgangsbit setzen, läuft von 0.0 an vörwärts
U "S2"
R A [AR1,P#0.0] // Einerausgangsbit rücksetzen

L P#2.7 // Laden der Einerbit Startadresse
L MB 2 // Laden des Zehnerbitwertes
-D
LAR2
U "S1"
FP M 3.1
S A [AR2,P#0.0] // Zehnerausgangsbit setzen, läuft von 2.7 an rückwärts
U "S2"
R A [AR2,P#0.0] // Zehnerausgangsbit rücksetzen
 
s1 einschalter e1.0
s2 auschalter e1.1

Ss wie du das machst, heißt das aber, daß niemand den Codierschalter verstellen darf, wenn er die Lampen nicht vorher ausgeschaltet hat, sonst bekommt er die nicht mehr aus, bzw. muß erst die Lampennummer wieder anwählen. Ist das so gewollt?

Wie ist das nun mit der Matrix?
 
matrix muss ich so wählen wegen überkreuzungen
(könnte dir ja die excell tabelle schicken??)


ja mitn ausschalten dürftest du wohl recht haben das muss ich auch noch lösen irgendwie


so das wenn 2 ausgän ge gesetzt sind keine anderen mehr setzten kann und mit dem ausschalter das ganze aw rücksetze


oder wie??



lg stefan
 
Zuviel Werbung?
-> Hier kostenlos registrieren
matrix muss ich so wählen wegen überkreuzungen
(könnte dir ja die excell tabelle schicken??)


ja mitn ausschalten dürftest du wohl recht haben das muss ich auch noch lösen irgendwie


so das wenn 2 ausgän ge gesetzt sind keine anderen mehr setzten kann und mit dem ausschalter das ganze aw rücksetze


oder wie??



lg stefan

Hast du mal meinen Code ausprobiert (Den mit den Pointern, nicht den mir Schiebeoperation!). Da werden permanent die per BCD-Schalter angewählten Datenleitungen ausgegeben.
 
problem ist nur das ja ich das mit 2 schalter mache ein / ausschalter (machen muss) kodierschalter liefetr mir nur wert
 
problem ist nur das ja ich das mit 2 schalter mache ein / ausschalter (machen muss) kodierschalter liefetr mir nur wert

Dann bist du ja mit Flanken schon richtig. Mit der Flanke von "S1" einmal den gesamten Code durchlaufen, Ausgänge werden dadurch gesetzt. Mit der Flanke von "S2" einfach AB0 und AB2 mit 0 überschreiben, A1.2;A1.3;A1.4;A1.5 auf False setzen.
 
Zurück
Oben