FP_HTTP_GET_DATA_FORMAT

HTTPプロトコル用データフォーマット文字列の生成

このFP命令は、データフォーマット(FPアドレスと長さ)を指定する文字列を生成します。命令FP_HTTP_SET_MODEの入力sPLCDataFormatに適合した文字列を出力変数sDataFormatに書き込みます。

パラメータ

入力

Var (STRING)

ASCIIデータを含む文字列

nNumberOfCharacters (WORD, INT, UINT)

ワードまたは文字列のデータサイズ(バイト単位)

出力

sDataFormat (STRING)

FP_HTTP_SET_MODEの入力sPLCDataFormatのデータフォーマットを指定する文字列

解説

  • 命令を実行する前に、FP_HTTP_SET_MODEまたはHTTPクライアントの設定ダイアログを使用して転送設定を指定する必要があります。

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

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

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

  • この命令は、PLCに永続的に保存されているEthernet設定データを上書きしません。PLCの電源をオフにしてから再度オンにすると、PLCに保存されているEthernet設定データが再び使用されます。

  • HTTPクライアントの転送設定を設定した後で命令FP_HTTP_TRANSFER_REQUESTを実行すると、データが実際に送信または取得されます。

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

エラーフラグ

sys_bIsOperationErrorHold (TRUEになり、TRUEを保持)
  • 接続のタイムアウトが経過した場合

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

sys_bIsOperationErrorNonHold (1回のスキャンに対してTRUE)
  • 接続のタイムアウトが経過した場合

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

sys_bIsCarry (1回のスキャンに対してTRUE)
  • Ethernet初期化中に命令を実行した場合は、sys_iEthernetConnectionErrorCodeが「11:Ethernet初期化中」に設定されます。

POUヘッダ

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

	VAR
		sStringData: STRING[31767]:='';
		iID5: INT:=5;
		bSetModeStringData: BOOL:=FALSE;
		bErrorModeStringData: BOOL:=FALSE;
	END_VAR

POUボディ

bSetModeStringDataFALSEから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 := 7 ;
        NETWORK_BODY
B(B_VARIN,,iID5,39,2,41,4,);
B(B_VARIN,,'SV0~UPLOAD;POST',39,3,41,5,);
B(B_CONTACT,,bSetModeStringData,5,1,7,3,R);
B(B_VARIN,,'/PLC?ment',39,5,41,7,);
B(B_VAROUT,,bErrorModeStringData,52,2,54,4,);
B(B_VARIN,,sStringData,8,4,10,6,);
B(B_CONTACT,,sys_bIsEthernetInitializing,16,1,18,3,N);
B(B_F,LEN!,,11,4,16,7,,?DIN?C);
B(B_F,FP_HTTP_GET_DATA_FORMAT!,,16,3,31,7,,?D@'Var'?DnNumberOfCharacters?CsDataFormat);
B(B_F,FP_HTTP_SET_MODE!,,41,0,52,7,,?DEN?DnTransferID?DsOperation?DsPLCDataFormat?DsHTTPServerURL?AENO?CbError);
L(1,2,5,2);
L(7,2,16,2);
L(11,5,11,6);
L(18,2,41,2);
L(10,5,16,5);
L(31,5,41,5);
L(1,0,1,7);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

If DF(bSetModeStringData) AND not sys_bIsEthernetInitializing Then
    FP_HTTP_SET_MODE(nTransferID := iID5,
                     sOperation := 'SV0,UPLOAD;POST',
                     sPLCDataFormat := FP_HTTP_GET_DATA_FORMAT(sStringData,
                                                               LEN(sStringData)), 
                     sHTTPServerURL := '/PLC?ment',
                     bError => bErrorModeStringData);
End_if;

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