ClearReceiveBuffer

Resetta il buffer di ricezione

Questa istruzione cancella il buffer di ricezione nella porta di comunicazione specificata da Port.

Parametri

Ingresso

Port (WORD, INT, UINT)

Specifica le porte di comunicazione (in base al tipo di PLC):

  • Porta COM p.es. SYS_COM0_PORT

  • Porta Ethernet p.es. SYS_ETHERNET_USER_CONNECTION_1

  • MCU/SCU p.es. 16#xx01 (xx = numero slot) in COM01

Note

Il buffer di ricezione viene resettato automaticamente quando si a inviano viene eseguita l'istruzione. Si può resettare il buffer di ricezione anche senza inviare dati eseguendo questa istruzione. In alternativa, potete anche utilizzare F159_MTRN con n_Number = 0. Quando il buffer di ricezione viene resettato, il numero di byte ricevuti viene messo su zero in offset 0 e il puntatore viene rimesso su offset 1. I dati successivi saranno salvati partendo da offset 1 e sovrascrivendo i dati esistenti. Il flag "ricezione conclusa" passa a FALSE.

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)
  • se la porta di comunicazione specificata da Port non esiste.

sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)
  • se la porta di comunicazione specificata da Port non esiste.

Esempio

Intestazione del POU

Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU. La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.

	VAR
		bClearReceiveBuffer: BOOL:=FALSE;
	END_VAR

Corpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 4 ;
        NETWORK_BODY
B(B_CONTACT,,bClearReceiveBuffer,5,1,7,3,R);
B(B_F,E_ClearReceiveBuffer!,,11,0,21,4,,?DEN?DPort?AENO);
B(B_VARIN,,1,9,2,11,4,);
L(1,2,5,2);
L(7,2,11,2);
L(1,0,1,4);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

if (DF(bClearReceiveBuffer)) then
    ClearReceiveBuffer(1);
end_if;

L'ultima revisione: 2022-04-19Feedback su questa paginaPanasonic hotline