Cambio gestione con invio continuo, PUBBLICO e testo in JETCO...
This commit is contained in:
+2
-1
@@ -23,7 +23,8 @@
|
||||
<add key="verySlowCount" value="1000" />
|
||||
<add key="sampleMemCount" value="6000" />
|
||||
<add key="waitEndCycle" value="0" />
|
||||
<!--5 sec-->
|
||||
<!-- watchdog -->
|
||||
<add key="watchdogMaxSec" value="59" />
|
||||
<!--Modalità DEMO: DemoOUT indica che NON invia davvero al server e DemoIN che simula e NON legge da PLC-->
|
||||
<add key="DemoIn" value="false" />
|
||||
<add key="DemoInSample" value="false" />
|
||||
|
||||
+1
-15
@@ -161,21 +161,7 @@ namespace IOB_WIN
|
||||
{
|
||||
lg.Fatal(string.Format("Errore nella connessione all'adapter FANUC: {0}{1}{2}", szStatusConnection, Environment.NewLine, exc));
|
||||
connectionOk = false;
|
||||
/*
|
||||
* rifare meglio: manca
|
||||
* - gestione contatore corretto (conda signalIN)
|
||||
* - gestione invio
|
||||
* - refresh vari display
|
||||
* - gestione LAST BYTE in modo che quando va a zero NON continua ad inviare se non una volta ogni minuto (implementare...) ora invia ogni 5 sec...
|
||||
*/
|
||||
// resetto raw input!!!
|
||||
RawInput = new byte[6];
|
||||
// invio POWEROFF... è ZERO valore IN --> accodo (valore già formattato)!
|
||||
QueueIN.Enqueue(qEncodeIN);
|
||||
// invio
|
||||
svuotaCodaSignIN();
|
||||
// update display
|
||||
displayInData();
|
||||
processMemoryDiscon();
|
||||
// processo semafori ed invio...
|
||||
lg.Info(string.Format("Segnalo Adapter NON running, pausa di {0} msec prima di ulteriori tentativi di riconnessione", utils.CRI("waitRecMSec")));
|
||||
}
|
||||
|
||||
+31
-4
@@ -50,6 +50,10 @@ namespace IOB_WIN
|
||||
/// </summary>
|
||||
public DateTime lastPeriodicLog;
|
||||
/// <summary>
|
||||
/// dataOra ultimo segnale inviato...
|
||||
/// </summary>
|
||||
public DateTime lastWatchDog;
|
||||
/// <summary>
|
||||
/// Oggetto della coda degli elementi letti (e non ancora trasmessi)
|
||||
/// </summary>
|
||||
public Queue<string> QueueIN = new Queue<string>();
|
||||
@@ -83,10 +87,6 @@ namespace IOB_WIN
|
||||
/// </summary>
|
||||
public bool adpTryRestart;
|
||||
/// <summary>
|
||||
/// Ultimo valore watchdog rilevato
|
||||
/// </summary>
|
||||
public bool lastWatchDog = false;
|
||||
/// <summary>
|
||||
/// Verifica se sia in modalità DEMO x dati INPUT
|
||||
/// </summary>
|
||||
public bool DemoIn
|
||||
@@ -337,6 +337,7 @@ namespace IOB_WIN
|
||||
parentForm.commPlcActive = false;
|
||||
adpRunning = true;
|
||||
dtAvvioAdp = DateTime.Now;
|
||||
lastWatchDog = dtAvvioAdp;
|
||||
TimingData.resetData();
|
||||
// aggiungo altri defaults
|
||||
setDefaults();
|
||||
@@ -1300,6 +1301,30 @@ namespace IOB_WIN
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Processa gestione memoria x invio dati QUANDO IOB è disconensso da CNC...
|
||||
/// </summary>
|
||||
public void processMemoryDiscon()
|
||||
{
|
||||
// sono disconensso... x prima cosa RESETTO A ZERO VALORI...
|
||||
RawInput = new byte[6];
|
||||
// controllo contatore invio "keepalive"... invio solo a scadenza
|
||||
if (DateTime.Now.Subtract(lastWatchDog).TotalSeconds > utils.CRI("watchdogMaxSec"))
|
||||
{
|
||||
// accodo nuovo valore
|
||||
// invio POWEROFF... è ZERO valore IN --> accodo (valore già formattato)!
|
||||
QueueIN.Enqueue(qEncodeIN);
|
||||
// aggiorno counters
|
||||
nReadFilt++;
|
||||
if (nReadFilt > int.MaxValue - 1) nReadFilt = 0; // per evitare buffer overflow...
|
||||
counterSigIN++;
|
||||
if (counterSigIN > 9999) counterSigIN = 0; // se supera 10k resetto...
|
||||
// update display
|
||||
displayInData();
|
||||
//// invio svuotando...
|
||||
//svuotaCodaSignIN();
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Esegue filtraggio dati x bit blinking!!!
|
||||
/// </summary>
|
||||
private void filterData()
|
||||
@@ -1588,6 +1613,8 @@ namespace IOB_WIN
|
||||
nSendOut++;
|
||||
// riporto cosa inviato
|
||||
displayOutData();
|
||||
// aggiorno data ultimo watchdog...
|
||||
lastWatchDog = DateTime.Now;
|
||||
}
|
||||
/// <summary>
|
||||
/// Effettua processing contapezzi (ed eventualmente alza il bit di contapezzo...)
|
||||
|
||||
+2
-2
@@ -463,6 +463,8 @@ namespace IOB_WIN
|
||||
}
|
||||
private void gather_Tick(object sender, EventArgs e)
|
||||
{
|
||||
// check esecuzione SendTask (VHF) COMUNQUE...
|
||||
checkSendTask();
|
||||
// eseguo cicli attivi SOLO se adapter è in EFFETTIVO running...
|
||||
if (iobObj.adpRunning)
|
||||
{
|
||||
@@ -490,8 +492,6 @@ namespace IOB_WIN
|
||||
checkSlowTask();
|
||||
// check esecuzione AlarmSync
|
||||
checkVerySlowData();
|
||||
// check esecuzione SendTask (VHF)
|
||||
checkSendTask();
|
||||
if (utils.CRI("waitEndCycle") > 0)
|
||||
{
|
||||
Thread.Sleep(utils.CRI("waitEndCycle"));
|
||||
|
||||
Reference in New Issue
Block a user