Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 3,331 a 3,345 (di 4,373 totali)
  • Autore
    Post
  • in risposta a: Invio SMS con testo e variabili suddiviso su più righe #37698
    Sergio Bertana
    Amministratore del forum

    Come spiegato in questo post, alcune librerie devono essere obbligatoriamente inserite nel progetto per poter utilizzare gli oggetti presenti, questo perchè la libreria oltre agli oggetti utilizzati nel programma e documentati nel manuale contiene anche oggetti e/o strutture dati utilizzati internamente, pertanto quando si utilizzano queste librerie non è possibile importare solo i singoli oggetti.

    La libreria eModemLib deve essere inserita nel progetto menù Project -> Library manager, nella libreria infatti sono presenti dichiarazioni di alcune strutture dati, una di queste è proprio la MODEMCOREDATA e non essendo definita il compilatore genera errore.

    in risposta a: Visualizzazione array di variabili BOOL su indice #37696
    Sergio Bertana
    Amministratore del forum

    Ecco la macro BitArray che soluziona il problema.

    macro_command main()

    bool PLCBit
    short Index, PLCWord

    GetData(Index, “Local HMI”, LW, 9200, 1) //Leggo valore indice “0”
    GetData(PLCWord, “SlimLine”, 3x, 40064+((Index&15)/2), 1) //Leggo variabile word (16 bit)
    GETBIT(PLCWord, PLCBit, ((Index&1)*8)) //Testo bit in base ad indice
    SetData(PLCBit, “Local HMI”, LB, 0, 1) //Stato bit per visualizzazione

    end macro_command

    Viene letto il valore del registro indice “0” e trasferito in Index, poi eseguo lettura dallo SlimLine di un registro a 16 bit a partire dalla posizione di allocazione dell’array (DB 100.128 -> 40064) offsettato dal valore di Index e lo trasferisco in PLCWord.

    Testo il bit della word in base ad Index (Bit 0 è il bit pari, bit 8 è il bit dispari), e ne trasferisco lo stato in PLCBit. Trasferisco lo stato nella variabile “LB 0” che sarà poi utilizzata per la visualizzazione. Allego un programma di esempio che esegue la visualizzazione di un array di 32 variabili BOOL (Download esempio).

    in risposta a: Visualizzazione array di variabili BOOL su indice #37695
    Sergio Bertana
    Amministratore del forum

    L’utilizzo dell’indice su array di variabili BOOL in effetti nasconde una insidia, il terminale “ragiona” a word (16 Bit), quindi acquisisce 16 variabili BOOL alla volta e poi visualizza quella indicata. Quando utilizzi un indice il valore dell’indice sposta l’acquisizione di 16 bits.

    Ecco quindi che l’indice 0 è effettivamente il primo BOOL del tuo array (Infatti funziona) mentre l’indice 1 punterà al 16esimo BOOL del tuo array, l’indice 2 al 32esimo, e così via. Per risolvere il problema bisogna affidarsi alle macro, vedrò di preparare un programma di esempio che illustri una possibile soluzione.

    in risposta a: Problemi di connessione seriale RS485 tra MT6070iH e PLC Twido #37694
    Sergio Bertana
    Amministratore del forum

    Ho rilevato le connessioni come riportate sul manuale Guida connessioni PLC e le ho riportate in questo schematico.

    Ti raccomando anche di controllare l’indirizzo di nodo del PLC (Nel progetto di esempio del post precedente è impostato a 2), ma non so il tuo PLC che indirizzo di nodo ha, e non so neanche come si imposta. Dalla guida connessioni sembrerebbe che di default il Twido abbia indirizzo 1.

    in risposta a: Problemi di connessione seriale RS485 tra MT6070iH e PLC Twido #37676
    Sergio Bertana
    Amministratore del forum

    Abbiamo diversi clienti che utilizzano i pannelli operatore con i PLC Twido quindi siamo certi che sia perfettamente compatibile, ora bisogna solo capire dove risiede il problema. Purtroppo io non conosco il PLC Twido e non ne ho uno per fare delle prove, ma ho contattato un mio cliente che utilizza il pannello con il Twido che mi ha fornito alcune indicazioni.

    Come PLC viene impostato il protocollo Modbus RTU zero based (Screenshot), ed i vari oggetti nelle pagine del pannello fano riferimento alle variabili PLC utilizzando i comando 0x per le variabili booleane e 4x per le variabili intere. Allego un progetto che mi ha inviato il mio cliente, vi è una pagina che fa riferimento a variabili del PLC Twido (Download progetto).

    in risposta a: Connessione M2M scheda WIND #37691
    Sergio Bertana
    Amministratore del forum

    Sembrerebbe che se chiamato tramite il gestore di rete (Vodafone) il modem sul campo non riconosce la chiamata come una chiamata dati e pertanto non esegue la connessione .Per vedere di che tipo è la chiamata entrante basta attivare sul modem l’estensione dei RING con AT+CRC=1. Puoi provare a forzare il modem sul campo ad accettare tutte le chiamate in arrivo come chiamate dati utilizzando il comando AT+CSNS=4.

    in risposta a: Problemi di trasmissione dati su porta COM2 in RS485 #37689
    Sergio Bertana
    Amministratore del forum

    La porta COM2 dello SlimLine è configurata in RS485 2 fili, quindi supporta solo comunicazioni half-duplex, in pratica o trasmette o riceve. La selezione della modalità trasmissione/ricezione è gestita dal segnale DTR. Il sistema operativo può gestire il segnale DTR in modo automatico in base alla impostazione del membro DTRManagement della struttura Sm.

    Sm.DTRManagement:=DTR_AUTO_WO_TIMES; (* DTR automatico senza interposizione tempi *)

    Con l’impostazione automatica quando esegui una operazione di scrittura sulla porta (Nel tuo caso SysVarfprintf), SlimLine provvede a commutare la porta in trasmissione a trasmettere il dato e poi a ricommutare la porta in ricezione. Se utilizzi l’impostazione.

    Sm.DTRManagement:=DTR_AUTO_W_TIMES; (* DTR automatico con interposizione tempi *)

    Verranno aggiunti i tempi di ritardo definiti nei membri DTROnTime (Tempo di attesa dopo avere attivato il segnale DTR prima di trasmettere i dati), DTROffTime (Tempo di attesa dopo avere terminato la trasmissione dei dati prima di disattivare il segnale DTR).

    Avendo nel tuo programma impostato DTR_OFF la porta è sempre in ricezione, viceversa impostando DTR_ON la porta sarebbe sempre in trasmissione.

    in risposta a: Sistema di monitoraggio e controllo dell’abitazione #37688
    Sergio Bertana
    Amministratore del forum

    Nel forum si trovano esempi di connessione allo SlimLine con softwares SCADA o con pannelli operatore touchscreen. Solitamente per la connessione viene utilizzata la porta ethernet con il protocollo Modbus OverIP, ricordo che lo SlimLine supporta il Modbus ascii ed RTU su porta seriale e OverIP su porta ethernet.
     
    L’area di memoria indirizzabile dal protocollo Modbus è quella riferita alla DB 100 (Sono 4096 bytes di cui 2048 ritentivi), tutte le variabili allocate nella DB 100 (Da DB 100.0 a DB 100.4095) sono accessibili in lettura e scrittura da protocollo Modbus. L’indirizzamento modbus è il seguente (Attenzione! Notare che nei comandi accesso a registri l’indirizzo è diviso per 2):
     
    0x01, 0x02 Read coil status, Read input status. Address: 40000-44095
    0x03, 0x04 Read holding registers, Read input registers. Address: 40000-42047
    0x05 Force single coil. Address: 40000-44095
    0x06, 0x10 Preset single register, Preset multiple registers. Address: 40000-42047
     
    In questo post vi è un esempio di connessione con Power HMI, in questo post vi è un esempio di connessione con Profilab Expert, in questo post vi è un esempio di connessione con un pannello operatore.

    in risposta a: Rete di comunicazione Ethernet/Seriale con più CNC #37686
    Sergio Bertana
    Amministratore del forum

    Il software Virtual COM prevede la connessione con un unico convertitore ATC-1000, per realizzare reti Multicast devi utilizzare una connessione UDP tra un convertitore ATC-1000 connesso alla porta RS232 del PC e più convertitori ATC-1000 (Massimo 10) connessi ai vari CNC (Vedi post).

    In questa configurazione puoi sicuramente dialogare con il PC con qualsiasi dei CNC connessi in Multicast (Uno alla volta), non mi è chiaro il punto della tua domanda in cui dici di volere comunicare contemporaneamente con più CNC.

    Ma parli di RS232, questa connessione non permette il multidrop ed anche se utilizzando gli ATC-1000, elettricamente il multidrop è realizzabile (Ogni convertitore sarebbe connesso in RS232 con il proprio CNC), per poterlo gestire occorre che il protocollo di comunicazione (E quindi il software sul PC) gestisca connessioni multidrop.

    L’utilizzo dei convertitori ATC-1000 non permette la gestione dei criteri seriali (DTR, CTS, RTS, ecc) ma sono veicolati i soli dati seriali (Rx e Tx). Quindi se la comunicazione prevede scambio di pacchetti dati molto grandi senza interruzione è possibile che i dati vengano persi e quindi la comunicazione non funzioni.

    Per trasmettere i dati sulla Ethernet i dati sono racchiusi in pacchetti e i pacchetti sono inviati in rete quando la rete è libera, quindi in base al traffico di rete si possono avere rallentamenti nella comunicazione.

    in risposta a: Sistema di monitoraggio e controllo dell’abitazione #37685
    Sergio Bertana
    Amministratore del forum

    Direi che la scelta della famiglia SlimLine è sicuramente azzeccata, vediamo i vari punti da te citati come potrebbero essere affrontati.

    Inverter Power One, l’inverter non utilizza Modbus ma un protocollo proprietario, disponiamo di un blocco funzione che gestisce la connessione con l’inverter (Vedi post)
    Controllo energia, tramite ingressi digitali e/o analogici è possibile acquisire i dati di consumo (Vedi posts 1, 2, 3, 4, 5).
    Contatti allarme e gas, si possono acquisire con i normali ingressi logici.
    Temperatura, si può acquisire con sonde Pt1000 connesse al modulo acquisizione analogico.

    Tutta l’elaborazione dei dati è fatta dal modulo CPU opportunamente programmato, che provvederà tramite uscite digitali a gestire gli attuatori (Caldaia, EV Gas, ecc.).

    Per l’interfacciamento con lo SCADA i sistemi SlimLine dispongono del protocollo Modbus sia RTU su porta seriale che over IP su interfaccia Ethernet. Basterà che il programma appoggi in variabili indirizzabili da Modbus le varie grandezze che si desidera monitorare e così lo SCADA potrà acquisirle.

    Lo SlimLine può gestire anche il log dei dati creando files ad esempio in formato CSV, che poi potranno essere scaricati tramite connessione FTP (Vedi post). Questo garantisce il log dei dati anche a sistema SCADA non connesso.

    in risposta a: Gestire un display alfanumerico con un modulo SlimLine #37680
    Sergio Bertana
    Amministratore del forum

    Si certo a tutti i modelli di CPU SlimLine anche i modelli Compact (Le versioni espandibili) può essere connesso un display LCD con interfaccia I2C. Cercando tra i vari distributori di materiale elettronico ho trovato ad esempio il modello BTHQ 21605V della BATRON (Codice RS-Components 743-6134), oppure il modello MCCOG21605C6W (Vedi datasheet) della MIDAS (Codice Farnell 2063203).Per la gestione abbiamo realizzato una specifica funzione SysI2CWrRd che permette di gestire l’accesso in lettura e scrittura di un qualsiasi dispositivo I2C connesso al bus.

    Utilizzando questa funzione è possibile fare coesistere senza problemi il display con i nostri moduli di estensione. Naturalmente dovrai scriverti un apposito FB che utilizzando la funzione inizializza il display e gestisce la scrittura dei testi, magari prevedendo come ingresso della FB una stringa da 32 caratteri che saranno trasferiti sulle due righe da 16 caratteri del display.

    Dato il basso consumo del display potrai attingere l’alimentazione dello stesso direttamente dal connettore di estensione del modulo SlimLine. Per ulteriori informazioni sulla connessione del display al connettore di espansione del modulo CPU consulta il Manuale riferimenti Hardware.

    in risposta a: Help utilizzo FB RS con memoria ritentiva #37674
    Sergio Bertana
    Amministratore del forum

    Ho realizzato un semplice programma (Vedi stampa) con il quale cerco di darti la spiegazione di cosa succede.

    Nel programma LDErrato, ho utilizzato il blocco funzione RS appoggiando l’uscita sulla variabile OFlag di tipo Retain, credo sia la stessa cosa che hai fatto tu. In questo caso non si ottiene quello che desideri, alla accensione la variabile è sempre in condizione di reset.

    All’interno del blocco funzione viene gestita una variabile locale che è poi copiata sulla sua uscita. Quindi alla accensione la variabile OFlag è attiva ma poi alla prima esecuzione del programma viene trasferito lo stato della uscita del blocco funzione RS (Che è resettato). Quindi in teoria si dovrebbe rendere Retain il blocco funzione, ma questo non è possibile.

    Per soluzionare il problema dai una occhiata al programma LDOk, viene utilizzato direttamente il Set ed il Reset sulla variabile OFlag che in questo caso mantiene il suo stato alla accensione. Allego anche il programma sorgente con cui puoi testare direttamente il funzionamento.

    in risposta a: SIM dati M2M da utilizzarsi per soluzioni di telecontrollo #37672
    Sergio Bertana
    Amministratore del forum

    Per quanto riguarda la connessione M2M in dial-up è corretta la tua sintesi, il modem GSM della sede effettua tramite comandi AT le chiamate dei modem GSM sparsi sul territorio, e solo la SIM del chiamante paga il costo della chiamata.

    Naturalmente la velocità di comunicazione delle connessioni GSM in dial-up è molto bassa 9600 baud con tempi di attesa tra i pacchetti rilevanti (Anche più di 1 secondo).

    Tutto cambia nelle connessioni GPRS, in questo caso non vi è più una chiamata tra i due modem, ma i modem sul territorio si connettono ad internet e possono stare perennemente connessi (Always On) viene pagato solo il traffico non il tempo. Per realizzare questo tipo di connessione occorre gestire con dei comandi AT la connessione alla APN del gestore e poi gestire il traffico TCP/IP con un server (Normalmente nel cloud). Per accedere alle periferiche occorre sempre passare dal server che andrà sviluppato in base alle Vs esigenze. I nostri sistemi SlimLine sono forniti con una libreria che gestisce autonomamente le connessioni GPRS (Vedi post).

    In alternativa al modem puoi utilizzare un router GPRS o UMTS vedi la gamma Conel, questi prodotti gestiscono autonomamente la connessione TCP/IP e utilizzando il servizio DynDNS possono anche essere raggiunti direttamente con un URL. Come opzione è possibile avere una scheda di interfaccia seriale che può essere vista come una virtual COM.

    in risposta a: Eseguire la formattazione dei dischi su SlimLine #37670
    Sergio Bertana
    Amministratore del forum

    Le CPU SlimLine compact utilizzano il nuovo sistema operativo SFW184 che ora viene installato anche sui moduli ARM7 versione B. Questo nuovo sistema operativo supporta nuove directories su memoria FLASH, eseguendo il comando dir senza parametri viene ritornato l’elenco delle directories. (Tra parentesi quadre sono riportati dei dati statistici sul file, il primo numero indica l’indice di allocazione nella directory, il secondo numero riporta il numero di accessi in scrittura al file).

    dir
    Directory of “”
    01/01/2010 01:00:00 <DIR>     System [0, 0]
    01/01/2010 01:00:00 <DIR>     Storage [1, 0]
    01/01/2010 01:00:00 <DIR>     Project [2, 0]
    01/01/2010 01:00:00 <DIR>     SDCard [3, 0]
    Space for 4 file(s) of 0 byte each

    Le directories System e Project sono utilizzate dal sistema operativo, tutte le altre sono a disposizione del programma utente. Per eseguire la formattazione occorre definire il comando Format seguito dal nome della directory da formattare e dal numero di files che si desiderano avere nella directory.

    Format Storage 4, formatta la directory Storage per contenere 4 files. Ecco il report del comando da Toolly.

    Format Storage 4
    Are you sure ? (Y,n)
    Format Ok, Files:4, FSize:67254, Time:62.511 (mS)

    Nella directory potranno ora essere trasferiti 4 files da 67Kb ognuno.

    in risposta a: Programmazione da remoto terminali Weintek #37669
    Sergio Bertana
    Amministratore del forum

    Da come mi dici immagino hai configurato un forwarding della porta 5900 dall’indirizzo pubblico verso l’indiririzzo IP privato del terminale nella tua rete. Ma la porta 5900 serve solo alla gestione del VNC, il terminale utilizza molte altre porte TCP/IP (Vedi post).

    Quindi da come si deduce dal post indicato per la programmazione remota del terminale devi eseguire un forwarding della porta 20248.

Stai visualizzando 15 post - dal 3,331 a 3,345 (di 4,373 totali)