Merge branch 'release/FanucAddNumArt03'
This commit is contained in:
@@ -72,8 +72,8 @@ ENABLE_SEND_PZC_BLOCK=TRUE
|
||||
MIN_SEND_PZC_BLOCK=0
|
||||
MAX_SEND_PZC_BLOCK=100
|
||||
; conf cablata set Art/Commessa
|
||||
SET_NUM_ART=MACRO.966
|
||||
SET_NUM_COM=MACRO.965
|
||||
SET_NUM_ART=STD.MACRO.966
|
||||
SET_NUM_COM=STD.MACRO.965
|
||||
; conf parametri memoria READ/WRITE
|
||||
PARAM_CONF=VL27.json
|
||||
DISABLE_SEND_WDST=TRUE
|
||||
|
||||
+145
-12
@@ -184,6 +184,7 @@ namespace IOB_WIN_NEXT.Iob
|
||||
bool taskOk = false;
|
||||
string taskVal = "";
|
||||
string newVal = "";
|
||||
string memAddr = "";
|
||||
int newValInt = 0;
|
||||
// cerco task specifici: se ho startSetup --> imposto bit DBB701.DBB0.4
|
||||
foreach (var item in task2exe)
|
||||
@@ -204,7 +205,7 @@ namespace IOB_WIN_NEXT.Iob
|
||||
if (memMap.mMapWrite.ContainsKey(item.Key))
|
||||
{
|
||||
dataConf currMem = memMap.mMapWrite[item.Key];
|
||||
string addr = currMem.memAddr;
|
||||
memAddr = currMem.memAddr;
|
||||
taskVal = $"SET task: {item.Key} --> {newVal} | mem: {currMem.memAddr} - {currMem.size} byte";
|
||||
// salvo il nuovo valore nella memoria... così prox invio lo trasmetterà
|
||||
memMap.mMapWrite[item.Key].value = newVal;
|
||||
@@ -219,7 +220,7 @@ namespace IOB_WIN_NEXT.Iob
|
||||
taskVal = $"NO MemMap found, SET task: {item.Key} --> {newVal} ({item.Value})";
|
||||
}
|
||||
// salvo in currProd..
|
||||
saveProdData(new KeyValuePair<string, string>(item.Key, newVal));
|
||||
saveProdData(new KeyValuePair<string, string>(item.Key, item.Value));
|
||||
break;
|
||||
|
||||
case taskType.nihil:
|
||||
@@ -251,7 +252,7 @@ namespace IOB_WIN_NEXT.Iob
|
||||
if (memMap.mMapWrite.ContainsKey(item.Key))
|
||||
{
|
||||
dataConf currMem = memMap.mMapWrite[item.Key];
|
||||
string addr = currMem.memAddr;
|
||||
memAddr = currMem.memAddr;
|
||||
taskVal = $"SET task: {item.Key} --> {newVal} | mem: {currMem.memAddr} - {currMem.size} byte";
|
||||
// salvo il nuovo valore nella memoria... così prox invio lo trasmetterà
|
||||
memMap.mMapWrite[item.Key].value = newVal;
|
||||
@@ -271,14 +272,15 @@ namespace IOB_WIN_NEXT.Iob
|
||||
//se ho successo rileggo ed eventualmente sistemo valore
|
||||
if (taskOk)
|
||||
{
|
||||
var rVal = getValByParam("SET_NUM_ART");
|
||||
//var rVal = getValByParam("SET_NUM_ART");
|
||||
var rVal = getValByMemAddr(memAddr);
|
||||
if (rVal == newVal)
|
||||
{
|
||||
lgInfo("All OK");
|
||||
}
|
||||
else
|
||||
{
|
||||
lgError($"Error | rVal: {rVal} | newVal: {newVal}");
|
||||
lgError($"Error | memAddr: {memAddr} | rVal: {rVal} | newVal: {newVal}");
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -299,7 +301,7 @@ namespace IOB_WIN_NEXT.Iob
|
||||
if (memMap.mMapWrite.ContainsKey(item.Key))
|
||||
{
|
||||
dataConf currMem = memMap.mMapWrite[item.Key];
|
||||
string addr = currMem.memAddr;
|
||||
memAddr = currMem.memAddr;
|
||||
taskVal = $"SET task: {item.Key} --> {newVal} | mem: {currMem.memAddr} - {currMem.size} byte";
|
||||
// salvo il nuovo valore nella memoria... così prox invio lo trasmetterà
|
||||
memMap.mMapWrite[item.Key].value = newVal;
|
||||
@@ -316,7 +318,24 @@ namespace IOB_WIN_NEXT.Iob
|
||||
|
||||
// invio a controller...
|
||||
taskOk = setNumCom(newValInt);
|
||||
|
||||
//se ho successo rileggo ed eventualmente sistemo valore
|
||||
if (taskOk)
|
||||
{
|
||||
//var rVal = getValByParam("SET_NUM_COM");
|
||||
var rVal = getValByMemAddr(memAddr);
|
||||
if (rVal == newVal)
|
||||
{
|
||||
lgInfo("All OK");
|
||||
}
|
||||
else
|
||||
{
|
||||
lgError($"Error | memAddr: {memAddr} | rVal: {rVal} | newVal: {newVal}");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lgError("Errore in scrittura SetNumCom");
|
||||
}
|
||||
// salvo in currProd..
|
||||
saveProdData(new KeyValuePair<string, string>(item.Key, newVal));
|
||||
break;
|
||||
@@ -1928,8 +1947,8 @@ namespace IOB_WIN_NEXT.Iob
|
||||
/// <returns></returns>
|
||||
private string getValByParam(string varName)
|
||||
{
|
||||
#if false
|
||||
string answ = "";
|
||||
// verifico quale modalità sia richiesta: STD (6711) oppure BIT (Custom, con indicazione area)
|
||||
string memAddr = getOptPar(varName);
|
||||
if (memAddr.StartsWith("STD"))
|
||||
{
|
||||
@@ -1956,20 +1975,134 @@ namespace IOB_WIN_NEXT.Iob
|
||||
// 2022.05.23 gestione MACRO da testare (Jetco)
|
||||
else if (memAddr.StartsWith("MACRO."))
|
||||
{
|
||||
double macroVal = 0;
|
||||
// recupero parametro...
|
||||
int.TryParse(memAddr.Replace("MACRO.", ""), out cntAddr);
|
||||
lgTrace($"MACRO | Read 01 | memAddr: {memAddr} | idx: {cntAddr}");
|
||||
lgTrace($"MACRO | Read 01 | memAddr: {memAddr} | idx: {cntAddr} | macroVal: {macroVal}");
|
||||
// processo parametro
|
||||
stopwatch.Restart();
|
||||
double macroVal = 0;
|
||||
bool esitoMacro = FANUC_ref.F_Read_macro(cntAddr, ref macroVal);
|
||||
FANUC_ref.F_Read_macro(cntAddr, ref macroVal);
|
||||
if (utils.CRB("recTime"))
|
||||
{
|
||||
TimingData.addResult(cIobConf.codIOB, "R-MACRO", stopwatch.ElapsedTicks);
|
||||
}
|
||||
// salvo valore
|
||||
answ = macroVal.ToString();
|
||||
lgTrace($"MACRO | Read 02 | memAddr: {memAddr} | idx: {cntAddr} | esito: {esitoMacro} | macroVal: {macroVal}");
|
||||
lgTrace($"MACRO | Read 02 | memAddr: {memAddr} | idx: {cntAddr} | macroVal: {macroVal}");
|
||||
}
|
||||
// altrimenti se legge da area memoria specifica leggo da li... formto tipo STD.D.1604.DW
|
||||
else
|
||||
{
|
||||
memAddressFanuc areaCounter = new memAddressFanuc(memAddr);
|
||||
|
||||
if (isVerboseLog)
|
||||
{
|
||||
lgInfo("getValByParam [0] area memoria: {0}.{1}.{2}", areaCounter.mType, areaCounter.mPos, areaCounter.vType);
|
||||
}
|
||||
|
||||
// leggo!
|
||||
stopwatch.Restart();
|
||||
// switch x tipo dati --> tipo lettura... e salvo ultimo conteggio rilevato
|
||||
switch (areaCounter.vType)
|
||||
{
|
||||
case "B":
|
||||
byte valB = 0;
|
||||
FANUC_ref.F_RW_Byte(false, areaCounter.mType, areaCounter.mPos, ref valB);
|
||||
outputVal = valB;
|
||||
break;
|
||||
|
||||
case "D":
|
||||
ushort valW = 0;
|
||||
FANUC_ref.F_RW_Word(false, areaCounter.mType, areaCounter.mPos, ref valW);
|
||||
outputVal = valW;
|
||||
break;
|
||||
|
||||
case "DW":
|
||||
uint valDW = 0;
|
||||
FANUC_ref.F_RW_DWord(false, areaCounter.mType, areaCounter.mPos, ref valDW);
|
||||
if (isVerboseLog)
|
||||
{
|
||||
lgInfo("[1] valDW PAR: {0}", valDW);
|
||||
}
|
||||
|
||||
outputVal = valDW;
|
||||
if (isVerboseLog)
|
||||
{
|
||||
lgInfo("[2] outputVal PAR: {0}", outputVal);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (utils.CRB("recTime"))
|
||||
{
|
||||
TimingData.addResult(cIobConf.codIOB, string.Format("R-{0}.{1}.{2}", areaCounter.mType, areaCounter.mPos, areaCounter.vType), stopwatch.ElapsedTicks);
|
||||
}
|
||||
|
||||
// salvo...
|
||||
answ = outputVal.ToString();
|
||||
if (isVerboseLog)
|
||||
{
|
||||
lgInfo("[3] PAR letto: {0} | {1}", varName, answ);
|
||||
}
|
||||
}
|
||||
stopwatch.Stop();
|
||||
}
|
||||
#endif
|
||||
string memAddr = getOptPar(varName);
|
||||
string answ =getValByMemAddr(memAddr);
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// Recupera il valore INT dal nome del parametro per successivo processing
|
||||
/// </summary>
|
||||
/// <param name="varName"></param>
|
||||
/// <returns></returns>
|
||||
private string getValByMemAddr(string memAddr)
|
||||
{
|
||||
string answ = "";
|
||||
// verifico quale modalità sia richiesta: STD (6711) oppure BIT (Custom, con indicazione area)
|
||||
if (memAddr.StartsWith("STD"))
|
||||
{
|
||||
// inizio verifica area memoria/parametro levando prima parte codice
|
||||
memAddr = memAddr.Replace("STD.", "");
|
||||
// var di appoggio
|
||||
int cntAddr = 0;
|
||||
object outputVal = new object();
|
||||
// verifico se si tratta di lettura parametro... formato tipo STD.PAR.6711
|
||||
if (memAddr.StartsWith("PAR."))
|
||||
{
|
||||
// recupero parametro...
|
||||
int.TryParse(memAddr.Replace("PAR.", ""), out cntAddr);
|
||||
// processo parametro
|
||||
stopwatch.Restart();
|
||||
FANUC_ref.F_RW_Param_Integer(false, cntAddr, 3, ref outputVal);
|
||||
if (utils.CRB("recTime"))
|
||||
{
|
||||
TimingData.addResult(cIobConf.codIOB, string.Format("R{0}-PAR", 4), stopwatch.ElapsedTicks);
|
||||
}
|
||||
// salvo valore
|
||||
answ = outputVal.ToString();
|
||||
}
|
||||
// 2022.05.23 gestione MACRO da testare (Jetco)
|
||||
else if (memAddr.StartsWith("MACRO."))
|
||||
{
|
||||
double macroVal = 0;
|
||||
// recupero parametro...
|
||||
int.TryParse(memAddr.Replace("MACRO.", ""), out cntAddr);
|
||||
lgTrace($"MACRO | Read 01 | memAddr: {memAddr} | idx: {cntAddr} | macroVal: {macroVal}");
|
||||
// processo parametro
|
||||
stopwatch.Restart();
|
||||
FANUC_ref.F_Read_macro(cntAddr, ref macroVal);
|
||||
if (utils.CRB("recTime"))
|
||||
{
|
||||
TimingData.addResult(cIobConf.codIOB, "R-MACRO", stopwatch.ElapsedTicks);
|
||||
}
|
||||
// salvo valore
|
||||
answ = macroVal.ToString();
|
||||
lgTrace($"MACRO | Read 02 | memAddr: {memAddr} | idx: {cntAddr} | macroVal: {macroVal}");
|
||||
}
|
||||
// altrimenti se legge da area memoria specifica leggo da li... formto tipo STD.D.1604.DW
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user