浼殢鏈烘暟-codesys鐨凷T瀹炵幇涓ょ鏂规硶-CODESYS璧勬簮涓嬭浇鍖-閰峰痉缃 - CoDeSys杞欢鏁欑▼涓嬭浇,CoDeSys宸ユ帶璧勮闂ㄦ埛
HSC6490-cn涓浗鍒堕狅紝涓浗鑺瘇
鏌ョ湅: 65|鍥炲: 0

浼殢鏈烘暟-codesys鐨凷T瀹炵幇涓ょ鏂规硶

[澶嶅埗閾炬帴]
  • TA鐨勬瘡鏃ュ績鎯
    寮蹇
    2017-11-20 22:07
  • 绛惧埌澶╂暟: 2 澶

    [LV.1]鍒濇潵涔嶅埌

    鍙戣〃浜 2024-11-5 21:34:24 | 鏄剧ず鍏ㄩ儴妤煎眰 |闃呰妯″紡
    ST瀹炵幇浼殢鏈烘暟鐨勪袱绉嶆柟娉
    浣跨敤codesys鐨凢UN鍑芥暟鍧楀疄鐜

    鏂规硶涓锛歀CG绠楁硶锛孲eed= (Seed *259 + 147) MOD 27200
    (**********************************************鍙橀噺鍖轰竴**********************************************)
    VAR_IN_OUT
            Seed:dINT;
            Range_MinValue:REAL;
            Range_MaxValue:REAL;
    end_var
    var_output
            RandReal:REAL;
    END_VAR
    VAR
            SCALE_X:REAL;
            RandInt:dINT;
    END_VAR

    (*********************************************绋嬪簭鍖轰竴**********************************************)
    //绠楀嚭鐨剆eed
            RandInt := (Seed *259 + 147) MOD 27200;
            Seed := RandInt;
    //鎶婃暟鎹帇缂╁埌鍦0鑷1.0涔嬮棿        
            RandReal := DINT_TO_REAL(RandInt)/ 27200.0;
    //璁剧疆鍖洪棿鍚庯紝杈撳嚭鍖洪棿鍊肩缉鏀:OUT = [VALUE * (MAX 鈥 MIN)] + MIN
    IF          Range_MinValue < Range_MaxValue  THEN
            SCALE_X :=RandReal*(Range_MaxValue-Range_Minvalue)+Range_Minvalue;
            RandReal := SCALE_X;
    END_IF


    鏂规硶浜岋細浣跨敤绯荤粺鏃堕棿绾崇
    (**********************************************鍙橀噺鍖轰簩**********************************************)
    FUNCTION NS_Random_R : real
    VAR_INPUT
            Range_MinValue:REAL;
            Range_MaxValue:REAL;
    end_var

    VAR CONSTANT
            udiMinUdint:UDINT:=0;//鏃犵鍙峰弻鏁存暟鐨勬渶灏忓
            udiMaxUdint:UDINT:=16#ffffffff;//鏃犵鍙峰弻鏁存暟鐨勬渶澶у4294967295
    END_VAR

    VAR
            uliGetRtcNs: ULINT;        //鑾峰彇绯荤粺鏃堕棿绾崇鍙橀噺锛孉lias SYSTIME: ULINT
            //udiGetRtcNsStatus: UDINT;//鑾峰彇绾崇鏃堕棿缁撴灉*)
            
    (*鏁版嵁杞崲鍙橀噺*)
            uliConvertValue0: UDINT;
            uliConvertValue1: UDINT;
            uliConvertValue2: UDINT;
            uliConvertValue3: UDINT;
            uliConvertValue4: UDINT;
            uliConvertValue:UDINT;
            
            rNORM_X:REAL;
            SCALE_X:REAL;

    END_VAR

    (**********************************************绋嬪簭鍖轰簩**********************************************)
    (*//璇诲彇PLC鐨勭郴缁熸椂闂寸撼绉掕鏁帮紝
    //鐒跺悗鍙栫郴缁熸椂闂寸撼绉掑悗鍥涘瓧鑺傦紝骞朵氦鎹㈠瓧鑺傞『搴忥細1234杞负4321
    //鍐嶆爣鍑嗗寲涔嬪悗鍘嬬缉鍒0.0鍒1.0涔嬮棿锛
    //鏈鍚庣嚎鎬ц浆鍖栧埌璁惧畾鑼冨洿鍐
    //鏈缃缉鏀捐寖鍥达紝杈撳嚭缁撴灉鏄湪0鍒1.0涔嬮棿*)

    (*璇荤郴缁熸椂闂寸撼绉掞紝绾崇鏄64浣嶆棤绗﹀彿闀挎暣鍨嬫暟*)
            //udiGetRtcNsStatus:=SysTimeGetNs(uliGetRtcNs);
            SysTimeGetNs(uliGetRtcNs);
    (*璇诲嚭鏉ョ殑绾崇鏄8涓瓧鑺傛棤绗﹀彿闀挎暣鍨嬫暟锛屽彇鍚庡洓涓瓧鑺傦紝骞朵氦鎹㈠瓧鑺傞『搴忥細1234杞负4321*)
            uliConvertValue0:=ULINT_TO_UDINT(uliGetRtcNs);//鎶8瀛楄妭鏃犵鍙烽暱鏁存暟杞崲鎴4瀛楄妭鏃犵鍙锋暣鏁
            uliConvertValue1 := ROL(uliConvertValue0,24);//浜ゆ崲绗1瀛楄妭鍜岀3瀛楄妭
            uliConvertValue2 := ROL(uliConvertValue0,8);//浜ゆ崲绗0瀛楄妭鍜岀2瀛楄妭
            uliConvertValue3 := uliConvertValue1 AND 16#FF00FF00;
            uliConvertValue4 := uliConvertValue2 AND 16#00FF00FF;
            uliConvertValue := uliConvertValue3 OR uliConvertValue4;
            
    (*鎶婂彉閲忕殑鍊兼槧灏勫埌0.0~1.0涔嬮棿锛屽鍏惰繘琛屾爣鍑嗗寲*)
    //鏍囧噯鍖栧叕寮忥細OUT = (VALUE 鈥 MIN) / (MAX 鈥 MIN)
            rNORM_X := UDINT_TO_REAL(uliConvertValue-udiMinUdint) /UDINT_TO_REAL(udiMaxUdint-udiMinUdint);
            NS_Random_R := rNORM_X;

    (*鎶婃爣鍑嗗寲缁撴灉缂╂斁鍒版寚瀹氱殑鍙栧艰寖鍥(鏈灏忓煎拰鏈澶у间箣闂)*)
    //鍏堝垽鏂槸鍚︿娇鐢ㄧ缉鏀惧尯闂
    //缂╂斁鍏紡:OUT = [VALUE * (MAX 鈥 MIN)] + MIN
    IF         Range_MinValue < Range_MaxValue  THEN
            SCALE_X :=rNORM_X*(Range_MaxValue-Range_Minvalue)+Range_Minvalue;
            NS_Random_R := SCALE_X;
    END_IF

    (**********************************************鏁堟灉**********************************************)
    114539c7idzd7bsidsbddd.png

    114544nn2pzjph5i2p4pkj.png
    +10
    涓嶈禐涓涓紵
    鎵撹祻榧撳姳涓涓嬶紒
    鍥炲

    浣跨敤閬撳叿 涓炬姤

    鎮ㄩ渶瑕佺櫥褰曞悗鎵嶅彲浠ュ洖甯 鐧诲綍 | 绔嬪嵆娉ㄥ唽 鏂版氮寰崥鐧婚檰

    鏈増绉垎瑙勫垯

    椤堕儴qrcode搴曢儴
    鍏虫敞閰峰痉缃戣闃呭彿锛岃幏鍙栨洿澶氳祫璁紒

    QQ|灏忛粦灞|鎵嬫満鐗|Archiver|閰峰痉璁哄潧 ( 鑻廔CP澶16065247鍙-1 )|缃戠珯鍦板浘

    GMT+8, 2024-11-23 16:47 , Processed in 0.157200 second(s), 61 queries .

    閰峰痉缃

    © 2001-2013 Hicodesys. 鎶鏈敮鎸 by 閰峰痉缃

    蹇熷洖澶 杩斿洖椤堕儴 杩斿洖鍒楄〃