implementazione modifiche x gestione corretta spegnimento fanuc...
This commit is contained in:
+3
-2
@@ -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" />
|
||||
|
||||
@@ -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")));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user