FP_IPV4_SET_ADDRESS

IPv4プロトコルを使用するIPアドレスの設定

このFP命令は、インターネットプロトコルV4を介してsAddressで指定されるIPアドレスへの接続を設定します。

パラメータ

入力

sAddress (STRING)
  • IPv4アドレス(必須のキーワード)

    キーワード: IP

  • ネットマスク(オプションパラメータ)

    キーワード: MASK

  • ゲートウェイ(オプションパラメータ)

    キーワード: GWIP

    デフォルトゲートウェイを使用しない場合は、「0」を指定します。

変換例:
  1. IPアドレスを192.168.1.5に設定し、ネットマスク255.255.255.0とゲートウェイ192.168.1.1を使用する: 'IP=192.168.1.5,MASK=255.255.255.0,GWIP=192.168.1.1'

  2. IPアドレスを192.168.1.5に設定し、ネットマスクを使用せず、ゲートウェイ192.168.1.1を使用する: 'IP=192.168.1.5,,GWIP=192.168.1.1'

出力

bError (BOOL)
  • 接続のタイムアウトが経過した場合

  • IPアドレスが無効な場合

エラーが発生した場合は、エラーコード番号のシステム変数sys_iEthernetConnectionErrorCodeを確認してください。

解説

  • この命令は、PLCの起動時に1回だけ実行することをお勧めします繰り返し実行しないでください。

  • 初期化が完了するまでに3秒以上かかります。

  • 文字列データは、256文字以内にする必要があります。

  • この命令は、割り込みプログラム中で使用することはできません。

  • sAddressの文字列に空白が含まれていないことを確認します。コンマは区切り文字としてのみ使用します。

  • IPv4アドレスは必須です。ネットマスクとゲートウェイは省略できます。

  • パラメータは部分的な省略が可能です。省略されたパラメータの設定は変更されません。

  • 指定するキーワードは、大文字、小文字とも使用することができます。

  • キーワードの順序を変更しないでください。キーワードと設定パラメータはここに記載されている順序で記述してください。

  • 命令を実行する前にsys_bIsEthernetInitializingFALSEであることを確認してください。命令が実行されるとsys_bIsEthernetInitializingTRUEになります。sys_bIsEthernetInitializingTRUEのときに命令を実行すると、エラーが発生します。

  • 命令実行前に、システム変数sys_bIsEthernetIPAddressAssignedTRUEになっていることを確認してください。FALSEのとき、命令を実行すると、エラーが発生します。

  • この命令はsys_bIsEthernetCableNotConnectedFALSEのときにのみ実行することができます。

  • エラーが発生した場合は、エラーコード番号のシステム変数sys_iEthernetConnectionErrorCodeを確認してください。

エラーフラグ

sys_bIsOperationErrorHold (TRUEになり、TRUEを保持)
  • パラメータに指定された値が許容範囲外の場合。

  • 同じキーワードを2回以上指定した場合。

  • 命令が割り込みプログラム内で実行された場合。

  • 文字列データが256文字を超えた場合。

sys_bIsOperationErrorNonHold (1回のスキャンに対してTRUE)
  • パラメータに指定された値が許容範囲外の場合。

  • 同じキーワードを2回以上指定した場合。

  • 命令が割り込みプログラム内で実行された場合。

  • 文字列データが256文字を超えた場合。

sys_bIsCarry (1回のスキャンに対してTRUE)
  • 命令が不正なIPアドレス、ネットマスク、ゲートウェイ、または不正なIPアドレスの組み合わせで実行された場合、sys_iEthernetConnectionErrorCodeが対応するエラーコード(1~4)に設定されます。

  • Ethernetケーブル切断時に命令が実行された場合。 sys_iEthernetConnectionErrorCodeが「10:Ethernetケーブル未接続」に設定されます。

  • Ethernet初期化中に命令を実行した場合は、sys_iEthernetConnectionErrorCodeが「11:Ethernet初期化中」に設定されます。

POUヘッダ

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

	VAR
		bSetIpv4Address: BOOL:=FALSE;
		bGetConnection: BOOL:=FALSE;
		bGetMac: BOOL:=FALSE;
		dutIPv4Connection: FP_IPv4_CONNECTION_DUT;
		dutIPv4MAC: FP_IPv4_MAC_DUT;
	END_VAR

POUボディ

この例では、s_Addressで指定されたEthernetコネクションパラメータを設定します。また、プロジェクトナビゲータの適切なパラメータが設定されていることを「システムレジスタ」 > 「イーサネット」 > 「IPアドレス」で確認します。bGetConnectionTRUEに設定されている場合、コネクションパラメータはDUT FP_IPv4_CONNECTION_DUTに出力されます。 bGetMacTRUEに設定されている場合、MACアドレスのパラメータがDUT FP_IPv4_MAC_DUTに出力されます。

LDボディ

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_CONTACT,,bSetIpv4Address,4,2,6,4,R);
B(B_CONTACT,,sys_bIsEthernetInitializing,15,2,17,4,N);
B(B_F,FP_IPV4_SET_ADDRESS!,,31,1,43,5,,?DEN?DsAddress?AENO?CbError);
B(B_VARIN,,'IP=192.168.1.5~MASK=255.255.255.0~GWIP=192.168.1.1',29,3,31,5,);
B(B_VAROUT,,bError,43,3,45,5,);
L(1,0,1,5);
L(1,3,4,3);
L(6,3,15,3);
L(17,3,31,3);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 4 ;
        NETWORK_BODY
B(B_CONTACT,,bGetConnection,4,1,6,3,);
B(B_F,FP_IPV4_GET_CONNECTION!,,31,0,45,4,,?DEN?DnPort?AENO?CdutIPv4Connection);
B(B_VAROUT,,dutIPv4Connection,45,2,47,4,);
L(1,0,1,4);
L(1,2,4,2);
L(6,2,31,2);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 4 ;
        NETWORK_BODY
B(B_CONTACT,,bGetMac,4,1,6,3,);
B(B_F,FP_IPV4_GET_MAC!,,31,0,41,4,,?DEN?AENO?CdutIPv4MAC);
B(B_VAROUT,,dutIPv4MAC,41,2,43,4,);
L(1,0,1,4);
L(1,2,4,2);
L(6,2,31,2);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

IF DF(bSetIpv4Address) AND not(sys_bIsEthernetInitializing) then
    FP_IPV4_SET_ADDRESS(sAddress := 'IP=192.168.1.5,MASK=255.255.255.0,GWIP=192.168.1.1',
				bError => bError);
END_IF;
IF (bGetConnection) then
    FP_IPV4_GET_CONNECTION(nPort := SYS_ETHERNET_USER_CONNECTION_2, dutIPv4Connection => dutIPv4Connection);
END_IF;
IF (bGetMac) then
    FP_IPV4_GET_MAC(dutIPv4MAC => dutIPv4MAC);
END_IF;

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