Smanettone15 Inserito: 25 febbraio Segnala Inserito: 25 febbraio Buongiorno a tutti. Prima di niziare con la richiesta chiedo scusa per la domanda forse banale ma non essendo un programmatore professionista a volte mi blocco su ostacoli probabilmente banali. Veniamo alla richiesta. Fino ad oggi ho sempre utilizzato con i pannelli Weintek il LOGO della Siemens e per farlo comunicare con il pannello operatore utilizzo la tabella variabili presente nel software. Adesso voglio imparare a gestire anche il sistema EASY E4 dellla EATON e mi sono trovato davanti a questo problema. La weintek non ha sviluppato un driver specifico per il PLC della EATON quindi devo utilizzare il protocollo MODBUS TCP/IP. Nel software ( Easy Soft 8 ) non trovo una tabella nella quale venga dato un indice delle variabili utilizzate, però è presente un comando che permette di esportare un file con l'indice delle variabili. Faccio un esempio. Ipotizzo di voler attivare una uscita con un ritardo impostabile rispetto all'attivazione dell'ingresso. I blocchi presenti nel programma sonno i seguenti. Ingresso I01, Merker M01, Entrambi i blocchi entrano in un modulo OR la cui uscita abilita il temporizzatore ritardato all'eccitazione. L'uscita del temporizzatore attiva l'uscita Q01. Sull'ingresso paramtri del timer ho messo un merker word MW01 per poter impostare il tempo di ritardo attivazione uscita. Il risultato del file generato è il seguente. Name Type Address M001_M016[1..16] BIT R1001.0 MW001 WORD R1001 I01 BIT MI1 Q01 BIT M1 RTC_EASY[0..5] WORD R5000 Nella guida della EATON vengono riportati i seguenti parametri per utilizzare il protocollo MODBUS Ingressi 0X02 da I1 a I128 Uscite 0X01 da Q1 a Q128 Merker 0X02 da M1001 a M1512 Merker word 0X04 da MW1001 a MW1512 Sul pannello Weintek imposto i seguenti parametri Protocollo di comunicazione Modbus TCP/IP zero addressing Pulsante virtuale con indirizzo 0x2 - 1001 (M001) Lampada uscita Q01 indirizzo 0x single bit - 1 Se premo il pulsante virtuale abbinato a M001 la lampada si accende. Per utilizzare il merker word credo sia giusto usare un campo di tipo immissione numero ma quando apro la sceda dove impostare l'indirizzo trovo solo indirizzi di tipo 3X , 4X , 5X, 6X. Come posso impostare il valore 0X4 - 1001 per poi poter inserire un valore numerico nel relativo campo? Ho anche il dubbio di non aver male interpretato la tabella degli indirizzi visto che quella della EATON non combacia con quella del protocollo MODBUS standard. Scusatemi per la lungaggine ma vorrei dare il maggior numero di informazioni possibile a chi mi vorrà rispondere. Grazie
Ctec Inserita: 25 febbraio Segnala Inserita: 25 febbraio Prova a postare la mappatura. O il manuale relativo. Per le definizioni delle aree della mappa sono: 0x... Lettura/scrittura singole uscite (discrete coil) 1x... Lettura singoli ingressi (discrete input) 3x... Lettura registri ingressi (input register, insieme di 16 ingressi) 4x... Lettura/scrittura multi registri holding (multiple register, ogni registro sono 16 bit) 6x... Lettura/scrittura singolo registro holding (single register, ogni registro sono 16 bit) Ogni mappatura corrisponderà a un comando (due distinti nel caso di lettura/scrittura) Nella mappatura originale Modbus, quel numero prima della x definisce la prima cifra della mappa (per esempio, 4x123 corrisponde al registro 40123). Occhio che alcuni server hanno indirizzo registro a partire da 1, altri a partire da 0
Smanettone15 Inserita: 26 febbraio Autore Segnala Inserita: 26 febbraio Grazie per la risposta ti chiedo però se possibile di rispondermi con degli esempi. Ti allego alcune immagini con parte degli indirizzi del plc. Se possibile mi dici che indirizzo inseriresti per ogni oggetto del display. Considera che utilizzo una comunicazione Modbus TCP zero addressing. Esempio 1 voglio leggere e scrivere un valore numerico sul merker word 1 (0X6 1001). Cosa scrivi nell'indirizzo del campo numerico del display? Abiliti oppure no la spunta su leggi/ scrivi diversi indirizzi? Esempio 2 Voglio attivare una uscita se attivo un merker bit (0x5 1001). Cosa scrivo nell'indirizzo dell'oggetto Imposta bit? Ti chiedo scusa ma non ho mai usato ul protocollo modbus e mi mancano le basi. Mi serve qualche indicazione per capire come ragionare. Grazie Pietro
Smanettone15 Inserita: 26 febbraio Autore Segnala Inserita: 26 febbraio Ho visto adesso che il plc utilizza il formato little-endian. Non so dirti se questo è importante.
Smanettone15 Inserita: 27 febbraio Autore Segnala Inserita: 27 febbraio (modificato) Buongiorno a tutti avevo posto una domanda simile in una altra sezione ma mi rendo conto che questa è la sezione corretta quindi rifaccio la domanda cercando di essere più chiaro. Devo interfacciare un controllo EATON easy E4 con un pannello Weintwk mediante comunicazione modbus TCP. Nel pannello ho utilizzato la configurazione Modbus TCP zero addressing ( non è detto che sia la più corretta quindi accetto suggerimenti) e ho inserito l'indirizzo IP e la porta di comunicazione per collegarmi al PLC. La comunicazione avviene e qualche comando di base sono riuscito a farlo funzionare ho però difficoltà a capire come impostare gli indirizzi del PLC negli oggetti del display. Esempio Indirizzo PLC ingresso I1 per leggere lo stato dell'ingresso con una lampada bit che codice funzione e indirizzo inserisco? Indirizzo PLC uscita Q1 per leggere lo stato dell'uscita con una lampada bit che codice funzione e indirizzo inserisco? Indirizzo PLC Merker bit M1 per leggere lo stato del merker con una lampada bit che codice funzione e indirizzo inserisco? Per modificare lo stato 0/1 del merker con un pulsante imposta Bit che codice funzione e indirizzo inserisco? Indirizzo PLC Merker Word MW1 per leggere il valore del merker con un campo numerico che codice funzione e indirizzo inserisco? Per scrivere invece nel Merker un valore diverso che codice funzione e indirizzo inserisco? Non mi è chiaro se devo utilizzare la tabella dei TAG oppure inserire i valori direttamente nei campi degli oggetti Considerando che sia il Merker Word che Bit hanno lo stesso indirizzo come li identifico in modo univoco. Perdonatemi ma è evidente che mi mancano le basi e mi serve qualche spunto per cominciare a capirci qualcosa. Allego alcune parti del manuale del PLC Modificato: 27 febbraio da Smanettone15
Ctec Inserita: 28 febbraio Segnala Inserita: 28 febbraio Il 27/02/2025 alle 07:44 , Smanettone15 ha scritto: Indirizzo PLC ingresso I1 per leggere lo stato dell'ingresso con una lampada bit che codice funzione e indirizzo inserisco? Expand Innanzi tutto, non devi specificare il codice funzione. Il pannello deciderà la funzione adatta a seconda dell'uso del registro. Per esempio, definito un registro a bit, potrai leggerlo automaticamente se lo metti come indicatore, oppure verrà scritto se messo come pulsante. Dalla mappa postata, l'ingresso I1 è mappato nel registro 1 degli input (scriverai 1x0001). Per l'uscita Q1, l'indirizzo è 0x0001. Per Merker bit M1 (odio la parola Merker, per me è Memoria), è mappato in 1001, per cui per leggere o scrivere userai 0x01001 (vedi la mia precedente risposta nell'altra discussione). Per Merker Word MW1, è mappato in 1001, per cui per leggere o scrivere la word userai 4x01001. Come vedi, non si specifica mai il codice funzione, ci pensa il pannello, mentre userai il tipo di indirizzo specificato per l'operazione come specificato nella tabella che ti appare nelle Proprietà Dispositivo che si apre in Impostazioni Parametri di Sistema facendo doppio click (o Impostazioni) sul dispositivo da interrogare. Il discorso se usare il "based zero" è un po' complicato da spiegare. E' dovuto al fatto che per ottenere l'indirizzo reale di un registro modbus, originalmente al valore doveva essere tolto 1 (per esempio, se volevo leggere il registro 40012, il protocollo avrebbe inviato la richiesta con indirizzo 0011). Questo perché ciascuna area cominciava sempre con 1 e finiva con 9999. Poi il sistema è stato espanso in modo da gestire tutti i valori contenuti in una word a 16 bit che compone l'indirizzo del registro (da 0 a 65535). Per questo, ora non viene quasi mai indicata l'area del registro (il primo numero, quale 4xxxx), e si può partire direttamente da 0. Te lo noterai perché altrimenti dovrai correggere (togliendo 1) dall'indirizzo. Per esempio, se leggi l'ingresso I2 e te lo vedi nel bit 1, dovrai togliere 1 dall'indirizzo.
Livio Orsini Inserita: 28 febbraio Segnala Inserita: 28 febbraio Smanettone 15, hai fatto un'operazione non permessa dal regolamewnte perchè è causa di confusione e disguidi! Avevi già aperto una discussione sul medesimo argomento ed hai anche ricevuto risposte. Non reiterare questo comportamento! Ora le due discussioni sono riunite; non aprirene di nuove su questo argomento.
Smanettone15 Inserita: 28 febbraio Autore Segnala Inserita: 28 febbraio Grazie Ctec. Dopo alcuni tentativi sono riuscito a far dialogare Display e plc. Quello che non comprendo è questo. Con un pulsante imposta bit metto a 1 il merker M1 il quale attiva il relè temporizzato che attiva l'uscita Q1. Il tempo di ritardo è memorizzato su MW1 (campo numerico). Come test imposto MW1 a 2.000 in modo da avere un ritardo di 2 secondi. Appena attivo M1 il valore visualizzato nel campo numerico diventa 2.001 appna si attiva Q1 il valore visualizzato diventa 2.003. Se nel programma e nella maschera del display cambio da MW1 a MW2 il problema non si manifesta. Suggerimenti????
84paolo Inserita: 1 marzo Segnala Inserita: 1 marzo Secondo me le aree M1 e mw1 sono nella stessa area di memoria e quindi tu imposti 2000 e poi impostando a 1 il primo bit aggiunge 1. Devi usare delle memorie non sovrapposte
Smanettone15 Inserita: 1 marzo Autore Segnala Inserita: 1 marzo Il 01/03/2025 alle 08:20 , 84paolo ha scritto: Secondo me le aree M1 e mw1 sono nella stessa area di memoria e quindi tu imposti 2000 e poi impostando a 1 il primo bit aggiunge 1. Devi usare delle memorie non sovrapposte Expand Hai perfettamente ragione. Non mi ero accorto di questo problema. Con il sistema utilizzato fino a ieri non dovevo preoccuparmi di verificare le aree di memoria utilizzate dai merker. Il sistema le assegnava in automatico. Leggendo il manuale di questo plc invece mi sono reso conto dell'errore. Ringrazio tutti per le informazioni date. Adesso mi diverto con questo nuovo giocattolo
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora