FP_HTTP_SET_CONNECTION

Impostazioni server per connessione HTTP

Questa istruzione FP definisce le impostazioni server per la connessione al client HTTP specificato nella CPU in base a parametri specifici.

Parametri

Ingresso

sServer (STRING)
  • Indirizzo server (parametro richiesto)

    Parola chiave: SV

    Valori: SV0–SV3 (Server 0–Server 3)

  • Indirizzo IP o nome host (parametro richiesto).

    • Indirizzo IP

      Per un indirizzo IP, specificare la parola chiave IPv4 o IPv6 all'inizio.

      Sintassi per IPv4: p.es. 'IPv4=111.122.133.144'

      Sintassi per IPv6: p.es. 'IPv6=1111:122:2:1555:0:0:1888'

      Si ricorda che per gli indirizzi Ipv4 vi sono restrizioni di intervallo. Quando un indirizzo IP non valido viene specificato con un'istruzione, non vi saranno errori di funzionamento, ma l'uscita bError verrà impostata su TRUE.

    • Nome host

      Parola chiave: HOST

      Sintassi: p.es. 'HOST=HTTP.pidsx.com'

  • Numero porta (parametro opzionale)

    Parola chiave: 'PORT'

    Sintassi: 'PORT=xxxxx'

    Valori: 1–65535 (default: 80)

  • Autenticazione SSL3/TSL1 (parametro opzionale)

    Specificare se utilizzare o meno l'autenticazione SSL3/TSL1.

    Parole chiave:

    • SSL: Utilizza SSL3/TLS1

    • NON: SSL3/TLS1 non utilizzato (default)

Esempi:
  1. Connettersi al server HTTP numero 0 con indirizzo IP 192.255.2.10, numero porta 80, utilizzando l'autenticazione SSL3/TLS1: 'SV0,IPv4=192.255.2.10,PORT=80,SSL'

  2. Connettersi al server HTTP numero 1 con indirizzo IP 1111:1222::1555:0:0:1888, numero porta 8080, utilizzando l'autenticazione SSL3/TLS1: 'SV1,IPv6=1111:1222::1555:0:0:1888,PORT=8080,SSL'

  3. Connettersi al server HTTP numero 2 con nome host HTTP.pidsx.com, numero porta 80, senza utilizzare l'autenticazione: 'SV2,HOST=HTTP.pidsx.com,PORT=80,NON'

sLogin (STRING)

Impostare i dati di login

  • Nome utente (max. 32 caratteri)

    Parola chiave: USER

    Sintassi: 'USER=xxx' (default: root). Utilizzare 'USER=' per eliminare il nome utente.
  • Password (max. 32 caratteri, maiuscole e minuscole consentite)

    Parola chiave: PASS

    Sintassi: 'PASS=passwd' (default: root). Utilizzare'PASS=' per eliminare la password.

Per questo parametro esistono altre due parole chiave disponibili:
  • INITIAL: Resetta il nome utente e la password alle impostazioni di default "root" e "root".

  • KEEP: Mantiene le impostazioni di login attuali.

Esempi:

  1. Impostare il nome utente su "Admin" e la password su "Panasonic": 'USER=Admin,PASS=Panasonic'

  2. Impostare il nome utente su "Supervisor" ed eliminare la password: 'USER=Supervisor,PASS='

  3. Impostare il nome utente su "Support", non modificare la password: 'USER=Support'

  4. Eliminare il nome utente e la password: 'USER=,PASS='
  5. Resettare il nome utente e la password ai valori default: 'INITIAL'

  6. Mantenere nome utente e password attuali: 'KEEP'
sCommunication (STRING)

Impostare i parametri di comunicazione opzionali come richiesto.

  • Timeout connessione

    Parola chiave: TOUT

    Sintassi:'TOUT=xxx' (default: 60 secondi)

    Valori: 30–300 secondi

  • Numero di tentativi

    Parola chiave: RTRY

    Sintassi: 'RTRY=x' (default: 3 volte)

    Valori: 0–3

  • Intervallo tentativi

    Parola chiave: RTTM

    Sintassi: 'RTTM=xxxxx' (default: 600 secondi)

    Valori: 10–86400 secondi

    Il valore può essere specificato per 10 secondi. È arrotondato per difetto a 10. Esempio: Quando si specificano 38 secondi, vengono impostati 30 secondi.

Per questo parametro esistono altre due parole chiave disponibili:

  • INITIAL: Resets connection timeout, number of retries, and the retry interval to the default settings.

  • KEEP: Mantiene le impostazioni di comunicazione attuali.

Esempi:

  1. Imposta timeout di connessione: 30 secondi, numero di tentativi: 2, intervallo tentativi: 500 secondi: 'TOUT=30,RTRY=2,RTTM=500'

  2. Imposta timeout di connessione: 270 secondi, nessun tentativo, intervallo tentativi: 4900 secondi: 'TOUT=270,RTRY=0,RTTM=4900'

  3. Imposta timeout di connessione: 30 secondi, numero di tentativi: 25, intervallo tentativi: non modificare: 'TOUT=30,RTRY=25'

  4. Imposta timeout di connessione: non modificare, numero di tentativi: 25, intervallo tentativi: 3000 secondi: ',RTRY=25,RTTM=3000'

  5. Resetta alle impostazioni di default (timeout di connessione: 60 secondi, numero di tentativi: 3, intervallo tentativi: 600 secondi): 'INITIAL'

  6. Mantieni tutte le impostazioni attuali: 'KEEP'

Uscita

bError (BOOL)

Passa a TRUE nelle seguenti condizioni:

  • se un timeout della connessione viene superato

  • se un indirizzo IP non è valido

Quando si verifica un errore, controllare la variabile di sistema sys_iEthernetConnectionErrorCode per verificare il numero di codice di errore.

Note

  • Separa tutte le voci di parole chiave con una virgola, p.es. 'NAME=abcd,FROM=sender@server.com'

  • Il numero di caratteri per dati stringa non deve superare 256.

  • Questa istruzione non è disponibile nei programmi di interrupt.

  • Non modificare l'ordine delle parole chiave. Specificare le parole chiave e i loro parametri di impostazione nell'ordine in cui vengono elencati qui.

  • Una parte della sintassi del parametro può essere omessa. Le impostazioni non vengono modificate se i parametri vengono omessi parzialmente.

  • Omettendo la parte prima di una parola chiave specificata, omettere solo la parola chiave ma non la virgola "," che separa le parole chiave: ',RTRY=25,RTTM=3000'.

  • Omettendo la parte dopo una parola chiave specificata, omettere sia la virgola "," che la parola chiave: 'TOUT=30,RTRY=25'.

  • Non specificare la stessa parola chiave per più di una volta. se la stessa parola chiave è specificata più di una volta, si verifica un errore.

  • I caratteri maiuscoli e minuscoli possono essere utilizzati per gli operandi per i quali è possibile specificare una costante di carattere. "Abcd", "ABCD" e "abcd" sono sinonimi, ma i nomi del file fanno distinzione tra maiuscole e minuscole.

  • Prima di eseguire l'istruzione, assicurarsi che sys_bIsEthernetInitializing sia FALSE. sys_bIsEthernetInitializing passa a TRUE quando l'istruzione viene eseguita. Se si esegue l'istruzione mentresys_bIsEthernetInitializing è TRUE, si verifica un errore.

  • L'istruzione può essere eseguita solo se il flag di richiesta di trasferimento per l'impostazione di trasferimento specificata è "FALSE: Nessuna richiesta di trasferimento". Quando la richiesta di trasferimento è "TRUE: Richiesta di trasferimento", si verifica un errore di funzionamento.

  • Quando questa istruzione è stata eseguita correttamente, le variabili di sistema sys_bIsCarry e sys_iEthernetConnectionErrorCode vengono resettate.

  • Quando si verifica un errore, controllare la variabile di sistema sys_iEthernetConnectionErrorCode per verificare il numero di codice di errore.

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)
  • se un valore specificato per un parametro è fuori dall'intervallo utilizzabile.

  • se la stessa parola chiave è specificata più di una volta

  • Se il flag di richiesta di trasferimento per l'impostazione di trasferimento specificata è "TRUE: Trasferimento richiesto" quando l'istruzione viene eseguita.

  • se i numeri dei server non sono specificati in ordine crescente.

  • se l'istruzione viene eseguita in un programma di interrupt

  • se il numero di caratteri per dati stringa supera 256.

sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)
  • se un valore specificato per un parametro è fuori dall'intervallo utilizzabile.

  • se la stessa parola chiave è specificata più di una volta

  • Se il flag di richiesta di trasferimento per l'impostazione di trasferimento specificata è "TRUE: Trasferimento richiesto" quando l'istruzione viene eseguita.

  • se i numeri dei server non sono specificati in ordine crescente.

  • se l'istruzione viene eseguita in un programma di interrupt

  • se il numero di caratteri per dati stringa supera 256.

sys_bIsCarry (passa a TRUE per una scansione)
  • se l'istruzione viene eseguita con un indirizzo IP non corretto, sys_iEthernetConnectionErrorCode viene impostato su "1: Viene specificato un indirizzo IP non corretto"

  • se l'istruzione viene eseguita durante l'inizializzazione di Ethernet, sys_iEthernetConnectionErrorCode viene impostato su "11: Ethernet viene inizializzato".

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
		bSetConnectionError: BOOL:=FALSE;
		bSetConnection: BOOL:=FALSE;
		wErrorCode: WORD:=0;
		bSetConnectionOK: BOOL:=FALSE;
	END_VAR

Corpo del POU

Se bSetConnection passa da FALSE a TRUE e sys_bIsEthernetInitializing è impostato su FALSE, l'istruzione viene eseguita.

Corpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 10 ;
        NETWORK_BODY
B(B_VARIN,,'SV1~IPv4=192.255.2.10~PORT=21~OPEN=act~SSL',20,6,22,8,);
B(B_VARIN,,'USER=root~PASS=passwd',20,7,22,9,);
B(B_VARIN,,'TOUT=30~RTRY=2~RTTM=500',20,8,22,10,);
B(B_CONTACT,,bSetConnection,4,1,6,3,R);
B(B_VAROUT,,bSetConnectionError,36,6,38,8,);
B(B_CONTACT,,sys_bIsEthernetInitializing,17,1,19,3,N);
B(B_F,FP_HTTP_SET_CONNECTION!,,22,4,36,10,,?DEN?DsServer?DsLogin?DsCommunication?AENO?CbError);
L(1,2,4,2);
L(6,2,17,2);
L(19,2,19,6);
L(19,6,22,6);
L(1,0,1,10);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 4 ;
        NETWORK_BODY
B(B_CONTACT,,bSetConnectionError,4,1,6,3,);
B(B_F,E_MOVE!,,25,0,31,4,,?DEN?D?AENO?C);
B(B_VARIN,,sys_iEthernetConnectionErrorCode,23,2,25,4,);
B(B_VAROUT,,wErrorCode,31,2,33,4,);
L(6,2,25,2);
L(1,2,4,2);
L(1,0,1,4);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 3 ;
        NETWORK_BODY
B(B_CONTACT,,bSetConnectionError,4,1,6,3,N);
B(B_COIL,,bSetConnectionOK,28,1,30,3,);
L(6,2,28,2);
L(1,2,4,2);
L(1,0,1,3);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

If DF(bSetConnection) AND NOT sys_bIsEthernetInitializing then
    FP_HTTP_SET_CONNECTION(sServer := 'SV1,IPv4=192.255.2.10,PORT=21,OPEN=act,SSL',
                           sLogin := 'USER=root,PASS=passwd',
                           sCommunication := 'TOUT=30,RTRY=2,RTTM=500', 
                           bError => bSetConnectionError);
End_if;
If (bSetConnectionError) then
    wErrorCode := sys_iEthernetConnectionErrorCode;
Else
    bSetConnectionOK := True;   
End_if;

L'ultima revisione: 2024-04-25Feedback su questa paginaPanasonic hotline