Domanda

Sto lavorando con un pacchetto software di automazione basato su PC chiamato Think'n'Do creato da Contatto della Fenice Esegue l'elaborazione in tempo reale, legge gli ingressi/controlla la logica/scrive le uscite, tutto in un massimo di 50 ms.Abbiamo un server OPC che legge/scrive tag da un PLC ogni 10 ms.C'è un lungo ritardo nella scrittura di un tag nel PLC e nella rilettura del valore scritto (Think'n'Do (50ms) > OPC Server (10ms) > PLC (10ms) > OPC Server (10ms) > Think'n'Do (50ms)) il completamento del processo richiede fino a 6 secondi quando, secondo i miei calcoli, dovrebbe richiedere solo 130 ms.

Qualsiasi idea su dove cercare o sul motivo per cui potrebbe volerci così tanto tempo sarebbe utile.

È stato utile?

Soluzione

Dipende da come hai configurato il tuo client OPC per estrarre i dati.Quando ti iscrivi a un gruppo in OPC, puoi specificare una frequenza di aggiornamento.Il valore predefinito potrebbe essere 1 o anche 5, a seconda del client OPC.Esiste anche un limite che il server OPC potrebbe imporre alla frequenza dei dati aggiornati.Ciò si applica solo se il tuo client OPC si iscrive agli eventi di modifica dei dati.

L'altro modo in cui puoi procedere è eseguire letture/scritture asincrone o sincronizzate sul server OPC.Esistono anche diverse modalità di lettura.Dato che stai utilizzando OPC, puoi utilizzare qualsiasi client compatibile con OPC per testare il tuo server, questo ti dirà se il problema riguarda un'impostazione in Think'n'Do o è qualcosa con il PLC/server.

Il miglior client OPC per scopi generali che ho utilizzato è OPC Quick Client.Puoi ottenerlo con TOP Server qui: http://www.toolboxopc.com/Features/Demo/demo.shtml.Basta prendere la demo di TOP Server e installare OPC Quick Client.Puoi usarlo per connetterti al tuo server OPC e sfogliare i tag e vedere come appaiono i dati.Il secondo miglior client OPC che ho utilizzato è di ICONICS (chiamato OPC Data Spy) disponibile qui: http://www.iconics.com/support/free_tools.asp.

Utilizza il client OPC per vedere quanto velocemente puoi leggere i dati.Assicurati di impostare correttamente la frequenza di aggiornamento del gruppo.Penso che gli strumenti potrebbero fornire anche alcune informazioni sui tempi (ma sarai in grado di capire abbastanza facilmente un ritardo di 6 secondi).

Altri suggerimenti

Sembra che tu non stia utilizzando la cache nel server OPC.Normalmente i server OPC hanno una cache, se il tuo client si connette e non specifica che desidera utilizzare la cache non ottieni le prestazioni di cui potresti aver bisogno.Il server OPC è responsabile dell'aggiornamento della cache dal dispositivo, sebbene i criteri per l'aggiornamento possano differire da server OPC a server OPC.

Se il sistema esegue letture sincrone (bloccando le chiamate I/O), quindi implementa la logica dell'applicazione e quindi scritture sincrone (sempre bloccando), è necessario considerare che sono presenti più viaggi di andata e ritorno verso il PLC.

Una lettura sincrona coinvolge App(richiesta)->OPCServer->PLC->OPCServer->App(risultato).Questa è solo la lettura di un elemento (anche se puoi richiedere un gruppo di elementi in una volta sola).

Quindi una scrittura sincronizzata simile coinvolge anche App(Write)->OPCServer->PLC->OPCServer->App(Done).

Le letture e scritture asincrone e le letture e scritture di gruppo possono aiutare a ridurre il blocco dell'applicazione, ma fai attenzione che la tua applicazione possa far fronte a questo comportamento asincrono

L'altro aspetto da considerare è la configurazione del PLC. Sui PLC Allen-Bradley è presente un'impostazione del ritardo interscansione utilizzata per soddisfare le richieste I/O su reti esterne.Se quel tempo è breve e disponi di un'elevata larghezza di banda dei dati, ciò rallenterà le cose.

Ecco alcuni posti in cui cercare:Configurazione del client OPC, del client OPC stesso, del server OPC o del PLC stesso.

Ecco le cose che dovresti controllare:

  1. Configurazione del client OPC: il gruppo OPC a cui hai aggiunto i tag OPC dovrebbe avere una velocità di scansione elevata (ad es.Da 100 ms a 1 secondo a seconda dell'utilizzo).Mentre scrivi i valori, noti se i valori arrivano più velocemente?In caso contrario, potrebbe esserci un problema DCOM o di configurazione della rete.
  2. Client OPC: scarica un software OPC Client gratuito (probabilmente dal sito Web della OPC Foundation o dai principali fornitori di software OPC Server) per vedere se ottieni i valori più velocemente.Se è così, potrebbe esserci un problema con il tuo cliente.
  3. Server OPC: alcuni server OPC dispongono di strumenti diagnostici.Accendili e vedi a che ora si verificano effettivamente le scritture e a che ora avvengono effettivamente le letture.Se riesci a rispondere a queste domande, probabilmente puoi identificare se il colpevole del ritardo proviene dal PLC o dal server OPC.Osserva anche l'utilizzo della CPU del server OPC, se noti che utilizza più CPU del normale, probabilmente significa che il server OPC è sovraccarico, il che potrebbe deteriorare le prestazioni.
  4. Altro - Infine controlla il PLC, la rete funziona correttamente.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top