Hirdetés
- Luck Dragon: Asszociációs játék. :)
- Magga: PLEX: multimédia az egész lakásban
- sziku69: Szólánc.
- GoodSpeed: Te hány éves vagy?
- sziku69: Fűzzük össze a szavakat :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- weiss: Autó költségek
- Geri Bátyó: Agglegénykonyha különkiadás – Bors
- Klaus Duran: Minden drágul. Vajon a fizetések 2026-ban követi minimálisan?
Új hozzászólás Aktív témák
-
Szirty
őstag
válasz
Shirchy
#4422
üzenetére
Üdv!
Jó. Akkor itt az FC105 forráskódja:
FUNCTION FC 105 : WORD
TITLE =SCALING VALUES
//
AUTHOR : SEA
FAMILY : CONVERT
NAME : SCALE
VERSION : 2.1
VAR_INPUT
IN : INT ; // input value to be scaled
HI_LIM : REAL ; // upper limit in engineering units
LO_LIM : REAL ; // lower limit in engineering units
BIPOLAR : BOOL ; // 1=bipolar; 0=unipolar
END_VAR
VAR_OUTPUT
OUT : REAL ; // result of the scale conversion
END_VAR
VAR_TEMP
IN_REAL : REAL ; // input value as a REAL number
K1 : REAL ; // low limit for input value
K2 : REAL ; // high limit for input value
SPAN : REAL ; // HI_LIM - LO_LIM
TEMP1 : REAL ; // temporary result
END_VAR
BEGIN
NETWORK
TITLE =
//
// set K1 and K2 constants based upon BIPOLAR
//
SET ; // if(BIPOLAR=0)
A #BIPOLAR; // .
JC EL01; // {
L 0.000000e+000; // K1=0
T #K1; // .
JU EI01; // } else {
EL01: L -2.764800e+004; // K1=-27648.0
T #K1; // .
EI01: NOP 0; // }
L 2.764800e+004; // K2=+27648.0
T #K2; // .
//
// convert input (IN) to real
//
L #IN; // ACC1=IN
ITD ; // convert to double integer
DTR ; // convert to real
T #IN_REAL; // IN_REAL-IN as a real
//
// determine SPAN = HI_LIM - LO_LIM
//
L #HI_LIM; // SPAN=HI_LIM-LO_LIM
L #LO_LIM; // .
-R ; // .
T #SPAN; // .
//
// If the input value is outside the K1 and K2 range, the output
// is clamped to the nearer of either the LO_LIM or the HI_LIM
// and an error is logged. If the input value is exactly at a limit the
// output will be set to the computed limit with no error returned.
// changed 2/14/00 by ERI per RQ210693
L #IN_REAL; // if(IN_REAL<K1)
L #K1; // .
>=R ; // .
JC EL02; // {
L 8; // error
T #RET_VAL; // .
L #LO_LIM; // ACC1=LO_LIM
T #OUT; // OUT=ACC1
JU FAIL; // error
EL02: POP ; // } else {
L #K2; // if(IN_REAL>K2)
<=R ; // .
JC EI04; // {
L 8; // error
T #RET_VAL; // .
L #HI_LIM; // ACC1=HI_LIM
T #OUT; // OUT=ACC1
JU FAIL; // error
EI04: NOP 0; // }
NOP 0; // }
//
// scale the input
//
L #K2; // TEMP1=K2-K1
L #K1; // .
-R ; // .
T #TEMP1; // .
L #IN_REAL; // IN_REAL-K1
L #K1; // .
-R ; // .
L #TEMP1; // divide by TEMP1
/R ; // .
L #SPAN; // multiply by SPAN
*R ; // .
L #LO_LIM; // add LO_LIM
+R ; // .
T #OUT; // OUT=scale(IN_REAL)
//
// set BR bit : no error-set BR bit to 1; with error-set BR bit to 0.
//
L 0; // return error code 0
T #RET_VAL; //
SET ; // RLO = 1 (NO ERROR)
JU SVBR; //
FAIL: CLR ; // RLO = 0 (ERROR)
SVBR: SAVE ; // BR = RLO
END_FUNCTION
Új hozzászólás Aktív témák
- Luck Dragon: Asszociációs játék. :)
- Székesfehérvár és környéke adok-veszek-beszélgetek
- Hálózati / IP kamera
- Renault, Dacia topik
- Szünetmentes tápegységek (UPS)
- Kerékpárosok, bringások ide!
- Suzuki topik
- CES 2026: Színre lép a Motorola Razr Fold
- Magga: PLEX: multimédia az egész lakásban
- Autós topik
- További aktív témák...
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest

