Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 2,386 a 2,400 (di 4,367 totali)
  • Autore
    Post
  • in risposta a: Gestire un ciclo pausa/lavoro con timers #39188
    Sergio Bertana
    Amministratore del forum

    E’ corretta l’allocazione in memoria che hai fatto (Di 1 in 1 per i BOOL e dii 4 in 4 per le REAL) non capisco perchè ti dia errore LogicLab. Ecco lo screenshot della allocazione fatta per prova.

    in risposta a: Realizzazione di un programmatore orario #39186
    Sergio Bertana
    Amministratore del forum

    L’argomento programmatore orario è stato ampiamente trattato in questo topic dove trovi il codice sorgente della funzione di controllo orari. Credo che seguendo le info riportate nel topic puoi avere lo spunto necessario per risolvere la tua necessità.

    in risposta a: Gestire un ciclo pausa/lavoro con timers #39184
    Sergio Bertana
    Amministratore del forum

    Direi che più che il timer di tipo eTP si potrebbero utilizzare due timer di tipo eTON in cascata il primo esegue il computo del tempo di pausa ed il secondo det tempo di lavoro. Il contatto chiuso del secondo timer attiva il primo così che terminato il tempo di lavoro tutta la catena riparte.

    Ma perchè in alternativa non utilizzare il FB OnOffCycle_v1 (Estratto manuale) che già fà tutto questo addirittura con tempi random. Se non ti servono i tempi random puoi definire uguali i valori minimo e massimo di ogni temporizzazione.

    Comunque se per tua curiosità vuoi vedere come è fatto il timer eTP eccoti la stampa ed la libreria con il programma sorgente.

    in risposta a: Collegamento termoresistenze Pt100/Pt1000 #39183
    Sergio Bertana
    Amministratore del forum

    Come spiegato prima occorre chiudere sempre il circuito tra Iexc e Isense, quindi se togli una termorestenza devi cablare correttamente la serie, ma questo non vuol dire che devi cortocircuitare gli ingressi del modulo.

    Gli ingressi del modulo rimangono a disposizione per un qualsiasi altro tipo di acquisizione.

    in risposta a: Configurare le impostazioni di rete (Indirizzo IP) #39181
    Sergio Bertana
    Amministratore del forum

    Rispondo in ritardo al post ma il tempo non è passato nell’ozio… Stiamo rilasciando la nuova versione del sistema operativo Sfw184b000, ed in questa nuova versione pregna di novità, in risposta a richieste come questa abbiamo aggiunto la funzione SysOSIDValue (Estratto manuale) che permette di accedere alle informazione di sistema tra cui anche all’indirizzo IP.

    in risposta a: Ottimizzazione del controllo PID #39178
    Sergio Bertana
    Amministratore del forum

    Sulla regolazione PID sono stati scritte fiumi di parole ma poi in pratica i corretti valori delle costanti di regolazione sono sempre da trovarsi sperimentalmente in base al tipo di impianto su cui si opera.

    Per capire e fare esperimenti sulla regolazione PID trovi nel forum anche un programma che ne permette la simulazione su PC con il simulatore SimuLab (Topic). Ma questo è un puroi esercizio didattico, nel tuo caso ti posso dare alcuni consigli di massima su come ottimizzare la regolazione PID.

    Io inizio sempre lavorando di sola proporzionale, le correzioni I e D servono poi come rifinitura, il tuo problema sembrerebbe essere un overshoot della temperatura. In pratica nel riscaldare l’estrusore continui a fornire energia termica per troppo tempo e quindi lo sovrariscaldi. I rimedi possono essere:

    Aumentare la banda proporzionale PBand, in questo modo all’avvicinarsi della temperatura al set point il regolatore PID inizia a regolare diminuendo l’energia termica fornita.

    Diminuire la correzione proporzionale KP, in questo modo ad errori di temperatura piccoli si ha un minore apporto di energia termica il che tende ad evitare gli overshoots.

    Ricordo che con la sola proporzionale non è possibile azzerare l’errore di temperatura (La P lavora solo in presenza di errore). Quindi quando con la sola proporzionale la regolazione è accettabile, lavorando di integrativa potrai fare in modo di azzerare l’errore avvicinando sempre più il valore di temperatura reale al set point.

    Su regolazioni molto lente come nel tuo caso la derivativa di solito non ha alcun effetto pratico, anzi molte volte è dannosa.

    in risposta a: Conversione di programmi da LogicLab in CODESYS #39177
    Sergio Bertana
    Amministratore del forum

    Lo statement TO_UDINT di LogicLab esegue un cast sul dato, in pratica indica al compilatore di assumere quel dato come se fosse un UDINT (unsigned a 32 bits), esiste tutta una serie di operatori di cast dei dati per i diversi tipi di dati previsti.

    Mentre in LogicLab non occorre definire il tipo dati di partenza per eseguire il cast, CODESYSY ha previsto la definizione anche del tipo dati originale, quindi nel tuo caso trattandosi di un dato USINT dovrai utilizzare lo statement USINT_TO_UDINT. Ecco la funzione STTimeSwitch come si presenta in CODESYS.

    IF NOT(Enable) THEN STTimeSwitch:=FALSE; RETURN; END_IF;
    DSecs:=DateTime MOD 86400; (* Day seconds*)
    STTimeSwitch:=(DSecs >= ((USINT_TO_UDINT(HOn)*3600)+(USINT_TO_UDINT(MOn)*60)+SOn)) AND (DSecs < ((USINT_TO_UDINT(HOff)*3600)+(USINT_TO_UDINT(MOff)*60)+SOff));

    Allego per il download il file export della funzione CODESYS.

    in risposta a: Connessione terminale con SlimLine CODESYS #39176
    Sergio Bertana
    Amministratore del forum

    Diciamo che hai fatto una gran confusione… Intanto hai utilizzato il protocollo Modbus che non è supportato di default dal modulo CPU CODESYS. Se vuoi utilizzare il Modbus devi inserire nel tuo programma il FB di gestione Modbus slave (Topic).

    Con i sistemi CODESYS si utilizza il protocollo CODESYS Automation Alliance che è gestito nativamente dal sistema operativo dello SlimLine CODESYS. Quindi nella definizione del PLC locale devi scegliere il protocollo corretto (Screenshot). Dal pannello è possibile accedere a tutta l’area MD, dovrai quindi mappare in quest’area le tue variabili, nel mio esempio ho mappato un BOOL una DWORD ed un REAL ecco come:

    VAR_GLOBAL
     MyDword AT %MD100 : DWORD;
     MyReal AT %MD104 : REAL;
     MyBool AT %MX108.0 : BOOL;
    END_VAR

    E’ anche possibile da pannello accedere all’area I/O logici ma ricordo che lo SlimLine esegue l’immagine di processo solo se nel programma vi è un riferimento al banco di I/O. Ecco perchè nel mio esempio ho inserito questa riga di programma:

    Dummy:=%QX32.0 AND %IX32.0;

    Ecco come nel progetto terminale mi sono riferito alle variabili SlimLine (Screenshot). Per aiutarti nello sviluppo allego un progetto di esempio con il programma SlimLine CODESYS ed il programma HMI, il programma HMI si può testare anche su PC con il simulatore terminale in EasyBuilderPro (Download programmi).

    in risposta a: Sensore HWgroup Temp-485 Box2 #39175
    Sergio Bertana
    Amministratore del forum

    Il sensore HWgroup Temp-485 Box2 utilizza una comunicazione seriale RS485 multidrop con protocollo seriale ASCII. Fino a 32 dispositivi possono coesistere su di una rete RS485 ognuno indirizzabile con il proprio indirizzo.

    Come si evince dal manuale (Estratto manuale) basta inviare la stringa ascii T[address]I (Per il prodotto con indirizzo A la stringa è TAI) per ricevere il valore di temperatura con una stringa *[address][temp]. Per i dispositivi SlimLine LogicLab è disponibile il blocco funzione HTempBox per l’acquisizione del valore di temperatura ed umidità (Topic).

    Non esiste un analogo blocco funzione per i dispositivi SlimLine CODESYS ma vista l’estrema semplicità del protocollo credo non vi siano particolari problemi nello svilupparlo da parte degli utenti. Nel forum trovi qualche esempio che potrebbe esserti utile (Vedi topic 1, topic 2).

    in risposta a: Uscite analogiche su modulo espansione I/O analogico #39174
    Sergio Bertana
    Amministratore del forum

    Il FB SysSetAnOut come tutti i FB ha una uscita di Fault controllando l’attivazione dela uscita con la funzione SysGetLastError è possibile acquisire l’eventuale errore di esecuzione tra cui l’errore di valore di Mode errato (Vedi estratto manuale).

    in risposta a: Uscite analogiche su modulo espansione I/O analogico #39172
    Sergio Bertana
    Amministratore del forum

    Aggiungo una precisazione molto importante, essendo l’impostazione del range di funzionamento eseguita da programma non è possibile alla accensione del sistema (Prima che il programma vada in esecuzione) determinare il valore erogato in uscita dal modulo.

    Quindi se l’uscita del modulo è utilizzata per il comando di attuatori (Azionamento motori, servovalvole idrauliche ecc.) occorre garantire l’abilitazione al funzionamento dell’attuatore tramite una uscita logica aggiuntiva. Solo per le uscite logiche è garantita la certezza dello stato (Sempre disattivo) alla accensione del sistema.

    in risposta a: Uscite analogiche su modulo espansione I/O analogico #39171
    Sergio Bertana
    Amministratore del forum

    Il circuito di uscita del modulo di espansione I/O analogico è basato sul convertitore AD5412 della Analog Devices (Vedi datasheet). Come vedi viene utilizzato un convertitore D/A a 12 bits in questo topic trovi altre informazioni. Per utilizzarlo fare riferimento al  blocco funzione SysSetAnOut, il range di uscita è impostabile con il parametro Mode. Quindi a differenza della sezione A/D non occorre eseguire nessun settaggio hardware (Ponticelli) per passare da un range di funzionamento ad un altro.

    Sono previsti 4 modi di funzionamento in tensione.

    DA_VOLT_0_10, Range di uscita da 0 a +10 Volts (Risoluzione 2.44 mV/Bit)
    DA_VOLT_0_5, Range di uscita da 0 a +5 Volts (Risoluzione 1.22 mV/Bit)
    DA_VOLT_M10_10, Range di uscita da -10 a +10 Volts (Risoluzione 4.88 mV/Bit)
    DA_VOLT_M5_5, Range di uscita da -5 a +5 Volts (Risoluzione 2.44 mV/Bit)

    Sono previsti 2 modi di funzionamento in corrente.

    DA_CURR_0_20, Range di uscita da 0 a 20 mA (Risoluzione 4.88 uA/Bit)
    DA_CURR_4_20, Range di uscita da 4 a 20 mA (Risoluzione 3.90 uA/Bit)

    Scelto Mode il modulo eroga il valore in uscita impostato nel parametro Value del FB SysSetAnOut la scelta del range corretto in base alla propria necessità và fatta unicamente per sfruttare al meglio i 12 bits di risoluzione.

    in risposta a: Aggiornamento firmware (Upgrade) pannelli operatore #39170
    Sergio Bertana
    Amministratore del forum

    Come riportato nel post precedente il firmware viene fornito a richiesta, devi inviare una mail di richiesta a support. Per eseguire l’upgrade del firmware su cMT-SVR, visto che il prodotto non ha un display proprio, ecco le operazioni da eseguire:

    Estrarre il firmware dallo zip che ti invieremo e caricalo su una SDCard (formattata FAT32).
    Inserire la SDCard a modulo spento e mettere ad ON lo switch 2.
    Tenendo collegato il cavo Ethernet al PC che esegue il programma cMT Viewer.
    Accendere il modulo attendere da 2 a 5 minuti, sul cMT Viewer si torna a vedere il modulo.
    Spegnere il dispositivo, azzerare il dip switch ed estrarre la SDCard.

    in risposta a: Collegamento termoresistenze Pt100/Pt1000 #39168
    Sergio Bertana
    Amministratore del forum

    Hai descritto perfettamente il cablaggio (meglio di quanto potessi fare io). Purtroppo ci si perde un pò tra i colori dei fili ed i segnali, meglio fare riferimento ad uno schema piuttosto che ad una descrizione. Ma in generale le termoresistenze vanno poste in serie ed alimentate in corrente, ecco perchè si esce da Iexc e si chiude la serie su Isense, questo serve a garantire una corrente costante nelle termoresistenze.

    La tensione ai loro capi è acquisista in differenziale con gli ingressi AIxx+ ed AIxx-, se il cavo di connessione tra la termoresistenza e la scheda è molto lungo si consiglia di utilizzare una connessione a 4 fili (In pratica i due fili rossi sono già connessi ad un capo, occorre aggiungere un filo bianco in parallelo a quello esistente). In questo modo si compensa il “rumore” elettrico grazie all’impiego di cavi twistati e si compensa la resistenza dei cavi di collegamento separando i cavi di alimentazione da quelli di lettura tensione.

    Ricordo che anche solo utilizzando un ingresso in termocoppia si perde l’utilizzo dell’ingresso xI04+/xI04- dal modulo dove la termocoppia è acquisita. L’ingresso è utilizzato internamente per la compensazione d el giunto freddo. Ecco quindi che nel caso di più termocoppie conviene acquisirle tutte dallo stesso modulo (Lato A o Lato B).

    in risposta a: Abilitazione EasyAccess 2.0 con Activation Card #39165
    Sergio Bertana
    Amministratore del forum

    Il pannello cMT-SVR è dotato di due porte Ethernet, la Ethernet port 1 è impostata per acquisire l’indirizzo IP da server DHCP, la porta Ethernet port 2 ha indirizzo IP di default 192.168.100.1.

    Quindi la soluzione più semplice è connettere un PC (Configurato con la stessa classe di indirizzi IP) alla porta 2 e tramite browser accedere all’IP del pannello. In alternativa è possibile tramite l’App cMT Viewer eseguire la visualizzazione di tutti i CMT-SVR presenti nella rete, puntandosi su quello desiderato aprire il browser sulla sua pagina web.

    Dalla pagina web del prodotto nel menù EasyAccess 2.0 è possibile visualizzare l’Hardware Key da utilizzarsi per la registrazione (Screenshot).

Stai visualizzando 15 post - dal 2,386 a 2,400 (di 4,367 totali)