鍩轰簬CODESYS骞冲彴鐨勫簱CAA_BehaviourModel.library涔婨TrigA璇﹁В-CODESYS V3-閰峰痉缃 - CoDeSys杞欢鏁欑▼涓嬭浇,CoDeSys宸ユ帶璧勮闂ㄦ埛
HSC6490-cn涓浗鍒堕狅紝涓浗鑺瘇
鏌ョ湅: 771|鍥炲: 0

鍩轰簬CODESYS骞冲彴鐨勫簱CAA_BehaviourModel.library涔婨TrigA璇﹁В

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

    [LV.1]鍒濇潵涔嶅埌

    鍙戣〃浜 2023-9-22 22:06:46 | 鏄剧ず鍏ㄩ儴妤煎眰 |闃呰妯″紡
    涓婂崌娌垮紑濮嬪姩浣滐紝鍦ㄥ姩浣滃畬鎴愭垨鍐呴儴鍙戠敓閿欒鎴栧閮ㄤ腑姝箣鍓嶄笅闄嶆部,杈撳嚭鍊间粎鍙樺寲1涓懆鏈燂紝鍦ㄥ姩浣滃畬鎴愭垨鍐呴儴鍙戠敓閿欒鎴栧閮ㄤ腑姝箣鍚庝笅闄嶆部锛岃緭鍑哄间繚鐣欏埌涓嬮檷娌裤傚閮ㄤ腑姝, 鍔ㄤ綔绔嬪嵆鍋滄骞朵笖杈撳嚭澶嶄綅鍒板垵濮嬬姸鎬併
    1. FUNCTION_BLOCK ETrigA IMPLEMENTS IFBCommand
    2. VAR_INPUT
    3.         xInExecute: BOOL;       
    4.         xInAbort: BOOL;
    5. END_VAR
    6. VAR_OUTPUT
    7.         xOutDone: BOOL;                    //瀹屾垚
    8.         xOutBusy: BOOL;                    //鎵ц涓
    9.         xOutError: BOOL;                //鍑洪敊
    10.         xOutAborted : BOOL;            //琚敤鎴蜂腑姝
    11. END_VAR
    12. VAR
    13.         xPreviousAbortInProgress: BOOL;        //涓婁竴鍛ㄦ湡xAbortInProgress鐨勫
    14.         xPreviousExecute: BOOL;                        //涓婁竴鍛ㄦ湡xExecute鐨勫
    15.         xAbortInProgress: BOOL;                        //涓澶勭悊涓
    16.         iError: INT;                                        //閿欒浠g爜
    17. END_VAR
    18. IF xInAbort AND xOutBusy AND NOT xAbortInProgress THEN  //鍦ㄥ姛鑳芥墽琛屼腑涓斿唴閮ㄦ湭鍑虹幇涓鏃剁敤鎴蜂腑姝
    19.    xAbortInProgress:= TRUE;
    20. END_IF;
    21. IF NOT (xAbortInProgress OR xInAbort) THEN        //涓鏈姹
    22.    IF NOT xOutBusy THEN
    23.           IF NOT xInExecute AND xPreviousExecute THEN            //涓嬮檷娌垮浣嶈緭鍑
    24.                  prvResetOutputs();
    25.           ELSIF xInExecute AND NOT xPreviousExecute THEN        //涓婂崌娌垮紑濮嬪姩浣
    26.                  xOutBusy:= TRUE;
    27.                  xPreviousExecute := TRUE;
    28.                  prvStart();
    29.            END_IF;
    30.         END_IF;
    31.         IF xOutBusy THEN
    32.            prvCyclicAction();
    33.            IF xOutDone THEN
    34.                   xOutBusy:= FALSE;
    35.            END_IF;
    36.         END_IF;
    37.         IF xOutBusy THEN
    38.            IF iError <> 0 AND NOT xPreviousAbortInProgress THEN
    39.                   xAbortInProgress:= TRUE;
    40.            END_IF;
    41.         END_IF;
    42. END_IF;
    43. IF NOT xInExecute AND xInAbort AND NOT xAbortInProgress AND xOutAborted THEN        //鎵ц涓嚭鐜伴敊璇 鎴栬鐢ㄦ埛涓
    44.    prvResetOutputs();
    45. END_IF;
    46. IF xAbortInProgress THEN
    47.    prvAbort();
    48.    IF NOT xAbortInProgress THEN        //涓瀹屾垚
    49.           xOutBusy:= FALSE;
    50.           IF iError <> 0 THEN
    51.                  xOutError:= TRUE;
    52.           END_IF;
    53.           IF xInAbort THEN
    54.                  xOutAborted:= TRUE;
    55.           END_IF;
    56.    END_IF;
    57. END_IF;
    58. xPreviousAbortInProgress:= xAbortInProgress;
    澶嶅埗浠g爜
    prvAbort()锛宲rvCyclicAction()锛宲rvResetOutputs()锛宲rvStart()涓烘爣鍑嗘帴鍙FBCommand涓殑4涓柟娉曘
    +10
    鎵撹祻榧撳姳涓涓嬶紒
    鍥炲

    浣跨敤閬撳叿 涓炬姤

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

    鏈増绉垎瑙勫垯

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

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

    GMT+8, 2024-5-21 19:11 , Processed in 0.441050 second(s), 52 queries .

    閰峰痉缃

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

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