odx Inserito: 7 ottobre 2008 Segnala Inserito: 7 ottobre 2008 Salve, da poco uso protocolli, a parte qualche cosa a protocollo libero !QUello che mi chiedo è: alla fine, a che velocità comunica una rete modbus (nel mio caso tra s7-200 master e 4 inverter control technique slave) ?E' possibile che per mandare e ricevere in tutto 16 istruzioni, il tempo di ciclo complessivo sia addirittura di circa 1 secondo ?Il tutto usando le librerie prefatte della Siemens per il protocollo modbus (molto pratiche).Devo inviare 4 velocita', ricevere 4 amperaggi, ricevere 4 segnali di allarme e trasmettere 4 word di comando (start/stop ecc).Ho fatto una subroutine che cicla, a ogni messaggio corretto, scala in quello successivo, per poi riprendere il primo e via ... ma non posso pensare di gestire uno start/stop in cui ho bisogno di una prontezza di arresto non superiore al mezzo secondo.Cosa mi consigliate ? E' meglio che per quei due motori, utilizzi due uscite fisiche del plc ?Grazie !
rddiego Inserita: 7 ottobre 2008 Segnala Inserita: 7 ottobre 2008 Mediamente uno scambio su una rete 485 in modbus RTU è tra 60 e 80 msec.Quindi un secondo per 16 scambi mi sembra oltre che normale anche piuttosto buono.Per rispondere alle tue necessità: 1 - sicuramente il cablaggio è la cosa più veloce o comunque è solo praticamente dipendente dal ciclo di scansione del PLC.2 - separa le linee seriali o per singolo azionamento o per coppia di azionamenti3 - scrivi il software utilizzando delle regole precise di priorità.priorità massima alla scrittura comandi (ogni secondo o su evento)bassa priorita alla lettura allarmi (di solito è solo monitoraggio quindi puoi fare una lettura ogni 5 o più secondi)bassa priorità alla lettura delle misure (dipende cosa ne devi fare ma puoi leggere ogni 2 o 3 secondi)4 - utilizza altri protocolli magari in ethernet se supportati
del_user_56966 Inserita: 7 ottobre 2008 Segnala Inserita: 7 ottobre 2008 (modificato) a che velocità comunica una rete modbusLa domanda doveva essere a che velocità comunica un S7 usando il protocollo Modbus,Il modbus non ha velocità pre-definite dallo Standard!.. Mediamente uno scambio su una rete 485 in modbus RTU è tra 60 e 80 msec.Anche questo non è corretto, le tempistiche sono dovute al Baudrate con cui comunichi al tipo di comando usato nonchè nel caso dei comandi multiregistro alla quantità stessa di registri utilizzati! Modificato: 7 ottobre 2008 da alen
odx Inserita: 8 ottobre 2008 Autore Segnala Inserita: 8 ottobre 2008 (modificato) Ho scelto il modbus per una questione economica: la s7-200 integra una porta freeport e con le librerie prefatte era abbastanza semplice utilizzarla in modbus, e gli inverter control technique commander sk hanno integrata la porta modbus su rj45.Siccome non era una necessita', a parte per un inverter che mi ha evitato la bruttezza visiva di un potenziometro di fianco a un HMI , non avevo bisogno di scambio dati, devo fare start e stop e ricevere degli allarmi.Ovvio che un quadro cablato in Bus fa piu' figura di uno cablato a cordina blu no ? E poi con un HMI, almeno settare le velocita' degli inverter e leggerne gli assorbimenti, mi sembra il minimo.Come faccio a separare la linea per azionamento o coppia ? E' un parallelo di due fili che esce da una porta seriale del plc e va a ogni drive, ed ho solo quella disponibile sul plc.Scrivere il sw in un modo cosi' preciso, penso sia complicato da fare, cioe' mi impegna parecchie risorse; ogni messaggio inviato necessita di un tempo di risposta e se nel frattempo invio un messaggio prioritario, questo mi da risposta di errore linea occupata. Purtroppo mi rimangono pochi giorni e poco tempo per fare altre prove, sono piu' sicuro a pilotare i due drive con un comando di marcia alla vecchia maniera; almeno ancora per questa macchina sara' cosi'.Per i due motori che portano il materiale sotto conteggio, optero' quindi per il comando fisico, non posso permettermi probabilmente nemmeno mezzo secondo di ritardo, e tutto il resto, di cui non ho urgenze, lo lascio ciclare in una subroutine dedicata, probabilmente nemmeno sotto interrupt, se proprio mi rallenta il ciclo faro' una scansione ogni tot secondi con un timer.Grazie per le risposte Modificato: 8 ottobre 2008 da odx
rddiego Inserita: 8 ottobre 2008 Segnala Inserita: 8 ottobre 2008 CITAZIONEMediamente uno scambio su una rete 485 in modbus RTU è tra 60 e 80 msec.Anche questo non è corretto, le tempistiche sono dovute al Baudrate con cui comunichi al tipo di comando usato nonchè nel caso dei comandi multiregistro alla quantità stessa di registri utilizzati!Ho detto mediamente considerando configurazioni medie (nelle mie esperienze). Quindi non è un dato corretto relativo ad un caso ma è mediamente così.
rddiego Inserita: 8 ottobre 2008 Segnala Inserita: 8 ottobre 2008 ODXCome faccio a separare la linea per azionamento o coppia ? metti un'altra scheda 485ho solo quella disponibile sul plc.allora niente...... cambia PLC: mettine uno più adatto alle reti modbus ........ ma non ti dico quale! ehehScrivere il sw in un modo cosi' preciso, penso sia complicato da fare, cioe' mi impegna parecchie risorse; ogni messaggio inviato necessita di un tempo di risposta e se nel frattempo invio un messaggio prioritario, questo mi da risposta di errore linea occupata.se non hai mai affrontato il problema di dover "semaforizzare" delle comunicazioni ok potresti doverci mettere troppo tempo (dipende anche dalla tua esperienza in programmazione ovviamente).Il messaggio prioritario non deve interrompere quello in corso, ma si mette in mezzo tra quello in corso e quello che era programmato essere il successivo. Nel peggiore dei casi avrai un ritardo nella reazione del sistema equivalente ad un ciclo plc + una trasmissione modbus che io posso stimare così a max 150 msec.
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