Generar cadena de formato de datos para el protocolo HTTP
Esta instrucción FP genera una cadena que especifica el formato de datos (dirección FP y longitud). Escribe la cadena en la variable de salida sDataFormat que es adecuada para la entrada sPLCDataFormat de la instrucción FP_HTTP_SET_MODE.
Entrada
Cadena que contiene datos ASCII
Tamaño de datos en palabras o de cadenas en unidades de bytes.
Salida
Cadena que especifica el formato de datos de la entrada sPLCDataFormat de FP_HTTP_SET_MODE
Antes de ejecutar la instrucción, necesita especificar la configuración de transferencia utilizando FP_HTTP_SET_MODE o el diálogo de configuración del cliente HTTP.
Antes de ejecutar la instrucción, asegurarse de que sys_bIsEthernetInitializing es FALSE. sys_bIsEthernetInitializing pasa a TRUE cuando se ejecuta la instrucción. Cuando ejecuta la instrucción mientras sys_bIsEthernetInitializing es TRUE, se produce un error.
La instrucción solo puede ejecutarse cuando la bandera de solicitud de transferencia para el ajuste de transferencia especificado es "FALSE: Ninguna solicitud de transferencia". Cuando la bandera de solicitud de transferencia es "TRUE: Transferencia solicitada", se produce un error de operación.
Cuando esta instrucción se ha ejecutado con éxito, las variables del sistema sys_bIsCarry y sys_iEthernetConnectionErrorCode se reinician.
Esta instrucción no sobrescribe los datos de configuración Ethernet almacenados en el PLC de forma permanente. Cuando el PLC ha sido apagado y encendido de nuevo, los datos de configuración Ethernet guardados en el PLC se utilizan de nuevo.
Una vez configurados los ajustes de transferencia del cliente HTTP, los datos se envían o adquieren realmente cuando se ejecuta la instrucción FP_HTTP_TRANSFER_REQUEST.
Cuando se produce un error, consulte la variable del sistema sys_iEthernetConnectionErrorCode para conocer el número de código de error.
si se supera el tiempo de espera de la conexión
si la dirección IP no es válida
si se supera el tiempo de espera de la conexión
si la dirección IP no es válida
si la instrucción se ejecuta durante la inicialización de Ethernet, sys_iEthernetConnectionErrorCode pasa a "11: Ethernet se está inicializando".
Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU. Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.
VAR
sStringData: STRING[31767]:='';
iID5: INT:=5;
bSetModeStringData: BOOL:=FALSE;
bErrorModeStringData: BOOL:=FALSE;
END_VAR
Si bSetModeStringData cambia de FALSE a TRUE y sys_bIsEthernetInitializing está a FALSE, se ejecuta la instrucción.
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
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;