Vai al contenuto
PLC Forum


Ingresso in programmazione - evento programmabile


Antares70

Messaggi consigliati

Ciao a tutti

Lavorando come programmatore di plc e come sviluppatore .net su pc ho scelto INIM per la sua interessante capacità di personalizzazione.

Ho allestito un sistema sul banco di prova formato da una centrale 1050, una scheda vocale smartlogos30 , 3 tastiere Joy/gr ed 1 tastiera Joy/Max, tutto aggiornato alla versione firmware 6.03 con software smartleague 3.5.1.2

 

Immaginiamo di voler allarmare una finestra completa di scuro collegando un sensore magnetico "no" sullo scuro ed uno sempre "no" sul telaio della finestra, collegati entrambi alla centrale come sensore doppio con EOL e tamper.

Il sensore finesta configurato come zona generica, immediata, area 1 mentre il sensore dello scuro come immediata, autoescludibile, area 2 per garantire l'inserzione dell'allarme anche a scuro aperto e finestra chiusa.

L'intenzione è di segnalare sulla tastiera Joy/Max tramite messaggio vocale l'apertura dello scuro mentre la finestra è chiusa, cioé l'eventuale effrazione dello scuro dell'eventuale malintenzionato di una finestra sempre chiusa (es. taverna) ad allarme disattivato.

Se chiamo il contatto dello scuro E0200 e quello della finestra E0201, ho pensato di impostare il temporizzatore T0000 come:

- "Avvio temporizzatore su eventi On"

- tempo t=2 sec. (ho notato che i temporizzatori hanno uno scarto di +- 1 sec. quindi ho impostato il minor tempo possibile)

- Evento on: Tempo reale di zona (dello scuro) - Fronte = Attivazione

- Evento reset: Tempo reale di zona (della finestra) - Fronte = Entrambi

E un'equazione del tipo:

( ( E0401 OR E0402 ) XOR V0001 ) AND ( ( E0201 XOR V0001 ) AND T0000 )

dove E0401 = inserimento effettivo area 1 (scuro)

e E0402 = inserimento effettivo area 2 (finestra)

 

In parole povere, riproduci il msg solo quando nessuna delle due zone è allarmata e solo se la finestra è chiusa mentre lo scuro di apre.

 

Fin qui tutto bene, il messaggio in effetti si sente quando lo scuro si apre a finestra chiusa altrimenti no.

Il problema di pone all'uscita della programmazione se lo scuro è aperto e la finestra è chiusa, il sistema al primo avvio esegue l'operazione logica e riproduce il messaggio.

 

Sui plc di solito viene messo a disposizione uno o due bit di start appositamente progettati per gestire il primo avvio o riavvio; spulciando tra le variabili a disposizione e nel report da smartleague ho trovato il flag "Ingresso programmazione" che in uscita viene riportato come "ripristino".

Collegando un temporizzatore attivato dopo un ritardo di n secondi a questa variabile pensavo di ottenere una sorta di ritardo (qualche secondo) per gestire proprio questa situazione ma, stranamente, il temporizzatore non "sente" questa variabile e il sistema continua a riprodurre il messaggio ad ogni uscita da programmazione.

Ho provato allora a impostare un evento programmabile minimale tanto per testare l'effettivo utilizzo del flag "ingresso programmazione" ma sembra non sia possibile, mi confermate?

So che sembra un esercizio didattico ma credo che un sistema di questo livello, che permette operazioni complesse sui singoli segnali, debba essere compreso per bene vista l'importanza del compito assegnato (sicurezza).

Alla fine ho testato il tutto utilizzando lo scenario di partenza (scenario 1) come flag; in questo modo ho risolto il problema del messaggio all'uscita dalla programmazione ma sembra un ripiego per niente elegante, possibile non esista una soluzione ad hoc?

 

Inoltre volevo chiedere se esiste qualche info tecnica sull'utilizzo delle equazioni e della sintesi audio sulla tastiera; ad esempio ho notato che le equazioni non possono superare un certo numero di operatori (circa 8), che i temporizzatori non hanno una priorità di set / reset particolare e che l'audio risente molto del campionamento a 8 bit interno (in qualità buona) che impedisce di utilizzare suoni pcm per gli eventi invece della sintesi pur buona del brava "Paola" (SAPI 5.1).

 

Infine, un piccolo appunto sul software smartleague che in meno di due giorni si è bloccato almeno una decina di volte a causa di equazioni troppo lunghe; una volta fatto l'upload di un'equazione troppo lunga la centrale sembra accettare i parametri ma un eventuale test mostra che la l'equazione non è stata correttamente ricevuta e un eventuale download per verificarne l'esattezza crasha il programma.

Spero siano bug corretti nella prossima versione, attendo con impazienza di vedere le nuove implementazioni.

 

Grazie a tutti per le eventuali risposte

 

Link al commento
Condividi su altri siti


Ciao Antares,

una premessa:

i contatti a riposo di sensori e contatti magnetici sono NC (magnete avvicinato) e non possono essere NA (o NO) in quanto non funzionerebbe il bilanciamento, ...giusto per chiarire e dato che hai utilizzato la Doppia zona.

--------

Gli eventi programmabili Inim non hanno niente a che vedere, per complessità, con la programmazione di un plc e sono più semplici da eseguire di quello che può sembrare in quanto vengono offerti tutti gli eventi di sistema da integrare con i principali operatori + Temporizzatori e Contatori, inoltre l'attuazione dell'evento programmato prevede anche l'uso di macro-eventi e azionamenti di scenari di uscite utili per la domotica.

L'importante è, nell'equazione, non superare gli 8 operatori anche se non precisato nel manuale. Comunque basta usare più eventi programmabili per elevarne il numero proporzionalmente. 

Quando l'equazione è errata o si supera il numero degli operatori il software avvisa con un messaggio di incongruenza e non mi risultano crash del programma, anzi a volte suggerisce la soluzione per parentesi errate.

....A proposito del software, hai detto di usare smartleague 3.5.1.2, ma con questa versione devi usare il firmware 6.02. Se vuoi usare il 6.03 devi farti dare dal tuo Distributore la vers. Beta di smartleague per smartliving. La vers. Beta serve per testare il Cloud ma allo stesso tempo per gestire tutte le variazioni effettuate nella 6.03. Finito il test dovrebbe uscire sul sito la vers. 3.5.1.3 definitiva di smartleague. 

 

Per quanto riguarda la registrazione di messaggi, oltre ad usare le Sapi 5 puoi benissimo caricare un file wave esterno con tutti i "rumoracci che vuoi" da riprodurre al posto del messaggio o in aggiunta, quindi il tuo appunto è irrilevante.

 

Domani parleremo delle tue equazioni che, a prima vista non sembrano corrette, ..sempre che io abbia capito quello che intendi ottenere, anzi ti dico subito quello che ho capito:

- Vuoi che quando inserisci le due Aree, sulla tastiera venga riprodotto un messaggio che ti avvisi che lo scuro è aperto e la finestra è chiusa  e nessun messaggio a sistema Disinserito. Correggimi se necessario.

 

Forse non ho capito in quanto il messaggio sembra ridondante perché se all'inserimento lo scuro è aperto hai la segnalazione in tastiera che ti invita a fare un inserimento forzato o desistere, e se fai l'inserimento forzato, subito dopo avrai il triangolo giallo lampeggiante di avvertimento della zona Scuro esclusa.

Infine

Quote

Alla fine ho testato il tutto utilizzando lo scenario di partenza (scenario 1) come flag; in questo modo ho risolto il problema del messaggio all'uscita dalla programmazione ma sembra un ripiego per niente elegante, possibile non esista una soluzione ad hoc?

certo che esiste una soluzione ad hoc, ....basta fare una programmazione corretta.

 

 

 

Link al commento
Condividi su altri siti

Mi spieghi perché hai usato l'XOR col Valore " ( E0201 XOR V0001 ) ", cosa vuoi ottenere ?

Sull'uso del Valore hai un esempio nel manuale/eventi programmabili.

 

ps. per uno studio completo delle capacità del sistema Inim, avrei comprato anche una Alien/S.

Link al commento
Condividi su altri siti

Ciao Panter,

in primo luogo grazie per le risposte.

Quote

Quando l'equazione è errata o si supera il numero degli operatori il software avvisa con un messaggio di incongruenza e non mi risultano crash del programma, anzi a volte suggerisce la soluzione per parentesi errate.

Ok per gli avvisi ma un paio di volte ho ricevuto un'eccezione per superamento indici quando ho inserito 12 operatori.

I crash li ottengo sistematicamente quando "scrivo" su centrale e poi "rileggo" una equazione con più di 8 operatori. Per sistemare la cosa basta cancellare l'equazione e "scriverla" su centrale, una sorta di clear che però non viene evidenziato all'atto della scrittura. Strano non sia prevista una verifica dei dati anche se magari comporta un tempo di caricamento più lungo.

Quote

Se vuoi usare il 6.03 devi farti dare dal tuo Distributore la vers. Beta di smartleague per smartliving

He he, adesso ti svelo che il mio distributore... sono io :whistling:

Ho acquistato questi (primi) prodotti Inim da un distributore online che non tratta software grazie alla mia p.iva e sto imparando a conoscere il prodotto nei ritagli (pochi) di tempo che mi permettono i miei impegni professionali e familiari... per fortuna è la mia passione

Per un po' avevo accarezzato l'idea di costruire un sistema antifurto-domotico tramite le mille board disponibili (stm32, android, plc, ecc.) ma poi ho capito che un tema così delicato non poteva essere affrontato prototipando da zero quindi... forza inim.

Quote

oltre ad usare le Sapi 5 puoi benissimo caricare un file wave esterno con tutti i "rumoracci che vuoi"

Purtroppo per "rumoracci" intendevo proprio la riproduzione di file wave caricati... vengono distorti proprio per la bassa qualità di campionamento.

Ad es. ho inserito un tono puro a 3Khz per segnalare l'apertura dello scuro ed è stato riprodotto come la sintesi fm dei moog di una volta, con tutta una serie di sovramodulazioni e di tick che alteravano drasticamente il suono. Invece ho notato che la sintesi TTS, forse per la presenza naturale di picchi nella voce umana, risente meno di questo problema, tutto qua.

Se mi dici che è strano comincio a preoccuparmi della qualità della mia tastiera più che del software... :wacko:

Quote

- Vuoi che quando inserisci le due Aree, sulla tastiera venga riprodotto un messaggio che ti avvisi che lo scuro è aperto e la finestra è chiusa  e nessun messaggio a sistema Disinserito. Correggimi se necessario.

No, in effetti non sono stato molto chiaro. Voglio che a sistema disinserito venga riprodotto un messaggio se si apre lo scuro mentre la finestra è chiusa.

Questo per evitare che l'apertura dello scuro da parte dell'utente riproduca il msg... il msg deve essere riprodotto solo quando l'apertura avviene dall'esterno.

In termini logici direi che il fronte negativo del reed dello scuro & lo stato a riposo del reed della finestra -> messaggio di avviso

l'equazione l'ho complicata con il temporizzatore perché non voglio sentire il msg quando io utente apro la finestra, apro lo scuro, chiudo la finestra.

Da quello che ho capito solo i temporizzatori/contatori analizzano il fronte del segnale di comando mentre l'equazione lavora con lo stato del segnale (0 o 1), giusto?

Da qui la scelta del temporizzatore.

Quote

Mi spieghi perché hai usato l'XOR col Valore " ( E0201 XOR V0001 ) ", cosa vuoi ottenere ?

Avevo capito che era l'unico modo per usare un NOT.

Quello che intendo è: permetti il resto dell'equazione SOLO se la finestra è chiusa. E qui devo considerare che lo stato di "finestra chiusa" la centrale me lo da invertito, cioé come sensore non in allarme = 0

Quindi finestra chiusa = E0201XOR V0001

Certo che un pochino più semplice poteva essere fatto ma in effetti è simile alla logica dei plc "tedeschi" :wallbash:

 

P.S: rileggendo il mio primo post sembra quasi che mi lamenti.. per carità, mi sembra che inim sia uno dei pochi che permetta queste personalizzazioni quindi :worthy:

 

Ciao

 

Dimenticavo...

Quote

ps. per uno studio completo delle capacità del sistema Inim, avrei comprato anche una Alien/S

Mi intriga di più la scheda webserver ma sento voci di un consistente prossimo aggiornamento hardware...

Link al commento
Condividi su altri siti

Vista così non avevo al momento pensato alla traduzione automatica del NOT (XOR V0001) che non uso da parecchio tempo, infatti preferisco usare di più i temporizzatori che hanno disponibili i fronti di attivazione, ripristino e entrambi.

 

Ora ho capito quello che volevi fare (e ad aree disinserite) ma, in fin dei conti trovo utile che il messaggio venga riprodotto anche dopo aperto lo scuro volontariamente e dopo aver richiuso la finestra.

Comunque anche se non trovo la procedura di grande utilità, lo reputo un buon esercizio.

Non credo che la Lan/g subisca modifiche hardware (mi informerò) ma sicuramente un aggiornamento del firmware dopo aver concluso il test sul Cloud.

Capisco che se ci tieni all'audio, tu non voglia la Alien ma..., operativamente (e con le mappe grafiche) c'è un gap enorme rispetto alle Joy.

Buon lavoro con Inim.

 

ps. tieni sempre presente che la 6.03 esplica tutte le sue funzioni solo con Smartleague/smartliving versione Beta

 

ps1. non ho pensato che ti lamentassi ma che ancora non avevi preso confidenza con la programmazione. 

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...