Vai al contenuto
PLC Forum


Lettura Relè Homeplc - da javascript


Messaggi consigliati

Inserito:

Buonasera a tutti, ho un problemino con la lettura dei relè dell'homeplc da codice Javascript.

Ho provato a seguire l'. dell'ABS, il problema è che pur attivando l'uscita del relè dell'homeplc in lettura il codice mi aggiorna continuamente lo state false.

Vi riporto il codice che ho testato:

<script language=JavaScript>
 function Ticket_Timer(){

 var MyVar = true;

    MyVar = XComm('WR,2,1,1','','bool') 
  
 ObjBool=document.forms[0].elements['text1'];   

    ObjBool.value = MyVar    

}
 </script>

Ho inizializzato lo stato con un true, subito dopo diventa false e resta in quello stato pur accendendo la lampadina sotto il relè (l'indirizzo è giusto, provando in scrittura si accende).

Grazie anticipatamente.


del_user_56966
Inserita:
Ho inizializzato lo stato con un true, subito dopo diventa false e resta in quello stato pur accendendo la lampadina sotto il relè (l'indirizzo è giusto, provando in scrittura si accende).

La funzione della classe ritorna un booleano, ma tu quel valore lo passi a un "text"

non è che stai passando all'ObjBool.value un formato dati sbagliato?

del_user_56966
Inserita:

inoltre mi sembra che puoi passare direttamente "text1" alla funzione

e quella aggiorna l'oggetto senza altro codice... sempre che devi solo aggionare l'oggetto senza creare

necessariamente MyVar

Inserita:

No, all'objBool.value viene passato un booleano tant'è che cambia da true a false. E' come se leggesse sempre e comunque il relè chiuso... Ho copiato pari passo un file d'esempio.

del_user_56966
Inserita:

Vedendo l'esempio l'unica differenza e che

var MyVar = true;

mentre in origine è var MyVar = false;

poi nel tuo codice non si vede l'oggetto di destinazione che dovrebbe essere una label

<Input id="text1" type="text" value="false">

è cosi?

io cambiando solo il relè da 30 -> 2 nell'esempio mi funziona... :)

del_user_56966
Inserita:

Prova a fare cosi...

usa l'esempio e togli tutto quello che non ti serve... poi cambi solo il relè da 30 a 2 e vedi se continua a funzionarti..

poi da li vedi che differenza c'è tra quella pagina e la precedente... tanto per curiosità!... :lol:

Inserita:

Ok, novità... Allora ho dopo un homeplc uno slave in cui un'uscita è occupata da una lampadina.

Dunque ho appena notato una cosa... provando con l'esempio jswr.htm riesco a scrivere e leggere inserendo semplicemente il relè 2.

Il problema nasce con l'esempio InOut.htm inserendo un qualsiasi valore all'uscita mi scrive sull'homeplc e non sullo slave.

Non capisco... entrambi si riferiscono al < HPL n.1 > < Server n.1 > ma uno punta sull'homeplc e l'altro sullo slave.

Inserita:

Mi correggo con jswr.htm riesco a scrivere ma non a leggere o meglio, riesco a leggere lo stato true solo per un millisecondo ossia proprio quando mi vede attivare il relè da telecomando.

del_user_56966
Inserita:
Non capisco... entrambi si riferiscono al < HPL n.1 > < Server n.1 > ma uno punta sull'homeplc e l'altro sullo slave.

uno alla volta... :lol:

adesso sei passato al demo per gli I/O digitali considera che un uscita del PLC si può pilotare direttamente solo se questa

è libera da logica altrimenti il programma del PLC la forza in un unica posizione...

in quel caso devi usare un relè interno e gestire l'uscita in accordo con la logica già presente...

poi separli di slave devi fornire sotto a quale master si trova (se non c'è il master considera sempre il numero 1)

e il numero preciso dell'uscita....

del_user_56966
Inserita:
riesco a leggere lo stato true solo per un millisecondo ossia proprio quando mi vede attivare il relè da telecomando.

questo sembra un comportamento classico di uscita impegnata da logica...

ma stai facendo le prove senza logica o con logica che gira nel HomePLC.... :blink:

prima di fare qualsiasi prova da web controlla sempre che lo stesso relè lavori correttamente tramite la finestra di TEST I/O di H&B..

si perde molto meno tempo...

Inserita:

Ecco mi sono perso... :D

Dunque per logica intendi per sul plc sta girando un programma? Sì. Un semplice controllo da supervisione e da telecomando dell'uscita.

Ma quindi volendo controllare i relè dello slave che si trova sotto il master 1 (simulato dall'homeplc) come devo fare?

del_user_56966
Inserita:

come ti dicevo prima...

devi prima provare se le tue logiche funzionano sul HomePLC tramite il debug...

secondo provi se ti funzionano da Home&Building simulando quello che vuoi fare da Web... c'è una finestra apposita per fare questo

si chiama TEST I/O e la trovi sotto allo status del PLC..

solo quanso sei sicuro che l'impianto è programmato correttamente e la supervisione agisce come vuoi tu...

puoi passare al telecontrollo da WEB..

Se vuoi far interagire più comandi con un unica uscita devi mettere più ingressi in parallelo...

in modo da creare una normale deviazione elettrica tra più punti di comando...

Deviazione.JPG

al posto di porta ingresso puoi mettere un relè interno es.. %MX400.0 e poi da Web lo telecontrolli... ;)

del_user_56966
Inserita: (modificato)

chiaramente se il pulsante su Web deve essere monostabile dovrai anche fare il reset del relè una volta eseguito il comando

ma questa è la fase successiva... :lol:

Modificato: da Aleandro2008
Inserita:

Sì, ho fatto tutto questo... anche resettare l'MX400.0 (ad es.)

Sembra funzionare tutto perfettamente, una domanda: che indirizzo dovrei usare nella pagina inout.htm (l'unica che sembra leggere i valori) sull'uscita %QX3.0?

Perchè di default l'esempio lo fa sul %QX0.0.

QX3.0 è il relè 1 dello slave.

del_user_56966
Inserita:
QX3.0 è il relè 1 dello slave.

la %QX3.0 corrisponde all'ingresso 1 dello slave 5 su master 1

se vedi in TEST I/O ti da il riferimento diretto metti nella casella %QX3.0 e leggi di lato Y30...

quindi da supervisione e da Web con WY devi usare il numero 30... :)

Inserita:

Perfetto!!!! Grazie mille!!! Unica cosa... ho dovuto cancellare il programma nel plc! Rimane solo da capire perchè invece ora non funziona la scrittura e la lettura del relè (quindi non da pagina IO digitali).

del_user_56966
Inserita:

Fai come me...parti sempre dal demo funzionante e poi fai un passo se dopo non ti va più basta che fai un passo indietro... :lol:

Inserita:

Ehehehehe sì infatti già sto andando avanti a ctrl+z!!! :lol:

Grazie ancora!!!

del_user_56966
Inserita:
sì infatti già sto andando avanti a ctrl+z!!!

in effetti Javascript è un bel linguaggio ma va gestito al punto e virgola.. :lol:

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