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