Új hozzászólás Aktív témák

  • Szirty

    őstag

    válasz rsf #4764 üzenetére

    Helló!

    Használj másik skálázó blokkot. Vagy írj egyet.
    Vagy itt van egy: FC109

    FUNCTION FC 109 : VOID
    TITLE =
    //Skálázás
    //Az #InMin-#InMax tartományt #OutMin-#OutMax tartományra skálázza
    //
    //Out=((In-InMin)*((OutMax-OutMin)/(InMax-InMin)))+OutMin
    //InRng=InMax-InMin
    //OutRng=OutMax-OutMin
    //R=OutRng/InRng
    //Out=((In-InMin)*R)+OutMin
    AUTHOR : Szirty
    VERSION : 0.1

    VAR_INPUT
    In : INT ; //Skálázandó érték
    InMin : INT ; //Bemenő tartomány minimuma
    InMax : INT ; //Bemenő tartomány maximuma
    OutMin : REAL ; //Kimenő tartomány minimuma
    OutMax : REAL ; //Kimenő tartomány mximuma
    END_VAR
    VAR_OUTPUT
    Out : REAL ; //Skálázott érték
    END_VAR
    VAR_TEMP
    InRng : REAL ; //Bementi tartomány
    R : REAL ; //Szorzó részeredmény
    END_VAR
    BEGIN
    NETWORK
    TITLE =
    //
    //
    //
    //InRng=InMax-InMin
    L #InMin;
    ITD ;
    DTR ;
    L #InMax;
    ITD ;
    DTR ;
    -R ;
    T #InRng;
    //OutRng=OutMax-OutMin
    L #OutMin;
    L #OutMax;
    -R ;
    //R=OutRng/InRng
    L #InRng;
    /R ;
    T #R;
    L #In;
    L #InMin;
    -I ;
    ITD ;
    DTR ;
    L #R;
    *R ;
    L #OutMin;
    +R ;
    T #Out;
    END_FUNCTION

Új hozzászólás Aktív témák