Vai al contenuto

Comporre numero di telefono da variabili numeriche

Home Forum Programmazione IEC 61131 (LogicLab) Comporre numero di telefono da variabili numeriche

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Autore
    Post
  • #35208
    Roberto
    Partecipante

    Utilizzo la libreria eModemLib per gestire un modem connesso alla CPU SlimLine. Vorrei poter definire il numero di telefono partendo da variabili numeriche. In pratica vorrei avere.

    Una variabile UINT di definizione prefisso internazionale (2 cifre)
    Una variabile UINT di definizione prefisso rete cellulare (3 cifre)
    Una variabile UDINT di definizione numero telefono (9 cifre)

    Esiste un esempio di come realizzare il programma.

    #37239
    Sergio Bertana
    Amministratore del forum

    Utilizzando la funzione embedded SysVarsnprintf è possibile costruire una variabile stringa di definizione numero telefonico partendo da variabili numeriche che ne definiscono i singoli campi. Ecco nel dettaglio il programma da realizzare:

    (* Eseguo controllo su limite valori variabili. *)
    IF (ICode > 99) THEN PhoneNr:=’Error’; RETURN; END_IF;
    IF (ACode > 999) THEN PhoneNr:=’Error’; RETURN; END_IF;
    IF (Number > 999999999) THEN PhoneNr:=’Error’; RETURN; END_IF;

    (* Print the variable values, merging them into a single string. *)

    i:=SysVarsnprintf(ADR(PhoneNr), 3+1, ‘+%d’, UINT_TYPE, ADR(ICode));
    i:=SysVarsnprintf(ADR(PhoneNr[LEN(PhoneNr)]), 3+1, ‘%d’, UINT_TYPE, ADR(ACode));
    i:=SysVarsnprintf(ADR(PhoneNr[LEN(PhoneNr)]), 9+1, ‘%d’, UDINT_TYPE, ADR(Number));

    Al termine della esecuzione la variabile PhoneNr di tipo STRING[32] conterrà il numero di telefono con il codice internazione definito in ICode, il prefisso in ACode ed il numero in Number. Se ICode=39, ACode=335, Number=123456 avremo come risultato la stringa +39335123456. Allego stampa e programma con FB in codice sorgente.

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Devi essere connesso per rispondere a questo topic.