Hirdetés

2024. május 2., csütörtök

Gyorskeresés

Útvonal

Fórumok  »  Egyéb hardverek  »  PLC programozás

Hozzászólások

(#5198) Szirty válasza bodnarg (#5192) üzenetére


Szirty
őstag

Helló bodnarg!

Itt egy "gyalogos" megoldás a problémára:

FUNCTION FC 1 : VOID
TITLE =
AUTHOR : Szirty
VERSION : 0.1


VAR_INPUT
Num : DINT ; //Bemenő érték
END_VAR
VAR_TEMP
StrTMP0 : STRING [254 ]; //String átmeneti változó
StrTMP1 : STRING [254 ]; //String eredmény
rv : INT ; //Visszatérési érték
N : CHAR ; //'0'
END_VAR
BEGIN
NETWORK
TITLE =Nulla karakter

L '0';
T #N;
NOP 0;
NETWORK
TITLE =StrTMP0 feltöltése '0' karakterekkel

CALL SFC 21 (
BVAL := #N,
RET_VAL := #rv,
BLK := #StrTMP0);
NOP 0;
NETWORK
TITLE =A dint átalakítása stringgé

CALL FC 5 (
I := #Num,
RET_VAL := #StrTMP0);
NOP 0;
NETWORK
TITLE =Az eredmény string létrehozása

L P##StrTMP0;
LAR1 ;
L P##StrTMP1;
LAR2 ;
L 12;
T B [AR2,P#1.0];
L B [AR1,P#3.0];
T B [AR2,P#2.0];

L '.';
T B [AR2,P#3.0];

L B [AR1,P#4.0];
T B [AR2,P#4.0];
L B [AR1,P#5.0];
T B [AR2,P#5.0];
L B [AR1,P#6.0];
T B [AR2,P#6.0];
L B [AR1,P#7.0];
T B [AR2,P#7.0];

L '.';
T B [AR2,P#8.0];

L B [AR1,P#8.0];
T B [AR2,P#9.0];
L B [AR1,P#9.0];
T B [AR2,P#10.0];
L B [AR1,P#10.0];
T B [AR2,P#11.0];

L '.';
T B [AR2,P#12.0];

L B [AR1,P#11.0];
T B [AR2,P#13.0];

END_FUNCTION

#Num DINT paraméterben bemegy az érték és #StrTMP1 temp változóban képződik.
Esetleg indulj ki ebből (teszteld alaposan).

Útvonal

Fórumok  »  Egyéb hardverek  »  PLC programozás
Copyright © 2000-2024 PROHARDVER Informatikai Kft.