birillo1 Inserito: 29 novembre 2006 Segnala Share Inserito: 29 novembre 2006 (modificato) Ciao a tutti.Su un impianto stavamo effettuando mediante una cpu premium delle letture simultanee su 2 slave modbus distinti (connessi sulla porta pcmcia) mediante due istruzioni SEND_REQ e tutto funzionava corettamente.In seguito è stata aggiunta una richiesta modbus READ_VAR su altro slave modbus connesso in ethernet dietro ad un convertitore seriale ethernet/modbus.Gli indirizzamenti nelle istruzioni sono corretti però succede quanto segue:I dati letti con SEND_REQ vengono "sporcati" (completamente sballati) durante l'effettuazione del READ-VAR, mentre i dati letti con READ_VAR sono corretti.(Le word su cui vengono scritti i valori non sono acavallate e non ci sono errori di questo tipo)In seguito la situazione è peggiorata ed l'istruzione READ-VAR ha smesso di funzionare restitutendo come codice errore 000b (risorse insufficienti)Allo stesso modo hanno smesso di funzionare correttamente le due istruzioni SEND_REQ (dati completamente errati e privi di senso) anche cancellando l'istruzione READ_VARPer risolvere questo e ripristinare almeno la configurazione iniziale sono state condizionate (una con l'altra e viceversa - mediante il bit di attività) le due istruzioni SEND_REQ che hanno ripreso a funzionare correttamente. (prima erano condizionate solo con il bit di attività rispettivo)Mi chiedo:Le istruzioni di comunicazione possono essere lanciate simultaneamente ??Su un documento telemecanique risulterebbe di si....E' possibile che istruzioni diverse di comunicazione modbus indirizzate correttamente si influenzino tra di lororestituendo dati non attendibili ?? (Le risposte non tengono conto degli indirizzamenti??)Avete qualche soluzione ? Modificato: 29 novembre 2006 da birillo1 Link al commento Condividi su altri siti More sharing options...
Stefano Sormanni Inserita: 30 novembre 2006 Segnala Share Inserita: 30 novembre 2006 siccome io ci ho sbattuto il naso su questi read_var e write_var ti consiglio vivamente di condizionare la lettura scrittura su il bit di attività, inoltre crea dei "token" o "step" dove ciclicamente fai la lettura di ciò che ti interessa.io in linguaggio IL faccio:ld %mw100:x0 (bit di attività)st %m100ldf %100s step_2r step_1ldn %mw100:x0and step_1[read_var(...)].......questo ti consente di eseguire volta volta (e solo a risposta avvenuta) il passagio alla lettura successiva.buona fortuna Link al commento Condividi su altri siti More sharing options...
Claudio Monti Inserita: 30 novembre 2006 Segnala Share Inserita: 30 novembre 2006 Anch'io ti consiglio di lanciare un'istruzione alla volta testando il bit di attivita' e le risposte che ti vengono restituite... Link al commento Condividi su altri siti More sharing options...
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