implementazione modifiche x gestione corretta spegnimento fanuc...

This commit is contained in:
Samuele E. Locatelli (WEB DEV)
2017-11-21 18:26:22 +01:00
parent 1b6ca6ffc9
commit af7c72b037
4 changed files with 46 additions and 4 deletions
+3 -2
View File
@@ -11,7 +11,7 @@
<add key="enableMode" value="true" />
<add key="enableOverrides" value="true" />
<add key="doMemDump" value="false" />
<add key="doSampleMemory" value="false" />
<add key="doSampleMemory" value="true" />
<add key="basePrgMemPath" value="CNCMEMUSER" />
<!--gestione TIMERS e periodi multipli x thread lenti-->
<add key="startTimerMs" value="250" />
@@ -21,11 +21,12 @@
<add key="normCount" value="50" />
<add key="slowCount" value="400" />
<add key="verySlowCount" value="1000" />
<add key="sampleMemCount" value="6000" />
<add key="waitEndCycle" value="0" />
<!--5 sec-->
<!--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="true" />
<add key="DemoInSample" value="false" />
<add key="DemoOut" value="true" />
<!--definizione invio dati molto variabili-->
<add key="SendAxPos" value="false" />
+16
View File
@@ -161,6 +161,22 @@ 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();
// 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")));
}
}
+6 -1
View File
@@ -22,6 +22,10 @@ namespace IOB_WIN
/// </summary>
public bool doMemDump;
/// <summary>
/// Indica se sia richiesto campionamento memoria
/// </summary>
public bool doSampleMemory;
/// <summary>
/// Evento Iob ha subito un refresh
/// </summary>
public event EventHandler eh_refreshed;
@@ -299,6 +303,7 @@ namespace IOB_WIN
nSendOut = 0;
currMode = 0;
doMemDump = utils.CRB("doMemDump");
doSampleMemory = utils.CRB("doSampleMemory");
// svuoto code... SE NON SIM...
if (!DemoIn)
{
@@ -1187,7 +1192,7 @@ namespace IOB_WIN
/// <summary>
/// Processo la coda SignalIN...
/// </summary>
private void svuotaCodaSignIN()
public void svuotaCodaSignIN()
{
// verifico SE la coda abbia dei valori...
if (QueueIN.Count > 0)
+21 -1
View File
@@ -34,6 +34,10 @@ namespace IOB_WIN
/// </summary>
protected int verySlowCount;
/// <summary>
/// Contatore campionamento memoria
/// </summary>
protected int sampleMemCount;
/// <summary>
/// timer base in avvio
/// </summary>
protected int startTimerMs = 250;
@@ -441,6 +445,17 @@ namespace IOB_WIN
}
}
private void checkSampleMem()
{
// decremento contatore...
sampleMemCount--;
if (sampleMemCount <= 0)
{
sampleMemCount = utils.CRI("sampleMemCount");
// avvio fase raccolta dati e invio con adapter
iobObj.saveMemDump();
}
}
private void refreshFormData()
{
// aggiorno visualizzazioni varie in form...
@@ -455,13 +470,18 @@ namespace IOB_WIN
advProgBar();
if (iobObj.connectionOk)
{
// se richiesto faccio memory DUMP!
// se richiesto faccio memory DUMP INIZIALE!
if (iobObj.doMemDump)
{
iobObj.saveMemDump();
// fatto! non ripeto...
iobObj.doMemDump = false;
}
// controllo se sia abilitato sampleDump della meoria (periodico)
if (iobObj.doSampleMemory)
{
checkSampleMem();
}
// check esecuzione FastTask
checkFastTask();
// check esecuzione NormTask