FP_HTTP_SET_CONNECTION

HTTPコネクションのサーバー設定

このFP命令は、指定されたパラメータに従って、CPUユニット内で指定されたHTTPクライアントへのコネクションサーバー設定を定義します。

パラメータ

入力

sServer (STRING)
  • サーバーアドレス(必須のキーワード)

    キーワード: SV

    値: SV0~SV3 (サーバー0~サーバー3)

  • IPアドレスまたはホスト名(必須のキーワード)

    • IPアドレス

      IPアドレスの場合は、最初にキーワードIPv4またはIPv6を指定します。

      IPv4の文法: 例'IPv4=111.122.133.144'

      IPv6の文法: 例'IPv6=1111:122:2:1555:0:0:1888'

      IPv4アドレスの場合、範囲の制限があることに注意してください。 無効なIPアドレスが命令に指定されたとき、演算エラーは発生せず、出力bErrorTRUEにセットされます。

    • ホストネーム

      キーワード: HOST

      文法: 例:'HOST=HTTP.pidsx.com'

  • ポート番号 (オプションパラメータ)

    キーワード: 'PORT'

    文法: 'PORT=xxxxx'

    値:1~65535 (初期値:80)

  • SSL3/TSL1認証(オプションパラメータ)

    SSL3/TSL1認証を使用するか否かを指定します。

    キーワード:

    • SSL: SSL3/TLS1を使用する

    • NON: SSL3/TLS1を使用しない(デフォルト)

変換例:
  1. SSL3/TLS1認証を使用して、IPアドレス192.255.2.10、ポート番号80でHTTPサーバー番号0に接続します。 'SV0,IPv4=192.255.2.10,PORT=80,SSL'

  2. SSL3/TLS1認証を使用して、IPアドレス1111:1222::1555:0:0:1888、ポート番号8080でHTTPサーバー番号1に接続します。 'SV1,IPv6=1111:1222::1555:0:0:1888,PORT=8080,SSL'

  3. 認証せずに、ホスト名HTTP.pidsx.com、ポート番号80でHTTPサーバー番号2に接続します。 'SV2,HOST=HTTP.pidsx.com,PORT=80,NON'

sLogin (STRING)

ログインデータの設定

  • ユーザー名 (最大32文字)

    キーワード: USER

    文法:'USER=xxx'(初期値:root)。'USER='を使用して、ユーザー名を削除します。
  • パスワード(最大32文字: 大文字と小文字が使用できます)

    キーワード: PASS

    文法:'PASS=passwd'(初期値:root)。'PASS='を使用して、パスワードを削除します。

このパラメータには、次の2つのキーワードが追加されています。
  • INITIAL:ユーザー名とパスワードを初期値の設定の「root」と「root」にリセットします。

  • KEEP: 現在のログイン設定を保持します。

変換例:

  1. ユーザー名を「Admin」、パスワードを「Panasonic」に設定する場合:'USER=Admin,PASS=Panasonic'

  2. ユーザー名を「Supervisor」に設定して、パスワードを削除する場合:'USER=Supervisor,PASS='

  3. ユーザー名を「Support」に設定し、パスワードは変更しない場合:'USER=Support'

  4. ユーザー名とパスワードを削除する場合:'USER=,PASS='
  5. ユーザー名とパスワードを初期値の値にリセットする場合:'INITIAL'

  6. 現在のユーザー名とパスワードを保持する場合:'KEEP'
sCommunication (STRING)

必要に応じて、オプションの通信パラメータを設定します。

  • 接続タイムアウト

    キーワード: TOUT

    文法:'TOUT=xxx' (初期値:60秒)

    値: 30~300秒

  • リトライ回数

    キーワード: RTRY

    文法: 'RTRY=x'(デフォルト: 3回)

    値:0~3

  • リトライ間隔

    キーワード: RTTM

    文法: 'RTTM=xxxxx'(初期値:600秒)

    値: 10~86400秒

    値は10秒単位で指定することができます。10以下の値は切り捨てられます。 例: 38秒を指定した場合は30秒になります。

このパラメータには、次の2つのキーワードが追加されています。

  • INITIALINITIAL:接続タイムアウト、再試行回数、リトライ間隔を初期値設定にリセットします。

  • KEEP:現在の通信設定を保持します。

変換例:

  1. 接続タイムアウトの設定:30秒、再試行回数:2、リトライ間隔:500秒:'TOUT=30,RTRY=2,RTTM=500'

  2. 接続タイムアウトの設定:270秒、リトライなし、リトライ間隔:4900秒:'TOUT=270,RTRY=0,RTTM=4900'

  3. 接続タイムアウトの設定:30秒、再試行回数:25、リトライ間隔:変更しない:'TOUT=30,RTRY=25'

  4. 接続タイムアウトの設定:変更しない、再試行回数:25、リトライ間隔:3000秒:',RTRY=25,RTTM=3000'

  5. 初期値の設定にリセット(接続タイムアウト:60秒、再試行回数:3、リトライ間隔:600秒):'INITIAL'

  6. 現在の設定をすべて保持:'KEEP'

出力

bError (BOOL)

以下の条件でTRUEになります。

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

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

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

解説

  • すべてのキーワードは、カンマで区切って登録します。例. 'NAME=abcd,FROM=sender@server.com'

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

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

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

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

  • 指定キーワードよりの部分を省略する場合は、キーワードのみを省略し、キーワードを区切るカンマ「,」は省略しません。',RTRY=25,RTTM=3000'

  • 指定キーワードより後ろの部分を省略する場合はカンマ「,」およびキーワードの両方を省略します。'TOUT=30,RTRY=25'

  • 同じキーワードを指定しないでください。同じキーワードを2回以上指定するとエラーになります。

  • 定数を指定する文字のオペランドには、大文字または小文字を使用することができます。「Abcd」、「ABCD」、「abcd」は同義語となります。しかし、ファイル名では大文字小文字が区別されます。

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

  • 命令は、指定した転送設定用の転送要求フラグが「FALSE:転送要求なし」の場合のみ実行することができます。転送要求フラグが「TRUE:転送要求済み」の場合は、演算エラーが発生します。

  • この命令が正常に実行されると、システム変数sys_bIsCarryおよびsys_iEthernetConnectionErrorCodeがリセットされます。

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

エラーフラグ

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

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

  • 指定した転送設定用の転送要求フラグが、命令が実行されるときに「TRUE:転送要求済み」の場合。

  • サーバー番号が昇順で指定されていない場合。

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

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

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

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

  • 指定した転送設定用の転送要求フラグが、命令が実行されるときに「TRUE:転送要求済み」の場合。

  • サーバー番号が昇順で指定されていない場合。

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

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

sys_bIsCarry (1回のスキャンに対してTRUE)
  • 命令が不正なIPアドレスで実行された場合、sys_iEthernetConnectionErrorCodeが「1:不正なIPアドレスの指定」に設定されます

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

POUヘッダ

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

	VAR
		bSetConnectionError: BOOL:=FALSE;
		bSetConnection: BOOL:=FALSE;
		wErrorCode: WORD:=0;
		bSetConnectionOK: BOOL:=FALSE;
	END_VAR

POUボディ

bSetConnectionFALSEからTRUEに変わり、sys_bIsEthernetInitializingFALSEであると、命令が実行されます。

LDボディ

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 10 ;
        NETWORK_BODY
B(B_VARIN,,'SV1~IPv4=192.255.2.10~PORT=21~OPEN=act~SSL',20,6,22,8,);
B(B_VARIN,,'USER=root~PASS=passwd',20,7,22,9,);
B(B_VARIN,,'TOUT=30~RTRY=2~RTTM=500',20,8,22,10,);
B(B_CONTACT,,bSetConnection,4,1,6,3,R);
B(B_VAROUT,,bSetConnectionError,36,6,38,8,);
B(B_CONTACT,,sys_bIsEthernetInitializing,17,1,19,3,N);
B(B_F,FP_HTTP_SET_CONNECTION!,,22,4,36,10,,?DEN?DsServer?DsLogin?DsCommunication?AENO?CbError);
L(1,2,4,2);
L(6,2,17,2);
L(19,2,19,6);
L(19,6,22,6);
L(1,0,1,10);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 4 ;
        NETWORK_BODY
B(B_CONTACT,,bSetConnectionError,4,1,6,3,);
B(B_F,E_MOVE!,,25,0,31,4,,?DEN?D?AENO?C);
B(B_VARIN,,sys_iEthernetConnectionErrorCode,23,2,25,4,);
B(B_VAROUT,,wErrorCode,31,2,33,4,);
L(6,2,25,2);
L(1,2,4,2);
L(1,0,1,4);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 3 ;
        NETWORK_BODY
B(B_CONTACT,,bSetConnectionError,4,1,6,3,N);
B(B_COIL,,bSetConnectionOK,28,1,30,3,);
L(6,2,28,2);
L(1,2,4,2);
L(1,0,1,3);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

If DF(bSetConnection) AND NOT sys_bIsEthernetInitializing then
    FP_HTTP_SET_CONNECTION(sServer := 'SV1,IPv4=192.255.2.10,PORT=21,OPEN=act,SSL',
                           sLogin := 'USER=root,PASS=passwd',
                           sCommunication := 'TOUT=30,RTRY=2,RTTM=500', 
                           bError => bSetConnectionError);
End_if;
If (bSetConnectionError) then
    wErrorCode := sys_iEthernetConnectionErrorCode;
Else
    bSetConnectionOK := True;   
End_if;

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