Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Settembre 6, 2019 alle 10:12 am in risposta a: Realizzare una FB per lettura cella da file CSV #49550
Sergio Bertana
Amministratore del forumIntanto eseguendo l’apertura in ‘rw’ se nella cartella “Storage” non hai il file presente il file non viene creato. Se vuoi che venga creato devi eseguire l’apertura in ‘a’.
Poi devi accertarti che la cartella “Storage” esista e che vi si possa scrivere all’interno (Collegati in FTP e prova a copiare un file e poi lo cancelli, eventualmente cerca nel forum come eseguire la formattazione del disco (Vedi topic, topic).
Ecco un programma di esempio, attivando da debug la variabile WCommand viene seguita la scrittura di una riga nel file.
VAR WCommand : BOOL; (* Write command *) i : DINT; (* Auxiliary variable *) Line : USINT; (* Line counter *) Filename : STRING[ 32 ]; (* Nome file *) Fp : FILEP; (* File pointer *) WrBuffer : STRING[ 32 ]; (* Write buffer *) END_VAR IF (WCommand) THEN WCommand:=FALSE; //Write command Filename:='Storage/settings.txt'; //Nome file // Apro file e se file aperto eseguo scrittura. IF (Fp = NULL) THEN Fp:=Sysfopen(Filename, 'a'); END_IF; IF (Fp <> NULL) THEN Line:=Line+1; //Line counter i:=SysVarfprintf(Fp, 'Line: %d$r$n', USINT_TYPE, ADR(Line)); Fp:=Sysfclose(Fp); END_IF; END_IF;Sergio Bertana
Amministratore del forumNel frattempo ho chiesto a Weintek se avevano qualche esempio di invio dati a Beebotte, mi hanno detto che ad oggi si sono collegati con i più svariati broker senza alcun problema ma non hanno esempi con Beebotte.
Però sono disponibili se gli inviamo un progettino di esempio a controllarlo. Se tu hai un progettino semplice e comprensibile e vuoi inviarmelo (Invialo per eMail a [email protected]) faccio delle prove io ed eventualmente lo invio a Weintek.
Sergio Bertana
Amministratore del forumNon ho mai realizzato personalmente una connessione a Beebotte da terminale Weintek, ma con i nostri sistemi SlimLine abbiamo applicazioni di invio dati a Beebotte utilizzando il blocco funzione MQTTClient (Vedi articolo).
Di certo non utilizziamo una connessione SSL e devo dire che non ho avuto particolari problemi nel realizzare il semplice programma di esempio. Poi visto l’interesse per l’argomento abbiamo anche realizzato dei FB specifici che semplificano notevolmente sia la pubblicazione che la sottoscrizione a Beebotte (Vedi articolo).
Sergio Bertana
Amministratore del forumCredo ti riferisca ad un convertitore Ethernet/Seriale (Come l’ATC-1200). Questo argomento è già stato trattato in questo topic.
Con questi convertitori se ti connetti ad esempio con uno SCADA lato ethernet lo SCADA utilizzerà il protocollo Modbus over IP che verrà riportato pari pari sulla seriale. In realtà alcuni SCADA hanno la possibilità di effettuare una connessione ethernet ed utilizzare il protocollo Modbus RTU. Quello che tu chiedi è un gateway modbus come l’ATC-3002.
Sergio Bertana
Amministratore del forumCome esempio ecco un semplice programma FBD che si connette al modulo Yotta A-1012 ed acquisisce i 2 ingressi digitali e comanda le 2 uscite. Come vedi ho utilizzato le impostazioni di default del modulo 9600, n, 8, 1 e come nodo Modbus ho definito il nodo 0 che è il nodo di broadcast. Attenzione se usi nodo 0 devi avere un solo dispositivo connesso.
Nel programma puoi aggiungere istanze del FB SAModbusCmd per gestire gli altri dati modbus, come vedi dallo screenshot del programma ho impostato tempi di timeout e delay sulla comunicazione di 1 secondo per permetterti di vedere tramite la cosole di spionaggio i dati Modbus, vedi la finestra di Toolly (Download progetto).
Sergio Bertana
Amministratore del forumNon scrivi quale modello di moduli Yotta stai utilizzando, io oggi ho provato su un PC con Windows 10 installato di “fresco”, ho installato il programma Yotta Utility vers. 5.7.32 scaricato dal nostro sito e mi sono connesso ad un modulo A-1012.
Eseguendo il comando Search for modules (Il logo del binocolo), come dici tu, il modulo viene visto connesso alla porta seriale e con un doppio click sul modulo passo alla finestra di impostazione da cui è possibile testare e configurare il modulo.
Ora visto che nel tuo caso non riesci ad aprire la finestra delle impostazioni proverei a reinstallare il programma, e/o eventualmente provare su di un altro PC. Non vorrei che un qualche programma che è in esecuzione sul PC ti crei il problema.
Sergio Bertana
Amministratore del forumL’App CMT-Viewer è disponibile per:
Sistemi Windows (Dal 7 al 10), scaricabile direttamente dal ns sito.
Android scaricabile dal play store o su richiesta possiamo fornire il file apk.
Per i sistemi Apple l’App per iPhone e iPad è scaricabile dall’apple store.Per i sistemi Mac attualmente non esiste un’App, chi l’ha utilizzata ha scelto come workaround di installare una macchina virtuale con Windows.
Per quanto riguarda il server VNC su cMT-SVR non è presente.
Agosto 6, 2019 alle 6:49 am in risposta a: Allocazione in memoria delle variabili strutturate #48965Sergio Bertana
Amministratore del forumLa selezione del size non è importante il compilatore assegnerà alla variabile la dimensione corretta indipendentemente dal size definito.
Il campo size serve unicamente rappresentare l’associazione della variabile con posizioni fisiche nella memoria. La rappresentazione è fornita dalla concatenazione del segno di percentuale “%”, di un prefisso di allocazione, di un prefisso di dimensione e uno o due numeri interi senza segno, separati da punti (.). Esempio
% location.size.index.index
location può essere: I Input, Q Output, M Memory
size può essere: X Single bit, B Byte (8 bits), W Word (16 bits), D Double word (32 bits)Quindi per un ingresso digitale: %IX0.0, %IX5.6, %IX0.8
Quindi per una uscita digitale: %QX0.0, %QX5.6, %QX0.8
Per variabili in memoria: %MX100.0, %MB100.10, %MW100.32, %MD100.64Sergio Bertana
Amministratore del forumPremesso che chiedere all’oste se il vino è buono si corre il rischio di avere una risposta di parte… ma risponderò con sincerità alle tue domande.
Accesso WEB, Il modulo CPU PLC SlimLine Raspberry Pi è basato sulla CPU Raspberry Pi 3B+ ed usa il noto SO Raspbian basato su Linux Debian. Quindi puoi fare tutto quello che un sistema Linux ti permette, installare Apache come Web server, installare PHP, MySQL, Node.js, Node-RED, ecc. Detto questo le pagine HTML le devi realizzare tu come faresti su qualsiasi hosting web. Io ho trovato molto comodo per realizzare l’interfaccia utente Node-RED (Vedi articolo).
Affidabilità, i moduli Raspberry sono costruiti in milioni di pezzi quindi lo standard qualitativo è altissimo. In molte applicazioni al modulo Raspberry sono collegati in modo più o meno approssimativo moduli per interfacciare il campo che tutto hanno meno che dell’industriale ed ecco nascere problemi di crash funzionali dovuti alla realizzazione del sistema e non al modulo CPU. Nel nostro sistema il modulo CPU si interfaccia a moduli di I/O tutti galvanicamente isolati e già da anni utilizzati in ambiente industriale.
Reperibilità, certo il modulo viene aggiornato ma la Raspberry foundation ne mantiene il layout quindi anche i nuovi moduli possono essere utilizzati. Il SO è Linux, quindi nel caso non si reperisse più il modulo Raspberry possiamo utilizzare un’altro modulo CPU basato su Linux mantenendo la piena compatibilità.
Programmabilità, forniamo prodotti per utilizzo industriale quindi è normale utilizzare la programmazione secondo la normativa IEC-61131, è possibile utilizzare CODESYS oppure utilizzare LogicLab.
Sergio Bertana
Amministratore del forumVolendo rispondere con una battuta, visto che abbiamo esteso la garanzia a 5 anni sui prodotti SlimLine è dal 5o anno in avanti che devi giustamente preoccuparti…
Il problema della ridondanza è un problema spinoso, serve molto più spazio di un post sul forum per trattarlo. Come dicevi il bus di estensione non può essere gestito in parallelo da due moduli CPU e poi se parliamo di ridondanza anche i moduli di I/O potrebbero guastarsi. Quindi è duopo avere due sistemi identici con gli ingressi in parallelo, potrei dire di fare il parallelo anche per le uscite ma ipotizzando che per un guasto l’uscita rimanga sempre attiva il parallelo non garantirebbe la funzionalità. A onor del vero che una uscita rimanga attiva anche a sistema spento è molto improbabile. E comunque il test che una uscita sia sempre attiva comporterebbe il rileggerne lo stato con un ingresso. In caso di guasti il modulo CPU già provvede autonomamente a spegnere tutte le uscite.
Poi certo tutti i sensori andranno sdoppiati, oppure con dei relè (Meglio a stato solido) andranno commutati tra i due sistemi. Il problema è determinare quale dei due sistemi è quello attivo, puoi realizzare un algoritmo di controllo software su entrambi i sistemi che in caso di errore disattiva una uscita che passa il controllo all’altro, se entrambi sono funzionanti uno dei due è il master.
Concludendo non credo sia il caso in una automazione domotica pensare ad una ridondanza automatica (Non è una missione su Marte), corri il rischio che la complicazione che comporta paradossalmente ne diminuisca l’affidabilità… Meglio è affidarsi a parti di scorta pronte all’uso da sostituire in caso di guasto…
Luglio 24, 2019 alle 12:39 pm in risposta a: Visualizzazione array di variabili BOOL su indice #48647Sergio Bertana
Amministratore del forumMa se tu inserisci sul pannello un oggetto per ogni variabile BOOL dell’array non hai problemi a fare quello che vuoi. In pratica se immaginiamo di avere un array di 8 BOOL allocato in DB100.128 tu puoi mettere sul pannello 8 (o quanti te ne servono) oggetti esempio pulsanti che operano ognuno sul BOOL dell’array che ti interessa.
Esempio il primo punterà al BOOL in DB100.128 (Comando sul terminale 0x40128), il secondo punterà al BOOL in DB100.129 (Comando sul terminale 0x40129), e così via.
Sergio Bertana
Amministratore del forumIl modulo CPU SlimLine Raspberry utilizza al suo interno una scheda standard Raspberry 3B+ che è stata innestata su un scheda madre con componenti a grado industriale. La scheda comprende un alimentatore con range in ingresso da 10 a 30 Vdc della potenza necessaria per alimentare sia il modulo Raspberry che i moduli di estensione. Sulla scheda troviamo anche una interfaccia standard 1-Wire ed uno slot per schede mikroBUS™.
Oltre ad utilizzare le schede mikroBUS commerciali, abbiamo anche sviluppato due moduli isolati galvanicamente per l’interfaccia con il bus di campo, uno per la seriale RS485 ed uno per il CAN bus.
La porta seriale è vista da Raspbian come device standard ttyAMA0 ed il CAN bus come device can0, quindi completamente gestibili da linguaggio Python.
Il modulo CPU come detto è una Raspberry 3B+ quindi ha il completo supporto al Bluetooth.
Per quanto riguarda la connettività 3G/4G ed al modulo GPS possiamo fornire un router esterno nella gamma Wlink (Esempio un WL-R200L).
Sergio Bertana
Amministratore del forumNelle impostazioni di progetto di EasyBuilder è possibile eliminare la visualizzazione del cursore del mouse, menù System parameters tab System selezionare Hide mouse cursor. Siccome il pannello è touch di solito si disabilita la visualizzazione del mouse, ma questa impostazione non ha alcun coillegamento con la visualizzazione del cursore sul VNC viewer.
Come VNC viewer su PC utilizzo (UltraVNC) e di default non viene visualizzato il cursore del mouse (Sostituito da un puntino) per visualizzarlo occorre eseguire il programma con l’opzione normalcursor. Puntare l’icona di esecuzione del programma, con il tasto destro del mouse selezionare proprietà, nella casella destinazione definire l’opzione in linea al programma “C:\Program Files\uvnc bvba\UltraVNC\vncviewer.exe” -normalcursor.
Come VNC viewer su Android utilizzo (bVNC) abilitando il pointer dalle impostazioni è possibile vedere la freccia standard del mouse.
Luglio 19, 2019 alle 6:12 am in risposta a: Codici modbus utilizzati per la comunicazione dal pannello #48598Sergio Bertana
Amministratore del forumSe guardi il post precedente vedrai che usando il comando 0x il pannello utilizzerà in automatico il codice Modbus 01 per leggere il valore del bit ed il codice 05 per scrivere il valore, quindi l’utilizzo del codice 0x è corretto.
Ma solleverei dei dubbi intanto sull’utilizzo dello Zero-based Addressing sicuro che non sia meglio usare modbus TCP standard ? prova con entrambi perchè se il tuo dispositivo è Modbus compliant devi usare Modbus TCP standard.
Sicuro che l’indirizzo da usare sia 10010, in molti application node (Ed in emulatori di Modbus) si aggiunge il codice modbus in testa all’indirizzo, e 10010 indica di usare il comando Modbus 01 per leggere l’indirizzo 10. Quindi proverei ad usare comando 0x con indirizzo 10.
Sergio Bertana
Amministratore del forumIl problema dello shift sull’indirizzamento Modbus purtroppo è un problema atavico, per evitare di indicare indirizzo 0 Movicon ha creato lo shift. In pratica nel master (Nel nostro caso l’HMI) si definisce indirizzo 1 ma in realtà nel protocollo viene passato l’indirizzo 0 e così di seguito.
Molti sistemi Modbus però non gestiscono correttamente lo shift ecco perchè a volte occorre sommare/sottrarre 1 all’indirizzo. Weintek per sopperire a questo problema nel protocollo MODBUS IDA ha aggiunto la scelta Zero-based Addressing che evita di sottrarre 1 all’indirizzo inviato sul protocollo.
-
AutorePost