Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 3,061 a 3,075 (di 4,374 totali)
  • Autore
    Post
  • in risposta a: Chiarimenti sull’utilizzo dei blocchi funzione FB #38115
    Sergio Bertana
    Amministratore del forum

    Intanto ti consiglio di utilizzare la nuova FB ModbusMaster, e per acquisire gli ingressi logici del modulo CPU ti consiglio l’FB SysGetPhrDI. I blocchi funzione FB devono essere istanziati, cioè deve essere definito un oggetto del tipo del blocco funzione che si vuole utilizzare, e questo mi sembra tu l’abbia fatto hai definito ad esempio l’oggetto MyModbus di tipo ModbusMaster.

    Ma la task di Boot è eseguita una sola volta al run del programma PLC quindi può essere utilizzata per inizializzare le variabili (E’ inutile il controllo IF SysFirstLoop THEN) ma non può essere utilizzata per eseguire fisicamente l’FB. Quando scrivi MyModBus(Enable:=TRUE); stai eseguendo il codice presente nel blocco funzione ed avendo messo questa chiamata nella task di Boot lo hai eseguito una sola volta.

    Quindi ricapitolando la chiamata alla esecuzione del blocco funzione deve essere messa in una task eseguita ciclicamente (Fast, Slow o Back). E qui devi suddividere l’esecuzione dei blocchi funzione in base al loro specifico uso, la FB ModbusMaster andrà eseguita nella task Back, mentre la FB IOEncoder ipotizzando di dover acquisire un encoder fino a 400 Hz andrà eseguita nella task Fast.

    in risposta a: Utilizzare le macro subroutines per la scalatura valori #38114
    Sergio Bertana
    Amministratore del forum

    Aggiungo al topic un progetto fornito da Weintek che spiega il funzionamento di questa tecnica (Screenshot). Nel file zip del progetto vi è anche una breve spiegazione in pdf del funzionamento (Download progetto).

    in risposta a: Utilizzare le macro subroutines per la scalatura valori #38113
    Sergio Bertana
    Amministratore del forum

    Vediamo ora come utilizzare queste macro subroutines, ecco un semplice programma che esegue la conversione tra gradi Celsius e gradi Fahrenheit (Download programma). Ho inserito due oggetti di Introduzione numerica, su uno di essi (Quello riferito ai gradi Celsius) ho definito la scalatura con Macro subroutines (Screenshot).

    In lettura il valore letto dalla LW 10 viene passato alla subroutine f2c di conversione da Fahrenheit a Celsius ed il ritorno della subroutine viene visualizzato.

    In inputazione il valore inputato dal terminale viene passato alla subroutine c2f di conversione da Celsius a Fahrenheit a Celsius ed il ritorno della subroutine viene scritto nella variabile LW 10.

    L’oggetto riferito ai gradi Fahrenheit visualizza il valore della LW 10 senza effettuare alcuna scalatura. Come si vede dallo screenshot inputando un valore in gradi Celsius ne ho la conversione in gradi Fahrenheit e viceversa.

    in risposta a: Utilizzare le macro subroutines per la scalatura valori #38112
    Sergio Bertana
    Amministratore del forum

    Creando un nuovo progetto EasyBuilderPro vengono già automaticamente definite una serie di macro per la conversione delle temperature. Per definire le macro subroutines agire sul menù Tools -> Macro e poi sul tasto Librerie (Screenshot). Riporto ad esempio la macro subroutine di conversione da Fahrenheit a Celsius:

    sub float f2c(float f)
      float c
      c=(f-32)*5/9
      return c
    end sub

    Ed ecco la subroutine di conversione da Celsius a Fahrenheit:

    sub float c2f(float c)
      float f
      f=c*9/5+32
      return f
    end sub

    Come si vede ogni subroutine ha un parametro in ingresso ed un parametro in uscita.

    in risposta a: Differenza visualizzazione caratteri tra PC e terminale #38111
    Sergio Bertana
    Amministratore del forum

    Ricordo che EasyBuilderPro può gestire svariati fonts di caratteri, è anche possibile realizzare dei proprii font personalizzati (Topic), bisogna però ricordarsi di scaricare sul pannello anche i fonts insieme al progetto. Nella finestra di download progetto occorre abilitare il tick Files font (Screenshot).

    Il tuo problema credo però derivi dalle impostazioni della scheda grafica sul tuo PC, con il tasto destro sul desktop scegliere il menù Personalizza -> Schermo e controlla la dimensione in DPI dei caratteri sul tuo schermo (Screenshot). L’impostazione deve essere al 100%, in caso contrario Windows visualizza i caratteri con un formato diverso da quello utilizzato sul pannello e quindi avrai il difetto che lamenti.

    in risposta a: Programma per conteggio energia elettrica consumata #38110
    Sergio Bertana
    Amministratore del forum

    Ho realizzato un programma che esegue il calcolo della potenza consumata, per testarlo ho inserito anche una semplice acquisizione di potenza istantanea tramite un convertitore corrente/tensione. Il convertitore connesso ad un ingresso analogico dà un valore di 10 Volts a 30 Ampere di corrente istantanea. Come si vede dalla stampa del programma, eseguo l’acquisizione della corrente istantanea tramite un ingresso analogico, e calcolo la potenza istantanea (Tralascio il CosPhi).

    Ora basta semplicemente sommare la potenza istantanea consumata ad ogni unità di tempo per avere un totalizzatore di potenza consumata espresso in kW/H. Naturalmente la variabile totalizzatore TPower dovrà essere di tipo RETAIN (Download programma).

    in risposta a: Utilizzo del modulo UPS DC DR-UPS40 per backup #38109
    Sergio Bertana
    Amministratore del forum

    Si certo questa sarebbe la soluzione che io adotterei, un unico alimentatore al posto di tanti alimentatori separati, utilizzando un MDR-60-24 avresti i 60 Watt a te necessari. L’alimentatore connesso alla uscita dell’UPS terrebbe alimentate le tue apparecchiature per il tempo di autonomia dell’UPS.

    in risposta a: Utilizzo del modulo UPS DC DR-UPS40 per backup #38107
    Sergio Bertana
    Amministratore del forum

    Per caricare le batterie occorre fornire una tensione più alta di quella nominale (Ecco il perché dei 28 Volts). Il collegamento tra le batterie è una normale serie -[Batteria 1]+ -[Batteria 2]+, i due poli estremi della serie vanno ai morsetti +/- dell’UPS. Quando le batterie alimentano l’impianto la tensione partirà da quella di carica (Potrebbe essere 28 V e poi scende con la scarica).

    Volendo costruire un piccolo castello puoi connettere in uscita sulla linea a 28 Volts dei diodi al silicio in serie tra di loro per avere la caduta di 4 volts a te necessaria (Servono 6 diodi).

    Ma ora io mi chiedo perché dimenticare il DR-UPS40, batterie, alimentatore ed utilizzare un piccolo UPS commerciale che ha già tutto inserito al suo interno, certo genera una tensione di 220 Vac ma puoi connettere in uscita i normali alimentatori di cui sono provvisti i dispositivi che devi alimentare.

    In questo caso perderei la vendita ma un cliente ben consigliato è un cliente che certamente prima o poi ritorna.

    in risposta a: EasyBuilderPro in simulazione con un PLC Siemens S7 #38105
    Sergio Bertana
    Amministratore del forum

    Effettivamente non possono essere gestite variabili in strutture composte da strutture. Si potrebbero però usare le DB di istanza configurando il file FunctionBlock.txt che si trova nella cartella di installazione EasyBuilderPro.

    Description: When importing TAG using S71200, the mapping from Function Block to Data Block must be user-defined first. FB address range 0-65535, DB address range 0-65535, users can modify the mapping using the following structure: Ex.FB200 Map DB10000.

    Anche se nel PLC si può scegliere per le varie DB se lavorare con “accesso diretto” o “senza accesso diretto”, nel pannello Weintek non è possibile definire questa selezione, occorre scegliere se utilizzare un modo oppure l’altro.

    in risposta a: Utilizzo del modulo UPS DC DR-UPS40 per backup #38103
    Sergio Bertana
    Amministratore del forum

    Soluzione alternativa, alimentare tutto a 12 Volt, in tal caso serve un alimentatore da almeno 5 A, nella nostra gamma di alimentatori serie TCL abbiamo su ordinazione un modello adatto. Utilizzerai un solo accumulatore a 12 Volts da collegare direttamente in parallelo all’alimentatore, naturalmente per avere la stessa autonomia l’accumulatore deve avere il doppio di capacità (Almeno 4 A/H).Per ricaricare l’accumulatore l’alimentatore và tarato per avere una tensione in uscita di 14 Volts, in questo caso devi fare i conti con la tensione minima di alimentazione, mano mano che l’accumulatore si scarica la tensione scende e potresti dopo un pò trovarti sotto i 12 Volts nominali.

    in risposta a: Utilizzo del modulo UPS DC DR-UPS40 per backup #38101
    Sergio Bertana
    Amministratore del forum

    Iniziamo con il fare un conto della potenza totale necessaria all’intero sistema sommando le potenze di tutti i dispositivi utilizzati (PC 55,2 W, Convertitore 0,9 W, Cronotermostato 0,7 W, Switch 3 W) in totale circa 60 Watt che a 24 volts sono 2,5 A.Come alimentatore potresti abbinare il modello MDR-60-24, mentre per l’accumulatore potresti fare una serie di 2 accumulatori al piombo da 12 V da 2 Ampere (Vedi datasheet) che ti garantirebbero oltre 30 minuti di energia il loro costo sul mercato è meno di 10 € l’una. L’unica considerazione da fare è sulla tensione di alimentazione, come vedi dal datasheet l’accumulatore per ricaricarsi necessita di una tensione massima di circa 14 Volts che in totale fanno 28 Volts. Quindi occorre verificare se tutte le tue apparecchiature accettano questo range di tensione massima. Come vedi dallo schema applicativo del UPS DC DR-UPS 40, le batterie vengono ricaricate dall’alimentatore quindi in presenza di tensione di alimentazione esse sono ricaricate. Naturalmente come espresso prima per avere la ricarica devi tarare l’alimentatore per avere una tensione in uscita a vuoto (Senza carico) di 28 Volts.

    in risposta a: Punto interrogativo (?) accanto al programma in LogicLab #38099
    Sergio Bertana
    Amministratore del forum

    Rileggendo il tuo post mi viene da aggiungere un’altra considerazione, per utilizzare gli oggetti (Funzioni ed FB) delle varie librerie non devi importare l’intera libreria ma devi solo importare gli oggetti che ti servono (Dai una lettura a questo topic).

    in risposta a: Punto interrogativo (?) accanto al programma in LogicLab #38098
    Sergio Bertana
    Amministratore del forum

    Durante il download del progetto nel PLC viene scaricato il file di codice .cod, il file .ppjs è il file di progetto sorgente e contiene tutto il programma compresi i commenti e tutte le librerie. Più aggiungi programma o commenti (I commenti non generano codice) aumentano le dimensioni del file .ppjs e 100Kb sono del tutto normali.

    Il tuo problema è che nel progetto hai scelto di eseguire il download sul target anche del programma sorgente .ppjs insieme con il codice, e questo dilata notevolmente i tempi di download oltre a depositare i tuoi sorgenti nel target.

    Solitamente i clienti non desiderano lasciare i sorgenti nel target (Anche se criptati), se desideri farlo per avere la possibilità quando ti connetti al target di avere anche i programmi sorgenti (Nel caso non li avessi con te sul PC), ti consiglio di eseguirne il download solo al momento di sconnetterti dal sistema e non ad ogni download del programma. Questa impostazione si trova nel menù Project -> Options (Screenshot).

    in risposta a: EasyBuilderPro in simulazione con un PLC Siemens S7 #38096
    Sergio Bertana
    Amministratore del forum

    Il formato Data/Ora di Siemens non è supportato dal pannello, EasyBuilderPro importa le variabili perché le trova come tag ma non funzionano. Per sopperire a tale limite, occorre copiare nel programma PLC la struttura data/ora in variabili “normali” e poi leggerle e scriverle da pannello operatore.

    Il Siemens S7 1200 a quanto mi risulta può essere programmato o completamente in simbolico o in assoluto il mix tra i due non è possibile, non capisco che limite possa aver trovato in uno o nell’altro modo, anche perché è possibile definire un numero ampio di variabili mnemoniche.

    in risposta a: Blocco casuale di un HMI con monitor oscurato #38095
    Sergio Bertana
    Amministratore del forum

    Ti posso suggerire un semplice test per verificare che non sia una banalità già successa ad altri clienti. Potresti inserire nella pagina 4 (Common Window) un oggetto di visualizzazione LW 9050 Current base window ID. Questo permette di vedere sempre la pagina attualmente visualizzata dal pannello.

    Ti consiglio questo per capire se per caso il pannello si porta sulla visualizzazione di una pagina non definita, perché in tal caso la pagina sarebbe completamente nera e non avendo oggetti al suo interno anche la comunicazione si arresta. Essendo la Common Window sempre attiva si vedrebbe quale è la finestra attivata, potrebbe succedere che per qualche motivo il tuo programma si porta alla visualizzazione di una pagina non definita.

    In caso il pannello non visualizzasse effettivamente nulla, allora si tratta di un guasto devi compilare l’RMA e ritornarci il pannello per la sostituzione e/o riparazione.

Stai visualizzando 15 post - dal 3,061 a 3,075 (di 4,374 totali)