FANUC x Valvital 27 Crossflex: modifiche x test scrittura parametri numerici in area Macro
This commit is contained in:
@@ -59,15 +59,23 @@ BLINK_FILT=0
|
||||
|
||||
[OPTPAR]
|
||||
;PZCOUNT_MODE=STD|BIT
|
||||
PZCOUNT_MODE=STD.PAR.6711
|
||||
PZGTOT_MODE=STD.PAR.6712
|
||||
;PZREQ_MODE=STD.PAR.6713
|
||||
;PZCOUNT_MODE=STD.PAR.6711
|
||||
;PZGTOT_MODE=STD.PAR.6712
|
||||
;;PZREQ_MODE=STD.PAR.6713
|
||||
PZCOUNT_MODE=STD.MACRO.930
|
||||
PZGTOT_MODE=STD.MACRO.929
|
||||
PZREQ_MODE=STD.MACRO.964
|
||||
ENABLE_PZ_RESET=TRUE
|
||||
ENABLE_PZ_RESET_stopSetup=TRUE
|
||||
;gestione invio pezzi in blocco
|
||||
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
|
||||
; conf parametri memoria READ/WRITE
|
||||
PARAM_CONF=VL27.json
|
||||
|
||||
|
||||
[BRANCH]
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"mMapWrite": {
|
||||
"setArt": {
|
||||
"name": "setArt",
|
||||
"description": "Articolo",
|
||||
"memAddr": "",
|
||||
"tipoMem": "String",
|
||||
"index": 0,
|
||||
"size": 20,
|
||||
"displOrdinal": 1
|
||||
},
|
||||
"setArtNum": {
|
||||
"name": "setArtNum",
|
||||
"description": "# Num Articolo",
|
||||
"memAddr": "MACRO.966",
|
||||
"tipoMem": "Int",
|
||||
"index": 966,
|
||||
"size": 4,
|
||||
"displOrdinal": 1
|
||||
},
|
||||
"setComm": {
|
||||
"name": "setComm",
|
||||
"description": "Commessa",
|
||||
"memAddr": "",
|
||||
"tipoMem": "String",
|
||||
"index": 0,
|
||||
"size": 20,
|
||||
"displOrdinal": 2
|
||||
},
|
||||
"setCommNum": {
|
||||
"name": "setCommNum",
|
||||
"description": "# NumCommessa",
|
||||
"memAddr": "MACRO.965",
|
||||
"tipoMem": "Int",
|
||||
"index": 965,
|
||||
"size": 4,
|
||||
"displOrdinal": 2
|
||||
},
|
||||
"setPzComm": {
|
||||
"name": "setPzComm",
|
||||
"description": "Qta Richiesta",
|
||||
"memAddr": "MACRO.964",
|
||||
"tipoMem": "Int",
|
||||
"index": 964,
|
||||
"size": 4,
|
||||
"displOrdinal": 3
|
||||
}
|
||||
},
|
||||
"mMapRead": {
|
||||
"ContatoreAssoluto": {
|
||||
"name": "ContatoreAssoluto",
|
||||
"description": "Contapezzi ASSOLUTO",
|
||||
"memAddr": "MACRO.929",
|
||||
"tipoMem": "Int",
|
||||
"index": 929,
|
||||
"size": 4,
|
||||
"func": "MAX",
|
||||
"period": 60,
|
||||
"factor": 1
|
||||
},
|
||||
"ContatoreParziale": {
|
||||
"name": "ContatoreParziale",
|
||||
"description": "Contapezzi Parziale",
|
||||
"memAddr": "MACRO.930",
|
||||
"tipoMem": "DInt",
|
||||
"index": 930,
|
||||
"size": 4,
|
||||
"func": "MAX",
|
||||
"period": 60,
|
||||
"factor": 1
|
||||
}
|
||||
},
|
||||
"mMapWriteLink": {
|
||||
"setArt": "setArtNum",
|
||||
"setComm": "setCommNum"
|
||||
}
|
||||
}
|
||||
@@ -514,6 +514,7 @@
|
||||
</None>
|
||||
<None Include="DATA\CONF\FOV098.ini" />
|
||||
<None Include="DATA\CONF\FOV099.ini" />
|
||||
<None Include="DATA\CONF\VL27.json" />
|
||||
<None Include="DATA\CONF\VL27.ini" />
|
||||
<None Include="DATA\CONF\SIMUL_01.json">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
|
||||
+392
-8
@@ -1,6 +1,8 @@
|
||||
using EgwProxy.MultiCncLib.CNC;
|
||||
using IOB_UT_NEXT;
|
||||
using MapoSDK;
|
||||
using Opc.Ua;
|
||||
using Org.BouncyCastle.Ocsp;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net;
|
||||
@@ -183,6 +185,8 @@ namespace IOB_WIN_NEXT.Iob
|
||||
{
|
||||
bool taskOk = false;
|
||||
string taskVal = "";
|
||||
string newVal = "";
|
||||
int newValInt = 0;
|
||||
// cerco task specifici: se ho startSetup --> imposto bit DBB701.DBB0.4
|
||||
foreach (var item in task2exe)
|
||||
{
|
||||
@@ -193,11 +197,11 @@ namespace IOB_WIN_NEXT.Iob
|
||||
Enum.TryParse(item.Key, out tName);
|
||||
switch (tName)
|
||||
{
|
||||
case taskType.setArt:
|
||||
case taskType.setComm:
|
||||
case taskType.nihil:
|
||||
case taskType.fixStopSetup:
|
||||
case taskType.forceResetPzCount:
|
||||
case taskType.setArt:
|
||||
case taskType.setComm:
|
||||
case taskType.setProg:
|
||||
case taskType.forceSetPzCount:
|
||||
case taskType.sendWatchDogMes2Plc:
|
||||
@@ -205,10 +209,82 @@ namespace IOB_WIN_NEXT.Iob
|
||||
lgInfo($"Chiamata senza processing: taskOk: {taskOk} | taskVal: {taskVal}");
|
||||
break;
|
||||
|
||||
case taskType.setArtNum:
|
||||
lgInfo($"Richiesta scrittura cod ART numerico");
|
||||
// in primis faccio una chiamata per tutta la tab SE fosse vuoto il dict
|
||||
// di traduzione
|
||||
if (DictNumArt == null || DictNumArt.Count == 0)
|
||||
{
|
||||
getNumArt("");
|
||||
}
|
||||
// chiamo server x avere decodifica valore INT
|
||||
newVal = getNumArt(item.Value);
|
||||
// converto int...
|
||||
int.TryParse(newVal, out newValInt);
|
||||
// procedo come il resto cercando mappatura in memMap: recupero dati da memMap...
|
||||
if (memMap != null && memMap.mMapWrite != null)
|
||||
{
|
||||
if (memMap.mMapWrite.ContainsKey(item.Key))
|
||||
{
|
||||
dataConf currMem = memMap.mMapWrite[item.Key];
|
||||
string addr = 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;
|
||||
}
|
||||
else
|
||||
{
|
||||
taskVal = $"NO DATA MEM, SET task: {item.Key} --> {newVal} ({item.Value})";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
taskVal = $"NO MemMap found, SET task: {item.Key} --> {newVal} ({item.Value})";
|
||||
}
|
||||
|
||||
// invio a controller...
|
||||
taskOk = setNumArt(newValInt);
|
||||
|
||||
// salvo in currProd..
|
||||
saveProdData(new KeyValuePair<string, string>(item.Key, newVal));
|
||||
break;
|
||||
|
||||
case taskType.setCommNum:
|
||||
lgInfo($"Richiesta scrittura cod COMMESSA numerica");
|
||||
// chiamo server x avere decodifica valore INT
|
||||
newVal = getNumComm(item.Value);
|
||||
// procedo come il resto cercando mappatura in memMap: recupero dati da memMap...
|
||||
if (memMap != null && memMap.mMapWrite != null)
|
||||
{
|
||||
if (memMap.mMapWrite.ContainsKey(item.Key))
|
||||
{
|
||||
dataConf currMem = memMap.mMapWrite[item.Key];
|
||||
string addr = 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;
|
||||
}
|
||||
else
|
||||
{
|
||||
taskVal = $"NO DATA MEM, SET task: {item.Key} --> {newVal} ({item.Value})";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
taskVal = $"NO MemMap found, SET task: {item.Key} --> {newVal} ({item.Value})";
|
||||
}
|
||||
|
||||
// invio a controller...
|
||||
taskOk = setNumCom(newValInt);
|
||||
|
||||
// salvo in currProd..
|
||||
saveProdData(new KeyValuePair<string, string>(item.Key, newVal));
|
||||
break;
|
||||
|
||||
case taskType.setPzComm:
|
||||
int pzReq = 0;
|
||||
int.TryParse(item.Value, out pzReq);
|
||||
// set contatore pezzi richiestiinizio setup
|
||||
// set pezzi richiesti inizio setup
|
||||
taskOk = setPzComm(pzReq);
|
||||
taskVal = taskOk ? "RESET: SETUP START" : "PZ RESET DISABLED | NO EXEC";
|
||||
lgInfo($"Chiamata startSetup: taskOk: {taskOk} | taskVal: {taskVal}");
|
||||
@@ -243,6 +319,60 @@ namespace IOB_WIN_NEXT.Iob
|
||||
return taskDone;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrapper chiamata lettura/scrittura INTERO in area macro...
|
||||
/// </summary>
|
||||
/// <param name="bWrite"></param>
|
||||
/// <param name="memIndex"></param>
|
||||
/// <param name="Value"></param>
|
||||
/// <returns></returns>
|
||||
public bool FanucMemMacroRW(bool bWrite, Int32 memIndex, ref short Value)
|
||||
{
|
||||
bool answ = false;
|
||||
if (connectionOk)
|
||||
{
|
||||
if (FANUC_ref.Connected)
|
||||
{
|
||||
try
|
||||
{
|
||||
parentForm.commPlcActive = true;
|
||||
answ = FANUC_ref.F_RW_Macro_Short(bWrite, memIndex, ref Value);
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
}
|
||||
}
|
||||
parentForm.commPlcActive = false;
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Wrapper chiamata lettura/scrittura DOUBLE in area macro...
|
||||
/// </summary>
|
||||
/// <param name="bWrite"></param>
|
||||
/// <param name="memIndex"></param>
|
||||
/// <param name="Value"></param>
|
||||
/// <returns></returns>
|
||||
public bool FanucMemMacroRW(bool bWrite, Int32 memIndex, ref double Value)
|
||||
{
|
||||
bool answ = false;
|
||||
if (connectionOk)
|
||||
{
|
||||
if (FANUC_ref.Connected)
|
||||
{
|
||||
try
|
||||
{
|
||||
parentForm.commPlcActive = true;
|
||||
answ = FANUC_ref.F_RW_Macro_Double(bWrite, memIndex, ref Value);
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
}
|
||||
}
|
||||
parentForm.commPlcActive = false;
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// wrapper chiamata lettura/scrittura SINGOLO BYTE...
|
||||
/// </summary>
|
||||
@@ -277,7 +407,7 @@ namespace IOB_WIN_NEXT.Iob
|
||||
/// <param name="bWrite"></param>
|
||||
/// <param name="MemType"></param>
|
||||
/// <param name="memIndex"></param>
|
||||
/// <param name="MATRICE Value"></param>
|
||||
/// <param name="Value"></param>
|
||||
/// <returns></returns>
|
||||
public bool FanucMemRW(bool bWrite, FANUC.MemType MemType, Int32 memIndex, ref byte[] Value)
|
||||
{
|
||||
@@ -820,6 +950,24 @@ namespace IOB_WIN_NEXT.Iob
|
||||
TimingData.addResult(cIobConf.codIOB, string.Format("W{0}-PAR", 4), stopwatch.ElapsedTicks);
|
||||
}
|
||||
}
|
||||
else if (memAddr.StartsWith("MACRO."))
|
||||
{
|
||||
// recupero parametro...
|
||||
int.TryParse(memAddr.Replace("MACRO.", ""), out cntAddr);
|
||||
if (cntAddr == 0)
|
||||
{
|
||||
cntAddr = 9999;
|
||||
}
|
||||
|
||||
// processo SET contapezzi (lavorati)
|
||||
stopwatch.Restart();
|
||||
Int16 reqVal = (Int16)0;
|
||||
FANUC_ref.F_RW_Macro_Short(true, cntAddr, ref reqVal);
|
||||
if (utils.CRB("recTime"))
|
||||
{
|
||||
TimingData.addResult(cIobConf.codIOB, "MACRO-SHORT", stopwatch.ElapsedTicks);
|
||||
}
|
||||
}
|
||||
// altrimenti se legge da area memoria specifica leggo da li... formto
|
||||
// tipo STD.D.1604.DW
|
||||
else
|
||||
@@ -907,6 +1055,224 @@ namespace IOB_WIN_NEXT.Iob
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua impostazione del valore numerico ARTICOLO (specifico FANUC)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool setNumArt(int valReq)
|
||||
{
|
||||
bool answ = false;
|
||||
// verifico quale modalità sia richiesta
|
||||
string memAddr = getOptPar("SET_NUM_ART");
|
||||
if (cIobConf.optPar.Count > 0 && !string.IsNullOrEmpty(memAddr))
|
||||
{
|
||||
// scrivo valore richiesto in area configurata
|
||||
try
|
||||
{
|
||||
// var di appoggio
|
||||
int cntAddr = 0;
|
||||
#if false
|
||||
// var contapezzi a zero....
|
||||
object newVal = new object();
|
||||
newVal = valReq;
|
||||
#endif
|
||||
// verifico se si tratta di lettura MACRO... formato tipo MACRO.6711
|
||||
if (memAddr.StartsWith("MACRO."))
|
||||
{
|
||||
// recupero parametro...
|
||||
int.TryParse(memAddr.Replace("MACRO.", ""), out cntAddr);
|
||||
if (cntAddr == 0)
|
||||
{
|
||||
cntAddr = 9999;
|
||||
}
|
||||
|
||||
// processo SET contapezzi (lavorati)
|
||||
stopwatch.Restart();
|
||||
Int16 reqVal = (Int16)valReq;
|
||||
FANUC_ref.F_RW_Macro_Short(true, cntAddr, ref reqVal);
|
||||
if (utils.CRB("recTime"))
|
||||
{
|
||||
TimingData.addResult(cIobConf.codIOB, "MACRO-SHORT", stopwatch.ElapsedTicks);
|
||||
}
|
||||
}
|
||||
#if false
|
||||
else if (memAddr.StartsWith("PAR."))
|
||||
{
|
||||
// recupero parametro...
|
||||
int.TryParse(memAddr.Replace("PAR.", ""), out cntAddr);
|
||||
if (cntAddr == 0)
|
||||
{
|
||||
cntAddr = 6711;
|
||||
}
|
||||
|
||||
// processo SET contapezzi (lavorati)
|
||||
stopwatch.Restart();
|
||||
FANUC_ref.F_RW_Param_Integer(true, cntAddr, 3, ref newVal);
|
||||
if (utils.CRB("recTime"))
|
||||
{
|
||||
TimingData.addResult(cIobConf.codIOB, string.Format("W{0}-PAR", 4), stopwatch.ElapsedTicks);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
memAddressFanuc areaCounter = new memAddressFanuc(memAddr);
|
||||
|
||||
if (isVerboseLog)
|
||||
{
|
||||
lgInfo("setPzComm [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 = (byte)pzReq;
|
||||
FANUC_ref.F_RW_Byte(true, areaCounter.mType, areaCounter.mPos, ref valB);
|
||||
newVal = valB;
|
||||
break;
|
||||
|
||||
case "D":
|
||||
ushort valW = (ushort)pzReq;
|
||||
FANUC_ref.F_RW_Word(true, areaCounter.mType, areaCounter.mPos, ref valW);
|
||||
newVal = valW;
|
||||
break;
|
||||
|
||||
case "DW":
|
||||
uint valDW = (uint)pzReq;
|
||||
FANUC_ref.F_RW_DWord(true, areaCounter.mType, areaCounter.mPos, ref valDW);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (utils.CRB("recTime"))
|
||||
{
|
||||
TimingData.addResult(cIobConf.codIOB, string.Format("W-{0}.{1}.{2}", areaCounter.mType, areaCounter.mPos, areaCounter.vType), stopwatch.ElapsedTicks);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
stopwatch.Stop();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
lgError(exc, "Errore in setNumArt FANUC");
|
||||
connectionOk = false;
|
||||
}
|
||||
answ = true;
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua impostazione del valore numerico COMMESSA (specifico FANUC)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool setNumCom(int valReq)
|
||||
{
|
||||
bool answ = false;
|
||||
// verifico quale modalità sia richiesta
|
||||
string memAddr = getOptPar("SET_NUM_COM");
|
||||
if (cIobConf.optPar.Count > 0 && !string.IsNullOrEmpty(memAddr))
|
||||
{
|
||||
// scrivo valore richiesto in area configurata
|
||||
try
|
||||
{
|
||||
// var di appoggio
|
||||
int cntAddr = 0;
|
||||
#if false
|
||||
// var contapezzi a zero....
|
||||
object newVal = new object();
|
||||
newVal = valReq;
|
||||
#endif
|
||||
// verifico se si tratta di lettura MACRO... formato tipo MACRO.6711
|
||||
if (memAddr.StartsWith("MACRO."))
|
||||
{
|
||||
// recupero parametro...
|
||||
int.TryParse(memAddr.Replace("MACRO.", ""), out cntAddr);
|
||||
if (cntAddr == 0)
|
||||
{
|
||||
cntAddr = 9999;
|
||||
}
|
||||
|
||||
// processo SET contapezzi (lavorati)
|
||||
stopwatch.Restart();
|
||||
Int16 reqVal = (Int16)valReq;
|
||||
FANUC_ref.F_RW_Macro_Short(true, cntAddr, ref reqVal);
|
||||
if (utils.CRB("recTime"))
|
||||
{
|
||||
TimingData.addResult(cIobConf.codIOB, "MACRO-SHORT", stopwatch.ElapsedTicks);
|
||||
}
|
||||
}
|
||||
#if false
|
||||
else if (memAddr.StartsWith("PAR."))
|
||||
{
|
||||
// recupero parametro...
|
||||
int.TryParse(memAddr.Replace("PAR.", ""), out cntAddr);
|
||||
if (cntAddr == 0)
|
||||
{
|
||||
cntAddr = 6711;
|
||||
}
|
||||
|
||||
// processo SET contapezzi (lavorati)
|
||||
stopwatch.Restart();
|
||||
FANUC_ref.F_RW_Param_Integer(true, cntAddr, 3, ref newVal);
|
||||
if (utils.CRB("recTime"))
|
||||
{
|
||||
TimingData.addResult(cIobConf.codIOB, string.Format("W{0}-PAR", 4), stopwatch.ElapsedTicks);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
memAddressFanuc areaCounter = new memAddressFanuc(memAddr);
|
||||
|
||||
if (isVerboseLog)
|
||||
{
|
||||
lgInfo("setPzComm [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 = (byte)pzReq;
|
||||
FANUC_ref.F_RW_Byte(true, areaCounter.mType, areaCounter.mPos, ref valB);
|
||||
newVal = valB;
|
||||
break;
|
||||
|
||||
case "D":
|
||||
ushort valW = (ushort)pzReq;
|
||||
FANUC_ref.F_RW_Word(true, areaCounter.mType, areaCounter.mPos, ref valW);
|
||||
newVal = valW;
|
||||
break;
|
||||
|
||||
case "DW":
|
||||
uint valDW = (uint)pzReq;
|
||||
FANUC_ref.F_RW_DWord(true, areaCounter.mType, areaCounter.mPos, ref valDW);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (utils.CRB("recTime"))
|
||||
{
|
||||
TimingData.addResult(cIobConf.codIOB, string.Format("W-{0}.{1}.{2}", areaCounter.mType, areaCounter.mPos, areaCounter.vType), stopwatch.ElapsedTicks);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
stopwatch.Stop();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
lgError(exc, "Errore in setNumCom FANUC");
|
||||
connectionOk = false;
|
||||
}
|
||||
answ = true;
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Effettua impostazione del conteggio pezzi richiesti
|
||||
/// </summary>
|
||||
@@ -934,7 +1300,7 @@ namespace IOB_WIN_NEXT.Iob
|
||||
int cntAddr = 0;
|
||||
// var contapezzi a zero....
|
||||
object newVal = new object();
|
||||
newVal = 0;
|
||||
newVal = pzReq;
|
||||
// verifico se si tratta di lettura parametro... formato tipo STD.PAR.6711
|
||||
if (memAddr.StartsWith("PAR."))
|
||||
{
|
||||
@@ -945,7 +1311,7 @@ namespace IOB_WIN_NEXT.Iob
|
||||
cntAddr = 6711;
|
||||
}
|
||||
|
||||
// processo RESET contapezzi (lavorati)
|
||||
// processo SET contapezzi (lavorati)
|
||||
stopwatch.Restart();
|
||||
FANUC_ref.F_RW_Param_Integer(true, cntAddr, 3, ref newVal);
|
||||
if (utils.CRB("recTime"))
|
||||
@@ -953,6 +1319,24 @@ namespace IOB_WIN_NEXT.Iob
|
||||
TimingData.addResult(cIobConf.codIOB, string.Format("W{0}-PAR", 4), stopwatch.ElapsedTicks);
|
||||
}
|
||||
}
|
||||
else if (memAddr.StartsWith("MACRO."))
|
||||
{
|
||||
// recupero parametro...
|
||||
int.TryParse(memAddr.Replace("MACRO.", ""), out cntAddr);
|
||||
if (cntAddr == 0)
|
||||
{
|
||||
cntAddr = 9999;
|
||||
}
|
||||
|
||||
// processo SET contapezzi (lavorati)
|
||||
stopwatch.Restart();
|
||||
Int16 reqVal = (Int16)pzReq;
|
||||
FANUC_ref.F_RW_Macro_Short(true, cntAddr, ref reqVal);
|
||||
if (utils.CRB("recTime"))
|
||||
{
|
||||
TimingData.addResult(cIobConf.codIOB, "MACRO-SHORT", stopwatch.ElapsedTicks);
|
||||
}
|
||||
}
|
||||
// altrimenti se legge da area memoria specifica leggo da li... formto
|
||||
// tipo STD.D.1604.DW
|
||||
else
|
||||
@@ -1349,8 +1733,8 @@ namespace IOB_WIN_NEXT.Iob
|
||||
// verifico se variato contapezzi...
|
||||
if (contapezziPLC > contapezziIOB)
|
||||
{
|
||||
// salvo nuovo contapezzi (incremento di 1...) + richiesta
|
||||
// refresh conteggio
|
||||
// salvo nuovo contapezzi (incremento di 1...) +
|
||||
// richiesta refresh conteggio
|
||||
contapezziIOB++;
|
||||
needRefreshPzCount = true;
|
||||
// salvo in semaforo!
|
||||
|
||||
@@ -3080,6 +3080,7 @@ namespace IOB_WIN_NEXT.Iob
|
||||
{
|
||||
// aggiungo a task2add...
|
||||
task2Add.Add(linkVal, item.Value);
|
||||
lgInfo($"Aggiunta task linked: {linkVal} -> {item.Value}");
|
||||
}
|
||||
}
|
||||
// se ho task Link da aggiungere li aggiungo!
|
||||
|
||||
Reference in New Issue
Block a user