Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Luglio 16, 2013 alle 7:29 am in risposta a: Definizione e visualizzazione tempo di un timer su SlimLine #37706
Sergio Bertana
Amministratore del forumPer le Tags ti rimando a questo post dove sono trattate in modo esaustivo.
Luglio 16, 2013 alle 6:35 am in risposta a: Come utilizzare le Tags nei programmi EasyBuilder #37704Sergio Bertana
Amministratore del forumIntanto 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.
Sergio Bertana
Amministratore del forumCommetti 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.
Luglio 15, 2013 alle 7:49 am in risposta a: Configurazione Punto/Multipunto, UDP in broadcast #37702Sergio Bertana
Amministratore del forumHo 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.
Luglio 15, 2013 alle 7:40 am in risposta a: Configurazione Punto/Multipunto, UDP in broadcast #37700Sergio Bertana
Amministratore del forumAggiungo 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.
Luglio 15, 2013 alle 6:50 am in risposta a: Configurazione Punto/Multipunto, UDP in broadcast #37699Sergio Bertana
Amministratore del forumHo 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.
Luglio 12, 2013 alle 11:50 am in risposta a: Invio SMS con testo e variabili suddiviso su più righe #37698Sergio Bertana
Amministratore del forumCome 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.
Luglio 12, 2013 alle 9:01 am in risposta a: Visualizzazione array di variabili BOOL su indice #37696Sergio Bertana
Amministratore del forumEcco la macro BitArray che soluziona il problema.
macro_command main()
bool PLCBit
short Index, PLCWordGetData(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 visualizzazioneend 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).
Luglio 12, 2013 alle 8:54 am in risposta a: Visualizzazione array di variabili BOOL su indice #37695Sergio Bertana
Amministratore del forumL’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.
Luglio 11, 2013 alle 7:01 am in risposta a: Problemi di connessione seriale RS485 tra MT6070iH e PLC Twido #37694Sergio Bertana
Amministratore del forumHo 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.
Luglio 10, 2013 alle 4:14 pm in risposta a: Problemi di connessione seriale RS485 tra MT6070iH e PLC Twido #37676Sergio Bertana
Amministratore del forumAbbiamo 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).
Sergio Bertana
Amministratore del forumSembrerebbe 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.
Luglio 9, 2013 alle 8:59 am in risposta a: Problemi di trasmissione dati su porta COM2 in RS485 #37689Sergio Bertana
Amministratore del forumLa 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.
Luglio 9, 2013 alle 7:50 am in risposta a: Sistema di monitoraggio e controllo dell’abitazione #37688Sergio Bertana
Amministratore del forumNel 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.Luglio 8, 2013 alle 3:31 pm in risposta a: Rete di comunicazione Ethernet/Seriale con più CNC #37686Sergio Bertana
Amministratore del forumIl 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.
-
AutorePost