Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumCome primo step ti consiglio di dare una occhiata a questo topic, non mi dici il tipo di stringa che lo strumento invia ciclicamente sulla porta seriale.
Posso immaginarmi un esempio di programma che acquisisce il valore di peso inviato da una bilancia, immagino una stringa del tipo “Peso:120.5 Kg”, ecco la stampa del programma ed il programma sorgente.
Come vedi dallo screenshot, inviando tramite un terminale seriale (Esempio il nostro programma Toolly) la stringa di peso il programma la cattura e trasferisce il valore di peso nella variabile.
Sergio Bertana
Amministratore del forumAggiungo la risposta alla domanda sulle variabili ritentive, come riportato in questo topic, le variabili RETAIN sono inizializzate al loro valore di INIT al caricamento del programma. Se vuoi che rimangano settate al loro valore al caricamento del programma devi mapparle sulla DB 100 ad indirizzi a partire da 2048.
Come vedi nel programma di esempio del post precedente ho mappato le variabili in quest’area, attenzione alle variabili a WORD devono essere mappate ad indirizzi divisibili per 2. Le variabili DWORD o REAL devono essere mappate ad indirizzi divisibili per 4.
Cancellazione memoria, proprio perché le variabili RETAIN allocate nella DB 100 non sono inizializzate al caricamento del programma, se utilizzate, conviene effettuarne l’azzeramento per evitare di averle valorizzate a valori indesiderati. Per eseguire la cancellazione, connettersi in Telnet al sistema e dopo il login arrestare l’esecuzione del programma utente PLCCommand -stop, eseguire la cancellazione della memoria PLCCommand -mc e poi rimandare in esecuzione il programma PLCCommand -go, (Screenshot).
Sergio Bertana
Amministratore del forumNel programma che hai scritto non vi è nessuna subroutine, nella normativa IEC non è possibile realizzare subroutines all’interno di un programma. Le funzioni o le FB devono essere definite come tali e solo dopo averle definite possono essere richiamate da programma.
Nel tuo programma se F01 è alto esegui un salto condizionato JMPC alla etichetta LblA dove incrementi T01 e poi con RET esci dal programma. Per eseguire una subroutine (Function in IEC 61131) devi definirla (Esempio AddValue) e poi eseguirla da IL. Allego la stampa del programma ed il codice sorgente.
LD F01
JMPCN Lbl (* Se F01 non attivo salto a label *)LD T01 (* Carico 1o operando funzione (Value) *)
AddValue 1 (* Eseguo funzione passando 2o operando (Increment) *)
ST T01 (* Memorizzo valore di ritorno da funzione *)Lbl:
LD T01
LT 1000
ST F02Sergio Bertana
Amministratore del forumIl problema credo sia nel modo in cui il PLC tratta le variabili impostate dall’HMI, non conosco il Micrologix, però in generale quando converti un numero in una stringa (Il modem necessita di una stringa) se non fissi il numero di cifre da stampare indicando che devono essere necessariamente precedute da “0”, sono convertite in ascii solo le cifre indicative e non gli “0” che le precedono.
Perché non usi l’oggetto introduzione Ascii sul terminale e gestisci l’intero numero come una stringa da 16 o più caratteri, potrai passare la stringa così definita direttamente al modem.
Ad esempio nei PLC della nostra serie SlimLine l’FB di gestione modem accetta il numero già come stringa Ascii (Topic). In
questo topicviene trattato l’invio di un SMS da pagina web, come vedi l’impostazione del numero di telefono è realizzata impostando una stringa Ascii.Sergio Bertana
Amministratore del forumHo realizzato un semplice progetto di Marcia/Arresto con un pannello di comando in WebVisu (Screenshot), il progetto può essere eseguito in simulazione direttamente sul PC.
Per eseguire il progetto in simulazione sul PC attivare il modo simulazione (Screenshot), eseguire login sul simulatore (Alt F8) e poi mandare in run il programma (F5). Come si vede dallo screenshot in funzionamento con il simulatore ha l’accesso alla interfaccia WebVisu solo dall’ambiente di sviluppo CODESYS, mentre se caricato sul sistema target permette di essere gestito da browser (Download progetto).
Sergio Bertana
Amministratore del forumLa funzionalità WebVisu è disponibile anche sulle versioni 2.3 di CODESYS, vi è solo una nota da tenere presente, dalle versioni di Java rilasciate da Oracle da gennaio 2014 per motivi di sicurezza, è possibile eseguire solo applets certificate. CODESYS gestisce le applets certificate dalla versione 2.3.9.43, quindi consiglio di utilizzare per i nuovi progetti una versione di CODESYS uguale o successiva a questa. Sul sito CODESYS alla data attuale è disponibile la versione 2.3.9.44.
Il nostro target ELSIST SlimLine Mps052 è predisposto per gerstire WebVisu, quindi per poter realizzare un progetto devi selezionare il nostro target (Topic).
Abbiamo aggiunto nella zona download il Manuale programmazione IEC61131-3 (Link). In questo manuale si trovano i riferimenti alla installazione dell’ambiente di sviluppo CODESYS ed i riferimenti alle funzioni e blocchi funzioni che forniamo con la nostra libreria.
Giugno 12, 2014 alle 10:39 am in risposta a: Informazioni sulla gestione delle ricette tramite terminale #38269Sergio Bertana
Amministratore del forumAggiungo un esempio di gestione ricetta che gestisce due uscite lampeggianti su di un modulo CPU della nostra serie SlimLine. L’esempio si compone di un programma sul modulo CPU dello SlimLine e due progetti terminale Weintek.
Uno dei progetti utilizza la tecnica delle ricette gestite con il registro indice, mentre nell’altro viene utilizzato l’oggetto RECIPE. Allego nota applicativa ed i programmi sorgenti.
Giugno 12, 2014 alle 8:29 am in risposta a: Informazioni sulla gestione delle ricette tramite terminale #38268Sergio Bertana
Amministratore del forumNel nuovo ambiente di sviluppo EasyBuilder Pro è stato aggiunto l’oggetto Recipe che permette di gestire le ricette in modo molto più agevole, inoltre ogni ricetta si appoggia ad un file di database ed è possibile in tal modo gestire ricette molto grandi (Fino a 10000 records).
Per illustrare il funzionamento dell’oggetto Recipe Weintek fornisce un progetto dimostrativo Recipe Transferring (Screenshot). Insieme al progetto viene fornita una spiegazione su come è stato realizzato (Download manuale) ed il progetto.
Attenzione! La visualizzazione del contenuto ricetta (Oggetto Visualizza ricetta) non funziona correttamente in simulazione su PC. Quindi se si vuole testare il programma occorre disporre di un terminale reale.
Giugno 10, 2014 alle 12:45 pm in risposta a: Informazioni sulla gestione delle ricette tramite terminale #38267Sergio Bertana
Amministratore del forumCon il programma EasyBuilder la gestione delle ricette era effettuata utilizzando il registro indice. Sono gestiti 16 registri indice che permettono di creare un offset sull’indirizzamento delle variabili, in questo modo è possibile creare pagine grafiche con tutte le variabili di ricetta e modificando il valore del registro indice (ad esempio con dei tasti Up/Down) è possibile scorrere all’interno di tutto il ricettario.
Aiutandosi con delle macro è possibile anche effettuare delle ricerche all’interno del ricettario per trovare la ricetta desiderata. Ecco un progetto di esempio (Screenshot) realizzato da Weintek che illustra questa tecnica (Nota applicativa, Download source code).
Sergio Bertana
Amministratore del forumE’ stato aperto un nuovo topic sull’argomento con i riferimenti ai nuovi modelli ed ai nuovi ambienti di lavoro EasyBuilder ed EasyBuilder Pro (Vai al topic).
Sergio Bertana
Amministratore del forumSi il poter eseguire sia una task in PLC che programmi scritti in C per Linux è uno degli obbiettivi. Purtroppo siamo rimasti un pò fermi sullo sviluppo del PLC perché abbiamo avuto problemi sulle librerie Real time.
Per poter eseguire tasks PLC in ambiente Linux è necessario rendere il sistema operativo Real time e questo vuol dire fare un grosso lavoro di riscrittura dei drivers di gestione delle periferiche.
Nel frattempo abbiamo sviluppato la versione compatibile CoDeSys del modulo CPU SlimLine che è basato su un sistema operativo Real time sviluppato da Beck.
Giugno 7, 2014 alle 7:44 am in risposta a: Connessione alimentazione sui dispositivi Ubiquiti #38263Sergio Bertana
Amministratore del forumL’adattatore POE 802.3af fornisce in uscita una tensione di 16Vdc @ 0.8A quindi a meno che la tua telecamera non funzioni anche con tensione minima di 16 Vdc questo adattatore non và bene. Puoi eventualmente utilizzare un Active POE injector da 24Vdc. Non sono un esperto di POE ma tratto da Wikipedia riporto quanto segue:
L’alimentatore compatibile 802.3af applica inizialmente una tensione compresa tra 2,7V e 10,1V e misura la resistenza da 25K che dovrebbe trovarsi in uscita. Se la resistenza di riferimento non viene trovata fornisce un’alimentazione di 24V (considera l’utilizzatore non compatibile 802.3af).
Quindi se il tuo switch POE è compatibile con la specifica 802.3af dovrebbe già automaticamente alimentare la telecamera a 24Vdc senza inserire nessun adattore tra i due.
Sergio Bertana
Amministratore del forumCon l’attuale versione dello SlimLine non è possibile gestire l’estrazione e l’inserimento della SD Card a sistema acceso, il limite è imposto dal connettore della SD Card che non ha il pin di Card detect.
Stiamo valutando un nuovo connettore che ha anche il pin di Card detect (E’ il connettore che utilizziamo sulla versione per CoDeSys), quindi è possibile che in un prossimo futuro sia implementata anche la possibilità di estrarre ed inserire la SD Card a sistema acceso.
Maggio 30, 2014 alle 4:15 pm in risposta a: Sistemi di rilevazione temperatura/umidità tramite rete LAN #38259Sergio Bertana
Amministratore del forumLa soluzione più semplice che mi sento di proporre è basata sul Termometro IP, abbinato ad un sensore di temperatura ed umidità. Il dispositivo ha la possibilità di visualizzare tramite pagina web i valori di temperatura ed umidità e permette di impostare soglie di attivazione allarme per l’invio di una eMail (Topic). Uno dei due valori (Temperatura o Umidità) può anche essere visualizzato in forma grafica (Topic). Per l’invio di SMS occorre appoggiarsi ad un servizio di eMail2SMS (Topic).
Volendo approcciare una soluzione più industrial, è possibile abbinare un nostro modulo CPU SlimLine che acquisisce i valori da uno o più termometri IP via SNMP (Topic). Collegando al modulo CPU un pannello operatore touch screen è possibile gestire la visualizzazione dei valori, impostare le soglie di allarme, ed effettuare la visualizzazione in trend dei valori. Alcuni modelli di HMI permettono anche l’invio di eMail estendendo le possibilità di segnalazione gestite dal termometro IP. Naturalmente l’impiego di questi prodotti comporta la realizzazione di un programma e questo se da una parte aumenta la complessità del sistema dall’altro ne estende moltissimo le possibilità.
Per quanta riguarda la storicizzazione, è possibile utilizzare il programma PDMS che si connette direttamente al termometro IP (Topic). Utilizzando il sistema SlimLine con il terminale è possibile salvare i dati storici sia nel file system dello SlimLine (Topic) che sul terminale (Topic).
Per la parte di domanda relativa al Low-Cost tutti i prodotti citati hanno costi relativamente bassi, comunque consiglio di autoinviarsi una quotazione dalle pagine del sito (
Topic).Sergio Bertana
Amministratore del forumSui PLC S7-1200 come si evince anche dalla Guida connessioni PLC (Scaricabile dal ns sito) per gestire variabili REAL è predisposto il tipo Real.
Sui PLC S7-300 non vi è un tipo definito per le variabili REAL, ma si utilizzano i tipi che operano su variabili DW (32 bit). Quindi utilizzeremo il tipo MD se si tratta di variabili allocate in area merker, o il tipo DBDn se si tratta di variabili allocate in DB. Naturalmente nel formato di visualizzazione occorrerà poi definire che si tratta di una variabile Float a 32 bit.
Naturalmente si ricorda che le variabili a 32 bit (Sia DW che REAL) devono essere allocate nel PLC ad indirizzi divisibili per 4.
-
AutorePost