Gebs
Level-1
- Beiträge
- 846
- Reaktionspunkte
- 245
-> Hier kostenlos registrieren
Also z.B. Wert1=1 und Wert2=3 =>Lampe3
Wert1=2 und Wert2=1=>Lampe11
Daraus ergibt sich für mich die folgende Berechnung der Lampen-Nr.:
(Wert1-1) * 10 + Wert2
Wenn Wert1 = 1...100 ist und Wert2 = 0...9, dann kann man damit 1000 Lampen ansprechen.
Damit ergibt sich dann der folgende Code für die Lampen:
Code:
U DB100.dbx3.0 // 1 im Byte 3
FP M 0.1 // pos. Flanke "Lampe an"
U DB100.dbx3.0 // 1 im Byte 3
FN M 0.0 // pos. Flanke "Lampe aus"
UN M0.0
UN M0.1
SPB WEIT
L DB100.DBB1 // Wert1
+ -1
L 10
*I
L DB100.DBB2 // Wert2
+I
T MW 2 // Nummer der Lampe
L MW 2
L 8
/I
T MW 4 // ByteNummer
L MW2
MOD 8
T MW 6 // BitNummer
L MW 4
SLD 3
L MW 6
+D // Pointer bestehend aus Byte.Bit
LAR1 // isn Adressregister
U DB100.DBX3.0 // Lampe (1=AN, 0=AUS)
AUF DB 200
= DBX[AR1,p#0.0] // Bit Lampe zuweisen
WEIT: NOP 0
Ich hoffe es hilft Dir weiter (und ich hab' keine Fehler drin).
Grüße
Gebs
[EDIT]
Hab' doch ein paar Fehler drin gehabt.
[/EDIT]
Zuletzt bearbeitet: