Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 3,361 a 3,375 (di 4,441 totali)
  • Autore
    Post
  • in risposta a: Gestire un display alfanumerico con un modulo SlimLine #37751
    Sergio Bertana
    Amministratore del forum

    Stimolato dalle richieste eccomi con una FB che gestisce la scrittura su di un display MC21605GL6W-SPI della Midas acquistato da Farnell (Codice 221-8947) di cui allego il datasheet. Ho collegato il display al bus di estensione di un modulo CPU compact ARM7 (Vedi foto), utilizzando il seguente schema elettrico.

    Come si vede dal programma (Stampa e Download), il blocco funzione MC21605LCDMng gestisce il display connesso al bus, occorre indicare l’indirizzo I2C del display, e l’indirizzo della stringa da visualizzare. I primi 16 caratteri della stringa saranno visualizzati sulla riga superiore del display mentre i secondi 16 sulla riga inferiore.  Attivando la variabile Write viene eseguito il trasferimento della stringa sul display.

    Il FB viene eseguito da programma ladder ed il comando di Write è attivato sul fronte positivo di SysClock1000, quindi il display viene aggiornato ad ogni secondo. Il comando Write deve essere utilizzato per sincronizzare l’aggiornamento del display quando si varia la stringa da visualizzare, siccome l’aggiornamento del display avviene ciclicamente un carattere a loop di programma se vario la stringa mentre il display si aggiorna corro il rischio di visualizzare un messaggio composto da un pezzo del vecchio dato e da un pezzo del nuovo dato.Il programma potrà essere modificato per gestire display diversi da quello da me scelto magari con maggior numero di righe e colonne.

    in risposta a: Gestione pagine web dinamiche da parte dell’utente #37749
    Sergio Bertana
    Amministratore del forum

    Aggiungo links a questi posts che riportano esempi di utilizzo del web server con pagine dinamiche.

    In questo post è trattato l’invio di SMS direttamente da pagina web.
    In questo post è trattata la gestione di comandi e la visualizzazione di stati logici.

    in risposta a: Comandi e stati dispositivi da pagina web #37748
    Sergio Bertana
    Amministratore del forum

    Dovendo gestire il comando di uscite logiche e la visualizzazione dello stato di ingressi logici ho pensato di utilizzare un sistema Netlog III che dispone già nativamente di 12 ingressi ed 8 uscite digitali. Il programma può anche essere utilizzato sui dispositivi SlimLine ma il modulo CPU dispone solo di 2 ingressi e 2 uscite digitali, se te ne occorrono di più devi utilizzare i moduli di espansione.

    Nel programma (Stampa) di cui allego sia il programma sorgente che la pagina HTM di esempio (Download), ho definito due array di BOOL nella DB 100. Nell’array IStatus allocato ad indirizzo DB100.0 da programma ladder appoggio lo stato di 8 ingressi digitali, lo stato delle variabili dell’array OCommand allocato ad indirizzo DB100.2048 (Zona RETAIN) viene da programma ladder trasferito sulle 8 uscite digitali.

    Nella pagina web (Screenshot) ho creato una tabella con la possibilità di impostare sia gli 8 comandi che visualizzare gli 8 stati. Le utenze sono definite con l’etichetta “Utenza x” ed i comandi e lo stato con “Spento” ed “Acceso” ma aprendo il file IOByWeb.htm con un normale text editor è possibile modificare il testo per adattarlo alle proprie necessità, in questo post si trovano informazioni su come funziona il web server.

    Per trasferire la pagina web (File IOByWeb.htm) sul sistema fare riferimento a questo post, il sistema Netlog III è esattamente uguale ai sistemi SlimLine.

    in risposta a: Riportare alle impostazioni di default su ATC-1000 #37746
    Sergio Bertana
    Amministratore del forum

    Aggiungo a quanto detto nel post precedente che la ricerca dei dispositivi trova solo i dispositivi il cui indirizzo IP appartiene alla rete in cui è configurato il PC.

    in risposta a: Come mantenere in backup il valore di un counter #37745
    Sergio Bertana
    Amministratore del forum

    A scopo didattico ecco il sorgente ST di un nuovo FB che prevede anche il preset, l’ho chiamato CTUPreset.

      IF (CU AND NOT CUMemo) THEN
          IF (CV < PV) THEN CV:=CV+1; END_IF;
      END_IF;

      CUMemo:=CU; (* CU status memo *)
      IF P THEN CV:=Preset; END_IF; (* Preset command *)
      IF R THEN CV:=0; END_IF; (* Reset command *)
      Q:=(CV >= PV); (* Output management *)

    Come vedi ho aggiunto due ingressi P (BOOL) e Preset (UDINT) che permettono su comando di presettare il valore in uscita. Inoltre già che ho modificato ho anche modificato le variabili di conteggio in UDINT, in questo modo il counter può contare fino a 4294967295.

    Allego stampa e progetto sorgente, come vedi nel programma LD al primo loop forzo il preset del CTU con la variabile Pieces che è anche la variabile valorizzata con il valore CV del CTU. Naturalmente questa variabile andrà allocata in una zona RETAIN.

    in risposta a: Come mantenere in backup il valore di un counter #37744
    Sergio Bertana
    Amministratore del forum

    Il blocco funzione CTU è stato fatto in accordo alle specifiche della IEC61131, ma è sicuramente possibile modificarlo per ottenere quello che si desidera. Il blocco funzione CTU è realizzato in ST ecco il codice sorgente.

      IF (CU AND NOT CUMemo) THEN
        IF (CV < PV) THEN CV:=CV+1; END_IF;
      END_IF;

      CUMemo:=CU; (* CU status memo *)
      IF R THEN CV:=0; END_IF; (* Reset command *)
      Q:=(CV >= PV); (* Output management *)

    In merito alla tua domanda, non è possibile in nessun modo presettare il valore di CTU.CV in quanto si tratta di una variabile di uscita dal FB.

    in risposta a: Migrazione di vecchi programmi sviluppati con Remoter #37742
    Sergio Bertana
    Amministratore del forum

    Nell’ambiente di sviluppo Remoter erano disponibili alcune variabili che non sono più presenti in LogicLab, come ad esempio mi fai notare tu la PLCPulse1000. Nei programmi ladder la variabile si ottiene semplicemente utilizzando il contatto di tipo fronte positivo -]P[- con operando SysClock1000.

    Per quanto riguarda il linguaggio ST è ottima la tua soluzione.

    in risposta a: Come mantenere in backup il valore di un counter #37739
    Sergio Bertana
    Amministratore del forum

    Aggiungo ricordando che di questi rami è possibile farne tutti quelli che si necessitano, in questo post un esempio di più contatori con acquisizione del loro valore da Modbus.

    in risposta a: Come mantenere in backup il valore di un counter #37738
    Sergio Bertana
    Amministratore del forum

    Se usi il blocco funzione CTU, Counter Up per gestire il counter non puoi mantenere in backup il valore di conteggio CV. Esiste una soluzione molto semplice per realizzare contatori che mantengono il loro valore di conteggio allo spegnimento, basta utilizzare l’operando ADD, ecco un semplice ramo ladder che ne mostra l’uso.

    In pratica viene abilitato l’operando ADD sul fronte di attivazione di un ingresso digitale tramite l’operando -]P[-, ad ogni fronte di attivazione viene sommato 1 al valore della variabile Counter ed il risultato è salvato nella variabile Counter. Basterà definire la variabile con l’attributo RETAIN oppure allocarla nella memoria ritentiva (A partire da DB 100.2048) per mantenere il valore memorizzato allo spegnimento, allego un progetto per il download.

    in risposta a: Gestione librerie simboli in EasyBuilder #37737
    Sergio Bertana
    Amministratore del forum

    Il download del progetto è possibile soltanto se sei registrato, comunque la procedura è esattamente quella da tè descritta. Occorre importare l’immagine gif per ogni stato della lampada, questo vale sia per lampade Bit a 2 stati che per lampade Word a più stati.

    in risposta a: Comunicazione dati M2M con chiamata da linea analogica #37735
    Sergio Bertana
    Amministratore del forum

    Il modem analogico è connesso direttamente alla linea Telecom oppure passa tramite centralino, la linea Telecom è la classica linea analogica oppure è una linea VoIP ?

    Hai provato con un solo modem analogico, oppure ne hai provati più modelli, è da qualche anno che non faccio più questo tipo di connessioni ma quando eseguivo dei tests utilizzavo un modem USRobotics 56K V.92 Message Modem USR015668D ed il tutto funzionava senza problemi.

    in risposta a: Comunicazione dati M2M con chiamata da linea analogica #37733
    Sergio Bertana
    Amministratore del forum

    Nel caso indicato si parla di SIM M2M quindi sicuramente in grado di ricevere in CSD, il fatto che come indicato il modem GSM risponde alla chiamata in entrata sembrerebbe che abbia rilevato la chiamata come una chiamata CSD.

    La stringa NO CARRIER di solito compare se sono inviati dati sulla seriale del modem prima che il modem abbia terminato la negoziazione (Cioè prima di avere ricevuto la stinga CONNECT).

    in risposta a: Comunicazione dati M2M con chiamata da linea analogica #37732
    Sergio Bertana
    Amministratore del forum

    Nella domanda non è spiegato se il modem ricevente è impostato per rispondere in autoanswer (ATS0=xx) oppure se è una apparecchiatura connessa al modem in seriale a dare il comando di answer (ATA).

    Il comando autoanswer funziona solo per le chiamate DATI CSD. Per vedere che la chiamata entrante è una CSD DATI basta attivare l’estensione dei RING con AT+CRC=1, quindi si vedrà:

    REL ASYNC per i DATI oppure VOICE RING per le  chiamate vocali.

    Attenzione per le SIM DATI verificare che siano attive anche in ricezione, di solito le ricaricabili possono solamente trasmettere in CSD, oppure si usano delle SIM su abbonamento M2M.

    in risposta a: Home automation system with HMI connected to 3 SlimLine #37731
    Sergio Bertana
    Amministratore del forum

    It’s possible to use the SlimLine only as a remote I/O controlled by modbus and in this way all the logic can be done on the HMI. But this solution is a bad solution, the HMI can be programmed only by macro language and that language is non so easy. To manage logic it’s better to use the proper language, and this language is the ladder. So my suggestion is to manage all the logic into the SlimLine.

    Moreover the SlimLine is a PLC and has all the securities to manage automation tasks, that is not true for the HMI. The IEC61131 standard provides 5 different programming  languages that can be mixed in a unique program, so the IL and LD languages can be used for the logic, the ST language can be used for the calculation.

    in risposta a: Gestione librerie simboli in EasyBuilder #37729
    Sergio Bertana
    Amministratore del forum

    La tecnica è esattamente quella della lampada, scegli un oggetto LampBit e gli associ per i due stati (0 e 1) due immagini gif. Sullo stato 0 un gif con il ventilatore fermo (FanOff.gif) e sullo stato 1 un gif con il ventilatore acceso (FanOn.gif).

    Ti allego un progetto con la tecnica illustrata, come vedi nel progetto c’è una libreria di immagini MyLib.flb che per poter provare il progetto và copiata nella directory library di installazione EasyBuilder (Esempio C:Program Files (x86)EB8000library).

Stai visualizzando 15 post - dal 3,361 a 3,375 (di 4,441 totali)