Vai al contenuto
PLC Forum


Diagnostica Libnodave - In particolare sullo stato del plc(Start, Stop)


Messaggi consigliati

Inserito:

Ciao a tutti!!

Qualcuno saprebbe dirmi come posso sapere con libnodave se il PLC è in Start invece che in Stop?

...e magari anche qualcos'altro sulla diagnostica in generale

Grazie


Inserita:

Io non ho mai fatto quel tipo di controlli, ma leggendo della documentazione di libnodave ho visto che è possibile leggere i dati relativi al SZL:

quindi sei in grado di conoscere praticamento tutto della diagnostica del PLC.

Io ho fatto una prova veloce con:

testISO_TCP -z 192.168.100.177 e ho visto che legge tutto il buffer SZL dando un sacco di informazioni (tra cui stato CPU)

Se provi con il collegamento seriale è prevista una funzione per leggere anche solo uno specifico SZL_ID (controlla sul manuale siemens per la lista).

Negli esempi potresti provare con :

testMPI --szlID=0x0111 COM1 per leggere tipo della CPU

testMPI --szlID=0x0174 COM1 per leggere lo stato dei led

Ciao

BR1

Inserita:

Ho appena fatto la prova con:

testMPI --szlID=0x19 COM1 per leggere lo stato dei led

Bellissimo !

Si riesce a capire anche il lampeggio dei LED !

BR1

Inserita:

Ciao BR1!

mi sono dimenticato di aggiungere che stavo utilizzando visual basic...

ho fatto alcuni tentativi, ma non riesco a capire come fare ad interrogare 0x19,

(o comunque un qualsiasi ...x...)mi chiede ID ed index, ho provato dividendoli,

ma studiando i risultati in run ed in stop le cose non cambiano...

grazie, matteorusich

Inserita:

Appena possibile faccio una prova anche con VB6, ma controllando il software io farei così:

ID = &H19

res = daveReadSZL(PLC.dConn, ID, 0, buffer(0))

in questo modo (provato in C) hai tutti gli indici in una matrice e vedi indici e valori,

se vuoi controllare solo il led di RUN dovrebbe essere:

ID = &H19

Index = &H04

res = daveReadSZL(PLC.dConn, ID, Index, buffer(0))

se vuoi controllare solo il led di STOP dovrebbe essere:

ID = &H19

Index = &H05

res = daveReadSZL(PLC.dConn, ID, Index, buffer(0))

P.S.

Se hai un poco di pazienza cerco di modificare l'esempio nella sezione up_download in modo da testare i led

(approffitterò di sabato sera, visto che la mia signora sarà incollata al televisore :brooding: per Sanremo)

Ciao

BR1

matteorusich
Inserita:

ho visto che mettendo &H19 oppure solamente 19 non cambia niente, quindi credo di aver rifatto nuovamente tutte le prove di ieri con esiti ugualmente negativi;

in pratica richiamo la funzione( credo di richiamarla in modo corretto poichè se metto id 19 mi da ok e se per esempio metto id 1 mi da invalid szl), dopodiche visualizzo 500 byte letti dal buffer e 500 letture davegetu8(le 2 liste sono praticamente identiche), ma non ci sono differenze tra la prova con il plc in run e quella con il plc in stop

ciao

Inserita:

Ciao

Ho aggiornato l'esempio in VB6 con l'utilizzo dell librerie libnodave

qui in allegato ti mostro le due videate con la lettura dello stato dei led (SZL_ID = 0x19 = 25)

Buon divertimento

BR1

matteorusich
Inserita:

Grazie e mille BR1!!!!

Sei stato davvero esauriente!! ;)

Inserita:

Ciao a tutti.

Ho letto la discussione ed anche un pò rapidamente quindi, perdonate se faccio una domanda la cui risposta è gia da qualche parte. Ho intenzione di usare la libreria Libnodave per comunicare via profibus (ovviamente sul pc c'è la 5611 o simile )

oppure con la "saponetta" MPI .

E' possibile realizzare questa cosa.

grazie

Inserita:

La risposta è si se comunichi in MPI...

ala problematica potrebbe essere a livello di licenze:

1) Utilizzando la CP5611 o la "saponetta" USB devi utilizzare la DLL libnodave in modalità S7ONLINE (ID=50) che sfrutta a sua volta le librerie della siemens: per farla corta deve essere installato il software siemens per configurare l'interfaccia PG/PC

2) Se utilizzi la saponetta seriale o il collegamento TCP/IP la libreria libnodave è completamente autonoma e non hai problemi di licenze in quanto distribuita sotto licenza LGPL....

vedi tu, io pago persino il canone rai !!!!

Ciao

BR1

Comunque se scariche le librerie libnodave vi sono vari doc che ti spiegano tutto, cercando con parola chiave "libnodave" trovi anche su questo forum vari notizie.

Inserita:

Ho fatto una rapida analisi mentale ma confesso che il termine "saponetta" mi è nuovo.

Inserita:

Eh eh eh, devo dire che il termine saponetta io l'ho sentito da un amico ed ho inizioato pure io ad usarlo.

Poi col tempo ho sentitoin giro che in tanti usano questo termine..

Vorrei ringraziare Bruno per il consiglio. Il lavoro di sviluppo con la libreria LIBNODAVE lo farò a "tempo perso"

quindi non sò quando inizierò. Il problema licenze mi era sconosciuto, anzi ... l'avrei proprio dimenticato.

In effetti se si sviluppa qualcosa che richiede licenza di terzi, questa va ovviamente pagata.

Oltre al consiglio che mi hai dato su dove reperire info sulla libreria, mi sai dire se c'è già stata una discussione su questo forum in merito alle licenze oppure dove posso reperire info su questo tema ?

Grazie

Fabio

Inserita:

Scusate se mi intrometto ,

per fare certi controlli , io sono molto piu' primitivo ( ma funzia )

da PLC faccio il flip flop di un bit

dall'altra parte controllo con 2 timer il bit

se un timer mi si fa' = CPU in stop , se non mi si attivano i timer = CPU in run

saluti

Luca

Inserita:

Io spero che questa discussione sia per qualcosa in più di vedere semplicemente se il PLC è in RUN o in STOP,

anche perchè il PLC non deve mai essere in STOP.

La parte interessante di certe funzioni è l'accesso a tutte le informazioni relative alla diagnostica del PLC

ed estese alle diverse unità, sottoreti DP, collegamenti Profibus DP, ecc.ecc.

Ciao

leonardi.mair
Inserita:

Ciao,

io utilizzo Libnodave da VB,

ho visto che se spengo il plc la funzione davereadbytes va in errore (viene

a mancare il riferimento DC) e crea un errore fatale di windows chiudendomi

il programma VB.

C'è la possibilità di testare se il plc è acceso ?

P.s.: ho provato a ricompilare i sorgenti c della libreria da VC 2005, ma

con scarsi risultati... qualcuno ha già ricompilato i sorgenti ?

  • 1 year later...
mirko.boggian
Inserita:

Ciao a tutti! inizio cercando di rispondere a leonardi.mair

C'è la possibilità di testare se il plc è acceso ?

DaveReadBytes da quanto ho capito se tutto è andato a buon fine ritorna 0. Altrimenti altri valori tra cui -1001,-999 ecc..

Tale valore viene anche memorizzato in PLC.retVal per cui basta che nel tuo programma prima di effettuare operazioni con trolli che il PLC_retVal sia = 0! Se è != da 0 allora puoi pensare di disconnettere il PLC.

Correggetemi se sbaglio ma a me funziona abbastanza bene... perchè abbastaza? io utilizzo la connessione Ethernet e la DaveReadBytes in caso non riesca a comunicare con il PLC ha un timeout altissimo!!!!

Ecco la mia domanda:

è possibile accorciare i vari timeout di connessione?

Grazie 1000!

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...