Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumTrovo in Internet specifiche che indicano come lunghezza massima della rete 1-WIRE 400 metri e 500 il numero massimo di sensori. Ogni sensore equivale ad un accorciamento di 0,5 metri di lunghezza e ogni 100 metri di cavo causa una capacità aggiuntiva di 5nF aumentando la distorsione del segnale. In pratica la lunghezza della rete ed il numero di sensori dipendono da:
Tipo di cavi.
Qualità delle connessioni.
Interferenza da campi elettromagnetici esterni.Si accomanda cavi intrecciati per computer UTP collegando i cavi non utilizzati, e se cavo schermato anche lo schermo, alla linea di terra. Tutti i sensori sono connessi in parallelo alla linea, possono essere utilizzati sensori a 2 fili anche se nel caso di molti sensori connessi al bus per evitare il sovraccarico del segnale si consiglia di utilizzare sensori a 3 fili portando anche l’alimentazione.
Personalmente so di clienti che hanno realizato reti con il DS9097U-S09 in cui sono stati collegati fino a 20 sensori a 2 fili su una lunghezza di 100 mt. Essendo sensori a 2 fili per evitare di caricare troppo il bus è stata posta una resistenza da 100 Ohm in serie al segnale su ogni sensore, come cavo trattandosi di applicazione domotica è stato utilizzato del normale doppimo telefonico fatto passare in cavo corrugato distante da linee di potenza a 220Vca.
Sergio Bertana
Amministratore del forumIl problema a cui ti riferisci è legato all’utilizzo di memorie EEPROM e FLASH, ma sulla famiglia SlimLine ARM7 e CortexM7 la memoria utilizzata per lo storage dei dati RETAIN è una memoria FRAM che ha cicli di scrittura infiniti.
La considerazione sul numero di cicli và fatta nel caso appoggi il FIFO su di un file, se utilizzi la memoria FLASH presente nei sistemi ARM7 e CortexM7 per apopoggiare il file devi considerare il numero di cicli di scrittura che sono dell’ordine di cenntinaia di migliaia per ogni settore. Ma considerando che un file su disco occupa molti settori il numero di cicli và moltiplicato per il numero di settori utilizzati. Quindi più grande è il file maggiore è il numero di cicli possibili.
Discorso a parte è per la SDCard, se utilizzi chip con la gestiore del wear leveling la scrittura è automaticamente spalmata su tutti i settori della scheda aumentando moltissimo il numero di cicli di scrittura. Questa è la stessa tecnica utilizzata nel dischi SSD per il PC.
Sergio Bertana
Amministratore del forumSi per non perdere i dati salvati nel FIFO allo spegnimento FIFOIDx deve essere RETAIN, ed i dati devono essere appoggiati su di un file.
Se non indichi il file di appoggio i dati sono salvati in memoria e non importa come è definito FIFOIDx perchè vengono comunque persi.
Il file è sempre lo stesso perchè contiene i dati salvati al suo interno. Se hai definito FIFOIDx RETAIN la scrittura continua dal punto corretto, se non è RETAIN la scrittura inizia dall’inizio del file.
Novembre 20, 2019 alle 10:09 am in risposta a: Eseguire Ping di un indirizzo IP per testare comunicazione #51280Sergio Bertana
Amministratore del forumSi quello che posso ipotizzare è che usi due server DNS diversi e quello del PC risolve l’URL mentre quello settato sullo SlimLine non lo risolve.
Novembre 20, 2019 alle 10:07 am in risposta a: Eseguire Ping di un indirizzo IP per testare comunicazione #51278Sergio Bertana
Amministratore del forumANCOUNT, specifying the number of answer entries.
Nella risposta un server DNS può per lo stesso domain rispondere con più IP e per ognuno di essi oltre all’IP vi saranno anche gli altri dati (es. TTL etc). Il nostro client DNS considera sempre il primo IP ritornato.
Il fatto che ritorni ANCOUNT 0, vuol dire che non sono stati ritornati indirizzi IP per quell’URL. Ora mi viene spontanea una domanda ma il server DNS settato sul tuo PC e che risponde correttamente è lo stesso server DNS settato sullo SlimLine ?
Se hai impostato lo stesso server DNS sia sul PC che sullo SlimLine e lo SlimLine riceve ANCOUNT 0 potresti indicarmi l’URL che stai pingando (Se vuoi anche inviandolo in privato a support).
Novembre 18, 2019 alle 4:35 pm in risposta a: Eseguire Ping di un indirizzo IP per testare comunicazione #51197Sergio Bertana
Amministratore del forumMa non ho capito se hai provato a dare il comando di Ping dalla connessione Telnet con lo SlimLine, e se è proprio il comando di Ping da Telnet che và in errore.
Poi mi dici che il Ping dal PC (Finestra DOS) funziona, ma tu pinghi l’URL o pinghi lo stesso IP che ti ha restitutito la richiesta DNS fatta con il FB DNSRequest ?
Alla richiesta DNS si possono ricevere più indirizzi IP per i vari servizi attivi sullo stesso URL, il FB DNSRequest ritorna sempre il primo IP ritornato e magari tu pinghi un IP su cui non è attivo il server ICMP.
Sergio Bertana
Amministratore del forumSi certo eseguendo il forward (o NAT) della porta Modbus 502 sul router e disponendo di un indirizzo IP pubblico si può programmarlo da remoto (Vedi topic).
Naturalmente con EasyAcces non occorre modificare il router di connessione Internet e garantisce un accesso criptato oltre che al pannello anche al PLC collegato.
Sergio Bertana
Amministratore del forumLa protezione del programma è un problema spinoso, da una parte il cliente f inale vorrebbe avere la massima flessibilità sul programma e dall’altra chi ha sviluppato l’applicazione ha la necessità di proteggersi dalle copie.
Proteggersi perchè molte volte il costo dello sviluppo viene spalmato su forniture successive e quindi è importante poter verificare l’acquisto del prodotto. Altre volte il cliente ha pagato un costo di sviluppo ridotto in quanto lo sviluppatore ha utilizzato parti di programma già sviluppate che fanno parte del suo know-how e che non può “regalare” al cliente.
I nostri sistemi hanno dei meccanismi per la protezione del software (Vedi post, post), in generale si tende a criptare le parti di programma nobili e si controlla se il dispositivo in cui il programma viene eseguito ha un identificativo particolare. Con queste verifiche si può dare al cliente l’intero progetto lasciandogli così la libertà di modificarlo nelle parti meno nobili (non criptate).
Questa soluzione permette di inviare al cliente il progetto anche via mail e permette a lui di poterne conservare copia.
Sergio Bertana
Amministratore del forumPer l’aggiornamento e debug del programma direttamente sul PLC montato sul campo i clienti che hanno sull’impianto oltre al PLC anche il pannello operatore Weintek, utilizzano l funzionalità EasyAccess per accedere direttamente via Internet al PLC ed eseguirne la programmazione accedendo direttamente via IP al dispositivo.
Se invece puoi accedere solo con sistemi di desktop remoto (Esempio TeamViewer), puoi utilizzare il programma LogicLab Loader. Si tratta comunque di un programma da installare sul PC del cliente che permette il solo trasferimento del programma senza alcuna possibilità di modifica.
Novembre 18, 2019 alle 9:12 am in risposta a: Eseguire Ping di un indirizzo IP per testare comunicazione #51113Sergio Bertana
Amministratore del forumImmagino che devi pingare un indirizzo IP che è fuori dalla tua rete, hai impostato correttamente il Gateway sullo SlimLine ?
Ed il gateway è pingabile dello SlimLine ?
Sergio Bertana
Amministratore del forumCon il nuovo file system il web server può accedere solo ai files ed alle cartelle che sono contenute nella cartella definita come root del servizio (Vedi articolo), quindi trovandosi il file Logs.txt nella cartella System non sarà possibile accedervi.
Per vedere il file occorre accedere al sistema via FTP ed aprirlo con un editor oppure scaricarlo sul proprio PC (Vedi topic).
Sergio Bertana
Amministratore del forumLa nota Può essere eseguito in un solo loop di programma come una funzione, la mettiamo in tutte quelle FB che esauriscono il loro lavoro in un solo ciclo di esecuzione. Cioè non hanno variabili statiche al loro interno. Quindi se non fosse che la normativa IEC61131 ha messo dei limiti stringenti alla definizione delle funzioni si sarebbe realizzata una funzione al posto di un FB per quel tipo di operazione.
La nota informa che la puoi eseguire come una funzione ogni volta che la esegui lei termina il suo compito, quindi ad esempio il FIFO se vedi qualche mio programma dove viene usato vedrai che istanzio il FIFO nelle variabili globali e poi ne eseguo la chiamata per inserire elementi o per estrarre elementi in tutte le parti di programma dove serve.
Ma in un programma posso avere tutti i FIFO che si vuole, ognuno sarà istanziato con un nome diverso.
Sergio Bertana
Amministratore del forumAggiungo per la valutazione della eccezione, se invii alla nostra mail di supporto il file Logs.txt presente nella cartella System, e scrivi il codice del sistema e la versione del software (Li puoi ricavare connettendoti in Telnet alla porta 23) possiamo fare una indagine e magari dare informazioni maggiori.
Sergio Bertana
Amministratore del forumGli operatori TO_INT, TO UDINT, ecc sono operatori di cast, servono ad informare il compilatore che si stà trasferendo una variabile di un certo tipo in una variabile di altro tipo.
Mi spiego meglio ammettiamo di avere una variabile di tipo USINT e la passiamo ad una funzione o FB che accetta un parametro UINT o la trasferiamo in una variabile UINT, in questo caso siccome l’USINT è a 8 bit mentre l’UINT è a 16 bit non ci sono problemi ed il compilatore non dà messaggi di warning.
Ma facciamo l’ipotesi contraria, ho nel programma una variabile UINT (Che io programmatore sò di certo non assumerà mai valori superiori a 255) e la passiamo ad una funzione o FB che accetta un parametro USINT o la trasferiamo in una variabile USINT. Il nostro programma è corretto ma il compilatore ci avverte con una warning che potrebbe esserci un problema usando il cast TO_USINT informiamo il compilatore che và tutto bene siamo sicuri di quello che stiamo facendo.
Quindi se come dici le variabili che usi sono del tipo giusto non serve il cast.
Sergio Bertana
Amministratore del forumAbbiamo sviluppato per l’IDE LogicLab al momento oltre 200 oggetti (Funzioni ed FB) quasi tutti sono forniti gratuitamente, alcuni prevedono il pagamento di una licenza per l’utilizzo. Ma anche quelli che prevedono la licenza possono essere usati gratuitamente per 30 minuti.
Stiamo riorganizzato il sito e nella sezione che riguarda le FB ora si evince meglio quelle che prevedono il pagamento di una licenza.
Come credo di avere già scritto da qualche parte del forum stiamo unificando tutti i nostri sistemi, ARM7, CortexM7 e Raspberry in modo da poter offrire una unica versione di LogicLab ed una unica versione di librerie adatta a tutti i sistemi (Vedi articolo).
Questo lavoro coinvolge noi per quanto riguarda i sistemi e coinvolge Axel per quanto riguarda Logiclab, e ad oggi pur lavorando ventre a terra non abbiamo ancora terminato… abbiamo versioni beta che testiamo ma non ancora una versione definitiva. E anche se credo che siamo abbastanza vicini alla fine non posso dare una data di rilascio…
State sintonizzati…
-
AutorePost