Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumE’ 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.
Sergio Bertana
Amministratore del forumL’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à.
Sergio Bertana
Amministratore del forumDirei 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.
Sergio Bertana
Amministratore del forumCome 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.
Novembre 16, 2015 alle 7:55 am in risposta a: Configurare le impostazioni di rete (Indirizzo IP) #39181Sergio Bertana
Amministratore del forumRispondo 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.
Sergio Bertana
Amministratore del forumSulla 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.
Novembre 16, 2015 alle 7:19 am in risposta a: Conversione di programmi da LogicLab in CODESYS #39177Sergio Bertana
Amministratore del forumLo 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.
Sergio Bertana
Amministratore del forumDiciamo 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_VARE’ 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).
Sergio Bertana
Amministratore del forumIl 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).
Novembre 13, 2015 alle 9:28 am in risposta a: Uscite analogiche su modulo espansione I/O analogico #39174Sergio Bertana
Amministratore del forumIl 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).
Novembre 13, 2015 alle 7:58 am in risposta a: Uscite analogiche su modulo espansione I/O analogico #39172Sergio Bertana
Amministratore del forumAggiungo 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.
Novembre 13, 2015 alle 7:26 am in risposta a: Uscite analogiche su modulo espansione I/O analogico #39171Sergio Bertana
Amministratore del forumIl 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.
Novembre 12, 2015 alle 11:01 am in risposta a: Aggiornamento firmware (Upgrade) pannelli operatore #39170Sergio Bertana
Amministratore del forumCome 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.Sergio Bertana
Amministratore del forumHai 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).
Novembre 12, 2015 alle 7:54 am in risposta a: Abilitazione EasyAccess 2.0 con Activation Card #39165Sergio Bertana
Amministratore del forumIl 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).
-
AutorePost