Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 3,211 a 3,225 (di 4,259 totali)
  • Autore
    Post
  • in risposta a: Definizione e visualizzazione tempo di un timer su SlimLine #37706
    Sergio Bertana
    Amministratore del forum

    Per le Tags ti rimando a questo post dove sono trattate in modo esaustivo.

    in risposta a: Come utilizzare le Tags nei programmi EasyBuilder #37704
    Sergio Bertana
    Amministratore del forum

    Intanto cosa sono le Tags, per Tag si intende una etichetta che identifica una variabile, è molto più semplice e mnemonico utilizzare un nome per indicare una variabile piuttosto che il suo indirizzo fisico. Per esempio nel caso di un PLC con protocollo Modbus potremo assegnare la Tag PulsanteStart alla variabile BOOL (Tipo 0x) ad address 40128.

    Nel programma EasyBuilder potremo poi abbinare ai vari oggetti grafici la variabile definendone il nome (Tag) e non il tipo e l’indirizzo. EasyBuilder ha la definizione di tutte le variabili interne al terminale (Esempio LB-9000 initialized as on) quindi quando si vuole utilizzare una variabile interna per abbinarla ad un oggetto basterà sceglierla dall’elenco (Screenshot). La stessa cosa è possibile con le variabili PLC ma prima occorre definire le Tags allego un estratto manuale EasyBuilder che tratta l’argomento.

    Attivando il pulsante Tag si attiva la finestra di definizione delle Tags, da cui scegliendo le Tags di progetto è possibile definire le varie etichette abbinando ad ognuna il tipo e l’indirizzo della variabile fisica nel PLC (Screenshot). Nell’esempio l’etichetta Pulsante Stop è stata assegnata alla variabile 0x 40129 del PLC SilimLine.

    Con i pulsanti di esportazione ed importazione è possibile gestire le Tags utilizzando programmi esterni (Excel o text editor). Alcuni PLC prevedono infatti l’esportazione delle variabili in formato Excel e quindi con il tool di importazione è possibile importarle direttamente nel programma EasyBuilder.

    in risposta a: Informazioni sull’utilizzo del simulatore PLC #37703
    Sergio Bertana
    Amministratore del forum

    Commetti l’errore che commettono in tanti, per la simulazione utilizzi il tasto Simulation mode all’interno di LogicLab (Screenshot). Questa funzione non è ancora attualmente utilizzabile, in alternativa abbiamo realizzato un programma esterno a LogicLab (ePlcEmulator) che deve essere eseguito in background (Vedi post).

    Da LogicLab occorre connettersi al simulatore come ci si connette ad un sistema target esterno (Tasto Connects to the target). In questo modo si possono fare le stesse operazioni che si attuano quando si è connessi al sistema target reale.

    Naturalmente il simulatore non ha tutte le funzioni embedded presenti nel target SlimLine reale, nel forum puoi trovare programmi di esempio realizzati proprio per il simulatore, in questo post si trova un programma con gestione di una regolazione PID.

    in risposta a: Configurazione Punto/Multipunto, UDP in broadcast #37702
    Sergio Bertana
    Amministratore del forum

    Ho effettuato il test anche su ATC-2000, ma non accetta e non invia i dati su indirizzo di broadcast.

    Per quanto riguarda il convertitore TRP-C37, ho verificato che è in grado di ricevere i dati inviati in broadcast nello stesso modo dell’ATC-1000 (Screenshot impostazione). Come per l’ATC-1000 anche il TRP-C37 non può inviare dati ad indirizzo di broadcast.

    in risposta a: Configurazione Punto/Multipunto, UDP in broadcast #37700
    Sergio Bertana
    Amministratore del forum

    Aggiungo che ho testato anche la possibilità di configurare l’ATC-1000 per inviare i dati in broadcast (Ho impostato come remote address 192.168.0.255) ma in questa configurazione l’ATC non invia i dati. Probabilmente non è gestito l’invio verso indirizzo broadcast.

    in risposta a: Configurazione Punto/Multipunto, UDP in broadcast #37699
    Sergio Bertana
    Amministratore del forum

    Ho effettuato le prove con un ATC-1000 configurato in connessione UDP (Screenshot), per il test ho utilizzato Toolly.

    Come si vede dallo screenshot, inviando la stringa “From UDP” in broadcast UDP (192.168.0.255) sulla porta 21, la stringa viene ricevuta dall’ATC-1000 che la ritorna in seriale (E’ connesso con la porta COM4 del PC). Naturalmente la stessa stringa è ricevuta anche dal PC che è in ascolto sulla porta 21.

    Inviando la stringa “From serial” dalla porta COM4 la stringa viene inviata dall’ATC-1000 all’indirizzo 192.168.0.88 e ricevuta dal PC che è in ascolto sulla porta 21. La stringa ricevuta è visualizzata nella finestra di Toolly.

    Quindi da queste prove possiamo affermare che anche l’ATC-1000 può essere utilizzato nella configurazione da tè richiesta. Il PC invia i dati in broadcast a tutti gli ATC-1000 che saranno configurati per inviare i dati al solo IP del PC.

    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.

Stai visualizzando 15 post - dal 3,211 a 3,225 (di 4,259 totali)