Transmisión de caracteres por el puerto de la CPU o de la MCU
Esta instrucción escribe los datos en el buffer de envío y ejecuta F159_MTRN para enviar los datos. Los datos a enviar se almacenan en sString. El buffer de envío es una variable de tipo VAR_IN_OUT que se asigna a SendBuffer. Si bSuppressEndCode está a TRUE, el código de fin de trama seleccionado en los registros del sistema no se añade a la cadena a enviar.
Al contrario que la instrucción SendCharactersAndClearString, no se modifica la variable conectada en sString.
Entrada
Especificar los puertos de comunicación (dependiendo del tipo de PLC):
Puerto COM, por ejemplo SYS_COM0_PORT
Puerto Ethernet, por ejemplo SYS_ETHERNET_USER_CONNECTION_1
MCU/SCU por ejemplo 16#xx01 (xx = número de slot) en COM01
Almacena la cadena de envío
El código de fin de trama seleccionado en los registros del sistema no se añade a la cadena a enviar.
Entrada/salida
Almacena temporalmente la cadena de envío
Cuando se ha enviado el número de bytes especificado, la bandera de "transmisión completa" pasa a TRUE. Se pueden enviar o recibir nuevos datos. Cualquier instrucción de envío pone la bandera "transmisión completa" a FALSE y no se pueden recibir datos. La evaluación de la bandera de "transmisión completa" puede ser útil en los casos en los que no se espera respuesta, por ejemplo, en los mensajes de difusión (broadcast).
si no se ha encontrado ninguna unidad MCU en el slot especificado o se deben enviar cero bytes.
Se ha especificado 16#8000 en el MEWTOCOL-COM Maestro/Esclavo.
si no se ha encontrado ninguna unidad MCU en el slot especificado o se deben enviar cero bytes.
Se ha especificado 16#8000 en el MEWTOCOL-COM Maestro/Esclavo.
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
bSend: BOOL:=FALSE;
(*activates function*)
sSendData: STRING[30]:='ABCDEFGH';
(*up to 30 chars*)
awSendBuffer: ARRAY [0..15] OF WORD:=[16(0)];
(*for 30 chars + 1 word*)
bSuppressEndCode: BOOL:=FALSE;
END_VAR
Si bSend pasa de FALSE a TRUE, la instrucción envía los caracteres desde sSendData a través del puerto 1 de la MCU. Los caracteres se copian en el array awSendBuffer. awSendBuffer[0] está reservado para almacenar el número de caracteres de la cadena a enviar.
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_CONTACT,,bSend,9,1,11,3,R);
B(B_VARIN,,1,11,2,13,4,);
B(B_VARIN,,sSendData,11,3,13,5,);
B(B_VARIN,,awSendBuffer,11,5,13,7,);
B(B_VARIN,,bSuppressEndCode,11,4,13,6,);
B(B_F,E_SendCharacters!,,13,0,24,7,,?DEN?DPort?DsString?DbSuppressEndCode?DSendBuffer?ASendBuffer?AENO);
L(1,2,9,2);
L(11,2,13,2);
L(1,0,1,7);
END_NETWORK_BODY
END_NET_WORK
END_BODY
if (DF(bSend)) then
SendCharacters(Port := 1, sString := sSendData, bSuppressEndCode := bSuppressEndCode, SendBuffer := awSendBuffer);
end_if;