diabolo150973
Level-2
- Beiträge
- 1.075
- Reaktionspunkte
- 404
-> Hier kostenlos registrieren
Hier könnte Ihre Werbung stehen...
Anhänge
Zuletzt bearbeitet:
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
DATA_BLOCK DB 2
TITLE =
VERSION : 0.1
STRUCT
Anfangszahl : DINT ; //Aufzuteilende Zahl
Zehntausender : INT ; //Zehntausender Zahl
Tausender : INT ; //Tausender Zahl
Hunderter : INT ; //Hundert Zahl
Zehner : INT ; //Zehner Zahl
Einer : INT ; //Einer Zahl
END_STRUCT ;
BEGIN
Anfangszahl := L#6001;
Zehntausender := 0;
Tausender := 0;
Hunderter := 0;
Zehner := 0;
Einer := 0;
END_DATA_BLOCK
FUNCTION FC 2 : VOID
TITLE =
VERSION : 0.1
VAR_INPUT
Anfangszahl : DINT ; //Aufzusplittende Zahl
END_VAR
VAR_OUTPUT
Zehntausend : INT ; //Zehntausender Stelle
Tausend : INT ; //Tausender Stelle
Hundert : INT ; //Hunderter Stelle
Zehner : INT ; //Zehner Stelle
Einer : INT ; //Einer Stelle
END_VAR
VAR_TEMP
Zwischenspeicher : DINT ; //Zwischenspeicher
END_VAR
BEGIN
NETWORK
TITLE =Initialisieren
L L#0;
T #Zehntausend;
T #Tausend;
T #Hundert;
T #Zehner;
T #Einer;
NETWORK
TITLE =Zehntausender Stelle ermitteln
U( ;
L #Anfangszahl;
L L#9999;
>D ;
) ;
SPBNB M001;
L #Anfangszahl;
L L#10000;
/D ;
T #Zehntausend;
M001: U( ;
L #Zehntausend;
L L#0;
>D ;
) ;
SPBNB M002;
L #Zehntausend;
L L#10000;
*D ;
T #Zwischenspeicher;
M002: U( ;
L #Zehntausend;
L L#0;
>D ;
) ;
SPBNB M003;
L #Anfangszahl;
L #Zwischenspeicher;
-D ;
T #Anfangszahl;
M003: NOP 0;
NETWORK
TITLE =Tausender Stelle ermitteln
U( ;
L #Anfangszahl;
L L#999;
>D ;
) ;
SPBNB M004;
L #Anfangszahl;
L L#1000;
/D ;
T #Tausend;
M004: U( ;
L #Tausend;
L L#0;
>D ;
) ;
SPBNB M005;
L #Tausend;
L L#1000;
*D ;
T #Zwischenspeicher;
M005: U( ;
L #Tausend;
L L#0;
>D ;
) ;
SPBNB M006;
L #Anfangszahl;
L #Zwischenspeicher;
-D ;
T #Anfangszahl;
M006: NOP 0;
NETWORK
TITLE =Hunderter Stelle ermitteln
U( ;
L #Anfangszahl;
L L#99;
>D ;
) ;
SPBNB M007;
L #Anfangszahl;
L L#100;
/D ;
T #Hundert;
M007: U( ;
L #Hundert;
L L#0;
>D ;
) ;
SPBNB M008;
L #Hundert;
L L#100;
*D ;
T #Zwischenspeicher;
M008: U( ;
L #Hundert;
L L#0;
>D ;
) ;
SPBNB M009;
L #Anfangszahl;
L #Zwischenspeicher;
-D ;
T #Anfangszahl;
M009: NOP 0;
NETWORK
TITLE =Zehner Stelle ermitteln
U( ;
L #Anfangszahl;
L L#9;
>D ;
) ;
SPBNB M010;
L #Anfangszahl;
L L#10;
/D ;
T #Zehner;
M010: U( ;
L #Zehner;
L L#0;
>D ;
) ;
SPBNB M011;
L #Zehner;
L L#10;
*D ;
T #Zwischenspeicher;
M011: U( ;
L #Zehner;
L L#0;
>D ;
) ;
SPBNB M012;
L #Anfangszahl;
L #Zwischenspeicher;
-D ;
T #Anfangszahl;
M012: NOP 0;
NETWORK
TITLE =Einer Stelle ermitteln
L #Anfangszahl;
T #Einer;
END_FUNCTION
L #Deine Eingangszahl // INT
L 1000
MOD
T #MOD_100
L 100
MOD
T #MOD_10
L 10
MOD
T #MOD_1
L #Deine Eingangszahl
L 1000
/I
T #Byte_1_Stelle // 1. Stelle
L #MOD_100
L 100
/I
T #Byte_2_Stelle // 2. Stelle
L #MOD_10
L 10
/I
T #Byte_3_Stelle // 3. Stelle
L #MOD_1 // 4. Stelle
T #Byte_4_Stelle // 4. Stelle
Moin,
Lipperlandstern hat es dir doch schon geschrieben, ohne +I
L #DINT_Zahl // 0 ... 12345 ... 99999
DTB
RLD 16
T #Byte_Stelle_1
SLW 4
RLD 4
T #Byte_Stelle_2
SLW 4
RLD 4
T #Byte_Stelle_3
SLW 4
RLD 4
T #Byte_Stelle_4
SLW 4
RLD 4
T #Byte_Stelle_5
Wie wärs mal mit:
- Zahl in String wandeln....
- String in einzelne Zeichen aufteilen....
- Zeichen zurück wandeln....
- In Bytes schreiben....
Achja, bevor mir jemand an die Grugel will...
</Ironiemodus>
Die Idee hatte meine kleine Tochter auch... aber wir haben es dann verworfen...
Wir verwenden essentielle Cookies, damit diese Website funktioniert, und optionale Cookies, um den Komfort bei der Nutzung zu verbessern.
Siehe weitere Informationen und konfiguriere deine Einstellungen