Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumNel caso da te descritto puoi anche utilizzare una sola porta seriale ed un solo adattatore ammesso che i due TAG iButton non siano mai inseriti contemporaneamente.
Se nessuno occupa la camera il lettore esterno può leggere il TAG, se l’ID è accettato comanda l’apertura porta. Se nel programma memorizzi l’ID del TAG potrai modificare il tipo di lettura da broadcast alla lettura dell’ID.
In questo modo quando il TAG viene posto nel lettore interno alla camera verrà acquisito e potrà comandare l’attivazione dei servizi. Se un’altro utente appoggia il suo TAG sul lettore esterno questo non verrà letto perchè ha un ID diverso da quello che il programma stà acquisendo.
Per semplicità potresti anche continuare ad eseguire una lettura in broadcast, tanto un eventuale altro cliente che appoggiasse il suo TAG sul lettore esterno, è vero che bloccherebbe la lettura del TAG interno ma si può immaginare che non vedendo aprirsi la porta desista.
Sergio Bertana
Amministratore del forumIn linguaggio FBD è praticamente uguale al linguaggio LD, quindi ho preferito realizzare un esempio in linguaggio ST dove ho anche predisposto la possibilità di passare in GET alla richiesta valori variabili e di acquisire dalla stringa ritornata il valore del risultato ed appoggiarlo su di una variabile REAL (Ecco la stampa del programma).
Allego per il download la versione attuale del programma di esempio Ptp119b100 con il nuovo program (Download programma).
Sergio Bertana
Amministratore del forumHo convertito il programma con il nuovo LogicLab 4 (Download programma). Nel nuovo FB ModemSMSSend_v2 il numero di telefono ed il testo del messaggio sono passati per pointer (@USINT) e non per stringa. Quindi all’interno della FB SMSMux si creano errori nelle assegnazioni quali ad esempio:
SMSSend.Number:=Number1;
Perchè cerchi di assegnare ad una variabile pointer una stringa. Ho ripreso il progetto modificando il FB convertendo tutte le variabili stringa in puntatori. Come vedi nel programma ladder per passare una stringa ad un puntatore devi utilizzare lo statement ADR() che carica nel puntatore l’indirizzo di allocazione della variabile.
Vedo dal report di errore che hai tutto in maiuscole attento è meglio mettere nei programmi il tick di selezione Case sensivity, e poi se non vuoi perdere tempo nel trasferire ad ogni download anche i sorgenti, scegli Before disconnection (Screenshot).
Sergio Bertana
Amministratore del forumTramite questo adattatore è possibile connettere una rete 1-Wire alla porta seriale dei moduli CPU dello SlimLine. La rete 1-Wire supporta il multidrop è possibile connettere più dispositivi sulla stessa rete. Il problema è quando si utilizza un lettore iButton, perchè in questo caso non conoscendo l’ID del TAG appoggiato al lettore occorre effettuare una lettura di tipo broadcast che permette di gestire un unico dispositivo sulla rete.
Quindi nel tuo caso puoi avere un solo lettore per ogni seriale del modulo CPU, abbiamo clienti che hanno realizzato controlli di camere per alberghi con questa soluzione. Hanno utilizzato un modulo CPU compact Ethernet con 6 ingressi e 4 uscite digitali e sulla seriale hanno collegato il lettore iButton. Tutti i moduli sono poi interconnessi in rete Ethernet tra di loro e con un modulo principale per la gestione completa delle camere.
Per il lettore magnetico presso HomeChip puoi trovare questo modello.
Sergio Bertana
Amministratore del forumApprofitto del topic per aggiungere che il FB HTTPGetPage è il motore di una nuova libreria che abbiamo sviluppato per alcuni clienti per gestire l’Internet Of Things utilizzando il servizio REST. Stiamo attualmente lavorando su questa libreria che speriamo di poter offrire al più presto, intanto viene rilasciata in modalità beta ai clienti che ne fanno richiesta.
Ecco uno screenshot della pagina storico del sito REST realizzato per un cliente che gestisce frigoriferi industriali, dove si vede un report con la visualizzazione della temperatura cella frigorifera relazionata a quella dell’evaporatore.
Sergio Bertana
Amministratore del forumNel nuovo firmware è stata completamente ridisegnata la gestione del networking con l’aggiunta delle FB per gestire connessioni sia client che server in UDP e TCP. E’ stato introdotto anche il supporto DNS per la risoluzione degli URLs. Questo ha permesso di realizzare tutta una serie di nuovi FB dedicati al networking, consiglio di consultare la nuova versione del manuale.
Il FB HTTPGetPage permette di agire come un comune browser acquisendo pagine web da server HTTP, nel manuale c’è già un esempio in linguaggio ladder che si connette ad uno script PHP postato su un server pubblico. Nell’esempio attivando un ingresso digitale viene eseguita la richiesta di una pagina sul sito Altervista, sono passati in GET 2 parametri Dividend e Divisor.
La pagina richiesta è uno script PHP che esegue la divisione tra i valori passati. E’ possibile testare il funzionamento dello script direttamente da qui http://www.slimline.altervista.org/Mdp095a000/Ptp119b000/Division.php?Dividend=500&Divisor=10.
Se lo script è attivo viene ritornata una pagina con: The result is: 50. E’ ovvio che si può testare lo script modificando i valori nell’indirizzo del browser ottenendo risultati diversi. Lo scopo del FB è proprio questo appoggiarsi da programma SlimLine su di un servizio web nel cloud per fare eseguire operazioni.
Novembre 24, 2015 alle 9:30 am in risposta a: Pannello MT8150XE e connessione con Siemens S7-400 #39207Sergio Bertana
Amministratore del forumLa subnet mask fà parte delle impostazioni di rete del pannello (Screenshot). Nei settaggi della comunicazione con i vari PLC dovrai solo definire l’indirizzo IP del PLC. Và da sè che il pannello deve essere configurato per appartenere alla stessa rete di tutti i PLC con cui dialoga.
Sergio Bertana
Amministratore del forumCerto che è possibile, come vedi i vari numeri di telefono sono memorizzati in variabili stringa che ho dimensionato a 16 caratteri. Se tu allochi queste variabili nella DB 100 che è accessibile via Modbus dal terminale potrai scrivere e leggere i numeri con un oggetto inputazione ASCII del terminale (Screenshot). Alcune note importanti.
Se vuoi che i numeri siano ritentivi devi allocarli a partire da DB 100.2048, siccome il pannello operatore accede per variabili WORD (16 Bits) occorre che la dimensione delle stringhe messaggio sia a multipli di 2. Questo anche per mantenere l’allocazione su indirizzi pari (Non si possono allocare variabili WORD su indirizzi dispari).
Attenzione per definizione una variabile di tipo STRING[16] occupa 17 bytes (Il byte aggiuntivo è il codice tappo di terminazione stringa “0”), quindi per mantenere il multiplo binario ti conviene definire stringhe di dimensione 15. Tanto un numero di telefono più il codice di nazione è minore di 15 caratteri.
Sergio Bertana
Amministratore del forumIn merito all’utilizzo della libreria Modem troverai nel forum molti esempi, ma ti ho anche preparato il programma SMSWCounter con esempio specifico che soddisfa la tua richiesta. Ecco lo screenshot del programma in esecuzione con attivo Toolly che visualizza la console di spionaggio (Topic), questo è molto comodo per risalire ad eventuali problemi (Download programma).
Sergio Bertana
Amministratore del forumLa libreria modem (Ora viene distribuita la eLLabModemLib) permette di gestire un modem connesso alla porta seriale del modulo CPU. Nella libreria ci sono le funzioni ed i blocchi funzioni per gestire invio e ricezione messaggi SMS e connessioni HTTP, ricordo che è comunque possibile utilizzare la libreria liberamente in modo test per 30 Min. Riguardo alla licenza di utilizzo è possibile avere come dicevi tu due possibilità che sono trattate in questa FAQ.
MID: Questo tipo di protezione permette di assegnare al modulo CPU un ID specifico del cliente per la sprotezione di alcune librerie. Tutti i moduli che il cliente acquista con questo ID potranno utilizzare le librerie. Inoltre il MID personalizza il modulo CPU permettendo al cliente di proteggere anche i suoi programmi. In questo modo il cliente ha il controllo anche delle parti di scorta, perchè il programma funziona solo sui moduli CPU che hanno il corretto MID. Il MID si ordina con l’acquisto del modulo perchè và inserito da noi. Se hai già il modulo a tue mani devi reinviarcelo per la programmazione.
DID: Questo tipo di protezione permette di abilitare il funzionamento delle FB abbinate su un determinato modulo CPU. Esiste un DID per ogni FB che và inserito nel programma con la funzione SysPCodeAccept. In questo caso basta ordinare il DID che ti viene inviato per eMail. Per permettere di avere lo stesso programma su diversi moduli i l codice DID si può inserire anche da pagina web in alternativa alla funzione SysPCodeAccept.
Sergio Bertana
Amministratore del forumVisto che nei posts di questo topic si faceva riferimento alla possibilità di conoscere il MAC address del dispositivo, ritengo utile ricordare che dalla versione SFW184B000 è stata introdotta la funzione SysOSIDValue che permette di accedere a variabili di sistema operativo. Tra le variabili che è possibile leggere vi è anche il MAC address del dispositivo.
Sergio Bertana
Amministratore del forumCerto che è possibile definire testi su più righe all’interno di etichette ecco nello screenshot come è possibile fare. Allego anche il progetto EasyBuilder Pro per il download.
In questo topic viene trattata una domanda molto simile.
Sergio Bertana
Amministratore del forumIntanto diciamo che con una regolazione On/Off è difficile evitare gli overshoots, il sistema tende sempre un po ad andare olte i valori di set point, solo una regolazione PID permette di evitare questo problema. Ma per realizzare una regolazione PID dovresti disporre di pompe e/o valvole gestibili analogicamente (Velocità/Portata variabile).
Comunque è buona la soluzione di creare una banda morta attorno al valore di SetPoint (Tu hai fissato ±2 gradi) ma si può avere un valore variabile da impostare sperimentalmente in base ai test reali sull’impianto. Aumentando la banda morta potrai arrestare l’azione prima di raggiungere il SetPoint lasciando alla inerzia termica il compito di portare la temperatura al valore di SetPoint senza avere overshoot.
Ecco lo screenshot in simulazione su SimuLab di un semplice riscaldatore a doppio effetto con banda morta (Download programma).
Novembre 20, 2015 alle 1:42 pm in risposta a: Pannello MT8150XE e connessione con Siemens S7-400 #39197Sergio Bertana
Amministratore del forumI pannelli operatore Weintek non supportano la connessione in Profibus. Però puoi connetterli con i PLC Siemens sia in MPI (Via porta seriale) sia in Ethernet.
Ti ricordo che poi grazie all’EasyAccess ed al Pass-Trough potrai accedere da remoto via Internet sia al pannello che al PLC, potendo così effettuare il debug e la riprogrammazione.
Sergio Bertana
Amministratore del forumNaturalmente è conveniente creare una funzione per gestire l’isteresi. In questo programma (Stampa) ho realizzato due funzioni per la gestione della isteresi una scritta in ST e l’altra in FBD (Download programma).
-
AutorePost