diff --git a/IOB-WIN-NEXT/DATA/CONF/2014.ini b/IOB-WIN-NEXT/DATA/CONF/2014.ini
index f9a986f2..8a80bf3f 100644
--- a/IOB-WIN-NEXT/DATA/CONF/2014.ini
+++ b/IOB-WIN-NEXT/DATA/CONF/2014.ini
@@ -1,7 +1,7 @@
;Configurazione IOB-WIN
[IOB]
;Centro di lavoro OpcUa
-CNCTYPE=OpcUaSiemensEMCO
+CNCTYPE=OpcUaSiemens
;CNCTYPE=OpcUa
PING_MS_TIMEOUT=500
@@ -14,7 +14,7 @@ IP=192.168.51.214
PORT=4840
GETPRGNAME=true
-[SERVER]
+[SERVER]
MPIP=http://192.168.51.77
MPURL=/MP/IO
CMDBASE=/IOB/input/
@@ -65,6 +65,7 @@ ENABLE_DYN_DATA=FALSE
FORCE_DYN_DATA=TRUE
ENABLE_DATA_FILTER=TRUE
ENABLE_CLI_RESTART=TRUE
+DISABLE_SEND_WDST=TRUE
; conf parametri memoria READ/WRITE
OPC_PARAM_CONF=2014.json
diff --git a/IOB-WIN-NEXT/DATA/CONF/2014.json b/IOB-WIN-NEXT/DATA/CONF/2014.json
index f477a86f..22af356a 100644
--- a/IOB-WIN-NEXT/DATA/CONF/2014.json
+++ b/IOB-WIN-NEXT/DATA/CONF/2014.json
@@ -2,11 +2,11 @@
"BrowseFullVal": "ns=2;s=Sinumerik",
"BrowseNSIndex": 4,
"BrowseValue": 5001,
- "keyPartCount": "ns=2;s=/Channel/State/actParts",
+ "keyPartCount": "QUANTITA_PRODOTTA",
"keyPartReq": "",
"keyPartId": "",
"keyProgName": "",
- "keyRunMode": "ns=2;s=/Channel/State/acProg",
+ "keyRunMode": "acProg",
"pingAsPowerOn": true,
"Identity": {
"UserName": "DONATI_1",
@@ -14,24 +14,17 @@
},
"condWork": [
{
- "keyName": "ns=2;s=/Channel/State/acProg",
+ "keyName": "acProg",
"targetValue": "2"
}
],
"condPowerOn": {
- "checkMode": "AND",
- "checkList": [
- {
- "keyName": "ns=2;s=/Channel/State/acProg",
- "targetValue": "1"
- }
- ]
},
"condReady": {
"checkMode": "AND",
"checkList": [
{
- "keyName": "ns=2;s=/Channel/State/acProg",
+ "keyName": "acProg",
"targetValue": "3"
}
]
@@ -40,7 +33,7 @@
"checkMode": "AND",
"checkList": [
{
- "keyName": "ns=2;s=/Channel/State/acProg",
+ "keyName": "acProg",
"targetValue": "4"
}
]
@@ -49,7 +42,7 @@
"checkMode": "AND",
"checkList": [
{
- "keyName": "ns=2;s=/Nck/State/aStopesi",
+ "keyName": "aStopesi",
"targetValue": "0"
}
]
@@ -58,7 +51,7 @@
"checkMode": "AND",
"checkList": [
{
- "keyName": "ns=2;s=/Channel/State/acProg",
+ "keyName": "acProg",
"targetValue": "1"
}
]
@@ -69,6 +62,7 @@
},
"condWarmUpCoolDown": {
"checkMode": "OR",
+ "negateValue": true,
"checkList": [
]
},
@@ -86,11 +80,16 @@
"rovrd": "PATH RAPID OVERRIDE"
},
"paramsEndThresh": {
- "InvDDone": 50
+ "actFeedRateIpo": 100,
+ "actFeedRateIpoOvr": 10,
+ "feedRateIpoOvr": 10
+ },
+ "paramsContainsThresh": {
},
"filterItemsNodeId": [
"ns=2;s=/Axis",
"ns=2;s=/Bag",
+ "ns=2;s=/Channel/State/actProgNetTime",
"ns=2;s=/Channel/AuxiliaryFunctions",
"ns=2;s=/Channel/GenericCoupling",
"ns=2;s=/Channel/Diagnose",
@@ -122,9 +121,8 @@
"ns=2;s=/Channel/Spindle",
"ns=2;s=/DriveVsa",
"ns=2;s=Sinumerik/FileSystem",
- "ns=2;s=/Methods/",
- "ns=2;s=/Nck/",
- "ns=2;s=/NC/",
+ "ns=2;s=/Methods",
+ "ns=2;s=/NC",
"ns=2;s=/NC/_N_NC_GD1_ACX",
"ns=2;s=/NC/_N_NC_GD4_ACX",
"ns=2;s=/NC/_N_CH_GD1_ACX",
@@ -195,15 +193,55 @@
"subscribedItems": [
"ns=2;s=/Channel/State/actParts",
"ns=2;s=/Channel/State/acProg",
- "ns=2;s=/Channel/State/actProgNetTime",
+ "ns=2;s=/Channel/State/oldProgNetTime",
+ "ns=2;s=/Channel/State/oldProgNetTimeCounter",
"ns=2;s=/Channel/State/chanAlarm",
"ns=2;s=/Channel/State/actTNumber",
"ns=2;s=/Channel/ProgramInfo/selectedWorkPProg",
"ns=2;s=/Channel/ProgramInfo/progName",
"ns=2;s=/Channel/State/actFeedRateIpo",
"ns=2;s=/Channel/State/actFeedRateIpoOvr",
- "ns=2;s=/Channel/State/feedRateIpoOvr"
+ "ns=2;s=/Channel/State/feedRateIpoOvr",
+ "ns=2;s=/Nck/State/aStopesi",
+ "ns=2;s=/NC/_N_CH_GD2_ACX/CODICE_ARTICOLO",
+ "ns=2;s=/NC/_N_CH_GD2_ACX/CODICE_COMMESSA",
+ "ns=2;s=/NC/_N_CH_GD2_ACX/QUANTITA_PRODOTTA",
+ "ns=2;s=/NC/_N_CH_GD2_ACX/QUANTITA_RICHIESTA"
],
+ "mMapWrite": {
+ "setComm": {
+ "name": "setComm",
+ "description": "Commessa",
+ "tipoMem": "String",
+ "memAddr": "ns=2;s=/NC/_N_CH_GD2_ACX/CODICE_COMMESSA",
+ "index": 0,
+ "size": 20
+ },
+ "setArt": {
+ "name": "setArt",
+ "description": "Articolo",
+ "tipoMem": "String",
+ "memAddr": "ns=2;s=/NC/_N_CH_GD2_ACX/CODICE_ARTICOLO",
+ "index": 0,
+ "size": 20
+ },
+ "setPzComm": {
+ "name": "setPzComm",
+ "description": "Qty",
+ "tipoMem": "Int",
+ "memAddr": "ns=2;s=/NC/_N_CH_GD2_ACX/QUANTITA_RICHIESTA",
+ "index": 0,
+ "size": 4
+ },
+ "forceSetPzCount": {
+ "name": "forceSetPzCount",
+ "description": "Qta prodotta",
+ "tipoMem": "Int",
+ "memAddr": "ns=2;s=/NC/_N_CH_GD2_ACX/QUANTITA_PRODOTTA",
+ "index": 0,
+ "size": 4
+ }
+ },
"mMapRead": {
"OPC_Status": {
"name": "OPC_Status",
@@ -269,6 +307,5 @@
"index": 0,
"size": 1
}
-
}
}
\ No newline at end of file
diff --git a/IOB-WIN-NEXT/DATA/CONF/3024.ini b/IOB-WIN-NEXT/DATA/CONF/3024.ini
index fa5c123a..51f1c118 100644
--- a/IOB-WIN-NEXT/DATA/CONF/3024.ini
+++ b/IOB-WIN-NEXT/DATA/CONF/3024.ini
@@ -1,5 +1,5 @@
;Configurazione IOB-WIN
-[IOB]
+[IOB]
;Tornio Biglia 438 controllo Mitsubishi MTConnect
CNCTYPE=MTConnect
PING_MS_TIMEOUT=500
diff --git a/IOB-WIN-NEXT/DATA/CONF/3026.json b/IOB-WIN-NEXT/DATA/CONF/3026.json
index 06048b2c..57e861ac 100644
--- a/IOB-WIN-NEXT/DATA/CONF/3026.json
+++ b/IOB-WIN-NEXT/DATA/CONF/3026.json
@@ -124,6 +124,9 @@
"ServiceLevel",
"SoftwareCertificates"
],
+ "paramsContainsThresh": {
+ "Decompressione": 5.0
+ },
"itemTranslation": {
"fdovrd": "PATH FEED OVERRIDE",
"rovrd": "PATH RAPID OVERRIDE",
diff --git a/IOB-WIN-NEXT/DATA/CONF/MAIN.ini b/IOB-WIN-NEXT/DATA/CONF/MAIN.ini
index a288062b..2c6b7e7a 100644
--- a/IOB-WIN-NEXT/DATA/CONF/MAIN.ini
+++ b/IOB-WIN-NEXT/DATA/CONF/MAIN.ini
@@ -48,7 +48,7 @@ CLI_INST=SteamWareSim
;STARTLIST=VL27
;NB: mettere copy always ai file di conf x fare test...
-STARTLIST=SIMUL_01
+STARTLIST=2014
;STARTLIST=Tend_RAMA_10_47
diff --git a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj
index 4cd69e2a..2e061b2b 100644
--- a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj
+++ b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj
@@ -515,8 +515,12 @@
-
-
+
+ Always
+
+
+ Always
+
diff --git a/IOB-WIN-NEXT/Iob/Generic.cs b/IOB-WIN-NEXT/Iob/Generic.cs
index 06328dc3..87ec2c29 100644
--- a/IOB-WIN-NEXT/Iob/Generic.cs
+++ b/IOB-WIN-NEXT/Iob/Generic.cs
@@ -1586,6 +1586,7 @@ namespace IOB_WIN_NEXT.Iob
case taskType.setComm:
case taskType.setProg:
case taskType.setPzComm:
+ case taskType.forceSetPzCount:
// recupero dati da memMap...
if (memMap != null && memMap.mMapWrite != null)
{
@@ -2787,6 +2788,8 @@ namespace IOB_WIN_NEXT.Iob
}
else if (CHANGE_ODL_MODE == "TIME" || CHANGE_ODL_MODE == "SIMUL")
{
+ // imposto x prox controllo veto a 1 min
+ VetoProcessAutoOdl = adesso.AddMinutes(1);
// carico i parametri di configurazione x reset ODL...
string CHANGE_ODL_HOURS = getOptPar("CHANGE_ODL_HOURS");
string CHANGE_ODL_IDLE_MIN = getOptPar("CHANGE_ODL_IDLE_MIN");
@@ -7252,24 +7255,21 @@ namespace IOB_WIN_NEXT.Iob
}
}
// invio su cloud parametri SE sono connesso alla macchina... in pratica reset parametri...
+ string tipoCall = urlSaveAllParams;
+ rawData = JsonConvert.SerializeObject(allParam, Formatting.Indented);
if (serverOk)
{
- string tipoCall = urlSaveAllParams;
- rawData = JsonConvert.SerializeObject(allParam, Formatting.Indented);
- if (serverOk)
+ // verifica se sia un IOB "parziale")
+ if (cIobConf.disableExeTask || cIobConf.disableStateCh)
{
- // verifica se sia un IOB "parziale")
- if (cIobConf.disableExeTask || cIobConf.disableStateCh)
- {
- // versione upsert
- tipoCall = urlUpdateWriteParams;
- }
- var resp = utils.callUrl($"{tipoCall}", rawData);
- }
- else
- {
- lgInfo($"Mancata risposta ping server, non effettuata chiamata {tipoCall}");
+ // versione upsert
+ tipoCall = urlUpdateWriteParams;
}
+ var resp = utils.callUrl($"{tipoCall}", rawData);
+ }
+ else
+ {
+ lgInfo($"Mancata risposta ping server, non effettuata chiamata {tipoCall}");
}
lgDebug($"setupMemMap | salvata conf memoria R/W");
}
diff --git a/IOB-WIN-NEXT/Iob/Kawasaki.cs b/IOB-WIN-NEXT/Iob/Kawasaki.cs
index 4bfb417b..fe5130ba 100644
--- a/IOB-WIN-NEXT/Iob/Kawasaki.cs
+++ b/IOB-WIN-NEXT/Iob/Kawasaki.cs
@@ -320,6 +320,9 @@ namespace IOB_WIN_NEXT.Iob
///
public override bool resetContapezziPLC()
{
+ // impiego override metodo set...
+ bool answ = setcontapezziPLC(0);
+#if false
bool answ = false;
// ...SE abilitato da conf IOB
if (cIobConf.optPar.Count > 0 && getOptPar("ENABLE_PZ_RESET") == "TRUE")
@@ -339,7 +342,8 @@ namespace IOB_WIN_NEXT.Iob
else
{
lgError("Impossibile effettuare RESET contapezzi KAWASAKI, mancanza parametro OPT:ENABLE_PZ_RESET");
- }
+ }
+#endif
return answ;
}
diff --git a/IOB-WIN-NEXT/IobOpc/OpcUaSiemens.cs b/IOB-WIN-NEXT/IobOpc/OpcUaSiemens.cs
index d9fd0936..51c45745 100644
--- a/IOB-WIN-NEXT/IobOpc/OpcUaSiemens.cs
+++ b/IOB-WIN-NEXT/IobOpc/OpcUaSiemens.cs
@@ -174,9 +174,47 @@ namespace IOB_WIN_NEXT.IobOpc
///
public override bool resetContapezziPLC()
{
+ lgInfo("Chiamata resetContapezziPLC");
bool answ = false;
- // imposto un veto in lettura cmq x evitare problemi
- dtVetoReadPzCount = DateTime.Now.AddMinutes(delayMinReadPzCount);
+ // ...SE abilitato da conf IOB
+ if (cIobConf.optPar.Count > 0 && getOptPar("ENABLE_PZ_RESET") == "TRUE")
+ {
+ // imposto un veto in lettura cmq x evitare problemi
+ dtVetoReadPzCount = DateTime.Now.AddMinutes(delayMinReadPzCount);
+ if (opcUaParams.actResetCounter != null && opcUaParams.actResetCounter.Count > 0)
+ {
+ try
+ {
+ List nodes2Write = new List();
+ foreach (var item in opcUaParams.actResetCounter)
+ {
+ WriteValue commWriteVal = new WriteValue();
+ commWriteVal.NodeId = new NodeId(item.Key);
+ commWriteVal.AttributeId = Attributes.Value;
+ commWriteVal.Value = new DataValue();
+ commWriteVal.Value.Value = item.Value;
+
+ nodes2Write.Add(commWriteVal);
+ lgInfo($"Accodo nodo per scrittura OPC-UA:{Environment.NewLine}{JsonConvert.SerializeObject(commWriteVal)}");
+ }
+ // vera scrittura
+ UA_ref.WriteNodes(nodes2Write);
+ answ = true;
+ lgInfo($"Eseguito scrittura OPC-UA su nodo actResetCounter");
+ }
+ catch
+ { }
+ }
+ else
+ {
+ // imposto a zero (SE gestito)
+ setcontapezziPLC(0);
+ }
+ }
+ else
+ {
+ lgError("Impossibile effettuare RESET contapezzi, mancanza parametro OPT:ENABLE_PZ_RESET");
+ }
return answ;
}
@@ -187,6 +225,21 @@ namespace IOB_WIN_NEXT.IobOpc
public override bool setcontapezziPLC(int newPzCount)
{
bool answ = false;
+ // ...SE abilitato da conf IOB
+ if (cIobConf.optPar.Count > 0 && getOptPar("ENABLE_PZ_RESET") == "TRUE")
+ {
+ if (memMap != null)
+ {
+ // provare x Donati EMCO e Siemens Rama Tenditalia
+ Dictionary task2add = new Dictionary();
+ task2add.Add("forceSetPzCount", $"{newPzCount}");
+ executeTasks(task2add);
+ }
+ }
+ else
+ {
+ lgError("Impossibile effettuare SET contapezzi, mancanza parametro OPT:ENABLE_PZ_RESET");
+ }
return answ;
}
diff --git a/IOB-WIN-NEXT/postBuildTgt.bat b/IOB-WIN-NEXT/postBuildTgt.bat
index acddd10f..f2df5f85 100644
--- a/IOB-WIN-NEXT/postBuildTgt.bat
+++ b/IOB-WIN-NEXT/postBuildTgt.bat
@@ -70,9 +70,11 @@ REM IOB-WIN-SIM
REM ROBOCOPY . \\IOB-WIN-SIMULA\Steamware\IOB-WIN-NEXT-DEB /MIR
REM IOBVPN4MACHINE
-ROBOCOPY . \\10.51.90.5\Steamware\IOB-WIN-NEXT-DEB /MIR
+REM ROBOCOPY . \\10.51.90.5\Steamware\IOB-WIN-NEXT-DEB /MIR
REM ROBOCOPY . \\10.51.90.5\Steamware\IOB-WIN-NEXT-DEB /MIR /log:RobocopyTransfer.log
REM ROBOCOPY . \\10.51.90.9\Steamware\IOB-WIN-NEXT-DEB /MIR
+REM ROBOCOPY . \\10.51.90.10\Steamware\IOB-WIN-NEXT-DEB /MIR
+ROBOCOPY . Z:\IOB-WIN-NEXT-DEB /MIR
goto END