FP_HTTP_SET_MODE

设置HTTP传输模式

此FP指令将sOperation的HTTP客户端传输设置、sPLCDataFormatsHTTPServerURL存储在由nTransferID指定的传输设置区域中。

参数

输入

nTransferID (WORD, INT, UINT)

设置传输设置ID。

值:0–15(值必须按升序输入)

sOperation (STRING)

设置传输方法参数。

  • 服务器地址

    关键字: SV

    值:SV0–SV3(服务器0–服务器3)

  • 指定内存区和传输类型(发送或获取数据)

    • 使用关键字UPLOAD发送数据。

    • 使用关键字DOWNLOAD获取数据。

    • 使用关键字UPDOWN发送和获取数据。

    指定用于传输的命令。

    • 使用关键字POST发送数据(仅适用于传输类型UPLOADUPDOWN)。

    • 使用关键字GET获取数据。

    示例:将数据从内存区上载到HTTP服务器3:'SV3,UPDOWN,POST'

sPLCDataFormat (STRING)

指定要传输的数据。或者,使用指令FP_HTTP_GET_DATA_FORMAT.

示例:存储区:DT100000,字节数:250字节,最大获取数:250字节:'DT100000,250,250'

sHTTPServerURL (STRING)

指定服务器URL。

示例:'\data.csv'

输出

bError (BOOL)

在以下情况下将变为TRUE

  • 如果超过连接超时

  • 如果 IP 地址无效

当发生错误时,针对错误代码编号检查系统变量sys_iEthernetConnectionErrorCode

标注

  • 字符串数据的字符数不得超过256。

  • 此指令不可用于中断程序。

  • 执行此指令前,需使用FP_HTTP_SET_CONNECTION或HTTP客户端的设置对话框指定HTTP服务器。

  • 执行此指令前,确保sys_bIsEthernetInitializingFALSEsys_bIsEthernetInitializing在执行指令后将变为TRUEsys_bIsEthernetInitializingTRUE时,执行指令将发生错误。

  • 仅当指定传输设置的传输请求标志为“FALSE: No transfer request”时,可以执行该指令。当传输请求标志为“TRUE: Transfer requested”时,将出现操作错误。

  • 成功执行此指令后,会重置系统变量sys_bIsCarrysys_iEthernetConnectionErrorCode

  • 配置HTTP客户端传输设置后,执行FP_HTTP_TRANSFER_REQUEST指令时数据将实际发送或获取。

  • 对于所有16个传输ID,可以同时传输的字节数为1MB。

  • 当发生错误时,针对错误代码编号检查系统变量sys_iEthernetConnectionErrorCode

错误标志

sys_bIsOperationErrorHold(变为TRUE并保持为TRUE)
  • 如果为参数指定的值超出允许的范围。

  • 如果未按升序指定传输ID。

  • 如果指令是在中断程序中执行的。

  • 如果字符串数据的字符数超过256。

  • 如果未使用指令FP_HTTP_SET_CONNECTION或HTTP客户端的设置对话框指定HTTP服务器。

  • 在执行指令后,如果指定传输设置的传输请求标志为“TRUE:请求传输”。

sys_bIsOperationErrorNonHold(对于一次扫描变为TRUE)
  • 如果为参数指定的值超出允许的范围。

  • 如果未按升序指定传输ID。

  • 如果指令是在中断程序中执行的。

  • 如果字符串数据的字符数超过256。

  • 如果未使用指令FP_HTTP_SET_CONNECTION或HTTP客户端的设置对话框指定HTTP服务器。

  • 在执行指令后,如果指定传输设置的传输请求标志为“TRUE:请求传输”。

sys_bIsCarry(对于一次扫描变为TRUE)
  • 如果指令是在以太网初始化期间执行的,则sys_iEthernetConnectionErrorCode设置为“11:以太网正在初始化”。

示例

POU头

所有用于编程此函数的输入和输出变量已在POU头中声明。所有编程语言使用相同的POU头。

	VAR
		sDestURL: STRING[32]:='\data.csv';
		sStringData: STRING[32767]:='';
		iID5: INT:=5;
		bSetModeAsciiDataArea: BOOL:=FALSE;
		bSetModeStringData: BOOL:=FALSE;
		bErrorModeStringData: BOOL:=FALSE;
		bErrorModeAsciiDataArea: BOOL:=FALSE;
	END_VAR

POU本体

第一个示例使用最多包含32767个字符的source字符串,第二个示例使用DT地址来存储包含超过32767个字符的source字符串。

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_COMMENT,, ^Set mode to transfer HTTP data stored in string variable (strings can only contain max. of 32767 characters),4,1,45,4,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 7 ;
        NETWORK_BODY
B(B_VARIN,,iID5,40,2,42,4,);
B(B_VARIN,,'SV0~DOWNLOAD,GET',40,3,42,5,);
B(B_CONTACT,,bSetModeStringData,5,1,7,3,R);
B(B_VARIN,,'/data.csv',40,5,42,7,);
B(B_VAROUT,,bErrorModeStringData,53,2,55,4,);
B(B_VARIN,,sStringData,8,4,10,6,);
B(B_CONTACT,,sys_bIsEthernetInitializing,16,1,18,3,N);
B(B_F,MAX_LEN!,,10,5,16,7,,?D?C);
B(B_F,FP_HTTP_GET_DATA_FORMAT!,,16,3,31,7,,?D@'Var'?DnNumberOfCharacters?CsDataFormat);
B(B_F,FP_HTTP_SET_MODE!,,42,0,53,7,,?DEN?DnTransferID?DsOperation?DsPLCDataFormat?DsHTTPServerURL?AENO?CbError);
L(1,2,5,2);
L(7,2,16,2);
L(10,5,10,6);
L(10,5,16,5);
L(31,5,42,5);
L(18,2,42,2);
L(1,0,1,7);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_COMMENT,, ^Set mode to transfer HTTP data stored in memory area > 32767 characters,4,1,34,4,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_VARIN,,iID5,39,3,41,5,);
B(B_VARIN,,'SV0~UPDOWN,POST',39,4,41,6,);
B(B_VARIN,,'DT100000~102345~12345',39,5,41,7,);
B(B_CONTACT,,bSetModeAsciiDataArea,5,2,7,4,R);
B(B_VARIN,,sDestURL,39,6,41,8,);
B(B_VAROUT,,bErrorModeAsciiDataArea,52,3,54,5,);
B(B_CONTACT,,sys_bIsEthernetInitializing,16,2,18,4,N);
B(B_F,FP_HTTP_SET_MODE!,,41,1,52,8,,?DEN?DnTransferID?DsOperation?DsPLCDataFormat?DsHTTPServerURL?AENO?CbError);
L(1,3,5,3);
L(7,3,16,3);
L(18,3,41,3);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST本体

(* Set mode to transfer HTTP data stored in string variable (strings can only contain max. of 32767 characters) *)
If DF(bSetModeStringData) And not sys_bIsEthernetInitializing then
    FP_HTTP_SET_MODE(nTransferID := iID5,
                     sOperation := 'SV0,DOWNLOAD,GET',
                     sPLCDataFormat := FP_HTTP_GET_DATA_FORMAT(sStringData, LEN(sStringData)), 
                     sHTTPServerURL := '/data.csv',
                     bError => bErrorModeStringData);
End_if;
(* Set mode to transfer HTTP data stored in memory area > 32767 characters  *)
If DF(bSetModeAsciiDataArea) And not sys_bIsEthernetInitializing then
        FP_HTTP_SET_MODE(nTransferID := iID5,
                         sOperation := 'SV0,UPDOWN,POST',
                         sPLCDataFormat := 'DT100000,102345,12345', 
                         sHTTPServerURL := sDestURL,
                         bError => bErrorModeAsciiDataArea);
End_if;

最后更新日期: 2024-03-07此页面上的反馈松下热线