Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumRicordo che tra le librerie per i sistemi SlimLine esiste una libreria eModemLib appositamente dedicata alla gestione del modem, il FB ModemCore gestisce tramite una porta seriale RS232 il modem. Nella stessa libreria come si vede dal manuale programmazione esistono FB per la ricezione e l’invio di SMS e per la connessione in GPRS. Questa libreria è stata testata con il modem BGS2 della Gemalto, ma almeno per la parte di inizializzazione e gestione SMS quasi tuti i modem dovrebbero utilizzare gli stessi comandi AT e quindi non è escluso che funzioni anche con il tuo modem. Però se vuoi puoi sviluppare tu il programma che gestisce i comandi AT proprio come abbiamo fatto noi nella libreria. Quindi alla prima domanda, si puoi utilizzare anche la versione Lite del modulo CPU, ed accedere alla pagina web tramite porta USB. Le pagine web sono liberamente modificabili con un qualsiasi editor HTML (Topic).Per quanto riguarda la gestione modem, credo che tu ti stia riferendo alla Modem machine, questo è un laboratorio, abbiamo realizzato una versione base utilizzando una CPU con ethernet perché molto più pratica nella connettività rispetto alla USB, ed utilizzando un access point WiFi puoi accedere anche da tablet e smartphone. Ma è possibile caricare il programma su qualsiasi CPU anche la Lite. Il vantaggio è che ti trovi già buona parte della struttura programma e pagine web già pronte e le puoi adattare alle tue esigenze come è stato fatto in questo caso (Topic).
Sergio Bertana
Amministratore del forumSi tutta la DB 100 è accessibile dal modbus nativo gestito dal sistema opearativo, quindi ci sono a disposizione 2048 words da DB 100.0 a 100.4094, a cui corrispondono gli indirizzi modbus da 40000 a 42047. Le WORD allocate dopo l’indirizzo 100.2048 sono ritentive allo spegnimento.
Ricordo che si può inserire nel proprio programma uno o più gestori di modbus slave con il FB ModbusSlave, e definire aree di memoria al di fuori della DB100 accessibili da modbus su indirizzi modbus definibili nella istanza della FB.
Altra libreria free di modbus trovatra in rete e la “free-dotnet-modbus“.
Sergio Bertana
Amministratore del forumIl problema del modem lasciato acceso ed inattivo per molto tempo che viene disconnesso dalla rete è un problema atavico, questo problema è superato dal ns FB. Il blocco funzione di gestione modem controlla tramite comandi AT l’effettiva connessione del modem alla rete, e, se non connesso, ne forza la riconnessione. La libreria eModemLib_E200 ha introdotto un ulteriore robustezza su questa funzione di controllo.
Il problema della memoria piena è anche lui superato dal ns FB, è controllata la ricezione dei messaggi SMS da parte del modem, che dopo averli letti provvede a cancellarli, lasciando sempre spazio nel buffer di ricezione.
Diverso è il problema della ricezione dei messaggi concatenati, nel caso di ricezione di alcuni messaggi lunghi (ed i messaggi dell’operatore telefonico sono tipicamente così) si poteva creare un errore nella lettura del messaggio che bloccava il funzionamento del FB. Questo problema è stato risolto dalla versione eModemLib_E100 della libreria modem.
Consiglio, per testare il funzionamento del modem in applicazioni critiche di solito si utilizza un heartbeat con la funzione di chiamata. Si esegue dal modem una chiamata ad un numero prefissato dove un operatore o un sistema automatico controlla il CLIP del chiamante. Questa soluzione è senza costi, il sistema chiamato non risponde alla chiamata e la mancata ricezione della chiamata per un tempo superiore al prestabilito genera una condizione di allarme. Per un controllo automatico è possibile utilizzare un sistema SlimLine e modem.
Marzo 4, 2015 alle 4:33 pm in risposta a: Acquisizione valore di resistenza da ingresso analogico #38781Sergio Bertana
Amministratore del forumNel cortocircuito a massa non vi sono problemi. Gli ingressi del convertitore A/D sono protetti su ingressi analogici di valore superiore al fondo scala, vi è una resistenza serie di protezione quindi non ti preoccupare se il valore supera 1,25 Volts.
Non so che valore di resistenza avrai tra i due elettrodi al variare del livello dell’acqua nel serbatoio, serebbe interessante sapere l’esito delle tue prove. Attenzione al loop di massa, il modulo PCB122 ha gli I/O analogici riferiti al negativo di alimentazione quindi si può creare un loop di massa con l’acqua del serbatoio.
Diverso sarebbe utilizzare il modulo espansione I/O analogico, in cui gli I/O analogici sono isolati galvanicamente dalla alimentazione. In pratica tutti i canali di ingresso sono riferiti tra di loro, tutti i canali di uscita sono riferiti tra di loro, ma vi è isolamento galvanico tra gli ingressi le uscite e l’alimentazione.
Sergio Bertana
Amministratore del forumPer la tua domanda sulla acquisizione del valore di resistenza ho postato la tua domanda in questo topic.
Marzo 4, 2015 alle 2:57 pm in risposta a: Acquisizione valore di resistenza da ingresso analogico #38778Sergio Bertana
Amministratore del forumVi sono dei topic specifici che riguardano l’acquisizione del valore di resistenza (Topic). La funzione ResistorValue è stata realizzata appositamente per l’acquisizione di una resistenza da un ingresso A/D tramite un partitore resistivo. Dovendo acquisire valori così elevati di resistenza non puoi entrare con l’ingresso settato per 0÷10 Volts, in quanto la relativamente bassa impedenza in ingresso falsa troppo la lettura.
Ti consiglio di utilizzare l’acquisizione A/D differenziale a 1,25 Volts ed un canale D/A per generare i volts di alimentazione di un partitore resistivo. Visto l’interesse della problematica anche per altri clienti ho realizzato un programma dimostrativo che tratta esattamente la tua applicazione (Manuale, Programma sorgente).
Sergio Bertana
Amministratore del forumIntanto si ipotizza una comunicazione monodirezionale tra l’apparecchiatura e le due stampanti, perchè se così non è non è possibile collegare due stampanti all’unica uscita.Se il dialogo è monodirezionale posiamo utilizzare tre radiomodem D5, uno connesso all’apparecchiatura e due connessi alle due stampanti. In questo modo i dati in uscita dalla apparecchiatura saranno ricevuti contemporaneamente da tutte e due le stampanti. Dovendo coprire la distanza di 3 Km utilizzerei tre antenne J pole sui radiomodem.
Sergio Bertana
Amministratore del forumIl modulo CPU MPS050 che tu hai non ha la porta Ethernet, per avere la porta Ethernet devi utilizzare il modello MPS053, questo modello però ha solo la porta seriale RS232 e non la RS485. Per avere la porta Ethernet e la porta RS485 devi utilizzare la versione MPS046.
Come dici giustamente tu per vedere lo stato degli I/O logici da terminale devi appoggiarli nella DB100, l’area DB 100 è l’unica accessibile da Modbus. In questo topic c’è un esempio che è proprio come il tuo, se scarichi l’esempio hai sia il programma dello SlimLine che quello del terminale così puoi vedere come funziona. Attenzione nel tuo esempio le variabili mbusI0, mbusI1,… sono allocate ad indirizzo MB100.1, MB100.4,… e non và bene. Il terminale legge variabili a bit a partire da MB100.16 (0x 40016) e non indirizzi inferiori (In questo topic trovi ulteriori informazioni).
Per quanto riguarda gli esempi che noi identifichiamo con il codice PTPxxx, si trovano già installati sul tuo PC insieme alla installazione di LogicLab, sono nella cartella di installazione programma (Esempio C:Program Files (x86)ElsistLogicLabExamples).
Per quanto riguarda le funzioni SysGetPhrDI e il ByteToBit devi riferirti al Manuale programmazione IEC61131-3 e/o agli esempi che tu hai già citato. Ti ricordo che puoi anche acquisire 16 bits di stato in una unica WORD di memoria (Senza quindi suddiverli in Bits con la ByteToBit) utilizando la funzione HMI 3x_Bit che permette di testare il singolo bit di una WORD. Se per esempio appoggi tutti gli ingressi nella WORD a MW100.16 sul terminale puoi scrivere 3xBit 4000800 per il bit0, 4000801 per il bit 1 e così via fino a 4000815 per il bit 15.
Febbraio 28, 2015 alle 7:28 am in risposta a: Monitoraggio temperatura ed umidità in reparti produttivi #38773Sergio Bertana
Amministratore del forumTi propongo l’HWg-STE2. E’ un prodotto da connettere via LAN, viene proposto con una sonda di temperatura, ma si può abbinare in alternativa una sonda combinata temperatura/umidità. Come vantaggio è che è completamente autonomo, ha una proprio Web server integrato, può memorizzare autonomamente un certo numero di letture e fare un grafico su una delle due letture (Topic).Su condizioni di allarme può inviare eMail, ha due ingressi digitali per eventuali allarmi. I dati possono essere inviati al portale gratuito SensDesk. Se vuoi gestire un tuo database privato puoi utilizzare il software HWg-PDMS che installato su un server aziendale può ricevere le informazioni da tutti gli STE geograficamente distribuiti e fare storicizzazione.Utilizza il protocollo SNMP standard ed è compatibile con tutti i programmi di supervisione (Esempio Nagios, Cacti, ecc), inoltre può essere interfacciato con i ns dispositivi SlimLine per realizzare automazioni (Topic).
Sergio Bertana
Amministratore del forumCome si vede dall’estratto manuale esistono 3 aree di memoria RAM dati, queste tre aree sono tra di loro indipendenti.
Memoria variabili globali (54 Kb), dove sono allocate tutte le variabili mnemoniche definite dall’utente.
Memoria allocazione variabili (4 Kb), dove sono allocate tutte le variabili con indirizzo definito dall’utente.
Memoria retain (8 Kb), dove sono allocate le variabili definite retain.Sergio Bertana
Amministratore del forumAggiungo una possibilità per il comando IR a cui facevi cenno, potresti “sacrificare” il telecomando originale saldando dei fili in parallelo ai pulsanti che ti interessano. Tramite uscite a relè dal modulo SlimLine potrai poi simulare la pressione del tasto comandando la funzione relativa.
Febbraio 25, 2015 alle 1:55 pm in risposta a: Disponibilità protocollo Modbus sullo SlimLine CODESYS #38768Sergio Bertana
Amministratore del forumSi hai inteso bene, con la funzione Sysfopen apri lo stream I/O di comunicazione che è di tipo FILEP, lo stream va passato poi al blocco funzione di gestione Modbus. Se lo stream di I/O è una seriale si deve utilizzare come nell’esempio il FB SysSerialPort, se invece si tratta di un socket TCP si utilizzerà il FB SysTCPClient o SysTCPServer. Fai riferimento al manuale programmazione IEC61131-3 dove troverai esempi di utilizzo del Modbus master sia su connessione seriale che TCP client, e del modbus slave sia su seriale che su più socket TCP server.
Sergio Bertana
Amministratore del forumIl termometro IP HWg-STE non ha al suo interno una batteria per il real time clock, quindi alla accensione viene impostata l’ora acquisita tramite una connessione al server NTP. Inoltre è possibile impostare un periodo di sincronismo al server NTP che può essere fissato ogni ora oppure ogni 24 ore (Screenshot).
Per il corretto funzionamento occorre avre impostato il server NTP corretto ed occorre che l’STE possa accedere ad Internet, nel caso in cui l’STE non possa accedere ad Internet occorre avere nella propria rete locale un server NTP a cui connettersi. Può essere utilizzato il server di rete basta definirne l’IP nel campo SNTP Server. Agendo sul tasto Sync è possibile eseguire la sincronizzazione.
Per avere l’accesso ad Internet occorre che l’STE sia configurato correttamente con l’indirizzo IP del gateway di rete e del server DNS (Screenshot).
Sergio Bertana
Amministratore del forumDa quello che scrivi a pelle sceglierei sicuramente la soluzione b), intanto sulla a) non dici che protocollo si utilizza per dialogare con i cronotermostati, perchè se è un protocollo proprietario non sarebbe possibile interfacciarsi.
La soluzione b) ti permette di avere lo SlimLine in rete e di poterlo programmare ed eseguire il debug mentre stà funzionando connesso al tuo sistema domotico. Se il server supporta il modbus TCP (A volte viene chiamato Modbus over IP ma sono la stessa cosa) non ci sono problemi a dialogare con lo SlimLine. Lo SlimLine agisce da server Modbus ed il sistema domotico sarà client, la funzione “Electron Drive” mi sembra di capire serve proprio a questo. Ed è normalissimo per gli SCADA interrogare più dispositivi su IP diversi.
In più lo SlimLine grazie al suo Web server potrebbe avere pagine di servizio accessibili da browser che lavorano in parallelo al sistema domotico. Puoi anche aggiungere dei pannelli operatore per gestire funzioni accessorie.
Purtroppo non ho esperienza sugli IR, so che esiste un progetto LIRC per Linux che tratta l’argomento, magari ti può essere utile.
Sergio Bertana
Amministratore del forumCon i vari convertitori Ethernet-Seriale e WiFi-Seriale viene solitamente fornito un software di virtualizzazione per porta seriale. Il software di virtualizzazione installa nel PC una porta COM aggiuntiva che in realtà è la porta seriale del convertitore. Questi programmi di virtualizzazione alcune volte vanno in conflitto con la configurazione software del PC e si incontrano problemi nella installazione.
Tra le case da noi distribuite, la HWgroup, ha realizzato un software di virtualizzazione porte COM che nella versione da 1 porta è utilizzabile gratuitamente. Il programma HW VSP3 è basato sul driver Eltima che è uno dei drivers software più utilizzati e più compatibili. Ecco l’utilizzo del VSP3 con un convertitore ATC-1000WF (Screenshot).
-
AutorePost