Vai al contenuto
PLC Forum


Abs Xcomm - come controllare lo stato della connessione


Messaggi consigliati

Inserito: (modificato)

ho realizzato un'applicazione di monitoraggio VB6 dove dovrei anche verificare lo stato della connessione tra il pc e l'hplc

l'hplc e' connesso al pc tramite rete ethernet con convertitore ETM3

guardando tra i vari componenti di xcomm sono riuscito gia' a controllare se il server e' attivo, se e' in standby ...pero' se spengo l'hplc o se stacco fisicamente il cavo di rete non riesco a trovare un flag che mi possa dare questo tipo di anomalia

qualcuno sa indicarmi come posso fare ?

grazie, ciao a tutti :)

Modificato: da bumbi

del_user_56966
Inserita:
qualcuno sa indicarmi come posso fare ?

Devi usare i flag di sistema K0, sono disponibili sia lato Server che lato Workstation...

Dim WatchdogHP1 as Boolean

WatchdogHP1 = XComm1.K0( 1000 + Indirizzo HP, indirizzo del server)

se il flag diventa "Vero" l'HomePLC è fuori linea...

la stessa cosa puoi ottenerla senza dover sorvegliare i K0, ma per evento all'attivarsi del Watchdog e alla sua risoluzione tramite

l'evento "Watchdog" di XComm++

Ind riporta l'indirizzo fisico del dispositivo

V_Address riporta quello virtuale

Private Sub XComm1_Watchdog(ByVal Status As Boolean, Data As String, V_Address As Integer, Ind As Integer, Srv As Integer)

' Eventi di Watchdog

If Status Then

If Ind = 1 then // "fai qualcosa"

Else

If Ind = 1 then // "fai qualcosa" ' Watchdog Status finished!

End If

End Sub

del_user_56966
Inserita: (modificato)

se poi ti serve di sapere se un nodo in particolare va fuori linea,

puoi osservare i flag cumulativi IH149, IH199, ecc.. che trovi sugli ingressi Building

la funzione di controllo degli IH è:

XComm1.IH (Numero Flag, Numero HP, Numero Server)

se un cumulativo si attiva puoi eseguire un analisi sui singoli moduli slave tramite i corrispondenti IH...

con questa modalità sono diagnosticabili tutti gli stati di funzionamento dell'intero sistema.... :)

Modificato: da Aleandro2008
del_user_56966
Inserita:

Rivedendo nell'_help nel primo esempio non devi mettere 1000 ma 1500

WatchdogHP1 = XComm1.K0( 1500 + Indirizzo HP, indirizzo del server)

con 1000 infatti sorvegli che non sia fuori linea il Server... :lol:

Inserita:
WatchdogHP1 = XComm1.K0( 1500 + Indirizzo HP, indirizzo del server)

con 1000 infatti sorvegli che non sia fuori linea il Server...

ecco, propio questo mi mancava.... :thumb_yello:

non riuscivo a capire a cosa si riferivano questa serie di watchdog perche' nell . indica "watchdog LOCALE 1" ecc...

in effetti per il controllo del standby server controllavo gia' il flag K0 352

allora alla fine, per avere un controllo se il server e' connesso e la connessione e' fisicamente ok, ho usato:

Xcomm1.connectSRV per controllare se il server e' attivo

Xcomm1.K0 (352,0) per controllare se il server e' in standby

Xcomm1.K0 (1501,0) per controllare il watchdog del plc (e quindi anche la connessione)

grazie Aleandro :)

del_user_56966
Inserita:
Xcomm1.connectSRV per controllare se il server e' attivo

Xcomm1.K0 (352,0) per controllare se il server e' in standby

Xcomm1.K0 (1501,0) per controllare il watchdog del plc (e quindi anche la connessione)

Si peròcon lo zero alposto dell'indice del server controlli solo lato WS, in effetti dovresti usare il numero

corretto di server, normalmente è 1

quindi il codice diventa!

XComm1.K0 (352,1) per controllare se il server e' in standby

XComm1.K0 (1501,1) per controllare il watchdog del HomePlc

mentre la funzione Xcomm1.connectSRV identifica se sei connesso al server ma solo se lavori sulla stessa macchina di questo,

mentre se lavori in rete, devi sorvegliare XComm1.ConnectWS, mentre XComm1.K0H( 1000 + numero server, 0) identifica da entrambe i lati

se il server è fuori linea...

del_user_56966
Inserita:

In realtà le funzioni Connect permettono solo di sapere se XComm è connesso, ma per esempio se lo si usa in rete,

potresti essere connesso alla Workstation, ma il Server potrebbe essere comunque fuori linea,

per cui i dati di questo non sarebbero disponibili... :)

Inserita:
Si peròcon lo zero alposto dell'indice del server controlli solo lato WS, in effetti dovresti usare il numero

corretto di server, normalmente è 1

.. si, vero...grazie....il bello e' che nel programma in effetti ho messo 1....

chissa' poi perche' qui ho scritto 0.... :blink: ...forse e' meglio che faccio una pausa.. :lol:

comunque grazie ancora per le ulteriori informazioni.... :)

in questo caso utilizzo solo un pc connesso diretto al plc tramite ETM3, per cui penso che i controlli che ho indicato prima siano sufficienti..

..a proposito, ho visto che prima indicavi le funzioni Xcomm1.IH...

volevo provare la lettura diretta usando Xcomm1.DIH, pero' questa funzione non la trova...magari perche' nella versione gratuita non e' prevista ? :rolleyes:

del_user_56966
Inserita:
volevo provare la lettura diretta usando Xcomm1.DIH, pero' questa funzione non la trova...magari perche' nella versione gratuita non e' prevista ?

esistono due oggetti XComm, quello XC++ e l'altro XC Building è possibile che non lo trovi perchè su quello

che stai utilizzando non serva!... :)

Inserita:

domanda (aspettando che mi arrivi l'hplc )

lo sviluppo di un'applicazione per la supervisione dell'hplc deve essere fatta obbligatoriamente in visual basic??

il linguaggio si sposa meglio con applicazioni di supervisone domotica basata su hplc?

in sostanza devo imparare a programmare in VB o posso programmare nei linguaggi che già conosco?(c,c++,java)

del_user_56966
Inserita:
lo sviluppo di un'applicazione per la supervisione dell'hplc deve essere fatta obbligatoriamente in visual basic??

Visual Basic 6

Visual basic.NET

C#

C++

C++.NET

VBA

Delphi

Excel

Word

Movicom

Cimplicity

Desigo

Citec

ecc..

scegli da dove lo vuoi fare... :lol:

il linguaggio si sposa meglio con applicazioni di supervisione domotica basata su hplc?

userei sempre sicuramente quello che mi è più familiare...

in sostanza devo imparare a programmare in VB o posso programmare nei linguaggi che già conosco?(c,c++,java)

puoi usare qualsiasi linguaggio (anche di script per esempio VBScript...) che possa referenziare un oggetto COM

ovvero quelli che tutti continuano a chiamare "ActiveX"...

se poi utilizzi la connessione diretta tramite Modbus RTU non vi sono più limiti di connessione è anche la soluzione utilizzata

da quelli che operano con Linux, ma anche su questo fronte ci sono grosse novità in arrivo... :lol:

inoltre so che dovrebbero uscire altre tipologie di comunicazione ma non so dirti quando...

Inserita: (modificato)
posso programmare nei linguaggi che già conosco?(c,c++,java)

si, puoi usare anche questi linguaggi, tant'e' vero che nel cd dell'ABS xcomm ci sono anche parecchi demo ed esempi di programmi realizzati appunto in C++ e java

...oops, scusa..non avevo visto la risposta di Aleandro.. :rolleyes:

Modificato: da bumbi
Inserita:

perfetto propio quello che volevo sapere,

avevo gia iniziato a studiare VB e devo dire che è molto intuitivo

del_user_56966
Inserita:
avevo gia iniziato a studiare VB e devo dire che è molto intuitivo

VB6 come VBA sono sicuramente tra i linguaggi più user friendly ma anche Visual Basic.NET

se la cava...

qui vedi un esempio d'animazione applicata al sensore della centrale di sicurezza...LINK... :)

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...