Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumIl problema è che il driver RNDIS di Windows sul reboot non si accorge della sconnessione del sistema e quindi mantiene attiva la connessione USB, lo SlimLine invece essendosi resettato ha interrotto l’endpoint e quindi non comunica più.
Scollegando il cavo o spegnendo e riaccendendo lo SlimLine viene a mancare il segnale elettrico sull’USB del PC il quale resetta tutte le connessioni attive.
Sergio Bertana
Amministratore del forumMa che tipo di connessione usi con lo SlimLine ?
Connessione seriale, dovrebbe riprendere senza alcun problema.
Connessione TCP/IP su rete ethernet, eseguendo il reboot viene persa la connessione, occorre disabilitarla e poi riabilitarla.
Connessione TCP/IP su USB, occorre scollegare e ricollegare il cavo USB e/o come fai tu spegnere e riaccendere il dispositivo.Settembre 11, 2013 alle 8:45 am in risposta a: Gestione pagine web dinamiche da parte dell’utente #37766Sergio Bertana
Amministratore del forumGli ID utilizzati nelle pagine Web di configurazione come hai detto giustamente tu sono gestiti solo per i files presenti nella directory System, il web server dello SlimLine controlla la directory dove si trova la pagina da visualizzare e se diversa da System non gestisce gli ID.
Gli ID utilizzati non sono documentati, sono definiti nel programma e possono cambiare a nostra discrezione quindi non devono essere utilizzati. Le pagine web utente operano solo su variabili allocate nella DB 100, se vuoi gestire variabili di sistema occorre forzatamente appoggiarle su variabili allocate nella DB 100.
Settembre 11, 2013 alle 6:41 am in risposta a: Gestire I/O remoti con connessione via radiomodem #37764Sergio Bertana
Amministratore del forumNell’insieme la soluzione è fattibile ma come I/O remoti non utilizzerei HWg-ER88a perchè non supporta il protocollo modbus su seriale, ma puoi scegliere tra gli i moduli di I/O seriale (Il modello TRP-C28M dispoone di 4 ingressi e 4 uscite). Ti ricordo anche che un modulo SlimLine CPU Compact ARM7 costa comunque meno di un I/O remoto e lo puoi utilizzare per lo stesso scopo disponendo inoltre di una intelligenza locale.
Il problema maggiore è la comunicazione radio, il radiomodem ATC-3200 lavora a frequenza di 2.4 Ghz e ad una frequenza così elevata i muri (Nel tuo caso le solette) sono degli schermi difficilissimi da oltrepassare (Nel tuo caso ne hai addirittura 3). L’unica speranza di poter passare quelle solette è di utilizzare un radiomodem a frequenze più basse, esempio il modello DL169 potrebbe essere risolutivo.
Purtroppo come sai nelle comunicazioni radio non si può prevedere il funzionamento a priori di una comunicazione si parte da un progetto ottimale sulla carta ma poi solo il test sul luogo può dare la risposta sulla funzionalità. Naturalmente tutto cambia se tu potessi montare le antenne all’esterno dell’edificio.
Sergio Bertana
Amministratore del forumE’ quello che volevi ottenere. Se leggi bene il mio post, chiudendo il programma in un loop infinito, il sistema si resetta e quindi riparte dall’inizio (Esattamente come se venisse spento ed acceso).
La tua domanda era di eseguire un reboot su certe condizioni, ecco allora il loop infinito deve essere abilitato solo sulle condizioni nelle quali vuoi eseguire reboot.
Settembre 10, 2013 alle 12:56 pm in risposta a: Abilitazione VNC server su terminale MT8100iE #37763Sergio Bertana
Amministratore del forumLa serie iE è una serie con un prezzo d’attacco inferiore alle altre serie e nasce da Weintek senza la gestione del server VNC, ecco il perché non compare la finestra di settaggio. A seguito di pressioni sul fornitore, per il mercato Italiano è possibile eseguire l’upgrade del firmware originale con una versione speciale che ha il server VNC abilitato. Per eseguire l’upgrade occorre scaricare il firmware (19/07/2013) dal nostro sito ed eseguire le seguenti operazioni.
1- Estrarre file zip e copiarlo su pen drive USB.
2- Inserire la pen drive USB sul pannello (Anche acceso).
3- Andare nel system setting del pannello.
4- Dovresti trovare un menu upgrade firmware.
5- Cliccare upgrade.
6- Cliccare il + a fianco di USB e selezionare la cartella che contiene il file, se messo nella root principale selezionare USB disk.
7- Attendere l’aggiornamento, si conclude con il riavvio del pannello.
8- Probabilmente sarà necessario ricalibrare il pannello impostando ad On lo switch 1 e riaccendendo il pannello.
9- Toccare le frecce di calibrazione e al termine reimpostare lo switch a Off.
10- Eventualmente riscaricare il progetto.Sergio Bertana
Amministratore del forumCerco di chiarirti come funziona il CAN Bus sullo SlimLine, cominciamo con il dire che come CAN Controller viene utilizzato il controller CAN 1 presente nel controllore ARM (Allego estratto datasheet). Il bit bit 31 (FF) di SYSCANMESSAGE.MsgID indica se il messaggio ha un identificatore a 11 bit oppure a 29 bit.
Per utilizzare il CAN occorre inizializzarlo definendo la velocità ed i filtri, tipicamente viene impostato per ricevere tutti i messaggi SysCANSetMode(CAN_500KBIT, 16#00000000, 16#00000000);
Ricezione messaggi CAN
I messaggi sono ricevuti in interrupt e memorizzati nel buffer di ricezione (32 messaggi fino a 8 bytes di dato ciascuno). Il programma utente con la funzione SysCANRxMsg(Mask, ID, ADR(Msg)); estrae dal buffer il messaggio desiderato è lo memorizza nella variabile Msg. Occorre eseguire la funzione fino a svuotare completamente il buffer di ricezione gestendo tutti i messaggi ricevuti. Il tempo di esecuzione della funzione è di di pochi uS ma per non perdere messaggi occorre che venga eseguita ciclicamente in un tempo inferiore al tempo di riempimento buffer (32 messaggi).Trasmissione messaggi CAN
I messaggi sono caricati nel buffer di trasmissione (32 messaggi fino a 8 bytes di dato ciascuno) con la funzione SysCANTxMsg(ADR(Msg)); i messaggi vengono poi trasmessi in interruzione dal sistema.Sergio Bertana
Amministratore del forumConcordo sul fatto che il linguaggio ST (Structured Text) è molto simile al linguaggio C, ne condivide alcune sintassi IF, FOR, WHILE, CASE (Ha lo stesso significato di SWITCH) e questo unito all’utilizzo dei puntatori e delle strutture dati permette di realizzare programmi complessi.
Ma ora vediamo di comprendere il significato di Task, l’ambiente LogicLab come hai detto giustamente tu esegue la task di Boot al primo loop di avvio, in questa task si devono eseguire tutti i programmi di inizializzazione. Viene poi gestito un sistema multitasks basato su tre tasks.
Fast: Eseguita di default ogni 1 mS interrompendo sia la Back che la Slow (La funzione SysSetTaskLpTime permette di impostare tempi di esecuzione da 100 µS a 10 mS). I programmi eseguiti in questa task gestiscono logica veloce. E’ possibile catturare segnali digitali che hanno durata molto breve. In questo post ad esempio viene gestita la acquisizione di un lettore RFID.
Slow: Eseguita di default ogni 10 mS interrompendo la Back (La funzione SysSetTaskLpTime permette di impostare tempi di esecuzione da 1 mS a 100 mS). Inserire in questa task tutti i programmi che controllano le sequenze logiche di funzionamento di un impianto. La certezza del tempo di esecuzione garantisce il corretto funzionamento dell’impianto.
Back: Eseguita nel tempo libero, il suo tempo di scansione non è determinato, può variare da veloce meno di 1 mS a lento decine di mS. In questa task si eseguono i programmi che non sono deterministici, esempio calcoli, gestione I/O analogico ed I/O digitale non utilizzati nel funzionamento di un impianto. In questa task devono essere inserite tutte le comunicazioni sia seriali che TC/IP oltre a tutte le funzioni di accesso al file system.
Settembre 7, 2013 alle 6:33 am in risposta a: Convertitore ATC-108N con inverter Aurora Power-One #37757Sergio Bertana
Amministratore del forumRingrazio byflog per il suo contributo, la porta RS485 è uno standard quindi tutti i convertitori della ns gamma che hanno l’interfaccia RS485 sono sicuramente compatibili a livello elettrico con l’inverter Aurora Power-One.
Il protocollo di comunicazione è un protocollo a pacchetti binario, questo facilita la sua gestione non solo in seriale diretta come nel caso del post precedente, ma anche in caso di comunicazioni a pacchetti su rete ethernet (Vedi post) od in WiFi (Vedi post), abbiamo clienti che hanno utilizzato Radiomodems per il collegamento.
Settembre 6, 2013 alle 12:29 pm in risposta a: Utilizzo del modem MC55i per invio di SMS concatenati #37756Sergio Bertana
Amministratore del forumIl messaggio SMS ha una dimensione fissa di 140 byte. Questo si traduce in pratica nella possibilità di usare 160 caratteri di testo (a 7 bit). Il modem non può concatenare i messaggi, pertanto se si hanno messaggi più lunghi da gestire occorre suddividerli in messaggi da 140 byte.
Ricordo che la tecnica della concatenazione utilizzata dai telefoni, è comunque quella di dividere il messaggio in più messaggi spediti separatamente, i messaggi sono poi ricombinati dal ricevente. Anche a livello di tariffazione il gestore fa pagare ogni singolo messaggio di cui è composto il messaggio concatenato. Quindi il tuo programma su PC potrebbe utilizzare la stessa tecnica.
Sergio Bertana
Amministratore del forumAggiungo la risposta alla tua richiesta, come detto nel post precedente, SlimLine viene riavviato se il programma non rinfresca ciclicamente il circuito di watchdog, quindi se nel tuo programma ti blocchi in un loop infinito provochi il riavvio del sistema. E’ possibile ad esempio scrivere un programma del tipo:
WHILE (Di00CPU) DO END_WHILE;
Come si evince attivando la variabile Di00CPU (Definita come %IX255.0, ingresso 0 del modulo CPU) il programma si arresta in un loop infinito provocando il riavvio del sistema SlimLine per intervento del circuito di watchdog.
Attenzione! Eseguendo questo tipo di tests od in generale se il programma và sempre in errore può essere impossibile riconnettere il sistema a LogicLab, per risolvere il problema occorre eseguire un catch del sistema e la successiva cancellazione del programma (Vedi post).
Sergio Bertana
Amministratore del forumQuesto post mi dà l’opportunità di spiegare in modo dettagliato tutti i meccanismi di autocontrollo del funzionamento gestiti dal sistema operativo e dall’hardware dello SlimLine.
I sistemi SlimLine hanno un doppio circuito di watchdog hardware, uno basato su un circuito appositamente predisposto ed uno gestito internalmente dal processore ARM. Se il programma non rinfresca ciclicamente questi due watchdog il sistema viene resettato in modo hardware forzandone un riavvio. Tutta questa gestione è fatta appositamente per garantire che eventuali impallamenti del sistema non lo blocchino, la normativa IEC infatti prevede che in caso di blocchi sul funzionamento del programma il sistema riparta. Esistono poi ulteriori controlli gestiti in modo hardware dal processore ARM che provocano il riavvio del sistema:
Il programma fa un accesso ad un area di memoria errata.
Il processore trova nel programma una istruzione non corretta.
Vengono abilitati/disabilitati gli interrupts in modo anomalo.
Viene corrotta la memoria di heap del processore.Può succedere che nel programma trasferito sul sistema vi sia un errore grave che provoca il riavvio del sistema, in questo caso mi troverei in un vicolo cieco, il sistema ripartendo riesegue il programma in errore riavviandosi e questo all’infinito. Ecco allora che se SlimLine riconosce che era connesso ad un PC con l’ambiente di sviluppo LogicLab, in caso di errore non riavvia il programma ma si pone in stato di programmazione.
Settembre 5, 2013 alle 6:43 am in risposta a: Virtual COM (VCOM) convertitori Ethernet-seriale ATC #37752Sergio Bertana
Amministratore del forumMolti clienti mi chiedono se virtualizzando più convertitori su altrettante porte COMs seriali si ottengono ancora buone prestazioni.
Certo molto dipende dal PC su cui viene eseguita la virtualizzazione e dalle prestazioni della rete LAN su cui i convertitori sono connessi, riporto un esempio reale di un nostro cliente che ha virtualizzato su di un PC Windows Xp utilizzando il software VCOM 3.6.1, 13 convertitori Ethernet/Seriale ATC-1000 (Screenshot).
Come si vede dallo screenshot è anche possibile gestire convertitori configurati con connessione TCP insieme a convertitori configurati con connessione UDP. Se il protocollo di comunicazione dei dispositivi seriali connessi ai convertitori prevede già un meccanismo di controllo trasmissione (Esempio protocollo Modbus), consiglio di configurare la connessione UDP in quanto richiede meno banda.
Settembre 4, 2013 alle 3:08 pm in risposta a: Gestire un display alfanumerico con un modulo SlimLine #37751Sergio Bertana
Amministratore del forumStimolato dalle richieste eccomi con una FB che gestisce la scrittura su di un display MC21605GL6W-SPI della Midas acquistato da Farnell (Codice 221-8947) di cui allego il datasheet. Ho collegato il display al bus di estensione di un modulo CPU compact ARM7 (Vedi foto), utilizzando il seguente schema elettrico.
Come si vede dal programma (Stampa e Download), il blocco funzione MC21605LCDMng gestisce il display connesso al bus, occorre indicare l’indirizzo I2C del display, e l’indirizzo della stringa da visualizzare. I primi 16 caratteri della stringa saranno visualizzati sulla riga superiore del display mentre i secondi 16 sulla riga inferiore. Attivando la variabile Write viene eseguito il trasferimento della stringa sul display.
Il FB viene eseguito da programma ladder ed il comando di Write è attivato sul fronte positivo di SysClock1000, quindi il display viene aggiornato ad ogni secondo. Il comando Write deve essere utilizzato per sincronizzare l’aggiornamento del display quando si varia la stringa da visualizzare, siccome l’aggiornamento del display avviene ciclicamente un carattere a loop di programma se vario la stringa mentre il display si aggiorna corro il rischio di visualizzare un messaggio composto da un pezzo del vecchio dato e da un pezzo del nuovo dato.Il programma potrà essere modificato per gestire display diversi da quello da me scelto magari con maggior numero di righe e colonne.
Settembre 3, 2013 alle 1:41 pm in risposta a: Gestione pagine web dinamiche da parte dell’utente #37749Sergio Bertana
Amministratore del forumAggiungo links a questi posts che riportano esempi di utilizzo del web server con pagine dinamiche.
In questo post è trattato l’invio di SMS direttamente da pagina web.
In questo post è trattata la gestione di comandi e la visualizzazione di stati logici. -
AutorePost