ResetComPort

指定したCOMポートのリセット

このファンクションブロックは、COMポートのリセット要求を指定されたポート番号に送信します。PLCは「プログラム制御」通信に設定する必要があります。出力変数bIsDoneおよびbIsRequestedを確認し、指定したポートがリセットされていて、再度使用できるかどうかを確認します。

パラメータ

入力

bReset (BOOL)

TRUEに設定すると、COMポートのリセット要求が指定されたポート番号に送信されます

Port (WORD, INT, UINT)
ポート番号
  • CPUのCOM0、COM1、COM2

  • SCUの16#xx01–16#xx04 (xx =スロット番号1~64)

出力

bIsDone (BOOL)

COMポートがリセットされ、再度使用できる場合は、TRUEに設定します。

bIsRequested (BOOL)

COMポートのリセットが要求される場合は、TRUEに設定します。

対応する出力のシステム変数(同じインスタンスのbResetによってCOMポートがリセットされた場合にのみ設定)

  • リセットの要求

    • COM0sys_bIsComPort0ResetRequested

    • COM1sys_bIsComPort1ResetRequested

    • COM2: sys_bIsComPort2ResetRequested

  • リセットの完了

    • COM0sys_bIsComPort0ResetDone

    • COM1sys_bIsComPort1ResetDone

    • COM2: sys_bIsComPort2ResetDone

POUヘッダ

POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。

	VAR
		fbResetComPort: ResetComPort;
		bResetComPort: BOOL:=FALSE;
		iPort: INT:=0;
		bComPortCannotBeUsed: BOOL:=FALSE;
	END_VAR

POUボディ

変数bResetComPortTRUEにセットされると、このファンクションブロックが実行されます。

LDボディ

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_VARIN,,iPort,19,3,21,5,);
B(B_CONTACT,,bResetComPort,6,2,8,4,);
B(B_FB,ResetComPort!,fbResetComPort,21,1,30,5,,?BbReset?BPort?AbIsDone?AbIsRequested);
L(1,3,6,3);
L(8,3,21,3);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 3 ;
        NETWORK_BODY
B(B_COIL,,bComPortCannotBeUsed,39,1,41,3,S);
B(B_CONTACT,,fbResetComPort.bIsRequested,6,1,8,3,);
L(1,2,6,2);
L(8,2,39,2);
L(1,0,1,3);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 3 ;
        NETWORK_BODY
B(B_COIL,,bComPortCannotBeUsed,39,1,41,3,E);
B(B_CONTACT,,fbResetComPort.bIsDone,6,1,8,3,);
L(1,2,6,2);
L(8,2,39,2);
L(1,0,1,3);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

fbResetComPort(bReset := bResetComPort,
               Port := iPort);
               IF (fbResetComPort.bIsRequested) then
                   bComPortCannotBeUsed := TRUE;
               ELSIF (fbResetComPort.bIsDone) then
                   bComPortCannotBeUsed := FALSE;
               END_IF;

最終修正日: 2022-04-21このページに関するフィードバックお問い合わせ窓口