diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 166b2142..bc6fb7fc 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -221,12 +221,12 @@ IOB-WIN-NEXT:build:
script:
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m'
-IOB-WIN-WPS:build:
+IOB-WIN-MTC:build:
stage: build
tags:
- win
variables:
- APP_NAME: IOB-WIN-WPS
+ APP_NAME: IOB-WIN-MTC
before_script:
- *nuget-fix
- '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
@@ -247,6 +247,19 @@ IOB-WIN-PING:build:
script:
- '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m'
+IOB-WIN-WPS:build:
+ stage: build
+ tags:
+ - win
+ variables:
+ APP_NAME: IOB-WIN-WPS
+ before_script:
+ - *nuget-fix
+ - '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
+ - *version-fix
+ script:
+ - '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m'
+
# --------------------------------
# RELEASE
# --------------------------------
@@ -300,18 +313,18 @@ IOB-WIN-NEXT:release:
- *nexusUpload
- *SendToVersionsLog
-IOB-WIN-WPS:release:
+IOB-WIN-PING:release:
stage: release
- needs: ["IOB-WIN-WPS:build"]
+ needs: ["IOB-WIN-PING:build"]
tags:
- win
variables:
- APP_NAME: IOB-WIN-WPS
- NEXUS_PATH: MAPO/IOB-WIN-WPS
+ APP_NAME: IOB-WIN-PING
+ NEXUS_PATH: MAPO/IOB-WIN-PING
rules:
- if: $CI_COMMIT_BRANCH == 'master'
changes:
- - IOB-WIN-WPS/*
+ - IOB-WIN-PING/*
when: always
before_script:
- *nuget-fix
@@ -325,19 +338,43 @@ IOB-WIN-WPS:release:
- *nexusUpload
- *SendToVersionsLog
-
-IOB-WIN-PING:release:
+IOB-WIN-MTC:release:
stage: release
- needs: ["IOB-WIN-PING:build"]
+ needs: ["IOB-WIN-MTC:build"]
tags:
- win
variables:
- APP_NAME: IOB-WIN-PING
- NEXUS_PATH: MAPO/IOB-WIN-PING
+ APP_NAME: IOB-WIN-MTC
+ NEXUS_PATH: MAPO/IOB-WIN-MTC
rules:
- if: $CI_COMMIT_BRANCH == 'master'
changes:
- - IOB-WIN-PING/*
+ - IOB-WIN-MTC/*
+ when: always
+ before_script:
+ - *nuget-fix
+ - '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
+ - *version-fix
+ - *cleanup-zip
+ script:
+ - '& "$env:MSBUILD_PATH" "$env:APP_NAME\$env:APP_NAME.csproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m'
+ - *zipper
+ - *hashBuild
+ - *nexusUpload
+ - *SendToVersionsLog
+
+IOB-WIN-WPS:release:
+ stage: release
+ needs: ["IOB-WIN-WPS:build"]
+ tags:
+ - win
+ variables:
+ APP_NAME: IOB-WIN-WPS
+ NEXUS_PATH: MAPO/IOB-WIN-WPS
+ rules:
+ - if: $CI_COMMIT_BRANCH == 'master'
+ changes:
+ - IOB-WIN-WPS/*
when: always
before_script:
- *nuget-fix
@@ -374,26 +411,6 @@ IOB-WIN-NEXT:docfx:
- mv $env:APP_NAME/_site "docfx"
- *DocReplica
-IOB-WIN-WPS:docfx:
- stage: docfx
- needs: ["IOB-WIN-WPS:build"]
- tags:
- - win
- variables:
- APP_NAME: IOB-WIN-WPS
- rules:
- - if: $CI_COMMIT_BRANCH == 'master'
- changes:
- - IOB-WIN-WPS/*
- when: always
- before_script:
- - *nuget-fix
- - '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
- script:
- - docfx $env:APP_NAME/docfx.json
- - mv $env:APP_NAME/_site "docfx"
- - *DocReplica
-
IOB-WIN-PING:docfx:
stage: docfx
needs: ["IOB-WIN-PING:build"]
@@ -413,3 +430,43 @@ IOB-WIN-PING:docfx:
- docfx $env:APP_NAME/docfx.json
- mv $env:APP_NAME/_site "docfx"
- *DocReplica
+
+IOB-WIN-MTC:docfx:
+ stage: docfx
+ needs: ["IOB-WIN-MTC:build"]
+ tags:
+ - win
+ variables:
+ APP_NAME: IOB-WIN-MTC
+ rules:
+ - if: $CI_COMMIT_BRANCH == 'master'
+ changes:
+ - IOB-WIN-MTC/*
+ when: always
+ before_script:
+ - *nuget-fix
+ - '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
+ script:
+ - docfx $env:APP_NAME/docfx.json
+ - mv $env:APP_NAME/_site "docfx"
+ - *DocReplica
+
+IOB-WIN-WPS:docfx:
+ stage: docfx
+ needs: ["IOB-WIN-WPS:build"]
+ tags:
+ - win
+ variables:
+ APP_NAME: IOB-WIN-WPS
+ rules:
+ - if: $CI_COMMIT_BRANCH == 'master'
+ changes:
+ - IOB-WIN-WPS/*
+ when: always
+ before_script:
+ - *nuget-fix
+ - '& "$env:NUGET_PATH" restore "$env:APP_NAME.sln" -verbosity quiet'
+ script:
+ - docfx $env:APP_NAME/docfx.json
+ - mv $env:APP_NAME/_site "docfx"
+ - *DocReplica
diff --git a/IOB-WIN-MBUS.sln b/IOB-WIN-MBUS.sln
new file mode 100644
index 00000000..221674f9
--- /dev/null
+++ b/IOB-WIN-MBUS.sln
@@ -0,0 +1,83 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.2.32505.173
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VersGen", "VersGen\VersGen.csproj", "{58E399F3-9D4E-49D3-AB35-9ED536543D50}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B52E3E86-1B82-4F4D-982C-0C8909CD2A28}"
+ ProjectSection(SolutionItems) = preProject
+ .editorconfig = .editorconfig
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IOB-UT-NEXT", "IOB-UT-NEXT\IOB-UT-NEXT.csproj", "{90512E12-29FC-460D-94CC-648C2A072DBD}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IOB-WIN-FORM", "IOB-WIN-FORM\IOB-WIN-FORM.csproj", "{9BA331BB-9BF1-40E0-AC03-74B43D73A097}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IOB-WIN-PING", "IOB-WIN-PING\IOB-WIN-PING.csproj", "{6ADF1E82-124C-489C-99EF-A857C933D362}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|x86 = Release|x86
+ Remote_DEBUG|Any CPU = Remote_DEBUG|Any CPU
+ Remote_DEBUG|x86 = Remote_DEBUG|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Debug|x86.Build.0 = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Release|Any CPU.Build.0 = Release|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Release|x86.ActiveCfg = Release|x86
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Release|x86.Build.0 = Release|x86
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Remote_DEBUG|Any CPU.ActiveCfg = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Remote_DEBUG|Any CPU.Build.0 = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Remote_DEBUG|x86.ActiveCfg = Remote_DEBUG|x86
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Remote_DEBUG|x86.Build.0 = Remote_DEBUG|x86
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Debug|x86.ActiveCfg = Debug|x86
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Debug|x86.Build.0 = Debug|x86
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Release|x86.ActiveCfg = Release|x86
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Release|x86.Build.0 = Release|x86
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Remote_DEBUG|Any CPU.ActiveCfg = Debug|Any CPU
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Remote_DEBUG|Any CPU.Build.0 = Debug|Any CPU
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Remote_DEBUG|x86.ActiveCfg = Release|x86
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Debug|x86.Build.0 = Debug|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Release|x86.ActiveCfg = Release|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Release|x86.Build.0 = Release|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Remote_DEBUG|Any CPU.ActiveCfg = Debug|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Remote_DEBUG|Any CPU.Build.0 = Debug|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Remote_DEBUG|x86.ActiveCfg = Release|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Remote_DEBUG|x86.Build.0 = Release|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Debug|x86.Build.0 = Debug|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Release|x86.ActiveCfg = Release|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Release|x86.Build.0 = Release|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Remote_DEBUG|Any CPU.ActiveCfg = Release|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Remote_DEBUG|Any CPU.Build.0 = Release|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Remote_DEBUG|x86.ActiveCfg = Release|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Remote_DEBUG|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {801DCDC5-B7D3-4EA5-B543-783D2C91765F}
+ EndGlobalSection
+EndGlobal
diff --git a/IOB-WIN-MBUS/AdapterFormNext.cs b/IOB-WIN-MBUS/AdapterFormNext.cs
new file mode 100644
index 00000000..d4b03e39
--- /dev/null
+++ b/IOB-WIN-MBUS/AdapterFormNext.cs
@@ -0,0 +1,56 @@
+using IOB_UT_NEXT;
+using IOB_WIN_PING.Iob;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IOB_WIN_PING
+{
+ public class AdapterFormNext: IOB_WIN_FORM.AdapterForm
+ {
+
+ ///
+ /// Avvio MainForm
+ ///
+ ///
+ public AdapterFormNext(string codIOB): base(codIOB)
+ {
+ }
+ ///
+ /// carica IOB richiesto
+ ///
+ protected override void loadIobType()
+ {
+ if (IOBConf != null)
+ {
+ switch (tipoScelto)
+ {
+
+ case tipoAdapter.PingWatchdog:
+ iobObj = new IOB_WIN_FORM.Iob.PingWatchDog(this, IOBConf);
+ btnStart.Enabled = true;
+ break;
+
+ case tipoAdapter.SIMULA:
+ case tipoAdapter.ND:
+ default:
+ iobObj = new IOB_WIN_FORM.Iob.Simula(this, IOBConf);
+ btnStart.Enabled = false;
+ break;
+ }
+ lblCncText = $"CNC: {IOBConf.tipoIob} [{IOBConf.cncIpAddr}:{IOBConf.cncPort}]";
+ lblSrvUrlText = $"SRV: {IOBConf.serverData.MPIP} | URL: {IOBConf.serverData.MPURL}{IOBConf.serverData.CMDBASE}";
+
+ // aggancio evento refresh
+ iobObj.eh_refreshed += IobObj_eh_refreshed;
+
+ // carico i default values su interfaccia
+ setDefaults();
+
+ displayTaskAndLog($"Caricata conf per adapter {tipoScelto}");
+ }
+ }
+ }
+}
diff --git a/IOB-WIN-MBUS/App.Debug.config b/IOB-WIN-MBUS/App.Debug.config
new file mode 100644
index 00000000..42297ccc
--- /dev/null
+++ b/IOB-WIN-MBUS/App.Debug.config
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/App.Release.config b/IOB-WIN-MBUS/App.Release.config
new file mode 100644
index 00000000..0f80d173
--- /dev/null
+++ b/IOB-WIN-MBUS/App.Release.config
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/App.config b/IOB-WIN-MBUS/App.config
new file mode 100644
index 00000000..93faf2cd
--- /dev/null
+++ b/IOB-WIN-MBUS/App.config
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/DATA/CONF/FTP-PING.ini b/IOB-WIN-MBUS/DATA/CONF/FTP-PING.ini
new file mode 100644
index 00000000..efe46cca
--- /dev/null
+++ b/IOB-WIN-MBUS/DATA/CONF/FTP-PING.ini
@@ -0,0 +1,59 @@
+;Configurazione IOB-WIN
+[IOB]
+;Macchina TEST PING
+CNCTYPE=PingWatchdog
+PING_MS_TIMEOUT=500
+IOB_NAME=FTP_SONATEST
+
+[MACHINE]
+VENDOR=STEAMWARE
+MODEL=WATCHDOG
+
+[CNC]
+IP=10.74.82.204
+PORT=0000
+PING_IP=10.74.82.204
+GETPRGNAME=false
+
+[SERVER]
+MPIP=http://10.74.82.218
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+CMD_ODL_STARTED=/IOB/getCurrOdlStart/
+CMD_FORCLE_SPLIT_ODL=/IOB/forceSplitOdlFull/
+CMD_IDLE_TIME=/IOB/getIdlePeriod/
+
+[MEMORY]
+
+[BLINK]
+;MAX_COUNTER_BLINK = 30
+MAX_COUNTER_BLINK = 30
+BLINK_FILT=0
+
+[OPTPAR]
+VETO_QUEUE_IN=15
+AUTO_CHANGE_ODL=false
+POWEROFF_TIMEOUT_SEC=60
+DISABLE_PZCOUNT=TRUE
+;; gestioni PING
+;MAX_TRY_PING=3
+;VETO_QUEUE_IN=4
+;VETO_PING_SEC=4
+;VETO_CHECKDIR_SEC=10
+;MAX_ELAPSED_TIME_SEC=60
+;VETO_SEND_SNAPSHOT=3
+
+[BRANCH]
+NAME=master
+
+; Tags manuali
+[TAGS]
+Customer=SteamWare
+HostOS=WIN
+HostName=IOB-WIN-SIMULA
+HostAddr=10.74.82.76
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/DATA/CONF/IOB.ini b/IOB-WIN-MBUS/DATA/CONF/IOB.ini
new file mode 100644
index 00000000..9ac13668
--- /dev/null
+++ b/IOB-WIN-MBUS/DATA/CONF/IOB.ini
@@ -0,0 +1,50 @@
+;Configurazione IOB-WIN
+[IOB]
+CNCTYPE=FANUC
+;IDXMACC=3001
+
+[CNC]
+; TEST TORNOS!
+;IP=192.168.1.80
+IP=172.16.199.10
+PORT=8193
+
+[SERVER]
+MPIP=http://10.74.82.219
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+
+[MEMORY]
+BITRED=Y8.4
+BITYELLOW=Y8.5
+BITGREEN=Y8.6
+
+[BLINK]
+;MAX_COUNTER_BLINK = 30
+MAX_COUNTER_BLINK = 15
+;bit0 = 0
+;bit1 = 0
+;bit2 = 1
+;bit3 = 1
+;bit4 = 1
+;bit5 = 0
+;bit6 = 0
+;bit7 = 0
+BLINK_FILT=0
+;BLINK_FILT=28
+
+[OPTPAR]
+;PZCOUNT_MODE=STD|BIT
+PZCOUNT_MODE=BIT
+PZ_CAD_MADDR=1602
+PZ_REQ_MADDR=1603
+PZ_DONE_MADDR=1604
+PZ_GTOT_MADDR=1605
+
+[BRANCH]
+NAME=master
diff --git a/IOB-WIN-MBUS/DATA/CONF/MAIN.ini b/IOB-WIN-MBUS/DATA/CONF/MAIN.ini
new file mode 100644
index 00000000..43299be3
--- /dev/null
+++ b/IOB-WIN-MBUS/DATA/CONF/MAIN.ini
@@ -0,0 +1,61 @@
+;Configurazione IOB-WIN GENERALE
+[BRANCH]
+NAME=master
+
+[SERVER]
+
+; Server Steamware
+MPIP=10.74.82.218
+MPURL=/MP/IO
+CMDREBO=/IOB/sendRebootGateway?GWIP=
+CMDIOB2CALL=/IOB/getIob2call?GWIP=
+
+;Client Install
+CLI_INST=SteamWareSim
+
+[IOB]
+;--- TEST sul campo
+; SIMULAZIONE verso server ufficio
+;STARTLIST=SIMUL_01,SIMUL_02,SIMUL_03,SIMUL_04
+;STARTLIST=PIZ09
+;STARTLIST=VL25
+;STARTLIST=SIMUL_03
+;STARTLIST=GIACO_CEDAX_001
+;STARTLIST=GIACO_ICOEL_002
+;STARTLIST=GIACO_CENTERFRIGO
+;STARTLIST=GIACO_NWSE
+;STARTLIST=SIM_DP_01
+;STARTLIST=WPS
+;STARTLIST=FINASSI_HELPI_01
+;STARTLIST=FINASSI_OMP_01
+;STARTLIST=BAGLIETTO_CIMOLAI_01
+;STARTLIST=GIACO_SAIM_003
+;STARTLIST=PIZ09
+;STARTLIST=IMI_RIMOR_SAB_01
+;STARTLIST=IMI_RIMOR_SAB_02
+;STARTLIST=IMI_RIMOR_VER_01
+;STARTLIST=IMI_RIMOR_VER_02
+;STARTLIST=IMI_PAMA_392
+;STARTLIST=Tend_FIMAT_01
+;STARTLIST=PIZ10
+;STARTLIST=IMI_SOITAAB_Z2342_02
+;STARTLIST=IMI_GOMBA
+;STARTLIST=SIMUL_02
+;STARTLIST=SIM_DP_01
+;STARTLIST=FTP_SONATEST
+;STARTLIST=L020
+;STARTLIST=PING
+;STARTLIST=VL27
+
+;NB: mettere copy always ai file di conf x fare test...
+;STARTLIST=2014
+;STARTLIST=Tend_RAMA_10_47
+;STARTLIST=3024-PING
+;STARTLIST=2015
+;STARTLIST=3024
+;STARTLIST=SIMUL_01
+;STARTLIST=WPS
+STARTLIST=FTP-PING
+
+
+MAXCNC=10
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/DATA/CONF/PING.ini b/IOB-WIN-MBUS/DATA/CONF/PING.ini
new file mode 100644
index 00000000..1a4c140e
--- /dev/null
+++ b/IOB-WIN-MBUS/DATA/CONF/PING.ini
@@ -0,0 +1,51 @@
+;Configurazione IOB-WIN
+[IOB]
+CNCTYPE=PingWatchdog
+PING_MS_TIMEOUT=500
+;IOB_NAME=SIMUL_09
+IOB_NAME=SIMUL_01
+
+[MACHINE]
+VENDOR=STEAMWARE
+MODEL=WATCHDOG
+
+[CNC]
+IP=10.74.83.183
+;IP=10.74.82.253
+PORT=0000
+
+[SERVER]
+MPIP=http://10.74.82.218
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+CMD_ODL_STARTED=/IOB/getCurrOdlStart/
+CMD_FORCLE_SPLIT_ODL=/IOB/forceSplitOdlFull/
+CMD_IDLE_TIME=/IOB/getIdlePeriod/
+
+[MEMORY]
+
+[BLINK]
+MAX_COUNTER_BLINK = 15
+BLINK_FILT=0
+
+[OPTPAR]
+VETO_QUEUE_IN=15
+AUTO_CHANGE_ODL=false
+POWEROFF_TIMEOUT_SEC=60
+DISABLE_PZCOUNT=TRUE
+;; gestioni PING
+;MAX_TRY_PING=3
+;VETO_QUEUE_IN=4
+;VETO_PING_SEC=4
+;VETO_CHECKDIR_SEC=10
+;MAX_ELAPSED_TIME_SEC=60
+;VETO_SEND_SNAPSHOT=3
+
+
+[BRANCH]
+NAME=master
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/DATA/CONF/SIMUL_01.ini b/IOB-WIN-MBUS/DATA/CONF/SIMUL_01.ini
new file mode 100644
index 00000000..08975356
--- /dev/null
+++ b/IOB-WIN-MBUS/DATA/CONF/SIMUL_01.ini
@@ -0,0 +1,120 @@
+;Configurazione IOB-WIN
+[IOB]
+CNCTYPE=SIMULA
+PING_MS_TIMEOUT=500
+MinDeltaSec=5
+EnableRedisQueue=true
+;IOB_NAME=TFT_RAMA_001
+
+[MACHINE]
+VENDOR=STEAMWARE
+MODEL=DEMO_SIMULATOR
+
+[CNC]
+IP=127.0.0.1
+PORT=0000
+
+[SERVER]
+MPIP=http://10.74.82.218
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+CMD_ODL_STARTED=/IOB/getCurrOdlStart/
+CMD_FORCLE_SPLIT_ODL=/IOB/forceSplitOdlFull/
+CMD_IDLE_TIME=/IOB/getIdlePeriod/
+
+[MEMORY]
+
+[BLINK]
+MAX_COUNTER_BLINK = 15
+BLINK_FILT=0
+
+[OPTPAR]
+DISABLE_SEND_WDST=TRUE
+AUTO_CHANGE_ODL=true
+AUTO_SNAPSHOT_DOSSIER=true
+CHANGE_ODL_HOURS=24
+CHANGE_ODL_IDLE_MIN=0
+CHANGE_ODL_MODE=SIMUL
+; gestione custom timer
+timerIntMs=100
+;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
+PZCOUNT_MODE=BIT
+ENABLE_PZ_RESET=TRUE
+;gestione invio pezzi in blocco
+ENABLE_SEND_PZC_BLOCK=TRUE
+MIN_SEND_PZC_BLOCK=0
+MAX_SEND_PZC_BLOCK=100
+; gestione cambio ODL automatico (minuti minimi durata)
+MIN_DURATA_ODL=960
+; per il simulatore: 50|1 = WAIT 50, DURATION 1 con riferimento al PERIODO base (PER_BASE in ms, default 10 secondi)
+PER_BASE=10100
+SIM_PZCNT=5|1
+SIM_ALARM=100|10
+SIM_MANU=50|6
+; indica gestione e simulazione bit 5 --> slow
+SIM_SLOW=3600|20
+; indica gestione e simulazione bit 6 --> warmup/cooldown
+SIM_WUCD=8000|20
+; indica gestione e simulazione bit 7 --> emergenza
+SIM_EMRG=4000|10
+; indica simulazione delle funzionalità power ON/ OFF
+SIM_POW_ON_OFF=true
+T_ON=7
+T_OFF=22
+; indica simulazione controlli utente
+SIM_RC=81|1
+; indica simulazione registro scarti
+SIM_RS=161|1
+; indica simulazione dichiarazioni (note) utente
+SIM_DICH=261|1
+; indica matricola opr simulata
+SIM_MATR_OPR=1
+
+; test x datasync...
+DATA_SYNC_AT_START=true
+; test sim dossiers tipo Kepware
+SIM_KWP=true
+
+; gestione DynData simulati
+ENABLE_DYN_DATA=TRUE
+FORCE_DYN_DATA=TRUE
+NEW_DYN_DATA=TRUE
+; indica parametri gestione TcMan
+TC_MAX_TC_FACTOR=3.9
+TC_LAMBDA=0.4
+TC_MAX_INCR=5
+MAX_PZ_INCR_PERC=1000
+; conf parametri memoria READ/WRITE
+PARAM_CONF=SIMUL_01.json
+ALARM_CONF=SIMUL_01_alarm.json
+;test gestione logfile (eg: soitaab)
+EnabelPodlManFull=true
+CodGruppoIob=STEAMWARE-SIM-FASE-01
+; invio flux alla lettura file
+sendFluxOnRead=true
+
+;conf test FTP
+FTP_SERVER=ftp.steamware.net
+FTP_USER=testftpuser
+FTP_PWD=we4reFromB3rghem!
+FTP_CERT=
+FTP_SKIP=TRUE
+FTP_LOC_DIR=temp\csv
+FTP_REM_DIR=
+CSV_ADD_HEADER=true
+
+
+[BRANCH]
+NAME=master
+
+; Tags manuali
+[TAGS]
+Customer=Steamware
+HostOS=WIN
+HostName=IOB-WIN-SIMULA
+HostAddr=10.74.82.76
diff --git a/IOB-WIN-MBUS/DATA/CONF/SIMUL_01.json b/IOB-WIN-MBUS/DATA/CONF/SIMUL_01.json
new file mode 100644
index 00000000..d2895eb1
--- /dev/null
+++ b/IOB-WIN-MBUS/DATA/CONF/SIMUL_01.json
@@ -0,0 +1,410 @@
+{
+ "mMapWrite": {
+ "setArt": {
+ "name": "setArt",
+ "description": "Articolo",
+ "memAddr": "DB150.DBB12",
+ "tipoMem": "String",
+ "index": 12,
+ "size": 20,
+ "displOrdinal": 1
+ },
+ "setArtNum": {
+ "name": "setArtNum",
+ "description": "# Num Articolo",
+ "memAddr": "DB150.DBB112",
+ "tipoMem": "Int",
+ "index": 112,
+ "size": 4,
+ "displOrdinal": 1
+ },
+ "setComm": {
+ "name": "setComm",
+ "description": "Commessa",
+ "memAddr": "DB150.DBB32",
+ "tipoMem": "String",
+ "index": 32,
+ "size": 20,
+ "displOrdinal": 2
+ },
+ "setCommNum": {
+ "name": "setCommNum",
+ "description": "# NumCommessa",
+ "memAddr": "DB150.DBB132",
+ "tipoMem": "Int",
+ "index": 132,
+ "size": 4,
+ "displOrdinal": 2
+ },
+ "setPzComm": {
+ "name": "setPzComm",
+ "description": "Qta Richiesta",
+ "memAddr": "DB150.DBB8",
+ "tipoMem": "Int",
+ "index": 8,
+ "size": 4,
+ "displOrdinal": 3
+ },
+ "forceSetPzCount": {
+ "name": "forceSetPzCount",
+ "description": "Imposta Qta",
+ "memAddr": "DB150.DBB8",
+ "tipoMem": "Int",
+ "index": 8,
+ "size": 4,
+ "displOrdinal": 11
+ },
+ //"OPC_Set Point.Chain Spped": {
+ // "name": "OPC_Set Point.Chain Spped",
+ // "description": "Chain Spped",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Chain Spped",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Top Overfeeding": {
+ // "name": "OPC_Set Point.Top Overfeeding",
+ // "description": "Top Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Top Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Bottom Overfeeding": {
+ // "name": "OPC_Set Point.Bottom Overfeeding",
+ // "description": "Bottom Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Bottom Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Width Master": {
+ // "name": "OPC_Set Point.Width Master",
+ // "description": "Width Master",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Width Master",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Thermoset Time": {
+ // "name": "OPC_Set Point.Thermoset Time",
+ // "description": "Thermoset Time",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Thermoset Time",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Thermoset Temperature": {
+ // "name": "OPC_Set Point.Thermoset Temperature",
+ // "description": "Thermoset Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Thermoset Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Take Off Overfeeding": {
+ // "name": "OPC_Set Point.Take Off Overfeeding",
+ // "description": "Take Off Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Take Off Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Small Roller Overfeeding": {
+ // "name": "OPC_Set Point.Small Roller Overfeeding",
+ // "description": "Small Roller Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Small Roller Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Scroll Roller Overfeeding": {
+ // "name": "OPC_Set Point.Scroll Roller Overfeeding",
+ // "description": "Scroll Roller Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Scroll Roller Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Right Whell Overfeeding": {
+ // "name": "OPC_Set Point.Right Whell Overfeeding",
+ // "description": "Right Whell Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Right Whell Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Plaiter Overfeeding": {
+ // "name": "OPC_Set Point.Plaiter Overfeeding",
+ // "description": "Plaiter Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Plaiter Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Load cell Weight": {
+ // "name": "OPC_Set Point.Load cell Weight",
+ // "description": "Load cell Weight",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Load cell Weight",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Left Wheel Overfeeding": {
+ // "name": "OPC_Set Point.Left Wheel Overfeeding",
+ // "description": "Left Wheel Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Left Wheel Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Fan 105A Speed": {
+ // "name": "OPC_Set Point.Fan 105A Speed",
+ // "description": "Fan 105A Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Fan 105A Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Fan 105 Speed": {
+ // "name": "OPC_Set Point.Fan 105 Speed",
+ // "description": "Fan 105 Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Fan 105 Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Fan 103A Speed": {
+ // "name": "OPC_Set Point.Fan 103A Speed",
+ // "description": "Fan 103A Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Fan 103A Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Fan 103 Speed": {
+ // "name": "OPC_Set Point.Fan 103 Speed",
+ // "description": "Fan 103 Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Fan 103 Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Fan 101A Speed": {
+ // "name": "OPC_Set Point.Fan 101A Speed",
+ // "description": "Fan 101A Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Fan 101A Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Fan 101 Speed": {
+ // "name": "OPC_Set Point.Fan 101 Speed",
+ // "description": "Fan 101 Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Fan 101 Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Exhaust Fan 1 Speed": {
+ // "name": "OPC_Set Point.Exhaust Fan 1 Speed",
+ // "description": "Exhaust Fan 1 Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Exhaust Fan 1 Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Differentiation Spindle 5": {
+ // "name": "OPC_Set Point.Differentiation Spindle 5",
+ // "description": "Differentiation Spindle 5",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Differentiation Spindle 5",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Differentiation Spindle 4": {
+ // "name": "OPC_Set Point.Differentiation Spindle 4",
+ // "description": "Differentiation Spindle 4",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Differentiation Spindle 4",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Differentiation Spindle 3": {
+ // "name": "OPC_Set Point.Differentiation Spindle 3",
+ // "description": "Differentiation Spindle 3",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Differentiation Spindle 3",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Differentiation Spindle 2": {
+ // "name": "OPC_Set Point.Differentiation Spindle 2",
+ // "description": "Differentiation Spindle 2",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Differentiation Spindle 2",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Differentiation Spindle 1": {
+ // "name": "OPC_Set Point.Differentiation Spindle 1",
+ // "description": "Differentiation Spindle 1",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Differentiation Spindle 1",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Cooling Cell 1 Speed": {
+ // "name": "OPC_Set Point.Cooling Cell 1 Speed",
+ // "description": "Cooling Cell 1 Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Cooling Cell 1 Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Burner 6 Temperature": {
+ // "name": "OPC_Set Point.Burner 6 Temperature",
+ // "description": "Burner 6 Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Burner 6 Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Burner 5 Temperature": {
+ // "name": "OPC_Set Point.Burner 5 Temperature",
+ // "description": "Burner 5 Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Burner 5 Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Burner 4 Temperature": {
+ // "name": "OPC_Set Point.Burner 4 Temperature",
+ // "description": "Burner 4 Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Burner 4 Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Burner 3 Temperature": {
+ // "name": "OPC_Set Point.Burner 3 Temperature",
+ // "description": "Burner 3 Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Burner 3 Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Burner 2 Temperature": {
+ // "name": "OPC_Set Point.Burner 2 Temperature",
+ // "description": "Burner 2 Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Burner 2 Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Burner 1 Temperature": {
+ // "name": "OPC_Set Point.Burner 1 Temperature",
+ // "description": "Burner 1 Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Burner 1 Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Air Humidity Preset Esa 1": {
+ // "name": "OPC_Set Point.Air Humidity Preset Esa 1",
+ // "description": "Air Humidity Preset Esa 1",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Air Humidity Preset Esa 1",
+ // "index": 0,
+ // "size": 0
+ //}
+ },
+ "mMapRead": {
+ "TEMP_01": {
+ "name": "TEMP_01",
+ "description": "Temperatura 01",
+ "tipoMem": "Real",
+ "minVal": 18,
+ "maxVal": 24,
+ "displOrdinal": 4
+ },
+ "POWER_01": {
+ "name": "POWER_01",
+ "description": "Potenza impianto",
+ "tipoMem": "Int",
+ "minVal": 40,
+ "maxVal": 80,
+ "displOrdinal": 5
+ },
+ "FEED_OVER": {
+ "name": "FEED_OVER",
+ "description": "FEED override",
+ "tipoMem": "Int",
+ "minVal": 0,
+ "maxVal": 100,
+ "displOrdinal": 6
+ },
+ "RAPID_OVER": {
+ "name": "RAPID_OVER",
+ "description": "RAPID override",
+ "tipoMem": "Int",
+ "minVal": 50,
+ "maxVal": 120,
+ "displOrdinal": 7
+ },
+ "POS_X": {
+ "name": "POS_X",
+ "description": "Asse X",
+ "tipoMem": "Int",
+ "minVal": -2000,
+ "maxVal": 2000,
+ "displOrdinal": 8
+ },
+ "POS_Y": {
+ "name": "POS_Y",
+ "description": "Asse Y",
+ "tipoMem": "Int",
+ "minVal": 0,
+ "maxVal": 2000,
+ "displOrdinal": 9
+ },
+ "POS_Z": {
+ "name": "POS_Z",
+ "description": "Asse Z",
+ "tipoMem": "Int",
+ "minVal": 0,
+ "maxVal": 1500,
+ "displOrdinal": 10
+ }
+ },
+ "optKVP": {
+ "fluxLogReduce": true,
+ "fluxLogRedDeadBand": 1.5,
+ "fluxLogResendPeriod": 15,
+ "hasRecipe": true,
+ "maxPodlQty": 530,
+ "useLocalRecipe": true,
+ "path-locBase": "C:\\MesData\\",
+ "path-00-Arch": "ArchivioRicette\\FIMAT",
+ "path-01-Temp": "01-Temp\\FIMAT",
+ "path-02-Sent": "02-Inviate\\FIMAT",
+ "path-03-Recv": "03-Ricevute\\FIMAT",
+ "path-04-remReq": "Y:\\",
+ "path-05-remExe": "C:\\MesData\\Remote\\Dosed",
+ "path-06-remRec": "R:\\",
+ "path-outReport": "C:\\MesData\\Report",
+ "path-confSetup": "C:\\MesData\\Setup\\setupConsumi.json",
+ "replace-": "{{PODL}}",
+ "replace-": "Kg{{Qty}} | {{Note}}"
+ }, //,
+ //"BaseKeyTranslate": "ns=2;s=RamosaETN21.RamosaCJ2",
+ //"RecipeKeyTranslate": {
+ // "Present Value.General Fan": "Recipe.Chain Spped",
+ // "Present Value.Bottom Overfeeding": "Recipe.Bottom Overfeeding",
+ // "Present Value.Top Overfeeding": "Recipe.Top Overfeeding"
+ //}
+ "mMapWriteLink": {
+ "setArt": "setArtNum",
+ "setComm": "setCommNum"
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/DATA/CONF/SIMUL_01_WD.ini b/IOB-WIN-MBUS/DATA/CONF/SIMUL_01_WD.ini
new file mode 100644
index 00000000..56bca173
--- /dev/null
+++ b/IOB-WIN-MBUS/DATA/CONF/SIMUL_01_WD.ini
@@ -0,0 +1,51 @@
+;Configurazione IOB-WIN
+[IOB]
+CNCTYPE=PingWatchdog
+PING_MS_TIMEOUT=500
+; attenzione che alcuni eventi vengo scritti cmq nel log di SIMUL_01 invece di SIMUL_01_WD
+IOB_NAME=SIMUL_01
+
+[MACHINE]
+VENDOR=STEAMWARE
+MODEL=WATCHDOG
+
+[CNC]
+; ping vs WIN10-VPN-03 per test
+IP=10.74.83.203
+PORT=0000
+
+[SERVER]
+MPIP=http://10.74.82.218
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+CMD_ODL_STARTED=/IOB/getCurrOdlStart/
+CMD_FORCLE_SPLIT_ODL=/IOB/forceSplitOdlFull/
+CMD_IDLE_TIME=/IOB/getIdlePeriod/
+
+[MEMORY]
+
+[BLINK]
+MAX_COUNTER_BLINK = 15
+BLINK_FILT=0
+
+[OPTPAR]
+AUTO_CHANGE_ODL=false
+POWEROFF_TIMEOUT_SEC=60
+ENABLE_SEND_PZC_BLOCK=TRUE
+MIN_SEND_PZC_BLOCK=0
+MAX_SEND_PZC_BLOCK=100
+
+[BRANCH]
+NAME=master
+
+; Tags manuali
+[TAGS]
+Customer=Steamware
+HostOS=WIN
+HostName=IOB-WIN-SIMULA
+HostAddr=10.74.82.76
diff --git a/IOB-WIN-MBUS/DATA/CONF/SIMUL_01_alarm.json b/IOB-WIN-MBUS/DATA/CONF/SIMUL_01_alarm.json
new file mode 100644
index 00000000..4f6ed310
--- /dev/null
+++ b/IOB-WIN-MBUS/DATA/CONF/SIMUL_01_alarm.json
@@ -0,0 +1,859 @@
+[
+ {
+ "description": "Alarm Word 0 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 0",
+ "index": 0,
+ "size": 2,
+ "messages": [
+ "1,ALLARME INVERTER CATENA TRASP. TESSUTO",
+ "2,ALLARME INVERTER CILINDRO SOVRALIMENTAZIONE SUPERIORE",
+ "3,ALLARME INVERTER CILINDRO SOVRALIMENTAZIONE INFERIORE",
+ "4,ALLARME INVERTER RUOTA SOVRALIMENTAZIONE SINISTRA",
+ "5,ALLARME INVERTER RUOTA SOVRALIMENTAZIONE DESTRA",
+ "6,ALLARME INVERTER STACCAPEZZA",
+ "7,ALLARME INVERTER FALDAROTOLATORE",
+ "8,ALLARME INVERTER FALDERUOLE",
+ "9,ALLARME INVERTER ESAUSTORE 1 ",
+ "10,ALLARME FUNE SICUREZZA USCITA",
+ "11,ALLARME VENTILATORE 1 (BASSO)",
+ "12, ALLARME VENTILATORE 2 (BASSO)",
+ "13,ALLARME F.C. MINIMO CAMPO MASTER",
+ "14,ALLARME F.C. MASSIMO CAMPO MASTER",
+ "15,ALLARME PROTEZIONE TAPPETO INGRESSO",
+ "16,RIFERIMENTO POTENZIOMETRI CAMPI ASSENTE"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 1 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 1",
+ "index": 1,
+ "size": 2,
+ "messages": [
+ "17,ALLARME CONDIZIONATORI",
+ "18,EMERGENZA IN CORSO !!!",
+ "19,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 2 POMPA 1",
+ "20,ALLARME POMPA RECUPERO CALORE 3",
+ "21,CONTROLLO UMIDITA' : FUORI CAMPO",
+ "22,ALLARME RILEVATORE ALTEZZA TESSUTO",
+ "23,ALLARME NON RILASCIO TESSUTO SINISTRO",
+ "24,ALLARME NON RILASCIO TESSUTO DESTRO",
+ "25,ALLARME ALIMENTAZIONE 24VAC QUADRO",
+ "26,ALLARME APRICIMOSSE",
+ "27,ALLARME ASCIUGACIMOSSE A INFRAROSSI",
+ "28,ALLARME PROTEZIONE CELLA DI RAFFREDDAMENTO 1",
+ "29,CAMPO PARALLELO 2 ALLARME PROTEZIONE",
+ "30,ALLARME VENTILATORE 3 (BASSO)",
+ "31,ALLARME VENTILATORE 4 (BASSO)",
+ "32,CAMPO PARALLELO 1 ALLARME PROTEZIONE"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 2 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 2",
+ "index": 2,
+ "size": 2,
+ "messages": [
+ "33,CAMPO PARALLELO 3 ALLARME PROTEZIONE",
+ "34,RAGGIUNTO MASSIMO CARICO CELLA DI CARICO TAPPETO",
+ "35,ALLARME FALLOPEZZA SINISTRO",
+ "36,ALLARME FALLOPEZZA DESTRO",
+ "37,PARATIE ANTERIORI APERTE",
+ "38,ALLARME AZIONAMENTO CAMPO CONICO",
+ "39,BLOCCO BRUCIATORE 9",
+ "40,CAMPO MASTER ALLARME PROTEZIONE ",
+ "41,ALLARME PRESSOSTATO TENDICATENA SINISTRO",
+ "42,ALLARME PRESSOSTATO TENDICATENA DESTRO",
+ "43,ALLARME MASSIMO ALLUNGAMENTO CATENA",
+ "44,ALLARME TIPO LAVORO USCITA NON SELEZIONATO",
+ "45,ALLARME RADDRIZZATRAMA",
+ "46,ALLARME SPREMITORE 1",
+ "47,BLOCCO BRUCIATORE 10",
+ "48,BLOCCO BRUCIATORE 11"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 3 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 3",
+ "index": 3,
+ "size": 2,
+ "messages": [
+ "49,BLOCCO BRUCIATORE 12",
+ "50,BLOCCO BRUCIATORE 1",
+ "51,BLOCCO BRUCIATORE 2",
+ "52,BLOCCO BRUCIATORE 3",
+ "53,BLOCCO BRUCIATORE 4",
+ "54,BIELLE FUORI POSIZIONE",
+ "55,GRUPPO FALDATORE FUORI POSIZIONE",
+ "56,SERIE ARRESTI APERTA",
+ "57,MANCANZA LUBRIFICANTE CATENA TRASP. TESSUTO",
+ "58,ALLARME INVERTER PICCOLO ROTOLO",
+ "59,ALLARME PROTEZIONE ALLARGATORI",
+ "60,ALLARME PROTEZIONE ASPIRACIMOSSE",
+ "61,ALLARME TAGLIACIMOSSE SINISTRA",
+ "62,ALLARME TAGLIACIMOSSE DESTRA",
+ "63,ALLARME INVERTER VENTILATORI INV101",
+ "64,ALLARME INVERTER VENTILATORI INV103"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 4 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 4",
+ "index": 4,
+ "size": 2,
+ "messages": [
+ "65,ALLARME TIMEOUT VITE CAMPO MASTER",
+ "66,ALLARME TIMEOUT VITE CAMPO PARALLELO 1",
+ "67,ALLARME TIMEOUT VITE CAMPO PARALLELO 2",
+ "68,ALLARME TIMEOUT VITE CAMPO PARALLELO 3",
+ "69,ALLARME TIMEOUT VITE CAMPO PARALLELO 4",
+ "70,ALLARME TIMEOUT VITE CAMPO PARALLELO 5",
+ "71,ALLARME TIMEOUT VITE CAMPO PARALLELO 6",
+ "72,ALLARME TIMEOUT VITE CAMPO PARALLELO 7",
+ "73,ALLARME TIMEOUT VITE CAMPO PARALLELO 8",
+ "74,ALLARME TIMEOUT VITE CAMPO PARALLELO 9",
+ "75,ALLARME DEVICE_NET ADDR. 32 DA BANCHETTO DI SPALMATURA",
+ "76,ALLARME INVERTER DOGAL ",
+ "77,ALLARME FOTOCELLULA TAPPETO USCITA PIENO",
+ "78,TEMPO DI CICLO PLC SOPRA MASSIMO IMPOSTATO",
+ "79,ERRORE INDIRIZZI SONDE BRUCIATORI",
+ "80,ALLARME VENTILATORE 4 (ALTO)"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 5 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 5",
+ "index": 5,
+ "size": 2,
+ "messages": [
+ "81,ALLARME VENTILATORE 5 (ALTO)",
+ "82,ALLARME VENTILATORE 6 (ALTO)",
+ "83,ALLARME VENTILATORE 7 (ALTO)",
+ "84,SONDA BRUCIATORE 1 INTERROTTA",
+ "85,SONDA BRUCIATORE 2 INTERROTTA",
+ "86,SONDA BRUCIATORE 3 INTERROTTA",
+ "87,SONDA BRUCIATORE 4 INTERROTTA",
+ "88,ALLARME DEVICE_NET ADDR. 0",
+ "89,ALLARME DEVICE_NET ADDR. 1",
+ "90,ALLARME DEVICE_NET ADDR. 2",
+ "91,ALLARME DEVICE_NET ADDR. 3",
+ "92,ALLARME DEVICE_NET ADDR. 4",
+ "93,ALLARME DEVICE_NET ADDR. 5",
+ "94,ALLARME DEVICE_NET ADDR. 6",
+ "95,ALLARME DEVICE_NET ADDR. 7",
+ "96,ALLARME DEVICE_NET ADDR. 8"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 6 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 6",
+ "index": 6,
+ "size": 2,
+ "messages": [
+ "97,ALLARME DEVICE_NET ADDR. 9",
+ "98,ALLARME DEVICE_NET ADDR. 10",
+ "99,ALLARME DEVICE_NET ADDR. 11",
+ "100,ALLARME DEVICE_NET ADDR. 12",
+ "101,ALLARME DEVICE_NET ADDR. 13",
+ "102,ALLARME DEVICE_NET ADDR. 14",
+ "103,ALLARME DEVICE_NET ADDR. 15",
+ "104,ALLARME DEVICE_NET ADDR. 16",
+ "105,ALLARME DEVICE_NET ADDR. 17",
+ "106,ALLARME DEVICE_NET ADDR. 18",
+ "107,ALLARME DEVICE_NET ADDR. 19",
+ "108,ALLARME DEVICE_NET ADDR. 20",
+ "109,ALLARME DEVICE_NET ADDR. 21",
+ "110,ALLARME DEVICE_NET ADDR. 22",
+ "111,ALLARME DEVICE_NET ADDR. 23",
+ "112,ALLARME DEVICE_NET ADDR. 24"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 7 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 7",
+ "index": 7,
+ "size": 2,
+ "messages": [
+ "113,ALLARME DEVICE_NET ADDR. 25",
+ "114,ALLARME DEVICE_NET ADDR. 26",
+ "115,BLOCCO BRUCIATORE 5",
+ "116,BLOCCO BRUCIATORE 6",
+ "117,BLOCCO BRUCIATORE 7",
+ "118,BLOCCO BRUCIATORE 8",
+ "119,SOVRATEMPERATURA BRUCIATORE 1",
+ "120,SOVRATEMPERATURA BRUCIATORE 2",
+ "121,SOVRATEMPERATURA BRUCIATORE 3",
+ "122,SOVRATEMPERATURA BRUCIATORE 4",
+ "123,SOVRATEMPERATURA BRUCIATORE 5",
+ "124,SOVRATEMPERATURA BRUCIATORE 6",
+ "125,SOVRATEMPERATURA BRUCIATORE 7",
+ "126,SOVRATEMPERATURA BRUCIATORE 8",
+ "127,SONDA BRUCIATORE 5 INTERROTTA",
+ "128,SONDA BRUCIATORE 6 INTERROTTA"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 8 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 8",
+ "index": 8,
+ "size": 2,
+ "messages": [
+ "129,SONDA BRUCIATORE 7 INTERROTTA",
+ "130,SONDA BRUCIATORE 8 INTERROTTA",
+ "131,SONDA BRUCIATORE 9 INTERROTTA",
+ "132,SONDA BRUCIATORE 10 INTERROTTA",
+ "133,SONDA BRUCIATORE 11 INTERROTTA",
+ "134,SONDA BRUCIATORE 12 INTERROTTA",
+ "135,SOVRATEMPERATURA BRUCIATORE 9",
+ "136,SOVRATEMPERATURA BRUCIATORE 10",
+ "137,SOVRATEMPERATURA BRUCIATORE 11",
+ "138,SOVRATEMPERATURA BRUCIATORE 12",
+ "139,ALLARME INVERTER VENTILATORI INV105",
+ "140,ALLARME INVERTER VENTILATORI INV107",
+ "141,ALLARME INVERTER VENTILATORI INV109",
+ "142,ALLARME INVERTER VENTILATORI INV111",
+ "143,ALLARME VENTILATORE 5 (BASSO)",
+ "144,ALLARME VENTILATORE 6 (BASSO)"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 9 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 9",
+ "index": 9,
+ "size": 2,
+ "messages": [
+ "145,ALLARME VENTILATORE 7 (BASSO)",
+ "146,ALLARME VENTILATORE 8 (BASSO)",
+ "147,ALLARME VENTILATORE 9 (BASSO)",
+ "148,ALLARME VENTILATORE 10 (BASSO)",
+ "149,ALLARME VENTILATORE 11 (BASSO)",
+ "150,ALLARME VENTILATORE 12 (BASSO)",
+ "151,ALLARME INVERTER ESAUSTORE 2",
+ "152,CAMPO PARALLELO 4 ALLARME PROTEZIONE",
+ "153,CAMPO PARALLELO 5 ALLARME PROTEZIONE",
+ "154,CAMPO PARALLELO 6 ALLARME PROTEZIONE",
+ "155,CAMPO PARALLELO 7 ALLARME PROTEZIONE",
+ "156,CAMPO PARALLELO 8 ALLARME PROTEZIONE",
+ "157,ALLARME INSEGUIMENTO VITE MASTER AGGIUNTA",
+ "158,ALLARME INVERTER CILINDRO RAFFREDDAMENTO",
+ "159,ALLARME TEMPERATURA ESAUSTORI",
+ "160,ALLARME INVERTER RECUPERO CALORE GRUPPO 1 "
+ ]
+ },
+
+ {
+ "description": "Alarm Word 10 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 10",
+ "index": 10,
+ "size": 2,
+ "messages": [
+ "161,ALLARME FINECORSA SX TAPPETO USCITA",
+ "162,ALLARME FINECORSA DX TAPPETO USCITA",
+ "163,ALLARME INVERTER RECUPERO CALORE GRUPPO 2",
+ "164,ALLARME DEVICE_NET ADDR. 31",
+ "165,ALLARME CENTRATORE USCITA",
+ "166,COMPATTATORE NON PRONTO",
+ "167,ALLARME CONTROLLO PIROMETRI",
+ "168,ALLARME ALLARGATORE SU TAPPETO USCITA",
+ "169,ALLARME CONTROLLO FUMI",
+ "170,ALLARME FINECORSA BALLERINO ALTO",
+ "171,ALLARME FINECORSA BALLERINO BASSO",
+ "172,ALLARME PROTEZIONE ASPIRATORE VAPORIZZO INTENSIVO",
+ "173,ALLARME PROTEZIONE BRUCIATORE 1",
+ "174,ALLARME PROTEZIONE BRUCIATORE 2",
+ "175,ALLARME PROTEZIONE BRUCIATORE 3",
+ "176,ALLARME PROTEZIONE BRUCIATORE 4"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 11 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 11",
+ "index": 11,
+ "size": 2,
+ "messages": [
+ "177,ALLARME PROTEZIONE BRUCIATORE 5",
+ "178,ALLARME PROTEZIONE BRUCIATORE 6",
+ "179,ALLARME PROTEZIONE BRUCIATORE 7",
+ "180,ALLARME PROTEZIONE BRUCIATORE 8",
+ "181,ALLARME PROTEZIONE BRUCIATORE 9",
+ "182,ALLARME PROTEZIONE BRUCIATORE 10",
+ "183,ALLARME PROTEZIONE BRUCIATORE 11",
+ "184,ALLARME PROTEZIONE BRUCIATORE 12",
+ "185,TERMOFISSAGGIO O ESSICCAZIONE: TEMPERATURA FUORI CAMPO",
+ "186,TERMOFISSAGGIO O ESSICCAZIONE: VELOCITA' FUORI CAMPO",
+ "187,TERMOFISSAGGIO O ESSICCAZIONE: TEMPO FUORI CAMPO",
+ "188,SISTEMA CAMPI PARALLELI NON TARATO",
+ "189,ALLARME PROTEZIONE VENTOLE BRUCIATORI",
+ "190,CAMPO CONICO SINISTRO SU LIMITE CHIUSURA",
+ "191,CAMPO CONICO SINISTRO SU LIMITE APERTURA",
+ "192,CAMPO CONICO DESTRO SU LIMITE APERTURA"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 12 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 12",
+ "index": 12,
+ "size": 2,
+ "messages": [
+ "193,CAMPO CONICO DESTRO SU LIMITE CHIUSURA",
+ "194,FINECORSA CAMPO CONICO DESTRO SU TRAVERSA",
+ "195,FINECORSA CAMPO CONICO SINISTRO SU TRAVERSA",
+ "196,ALLARME PROTEZIONE INVERTER CAMPO CONICO SINISTRO",
+ "197,ALLARME PROTEZIONE INVERTER CAMPO CONICO DESTRO",
+ "198,ALLARME DEVICE_NET ADDR. 27",
+ "199,ALLARME VENTILATORE 8 (ALTO)",
+ "200,ALLARME VENTILATORE 9 (ALTO)",
+ "201,ALLARME VENTILATORE 10 (ALTO)",
+ "202,ALLARME VENTILATORE 11 (ALTO)",
+ "203,ALLARME VENTILATORE 12 (ALTO)",
+ "204,ALLARME VENTILATORE 1 (ALTO)",
+ "205,ALLARME VENTILATORE 2 (ALTO)",
+ "206,ALLARME VENTILATORE 3 (ALTO)",
+ "207,ALLARME PROTEZIONE CELLA DI RAFFREDDAMENTO 2",
+ "208,ALLARME FINECORSA TANDEM CONTROLLO ANSA TESSUTO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 13 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 13",
+ "index": 13,
+ "size": 2,
+ "messages": [
+ "209,ALLARME FUNE SICUREZZA / PROTEZIONE RIBALTABILE ANTERIORE",
+ "210,ALLARME INVERTER VENTILATORI INV101A",
+ "211,ALLARME INVERTER VENTILATORI INV103A",
+ "212,ALLARME INVERTER VENTILATORI INV105A",
+ "213,ALLARME INVERTER VENTILATORI INV107A",
+ "214,ALLARME INVERTER VENTILATORI INV109A",
+ "215,ALLARME INVERTER VENTILATORI INV111A",
+ "216,ALLARME DA BANCHETTO DI SPALMATURA",
+ "217,ALLARME DEVICE_NET ADDR. 28",
+ "218,STOP JOG USCITA PER PESO RAGGIUNTO SU CELLA DI CARICO",
+ "219,DOGAL NON PRONTO",
+ "220,ALLARME PROTEZIONE CELLA RAFFREDDAMENTO 91A",
+ "221,MALFUNZIONAMENTO RECUPERO CALORE GRUPPO 1",
+ "222,ALLARME PROTEZIONE SOSTEGNO TESSUTO",
+ "223,TARATURA CAMPI CONICI NON EFFETTUATA!",
+ "224,ALLARME TIMEOUT VITE CAMPO PARALLELO 10"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 14 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 14",
+ "index": 14,
+ "size": 2,
+ "messages": [
+ "225,CAMPO PARALLELO 9 ALLARME PROTEZIONE",
+ "226,CAMPO PARALLELO 10 ALLARME PROTEZIONE",
+ "227,CAMPO PARALLELO 11 ALLARME PROTEZIONE",
+ "228,CAMPO PARALLELO 12 ALLARME PROTEZIONE",
+ "229,ALLARME FLUSSOSTATO RECUPERO CALORE 1",
+ "230,ALLARME FLUSSOSTATO RECUPERO CALORE 2",
+ "231,ALLARME FLUSSOSTATO RECUPERO CALORE 3",
+ "232,ALLARME PROTEZIONE VENTILATORE ASCIUGACIMOSSE",
+ "233,ALLARME PROTEZIONE RESISTENZE ASCIUGACIMOSSE",
+ "234,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 1 POMPA 1 ",
+ "235,ALLARME INCENDIO",
+ "236,ATTENZIONE ! ALLARME PRESENTE SU BANCHETTO DI SPALMATURA",
+ "237,MALFUNZIONAMENTO RECUPERO CALORE GRUPPO 2",
+ "238,ALLARME PROTEZIONE CELLA RAFFREDDAMENTO 91B",
+ "239,ALLARME PROTEZIONE PULISCISPILLI",
+ "240,BATTERIA PLC - LIVELLO BASSO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 15 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 15",
+ "index": 15,
+ "size": 2,
+ "messages": [
+ "241,ALLARME CONTEMPORANEIT? TERMOSTATI SICUREZZA BRUCIATORI",
+ "242,BLOCCO VERSIONE SOFTWARE",
+ "243,SROTOLATORE NON PRONTO",
+ "244,ERRORE DI COMUNICAZIONE PROTOCOL MACRO",
+ "245,ALLARME TAGLIERINA URBAN",
+ "246,FINE TESSUTO IN INGRESSO",
+ "247,ALLARME PROTEZIONE SERVOVENTILAZIONI MOTORI",
+ "248,ALLARME INVERTER ARROTOLATORE TANGENZIALE",
+ "249,ALLARME SPREMITORE 2",
+ "250,ALLARME FS-91ER PLEVA",
+ "251,ALLARME LINEA EMERGENZA ARROTOLATORE",
+ "252,ALLARME FOTOCELLULE ARROTOLATORE",
+ "253,PORTA CASSETTA USCITA RAMOSA APERTA",
+ "254,ALLARME FINECORSA CILINDRO PROTEZIONE ARROTOLATORE ASSIALE",
+ "255,ALLARME PRESSOSTATI GRUPPO VALVOLE USCITA",
+ "256,ARROTOLATORE NON PRONTO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 16 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 16",
+ "index": 16,
+ "size": 2,
+ "messages": [
+ "257,FINECORSA GRUPPO FALDATORE AVANTI",
+ "258,FINECORSA GRUPPO FALDATORE INDIETRO",
+ "259,ALLARME BATTERIA ELETTRICA 1",
+ "260,SOVRATEMPERATURA BATTERIA ELETTRICA 5",
+ "261,ALLARME BATTERIA ELETTRICA 2",
+ "262,RISCALDAMENTO QUADRO SPENTO",
+ "263,SOVRATEMPERATURA BATTERIA ELETTRICA 1",
+ "264,SOVRATEMPERATURA BATTERIA ELETTRICA 2",
+ "265,ALLARME BATTERIA ELETTRICA 3",
+ "266,EMERGENZA DA SPALMATRICE",
+ "267,ALLARME BATTERIA ELETTRICA 4",
+ "268,ALLARME BATTERIA ELETTRICA 5",
+ "269,SOVRATEMPERATURA BATTERIA ELETTRICA 3",
+ "270,SOVRATEMPERATURA BATTERIA ELETTRICA 4",
+ "271,ALLARME IDROSTATO RECUPERO CALORE 1",
+ "272,ALLARME SENSORE LIVELLO RECUPERO CALORE 1 : AGGIUNGERE LIQUIDO !"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 17 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 17",
+ "index": 17,
+ "size": 2,
+ "messages": [
+ "273,ALLARME RELE' CONTROLLO FASI",
+ "274,ALLARME DEVICE NET ADDR. 40 - MODULO GRT1-DRT USCITA RAMOSA",
+ "275,ALLARME PRESSOSTATO LINEA ENTRATA MACCHINA",
+ "276,ALLARME PRESSOSTATO LINEA USCITA MACCHINA",
+ "277,CAMPO CANNOCCHIALI 1 BLOCCATO",
+ "278,CAMPO CANNOCCHIALI 2 BLOCCATO",
+ "279,ALLARME DISCONTINUITA' CAMPI PARALLELI",
+ "280,ALLARME INSEGUIMENTO CAMPI PARALLELI - VITE LENTA",
+ "281,ALLARME LIMITE VITI",
+ "282,RAGGIUNTO MASSIMO CARICO SU CELLA DI CARICO",
+ "283,ALLARME PRESSOSTATO ESAUSTORE",
+ "284,EMERGENZA MOVIMENTO TESSUTO",
+ "285,EMERGENZA DA SPREMITORE 1",
+ "286,EMERGENZA DA RADDRIZZATRAMA",
+ "287,EMERGENZA DA SROTOLATORE",
+ "288,EMERGENZA DA ARROTOLATORE"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 18 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 18",
+ "index": 18,
+ "size": 2,
+ "messages": [
+ "289,ALLARME SICUREZZA BRUCIATORE 1",
+ "290,ALLARME SICUREZZA BRUCIATORE 2",
+ "291,ALLARME SICUREZZA BRUCIATORE 3",
+ "292,ALLARME SICUREZZA BRUCIATORE 4",
+ "293,ALLARME SICUREZZA BRUCIATORE 5",
+ "294,ALLARME SICUREZZA BRUCIATORE 6",
+ "295,ALLARME SICUREZZA BRUCIATORE 7",
+ "296,ALLARME SICUREZZA BRUCIATORE 8",
+ "297,ALLARME SICUREZZA BRUCIATORE 9",
+ "298,ALLARME SICUREZZA BRUCIATORE 10",
+ "299,ALLARME SICUREZZA BRUCIATORE 11",
+ "300,ALLARME SICUREZZA BRUCIATORE 12",
+ "301,ALLARME BRUCIATORE 1 SPENTO",
+ "302,ALLARME BRUCIATORE 2 SPENTO",
+ "303,ALLARME BRUCIATORE 3 SPENTO",
+ "304,ALLARME BRUCIATORE 4 SPENTO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 19 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 19",
+ "index": 19,
+ "size": 2,
+ "messages": [
+ "305,ALLARME BRUCIATORE 5 SPENTO",
+ "306,ALLARME BRUCIATORE 6 SPENTO",
+ "307,ALLARME BRUCIATORE 7 SPENTO",
+ "308,ALLARME BRUCIATORE 8 SPENTO",
+ "309,ALLARME BRUCIATORE 9 SPENTO",
+ "310,ALLARME BRUCIATORE 10 SPENTO",
+ "311,ALLARME BRUCIATORE 11 SPENTO",
+ "312,ALLARME BRUCIATORE 12 SPENTO",
+ "313,ALLARME SENSORE LIVELLO RECUPERO CALORE 2 : AGGIUNGERE LIQUIDO !",
+ "314,ALLARME DA MIXER",
+ "315,ALLARME PRESSOSTATI LUBRIFICAZIONE",
+ "316,ALLARME ABBATTITORE FUMI",
+ "317,MACCHINA 1 NON IN LINEA",
+ "318,MACCHINA 2 NON IN LINEA",
+ "319,MACCHINA 3 NON IN LINEA",
+ "320,MACCHINA 4 NON IN LINEA"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 20 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 20",
+ "index": 20,
+ "size": 2,
+ "messages": [
+ "321,MACCHINA 5 NON IN LINEA",
+ "322,MACCHINA 6 NON IN LINEA",
+ "323,MACCHINA 7 NON IN LINEA",
+ "324,MACCHINA 8 NON IN LINEA",
+ "325,NON STOP NON PRONTO",
+ "326,EMERGENZA DA NON STOP",
+ "327,ALLARME DISCONTINUITA' CAMPO MASTER",
+ "328,ALLARME DISCONTINUITA' CAMPO PARALLELO 1",
+ "329,ALLARME DISCONTINUITA' CAMPO PARALLELO 2",
+ "330,ALLARME DISCONTINUITA' CAMPO PARALLELO 3",
+ "331,ALLARME DISCONTINUITA' CAMPO PARALLELO 4",
+ "332,ALLARME DISCONTINUITA' CAMPO PARALLELO 5",
+ "333,ALLARME DISCONTINUITA' CAMPO PARALLELO 6",
+ "334,ALLARME DISCONTINUITA' CAMPO PARALLELO 7",
+ "335,ALLARME DISCONTINUITA' CAMPO PARALLELO 8",
+ "336,ALLARME DISCONTINUITA' CAMPO PARALLELO 9"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 21 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 21",
+ "index": 21,
+ "size": 2,
+ "messages": [
+ "337,ALLARME DISCONTINUITA' CAMPO PARALLELO 10",
+ "338,PROTEZIONI INGRESSO APERTE",
+ "339,PROTEZIONI USCITA APERTE",
+ "340,ALLARME PROTEZIONE ESTRATTORE FUMI 1",
+ "341,ALLARME PROTEZIONE ESTRATTORE FUMI 2",
+ "342,MANCANZA PRESSOSTATO ESTRATTORE FUMI 1",
+ "343,MANCANZA PRESSOSTATO ESTRATTORE FUMI 2",
+ "344,EMERGENZA DA MIXER",
+ "345,EMERGENZA DA SPREMITORE 2",
+ "346,ALLARME PROTEZIONE VENTILATORE RECUPERO CALORE 1",
+ "347,ALLARME PROTEZIONE VENTILATORE RECUPERO CALORE 2",
+ "348,ALLARME MODULO VELOCITA? ZERO CATENA TRASP. TESSUTO",
+ "349,ALLARME RILEVAMENTO TESSUTO SINISTRO USCITA",
+ "350,ALLARME RILEVAMENTO TESSUTO DESTRO USCITA",
+ "351,ALLARME FINECORSA SOLLEVAMENTO CAMPI CONICI",
+ "352,ALLARME IDROSTATO RECUPERO CALORE 2"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 22 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 22",
+ "index": 22,
+ "size": 2,
+ "messages": [
+ "353,ALLARME FUNE DI PROTEZIONE IN USCITA",
+ "354,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 1",
+ "355,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 2",
+ "356,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 3",
+ "357,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 4",
+ "358,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 5",
+ "359,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 6",
+ "360,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 7",
+ "361,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 8",
+ "362,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 9",
+ "363,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 10",
+ "364,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 11",
+ "365,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 12",
+ "366,OLIO CATENA - PRESSIONE MINIMA",
+ "367,POMPA OLIO CATENA - ALLARME PROTEZIONE",
+ "368,JBOX INGRESSO - BALLERINO BASSO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 23 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 23",
+ "index": 23,
+ "size": 2,
+ "messages": [
+ "369,JBOX INGRESSO - FINE TESSUTO",
+ "370,JBOX INGRESSO - PIENO",
+ "371,JBOX INGRESSO - BALLERINO ALTO",
+ "372,JBOX INGRESSO - VUOTO",
+ "373,JBOX USCITA - BALLERINO BASSO",
+ "374,JBOX USCITA - FINE TESSUTO",
+ "375,JBOX USCITA - PIENO",
+ "376,JBOX USCITA - BALLERINO ALTO",
+ "377,JBOX USCITA - VUOTO",
+ "378,JBOX USCITA - ALLARME PRESSOSTATO",
+ "379,JBOX ENTRATA - ALLARME PRESSOSTATO",
+ "380,ALLARME PROTEZIONE CARRELLO FALDATORE",
+ "381,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 1",
+ "382,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 2",
+ "383,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 3",
+ "384,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 4"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 24 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 24",
+ "index": 24,
+ "size": 2,
+ "messages": [
+ "385,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 5",
+ "386,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 6",
+ "387,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 7",
+ "388,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 8",
+ "389,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 9",
+ "390,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 10",
+ "391,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 11",
+ "392,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 12",
+ "393,ESTRATTORE FUMI RISC. INDIRETTO 1 - ALLARME PROTEZIONE",
+ "394,ESTRATTORE FUMI RISC. INDIRETTO 2 - ALLARME PROTEZIONE",
+ "395,ESTRATTORE FUMI RISC. INDIRETTO 3 - ALLARME PROTEZIONE",
+ "396,ESTRATTORE FUMI RISC. INDIRETTO 4 - ALLARME PROTEZIONE",
+ "397,ESTRATTORE FUMI RISC. INDIRETTO 5 - ALLARME PROTEZIONE",
+ "398,ESTRATTORE FUMI RISC. INDIRETTO 6 - ALLARME PROTEZIONE",
+ "399,TAGLIERINA SINISTRA - FUORI POSIZIONE",
+ "400,TAGLIERINA DESTRA - FUORI POSIZIONE"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 25 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 25",
+ "index": 25,
+ "size": 2,
+ "messages": [
+ "401,ALLARME PROTEZIONE CILINDRO CONTRASTO TAGLIERINE",
+ "402,JBOX INGRESSO - TESSUTO INCROCIATO",
+ "403,JBOX USCITA - TESSUTO INCROCIATO",
+ "404,ALLARME DEVICE_NET STAZIONE ADDR.38 - JBOX INGRESSO",
+ "405,ALLARME DEVICE_NET STAZIONE ADDR.39 - JBOX USCITA",
+ "406,JBOX INGRESSO - ALLARME INVERTER",
+ "407,JBOX USCITA - ALLARME INVERTER",
+ "408,ALLARGA/CENTRATORE A/B SU IMBARRAGGIO - ALLARME PROTEZIONE",
+ "409,ALLARME TIMEOUT VITE CAMPO PARALLELO 11",
+ "410,ALLARME TIMEOUT VITE CAMPO PARALLELO 12",
+ "411,FRENO JBOX INGRESSO - ALLARME PROTEZIONE",
+ "412,FRENO JBOX USCITA - ALLARME PROTEZIONE",
+ "413,ALLARME PROTEZIONE FRENO CAMPO CONICO SINISTRO",
+ "414,ALLARME PROTEZIONE FRENO CAMPO CONICO DESTRO",
+ "415,VERIFICA PRESSOSTATO 1 FALLITA",
+ "416,VERIFICA PRESSOSTATO 2 FALLITA"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 26 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 26",
+ "index": 26,
+ "size": 2,
+ "messages": [
+ "417,ALLARME TERMOSTATO INTERNO QUADRO",
+ "418,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 1 POMPA 2",
+ "419,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 2 POMPA 2",
+ "420,PROTEZIONE RIBALTABILE INGRESSO",
+ "421,FUNE EMERGENZA INGRESSO",
+ "422,PARATIA SCORREVOLE INGRESSO SINISTRA",
+ "423,PARATIA SCORREVOLE INGRESSO DESTRA",
+ "424,CANCELLO SINISTRO ENTRATA ANTERIORE",
+ "425,CANCELLO SINISTRO ENTRATA POSTERIORE",
+ "426,CANCELLO DESTRO ENTRATA ANTERIORE",
+ "427,CANCELLO DESTRO ENTRATA POSTERIORE",
+ "428,CANCELLO SINISTRO USCITA",
+ "429,CANCELLO DESTRO USCITA",
+ "430,TENSIONATORE FUNE EMERGENZA SINISTRA ZONA FORNO",
+ "431,TENSIONATORE FUNE EMERGENZA DESTRA ZONA FORNO",
+ "432,FUNE EMERGENZA SINISTRA ZONA FORNO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 27 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 27",
+ "index": 27,
+ "size": 2,
+ "messages": [
+ "433,FUNE EMERGENZA DESTRA ZONA FORNO",
+ "434,ALLARME FEEDBACK SCARICO ARIA ENTRATA MACCHINA (1)",
+ "435,ALLARME FEEDBACK SCARICO ARIA ENTRATA MACCHINA (2)",
+ "436,ALLARME FEEDBACK SCARICO ARIA USCITA MACCHINA (1)",
+ "437,ALLARME FEEDBACK SCARICO ARIA USCITA MACCHINA (2)",
+ "438,ALLARME FEEDBACK EMERGENZA GENERALE DA SCARICO ARIA",
+ "439,BYPASS SPORTELLI ARMADIO ATTIVO",
+ "440,TIMEOUT ENCODER CAMPO CONICO SINISTRO",
+ "441,TIMEOUT ENCODER CAMPO CONICO DESTRO",
+ "442,ALLARME BALLERINO ALTO SPREMITORE 1",
+ "443,ALLARME BALLERINO ALTO SPREMITORE 2",
+ "444,",
+ "445,",
+ "446,",
+ "447,",
+ "448,"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 28 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 28",
+ "index": 28,
+ "size": 2,
+ "messages": [
+ "449,",
+ "450,",
+ "451,",
+ "452,",
+ "453,",
+ "454,",
+ "455,",
+ "456,",
+ "457,",
+ "458,",
+ "459,",
+ "460,ALLARME PROTEZIONE BARRE ANTISTATICHE",
+ "461,ALLARME PROTEZIONE VENTILAZIONE INTERNO QUADRO",
+ "462,BORDO SENSIBILE ",
+ "463,FALDAROTOLATORE_SICUREZZA SX/DX ",
+ "464,FALDAROTOLATORE_EMERGENZA TESSUTO "
+ ]
+ },
+
+ {
+ "description": "Alarm Word 29 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 29",
+ "index": 29,
+ "size": 2,
+ "messages": [
+ "465,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.1",
+ "466,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.2",
+ "467,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.3",
+ "468,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.4",
+ "469,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.5",
+ "470,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.6",
+ "471,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.7",
+ "472,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.8",
+ "473,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.9",
+ "474,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.10",
+ "475,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.11",
+ "476,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.12",
+ "477,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 1/2",
+ "478,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 3/4",
+ "479,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 5/6",
+ "480,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 7/8"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 30 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 30",
+ "index": 30,
+ "size": 2,
+ "messages": [
+ "481,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 9/10",
+ "482,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 1",
+ "483,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 2",
+ "484,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 3",
+ "485,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 4",
+ "486,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 5",
+ "487,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 6",
+ "488,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 7",
+ "489,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 8",
+ "490,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 9",
+ "491,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 10",
+ "492,TRASDUTTORE PRESSIONE BR 1 INTERROTTO",
+ "493,TRASDUTTORE PRESSIONE BR 2 INTERROTTO",
+ "494,TRASDUTTORE PRESSIONE BR 3 INTERROTTO",
+ "495,TRASDUTTORE PRESSIONE BR 4 INTERROTTO",
+ "496,TRASDUTTORE PRESSIONE BR 5 INTERROTTO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 31 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 31",
+ "index": 31,
+ "size": 2,
+ "messages": [
+ "497,TRASDUTTORE PRESSIONE BR 6 INTERROTTO",
+ "498,TRASDUTTORE PRESSIONE BR 7 INTERROTTO",
+ "499,TRASDUTTORE PRESSIONE BR 8 INTERROTTO",
+ "500,TRASDUTTORE PRESSIONE BR 9 INTERROTTO",
+ "501,TRASDUTTORE PRESSIONE BR 10 INTERROTTO",
+ "502,TRASDUTTORE PRESSIONE BR 11 INTERROTTO",
+ "503,TRASDUTTORE PRESSIONE BR 12 INTERROTTO",
+ "504,ERRORE TRASDUTTORE DI PRESSIONE RC1",
+ "505,ERRORE TRASDUTTORE DI PRESSIONE RC2",
+ "506,ALLARME INVERTER RIPRISTINO PRESSIONE GRUPPO 1 RC",
+ "507,ALLARME INVERTER RIPRISTINO PRESSIONE GRUPPO 2 RC",
+ "508,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 11",
+ "509,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 12",
+ "510,ALLARME PRESSOSTATO TAGLIERINE",
+ "511,BALLERINO ALTO - SROTOLATORE - ALLARME",
+ "512,EMERGENZA DA LINEA ENTRATA RAMOSA"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 32 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 32",
+ "index": 32,
+ "size": 2,
+ "messages": [
+ "513,LINEA ENTRATA RAMOSA NON PRONTA",
+ "514,EMERGENZA DA LINEA USCITA RAMOSA",
+ "515,LINEA USCITA RAMOSA NON PRONTA",
+ "516,TAGLIERINA CENTRALE FUORI POSIZIONE",
+ "517,TIRACIMOSSE NON PRONTO",
+ "518,JBOX INGRESSO IN EMERGENZA",
+ "519,JBOX INGRESSO NON PRONTO",
+ "520,JBOX USCITA IN EMERGENZA",
+ "521,JBOX USCITA NON PRONTO",
+ "522,ALLARME D-NET 41 RISCALDAMENTO INDIRETTO",
+ "523,SPAZZOLATRICE IN EMERGENZA",
+ "524,SPAZZOLATRICE NON PRONTA",
+ "525,ALLARME FUNE DI SICUREZZA USCITA STACCAPEZZA",
+ "526,ALLARME FUNE DI SICUREZZA USCITA FALDAROTOLATORE",
+ "527,ALLARME FUNE DI SICUREZZA CAMPO CONICO SINISTRO",
+ "528,ALLARME FUNE DI SICUREZZA CAMPO CONICO DESTRO"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/DATA/DAT/PersistData.dat b/IOB-WIN-MBUS/DATA/DAT/PersistData.dat
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-MBUS/DATA/DAT/PersistData.dat
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/DATA/DAT/SimData.dat b/IOB-WIN-MBUS/DATA/DAT/SimData.dat
new file mode 100644
index 00000000..c59e4823
--- /dev/null
+++ b/IOB-WIN-MBUS/DATA/DAT/SimData.dat
@@ -0,0 +1,959 @@
+;------------------------------------------------------------------------------------
+; filevalori simulati x provare sistema dati e filtraggio... commenti iniziano per ';', valori formato data#valore#counter
+; NOTE FILE:
+; - bit come macchine std IOB
+; B0 = POWERON
+; B1 = RUN
+; B2 = CONTAPEZZO
+; B3 = ALLARME
+; B4 = MANUALE
+; B5 = NA
+; B6 = NA
+; B7 = NA
+; - segnali alternanti su 00011100
+;------------------------------------------------------------------------------------
+;
+;----------------------------
+; inizio da spenta
+0
+0
+; indico accesa
+1
+1
+1
+; allarme (BLINK)
+9
+9
+9
+9
+9
+1
+1
+1
+1
+1
+1
+9
+9
+9
+9
+9
+1
+1
+1
+1
+1
+19
+9
+9
+9
+9
+1
+1
+1
+1
+1
+1
+; allarme manuale (2 blink, periodo diverso)
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+; indico manuale
+17
+17
+17
+17
+17
+17
+17
+17
+17
+17
+1
+1
+1
+1
+1
+1
+1
+1
+17
+17
+17
+17
+17
+17
+17
+17
+17
+17
+1
+1
+1
+1
+1
+1
+1
+1
+17
+17
+17
+17
+17
+17
+17
+17
+17
+17
+1
+1
+1
+1
+1
+1
+1
+1
+; RUN!
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+; contapezzo
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+; RUN
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+; contapezzo
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+; RUN
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+; contapezzo
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+; RUN
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+; allarme (BLINK)
+9
+9
+9
+9
+9
+1
+1
+1
+1
+1
+1
+9
+9
+9
+9
+9
+1
+1
+1
+1
+1
+19
+9
+9
+9
+9
+1
+1
+1
+1
+1
+1
+; allarme manuale (2 blink, periodo diverso)
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+; indico manuale
+17
+17
+17
+17
+17
+17
+17
+17
+17
+17
+1
+1
+1
+1
+1
+1
+1
+1
+17
+17
+17
+17
+17
+17
+17
+17
+17
+17
+1
+1
+1
+1
+1
+1
+1
+1
+17
+17
+17
+17
+17
+17
+17
+17
+17
+17
+1
+1
+1
+1
+1
+1
+1
+1
+; RUN!
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+; contapezzo
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+; RUN
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+; contapezzo
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+; RUN
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/DATA/HIST/.placeholder b/IOB-WIN-MBUS/DATA/HIST/.placeholder
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-MBUS/DATA/HIST/.placeholder
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/IOB-WIN-MBUS.csproj b/IOB-WIN-MBUS/IOB-WIN-MBUS.csproj
new file mode 100644
index 00000000..40368b2c
--- /dev/null
+++ b/IOB-WIN-MBUS/IOB-WIN-MBUS.csproj
@@ -0,0 +1,257 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {EEBE38BD-29EE-45DE-9AF4-8FA34B58D8BA}
+ WinExe
+ IOB_WIN_MTC
+ IOB-WIN-MTC
+ v4.6.2
+ 512
+ true
+ true
+
+
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+ true
+ bin\Remote_DEBUG\
+ DEBUG;TRACE
+ full
+ x86
+ 7.3
+ prompt
+
+
+
+ ..\packages\MapoSDK.6.14.2411.518\lib\MapoSDK.dll
+
+
+ ..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.Logging.Abstractions.dll
+
+
+ ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll
+
+
+ ..\packages\NLog.5.3.4\lib\net46\NLog.dll
+
+
+ ..\packages\Pipelines.Sockets.Unofficial.2.2.8\lib\net461\Pipelines.Sockets.Unofficial.dll
+
+
+ ..\packages\StackExchange.Redis.2.8.24\lib\net461\StackExchange.Redis.dll
+
+
+
+ ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll
+
+
+
+
+ ..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll
+
+
+ ..\packages\System.IO.Pipelines.5.0.1\lib\net461\System.IO.Pipelines.dll
+
+
+ ..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll
+
+
+
+ ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll
+
+
+ ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll
+
+
+ ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll
+
+
+ ..\packages\System.Threading.Channels.5.0.0\lib\net461\System.Threading.Channels.dll
+
+
+ ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VersGen.cs
+
+
+ Form
+
+
+
+ Form
+
+
+
+
+ Always
+
+
+ Always
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+ Always
+
+
+ App.config
+ True
+ PreserveNewest
+
+
+ App.config
+ True
+ PreserveNewest
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+ Always
+
+
+
+ Always
+
+
+
+
+ Designer
+ true
+ PreserveNewest
+
+
+
+
+ Always
+
+
+
+ Always
+
+
+
+ Always
+
+
+ Always
+
+
+
+
+
+ {90512e12-29fc-460d-94cc-648c2a072dbd}
+ IOB-UT-NEXT
+
+
+ {9ba331bb-9bf1-40e0-ac03-74b43d73a097}
+ IOB-WIN-FORM
+
+
+
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/Iob/GenericNext.cs b/IOB-WIN-MBUS/Iob/GenericNext.cs
new file mode 100644
index 00000000..89815943
--- /dev/null
+++ b/IOB-WIN-MBUS/Iob/GenericNext.cs
@@ -0,0 +1,13 @@
+using IOB_UT_NEXT;
+
+namespace IOB_WIN_PING.Iob
+{
+ public class GenericNext : IOB_WIN_FORM.Iob.Generic
+ {
+
+ public GenericNext(AdapterFormNext caller, IobConfiguration IOBConf): base((IOB_WIN_FORM.AdapterForm)caller, IOBConf)
+ {
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/MainFormNext.cs b/IOB-WIN-MBUS/MainFormNext.cs
new file mode 100644
index 00000000..422d8335
--- /dev/null
+++ b/IOB-WIN-MBUS/MainFormNext.cs
@@ -0,0 +1,40 @@
+using IOB_UT_NEXT;
+using IOB_WIN_PING.Iob;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IOB_WIN_PING
+{
+ public class MainFormNext : IOB_WIN_FORM.MainForm
+ {
+
+ ///
+ /// Avvio MainForm
+ ///
+ ///
+ public MainFormNext(string[] args) : base(args)
+ {
+ }
+
+ ///
+ /// Apre la finestra child con conf
+ ///
+ protected override void openChild(string IOB)
+ {
+ if (IOB == null)
+ {
+ throw new ArgumentNullException(nameof(IOB));
+ }
+
+ AdapterFormNext child = new AdapterFormNext(IOB);
+ child.MdiParent = this;
+ child.Text = IOB;
+ child.Show();
+ child.Shown += Child_Shown;
+ child.FormClosed += Child_FormClosed;
+ }
+ }
+}
diff --git a/IOB-WIN-MBUS/NLog.config b/IOB-WIN-MBUS/NLog.config
new file mode 100644
index 00000000..cd1bcc98
--- /dev/null
+++ b/IOB-WIN-MBUS/NLog.config
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/IOB-WIN-MBUS/Program.cs b/IOB-WIN-MBUS/Program.cs
new file mode 100644
index 00000000..5671848f
--- /dev/null
+++ b/IOB-WIN-MBUS/Program.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Windows.Forms;
+
+namespace IOB_WIN_PING
+{
+ internal static class Program
+ {
+ #region Private Methods
+
+ ///
+ /// Punto di ingresso principale dell'applicazione.
+ /// Parametri di avvio
+ ///
+ [STAThread]
+ private static void Main(string[] args)
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new MainFormNext(args));
+ }
+
+ #endregion Private Methods
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/Properties/AssemblyInfo.cs b/IOB-WIN-MBUS/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..8f5a1a70
--- /dev/null
+++ b/IOB-WIN-MBUS/Properties/AssemblyInfo.cs
@@ -0,0 +1,22 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("IOB-WIN-MTC")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyProduct("IOB-WIN-MTC")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("eebe38bd-29ee-45de-9af4-8fa34b58d8ba")]
+
diff --git a/IOB-WIN-MBUS/Properties/Resources.Designer.cs b/IOB-WIN-MBUS/Properties/Resources.Designer.cs
new file mode 100644
index 00000000..0f013ea4
--- /dev/null
+++ b/IOB-WIN-MBUS/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace IOB_WIN_MTC.Properties
+{
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("IOB_WIN_MTC.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/IOB-WIN-MBUS/Properties/Resources.resx b/IOB-WIN-MBUS/Properties/Resources.resx
new file mode 100644
index 00000000..af7dbebb
--- /dev/null
+++ b/IOB-WIN-MBUS/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/Properties/Settings.Designer.cs b/IOB-WIN-MBUS/Properties/Settings.Designer.cs
new file mode 100644
index 00000000..894a7528
--- /dev/null
+++ b/IOB-WIN-MBUS/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace IOB_WIN_MTC.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/IOB-WIN-MBUS/Properties/Settings.settings b/IOB-WIN-MBUS/Properties/Settings.settings
new file mode 100644
index 00000000..39645652
--- /dev/null
+++ b/IOB-WIN-MBUS/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/IOB-WIN-MBUS/Readme/ToDo.txt b/IOB-WIN-MBUS/Readme/ToDo.txt
new file mode 100644
index 00000000..161ff489
--- /dev/null
+++ b/IOB-WIN-MBUS/Readme/ToDo.txt
@@ -0,0 +1,61 @@
+-------------------------------------
+- 2017.10.19
+-------------------------------------
+OK - da testare ora invio URL a MoonPro
+OK - ALIVE
+OK - ENABLED
+OK - INPUT
+OK - FARE lettura VERA da FANUC almeno della bitmap
+OK - fare gestione come rPI-IOB, ovvero
+OK - gestione QUEUE eventi
+OK - salvataggio su file dello storico eventi rilevati
+OK - gestione dei segnali ballerini (BITMASK!)
+OK - gestione contapezzi CUSTOM
+ - fare gestione configurabile lettura FANUC
+OK - gestione dati G43
+OK - togliere dati F (E0 | 90)
+ - fare integrazione ALTRI varori FANUC, tra cui
+ - allarmi
+OK - load/speed
+OK - overrides (G12, G30)
+
+OK - nuovo metodo chiamata x MP/IO (che dovrà avere nuovo comando x accettare queste chiamate e salvare su tabella SENZA processing, come eventi o come extra... evento NOTA?)
+ - verificare segnali: (vedi doc gsheet)
+ - F001.0: ALARM_PRESENT
+ - F001.7: CN_READY / POWER_ON
+ - STL000.5: AUTO (vers 1)
+ - STL000.7: AUTO (vers 2)
+- Cambiare ordine valutazione eventi frequenza VLF-->VHF
+- Azzerare I contatori quanto si arriva al più lento (quando si azzera lui ripartono comunque tutti...) -> in questo modo scatta un contatore QUANDO GENERAL_COUNTER MOD periodo_Ccntatore == 0
+- rendere parametrica l'assegnazione delle funzioni al diverso ambito frequenza tra i 5 (VHF, HF, NF, LF, VLF)
+- procedura x gestione dati REALTIME (da NON salvare su db ma al limite su REDIS, simil EQN con 2 tab x eliminare dati scaduti)
+
+OK FINIRE SISTEMAZIONE JETCO:
+OK - install servers
+OK - install DB
+OK - conf acquisitore togliendo parti abbozzate x contapezzi/fineciclo
+OK - part program name MAIN con nuova funzione
+
+CREARE NUOVO SW (o configurazione? o ramo alternativo a develop?) x mapping INIZIALE della macchina... ad esempio
+ - si collega a ns server
+ - chiede cosa deve fare (es mappa memorie D da 0 a 9999)
+ - effettua testing e poi fa upload risultati
+ - il ns sw fa i check/controlli modifica
+in questo modo ad esmepio possiamo cercare i contapezzi, i segnali ceh cambiano con il fineciclo nelle aree Y, i contatori STANDARD nelle memorie D, ...
+
+
+GESTIONE LIVE DATA
+L'idea è ceh quando una macchina è "sotto osservazione" ovvero live viene aperta pagina questa debba inviare PIU' DATI di tipo realtime e mostrarli nel browser. Per farlo ci saranno questi elementi
+- si apre una pagina di dettaglio macchina (da tablet? da SITE principale?)
+- questo causa la modifica di una chiave su DB (e/o redis) di stato macchina, del tipo "OnAir=true", e potrebbe essere una chiave a tempo (30 sec poi scade?) e mentre la pagina è aperta e si aggiorna (ogni 1-2 sec oppure Signal-R) questo valore viene confermato (e prorigato)
+- ogni IOB-WIN fa una chiamata "extra" all'URL dedicato al checl "OnAir", e se trova che è abilitato passa in modalità letture frequenti (1/2 al sec?) dei parametri LIVE (es: feed, speed, posizioni assi, load istantanei)
+- se passa inq eusta modalità live invia DI CONTINUO il dato al server IO
+- il server IO salva SU REDIS questi valori sia come "lastVal" che come serie storica
+- le pagine che mostrano i dati si continuano ad aggiornare (da redis) con grafici (chartJs come PIC) e/o valori istantanei
+- le serie storiche vengono ripulite periodicamente (ogni ora? valori + vecchi di 24h ad esempio?)
+- struttura dati REDIS da creare SIMILE a struttura info URL...
+- struttura dati LIVE: ../LIVE/COD_MACC/CURR_VAL (contiene TUTTI i dati LIVE, ultimi ricevuti...)
+- struttura dati TimeSeries: ../LIVE/COD_MACC/DATA_NAME (contiene TUTTI i dati come timeseries, es SPEEDRATE, FEEDRATE, POS_X1, POS_X2, ...)
+- operazione SAVE aggiorna SURR e accoda NUOVO valore...
+- LOAD (rilettura9 POTREBBE fare pulizia se + vecchi di 24h...)
+- la trasmissione verso IO deve avvenire con "multisend, nel
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/Resources/ChangeLog.html b/IOB-WIN-MBUS/Resources/ChangeLog.html
new file mode 100644
index 00000000..7ab91d78
--- /dev/null
+++ b/IOB-WIN-MBUS/Resources/ChangeLog.html
@@ -0,0 +1,120 @@
+
+ MAPO-IOB-WIN
+ v: {{CURRENT-REL}}
+
+ Acquisitore MAPO-IOB per sistemi Windows
+
+ Note di rilascio:
+
+ -
+ v.3.1.* → v.3.2.*
+
+ - Nuovi simulatori con gestione emergenza
+ - Fix gestione invio dati Redis
+ - Implementazione IOB Eurom63
+
+
+ -
+ v.2.6.* → v.3.0.*
+
+ - revisione sistema metodi invio in blocco
+ - Gestione invio contapezzi in step > 1
+ - Gestione eventi in blocco (indipendente e prioritario su EvBlock)
+ - Gestione limite eventi memorizzabili
+ - Integrazione REDIS
+ - Integrazione IOB-MAN
+
+
+ -
+ v.2.5.* → v.2.6.*
+
+ - revisione sistema timeout Ping
+ - Gestione AutoODL in prod generale (non solo SIM)
+
+
+ -
+ v.2.4.* → v.2.5.*
+
+ - Aggiunto adapter MTConnect
+ - Ottimizzazione gestione SIEMENS
+
+
+ -
+ v.2.3.* → v.2.4.*
+
+ - inserita gestione conf json x Flog acquisiti
+ - gestione invio Json blocchi dati FLog
+ - ottimizzazioni varie adapter Siemens
+ - ottimizzazione processo svuotamento code
+ - riduzione interferenza e interblocchi in fase di PLC assente
+
+
+ -
+ Ultime modifiche:
+
+
+ -
+ v.1.18.* → v.2.3.*
+
+ - inserimento WPS x acontrolli WebPage human readable
+ - fix gestione task2exe
+ - aggiunte varie versioni PLC siemens
+ - aggiunto PLC WPS x generiche web pages
+ - revisitazione LOG ODL e contapezzi
+ - modifica pagina presentazione dati (master) x resize
+ - Attivazione IOB SIMULATOR per test di carico (sostituito type DEMO)
+ - Aggiunto simulatore macchine MULTI pallet
+ - Ottimizzazione simulatore
+ - Ottimizzazioni PLC Siemens x riavvio post disconnessione (es spegnimento notturno)
+ - Ottimizzazione processo chiusura in update applicazione
+ - Aggiunta simulazione spegnimento con WU/CD
+
+
+ -
+ v.1.11.* → v.1.18.*
+
+ - Inserimento controller SIEMENS con S7+ library
+ - Inserimento nuove letture FANUC x programmi
+ - Inserimento nuove letture FANUC x SysEx (informazioni sistema)
+ - Inserimento invio FluxLog x parametri estesi (es SysEx, ProgName,...)
+ - FIX visualizzazione dati FluxLog e URL inviati
+ - FIX MAIN program da FANUC (non il current)
+ - Inserita modalita' DUMP memoria (iniziale full + periodica)
+ - Inserimento gestione contapezzi standard/checkBit in IOB.cfg
+ - Inserimento contapezzi da area memoria X
+ - NUOVA Gestione rami cliente e URL di update
+ - Gestione modi CNC
+ - Lettura dari dinamycs FANUC (feed, speed)
+ - aggiunta gestione aree G0..G30 (overrides?)
+ - fix errore disconnessione FANUC (allo spegnimento dl CNC) e memoria valori persistente a 1
+ - fix globali x gestione log IN / FLOG + ottimizzaizone check FANUC (PING)
+ - ottimizzazione fasi di restart in caso di assenza del server (evita reinvii inutili e migliora tempo ripartenza invio)
+ - review procedure controllo connessione x FANUC (es Tornos II)
+ - non richeide più privilegi admin x fare update
+ - gestione segnali inverted
+ - completata gestione configurabilità parametrica segnali (Tornos, CMZ, Biglia)
+ - revisitazione LOG x distinguere processi IOB
+
+
+ -
+ v.0.1.* → v.0.10.*
+
+ - Testato in produzione x update ad avvio e su richiesta
+ - Testato in produzione x lettura dati da Fanuc
+ - Inizio deploy con copia file su area IIS
+ - Prima versione con autoupdate
+ - Test PrettyBin x spostamento dll
+ - Base acquisitore FANUC
+ - Sistema base sw controllo in tray
+
+
+
+
+
+

+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/Resources/Circuit.ico b/IOB-WIN-MBUS/Resources/Circuit.ico
new file mode 100644
index 00000000..a05b27a6
Binary files /dev/null and b/IOB-WIN-MBUS/Resources/Circuit.ico differ
diff --git a/IOB-WIN-MBUS/Resources/Net.ico b/IOB-WIN-MBUS/Resources/Net.ico
new file mode 100644
index 00000000..a33a9eca
Binary files /dev/null and b/IOB-WIN-MBUS/Resources/Net.ico differ
diff --git a/IOB-WIN-MBUS/Resources/STEAM-IOB-WIN.xml b/IOB-WIN-MBUS/Resources/STEAM-IOB-WIN.xml
new file mode 100644
index 00000000..ba4e78f6
Binary files /dev/null and b/IOB-WIN-MBUS/Resources/STEAM-IOB-WIN.xml differ
diff --git a/IOB-WIN-MBUS/Resources/Start-IOB-WIN.bat b/IOB-WIN-MBUS/Resources/Start-IOB-WIN.bat
new file mode 100644
index 00000000..3f8ecaa1
--- /dev/null
+++ b/IOB-WIN-MBUS/Resources/Start-IOB-WIN.bat
@@ -0,0 +1,15 @@
+@ECHO OFF
+
+SET EXEName=IOB-WIN.exe
+SET EXEFullPath=C:\Steamware\IOB-WIN\IOB-WIN.exe
+
+TASKLIST | FINDSTR /I "%EXEName%"
+IF ERRORLEVEL 1 GOTO :StartIobWin
+
+REM "Programma ancora in run, nessuna azione necessaria"
+timeout /T 2
+GOTO :EOF
+
+:StartIobWin
+START "" "%EXEFullPath%"
+GOTO :EOF
diff --git a/IOB-WIN-MBUS/Resources/SteamWare.ico b/IOB-WIN-MBUS/Resources/SteamWare.ico
new file mode 100644
index 00000000..70ccadaf
Binary files /dev/null and b/IOB-WIN-MBUS/Resources/SteamWare.ico differ
diff --git a/IOB-WIN-MBUS/Resources/logoSteamware.png b/IOB-WIN-MBUS/Resources/logoSteamware.png
new file mode 100644
index 00000000..0958b50a
Binary files /dev/null and b/IOB-WIN-MBUS/Resources/logoSteamware.png differ
diff --git a/IOB-WIN-MBUS/Resources/manifest.xml b/IOB-WIN-MBUS/Resources/manifest.xml
new file mode 100644
index 00000000..f66a7e99
--- /dev/null
+++ b/IOB-WIN-MBUS/Resources/manifest.xml
@@ -0,0 +1,7 @@
+
+-
+ 1.0.0.0
+ http://seriate.steamware.net:8083/SWS/MAPO/IOB-WIN/{{BRANCHNAME}}/MAPO-IOB-WIN.zip
+ http://seriate.steamware.net:8083/SWS/MAPO/IOB-WIN/{{BRANCHNAME}}/ChangeLog.html
+ false
+
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/logs/.placeholder.txt b/IOB-WIN-MBUS/logs/.placeholder.txt
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-MBUS/logs/.placeholder.txt
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/packages.config b/IOB-WIN-MBUS/packages.config
new file mode 100644
index 00000000..bc12d868
--- /dev/null
+++ b/IOB-WIN-MBUS/packages.config
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/postBuildTgt.bat b/IOB-WIN-MBUS/postBuildTgt.bat
new file mode 100644
index 00000000..d56896d2
--- /dev/null
+++ b/IOB-WIN-MBUS/postBuildTgt.bat
@@ -0,0 +1,97 @@
+@echo off
+echo Inizio processing After Build: configurazione %1 , directory %2
+
+RD /S /Q %2"\lib\ar"
+RD /S /Q %2"\lib\cs"
+RD /S /Q %2"\lib\da"
+RD /S /Q %2"\lib\de"
+RD /S /Q %2"\lib\es"
+RD /S /Q %2"\lib\fr"
+RD /S /Q %2"\lib\it"
+RD /S /Q %2"\lib\ja-JP"
+RD /S /Q %2"\lib\ko"
+RD /S /Q %2"\lib\lv"
+RD /S /Q %2"\lib\nl"
+RD /S /Q %2"\lib\pl"
+RD /S /Q %2"\lib\pt"
+RD /S /Q %2"\lib\pt-BR"
+RD /S /Q %2"\lib\ru"
+RD /S /Q %2"\lib\sk"
+RD /S /Q %2"\lib\sv"
+RD /S /Q %2"\lib\th"
+RD /S /Q %2"\lib\tr"
+RD /S /Q %2"\lib\zh"
+RD /S /Q %2"\lib\zh-TW"
+
+MOVE /Y %2"ar" %2"lib\"
+MOVE /Y %2"cs" %2"lib\"
+MOVE /Y %2"da" %2"lib\"
+MOVE /Y %2"de" %2"lib\"
+MOVE /Y %2"es" %2"lib\"
+MOVE /Y %2"fr" %2"lib\"
+MOVE /Y %2"it" %2"lib\"
+MOVE /Y %2"ja-JP" %2"lib\"
+MOVE /Y %2"ko" %2"lib\"
+MOVE /Y %2"lv" %2"lib\"
+MOVE /Y %2"nl" %2"lib\"
+MOVE /Y %2"pl" %2"lib\"
+MOVE /Y %2"pt" %2"lib\"
+MOVE /Y %2"pt-BR" %2"lib\"
+MOVE /Y %2"ru" %2"lib\"
+MOVE /Y %2"sk" %2"lib\"
+MOVE /Y %2"sv" %2"lib\"
+MOVE /Y %2"th" %2"lib\"
+MOVE /Y %2"tr" %2"lib\"
+MOVE /Y %2"zh" %2"lib\"
+MOVE /Y %2"zh-TW" %2"lib\"
+
+
+if %1 == "Release" goto ReleaseExec
+if %1 == Release goto ReleaseExec
+if %1 == "Debug" goto DebugExec
+if %1 == Debug goto DebugExec
+if %1 == "Remote_DEBUG" goto RemoteDebugExec
+if %1 == Remote_DEBUG goto RemoteDebugExec
+
+:ReleaseExec
+echo Release processing...
+del /S %2"*.pdb""
+del /S %2"*.xml""
+del /S %2"lib/*.pdb""
+echo Release: eliminato pdb + xml!!!
+goto END
+
+:DebugExec
+echo Debug processing...
+
+goto END
+
+
+:RemoteDebugExec
+echo Remote_DEBUG processing, effettuo copia script verso server remoto (ROBOCOPY)
+REM copia script verso server remoto
+REM echo Debug remoto: effettuo robocopy sync (verificare remote per cliente)
+
+REM FINASSI
+REM ROBOCOPY %2 \\10.150.0.1\Steamware\IOB-WIN-WPS-DEB /MIR
+REM Baglietto
+REM ROBOCOPY %2 \\192.168.60.15\Steamware\IOB-WIN-WPS-DEB /MIR
+REM GIACOVELLI LOCOROTONDO
+REM ROBOCOPY %2 \\192.168.1.93\Steamware\IOB-WIN-WPS-DEB /MIR
+REM IMI Remosa
+REM ROBOCOPY %2 \\192.168.0.12\Steamware\IOB-WIN-WPS-DEB /MIR
+
+REM IOB-WIN-SIM
+REM ROBOCOPY %2 \\IOB-WIN-SIMULA\Steamware\IOB-WIN-WPS-DEB /MIR
+
+REM IOBVPN4MACHINE
+REM ROBOCOPY %2 \\10.51.90.5\Steamware\IOB-WIN-WPS-DEB /MIR
+REM ROBOCOPY %2 \\10.51.90.5\Steamware\IOB-WIN-WPS-DEB /MIR /log:RobocopyTransfer.log
+REM ROBOCOPY %2 Z:\IOB-WIN-WPS-DEB /MIR
+REM ROBOCOPY %2 \\10.51.90.10\Steamware\IOB-WIN-WPS-DEB /MIR
+ROBOCOPY %2 \\10.51.90.9\Steamware\IOB-WIN-WPS-DEB /MIR
+
+goto END
+
+:END
+echo Fatto!
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/setupTgt.bat b/IOB-WIN-MBUS/setupTgt.bat
new file mode 100644
index 00000000..ba685c02
--- /dev/null
+++ b/IOB-WIN-MBUS/setupTgt.bat
@@ -0,0 +1,25 @@
+@echo off
+echo Effettua setup dei file specifici per i vari ambienti pre build installer: verifica da nome configurazione %1
+
+
+if %1 == "Release" goto Release
+if %1 == "Debug" goto Debug
+if %1 == "Remote_DEBUG" goto RemoteDebug
+
+:Release
+echo Release: nulla da copiare
+goto END
+
+:Debug
+echo Debug: copia file ini x simulazione Debug
+REM del %2"DATA\CONF\EsaKvara.ini"
+REM copy %2"Resources\SCM\EsaKvara_SIM.ini" %2"DATA\CONF\EsaKvara.ini"
+goto END
+
+
+:RemoteDebug
+echo RemoteDebug: nulla da copiare
+goto END
+
+:END
+echo Fatto!
\ No newline at end of file
diff --git a/IOB-WIN-MBUS/temp/.placeholder b/IOB-WIN-MBUS/temp/.placeholder
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-MBUS/temp/.placeholder
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-MTC.sln b/IOB-WIN-MTC.sln
index 573643d4..ba83abc6 100644
--- a/IOB-WIN-MTC.sln
+++ b/IOB-WIN-MTC.sln
@@ -12,9 +12,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IOB-UT-NEXT", "IOB-UT-NEXT\IOB-UT-NEXT.csproj", "{90512E12-29FC-460D-94CC-648C2A072DBD}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IOB-WIN-MTC", "IOB-WIN-MTC\IOB-WIN-MTC.csproj", "{7A396F36-0C79-470B-B909-356451DFE8C5}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IOB-WIN-FORM", "IOB-WIN-FORM\IOB-WIN-FORM.csproj", "{9BA331BB-9BF1-40E0-AC03-74B43D73A097}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IOB-WIN-MTC-CLI", "IOB-WIN-MTC-CLI\IOB-WIN-MTC-CLI.csproj", "{6326D2C7-061F-4EC5-B8FF-5B072EFCFF52}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IOB-WIN-MTC", "IOB-WIN-MTC\IOB-WIN-MTC.csproj", "{EEBE38BD-29EE-45DE-9AF4-8FA34B58D8BA}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -48,32 +48,31 @@ Global
{90512E12-29FC-460D-94CC-648C2A072DBD}.Release|x86.Build.0 = Release|x86
{90512E12-29FC-460D-94CC-648C2A072DBD}.Remote_DEBUG|Any CPU.ActiveCfg = Debug|Any CPU
{90512E12-29FC-460D-94CC-648C2A072DBD}.Remote_DEBUG|Any CPU.Build.0 = Debug|Any CPU
- {90512E12-29FC-460D-94CC-648C2A072DBD}.Remote_DEBUG|x86.ActiveCfg = Remote_DEBUG|x86
- {90512E12-29FC-460D-94CC-648C2A072DBD}.Remote_DEBUG|x86.Build.0 = Remote_DEBUG|x86
- {7A396F36-0C79-470B-B909-356451DFE8C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7A396F36-0C79-470B-B909-356451DFE8C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7A396F36-0C79-470B-B909-356451DFE8C5}.Debug|x86.ActiveCfg = Debug|Any CPU
- {7A396F36-0C79-470B-B909-356451DFE8C5}.Debug|x86.Build.0 = Debug|Any CPU
- {7A396F36-0C79-470B-B909-356451DFE8C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7A396F36-0C79-470B-B909-356451DFE8C5}.Release|Any CPU.Build.0 = Release|Any CPU
- {7A396F36-0C79-470B-B909-356451DFE8C5}.Release|x86.ActiveCfg = Release|Any CPU
- {7A396F36-0C79-470B-B909-356451DFE8C5}.Release|x86.Build.0 = Release|Any CPU
- {7A396F36-0C79-470B-B909-356451DFE8C5}.Remote_DEBUG|Any CPU.ActiveCfg = Remote_DEBUG|Any CPU
- {7A396F36-0C79-470B-B909-356451DFE8C5}.Remote_DEBUG|Any CPU.Build.0 = Remote_DEBUG|Any CPU
- {7A396F36-0C79-470B-B909-356451DFE8C5}.Remote_DEBUG|x86.ActiveCfg = Release|Any CPU
- {7A396F36-0C79-470B-B909-356451DFE8C5}.Remote_DEBUG|x86.Build.0 = Release|Any CPU
- {6326D2C7-061F-4EC5-B8FF-5B072EFCFF52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6326D2C7-061F-4EC5-B8FF-5B072EFCFF52}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6326D2C7-061F-4EC5-B8FF-5B072EFCFF52}.Debug|x86.ActiveCfg = Debug|Any CPU
- {6326D2C7-061F-4EC5-B8FF-5B072EFCFF52}.Debug|x86.Build.0 = Debug|Any CPU
- {6326D2C7-061F-4EC5-B8FF-5B072EFCFF52}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6326D2C7-061F-4EC5-B8FF-5B072EFCFF52}.Release|Any CPU.Build.0 = Release|Any CPU
- {6326D2C7-061F-4EC5-B8FF-5B072EFCFF52}.Release|x86.ActiveCfg = Release|Any CPU
- {6326D2C7-061F-4EC5-B8FF-5B072EFCFF52}.Release|x86.Build.0 = Release|Any CPU
- {6326D2C7-061F-4EC5-B8FF-5B072EFCFF52}.Remote_DEBUG|Any CPU.ActiveCfg = Remote_DEBUG|Any CPU
- {6326D2C7-061F-4EC5-B8FF-5B072EFCFF52}.Remote_DEBUG|Any CPU.Build.0 = Remote_DEBUG|Any CPU
- {6326D2C7-061F-4EC5-B8FF-5B072EFCFF52}.Remote_DEBUG|x86.ActiveCfg = Release|Any CPU
- {6326D2C7-061F-4EC5-B8FF-5B072EFCFF52}.Remote_DEBUG|x86.Build.0 = Release|Any CPU
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Remote_DEBUG|x86.ActiveCfg = Release|x86
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Debug|x86.Build.0 = Debug|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Release|x86.ActiveCfg = Release|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Release|x86.Build.0 = Release|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Remote_DEBUG|Any CPU.ActiveCfg = Debug|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Remote_DEBUG|Any CPU.Build.0 = Debug|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Remote_DEBUG|x86.ActiveCfg = Release|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Remote_DEBUG|x86.Build.0 = Release|Any CPU
+ {EEBE38BD-29EE-45DE-9AF4-8FA34B58D8BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EEBE38BD-29EE-45DE-9AF4-8FA34B58D8BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EEBE38BD-29EE-45DE-9AF4-8FA34B58D8BA}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {EEBE38BD-29EE-45DE-9AF4-8FA34B58D8BA}.Debug|x86.Build.0 = Debug|Any CPU
+ {EEBE38BD-29EE-45DE-9AF4-8FA34B58D8BA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EEBE38BD-29EE-45DE-9AF4-8FA34B58D8BA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EEBE38BD-29EE-45DE-9AF4-8FA34B58D8BA}.Release|x86.ActiveCfg = Release|Any CPU
+ {EEBE38BD-29EE-45DE-9AF4-8FA34B58D8BA}.Release|x86.Build.0 = Release|Any CPU
+ {EEBE38BD-29EE-45DE-9AF4-8FA34B58D8BA}.Remote_DEBUG|Any CPU.ActiveCfg = Remote_DEBUG|Any CPU
+ {EEBE38BD-29EE-45DE-9AF4-8FA34B58D8BA}.Remote_DEBUG|Any CPU.Build.0 = Remote_DEBUG|Any CPU
+ {EEBE38BD-29EE-45DE-9AF4-8FA34B58D8BA}.Remote_DEBUG|x86.ActiveCfg = Release|Any CPU
+ {EEBE38BD-29EE-45DE-9AF4-8FA34B58D8BA}.Remote_DEBUG|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/IOB-WIN-MTC/AdapterFormNext.cs b/IOB-WIN-MTC/AdapterFormNext.cs
new file mode 100644
index 00000000..cae97dfb
--- /dev/null
+++ b/IOB-WIN-MTC/AdapterFormNext.cs
@@ -0,0 +1,55 @@
+using IOB_UT_NEXT;
+using IOB_WIN_MTC.Iob;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IOB_WIN_MTC
+{
+ public class AdapterFormNext: IOB_WIN_FORM.AdapterForm
+ {
+
+ ///
+ /// Avvio MainForm
+ ///
+ ///
+ public AdapterFormNext(string codIOB): base(codIOB)
+ {
+ }
+ ///
+ /// carica IOB richiesto
+ ///
+ protected override void loadIobType()
+ {
+ if (IOBConf != null)
+ {
+ switch (tipoScelto)
+ {
+ case tipoAdapter.MTConnect:
+ iobObj = new Iob.MTConn(this, IOBConf);
+ btnStart.Enabled = true;
+ break;
+
+ case tipoAdapter.SIMULA:
+ case tipoAdapter.ND:
+ default:
+ iobObj = new IOB_WIN_FORM.Iob.Simula(this, IOBConf);
+ btnStart.Enabled = false;
+ break;
+ }
+ lblCncText = $"CNC: {IOBConf.tipoIob} [{IOBConf.cncIpAddr}:{IOBConf.cncPort}]";
+ lblSrvUrlText = $"SRV: {IOBConf.serverData.MPIP} | URL: {IOBConf.serverData.MPURL}{IOBConf.serverData.CMDBASE}";
+
+ // aggancio evento refresh
+ iobObj.eh_refreshed += IobObj_eh_refreshed;
+
+ // carico i default values su interfaccia
+ setDefaults();
+
+ displayTaskAndLog($"Caricata conf per adapter {tipoScelto}");
+ }
+ }
+ }
+}
diff --git a/IOB-WIN-MTC/App.Debug.config b/IOB-WIN-MTC/App.Debug.config
new file mode 100644
index 00000000..42297ccc
--- /dev/null
+++ b/IOB-WIN-MTC/App.Debug.config
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-MTC/App.Release.config b/IOB-WIN-MTC/App.Release.config
new file mode 100644
index 00000000..0f80d173
--- /dev/null
+++ b/IOB-WIN-MTC/App.Release.config
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-MTC/App.config b/IOB-WIN-MTC/App.config
new file mode 100644
index 00000000..d987216e
--- /dev/null
+++ b/IOB-WIN-MTC/App.config
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/CONF/3024-PING.ini b/IOB-WIN-MTC/DATA/CONF/3024-PING.ini
new file mode 100644
index 00000000..cc4abec9
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/3024-PING.ini
@@ -0,0 +1,57 @@
+;Configurazione IOB-WIN
+[IOB]
+CNCTYPE=PingWatchdog
+PING_MS_TIMEOUT=500
+IOB_NAME=3024
+
+[MACHINE]
+VENDOR=STEAMWARE
+MODEL=WATCHDOG
+
+[CNC]
+IP=192.168.0.68
+;IP=192.168.1.7 Server MP
+PORT=0000
+
+[SERVER]
+MPIP=http://192.168.1.7
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+CMD_ODL_STARTED=/IOB/getCurrOdlStart/
+CMD_FORCLE_SPLIT_ODL=/IOB/forceSplitOdlFull/
+CMD_IDLE_TIME=/IOB/getIdlePeriod/
+
+[MEMORY]
+
+[BLINK]
+MAX_COUNTER_BLINK = 15
+BLINK_FILT=0
+
+[OPTPAR]
+timerIntMs=300
+VETO_QUEUE_IN=15
+AUTO_CHANGE_ODL=false
+POWEROFF_TIMEOUT_SEC=60
+DISABLE_PZCOUNT=TRUE
+;; gestioni PING
+;MAX_TRY_PING=3
+;VETO_QUEUE_IN=4
+;VETO_PING_SEC=4
+;VETO_CHECKDIR_SEC=10
+;MAX_ELAPSED_TIME_SEC=60
+;VETO_SEND_SNAPSHOT=3
+
+[BRANCH]
+NAME=master
+
+; Tags manuali
+[TAGS]
+Customer=JETCO
+HostOS=WIN
+HostName=IOB-WIN-09
+HostAddr=192.168.1.133
diff --git a/IOB-WIN-MTC/DATA/CONF/3024.ini b/IOB-WIN-MTC/DATA/CONF/3024.ini
new file mode 100644
index 00000000..85757f49
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/3024.ini
@@ -0,0 +1,76 @@
+;Configurazione IOB-WIN
+[IOB]
+;Tornio Biglia 438 controllo Mitsubishi MTConnect
+CNCTYPE=MTConnect
+PING_MS_TIMEOUT=500
+
+[MACHINE]
+VENDOR=BIGLIA
+MODEL=438
+
+[CNC]
+IP=192.168.1.27
+PORT=5000
+GETPRGNAME=true
+
+[SERVER]
+MPIP=http://192.168.1.7
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+
+[MEMORY]
+ADDR_READ=DB9999.DBB0
+ADDR_WRITE=DB9999.DBB0
+SIZE_READ=0
+SIZE_WRITE=0
+;BIT0=CONN
+;BIT1=DB60.DBB1
+;BIT2=PZCOUNT.STD.DB700.DBW22
+;BIT3=DB60.DBB3
+;BIT4=DB60.DBB4
+
+
+[BLINK]
+;MAX_COUNTER_BLINK = 30
+MAX_COUNTER_BLINK = 30
+;bit0 = 1
+;bit1 = 1
+;bit2 = 0
+;bit3 = 0
+;bit4 = 0
+;bit5 = 0
+;bit6 = 0
+;bit7 = 0
+BLINK_FILT=3
+;BLINK_FILT=28
+
+[OPTPAR]
+PZCOUNT_MODE=MTC
+DISABLE_PZCOUNT=FALSE
+ENABLE_SEND_PZC_BLOCK=TRUE
+MIN_SEND_PZC_BLOCK=0
+MAX_SEND_PZC_BLOCK=100
+ENABLE_DYN_DATA=FALSE
+FORCE_DYN_DATA=TRUE
+ENABLE_DATA_FILTER=TRUE
+ENABLE_MTC_RESTART=TRUE
+VETO_QUEUE_IN=15
+DISABLE_SEND_WDST=TRUE
+
+; conf parametri memoria READ/WRITE
+MTC_PARAM_CONF=3024.json
+
+[BRANCH]
+NAME=master
+
+; Tags manuali
+[TAGS]
+Customer=JETCO
+HostOS=WIN
+HostName=IOB-WIN-8
+HostAddr=192.168.1.132
diff --git a/IOB-WIN-MTC/DATA/CONF/3024.json b/IOB-WIN-MTC/DATA/CONF/3024.json
new file mode 100644
index 00000000..588a3389
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/3024.json
@@ -0,0 +1,108 @@
+{
+ "clientSampleIntMs": 600,
+ "reqTOutMs": 16000,
+ "reconnectIntMs": 6000,
+ "doSubsObserv": false,
+ "doSubsSample": true,
+ "keyPartCount": "M7010B4214N_23",
+ "keyPartReq": "",
+ "keyPartId": "",
+ "keyProgName": "M7010B4214N_31",
+ "keyRunMode": "M7010B4214N_13",
+ "keyEStop": "M7010B4214N_3",
+ "pingAsPowerOn": false,
+ "emergencyArmedTrue": false,
+ "condPowerOn": {
+ "keyName": "M7010B4214N_2",
+ "targetValue": "AVAILABLE"
+ },
+ "condWork": [
+ {
+ "keyName": "M7010B4214N_20",
+ "targetValue": "ACTIVE"
+ }
+ ],
+ "condManual": {
+ "checkMode": "AND",
+ "checkList": [
+ {
+ "keyName": "M7010B4214N_20",
+ "targetValue": "OPTINAL_STOP"
+ }
+ ]
+ },
+ "condReady": {
+ "checkMode": "AND",
+ "checkList": [
+ {
+ "keyName": "M7010B4214N_20",
+ "targetValue": "STOPPED"
+ }
+ ]
+ },
+ "fluxLogVeto": [
+ "_24956f03ad_adapter_uri",
+ "_24956f03ad_adapter_software_version",
+ "_24956f03ad_mtconnect_version",
+ "agent_2cde48001122_asset_chg",
+ "agent_2cde48001122_asset_rem",
+ "device_changed",
+ "M7010B4214N_4",
+ "M7010B4214N_9",
+ "M7010B4214N_19",
+ "M7010B4214N_14",
+ "M7010B4214N_26",
+ "M7010B4214N_32",
+ "M7010B4214N_36",
+ "M7010B4214N_45",
+ "M7010B4214N_47",
+ "M7010B4214N_48",
+ "M7010B4214N_49",
+ "M7010B4214N_50",
+ "M7010B4214N_51",
+ "M7010B4214N_52",
+ "M7010B4214N_54",
+ "M7010B4214N_55",
+ "M7010B4214N_57",
+ "M7010B4214N_59",
+ "M7010B4214N_60",
+ "M7010B4214N_63",
+ "M7010B4214N_5",
+ "M7010B4214N_65",
+ "M7010B4214N_66",
+ "M7010B4214N_68",
+ "M7010B4214N_69",
+ "M7010B4214N_71",
+ "M7010B4214N_72",
+ "M7010B4214N_1_asset_chg",
+ "M7010B4214N_1_asset_rem"
+ ],
+ "itemTranslation": {
+ "E_M7010B4214N_2": "Machine Available",
+ "E_M7010B4214N_3": "Emergency",
+ "C_M7010B4214N_5": "System Condition (Alarm)",
+ "E_M7010B4214N_20": "Execution Mode",
+ "E_M7010B4214N_11": "Active Axes",
+ "E_M7010B4214N_13": "Controller Mode",
+ "E_M7010B4214N_31": "Program Name",
+ "E_M7010B4214N_23": "Contapezzi",
+ "E_M7010B4214N_24": "Rimanenti",
+ "E_M7010B4214N_25": "Qta Richiesta",
+ "E_M7010B4214N_28": "PATH FEED OVERRIDE",
+ "E_M7010B4214N_29": "PATH RAPID OVERRIDE",
+ "E_M7010B4214N_34": "PROGRAM",
+ "E_M7010B4214N_39": "Tool Asset ID"
+ },
+ "mMapRead": {
+ "E_M7010B4214N_2": {
+ "name": "E_M7010B4214N_2",
+ "description": "Machine Availability",
+ "displOrdinal": 1
+ }
+ },
+ "paramsEndThresh": {
+ "PosAct": 50,
+ "PosTgt": 50,
+ "InvDDone": 50
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/CONF/FOV062.ini b/IOB-WIN-MTC/DATA/CONF/FOV062.ini
new file mode 100644
index 00000000..5cd7f51c
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/FOV062.ini
@@ -0,0 +1,68 @@
+;Configurazione IOB-WIN
+[IOB]
+;Centro di lavoro HAAS MTConnect
+CNCTYPE=MTConnect
+PING_MS_TIMEOUT=500
+
+[MACHINE]
+VENDOR=TREVISAN
+MODEL=DS500
+
+[CNC]
+IP=192.168.20.100
+PORT=5000
+GETPRGNAME=true
+
+[SERVER]
+MPIP=http://192.168.168.17
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+
+[MEMORY]
+ADDR_READ=DB9999.DBB0
+ADDR_WRITE=DB9999.DBB0
+SIZE_READ=0
+SIZE_WRITE=0
+;BIT0=CONN
+;BIT1=DB60.DBB1
+;BIT2=PZCOUNT.STD.DB700.DBW22
+;BIT3=DB60.DBB3
+;BIT4=DB60.DBB4
+
+
+[BLINK]
+;MAX_COUNTER_BLINK = 30
+MAX_COUNTER_BLINK = 15
+;bit0 = 0
+;bit1 = 0
+;bit2 = 1
+;bit3 = 1
+;bit4 = 1
+;bit5 = 0
+;bit6 = 0
+;bit7 = 0
+BLINK_FILT=0
+;BLINK_FILT=28
+
+[OPTPAR]
+PZCOUNT_MODE=MTC
+DISABLE_PZCOUNT=FALSE
+ENABLE_SEND_PZC_BLOCK=TRUE
+MIN_SEND_PZC_BLOCK=0
+MAX_SEND_PZC_BLOCK=100
+ENABLE_DYN_DATA=FALSE
+FORCE_DYN_DATA=TRUE
+ENABLE_DATA_FILTER=TRUE
+ENABLE_MTC_RESTART=TRUE
+UNAVAIL_POWEROFF=TRUE
+
+; conf parametri memoria READ/WRITE
+MTC_PARAM_CONF=FOV062.json
+
+[BRANCH]
+NAME=master
diff --git a/IOB-WIN-MTC/DATA/CONF/FOV062.json b/IOB-WIN-MTC/DATA/CONF/FOV062.json
new file mode 100644
index 00000000..016e9cd8
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/FOV062.json
@@ -0,0 +1,34 @@
+{
+ "keyPartCount": "npartcnt1",
+ "keyPartReq": "",
+ "keyPartId": "",
+ "keyProgName": "nprogram1",
+ "keyRunMode": "nmode1",
+ "keyEStop": "nestop1",
+ "pingAsPowerOn": true,
+ "condPowerOn": {
+ "keyName": "navail",
+ "targetValue": "AVAILABLE"
+ },
+ "condWork": [
+ {
+ "keyName": "nexecution1",
+ "targetValue": "ACTIVE"
+ }
+ ],
+ "itemTranslation": {
+ "navail": "Machine Available",
+ "nexecution1": "Execution Mode",
+ "nmode1": "Controller Mode",
+ "nprogram1": "Program Name",
+ "npartcnt1": "Contapezzi",
+ "lpremain": "Qta Richiesta",
+ "nfeedoverride1": "PATH FEED OVERRIDE",
+ "nrapidoverride1": "PATH RAPID OVERRIDE"
+ },
+ "paramsEndThresh": {
+ "PosAct": 50,
+ "PosTgt": 50,
+ "InvDDone": 50
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/CONF/GT573.ini b/IOB-WIN-MTC/DATA/CONF/GT573.ini
new file mode 100644
index 00000000..2c08f88f
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/GT573.ini
@@ -0,0 +1,74 @@
+;Configurazione IOB-WIN
+[IOB]
+;Tornio Mitsubishi
+CNCTYPE=MTConnect
+PING_MS_TIMEOUT=500
+
+[MACHINE]
+VENDOR=Mitsubishi
+MODEL=PowerCenterPro1000
+
+[CNC]
+IP=192.168.1.88
+PORT=5000
+GETPRGNAME=true
+
+[SERVER]
+MPIP=http://192.168.1.64
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+
+[MEMORY]
+ADDR_READ=DB9999.DBB0
+ADDR_WRITE=DB9999.DBB0
+SIZE_READ=0
+SIZE_WRITE=0
+;BIT0=CONN
+;BIT1=DB60.DBB1
+;BIT2=PZCOUNT.STD.DB700.DBW22
+;BIT3=DB60.DBB3
+;BIT4=DB60.DBB4
+
+
+[BLINK]
+;MAX_COUNTER_BLINK = 30
+MAX_COUNTER_BLINK = 15
+;bit0 = 0
+;bit1 = 0
+;bit2 = 1
+;bit3 = 1
+;bit4 = 1
+;bit5 = 0
+;bit6 = 0
+;bit7 = 0
+BLINK_FILT=0
+;BLINK_FILT=28
+
+[OPTPAR]
+PZCOUNT_MODE=MTC
+DISABLE_PZCOUNT=FALSE
+ENABLE_SEND_PZC_BLOCK=TRUE
+MIN_SEND_PZC_BLOCK=0
+MAX_SEND_PZC_BLOCK=100
+ENABLE_DYN_DATA=FALSE
+FORCE_DYN_DATA=TRUE
+ENABLE_DATA_FILTER=TRUE
+ENABLE_MTC_RESTART=TRUE
+
+; conf parametri memoria READ/WRITE
+MTC_PARAM_CONF=GT573.json
+
+[BRANCH]
+NAME=master
+
+; Tags manuali
+[TAGS]
+Customer=LVF
+HostOS=WIN
+HostName=Server-MAPO-IOB
+HostAddr=192.168.1.208
diff --git a/IOB-WIN-MTC/DATA/CONF/GT573.json b/IOB-WIN-MTC/DATA/CONF/GT573.json
new file mode 100644
index 00000000..fd9bd1fa
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/GT573.json
@@ -0,0 +1,33 @@
+{
+ "keyPartCount": "GD179N_p1_58",
+ "keyPartReq": "GD179N_p1_x58",
+ "keyPartId": "",
+ "keyProgName": "GD179N_p1_52",
+ "keyRunMode": "GD179N_p1_49",
+ "pingAsPowerOn": false,
+ "condPowerOn": {
+ "keyName": "GD179N_dtop_2",
+ "targetValue": "AVAILABLE"
+ },
+ "condWork": [
+ {
+ "keyName": "GD179N_p1_48",
+ "targetValue": "ACTIVE"
+ }
+ ],
+ "itemTranslation": {
+ "GD179N_dtop_2": "Machine Available",
+ "E_GD179N_p1_48": "Execution Mode",
+ "E_GD179N_p1_49": "Controller Mode",
+ "E_GD179N_p1_52": "Program Name",
+ "E_GD179N_p1_58": "Contapezzi",
+ "E_GD179N_p1_x58": "Qta Richiesta",
+ "E_GD179N_p1_61": "PATH FEED OVERRIDE",
+ "E_GD179N_p1_62": "PATH RAPID OVERRIDE"
+ },
+ "paramsEndThresh": {
+ "PosAct": 50,
+ "PosTgt": 50,
+ "InvDDone": 50
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/CONF/GT576.ini b/IOB-WIN-MTC/DATA/CONF/GT576.ini
new file mode 100644
index 00000000..bd44a47b
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/GT576.ini
@@ -0,0 +1,74 @@
+;Configurazione IOB-WIN
+[IOB]
+;Centro di lavoro Okuma MTConnect
+CNCTYPE=MTConnect
+PING_MS_TIMEOUT=500
+
+[MACHINE]
+VENDOR=Okuma
+MODEL=Lathe 2SP-35HG
+
+[CNC]
+IP=192.168.0.47
+PORT=5000
+GETPRGNAME=true
+
+[SERVER]
+MPIP=http://192.168.1.64
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+
+[MEMORY]
+ADDR_READ=DB9999.DBB0
+ADDR_WRITE=DB9999.DBB0
+SIZE_READ=0
+SIZE_WRITE=0
+;BIT0=CONN
+;BIT1=DB60.DBB1
+;BIT2=PZCOUNT.STD.DB700.DBW22
+;BIT3=DB60.DBB3
+;BIT4=DB60.DBB4
+
+
+[BLINK]
+;MAX_COUNTER_BLINK = 30
+MAX_COUNTER_BLINK = 15
+;bit0 = 0
+;bit1 = 0
+;bit2 = 1
+;bit3 = 1
+;bit4 = 1
+;bit5 = 0
+;bit6 = 0
+;bit7 = 0
+BLINK_FILT=0
+;BLINK_FILT=28
+
+[OPTPAR]
+PZCOUNT_MODE=MTC
+DISABLE_PZCOUNT=FALSE
+ENABLE_SEND_PZC_BLOCK=TRUE
+MIN_SEND_PZC_BLOCK=0
+MAX_SEND_PZC_BLOCK=100
+ENABLE_DYN_DATA=FALSE
+FORCE_DYN_DATA=TRUE
+ENABLE_DATA_FILTER=TRUE
+ENABLE_MTC_RESTART=TRUE
+
+; conf parametri memoria READ/WRITE
+MTC_PARAM_CONF=GT576.json
+
+[BRANCH]
+NAME=master
+
+; Tags manuali
+[TAGS]
+Customer=LVF
+HostOS=WIN
+HostName=Server-MAPO-IOB
+HostAddr=192.168.1.208
diff --git a/IOB-WIN-MTC/DATA/CONF/GT576.json b/IOB-WIN-MTC/DATA/CONF/GT576.json
new file mode 100644
index 00000000..f2976ff7
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/GT576.json
@@ -0,0 +1,77 @@
+{
+ "keyEStop": "L2estop",
+ "keyPartCount": "L2p2partcount",
+ "keyPartReq": "",
+ "keyPartId": "",
+ "keyProgName": "L2p2program",
+ "keyRunMode": "L2p2mode",
+ "pingAsPowerOn": true,
+ "condPowerOn": {
+ "keyName": "L2avail",
+ "targetValue": "AVAILABLE"
+ },
+ "condWork": [
+ {
+ "keyName": "L2p2execution",
+ "targetValue": "ACTIVE"
+ }
+ ],
+ "fluxLogVeto": [
+ "L2p1BlockNumber",
+ "L2p1block",
+ "L2p1line",
+ "L2S1ChuckState",
+ "L2p1LPathPos",
+ "L2p1CommonVariable"
+ ],
+ "itemTranslation": {
+ "L2avail": "Machine Available",
+ "L2p2execution": "Execution Mode",
+ "L2p2mode": "Controller Mode",
+ "L2p2program": "Program Name",
+ "L2p2partcount": "Contapezzi",
+ "L2estop": "Emergenza",
+ "p2Fovr": "PATH FEED OVERRIDE",
+ "rovrd": "PATH RAPID OVERRIDE",
+ "L2S1speed": "Spindle C1 Actual SPEED",
+ "L2S1load": "Spindle C1 LOAD",
+ "L2S1ovr": "Spindle C1 OVERRIDE",
+ "L2S2speed": "Spindle C2 Actual SPEED",
+ "L2S2load": "Spindle C2 LOAD",
+ "L2S2ovr": "Spindle C2 OVERRIDE",
+ "L2p1OperatingTime": "OPERATING TIME",
+ "L2p1RunningTime": "RUNNING TIME"
+ },
+ "paramsEndThresh": {
+ "PosAct": 50,
+ "PosTgt": 50,
+ "InvDDone": 50,
+ "L2Z1actw": 30,
+ "L2Z1actm": 10,
+ "L2X1actw": 50,
+ "L2Z1load": 10,
+ "L2X1actm": 100,
+ "L2S1speed": 100,
+ "L2S1load": 10,
+ "L2X1load": 10,
+ "L2S1ovr": 10,
+ "L2S2speed": 100,
+ "L2S2load": 10,
+ "L2Z2load": 5,
+ "L2S2ovr": 10,
+ "L2S1cmd": 100,
+ "L2p1OperatingTime": 600,
+ "L2p1RunningTime": 600,
+ "L2p1TotalRunningTime": 600,
+ "L2p1TotalOperatingTime": 600,
+ "L2p2OperatingTime": 600,
+ "L2p2RunningTime": 600,
+ "L2p2TotalRunningTime": 600,
+ "L2p2TotalOperatingTime": 60,
+ "L2p1SpindleRunTime": 600,
+ "L2p1TotalSpindleRunTime": 600,
+ "L2p1TotalCuttingTime": 600,
+ "L2p1CuttingTime": 600,
+ "L2S1SurfaceSpeedA": 1000
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/CONF/GT577.ini b/IOB-WIN-MTC/DATA/CONF/GT577.ini
new file mode 100644
index 00000000..f25ba4af
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/GT577.ini
@@ -0,0 +1,75 @@
+;Configurazione IOB-WIN
+[IOB]
+;Centro di lavoro HAAS MTConnect
+CNCTYPE=MTConnect
+PING_MS_TIMEOUT=500
+
+[MACHINE]
+VENDOR=HAAS
+MODEL=UMC-500
+
+[CNC]
+IP=192.168.1.82
+PORT=8082
+GETPRGNAME=true
+
+[SERVER]
+MPIP=http://192.168.1.64
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+
+[MEMORY]
+ADDR_READ=DB9999.DBB0
+ADDR_WRITE=DB9999.DBB0
+SIZE_READ=0
+SIZE_WRITE=0
+;BIT0=CONN
+;BIT1=DB60.DBB1
+;BIT2=PZCOUNT.STD.DB700.DBW22
+;BIT3=DB60.DBB3
+;BIT4=DB60.DBB4
+
+
+[BLINK]
+;MAX_COUNTER_BLINK = 30
+MAX_COUNTER_BLINK = 15
+;bit0 = 0
+;bit1 = 0
+;bit2 = 1
+;bit3 = 1
+;bit4 = 1
+;bit5 = 0
+;bit6 = 0
+;bit7 = 0
+BLINK_FILT=0
+;BLINK_FILT=28
+
+[OPTPAR]
+PZCOUNT_MODE=MTC
+DISABLE_PZCOUNT=FALSE
+ENABLE_SEND_PZC_BLOCK=TRUE
+MIN_SEND_PZC_BLOCK=0
+MAX_SEND_PZC_BLOCK=100
+ENABLE_DYN_DATA=FALSE
+FORCE_DYN_DATA=TRUE
+ENABLE_DATA_FILTER=TRUE
+ENABLE_MTC_RESTART=TRUE
+DISABLE_SEND_WDST=TRUE
+
+; conf parametri memoria READ/WRITE
+MTC_PARAM_CONF=GT577.json
+
+[BRANCH]
+NAME=master
+
+; Tags manuali
+[TAGS]
+Customer=LVF
+HostOS=WIN
+HostName=Server-MAPO-IOB
+HostAddr=192.168.1.208
diff --git a/IOB-WIN-MTC/DATA/CONF/GT577.json b/IOB-WIN-MTC/DATA/CONF/GT577.json
new file mode 100644
index 00000000..990ba489
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/GT577.json
@@ -0,0 +1,33 @@
+{
+ "keyPartCount": "m30c1",
+ "keyPartReq": "lpremain",
+ "keyPartId": "",
+ "keyProgName": "ncprog",
+ "keyRunMode": "mode",
+ "pingAsPowerOn": true,
+ "condPowerOn": {
+ "keyName": "avail",
+ "targetValue": "AVAILABLE"
+ },
+ "condWork": [
+ {
+ "keyName": "rstat",
+ "targetValue": "ACTIVE"
+ }
+ ],
+ "itemTranslation": {
+ "avail": "Machine Available",
+ "rstat": "Execution Mode",
+ "mode": "Controller Mode",
+ "ncprog": "Program Name",
+ "m30c1": "Contapezzi",
+ "lpremain": "Qta Richiesta",
+ "fdovrd": "PATH FEED OVERRIDE",
+ "rovrd": "PATH RAPID OVERRIDE"
+ },
+ "paramsEndThresh": {
+ "PosAct": 50,
+ "PosTgt": 50,
+ "InvDDone": 50
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/CONF/GT593.ini b/IOB-WIN-MTC/DATA/CONF/GT593.ini
new file mode 100644
index 00000000..373e782e
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/GT593.ini
@@ -0,0 +1,75 @@
+;Configurazione IOB-WIN
+[IOB]
+;Centro di lavoro HAAS MTConnect
+CNCTYPE=MTConnect
+PING_MS_TIMEOUT=500
+
+[MACHINE]
+VENDOR=HAAS
+MODEL=VF-1
+
+[CNC]
+IP=192.168.1.49
+PORT=8082
+GETPRGNAME=true
+
+[SERVER]
+MPIP=http://192.168.1.64
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+
+[MEMORY]
+ADDR_READ=DB9999.DBB0
+ADDR_WRITE=DB9999.DBB0
+SIZE_READ=0
+SIZE_WRITE=0
+;BIT0=CONN
+;BIT1=DB60.DBB1
+;BIT2=PZCOUNT.STD.DB700.DBW22
+;BIT3=DB60.DBB3
+;BIT4=DB60.DBB4
+
+
+[BLINK]
+;MAX_COUNTER_BLINK = 30
+MAX_COUNTER_BLINK = 15
+;bit0 = 0
+;bit1 = 0
+;bit2 = 1
+;bit3 = 1
+;bit4 = 1
+;bit5 = 0
+;bit6 = 0
+;bit7 = 0
+BLINK_FILT=0
+;BLINK_FILT=28
+
+[OPTPAR]
+PZCOUNT_MODE=MTC
+DISABLE_PZCOUNT=FALSE
+ENABLE_SEND_PZC_BLOCK=TRUE
+MIN_SEND_PZC_BLOCK=0
+MAX_SEND_PZC_BLOCK=100
+ENABLE_DYN_DATA=FALSE
+FORCE_DYN_DATA=TRUE
+ENABLE_DATA_FILTER=TRUE
+ENABLE_MTC_RESTART=TRUE
+DISABLE_SEND_WDST=TRUE
+
+; conf parametri memoria READ/WRITE
+MTC_PARAM_CONF=GT593.json
+
+[BRANCH]
+NAME=master
+
+; Tags manuali
+[TAGS]
+Customer=LVF
+HostOS=WIN
+HostName=Server-MAPO-IOB
+HostAddr=192.168.1.208
diff --git a/IOB-WIN-MTC/DATA/CONF/GT593.json b/IOB-WIN-MTC/DATA/CONF/GT593.json
new file mode 100644
index 00000000..990ba489
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/GT593.json
@@ -0,0 +1,33 @@
+{
+ "keyPartCount": "m30c1",
+ "keyPartReq": "lpremain",
+ "keyPartId": "",
+ "keyProgName": "ncprog",
+ "keyRunMode": "mode",
+ "pingAsPowerOn": true,
+ "condPowerOn": {
+ "keyName": "avail",
+ "targetValue": "AVAILABLE"
+ },
+ "condWork": [
+ {
+ "keyName": "rstat",
+ "targetValue": "ACTIVE"
+ }
+ ],
+ "itemTranslation": {
+ "avail": "Machine Available",
+ "rstat": "Execution Mode",
+ "mode": "Controller Mode",
+ "ncprog": "Program Name",
+ "m30c1": "Contapezzi",
+ "lpremain": "Qta Richiesta",
+ "fdovrd": "PATH FEED OVERRIDE",
+ "rovrd": "PATH RAPID OVERRIDE"
+ },
+ "paramsEndThresh": {
+ "PosAct": 50,
+ "PosTgt": 50,
+ "InvDDone": 50
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/CONF/GT594.ini b/IOB-WIN-MTC/DATA/CONF/GT594.ini
new file mode 100644
index 00000000..f0e31840
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/GT594.ini
@@ -0,0 +1,75 @@
+;Configurazione IOB-WIN
+[IOB]
+;Centro di lavoro HAAS MTConnect
+CNCTYPE=MTConnect
+PING_MS_TIMEOUT=500
+
+[MACHINE]
+VENDOR=HAAS
+MODEL=UMC-750
+
+[CNC]
+IP=192.168.1.50
+PORT=8082
+GETPRGNAME=true
+
+[SERVER]
+MPIP=http://192.168.1.64
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+
+[MEMORY]
+ADDR_READ=DB9999.DBB0
+ADDR_WRITE=DB9999.DBB0
+SIZE_READ=0
+SIZE_WRITE=0
+;BIT0=CONN
+;BIT1=DB60.DBB1
+;BIT2=PZCOUNT.STD.DB700.DBW22
+;BIT3=DB60.DBB3
+;BIT4=DB60.DBB4
+
+
+[BLINK]
+;MAX_COUNTER_BLINK = 30
+MAX_COUNTER_BLINK = 15
+;bit0 = 0
+;bit1 = 0
+;bit2 = 1
+;bit3 = 1
+;bit4 = 1
+;bit5 = 0
+;bit6 = 0
+;bit7 = 0
+BLINK_FILT=0
+;BLINK_FILT=28
+
+[OPTPAR]
+PZCOUNT_MODE=MTC
+DISABLE_PZCOUNT=FALSE
+ENABLE_SEND_PZC_BLOCK=TRUE
+MIN_SEND_PZC_BLOCK=0
+MAX_SEND_PZC_BLOCK=100
+ENABLE_DYN_DATA=FALSE
+FORCE_DYN_DATA=TRUE
+ENABLE_DATA_FILTER=TRUE
+ENABLE_MTC_RESTART=TRUE
+DISABLE_SEND_WDST=TRUE
+
+; conf parametri memoria READ/WRITE
+MTC_PARAM_CONF=GT594.json
+
+[BRANCH]
+NAME=master
+
+; Tags manuali
+[TAGS]
+Customer=LVF
+HostOS=WIN
+HostName=Server-MAPO-IOB
+HostAddr=192.168.1.208
diff --git a/IOB-WIN-MTC/DATA/CONF/GT594.json b/IOB-WIN-MTC/DATA/CONF/GT594.json
new file mode 100644
index 00000000..990ba489
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/GT594.json
@@ -0,0 +1,33 @@
+{
+ "keyPartCount": "m30c1",
+ "keyPartReq": "lpremain",
+ "keyPartId": "",
+ "keyProgName": "ncprog",
+ "keyRunMode": "mode",
+ "pingAsPowerOn": true,
+ "condPowerOn": {
+ "keyName": "avail",
+ "targetValue": "AVAILABLE"
+ },
+ "condWork": [
+ {
+ "keyName": "rstat",
+ "targetValue": "ACTIVE"
+ }
+ ],
+ "itemTranslation": {
+ "avail": "Machine Available",
+ "rstat": "Execution Mode",
+ "mode": "Controller Mode",
+ "ncprog": "Program Name",
+ "m30c1": "Contapezzi",
+ "lpremain": "Qta Richiesta",
+ "fdovrd": "PATH FEED OVERRIDE",
+ "rovrd": "PATH RAPID OVERRIDE"
+ },
+ "paramsEndThresh": {
+ "PosAct": 50,
+ "PosTgt": 50,
+ "InvDDone": 50
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/CONF/GT651.ini b/IOB-WIN-MTC/DATA/CONF/GT651.ini
new file mode 100644
index 00000000..b0c86040
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/GT651.ini
@@ -0,0 +1,75 @@
+;Configurazione IOB-WIN
+[IOB]
+;Centro di lavoro HAAS MTConnect
+CNCTYPE=MTConnect
+PING_MS_TIMEOUT=500
+
+[MACHINE]
+VENDOR=HAAS
+MODEL=VF3
+
+[CNC]
+IP=192.168.0.81
+PORT=8082
+GETPRGNAME=true
+
+[SERVER]
+MPIP=http://192.168.1.64
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+
+[MEMORY]
+ADDR_READ=DB9999.DBB0
+ADDR_WRITE=DB9999.DBB0
+SIZE_READ=0
+SIZE_WRITE=0
+;BIT0=CONN
+;BIT1=DB60.DBB1
+;BIT2=PZCOUNT.STD.DB700.DBW22
+;BIT3=DB60.DBB3
+;BIT4=DB60.DBB4
+
+
+[BLINK]
+;MAX_COUNTER_BLINK = 30
+MAX_COUNTER_BLINK = 15
+;bit0 = 0
+;bit1 = 0
+;bit2 = 1
+;bit3 = 1
+;bit4 = 1
+;bit5 = 0
+;bit6 = 0
+;bit7 = 0
+BLINK_FILT=0
+;BLINK_FILT=28
+
+[OPTPAR]
+PZCOUNT_MODE=MTC
+DISABLE_PZCOUNT=FALSE
+ENABLE_SEND_PZC_BLOCK=TRUE
+MIN_SEND_PZC_BLOCK=0
+MAX_SEND_PZC_BLOCK=100
+ENABLE_DYN_DATA=FALSE
+FORCE_DYN_DATA=TRUE
+ENABLE_DATA_FILTER=TRUE
+ENABLE_MTC_RESTART=TRUE
+DISABLE_SEND_WDST=TRUE
+
+; conf parametri memoria READ/WRITE
+MTC_PARAM_CONF=GT651.json
+
+[BRANCH]
+NAME=master
+
+; Tags manuali
+[TAGS]
+Customer=LVF
+HostOS=WIN
+HostName=Server-MAPO-IOB
+HostAddr=192.168.1.208
diff --git a/IOB-WIN-MTC/DATA/CONF/GT651.json b/IOB-WIN-MTC/DATA/CONF/GT651.json
new file mode 100644
index 00000000..9d67d7e9
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/GT651.json
@@ -0,0 +1,60 @@
+{
+ "keyPartCount": "m30c1",
+ "keyPartReq": "lpremain",
+ "keyPartId": "",
+ "keyProgName": "ncprog",
+ "keyRunMode": "mode",
+ "pingAsPowerOn": true,
+ "condPowerOn": {
+ "keyName": "avail",
+ "targetValue": "AVAILABLE"
+ },
+ "condWork": [
+ {
+ "keyName": "rstat",
+ "targetValue": "ACTIVE"
+ }
+ ],
+ "fluxLogVeto": [
+ "E_macrorange1",
+ "E_macrorange2",
+ "E_macrorange3",
+ "E_macrorange4",
+ "E_macrorange5",
+ "tooltype",
+ "E_workmaterial",
+ "E_toolclearance",
+ "E_edgemeasure",
+ "E_cintpos",
+ "E_toolid",
+ "E_approxdiam",
+ "E_diamwear",
+ "E_toolmaterial",
+ "E_lengthwear",
+ "E_actualdiam",
+ "E_flutes",
+ "E_probetype",
+ "E_approxlength",
+ "E_macrorange1",
+ "E_macrorange2",
+ "E_macrorange3",
+ "E_macrorange4",
+ "E_macrorange5",
+ "E_macrorange6",
+ ],
+ "itemTranslation": {
+ "avail": "Machine Available",
+ "rstat": "Execution Mode",
+ "mode": "Controller Mode",
+ "ncprog": "Program Name",
+ "m30c1": "Contapezzi",
+ "lpremain": "Qta Richiesta",
+ "fdovrd": "PATH FEED OVERRIDE",
+ "rovrd": "PATH RAPID OVERRIDE"
+ },
+ "paramsEndThresh": {
+ "PosAct": 50,
+ "PosTgt": 50,
+ "InvDDone": 50
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/CONF/GT652.ini b/IOB-WIN-MTC/DATA/CONF/GT652.ini
new file mode 100644
index 00000000..9ce363ab
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/GT652.ini
@@ -0,0 +1,75 @@
+;Configurazione IOB-WIN
+[IOB]
+;Centro di lavoro HAAS MTConnect
+CNCTYPE=MTConnect
+PING_MS_TIMEOUT=500
+
+[MACHINE]
+VENDOR=HAAS
+MODEL=UMC 500
+
+[CNC]
+IP=192.168.0.32
+PORT=8082
+GETPRGNAME=true
+
+[SERVER]
+MPIP=http://192.168.1.64
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+
+[MEMORY]
+ADDR_READ=DB9999.DBB0
+ADDR_WRITE=DB9999.DBB0
+SIZE_READ=0
+SIZE_WRITE=0
+;BIT0=CONN
+;BIT1=DB60.DBB1
+;BIT2=PZCOUNT.STD.DB700.DBW22
+;BIT3=DB60.DBB3
+;BIT4=DB60.DBB4
+
+
+[BLINK]
+;MAX_COUNTER_BLINK = 30
+MAX_COUNTER_BLINK = 15
+;bit0 = 0
+;bit1 = 0
+;bit2 = 1
+;bit3 = 1
+;bit4 = 1
+;bit5 = 0
+;bit6 = 0
+;bit7 = 0
+BLINK_FILT=0
+;BLINK_FILT=28
+
+[OPTPAR]
+PZCOUNT_MODE=MTC
+DISABLE_PZCOUNT=FALSE
+ENABLE_SEND_PZC_BLOCK=TRUE
+MIN_SEND_PZC_BLOCK=0
+MAX_SEND_PZC_BLOCK=100
+ENABLE_DYN_DATA=FALSE
+FORCE_DYN_DATA=TRUE
+ENABLE_DATA_FILTER=TRUE
+ENABLE_MTC_RESTART=TRUE
+DISABLE_SEND_WDST=TRUE
+
+; conf parametri memoria READ/WRITE
+MTC_PARAM_CONF=GT652.json
+
+[BRANCH]
+NAME=master
+
+; Tags manuali
+[TAGS]
+Customer=LVF
+HostOS=WIN
+HostName=Server-MAPO-IOB
+HostAddr=192.168.1.208
diff --git a/IOB-WIN-MTC/DATA/CONF/GT652.json b/IOB-WIN-MTC/DATA/CONF/GT652.json
new file mode 100644
index 00000000..9d67d7e9
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/GT652.json
@@ -0,0 +1,60 @@
+{
+ "keyPartCount": "m30c1",
+ "keyPartReq": "lpremain",
+ "keyPartId": "",
+ "keyProgName": "ncprog",
+ "keyRunMode": "mode",
+ "pingAsPowerOn": true,
+ "condPowerOn": {
+ "keyName": "avail",
+ "targetValue": "AVAILABLE"
+ },
+ "condWork": [
+ {
+ "keyName": "rstat",
+ "targetValue": "ACTIVE"
+ }
+ ],
+ "fluxLogVeto": [
+ "E_macrorange1",
+ "E_macrorange2",
+ "E_macrorange3",
+ "E_macrorange4",
+ "E_macrorange5",
+ "tooltype",
+ "E_workmaterial",
+ "E_toolclearance",
+ "E_edgemeasure",
+ "E_cintpos",
+ "E_toolid",
+ "E_approxdiam",
+ "E_diamwear",
+ "E_toolmaterial",
+ "E_lengthwear",
+ "E_actualdiam",
+ "E_flutes",
+ "E_probetype",
+ "E_approxlength",
+ "E_macrorange1",
+ "E_macrorange2",
+ "E_macrorange3",
+ "E_macrorange4",
+ "E_macrorange5",
+ "E_macrorange6",
+ ],
+ "itemTranslation": {
+ "avail": "Machine Available",
+ "rstat": "Execution Mode",
+ "mode": "Controller Mode",
+ "ncprog": "Program Name",
+ "m30c1": "Contapezzi",
+ "lpremain": "Qta Richiesta",
+ "fdovrd": "PATH FEED OVERRIDE",
+ "rovrd": "PATH RAPID OVERRIDE"
+ },
+ "paramsEndThresh": {
+ "PosAct": 50,
+ "PosTgt": 50,
+ "InvDDone": 50
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/CONF/IMI_50.ini b/IOB-WIN-MTC/DATA/CONF/IMI_50.ini
new file mode 100644
index 00000000..671a69f7
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/IMI_50.ini
@@ -0,0 +1,108 @@
+;Configurazione IOB-WIN
+[IOB]
+;Macchina miscelazione Ossidi di Ferro Interclays
+CNCTYPE=MTConnect
+PING_MS_TIMEOUT=500
+
+[MACHINE]
+VENDOR=CMS
+MODEL=WaterJet
+
+[CNC]
+;IP=127.0.0.1
+;IP=192.168.139.100
+IP=172.28.30.50
+PORT=5000
+
+[SERVER]
+;MPIP=http://10.74.82.218
+MPIP=http://192.168.0.110
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+
+[MEMORY]
+ADDR_READ=DB9999.DBB0
+ADDR_WRITE=DB9999.DBB0
+SIZE_READ=0
+SIZE_WRITE=0
+;BIT0=CONN
+;BIT1=DB60.DBB1
+;BIT2=PZCOUNT.STD.DB700.DBW22
+;BIT3=DB60.DBB3
+;BIT4=DB60.DBB4
+
+
+[BLINK]
+;MAX_COUNTER_BLINK = 30
+MAX_COUNTER_BLINK = 15
+;bit0 = 0
+;bit1 = 0
+;bit2 = 1
+;bit3 = 1
+;bit4 = 1
+;bit5 = 0
+;bit6 = 0
+;bit7 = 0
+BLINK_FILT=0
+;BLINK_FILT=28
+
+[OPTPAR]
+;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
+; attenzione memoria sempre base BYTE (1604 DW --> 6416...)
+PZCOUNT_MODE=STD.DM20.2
+DISABLE_PZCOUNT=TRUE
+ENABLE_DYN_DATA=FALSE
+FORCE_DYN_DATA=TRUE
+ENABLE_DATA_FILTER=TRUE
+ENABLE_MTC_RESTART=TRUE
+
+; conf parametri memoria READ/WRITE
+MTC_PARAM_CONF=IMI_50.json
+
+[BRANCH]
+NAME=master
+
+;--------------------------------------
+; NOTE ESPLICATIVE
+;--------------------------------------
+;
+;contapezzi: Path_01_PZ_TOT
+;
+; E_Path_01_RUN_MODE
+; public enum MtcRunMode
+; {
+; UNDEFINED = 0,
+; AUTOMATIC,
+; EDIT,
+; MANUAL_DATA_INPUT,
+; MANUAL,
+; SEMI_AUTO
+; }
+;
+; E_Path_01_EXE_MODE
+; ///
+; /// ENUM degli stati EXE del path MTC
+; ///
+; public enum MtcExeMode
+; {
+; UNDEFINED = 0,
+; ACTIVE,
+; READY,
+; STOPPED,
+; FEED_HOLD,
+; OPTIONAL_STOP,
+; PROGRAM_STOPPED,
+; PROGRAM_COMPLETED
+; }
+;
+; LAVORA SOLO SE
+; Path_01_EXE_MODE = ACTIVE
+; Path_01_RUN_MODE = AUTOMATIC
+; ST_Abilitaz_Abrasivo = ACTIVE
+; ST_Getto_On = ACTIVE
+; ST_UnOp_01_Status = ACTIVE
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/CONF/IMI_50.json b/IOB-WIN-MTC/DATA/CONF/IMI_50.json
new file mode 100644
index 00000000..bbd20cb9
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/IMI_50.json
@@ -0,0 +1,28 @@
+{
+ "keyPartCount": "Path_01_PZ_TOT",
+ "keyPartReq": "",
+ "keyPartId": "Path_01_PartId",
+ "keyProgName": "Path_01_CurrProg",
+ "keyRunMode": "Path_01_RUN_MODE",
+ "pingAsPowerOn": true,
+ "emergencyArmedTrue": false,
+ "condPowerOn": {
+ "keyName": "POWER",
+ "targetValue": "OK"
+ },
+ "condWork": [
+ {
+ "keyName": "Path_01_EXE_MODE",
+ "targetValue": "ACTIVE"
+ },
+ {
+ "keyName": "ST_UnOp_01_Status",
+ "targetValue": "ACTIVE"
+ }
+ ],
+ "paramsEndThresh": {
+ "PosAct": 50,
+ "PosTgt": 50,
+ "InvDDone": 50
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/CONF/MAIN.ini b/IOB-WIN-MTC/DATA/CONF/MAIN.ini
new file mode 100644
index 00000000..59dffd8e
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/MAIN.ini
@@ -0,0 +1,29 @@
+;Configurazione IOB-WIN GENERALE
+[BRANCH]
+NAME=master
+
+[SERVER]
+
+; Server Steamware
+MPIP=10.74.82.218
+MPURL=/MP/IO
+CMDREBO=/IOB/sendRebootGateway?GWIP=
+CMDIOB2CALL=/IOB/getIob2call?GWIP=
+
+;Client Install
+CLI_INST=SteamWareSim
+
+[IOB]
+;--- TEST sul campo
+; SIMULAZIONE verso server ufficio
+;STARTLIST=SIMUL_01,SIMUL_02,SIMUL_03,SIMUL_04
+;STARTLIST=IMI_50
+;STARTLIST=GT593
+;STARTLIST=3024
+;STARTLIST=TEST
+;STARTLIST=SIMUL_01
+
+;NB: mettere copy always ai file di conf x fare test...
+STARTLIST=3024
+
+MAXCNC=10
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/CONF/SIMUL_01.ini b/IOB-WIN-MTC/DATA/CONF/SIMUL_01.ini
new file mode 100644
index 00000000..08975356
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/SIMUL_01.ini
@@ -0,0 +1,120 @@
+;Configurazione IOB-WIN
+[IOB]
+CNCTYPE=SIMULA
+PING_MS_TIMEOUT=500
+MinDeltaSec=5
+EnableRedisQueue=true
+;IOB_NAME=TFT_RAMA_001
+
+[MACHINE]
+VENDOR=STEAMWARE
+MODEL=DEMO_SIMULATOR
+
+[CNC]
+IP=127.0.0.1
+PORT=0000
+
+[SERVER]
+MPIP=http://10.74.82.218
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+CMD_ODL_STARTED=/IOB/getCurrOdlStart/
+CMD_FORCLE_SPLIT_ODL=/IOB/forceSplitOdlFull/
+CMD_IDLE_TIME=/IOB/getIdlePeriod/
+
+[MEMORY]
+
+[BLINK]
+MAX_COUNTER_BLINK = 15
+BLINK_FILT=0
+
+[OPTPAR]
+DISABLE_SEND_WDST=TRUE
+AUTO_CHANGE_ODL=true
+AUTO_SNAPSHOT_DOSSIER=true
+CHANGE_ODL_HOURS=24
+CHANGE_ODL_IDLE_MIN=0
+CHANGE_ODL_MODE=SIMUL
+; gestione custom timer
+timerIntMs=100
+;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
+PZCOUNT_MODE=BIT
+ENABLE_PZ_RESET=TRUE
+;gestione invio pezzi in blocco
+ENABLE_SEND_PZC_BLOCK=TRUE
+MIN_SEND_PZC_BLOCK=0
+MAX_SEND_PZC_BLOCK=100
+; gestione cambio ODL automatico (minuti minimi durata)
+MIN_DURATA_ODL=960
+; per il simulatore: 50|1 = WAIT 50, DURATION 1 con riferimento al PERIODO base (PER_BASE in ms, default 10 secondi)
+PER_BASE=10100
+SIM_PZCNT=5|1
+SIM_ALARM=100|10
+SIM_MANU=50|6
+; indica gestione e simulazione bit 5 --> slow
+SIM_SLOW=3600|20
+; indica gestione e simulazione bit 6 --> warmup/cooldown
+SIM_WUCD=8000|20
+; indica gestione e simulazione bit 7 --> emergenza
+SIM_EMRG=4000|10
+; indica simulazione delle funzionalità power ON/ OFF
+SIM_POW_ON_OFF=true
+T_ON=7
+T_OFF=22
+; indica simulazione controlli utente
+SIM_RC=81|1
+; indica simulazione registro scarti
+SIM_RS=161|1
+; indica simulazione dichiarazioni (note) utente
+SIM_DICH=261|1
+; indica matricola opr simulata
+SIM_MATR_OPR=1
+
+; test x datasync...
+DATA_SYNC_AT_START=true
+; test sim dossiers tipo Kepware
+SIM_KWP=true
+
+; gestione DynData simulati
+ENABLE_DYN_DATA=TRUE
+FORCE_DYN_DATA=TRUE
+NEW_DYN_DATA=TRUE
+; indica parametri gestione TcMan
+TC_MAX_TC_FACTOR=3.9
+TC_LAMBDA=0.4
+TC_MAX_INCR=5
+MAX_PZ_INCR_PERC=1000
+; conf parametri memoria READ/WRITE
+PARAM_CONF=SIMUL_01.json
+ALARM_CONF=SIMUL_01_alarm.json
+;test gestione logfile (eg: soitaab)
+EnabelPodlManFull=true
+CodGruppoIob=STEAMWARE-SIM-FASE-01
+; invio flux alla lettura file
+sendFluxOnRead=true
+
+;conf test FTP
+FTP_SERVER=ftp.steamware.net
+FTP_USER=testftpuser
+FTP_PWD=we4reFromB3rghem!
+FTP_CERT=
+FTP_SKIP=TRUE
+FTP_LOC_DIR=temp\csv
+FTP_REM_DIR=
+CSV_ADD_HEADER=true
+
+
+[BRANCH]
+NAME=master
+
+; Tags manuali
+[TAGS]
+Customer=Steamware
+HostOS=WIN
+HostName=IOB-WIN-SIMULA
+HostAddr=10.74.82.76
diff --git a/IOB-WIN-MTC/DATA/CONF/SIMUL_01.json b/IOB-WIN-MTC/DATA/CONF/SIMUL_01.json
new file mode 100644
index 00000000..d2895eb1
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/SIMUL_01.json
@@ -0,0 +1,410 @@
+{
+ "mMapWrite": {
+ "setArt": {
+ "name": "setArt",
+ "description": "Articolo",
+ "memAddr": "DB150.DBB12",
+ "tipoMem": "String",
+ "index": 12,
+ "size": 20,
+ "displOrdinal": 1
+ },
+ "setArtNum": {
+ "name": "setArtNum",
+ "description": "# Num Articolo",
+ "memAddr": "DB150.DBB112",
+ "tipoMem": "Int",
+ "index": 112,
+ "size": 4,
+ "displOrdinal": 1
+ },
+ "setComm": {
+ "name": "setComm",
+ "description": "Commessa",
+ "memAddr": "DB150.DBB32",
+ "tipoMem": "String",
+ "index": 32,
+ "size": 20,
+ "displOrdinal": 2
+ },
+ "setCommNum": {
+ "name": "setCommNum",
+ "description": "# NumCommessa",
+ "memAddr": "DB150.DBB132",
+ "tipoMem": "Int",
+ "index": 132,
+ "size": 4,
+ "displOrdinal": 2
+ },
+ "setPzComm": {
+ "name": "setPzComm",
+ "description": "Qta Richiesta",
+ "memAddr": "DB150.DBB8",
+ "tipoMem": "Int",
+ "index": 8,
+ "size": 4,
+ "displOrdinal": 3
+ },
+ "forceSetPzCount": {
+ "name": "forceSetPzCount",
+ "description": "Imposta Qta",
+ "memAddr": "DB150.DBB8",
+ "tipoMem": "Int",
+ "index": 8,
+ "size": 4,
+ "displOrdinal": 11
+ },
+ //"OPC_Set Point.Chain Spped": {
+ // "name": "OPC_Set Point.Chain Spped",
+ // "description": "Chain Spped",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Chain Spped",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Top Overfeeding": {
+ // "name": "OPC_Set Point.Top Overfeeding",
+ // "description": "Top Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Top Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Bottom Overfeeding": {
+ // "name": "OPC_Set Point.Bottom Overfeeding",
+ // "description": "Bottom Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Bottom Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Width Master": {
+ // "name": "OPC_Set Point.Width Master",
+ // "description": "Width Master",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Width Master",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Thermoset Time": {
+ // "name": "OPC_Set Point.Thermoset Time",
+ // "description": "Thermoset Time",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Thermoset Time",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Thermoset Temperature": {
+ // "name": "OPC_Set Point.Thermoset Temperature",
+ // "description": "Thermoset Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Thermoset Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Take Off Overfeeding": {
+ // "name": "OPC_Set Point.Take Off Overfeeding",
+ // "description": "Take Off Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Take Off Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Small Roller Overfeeding": {
+ // "name": "OPC_Set Point.Small Roller Overfeeding",
+ // "description": "Small Roller Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Small Roller Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Scroll Roller Overfeeding": {
+ // "name": "OPC_Set Point.Scroll Roller Overfeeding",
+ // "description": "Scroll Roller Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Scroll Roller Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Right Whell Overfeeding": {
+ // "name": "OPC_Set Point.Right Whell Overfeeding",
+ // "description": "Right Whell Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Right Whell Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Plaiter Overfeeding": {
+ // "name": "OPC_Set Point.Plaiter Overfeeding",
+ // "description": "Plaiter Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Plaiter Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Load cell Weight": {
+ // "name": "OPC_Set Point.Load cell Weight",
+ // "description": "Load cell Weight",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Load cell Weight",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Left Wheel Overfeeding": {
+ // "name": "OPC_Set Point.Left Wheel Overfeeding",
+ // "description": "Left Wheel Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Left Wheel Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Fan 105A Speed": {
+ // "name": "OPC_Set Point.Fan 105A Speed",
+ // "description": "Fan 105A Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Fan 105A Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Fan 105 Speed": {
+ // "name": "OPC_Set Point.Fan 105 Speed",
+ // "description": "Fan 105 Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Fan 105 Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Fan 103A Speed": {
+ // "name": "OPC_Set Point.Fan 103A Speed",
+ // "description": "Fan 103A Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Fan 103A Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Fan 103 Speed": {
+ // "name": "OPC_Set Point.Fan 103 Speed",
+ // "description": "Fan 103 Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Fan 103 Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Fan 101A Speed": {
+ // "name": "OPC_Set Point.Fan 101A Speed",
+ // "description": "Fan 101A Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Fan 101A Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Fan 101 Speed": {
+ // "name": "OPC_Set Point.Fan 101 Speed",
+ // "description": "Fan 101 Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Fan 101 Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Exhaust Fan 1 Speed": {
+ // "name": "OPC_Set Point.Exhaust Fan 1 Speed",
+ // "description": "Exhaust Fan 1 Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Exhaust Fan 1 Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Differentiation Spindle 5": {
+ // "name": "OPC_Set Point.Differentiation Spindle 5",
+ // "description": "Differentiation Spindle 5",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Differentiation Spindle 5",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Differentiation Spindle 4": {
+ // "name": "OPC_Set Point.Differentiation Spindle 4",
+ // "description": "Differentiation Spindle 4",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Differentiation Spindle 4",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Differentiation Spindle 3": {
+ // "name": "OPC_Set Point.Differentiation Spindle 3",
+ // "description": "Differentiation Spindle 3",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Differentiation Spindle 3",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Differentiation Spindle 2": {
+ // "name": "OPC_Set Point.Differentiation Spindle 2",
+ // "description": "Differentiation Spindle 2",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Differentiation Spindle 2",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Differentiation Spindle 1": {
+ // "name": "OPC_Set Point.Differentiation Spindle 1",
+ // "description": "Differentiation Spindle 1",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Differentiation Spindle 1",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Cooling Cell 1 Speed": {
+ // "name": "OPC_Set Point.Cooling Cell 1 Speed",
+ // "description": "Cooling Cell 1 Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Cooling Cell 1 Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Burner 6 Temperature": {
+ // "name": "OPC_Set Point.Burner 6 Temperature",
+ // "description": "Burner 6 Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Burner 6 Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Burner 5 Temperature": {
+ // "name": "OPC_Set Point.Burner 5 Temperature",
+ // "description": "Burner 5 Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Burner 5 Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Burner 4 Temperature": {
+ // "name": "OPC_Set Point.Burner 4 Temperature",
+ // "description": "Burner 4 Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Burner 4 Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Burner 3 Temperature": {
+ // "name": "OPC_Set Point.Burner 3 Temperature",
+ // "description": "Burner 3 Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Burner 3 Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Burner 2 Temperature": {
+ // "name": "OPC_Set Point.Burner 2 Temperature",
+ // "description": "Burner 2 Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Burner 2 Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Burner 1 Temperature": {
+ // "name": "OPC_Set Point.Burner 1 Temperature",
+ // "description": "Burner 1 Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Burner 1 Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Air Humidity Preset Esa 1": {
+ // "name": "OPC_Set Point.Air Humidity Preset Esa 1",
+ // "description": "Air Humidity Preset Esa 1",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Air Humidity Preset Esa 1",
+ // "index": 0,
+ // "size": 0
+ //}
+ },
+ "mMapRead": {
+ "TEMP_01": {
+ "name": "TEMP_01",
+ "description": "Temperatura 01",
+ "tipoMem": "Real",
+ "minVal": 18,
+ "maxVal": 24,
+ "displOrdinal": 4
+ },
+ "POWER_01": {
+ "name": "POWER_01",
+ "description": "Potenza impianto",
+ "tipoMem": "Int",
+ "minVal": 40,
+ "maxVal": 80,
+ "displOrdinal": 5
+ },
+ "FEED_OVER": {
+ "name": "FEED_OVER",
+ "description": "FEED override",
+ "tipoMem": "Int",
+ "minVal": 0,
+ "maxVal": 100,
+ "displOrdinal": 6
+ },
+ "RAPID_OVER": {
+ "name": "RAPID_OVER",
+ "description": "RAPID override",
+ "tipoMem": "Int",
+ "minVal": 50,
+ "maxVal": 120,
+ "displOrdinal": 7
+ },
+ "POS_X": {
+ "name": "POS_X",
+ "description": "Asse X",
+ "tipoMem": "Int",
+ "minVal": -2000,
+ "maxVal": 2000,
+ "displOrdinal": 8
+ },
+ "POS_Y": {
+ "name": "POS_Y",
+ "description": "Asse Y",
+ "tipoMem": "Int",
+ "minVal": 0,
+ "maxVal": 2000,
+ "displOrdinal": 9
+ },
+ "POS_Z": {
+ "name": "POS_Z",
+ "description": "Asse Z",
+ "tipoMem": "Int",
+ "minVal": 0,
+ "maxVal": 1500,
+ "displOrdinal": 10
+ }
+ },
+ "optKVP": {
+ "fluxLogReduce": true,
+ "fluxLogRedDeadBand": 1.5,
+ "fluxLogResendPeriod": 15,
+ "hasRecipe": true,
+ "maxPodlQty": 530,
+ "useLocalRecipe": true,
+ "path-locBase": "C:\\MesData\\",
+ "path-00-Arch": "ArchivioRicette\\FIMAT",
+ "path-01-Temp": "01-Temp\\FIMAT",
+ "path-02-Sent": "02-Inviate\\FIMAT",
+ "path-03-Recv": "03-Ricevute\\FIMAT",
+ "path-04-remReq": "Y:\\",
+ "path-05-remExe": "C:\\MesData\\Remote\\Dosed",
+ "path-06-remRec": "R:\\",
+ "path-outReport": "C:\\MesData\\Report",
+ "path-confSetup": "C:\\MesData\\Setup\\setupConsumi.json",
+ "replace-": "{{PODL}}",
+ "replace-": "Kg{{Qty}} | {{Note}}"
+ }, //,
+ //"BaseKeyTranslate": "ns=2;s=RamosaETN21.RamosaCJ2",
+ //"RecipeKeyTranslate": {
+ // "Present Value.General Fan": "Recipe.Chain Spped",
+ // "Present Value.Bottom Overfeeding": "Recipe.Bottom Overfeeding",
+ // "Present Value.Top Overfeeding": "Recipe.Top Overfeeding"
+ //}
+ "mMapWriteLink": {
+ "setArt": "setArtNum",
+ "setComm": "setCommNum"
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/CONF/SIMUL_01_WD.ini b/IOB-WIN-MTC/DATA/CONF/SIMUL_01_WD.ini
new file mode 100644
index 00000000..56bca173
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/SIMUL_01_WD.ini
@@ -0,0 +1,51 @@
+;Configurazione IOB-WIN
+[IOB]
+CNCTYPE=PingWatchdog
+PING_MS_TIMEOUT=500
+; attenzione che alcuni eventi vengo scritti cmq nel log di SIMUL_01 invece di SIMUL_01_WD
+IOB_NAME=SIMUL_01
+
+[MACHINE]
+VENDOR=STEAMWARE
+MODEL=WATCHDOG
+
+[CNC]
+; ping vs WIN10-VPN-03 per test
+IP=10.74.83.203
+PORT=0000
+
+[SERVER]
+MPIP=http://10.74.82.218
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+CMD_ODL_STARTED=/IOB/getCurrOdlStart/
+CMD_FORCLE_SPLIT_ODL=/IOB/forceSplitOdlFull/
+CMD_IDLE_TIME=/IOB/getIdlePeriod/
+
+[MEMORY]
+
+[BLINK]
+MAX_COUNTER_BLINK = 15
+BLINK_FILT=0
+
+[OPTPAR]
+AUTO_CHANGE_ODL=false
+POWEROFF_TIMEOUT_SEC=60
+ENABLE_SEND_PZC_BLOCK=TRUE
+MIN_SEND_PZC_BLOCK=0
+MAX_SEND_PZC_BLOCK=100
+
+[BRANCH]
+NAME=master
+
+; Tags manuali
+[TAGS]
+Customer=Steamware
+HostOS=WIN
+HostName=IOB-WIN-SIMULA
+HostAddr=10.74.82.76
diff --git a/IOB-WIN-MTC/DATA/CONF/SIMUL_01_alarm.json b/IOB-WIN-MTC/DATA/CONF/SIMUL_01_alarm.json
new file mode 100644
index 00000000..4f6ed310
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/SIMUL_01_alarm.json
@@ -0,0 +1,859 @@
+[
+ {
+ "description": "Alarm Word 0 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 0",
+ "index": 0,
+ "size": 2,
+ "messages": [
+ "1,ALLARME INVERTER CATENA TRASP. TESSUTO",
+ "2,ALLARME INVERTER CILINDRO SOVRALIMENTAZIONE SUPERIORE",
+ "3,ALLARME INVERTER CILINDRO SOVRALIMENTAZIONE INFERIORE",
+ "4,ALLARME INVERTER RUOTA SOVRALIMENTAZIONE SINISTRA",
+ "5,ALLARME INVERTER RUOTA SOVRALIMENTAZIONE DESTRA",
+ "6,ALLARME INVERTER STACCAPEZZA",
+ "7,ALLARME INVERTER FALDAROTOLATORE",
+ "8,ALLARME INVERTER FALDERUOLE",
+ "9,ALLARME INVERTER ESAUSTORE 1 ",
+ "10,ALLARME FUNE SICUREZZA USCITA",
+ "11,ALLARME VENTILATORE 1 (BASSO)",
+ "12, ALLARME VENTILATORE 2 (BASSO)",
+ "13,ALLARME F.C. MINIMO CAMPO MASTER",
+ "14,ALLARME F.C. MASSIMO CAMPO MASTER",
+ "15,ALLARME PROTEZIONE TAPPETO INGRESSO",
+ "16,RIFERIMENTO POTENZIOMETRI CAMPI ASSENTE"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 1 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 1",
+ "index": 1,
+ "size": 2,
+ "messages": [
+ "17,ALLARME CONDIZIONATORI",
+ "18,EMERGENZA IN CORSO !!!",
+ "19,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 2 POMPA 1",
+ "20,ALLARME POMPA RECUPERO CALORE 3",
+ "21,CONTROLLO UMIDITA' : FUORI CAMPO",
+ "22,ALLARME RILEVATORE ALTEZZA TESSUTO",
+ "23,ALLARME NON RILASCIO TESSUTO SINISTRO",
+ "24,ALLARME NON RILASCIO TESSUTO DESTRO",
+ "25,ALLARME ALIMENTAZIONE 24VAC QUADRO",
+ "26,ALLARME APRICIMOSSE",
+ "27,ALLARME ASCIUGACIMOSSE A INFRAROSSI",
+ "28,ALLARME PROTEZIONE CELLA DI RAFFREDDAMENTO 1",
+ "29,CAMPO PARALLELO 2 ALLARME PROTEZIONE",
+ "30,ALLARME VENTILATORE 3 (BASSO)",
+ "31,ALLARME VENTILATORE 4 (BASSO)",
+ "32,CAMPO PARALLELO 1 ALLARME PROTEZIONE"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 2 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 2",
+ "index": 2,
+ "size": 2,
+ "messages": [
+ "33,CAMPO PARALLELO 3 ALLARME PROTEZIONE",
+ "34,RAGGIUNTO MASSIMO CARICO CELLA DI CARICO TAPPETO",
+ "35,ALLARME FALLOPEZZA SINISTRO",
+ "36,ALLARME FALLOPEZZA DESTRO",
+ "37,PARATIE ANTERIORI APERTE",
+ "38,ALLARME AZIONAMENTO CAMPO CONICO",
+ "39,BLOCCO BRUCIATORE 9",
+ "40,CAMPO MASTER ALLARME PROTEZIONE ",
+ "41,ALLARME PRESSOSTATO TENDICATENA SINISTRO",
+ "42,ALLARME PRESSOSTATO TENDICATENA DESTRO",
+ "43,ALLARME MASSIMO ALLUNGAMENTO CATENA",
+ "44,ALLARME TIPO LAVORO USCITA NON SELEZIONATO",
+ "45,ALLARME RADDRIZZATRAMA",
+ "46,ALLARME SPREMITORE 1",
+ "47,BLOCCO BRUCIATORE 10",
+ "48,BLOCCO BRUCIATORE 11"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 3 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 3",
+ "index": 3,
+ "size": 2,
+ "messages": [
+ "49,BLOCCO BRUCIATORE 12",
+ "50,BLOCCO BRUCIATORE 1",
+ "51,BLOCCO BRUCIATORE 2",
+ "52,BLOCCO BRUCIATORE 3",
+ "53,BLOCCO BRUCIATORE 4",
+ "54,BIELLE FUORI POSIZIONE",
+ "55,GRUPPO FALDATORE FUORI POSIZIONE",
+ "56,SERIE ARRESTI APERTA",
+ "57,MANCANZA LUBRIFICANTE CATENA TRASP. TESSUTO",
+ "58,ALLARME INVERTER PICCOLO ROTOLO",
+ "59,ALLARME PROTEZIONE ALLARGATORI",
+ "60,ALLARME PROTEZIONE ASPIRACIMOSSE",
+ "61,ALLARME TAGLIACIMOSSE SINISTRA",
+ "62,ALLARME TAGLIACIMOSSE DESTRA",
+ "63,ALLARME INVERTER VENTILATORI INV101",
+ "64,ALLARME INVERTER VENTILATORI INV103"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 4 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 4",
+ "index": 4,
+ "size": 2,
+ "messages": [
+ "65,ALLARME TIMEOUT VITE CAMPO MASTER",
+ "66,ALLARME TIMEOUT VITE CAMPO PARALLELO 1",
+ "67,ALLARME TIMEOUT VITE CAMPO PARALLELO 2",
+ "68,ALLARME TIMEOUT VITE CAMPO PARALLELO 3",
+ "69,ALLARME TIMEOUT VITE CAMPO PARALLELO 4",
+ "70,ALLARME TIMEOUT VITE CAMPO PARALLELO 5",
+ "71,ALLARME TIMEOUT VITE CAMPO PARALLELO 6",
+ "72,ALLARME TIMEOUT VITE CAMPO PARALLELO 7",
+ "73,ALLARME TIMEOUT VITE CAMPO PARALLELO 8",
+ "74,ALLARME TIMEOUT VITE CAMPO PARALLELO 9",
+ "75,ALLARME DEVICE_NET ADDR. 32 DA BANCHETTO DI SPALMATURA",
+ "76,ALLARME INVERTER DOGAL ",
+ "77,ALLARME FOTOCELLULA TAPPETO USCITA PIENO",
+ "78,TEMPO DI CICLO PLC SOPRA MASSIMO IMPOSTATO",
+ "79,ERRORE INDIRIZZI SONDE BRUCIATORI",
+ "80,ALLARME VENTILATORE 4 (ALTO)"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 5 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 5",
+ "index": 5,
+ "size": 2,
+ "messages": [
+ "81,ALLARME VENTILATORE 5 (ALTO)",
+ "82,ALLARME VENTILATORE 6 (ALTO)",
+ "83,ALLARME VENTILATORE 7 (ALTO)",
+ "84,SONDA BRUCIATORE 1 INTERROTTA",
+ "85,SONDA BRUCIATORE 2 INTERROTTA",
+ "86,SONDA BRUCIATORE 3 INTERROTTA",
+ "87,SONDA BRUCIATORE 4 INTERROTTA",
+ "88,ALLARME DEVICE_NET ADDR. 0",
+ "89,ALLARME DEVICE_NET ADDR. 1",
+ "90,ALLARME DEVICE_NET ADDR. 2",
+ "91,ALLARME DEVICE_NET ADDR. 3",
+ "92,ALLARME DEVICE_NET ADDR. 4",
+ "93,ALLARME DEVICE_NET ADDR. 5",
+ "94,ALLARME DEVICE_NET ADDR. 6",
+ "95,ALLARME DEVICE_NET ADDR. 7",
+ "96,ALLARME DEVICE_NET ADDR. 8"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 6 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 6",
+ "index": 6,
+ "size": 2,
+ "messages": [
+ "97,ALLARME DEVICE_NET ADDR. 9",
+ "98,ALLARME DEVICE_NET ADDR. 10",
+ "99,ALLARME DEVICE_NET ADDR. 11",
+ "100,ALLARME DEVICE_NET ADDR. 12",
+ "101,ALLARME DEVICE_NET ADDR. 13",
+ "102,ALLARME DEVICE_NET ADDR. 14",
+ "103,ALLARME DEVICE_NET ADDR. 15",
+ "104,ALLARME DEVICE_NET ADDR. 16",
+ "105,ALLARME DEVICE_NET ADDR. 17",
+ "106,ALLARME DEVICE_NET ADDR. 18",
+ "107,ALLARME DEVICE_NET ADDR. 19",
+ "108,ALLARME DEVICE_NET ADDR. 20",
+ "109,ALLARME DEVICE_NET ADDR. 21",
+ "110,ALLARME DEVICE_NET ADDR. 22",
+ "111,ALLARME DEVICE_NET ADDR. 23",
+ "112,ALLARME DEVICE_NET ADDR. 24"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 7 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 7",
+ "index": 7,
+ "size": 2,
+ "messages": [
+ "113,ALLARME DEVICE_NET ADDR. 25",
+ "114,ALLARME DEVICE_NET ADDR. 26",
+ "115,BLOCCO BRUCIATORE 5",
+ "116,BLOCCO BRUCIATORE 6",
+ "117,BLOCCO BRUCIATORE 7",
+ "118,BLOCCO BRUCIATORE 8",
+ "119,SOVRATEMPERATURA BRUCIATORE 1",
+ "120,SOVRATEMPERATURA BRUCIATORE 2",
+ "121,SOVRATEMPERATURA BRUCIATORE 3",
+ "122,SOVRATEMPERATURA BRUCIATORE 4",
+ "123,SOVRATEMPERATURA BRUCIATORE 5",
+ "124,SOVRATEMPERATURA BRUCIATORE 6",
+ "125,SOVRATEMPERATURA BRUCIATORE 7",
+ "126,SOVRATEMPERATURA BRUCIATORE 8",
+ "127,SONDA BRUCIATORE 5 INTERROTTA",
+ "128,SONDA BRUCIATORE 6 INTERROTTA"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 8 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 8",
+ "index": 8,
+ "size": 2,
+ "messages": [
+ "129,SONDA BRUCIATORE 7 INTERROTTA",
+ "130,SONDA BRUCIATORE 8 INTERROTTA",
+ "131,SONDA BRUCIATORE 9 INTERROTTA",
+ "132,SONDA BRUCIATORE 10 INTERROTTA",
+ "133,SONDA BRUCIATORE 11 INTERROTTA",
+ "134,SONDA BRUCIATORE 12 INTERROTTA",
+ "135,SOVRATEMPERATURA BRUCIATORE 9",
+ "136,SOVRATEMPERATURA BRUCIATORE 10",
+ "137,SOVRATEMPERATURA BRUCIATORE 11",
+ "138,SOVRATEMPERATURA BRUCIATORE 12",
+ "139,ALLARME INVERTER VENTILATORI INV105",
+ "140,ALLARME INVERTER VENTILATORI INV107",
+ "141,ALLARME INVERTER VENTILATORI INV109",
+ "142,ALLARME INVERTER VENTILATORI INV111",
+ "143,ALLARME VENTILATORE 5 (BASSO)",
+ "144,ALLARME VENTILATORE 6 (BASSO)"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 9 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 9",
+ "index": 9,
+ "size": 2,
+ "messages": [
+ "145,ALLARME VENTILATORE 7 (BASSO)",
+ "146,ALLARME VENTILATORE 8 (BASSO)",
+ "147,ALLARME VENTILATORE 9 (BASSO)",
+ "148,ALLARME VENTILATORE 10 (BASSO)",
+ "149,ALLARME VENTILATORE 11 (BASSO)",
+ "150,ALLARME VENTILATORE 12 (BASSO)",
+ "151,ALLARME INVERTER ESAUSTORE 2",
+ "152,CAMPO PARALLELO 4 ALLARME PROTEZIONE",
+ "153,CAMPO PARALLELO 5 ALLARME PROTEZIONE",
+ "154,CAMPO PARALLELO 6 ALLARME PROTEZIONE",
+ "155,CAMPO PARALLELO 7 ALLARME PROTEZIONE",
+ "156,CAMPO PARALLELO 8 ALLARME PROTEZIONE",
+ "157,ALLARME INSEGUIMENTO VITE MASTER AGGIUNTA",
+ "158,ALLARME INVERTER CILINDRO RAFFREDDAMENTO",
+ "159,ALLARME TEMPERATURA ESAUSTORI",
+ "160,ALLARME INVERTER RECUPERO CALORE GRUPPO 1 "
+ ]
+ },
+
+ {
+ "description": "Alarm Word 10 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 10",
+ "index": 10,
+ "size": 2,
+ "messages": [
+ "161,ALLARME FINECORSA SX TAPPETO USCITA",
+ "162,ALLARME FINECORSA DX TAPPETO USCITA",
+ "163,ALLARME INVERTER RECUPERO CALORE GRUPPO 2",
+ "164,ALLARME DEVICE_NET ADDR. 31",
+ "165,ALLARME CENTRATORE USCITA",
+ "166,COMPATTATORE NON PRONTO",
+ "167,ALLARME CONTROLLO PIROMETRI",
+ "168,ALLARME ALLARGATORE SU TAPPETO USCITA",
+ "169,ALLARME CONTROLLO FUMI",
+ "170,ALLARME FINECORSA BALLERINO ALTO",
+ "171,ALLARME FINECORSA BALLERINO BASSO",
+ "172,ALLARME PROTEZIONE ASPIRATORE VAPORIZZO INTENSIVO",
+ "173,ALLARME PROTEZIONE BRUCIATORE 1",
+ "174,ALLARME PROTEZIONE BRUCIATORE 2",
+ "175,ALLARME PROTEZIONE BRUCIATORE 3",
+ "176,ALLARME PROTEZIONE BRUCIATORE 4"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 11 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 11",
+ "index": 11,
+ "size": 2,
+ "messages": [
+ "177,ALLARME PROTEZIONE BRUCIATORE 5",
+ "178,ALLARME PROTEZIONE BRUCIATORE 6",
+ "179,ALLARME PROTEZIONE BRUCIATORE 7",
+ "180,ALLARME PROTEZIONE BRUCIATORE 8",
+ "181,ALLARME PROTEZIONE BRUCIATORE 9",
+ "182,ALLARME PROTEZIONE BRUCIATORE 10",
+ "183,ALLARME PROTEZIONE BRUCIATORE 11",
+ "184,ALLARME PROTEZIONE BRUCIATORE 12",
+ "185,TERMOFISSAGGIO O ESSICCAZIONE: TEMPERATURA FUORI CAMPO",
+ "186,TERMOFISSAGGIO O ESSICCAZIONE: VELOCITA' FUORI CAMPO",
+ "187,TERMOFISSAGGIO O ESSICCAZIONE: TEMPO FUORI CAMPO",
+ "188,SISTEMA CAMPI PARALLELI NON TARATO",
+ "189,ALLARME PROTEZIONE VENTOLE BRUCIATORI",
+ "190,CAMPO CONICO SINISTRO SU LIMITE CHIUSURA",
+ "191,CAMPO CONICO SINISTRO SU LIMITE APERTURA",
+ "192,CAMPO CONICO DESTRO SU LIMITE APERTURA"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 12 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 12",
+ "index": 12,
+ "size": 2,
+ "messages": [
+ "193,CAMPO CONICO DESTRO SU LIMITE CHIUSURA",
+ "194,FINECORSA CAMPO CONICO DESTRO SU TRAVERSA",
+ "195,FINECORSA CAMPO CONICO SINISTRO SU TRAVERSA",
+ "196,ALLARME PROTEZIONE INVERTER CAMPO CONICO SINISTRO",
+ "197,ALLARME PROTEZIONE INVERTER CAMPO CONICO DESTRO",
+ "198,ALLARME DEVICE_NET ADDR. 27",
+ "199,ALLARME VENTILATORE 8 (ALTO)",
+ "200,ALLARME VENTILATORE 9 (ALTO)",
+ "201,ALLARME VENTILATORE 10 (ALTO)",
+ "202,ALLARME VENTILATORE 11 (ALTO)",
+ "203,ALLARME VENTILATORE 12 (ALTO)",
+ "204,ALLARME VENTILATORE 1 (ALTO)",
+ "205,ALLARME VENTILATORE 2 (ALTO)",
+ "206,ALLARME VENTILATORE 3 (ALTO)",
+ "207,ALLARME PROTEZIONE CELLA DI RAFFREDDAMENTO 2",
+ "208,ALLARME FINECORSA TANDEM CONTROLLO ANSA TESSUTO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 13 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 13",
+ "index": 13,
+ "size": 2,
+ "messages": [
+ "209,ALLARME FUNE SICUREZZA / PROTEZIONE RIBALTABILE ANTERIORE",
+ "210,ALLARME INVERTER VENTILATORI INV101A",
+ "211,ALLARME INVERTER VENTILATORI INV103A",
+ "212,ALLARME INVERTER VENTILATORI INV105A",
+ "213,ALLARME INVERTER VENTILATORI INV107A",
+ "214,ALLARME INVERTER VENTILATORI INV109A",
+ "215,ALLARME INVERTER VENTILATORI INV111A",
+ "216,ALLARME DA BANCHETTO DI SPALMATURA",
+ "217,ALLARME DEVICE_NET ADDR. 28",
+ "218,STOP JOG USCITA PER PESO RAGGIUNTO SU CELLA DI CARICO",
+ "219,DOGAL NON PRONTO",
+ "220,ALLARME PROTEZIONE CELLA RAFFREDDAMENTO 91A",
+ "221,MALFUNZIONAMENTO RECUPERO CALORE GRUPPO 1",
+ "222,ALLARME PROTEZIONE SOSTEGNO TESSUTO",
+ "223,TARATURA CAMPI CONICI NON EFFETTUATA!",
+ "224,ALLARME TIMEOUT VITE CAMPO PARALLELO 10"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 14 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 14",
+ "index": 14,
+ "size": 2,
+ "messages": [
+ "225,CAMPO PARALLELO 9 ALLARME PROTEZIONE",
+ "226,CAMPO PARALLELO 10 ALLARME PROTEZIONE",
+ "227,CAMPO PARALLELO 11 ALLARME PROTEZIONE",
+ "228,CAMPO PARALLELO 12 ALLARME PROTEZIONE",
+ "229,ALLARME FLUSSOSTATO RECUPERO CALORE 1",
+ "230,ALLARME FLUSSOSTATO RECUPERO CALORE 2",
+ "231,ALLARME FLUSSOSTATO RECUPERO CALORE 3",
+ "232,ALLARME PROTEZIONE VENTILATORE ASCIUGACIMOSSE",
+ "233,ALLARME PROTEZIONE RESISTENZE ASCIUGACIMOSSE",
+ "234,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 1 POMPA 1 ",
+ "235,ALLARME INCENDIO",
+ "236,ATTENZIONE ! ALLARME PRESENTE SU BANCHETTO DI SPALMATURA",
+ "237,MALFUNZIONAMENTO RECUPERO CALORE GRUPPO 2",
+ "238,ALLARME PROTEZIONE CELLA RAFFREDDAMENTO 91B",
+ "239,ALLARME PROTEZIONE PULISCISPILLI",
+ "240,BATTERIA PLC - LIVELLO BASSO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 15 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 15",
+ "index": 15,
+ "size": 2,
+ "messages": [
+ "241,ALLARME CONTEMPORANEIT? TERMOSTATI SICUREZZA BRUCIATORI",
+ "242,BLOCCO VERSIONE SOFTWARE",
+ "243,SROTOLATORE NON PRONTO",
+ "244,ERRORE DI COMUNICAZIONE PROTOCOL MACRO",
+ "245,ALLARME TAGLIERINA URBAN",
+ "246,FINE TESSUTO IN INGRESSO",
+ "247,ALLARME PROTEZIONE SERVOVENTILAZIONI MOTORI",
+ "248,ALLARME INVERTER ARROTOLATORE TANGENZIALE",
+ "249,ALLARME SPREMITORE 2",
+ "250,ALLARME FS-91ER PLEVA",
+ "251,ALLARME LINEA EMERGENZA ARROTOLATORE",
+ "252,ALLARME FOTOCELLULE ARROTOLATORE",
+ "253,PORTA CASSETTA USCITA RAMOSA APERTA",
+ "254,ALLARME FINECORSA CILINDRO PROTEZIONE ARROTOLATORE ASSIALE",
+ "255,ALLARME PRESSOSTATI GRUPPO VALVOLE USCITA",
+ "256,ARROTOLATORE NON PRONTO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 16 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 16",
+ "index": 16,
+ "size": 2,
+ "messages": [
+ "257,FINECORSA GRUPPO FALDATORE AVANTI",
+ "258,FINECORSA GRUPPO FALDATORE INDIETRO",
+ "259,ALLARME BATTERIA ELETTRICA 1",
+ "260,SOVRATEMPERATURA BATTERIA ELETTRICA 5",
+ "261,ALLARME BATTERIA ELETTRICA 2",
+ "262,RISCALDAMENTO QUADRO SPENTO",
+ "263,SOVRATEMPERATURA BATTERIA ELETTRICA 1",
+ "264,SOVRATEMPERATURA BATTERIA ELETTRICA 2",
+ "265,ALLARME BATTERIA ELETTRICA 3",
+ "266,EMERGENZA DA SPALMATRICE",
+ "267,ALLARME BATTERIA ELETTRICA 4",
+ "268,ALLARME BATTERIA ELETTRICA 5",
+ "269,SOVRATEMPERATURA BATTERIA ELETTRICA 3",
+ "270,SOVRATEMPERATURA BATTERIA ELETTRICA 4",
+ "271,ALLARME IDROSTATO RECUPERO CALORE 1",
+ "272,ALLARME SENSORE LIVELLO RECUPERO CALORE 1 : AGGIUNGERE LIQUIDO !"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 17 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 17",
+ "index": 17,
+ "size": 2,
+ "messages": [
+ "273,ALLARME RELE' CONTROLLO FASI",
+ "274,ALLARME DEVICE NET ADDR. 40 - MODULO GRT1-DRT USCITA RAMOSA",
+ "275,ALLARME PRESSOSTATO LINEA ENTRATA MACCHINA",
+ "276,ALLARME PRESSOSTATO LINEA USCITA MACCHINA",
+ "277,CAMPO CANNOCCHIALI 1 BLOCCATO",
+ "278,CAMPO CANNOCCHIALI 2 BLOCCATO",
+ "279,ALLARME DISCONTINUITA' CAMPI PARALLELI",
+ "280,ALLARME INSEGUIMENTO CAMPI PARALLELI - VITE LENTA",
+ "281,ALLARME LIMITE VITI",
+ "282,RAGGIUNTO MASSIMO CARICO SU CELLA DI CARICO",
+ "283,ALLARME PRESSOSTATO ESAUSTORE",
+ "284,EMERGENZA MOVIMENTO TESSUTO",
+ "285,EMERGENZA DA SPREMITORE 1",
+ "286,EMERGENZA DA RADDRIZZATRAMA",
+ "287,EMERGENZA DA SROTOLATORE",
+ "288,EMERGENZA DA ARROTOLATORE"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 18 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 18",
+ "index": 18,
+ "size": 2,
+ "messages": [
+ "289,ALLARME SICUREZZA BRUCIATORE 1",
+ "290,ALLARME SICUREZZA BRUCIATORE 2",
+ "291,ALLARME SICUREZZA BRUCIATORE 3",
+ "292,ALLARME SICUREZZA BRUCIATORE 4",
+ "293,ALLARME SICUREZZA BRUCIATORE 5",
+ "294,ALLARME SICUREZZA BRUCIATORE 6",
+ "295,ALLARME SICUREZZA BRUCIATORE 7",
+ "296,ALLARME SICUREZZA BRUCIATORE 8",
+ "297,ALLARME SICUREZZA BRUCIATORE 9",
+ "298,ALLARME SICUREZZA BRUCIATORE 10",
+ "299,ALLARME SICUREZZA BRUCIATORE 11",
+ "300,ALLARME SICUREZZA BRUCIATORE 12",
+ "301,ALLARME BRUCIATORE 1 SPENTO",
+ "302,ALLARME BRUCIATORE 2 SPENTO",
+ "303,ALLARME BRUCIATORE 3 SPENTO",
+ "304,ALLARME BRUCIATORE 4 SPENTO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 19 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 19",
+ "index": 19,
+ "size": 2,
+ "messages": [
+ "305,ALLARME BRUCIATORE 5 SPENTO",
+ "306,ALLARME BRUCIATORE 6 SPENTO",
+ "307,ALLARME BRUCIATORE 7 SPENTO",
+ "308,ALLARME BRUCIATORE 8 SPENTO",
+ "309,ALLARME BRUCIATORE 9 SPENTO",
+ "310,ALLARME BRUCIATORE 10 SPENTO",
+ "311,ALLARME BRUCIATORE 11 SPENTO",
+ "312,ALLARME BRUCIATORE 12 SPENTO",
+ "313,ALLARME SENSORE LIVELLO RECUPERO CALORE 2 : AGGIUNGERE LIQUIDO !",
+ "314,ALLARME DA MIXER",
+ "315,ALLARME PRESSOSTATI LUBRIFICAZIONE",
+ "316,ALLARME ABBATTITORE FUMI",
+ "317,MACCHINA 1 NON IN LINEA",
+ "318,MACCHINA 2 NON IN LINEA",
+ "319,MACCHINA 3 NON IN LINEA",
+ "320,MACCHINA 4 NON IN LINEA"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 20 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 20",
+ "index": 20,
+ "size": 2,
+ "messages": [
+ "321,MACCHINA 5 NON IN LINEA",
+ "322,MACCHINA 6 NON IN LINEA",
+ "323,MACCHINA 7 NON IN LINEA",
+ "324,MACCHINA 8 NON IN LINEA",
+ "325,NON STOP NON PRONTO",
+ "326,EMERGENZA DA NON STOP",
+ "327,ALLARME DISCONTINUITA' CAMPO MASTER",
+ "328,ALLARME DISCONTINUITA' CAMPO PARALLELO 1",
+ "329,ALLARME DISCONTINUITA' CAMPO PARALLELO 2",
+ "330,ALLARME DISCONTINUITA' CAMPO PARALLELO 3",
+ "331,ALLARME DISCONTINUITA' CAMPO PARALLELO 4",
+ "332,ALLARME DISCONTINUITA' CAMPO PARALLELO 5",
+ "333,ALLARME DISCONTINUITA' CAMPO PARALLELO 6",
+ "334,ALLARME DISCONTINUITA' CAMPO PARALLELO 7",
+ "335,ALLARME DISCONTINUITA' CAMPO PARALLELO 8",
+ "336,ALLARME DISCONTINUITA' CAMPO PARALLELO 9"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 21 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 21",
+ "index": 21,
+ "size": 2,
+ "messages": [
+ "337,ALLARME DISCONTINUITA' CAMPO PARALLELO 10",
+ "338,PROTEZIONI INGRESSO APERTE",
+ "339,PROTEZIONI USCITA APERTE",
+ "340,ALLARME PROTEZIONE ESTRATTORE FUMI 1",
+ "341,ALLARME PROTEZIONE ESTRATTORE FUMI 2",
+ "342,MANCANZA PRESSOSTATO ESTRATTORE FUMI 1",
+ "343,MANCANZA PRESSOSTATO ESTRATTORE FUMI 2",
+ "344,EMERGENZA DA MIXER",
+ "345,EMERGENZA DA SPREMITORE 2",
+ "346,ALLARME PROTEZIONE VENTILATORE RECUPERO CALORE 1",
+ "347,ALLARME PROTEZIONE VENTILATORE RECUPERO CALORE 2",
+ "348,ALLARME MODULO VELOCITA? ZERO CATENA TRASP. TESSUTO",
+ "349,ALLARME RILEVAMENTO TESSUTO SINISTRO USCITA",
+ "350,ALLARME RILEVAMENTO TESSUTO DESTRO USCITA",
+ "351,ALLARME FINECORSA SOLLEVAMENTO CAMPI CONICI",
+ "352,ALLARME IDROSTATO RECUPERO CALORE 2"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 22 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 22",
+ "index": 22,
+ "size": 2,
+ "messages": [
+ "353,ALLARME FUNE DI PROTEZIONE IN USCITA",
+ "354,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 1",
+ "355,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 2",
+ "356,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 3",
+ "357,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 4",
+ "358,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 5",
+ "359,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 6",
+ "360,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 7",
+ "361,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 8",
+ "362,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 9",
+ "363,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 10",
+ "364,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 11",
+ "365,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 12",
+ "366,OLIO CATENA - PRESSIONE MINIMA",
+ "367,POMPA OLIO CATENA - ALLARME PROTEZIONE",
+ "368,JBOX INGRESSO - BALLERINO BASSO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 23 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 23",
+ "index": 23,
+ "size": 2,
+ "messages": [
+ "369,JBOX INGRESSO - FINE TESSUTO",
+ "370,JBOX INGRESSO - PIENO",
+ "371,JBOX INGRESSO - BALLERINO ALTO",
+ "372,JBOX INGRESSO - VUOTO",
+ "373,JBOX USCITA - BALLERINO BASSO",
+ "374,JBOX USCITA - FINE TESSUTO",
+ "375,JBOX USCITA - PIENO",
+ "376,JBOX USCITA - BALLERINO ALTO",
+ "377,JBOX USCITA - VUOTO",
+ "378,JBOX USCITA - ALLARME PRESSOSTATO",
+ "379,JBOX ENTRATA - ALLARME PRESSOSTATO",
+ "380,ALLARME PROTEZIONE CARRELLO FALDATORE",
+ "381,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 1",
+ "382,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 2",
+ "383,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 3",
+ "384,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 4"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 24 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 24",
+ "index": 24,
+ "size": 2,
+ "messages": [
+ "385,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 5",
+ "386,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 6",
+ "387,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 7",
+ "388,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 8",
+ "389,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 9",
+ "390,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 10",
+ "391,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 11",
+ "392,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 12",
+ "393,ESTRATTORE FUMI RISC. INDIRETTO 1 - ALLARME PROTEZIONE",
+ "394,ESTRATTORE FUMI RISC. INDIRETTO 2 - ALLARME PROTEZIONE",
+ "395,ESTRATTORE FUMI RISC. INDIRETTO 3 - ALLARME PROTEZIONE",
+ "396,ESTRATTORE FUMI RISC. INDIRETTO 4 - ALLARME PROTEZIONE",
+ "397,ESTRATTORE FUMI RISC. INDIRETTO 5 - ALLARME PROTEZIONE",
+ "398,ESTRATTORE FUMI RISC. INDIRETTO 6 - ALLARME PROTEZIONE",
+ "399,TAGLIERINA SINISTRA - FUORI POSIZIONE",
+ "400,TAGLIERINA DESTRA - FUORI POSIZIONE"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 25 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 25",
+ "index": 25,
+ "size": 2,
+ "messages": [
+ "401,ALLARME PROTEZIONE CILINDRO CONTRASTO TAGLIERINE",
+ "402,JBOX INGRESSO - TESSUTO INCROCIATO",
+ "403,JBOX USCITA - TESSUTO INCROCIATO",
+ "404,ALLARME DEVICE_NET STAZIONE ADDR.38 - JBOX INGRESSO",
+ "405,ALLARME DEVICE_NET STAZIONE ADDR.39 - JBOX USCITA",
+ "406,JBOX INGRESSO - ALLARME INVERTER",
+ "407,JBOX USCITA - ALLARME INVERTER",
+ "408,ALLARGA/CENTRATORE A/B SU IMBARRAGGIO - ALLARME PROTEZIONE",
+ "409,ALLARME TIMEOUT VITE CAMPO PARALLELO 11",
+ "410,ALLARME TIMEOUT VITE CAMPO PARALLELO 12",
+ "411,FRENO JBOX INGRESSO - ALLARME PROTEZIONE",
+ "412,FRENO JBOX USCITA - ALLARME PROTEZIONE",
+ "413,ALLARME PROTEZIONE FRENO CAMPO CONICO SINISTRO",
+ "414,ALLARME PROTEZIONE FRENO CAMPO CONICO DESTRO",
+ "415,VERIFICA PRESSOSTATO 1 FALLITA",
+ "416,VERIFICA PRESSOSTATO 2 FALLITA"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 26 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 26",
+ "index": 26,
+ "size": 2,
+ "messages": [
+ "417,ALLARME TERMOSTATO INTERNO QUADRO",
+ "418,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 1 POMPA 2",
+ "419,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 2 POMPA 2",
+ "420,PROTEZIONE RIBALTABILE INGRESSO",
+ "421,FUNE EMERGENZA INGRESSO",
+ "422,PARATIA SCORREVOLE INGRESSO SINISTRA",
+ "423,PARATIA SCORREVOLE INGRESSO DESTRA",
+ "424,CANCELLO SINISTRO ENTRATA ANTERIORE",
+ "425,CANCELLO SINISTRO ENTRATA POSTERIORE",
+ "426,CANCELLO DESTRO ENTRATA ANTERIORE",
+ "427,CANCELLO DESTRO ENTRATA POSTERIORE",
+ "428,CANCELLO SINISTRO USCITA",
+ "429,CANCELLO DESTRO USCITA",
+ "430,TENSIONATORE FUNE EMERGENZA SINISTRA ZONA FORNO",
+ "431,TENSIONATORE FUNE EMERGENZA DESTRA ZONA FORNO",
+ "432,FUNE EMERGENZA SINISTRA ZONA FORNO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 27 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 27",
+ "index": 27,
+ "size": 2,
+ "messages": [
+ "433,FUNE EMERGENZA DESTRA ZONA FORNO",
+ "434,ALLARME FEEDBACK SCARICO ARIA ENTRATA MACCHINA (1)",
+ "435,ALLARME FEEDBACK SCARICO ARIA ENTRATA MACCHINA (2)",
+ "436,ALLARME FEEDBACK SCARICO ARIA USCITA MACCHINA (1)",
+ "437,ALLARME FEEDBACK SCARICO ARIA USCITA MACCHINA (2)",
+ "438,ALLARME FEEDBACK EMERGENZA GENERALE DA SCARICO ARIA",
+ "439,BYPASS SPORTELLI ARMADIO ATTIVO",
+ "440,TIMEOUT ENCODER CAMPO CONICO SINISTRO",
+ "441,TIMEOUT ENCODER CAMPO CONICO DESTRO",
+ "442,ALLARME BALLERINO ALTO SPREMITORE 1",
+ "443,ALLARME BALLERINO ALTO SPREMITORE 2",
+ "444,",
+ "445,",
+ "446,",
+ "447,",
+ "448,"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 28 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 28",
+ "index": 28,
+ "size": 2,
+ "messages": [
+ "449,",
+ "450,",
+ "451,",
+ "452,",
+ "453,",
+ "454,",
+ "455,",
+ "456,",
+ "457,",
+ "458,",
+ "459,",
+ "460,ALLARME PROTEZIONE BARRE ANTISTATICHE",
+ "461,ALLARME PROTEZIONE VENTILAZIONE INTERNO QUADRO",
+ "462,BORDO SENSIBILE ",
+ "463,FALDAROTOLATORE_SICUREZZA SX/DX ",
+ "464,FALDAROTOLATORE_EMERGENZA TESSUTO "
+ ]
+ },
+
+ {
+ "description": "Alarm Word 29 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 29",
+ "index": 29,
+ "size": 2,
+ "messages": [
+ "465,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.1",
+ "466,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.2",
+ "467,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.3",
+ "468,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.4",
+ "469,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.5",
+ "470,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.6",
+ "471,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.7",
+ "472,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.8",
+ "473,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.9",
+ "474,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.10",
+ "475,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.11",
+ "476,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.12",
+ "477,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 1/2",
+ "478,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 3/4",
+ "479,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 5/6",
+ "480,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 7/8"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 30 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 30",
+ "index": 30,
+ "size": 2,
+ "messages": [
+ "481,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 9/10",
+ "482,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 1",
+ "483,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 2",
+ "484,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 3",
+ "485,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 4",
+ "486,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 5",
+ "487,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 6",
+ "488,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 7",
+ "489,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 8",
+ "490,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 9",
+ "491,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 10",
+ "492,TRASDUTTORE PRESSIONE BR 1 INTERROTTO",
+ "493,TRASDUTTORE PRESSIONE BR 2 INTERROTTO",
+ "494,TRASDUTTORE PRESSIONE BR 3 INTERROTTO",
+ "495,TRASDUTTORE PRESSIONE BR 4 INTERROTTO",
+ "496,TRASDUTTORE PRESSIONE BR 5 INTERROTTO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 31 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 31",
+ "index": 31,
+ "size": 2,
+ "messages": [
+ "497,TRASDUTTORE PRESSIONE BR 6 INTERROTTO",
+ "498,TRASDUTTORE PRESSIONE BR 7 INTERROTTO",
+ "499,TRASDUTTORE PRESSIONE BR 8 INTERROTTO",
+ "500,TRASDUTTORE PRESSIONE BR 9 INTERROTTO",
+ "501,TRASDUTTORE PRESSIONE BR 10 INTERROTTO",
+ "502,TRASDUTTORE PRESSIONE BR 11 INTERROTTO",
+ "503,TRASDUTTORE PRESSIONE BR 12 INTERROTTO",
+ "504,ERRORE TRASDUTTORE DI PRESSIONE RC1",
+ "505,ERRORE TRASDUTTORE DI PRESSIONE RC2",
+ "506,ALLARME INVERTER RIPRISTINO PRESSIONE GRUPPO 1 RC",
+ "507,ALLARME INVERTER RIPRISTINO PRESSIONE GRUPPO 2 RC",
+ "508,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 11",
+ "509,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 12",
+ "510,ALLARME PRESSOSTATO TAGLIERINE",
+ "511,BALLERINO ALTO - SROTOLATORE - ALLARME",
+ "512,EMERGENZA DA LINEA ENTRATA RAMOSA"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 32 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 32",
+ "index": 32,
+ "size": 2,
+ "messages": [
+ "513,LINEA ENTRATA RAMOSA NON PRONTA",
+ "514,EMERGENZA DA LINEA USCITA RAMOSA",
+ "515,LINEA USCITA RAMOSA NON PRONTA",
+ "516,TAGLIERINA CENTRALE FUORI POSIZIONE",
+ "517,TIRACIMOSSE NON PRONTO",
+ "518,JBOX INGRESSO IN EMERGENZA",
+ "519,JBOX INGRESSO NON PRONTO",
+ "520,JBOX USCITA IN EMERGENZA",
+ "521,JBOX USCITA NON PRONTO",
+ "522,ALLARME D-NET 41 RISCALDAMENTO INDIRETTO",
+ "523,SPAZZOLATRICE IN EMERGENZA",
+ "524,SPAZZOLATRICE NON PRONTA",
+ "525,ALLARME FUNE DI SICUREZZA USCITA STACCAPEZZA",
+ "526,ALLARME FUNE DI SICUREZZA USCITA FALDAROTOLATORE",
+ "527,ALLARME FUNE DI SICUREZZA CAMPO CONICO SINISTRO",
+ "528,ALLARME FUNE DI SICUREZZA CAMPO CONICO DESTRO"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/CONF/TEST.ini b/IOB-WIN-MTC/DATA/CONF/TEST.ini
new file mode 100644
index 00000000..32d25351
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/TEST.ini
@@ -0,0 +1,65 @@
+;Configurazione IOB-WIN
+[IOB]
+;Macchina miscelazione Ossidi di Ferro Interclays
+CNCTYPE=MTConnect
+PING_MS_TIMEOUT=500
+
+[MACHINE]
+VENDOR=CMS
+MODEL=WaterJet
+
+[CNC]
+;IP=192.168.139.100
+IP=127.0.0.1
+PORT=5000
+
+[SERVER]
+;MPIP=http://192.168.0.110
+MPIP=http://10.74.82.218
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+
+[MEMORY]
+ADDR_READ=DB9999.DBB0
+ADDR_WRITE=DB9999.DBB0
+SIZE_READ=0
+SIZE_WRITE=0
+;BIT0=CONN
+;BIT1=DB60.DBB1
+;BIT2=PZCOUNT.STD.DB700.DBW22
+;BIT3=DB60.DBB3
+;BIT4=DB60.DBB4
+
+
+[BLINK]
+;MAX_COUNTER_BLINK = 30
+MAX_COUNTER_BLINK = 15
+;bit0 = 0
+;bit1 = 0
+;bit2 = 1
+;bit3 = 1
+;bit4 = 1
+;bit5 = 0
+;bit6 = 0
+;bit7 = 0
+BLINK_FILT=0
+;BLINK_FILT=28
+
+[OPTPAR]
+;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
+; attenzione memoria sempre base BYTE (1604 DW --> 6416...)
+PZCOUNT_MODE=STD.DM20.2
+DISABLE_PZCOUNT=TRUE
+ENABLE_DYN_DATA=FALSE
+FORCE_DYN_DATA=TRUE
+
+; conf parametri memoria READ/WRITE
+PARAM_CONF=TEST.json
+
+[BRANCH]
+NAME=master
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/CONF/TEST.json b/IOB-WIN-MTC/DATA/CONF/TEST.json
new file mode 100644
index 00000000..0a2aad1a
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/CONF/TEST.json
@@ -0,0 +1,60 @@
+{
+ "mMapWrite": {
+ "kgRich": {
+ "name": "kgRich",
+ "description": "Pesatura Richiesta",
+ "memAddr": "D26",
+ "tipoMem": "Int",
+ "index": 26,
+ "size": 2,
+ "value": "0"
+ },
+ "kgLotto": {
+ "name": "kgLotto",
+ "description": "Tot Lotto (kg)",
+ "memAddr": "D52",
+ "tipoMem": "Int",
+ "index": 52,
+ "size": 2,
+ "value": "0"
+ },
+ "portata": {
+ "name": "portata",
+ "description": "Portata Ton/h",
+ "memAddr": "D50",
+ "tipoMem": "Int",
+ "index": 50,
+ "size": 1
+ },
+ "setComm": {
+ "name": "setComm",
+ "description": "Commessa",
+ "memAddr": "W0",
+ "tipoMem": "String",
+ "index": 0,
+ "size": 10
+ }
+ },
+ "mMapRead": {
+ "kgAct": {
+ "name": "kgAct",
+ "description": "Pesatura Rilevata",
+ "memAddr": "D20",
+ "tipoMem": "Int",
+ "index": 20,
+ "size": 2,
+ "period": 60,
+ "value": "0"
+ },
+ "kgImp": {
+ "name": "kgImp",
+ "description": "Pesatura Impostata",
+ "memAddr": "D22",
+ "tipoMem": "Int",
+ "index": 22,
+ "size": 2,
+ "period": 60,
+ "value": "0"
+ }
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/DAT/PersistData.dat b/IOB-WIN-MTC/DATA/DAT/PersistData.dat
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/DAT/PersistData.dat
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/DAT/SimData.dat b/IOB-WIN-MTC/DATA/DAT/SimData.dat
new file mode 100644
index 00000000..c59e4823
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/DAT/SimData.dat
@@ -0,0 +1,959 @@
+;------------------------------------------------------------------------------------
+; filevalori simulati x provare sistema dati e filtraggio... commenti iniziano per ';', valori formato data#valore#counter
+; NOTE FILE:
+; - bit come macchine std IOB
+; B0 = POWERON
+; B1 = RUN
+; B2 = CONTAPEZZO
+; B3 = ALLARME
+; B4 = MANUALE
+; B5 = NA
+; B6 = NA
+; B7 = NA
+; - segnali alternanti su 00011100
+;------------------------------------------------------------------------------------
+;
+;----------------------------
+; inizio da spenta
+0
+0
+; indico accesa
+1
+1
+1
+; allarme (BLINK)
+9
+9
+9
+9
+9
+1
+1
+1
+1
+1
+1
+9
+9
+9
+9
+9
+1
+1
+1
+1
+1
+19
+9
+9
+9
+9
+1
+1
+1
+1
+1
+1
+; allarme manuale (2 blink, periodo diverso)
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+; indico manuale
+17
+17
+17
+17
+17
+17
+17
+17
+17
+17
+1
+1
+1
+1
+1
+1
+1
+1
+17
+17
+17
+17
+17
+17
+17
+17
+17
+17
+1
+1
+1
+1
+1
+1
+1
+1
+17
+17
+17
+17
+17
+17
+17
+17
+17
+17
+1
+1
+1
+1
+1
+1
+1
+1
+; RUN!
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+; contapezzo
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+; RUN
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+; contapezzo
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+; RUN
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+; contapezzo
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+; RUN
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+; allarme (BLINK)
+9
+9
+9
+9
+9
+1
+1
+1
+1
+1
+1
+9
+9
+9
+9
+9
+1
+1
+1
+1
+1
+19
+9
+9
+9
+9
+1
+1
+1
+1
+1
+1
+; allarme manuale (2 blink, periodo diverso)
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+; indico manuale
+17
+17
+17
+17
+17
+17
+17
+17
+17
+17
+1
+1
+1
+1
+1
+1
+1
+1
+17
+17
+17
+17
+17
+17
+17
+17
+17
+17
+1
+1
+1
+1
+1
+1
+1
+1
+17
+17
+17
+17
+17
+17
+17
+17
+17
+17
+1
+1
+1
+1
+1
+1
+1
+1
+; RUN!
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+; contapezzo
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+; RUN
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+; contapezzo
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+; RUN
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
\ No newline at end of file
diff --git a/IOB-WIN-MTC/DATA/HIST/.placeholder b/IOB-WIN-MTC/DATA/HIST/.placeholder
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-MTC/DATA/HIST/.placeholder
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-MTC/IOB-WIN-MTC.csproj b/IOB-WIN-MTC/IOB-WIN-MTC.csproj
new file mode 100644
index 00000000..79929569
--- /dev/null
+++ b/IOB-WIN-MTC/IOB-WIN-MTC.csproj
@@ -0,0 +1,409 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {EEBE38BD-29EE-45DE-9AF4-8FA34B58D8BA}
+ WinExe
+ IOB_WIN_MTC
+ IOB-WIN-MTC
+ v4.6.2
+ 512
+ true
+ true
+
+
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+ true
+ bin\Remote_DEBUG\
+ DEBUG;TRACE
+ full
+ x86
+ 7.3
+ prompt
+
+
+
+ ..\packages\MapoSDK.6.14.2411.518\lib\MapoSDK.dll
+
+
+ ..\packages\Microsoft.Bcl.AsyncInterfaces.7.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll
+
+
+ ..\packages\Microsoft.Extensions.Configuration.7.0.0\lib\net462\Microsoft.Extensions.Configuration.dll
+
+
+ ..\packages\Microsoft.Extensions.Configuration.Abstractions.7.0.0\lib\net462\Microsoft.Extensions.Configuration.Abstractions.dll
+
+
+ ..\packages\Microsoft.Extensions.Configuration.Binder.7.0.0\lib\net462\Microsoft.Extensions.Configuration.Binder.dll
+
+
+ ..\packages\Microsoft.Extensions.Configuration.CommandLine.7.0.0\lib\net462\Microsoft.Extensions.Configuration.CommandLine.dll
+
+
+ ..\packages\Microsoft.Extensions.Configuration.EnvironmentVariables.7.0.0\lib\net462\Microsoft.Extensions.Configuration.EnvironmentVariables.dll
+
+
+ ..\packages\Microsoft.Extensions.Configuration.FileExtensions.7.0.0\lib\net462\Microsoft.Extensions.Configuration.FileExtensions.dll
+
+
+ ..\packages\Microsoft.Extensions.Configuration.Json.7.0.0\lib\net462\Microsoft.Extensions.Configuration.Json.dll
+
+
+ ..\packages\Microsoft.Extensions.Configuration.UserSecrets.7.0.0\lib\net462\Microsoft.Extensions.Configuration.UserSecrets.dll
+
+
+ ..\packages\Microsoft.Extensions.DependencyInjection.7.0.0\lib\net462\Microsoft.Extensions.DependencyInjection.dll
+
+
+ ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.7.0.0\lib\net462\Microsoft.Extensions.DependencyInjection.Abstractions.dll
+
+
+ ..\packages\Microsoft.Extensions.FileProviders.Abstractions.7.0.0\lib\net462\Microsoft.Extensions.FileProviders.Abstractions.dll
+
+
+ ..\packages\Microsoft.Extensions.FileProviders.Physical.7.0.0\lib\net462\Microsoft.Extensions.FileProviders.Physical.dll
+
+
+ ..\packages\Microsoft.Extensions.FileSystemGlobbing.7.0.0\lib\net462\Microsoft.Extensions.FileSystemGlobbing.dll
+
+
+ ..\packages\Microsoft.Extensions.Hosting.7.0.0\lib\net462\Microsoft.Extensions.Hosting.dll
+
+
+ ..\packages\Microsoft.Extensions.Hosting.Abstractions.7.0.0\lib\net462\Microsoft.Extensions.Hosting.Abstractions.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.7.0.0\lib\net462\Microsoft.Extensions.Logging.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.Abstractions.7.0.0\lib\net462\Microsoft.Extensions.Logging.Abstractions.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.Configuration.7.0.0\lib\net462\Microsoft.Extensions.Logging.Configuration.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.Console.7.0.0\lib\net462\Microsoft.Extensions.Logging.Console.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.Debug.7.0.0\lib\net462\Microsoft.Extensions.Logging.Debug.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.EventLog.7.0.0\lib\net462\Microsoft.Extensions.Logging.EventLog.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.EventSource.7.0.0\lib\net462\Microsoft.Extensions.Logging.EventSource.dll
+
+
+ ..\packages\Microsoft.Extensions.Options.7.0.0\lib\net462\Microsoft.Extensions.Options.dll
+
+
+ ..\packages\Microsoft.Extensions.Options.ConfigurationExtensions.7.0.0\lib\net462\Microsoft.Extensions.Options.ConfigurationExtensions.dll
+
+
+ ..\packages\Microsoft.Extensions.Primitives.7.0.0\lib\net462\Microsoft.Extensions.Primitives.dll
+
+
+ ..\packages\MQTTnet.4.3.3.952\lib\net461\MQTTnet.dll
+
+
+ ..\packages\MQTTnet.Extensions.ManagedClient.4.3.3.952\lib\net461\MQTTnet.Extensions.ManagedClient.dll
+
+
+ ..\packages\MTConnect.NET.6.5.1\lib\net462\MTConnect.NET.dll
+
+
+ ..\packages\MTConnect.NET-Common.6.5.1\lib\net462\MTConnect.NET-Common.dll
+
+
+ ..\packages\MTConnect.NET-HTTP.6.5.1\lib\net462\MTConnect.NET-HTTP.dll
+
+
+ ..\packages\MTConnect.NET-JSON.6.5.1\lib\net462\MTConnect.NET-JSON.dll
+
+
+ ..\packages\MTConnect.NET-JSON-cppagent.6.5.1\lib\net462\MTConnect.NET-JSON-cppagent.dll
+
+
+ ..\packages\MTConnect.NET-MQTT.6.5.1\lib\net462\MTConnect.NET-MQTT.dll
+
+
+ ..\packages\MTConnect.NET-SHDR.6.5.1\lib\net462\MTConnect.NET-SHDR.dll
+
+
+ ..\packages\MTConnect.NET-TLS.6.5.1\lib\net462\MTConnect.NET-TLS.dll
+
+
+ ..\packages\MTConnect.NET-XML.6.5.1\lib\net462\MTConnect.NET-XML.dll
+
+
+ ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll
+
+
+ ..\packages\NLog.5.3.4\lib\net46\NLog.dll
+
+
+ ..\packages\Pipelines.Sockets.Unofficial.2.2.8\lib\net461\Pipelines.Sockets.Unofficial.dll
+
+
+ ..\packages\StackExchange.Redis.2.8.24\lib\net461\StackExchange.Redis.dll
+
+
+
+ ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll
+
+
+
+
+
+ ..\packages\System.Diagnostics.DiagnosticSource.7.0.0\lib\net462\System.Diagnostics.DiagnosticSource.dll
+
+
+ ..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll
+
+
+ ..\packages\System.IO.Pipelines.5.0.1\lib\net461\System.IO.Pipelines.dll
+
+
+ ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll
+
+
+
+ ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll
+
+
+
+ ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll
+
+
+ ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll
+
+
+ ..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net461\System.Security.Cryptography.Algorithms.dll
+
+
+ ..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll
+
+
+ ..\packages\System.Text.Encodings.Web.7.0.0\lib\net462\System.Text.Encodings.Web.dll
+
+
+ ..\packages\System.Text.Json.7.0.0\lib\net462\System.Text.Json.dll
+
+
+ ..\packages\System.Threading.Channels.5.0.0\lib\net461\System.Threading.Channels.dll
+
+
+ ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll
+
+
+ ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ..\packages\YamlDotNet.13.7.1\lib\net45\YamlDotNet.dll
+
+
+
+
+ VersGen.cs
+
+
+ Form
+
+
+
+
+ Form
+
+
+
+
+
+ Always
+
+
+ Always
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+
+ Always
+
+
+ Always
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ App.config
+ True
+ PreserveNewest
+
+
+ App.config
+ True
+ PreserveNewest
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+ Always
+
+
+
+ Always
+
+
+
+
+ Designer
+ true
+ PreserveNewest
+
+
+
+
+ Always
+
+
+
+ Always
+
+
+
+ Always
+
+
+ Always
+
+
+
+
+
+ {90512e12-29fc-460d-94cc-648c2a072dbd}
+ IOB-UT-NEXT
+
+
+ {9ba331bb-9bf1-40e0-ac03-74b43d73a097}
+ IOB-WIN-FORM
+
+
+
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-MTC/Iob/GenericNext.cs b/IOB-WIN-MTC/Iob/GenericNext.cs
new file mode 100644
index 00000000..880ff747
--- /dev/null
+++ b/IOB-WIN-MTC/Iob/GenericNext.cs
@@ -0,0 +1,13 @@
+using IOB_UT_NEXT;
+
+namespace IOB_WIN_MTC.Iob
+{
+ public class GenericNext : IOB_WIN_FORM.Iob.Generic
+ {
+
+ public GenericNext(AdapterFormNext caller, IobConfiguration IOBConf): base((IOB_WIN_FORM.AdapterForm)caller, IOBConf)
+ {
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-MTC/Iob/MTConn.cs b/IOB-WIN-MTC/Iob/MTConn.cs
new file mode 100644
index 00000000..8dfe3c74
--- /dev/null
+++ b/IOB-WIN-MTC/Iob/MTConn.cs
@@ -0,0 +1,1710 @@
+using IOB_UT_NEXT;
+using MapoSDK;
+using MTConnect.Clients;
+using MTConnect.Devices;
+using MTConnect.Observations;
+using MTConnect.Streams;
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Net.NetworkInformation;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using System.Xml.Linq;
+
+namespace IOB_WIN_MTC.Iob
+{
+ public class MTConn : Iob.GenericNext
+ {
+ #region Public Constructors
+
+ ///
+ /// Estende l'init della classe base, impiegando il pacchetto Nuget TrackHound https://github.com/TrakHound/MTConnect.NET
+ ///
+ ///
+ ///
+ public MTConn(AdapterFormNext caller, IobConfiguration IOBConf) : base(caller, IOBConf)
+ {
+ // gestione invio ritardato contapezzi
+ pzCountDelay = utils.CRI("pzCountDelay");
+ // gestione data filtering...
+ if (!string.IsNullOrEmpty(getOptPar("ENABLE_DATA_FILTER")))
+ {
+ bool.TryParse(getOptPar("ENABLE_DATA_FILTER"), out enableDataFilter);
+ }
+ // gestione data unavailable = poweroff...
+ if (!string.IsNullOrEmpty(getOptPar("UNAVAIL_POWEROFF")))
+ {
+ bool.TryParse(getOptPar("UNAVAIL_POWEROFF"), out unavailPoweroff);
+ }
+ // gestione restart MTC client...
+ if (!string.IsNullOrEmpty(getOptPar("ENABLE_MTC_RESTART")))
+ {
+ bool.TryParse(getOptPar("ENABLE_MTC_RESTART"), out enableMtcRestart);
+ }
+
+ // gestione override contapezzi
+ enablePzCountByApp = utils.CRB("enableContapezzi");
+ enablePzCountByIob = (getOptPar("ENABLE_PZCOUNT") == "TRUE");
+ disablePzCountByIob = (getOptPar("DISABLE_PZCOUNT") == "TRUE");
+
+ // init datetime counters
+ DateTime adesso = DateTime.Now;
+ lastPzCountSend = adesso;
+ lastWarnODL = adesso;
+ lastCurrent = adesso;
+ // ora leggo il file di conf specifico....
+ string jsonFileName = getOptPar("MTC_PARAM_CONF");
+ if (!string.IsNullOrEmpty(jsonFileName))
+ {
+ // leggo il file...
+ loadMtcConf(jsonFileName);
+ }
+ }
+
+ #endregion Public Constructors
+
+ #region Public Methods
+
+ ///
+ /// Processo i task richiesti document li elimino dalla coda 1:1
+ ///
+ ///
+ public override Dictionary executeTasks(Dictionary task2exe)
+ {
+ // uso metodo base x ora
+ return base.executeTasks(task2exe);
+ }
+
+ ///
+ /// Recupera uno specifico dataItem
+ ///
+ ///
+ ///
+ public string getDataItemValue(string diKey)
+ {
+ string answ = "";
+ if (queueInEnabCurr)
+ {
+ try
+ {
+ if (dataItemMem.ContainsKey(diKey))
+ {
+ var currDataItem = dataItemMem[diKey];
+ answ = currDataItem.value;
+ }
+ }
+ catch (Exception exc)
+ {
+ Logging.Instance.Error($"Errore in getDataItemValue per {diKey}{Environment.NewLine}{exc}");
+ }
+ }
+ else
+ {
+ lgDebug($"[VETO getDataItemValue] | veto attivo alle {DateTime.Now:yyyy.MM.dd HH:mm:ss}");
+ }
+ return answ;
+ }
+
+ ///
+ /// Recupero dati dinamici...
+ ///
+ public override Dictionary getDynData()
+ {
+ Dictionary outVal = new Dictionary();
+ return outVal;
+ }
+
+ ///
+ /// Effettua vero processing contapezzi
+ ///
+ public override void processContapezzi()
+ {
+ if ((enablePzCountByApp || enablePzCountByIob) && !(disablePzCountByIob))
+ {
+ if (queueInEnabCurr)
+ {
+ // cerco parametro contapezzi...
+ string currPzCount = getDataItemValue(mtcParams.keyPartCount);
+
+ if (isVerboseLog)
+ {
+ lgInfo($"contapezzi: {mtcParams.keyPartCount} --> {currPzCount}");
+ }
+
+ // se ho un contapezzi... processo...
+ if (!string.IsNullOrEmpty(currPzCount))
+ {
+ int newVal = -1;
+ Int32.TryParse(currPzCount, out newVal);
+ contapezziPLC = newVal > -1 ? newVal : contapezziPLC;
+ }
+ }
+ else
+ {
+ lgDebug($"[VETO processContapezzi] | veto attivo alle {DateTime.Now:yyyy.MM.dd HH:mm:ss}");
+ }
+ }
+ else
+ {
+ lgTrace($"processContapezzi escluso: enablePzCountByApp = {enablePzCountByApp} | enablePzCountByIob: {enablePzCountByIob} | disablePzCountByIob: {disablePzCountByIob}");
+ }
+ }
+
+ ///
+ /// Effettua lettura semafori principale Parametri da
+ /// aggiornare x display in form
+ ///
+ public override void readSemafori(ref newDisplayData currDispData)
+ {
+ DateTime adesso = DateTime.Now;
+ lastReadPLC = adesso;
+ // verifico non sia in veto invio iniziale...
+ if (queueInEnabCurr)
+ {
+ try
+ {
+ if (verboseLog)
+ {
+ lgInfo("inizio read semafori");
+ }
+
+ currDispData.semIn = Semaforo.SV;
+
+ // decodifica document gestione
+ decodeToBaseBitmap();
+ reportRawInput(ref currDispData);
+ }
+ catch (Exception exc)
+ {
+ currDispData.semIn = Semaforo.SR;
+ lgError($"Eccezione in readSemafori:{Environment.NewLine}{exc}");
+ }
+ }
+ else
+ {
+ lgDebug($"[VETO readSemafori] | veto attivo alle {adesso:yyyy.MM.dd HH:mm:ss}");
+ checkVetoQueueIn();
+ }
+ }
+
+ ///
+ /// Effettua reset del contapezzi, NON POSSIBILE per MTC (read only)
+ ///
+ ///
+ public override bool resetContapezziPLC()
+ {
+ bool answ = true;
+ return answ;
+ }
+
+ ///
+ /// Effettua IMPOSTAZIONE FORZATA del contapezzi, NON POSSIBILE per MTC (read only)
+ ///
+ ///
+ public override bool setcontapezziPLC(int newPzCount)
+ {
+ bool answ = true;
+ return answ;
+ }
+
+ ///
+ /// Override connessione
+ ///
+ public override void tryConnect()
+ {
+ if (!connectionOk)
+ {
+ // controllo che il ping sia stato tentato almeno pingTestSec fa...
+ if (DateTime.Now.Subtract(lastPING).TotalSeconds > utils.CRI("pingTestSec"))
+ {
+ if (verboseLog || periodicLog)
+ {
+ lgInfo("MTC: ConnKO - tryConnect");
+ }
+ // in primis salvo data ping...
+ lastPING = DateTime.Now;
+ // se passa il ping faccio il resto...
+ if (testPingMachine == IPStatus.Success)
+ {
+ string szStatusConnection = "";
+ try
+ {
+ // ora provo connessione...
+ parentForm.commPlcActive = true;
+ doConnect();
+ parentForm.commPlcActive = false;
+ // refresh stato allarmi!!!
+ if (connectionOk)
+ {
+ checkVetoQueueIn();
+ //queueInEnabCurr = true;
+ if (adpRunning)
+ {
+ lgInfo("Connessione OK");
+ }
+ }
+ else
+ {
+ lgError("Impossibile procedere, connessione mancante...");
+ }
+ }
+ catch (Exception exc)
+ {
+ lgFatal($"Errore nella connessione all'adapter MTC: {szStatusConnection}{Environment.NewLine}{exc}");
+ connectionOk = false;
+ lgInfo($"Eccezione in TryConnect, Adapter MTC NON running, pausa di {utils.CRI("waitRecMSec")} msec prima di ulteriori tentativi di riconnessione");
+ }
+ }
+ else
+ {
+ // loggo no risposta ping ...
+ connectionOk = false;
+ if (verboseLog || periodicLog)
+ {
+ lgInfo($"Attenzione: MTC controllo PING fallito per IP {cIobConf.cncPingAddr}");
+ }
+ }
+ }
+ }
+ else
+ {
+ needRefresh = true;
+ }
+ // se non è ancora connesso faccio procesisng memoria caso disconnesso...
+ if (!connectionOk)
+ {
+ // processo semafori ed invio...
+ processMemoryDiscon();
+ }
+ }
+
+ ///
+ /// Override disconnessione
+ ///
+ public override void tryDisconnect()
+ {
+ queueInEnabCurr = false;
+ // verifico che NON sia in fase di avvio MTC...
+ if (isConnecting && DateTime.Now.Subtract(startConnecting).TotalSeconds < 60)
+ {
+ lgInfo("Disconnessione non effettuata: connessione ancora in corso");
+ }
+ else
+ {
+ lgTrace("Richiesta tryDisconnect");
+ if (connectionOk)
+ {
+ string szStatusConnection = "";
+ try
+ {
+ MTC_ref.Stop();
+ connectionOk = false;
+ isConnecting = false;
+ lgInfo($"conn status: {szStatusConnection}");
+ lgInfo("Effettuata disconnessione adapter MTC!");
+ }
+ catch (Exception exc)
+ {
+ lgFatal(exc, "Errore nella disconnessione dall'adapter MTC");
+ }
+ }
+ else
+ {
+ lgError("IMPOSSIBILE effettuare disconnessione MTC: Connessione non disponibile...");
+ }
+ }
+ queueInEnabCurr = false;
+ needRefresh = true;
+ }
+
+ #endregion Public Methods
+
+ #region Protected Fields
+
+ ///
+ /// Gestione filtraggio dati
+ ///
+ protected bool enableDataFilter = false;
+
+ ///
+ /// Abilitazione restart (da opt par...)
+ ///
+ protected bool enableMtcRestart = false;
+
+ ///
+ /// Determina se ha effettuata lettura items in memoria x confronto...
+ ///
+ protected bool hasReadItems = false;
+
+ ///
+ /// Ultimo current received x gestione update periodico...
+ ///
+ protected DateTime lastCurrent = DateTime.Now;
+
+ ///
+ /// Oggetto MAIN x connessione MTC
+ ///
+ protected MTConnectHttpClient MTC_ref;
+
+ ///
+ /// Gestione valori unavailable come POWEROFF (es trevisan)
+ ///
+ protected bool unavailPoweroff = false;
+
+ ///
+ /// Veto controllos tatus x log...
+ ///
+ protected DateTime vetoCheckStatus = DateTime.Now;
+
+ #endregion Protected Fields
+
+ #region Protected Properties
+
+ ///
+ /// Verifico se abbia ALMENO un errore...
+ ///
+ protected bool hasError
+ {
+ get
+ {
+ bool answ = false;
+ // controllo TUTTE le conditions...
+ foreach (var item in dataItemMem)
+ {
+ // se NON HO GIA' allarmi attivi...
+ if (!answ)
+ {
+ // se è una condition...
+ if (item.Value.Category == MTConnect.Devices.DataItemCategory.CONDITION)
+ {
+ // se ha valore !="" --> allarmi attivi
+ if (!string.IsNullOrEmpty(item.Value.value))
+ {
+ answ = true;
+ }
+ }
+ }
+ }
+ return answ;
+ }
+ }
+
+ ///
+ /// Indica se abbia emergenza premuta
+ ///
+ protected bool hasEStopTriggered
+ {
+ get
+ {
+ bool answ = false;
+ if (queueInEnabCurr)
+ {
+ try
+ {
+ if (!string.IsNullOrEmpty(mtcParams.keyEStop))
+ {
+ string currEStop = getDataItemValue(mtcParams.keyEStop);
+ answ = (currEStop == "TRIGGERED");
+ }
+ }
+ catch (Exception exc)
+ {
+ Logging.Instance.Error($"Errore in hasEStopTriggered{Environment.NewLine}{exc}");
+ }
+ }
+ else
+ {
+ lgDebug($"[VETO hasEStopTriggered] | veto attivo alle {DateTime.Now:yyyy.MM.dd HH:mm:ss}");
+ }
+ return answ;
+ }
+ }
+
+ ///
+ /// Verifico se abbia unavailable x le condizioni principali condPowerOn keyRunMode
+ ///
+ protected bool hasUnavailableData
+ {
+ get
+ {
+ bool answ = false;
+ if (queueInEnabCurr)
+ {
+ // verifico le condizioni: powerOn, run document work...
+ string currRun = getDataItemValue(mtcParams.keyRunMode);
+ bool unavRun = currRun.ToUpper() == "UNAVAILABLE";
+ string currPowerOn = getDataItemValue(mtcParams.condPowerOn.keyName);
+ bool checkPowerOn = (currPowerOn == mtcParams.condPowerOn.targetValue);
+ answ = unavRun && !checkPowerOn;
+ }
+ return answ;
+ }
+ }
+
+ protected bool isConnecting { get; set; } = false;
+
+ ///
+ /// Parametri specifici MTC
+ ///
+ protected MtcParamConf mtcParams { get; set; }
+
+ protected DateTime startConnecting { get; set; } = DateTime.Today;
+
+ ///
+ /// URL x salvataggio elenco dataItems MTC
+ ///
+ protected string urlSaveDataItems
+ {
+ get
+ {
+ string answ = "";
+ try
+ {
+ string machineName = Environment.MachineName;
+ answ = $@"{cIobConf.serverData.TRANSP}://{cIobConf.serverData.MPIP}{cIobConf.serverData.MPURL}{cIobConf.serverData.CMDALIVE}/saveDataItems/{cIobConf.codIOB}";
+ }
+ catch (Exception exc)
+ {
+ lgError(exc, "Errore in composizione urlSaveDataItems");
+ }
+ return answ;
+ }
+ }
+
+ #endregion Protected Properties
+
+ #region Protected Methods
+
+ ///
+ /// Verifica un DataItem document se il valore corrisponde a quello indicato come "true eValue"
+ /// restituisce true
+ ///
+ ///
+ ///
+ ///
+ protected bool checkDataItem(string itemName, string trueVal)
+ {
+ bool answ = false;
+ MtcDataItemExt currValue = null;
+ try
+ {
+ currValue = dataItemMem[itemName];
+ answ = (currValue.value.Equals(trueVal));
+ }
+ catch
+ {
+ lgError($"Errore in decodifica valore per {itemName} rispetto a {trueVal} | recuperato {currValue} / {currValue.value}");
+ }
+ return answ;
+ }
+
+ ///
+ /// Verifica / Salva valore condition
+ ///
+ ///
+ /// Messaggio completo (livello + testo)
+ ///
+ protected bool checkSaveCondition(IObservation observ, string cValue)
+ {
+ bool answ = !enableDataFilter;
+
+ if (observ != null)
+ {
+ if (isVerboseLog)
+ {
+ lgInfo($"Richiesta checkSaveCondition per {observ} | id: {observ.DataItemId} | message: {cValue}");
+ }
+ // verifico in memoria se ho l'oggetto condition ed il suo valore..
+ if (dataItemMem.ContainsKey(observ.DataItemId))
+ {
+ // check variazione
+ if (dataItemMem[observ.DataItemId].value != cValue)
+ {
+ dataItemMem[observ.DataItemId].value = cValue;
+ answ = true;
+ }
+ dataItemMem[observ.DataItemId].valueTimestamp = observ.Timestamp;
+ }
+ else
+ {
+ // registro non trovato da aggiungere...
+ lgInfo($"DataItem non trovato in checkSaveCondition: {observ.DataItemId}");
+ try
+ {
+ // provo a creare oggetot in memoria...
+ List elencoDataItems = new List();
+ int dSamplePeriod = 0;
+ float threshDBand = 0;
+ string uuid = "";
+ var currDataItem = formatDataItem(ref dSamplePeriod, ref threshDBand, ref uuid, observ, cValue);
+ // aggiungo
+ dataItemMem.Add(observ.DataItemId, currDataItem);
+ var thisCat = (MapoSDK.DataItemCategory)Enum.Parse(typeof(MapoSDK.DataItemCategory), $"{observ.Category}");
+ // salvo oggetto x registrazione su server MP-IO
+ var currMapoDataItem = new machDataItem()
+ {
+ uuid = observ.DataItemId,
+ Category = thisCat,
+ Name = observ.Name,
+ Type = observ.Type,
+ SubType = observ.SubType,
+ //Units = observ.Units
+ };
+ // aggiungo
+ elencoDataItems.Add(currMapoDataItem);
+ // invio il dataItem serializzato...
+ sendDataItemsList(elencoDataItems);
+ }
+ catch (Exception exc)
+ {
+ lgError($"Eccezione in checkSaveCondition{Environment.NewLine}{exc}");
+ }
+ }
+ }
+ else
+ {
+ lgError("Attenzione: checkSaveCondition con observ null!");
+ }
+ return answ;
+ }
+
+ ///
+ /// Verifica / Salva valore generico (NON SAMPLE)
+ ///
+ ///
+ ///
+ ///
+ protected bool checkSaveItem(IObservation observ, string iValue)
+ {
+ bool answ = !enableDataFilter;
+
+ if (observ != null)
+ {
+ if (isVerboseLog)
+ {
+ lgInfo($"Richiesta checkSaveItem per {observ} | id: {observ.DataItemId} | eValue: {iValue}");
+ }
+ // verifico in memoria se ho l'oggetto condition ed il suo valore..
+ if (dataItemMem.ContainsKey(observ.DataItemId))
+ {
+ // verifico SE sia cambiato...
+ if (dataItemMem[observ.DataItemId].value != iValue)
+ {
+ dataItemMem[observ.DataItemId].value = iValue;
+ answ = true;
+ }
+ dataItemMem[observ.DataItemId].valueTimestamp = observ.Timestamp;
+ }
+ else
+ {
+ // registro non trovato da aggiungere...
+ lgInfo($"DataItem non trovato in checkSaveItem: {observ.DataItemId}");
+ try
+ {
+ // provo a creare oggetot in memoria...
+ List elencoDataItems = new List();
+ int dSamplePeriod = 0;
+ float threshDBand = 0;
+ string uuid = "";
+ var currDataItem = formatDataItem(ref dSamplePeriod, ref threshDBand, ref uuid, observ, iValue);
+ // aggiungo
+ dataItemMem.Add(observ.DataItemId, currDataItem);
+ var thisCat = (MapoSDK.DataItemCategory)Enum.Parse(typeof(MapoSDK.DataItemCategory), $"{observ.Category}");
+ // salvo oggetto x registrazione su server MP-IO
+ var currMapoDataItem = new machDataItem()
+ {
+ uuid = observ.DataItemId,
+ Category = thisCat,
+ Name = observ.Name,
+ Type = observ.Type,
+ SubType = observ.SubType,
+ //Units = observ.Units
+ };
+ // aggiungo
+ elencoDataItems.Add(currMapoDataItem);
+ // invio il dataItem serializzato...
+ sendDataItemsList(elencoDataItems);
+ }
+ catch (Exception exc)
+ {
+ lgError($"Eccezione in checkSaveItem{Environment.NewLine}{exc}");
+ }
+ }
+ }
+ else
+ {
+ lgError("Attenzione: checkSaveItem con observ null!");
+ }
+ return answ;
+ }
+
+ ///
+ /// Verifica / Salva valore SAMPLE document restitusice SE sia variato (document quindi da inviare...)
+ ///
+ ///
+ ///
+ protected bool checkSaveSample(IObservation observ, string sValue)
+ {
+ bool answ = !enableDataFilter;
+ double oldVal = 0;
+ double newVal = 0;
+ if (observ != null)
+ {
+ // verifico in memoria se ho l'oggetto condition ed il suo valore..
+ if (dataItemMem.ContainsKey(observ.DataItemId))
+ {
+ MtcDataItemExt currDataItemMem = dataItemMem[observ.DataItemId];
+ // controllo SE SIA scaduto il tempo massimo...
+ if (Math.Abs(dataItemMem[observ.DataItemId].valueTimestamp.Subtract(observ.Timestamp).TotalSeconds) > currDataItemMem.samplePeriod)
+ {
+ answ = true;
+ }
+ else
+ {
+ // ALTRIMENTI controllo SE diverso
+ if (dataItemMem[observ.DataItemId].value != sValue)
+ {
+ // controllo SE ho DeadBand...
+ if (dataItemMem[observ.DataItemId].thresholdDeadBand > 0)
+ {
+ if (isVerboseLog)
+ {
+ lgInfo($"Test deadband: oldVal: {oldVal} | newVal: {newVal}");
+ }
+ // recupero i valori document testo DeadBand...
+ double.TryParse(dataItemMem[observ.DataItemId].value.Replace(".", ","), out oldVal);
+ double.TryParse(sValue.Replace(".", ","), out newVal);
+ // test deadband!
+ if (Math.Abs(newVal - oldVal) > dataItemMem[observ.DataItemId].thresholdDeadBand)
+ {
+ // indico da salvare..
+ answ = true;
+ }
+ }
+ }
+ }
+ if (answ)
+ {
+ // salvo!
+ dataItemMem[observ.DataItemId].value = sValue;
+ dataItemMem[observ.DataItemId].valueTimestamp = observ.Timestamp;
+ }
+ }
+ else
+ {
+ // registro non trovato da aggiungere...
+ lgInfo($"DataItem non trovato in checkSaveSample: {observ.DataItemId}");
+ // provo a creare oggetto in memoria...
+ try
+ {
+ List elencoDataItems = new List();
+ int dSamplePeriod = 0;
+ float threshDBand = 0;
+ string uuid = "";
+ var currDataItem = formatDataItem(ref dSamplePeriod, ref threshDBand, ref uuid, observ, sValue);
+ // aggiungo
+ dataItemMem.Add(observ.DataItemId, currDataItem);
+ var thisCat = (MapoSDK.DataItemCategory)Enum.Parse(typeof(MapoSDK.DataItemCategory), $"{observ.Category}");
+ // salvo oggetto x registrazione su server MP-IO
+ var currMapoDataItem = new machDataItem()
+ {
+ uuid = observ.DataItemId,
+ Category = thisCat,
+ Name = observ.Name,
+ Type = observ.Type,
+ SubType = observ.SubType,
+ //Units = observ.Units
+ };
+ // aggiungo
+ elencoDataItems.Add(currMapoDataItem);
+ // invio il dataItem serializzato...
+ sendDataItemsList(elencoDataItems);
+ }
+ catch (Exception exc)
+ {
+ lgError($"Eccezione in checkSaveSample{Environment.NewLine}{exc}");
+ }
+ }
+ }
+ else
+ {
+ lgError("Attenzione: checkSaveItem con observ null!");
+ }
+ return answ;
+ }
+
+ ///
+ /// Effettua traduzione ITEM da LUT parametrica (key: tipo+id) del file di conf, se non
+ /// trovo uso key
+ ///
+ ///
+ ///
+ ///
+ protected override string itemTranslation(string tipo, string id)
+ {
+ string answ = "";
+ string lemma = $"{tipo}_{id}";
+ // cerco nel dizionario delle traduzioni SE esiste un valore document prendo quello, altrimenti
+ // uso il lemma...
+ if (mtcParams.itemTranslation.ContainsKey(lemma))
+ {
+ answ = mtcParams.itemTranslation[lemma];
+ }
+ else
+ {
+ answ = lemma;
+ }
+ return answ;
+ }
+
+ ///
+ /// Effettua log di un elenco componenti
+ ///
+ ///
+ protected void logComponentsList(List elencoComponenti)
+ {
+ if (elencoComponenti != null)
+ {
+ foreach (var item in elencoComponenti)
+ {
+ lgInfo($"Component data | ID: {item.Id} | Name: {item.Name} | Type: {item.Type} | # items: {item.DataItems.Count()}");
+ // se ho sottocomponenti richiamo...
+ if (item.Components != null)
+ {
+ if (item.Components.Count() > 0)
+ {
+ logComponentsList(item.GetComponents().ToList());
+ }
+ }
+ if (item.DataItems.Count() > 0)
+ {
+ logDataItemList(item.GetDataItems().ToList());
+ }
+ }
+ }
+ }
+
+ ///
+ /// Effettua log di un elenco composizioni
+ ///
+ ///
+ protected void logCompositionList(List elencoComposizioni)
+ {
+ if (elencoComposizioni != null)
+ {
+ foreach (var item in elencoComposizioni)
+ {
+ lgInfo($"Composition data | ID: {item.Id} | Name: {item.Name} | Type: {item.Type} | # items: {item.DataItems.Count()} | path: {item.IdPath}");
+ }
+ }
+ }
+
+ ///
+ /// Log elenco DataItems
+ ///
+ ///
+ protected void logDataItemList(List elencoItems)
+ {
+ if (elencoItems != null)
+ {
+ // loggo devices principali...
+ foreach (var item in elencoItems)
+ {
+ lgInfo($"Device data | ID: {item.Id} | Name: {item.Name} | Category: {item.Category} | # Type: {item.Type} | Path: {item.IdPath}");
+ }
+ }
+ }
+
+ ///
+ /// Effettua log di un devices (ed eventualmente dei sub-devices...
+ ///
+ ///
+ protected void logProbeDevices(List listDevices)
+ {
+ if (listDevices != null)
+ {
+ // loggo devices principali...
+ foreach (var device in listDevices)
+ {
+ lgInfo($"Device data | ID: {device.Id} | Name: {device.Name} | UUID: {device.Uuid} | # items: {device.DataItems.Count()}");
+ // se ho subItems descrivo pure loro...
+ if (device.DataItems.Count() > 0)
+ {
+ logDataItemList(device.GetDataItems().ToList());
+ }
+ if (device.Components.Count() > 0)
+ {
+ logComponentsList(device.GetComponents().ToList());
+ }
+ // All Compositions (traverse the entire Device model)
+ if (device.Compositions.Count() > 0)
+ {
+ logCompositionList(device.GetCompositions().ToList());
+ }
+ }
+ }
+ }
+
+ #endregion Protected Methods
+
+ #region Private Fields
+
+ ///
+ /// Struttura dove vengono memorizzati i dataitem ed i rispettivi valori x processing
+ ///
+ private Dictionary dataItemMem = new Dictionary();
+
+ #endregion Private Fields
+
+ #region Private Methods
+
+ ///
+ /// Verifica ed invia variazioni
+ ///
+ ///
+ ///
+ private void checkAndSend(MTConnect.Streams.IStreamsResponseDocument document, bool forceSend)
+ {
+ if (document != null)
+ {
+ foreach (var deviceStream in document.Streams)
+ {
+ // DeviceStream
+ lgTrace($"Stream: {deviceStream.Name}");
+
+ // Component Streams
+ foreach (var dataStream in deviceStream.ComponentStreams)
+ {
+ lgTrace($"Component {dataStream.Name} -->");
+ // DataItems (Samples, Events, and Conditions)
+ foreach (var observation in dataStream.Observations)
+ {
+ // cerco se non sia un dato filtrato in FLUXLOG...
+ bool isFiltered = mtcParams.fluxLogVeto.Where(x => x == observation.DataItemId).Count() > 0;
+ if (isFiltered)
+ {
+ traceObservation(observation);
+ }
+ else
+ {
+ processObservation(observation, forceSend);
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ lgError("StreamsSuccessful ERROR: document è null");
+ }
+ }
+
+ ///
+ /// Effettua decodifica aree memoria alla bitmap usata x MAPO
+ ///
+ private void decodeToBaseBitmap()
+ {
+ // init a zero...
+ B_input = 0;
+ if (queueInEnabCurr)
+ {
+ /* -----------------------------------------------------
+ * bitmap MAPO
+ * B0: POWER_ON
+ * B1: RUN
+ * B2: pzCount
+ * B3: allarme
+ * B4: manuale
+ * B5: emergenza (dipende da state machine se riportare 1 = armata/premuta, vedere conf mtcParams.emergencyArmedTrue)
+ ----------------------------------------------------- */
+
+ // Controllo booleano PING document POWERON...
+ string currPowerOn = getDataItemValue(mtcParams.condPowerOn.keyName);
+ // se valido il check ping lo eseguo... altrimenti lo do x buono
+ bool isPingOk = mtcParams.pingAsPowerOn && (testPingMachine == IPStatus.Success);
+
+ // verifico da target eValue richiesto...
+ bool checkPowerOn = (currPowerOn == mtcParams.condPowerOn.targetValue);
+
+ // bit 0 (poweron) imposto a 1 SE pingo o PowerOn=="ON"...
+ B_input = (isPingOk || checkPowerOn) ? 1 : 0;
+
+ // variabili RUN...
+ string currRun = getDataItemValue(mtcParams.keyRunMode);
+
+ // controllo RUN MODE preliminare... CABLATO - è GENERALE x MTC
+ if (currRun == "AUTOMATIC" || currRun == "SEMI_AUTO" || currRun == "SEMI_AUTOMATIC")
+ {
+ int numCond = mtcParams.condWork.Count;
+ int numCondOk = 0;
+ // cerco nell'elenco delle condizioni che indicano lavora se sono ok faccio +1 conteggio......
+ foreach (var item in mtcParams.condWork)
+ {
+ if (getDataItemValue(item.keyName) == item.targetValue)
+ {
+ numCondOk++;
+ }
+ }
+ // se tutte condizioni rispettate --> lavora!
+ if (numCond == numCondOk)
+ {
+ // RUN = LAVORA!
+ B_input += (1 << 1);
+ }
+ }
+ // se ho almeno 1 allarme E NON SONO IN AUTO --> ALARM!
+ else if (hasError)
+ {
+ B_input += (1 << 3);
+ }
+ // 2024.01.90: gestione dati UNAVAILABLE che indicano poweroff...
+ else if (hasUnavailableData && unavailPoweroff)
+ {
+ B_input = 0;
+ }
+ else
+ {
+ // se ho run mode != auto --> manual
+ B_input += (1 << 4);
+ }
+
+ // emergenza armata da riportare con bit True/ 1
+ if (mtcParams.emergencyArmedTrue)
+ {
+ //se NON premuta lazo il bit
+ if (!hasEStopTriggered)
+ {
+ B_input += (1 << 5);
+ }
+ }
+ // emergenza armata da riportare come False/0 (!mtcParams.emergencyArmedTrue)
+ else
+ {
+ // se premuta alzo il bit...
+ if (hasEStopTriggered)
+ {
+ B_input += (1 << 5);
+ }
+ }
+
+ DateTime adesso = DateTime.Now;
+ int vFactor = 1;
+ // controllo SE HO dati per fare verifiche...
+ if (string.IsNullOrEmpty(currRun))
+ {
+ // se ho parametro x gestione reset...
+ if (enableMtcRestart)
+ {
+ // controllo se ho ricevuto il current da OLTRE 1 minuto...
+ if (lastCurrent.AddMinutes(3) < adesso)
+ {
+ lastCurrent = adesso;
+ // stop...
+ lgInfo("Fermato MTC_ref per mancanza dati current");
+ MTC_ref.Stop();
+ Thread.Sleep(1000);
+ // restart
+ lgInfo("Riavviato MTC_ref per mancanza dati current");
+ MTC_ref.Start();
+ }
+ }
+ }
+ else
+ {
+ vFactor = 6;
+ }
+
+ // solo se non ho veto check
+ if (vetoCheckStatus < adesso)
+ {
+ lgInfo($"Stato variabili: currRun: {currRun}");
+ // imposto veto per vetoSeconds...
+ vetoCheckStatus = adesso.AddSeconds(vetoSeconds * vFactor);
+ }
+ // log opzionale!
+ if (verboseLog)
+ {
+ lgInfo($"Trasformazione B_input: {B_input} | currRun = {currRun}");
+ }
+ }
+ else
+ {
+ lgDebug($"[VETO getDataItemValue] | veto attivo alle {DateTime.Now:yyyy.MM.dd HH:mm:ss}");
+ }
+ }
+
+ ///
+ /// Vera connessione ad MTC
+ ///
+ ///
+ private void doConnect()
+ {
+ isConnecting = true;
+ startConnecting = DateTime.Now;
+ // reset memoria dataItem..
+ dataItemMem = new Dictionary();
+ // predisposizione conf oggetto di comunicazione MTC
+ short port = 5000;
+ short.TryParse(cIobConf.cncPort, out port);
+ string callUrl = $"{cIobConf.cncIpAddr}:{port}";
+ // test probe!
+ try
+ {
+ lgInfo($"Test Probe MTC Client: {callUrl}");
+ var prbClient = new MTConnectHttpProbeClient(callUrl);
+ //var prbClient = new MTConnectHttpProbeClient(cIobConf.cncIpAddr, port);
+ prbClient.Timeout = mtcParams.reqTOutMs;
+ var prbDoc = prbClient.Get();
+ // se valido loggo!
+ if (prbDoc != null)
+ {
+ // anche se non del tutto vero...
+ connectionOk = true;
+ lgInfo($"Effettuata correttamente PROBE per device MTC all'URL {callUrl}");
+ lgInfo($"---------------- Elenco Devices ----------------");
+ // loggo devices principali...
+ logProbeDevices(prbDoc.Devices.ToList());
+ }
+ }
+ catch (Exception exc)
+ {
+ lgError($"Eccezione durante test probe:{Environment.NewLine}{exc}");
+ }
+ // attendo 1 sec...
+ Thread.Sleep(1000);
+ // ora avvio
+ try
+ {
+ lgInfo($"Chiamata apertura MTC Client: {callUrl}");
+ MTC_ref = new MTConnectHttpClient(cIobConf.cncIpAddr, port);
+ //MTC_ref = new MTConnectHttpClient(callUrl);
+ // sample interval
+ MTC_ref.Interval = mtcParams.clientSampleIntMs;
+ // timeout x richieste
+ MTC_ref.Timeout = mtcParams.reqTOutMs;
+ // timeout riconnessione
+ MTC_ref.ReconnectionInterval = mtcParams.reconnectIntMs;
+
+ // Sottoscrizioni base
+ MTC_ref.ClientStarted += MTC_ref_ClientStarted;
+ MTC_ref.ClientStopped += MTC_ref_ClientStopped;
+ MTC_ref.ConnectionError += MTC_ref_ConnectionError;
+
+ // Sottoscrizioni dati ricevuti !!!
+ MTC_ref.AssetsReceived += MTC_ref_AssetsReceived;
+ MTC_ref.ProbeReceived += MTC_ref_ProbeReceived;
+ //MTC_ref.ProbeReceived += DevicesSuccessful;
+ MTC_ref.CurrentReceived += MTC_ref_CurrentReceived;
+ //MTC_ref.CurrentReceived += CurrentSuccessful;
+
+ // sample subscription
+ if (mtcParams.doSubsSample)
+ {
+ MTC_ref.SampleReceived += MTC_ref_SampleReceived;
+ //MTC_ref.SampleReceived += StreamsSuccessful;
+ }
+ // observ subscription
+ if (mtcParams.doSubsObserv)
+ {
+ MTC_ref.ObservationReceived += MTC_ref_ObservationReceived;
+ }
+
+ MTC_ref.Start();
+
+ //// attendo 2 sec...
+ //Thread.Sleep(2000);
+
+ // fix tempi!
+ DateTime adesso = DateTime.Now;
+ lastPzCountSend = adesso;
+ lastWarnODL = adesso;
+ lastCurrent = adesso;
+ }
+ catch
+ { }
+ isConnecting = false;
+ }
+
+ ///
+ /// Formatta un dataitem da uno stream SAMPLE
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ private MtcDataItemExt formatDataItem(ref int dSamplePeriod, ref float threshDBand, ref string uuid, IObservation observ, string fullMsg)
+ {
+ DataItemStatistic currStat = DataItemStatistic.AVERAGE;
+ //cerco nei values...
+ if (observ.Values.Count() > 0)
+ {
+ foreach (var item in observ.Values)
+ {
+ if (item.Key == "Statistic")
+ {
+ currStat = (DataItemStatistic)Enum.Parse(typeof(DataItemStatistic), item.Value);
+ }
+ }
+ }
+ // creo il nuovo dataitem da sample...
+ MTConnect.Devices.DataItem newDataItem = new MTConnect.Devices.DataItem()
+ {
+ Category = observ.Category,
+ Id = observ.DataItemId,
+ Name = observ.Name,
+ //SampleRate = ,
+ Statistic = currStat,
+ SubType = observ.SubType,
+ Type = observ.Type
+ };
+ return formatDataItem(ref dSamplePeriod, ref threshDBand, ref uuid, newDataItem, fullMsg);
+ }
+
+ ///
+ /// Formatta un dataitem x salvataggio in memoria locale
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ private MtcDataItemExt formatDataItem(ref int dSamplePeriod, ref float threshDBand, ref string uuid, MTConnect.Devices.DataItem dataItem, string value)
+ {
+ MtcDataItemExt currDataItem;
+ // uuid document parametri secondo categoria...
+ switch (dataItem.Category)
+ {
+ case MTConnect.Devices.DataItemCategory.CONDITION:
+ uuid = $"C_{dataItem.Id}";
+ threshDBand = 0;
+ dSamplePeriod = 0;
+ break;
+
+ case MTConnect.Devices.DataItemCategory.EVENT:
+ uuid = $"E_{dataItem.Id}";
+ threshDBand = 0;
+ dSamplePeriod = 0;
+ break;
+
+ case MTConnect.Devices.DataItemCategory.SAMPLE:
+ uuid = $"S_{dataItem.Id}";
+ // SOLO SE è abilitato il datafiltering...
+ if (enableDataFilter)
+ {
+ threshDBand = 1;
+ // controllo SE ho conf x deadband...
+ if (mtcParams.paramsEndThresh.Count > 0)
+ {
+ // ciclo su tutti i parametri indicati...
+ foreach (var item in mtcParams.paramsEndThresh)
+ {
+ if (dataItem.Id.EndsWith(item.Key))
+ {
+ threshDBand = item.Value;
+ }
+ }
+ }
+ }
+ else
+ {
+ threshDBand = 0;
+ }
+ dSamplePeriod = 60;
+ break;
+
+ default:
+ break;
+ }
+ // salvo oggetto x "uso interno"
+ currDataItem = new MtcDataItemExt()
+ {
+ Id = dataItem.Id,
+ Category = dataItem.Category,
+ Constraints = dataItem.Constraints,
+ CoordinateSystem = dataItem.CoordinateSystem,
+ Name = dataItem.Name,
+ NativeScale = dataItem.NativeScale,
+ NativeUnits = dataItem.NativeUnits,
+ SampleRate = dataItem.SampleRate,
+ Representation = dataItem.Representation,
+ SignificantDigits = dataItem.SignificantDigits,
+ Source = dataItem.Source,
+ Statistic = dataItem.Statistic,
+ SubType = dataItem.SubType,
+ Type = dataItem.Type,
+ //TypePath = dataItem.TypePath,
+ Units = dataItem.Units,
+ //XPath = dataItem.XPath,
+ uid = uuid,
+ thresholdDeadBand = threshDBand,
+ samplePeriod = dSamplePeriod,
+ value = value
+ };
+ // log x capire COME ho chiamato alcune cosette...
+ if (dataItem.Id.Contains("EXE_MODE") || dataItem.Id.Contains("RUN_MODE") || dataItem.Id.Contains("POWER") || dataItem.Id.EndsWith("_Status"))
+ {
+ lgInfo($"DEBUG DATA | dataItem.Id : {dataItem.Id}");
+ }
+
+ return currDataItem;
+ }
+
+ ///
+ /// Formatta un dataitem x salvataggio in memoria locale
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ private MtcDataItemExt formatDataItem(ref int dSamplePeriod, ref float threshDBand, ref string uuid, MTConnect.Devices.IDataItem dataItem, string value)
+ {
+ MtcDataItemExt currDataItem;
+ // uuid document parametri secondo categoria...
+ switch (dataItem.Category)
+ {
+ case MTConnect.Devices.DataItemCategory.CONDITION:
+ uuid = $"C_{dataItem.Id}";
+ threshDBand = 0;
+ dSamplePeriod = 0;
+ break;
+
+ case MTConnect.Devices.DataItemCategory.EVENT:
+ uuid = $"E_{dataItem.Id}";
+ threshDBand = 0;
+ dSamplePeriod = 0;
+ break;
+
+ case MTConnect.Devices.DataItemCategory.SAMPLE:
+ uuid = $"S_{dataItem.Id}";
+ // SOLO SE è abilitato il datafiltering...
+ if (enableDataFilter)
+ {
+ threshDBand = 1;
+ // controllo SE ho conf x deadband...
+ if (mtcParams.paramsEndThresh.Count > 0)
+ {
+ // ciclo su tutti i parametri indicati...
+ foreach (var item in mtcParams.paramsEndThresh)
+ {
+ if (dataItem.Id.EndsWith(item.Key))
+ {
+ threshDBand = item.Value;
+ }
+ }
+ }
+ }
+ else
+ {
+ threshDBand = 0;
+ }
+ dSamplePeriod = 60;
+ break;
+
+ default:
+ break;
+ }
+
+ // salvo oggetto x "uso interno"
+ currDataItem = new MtcDataItemExt()
+ {
+ Id = dataItem.Id,
+ Category = dataItem.Category,
+ Constraints = dataItem.Constraints,
+ CoordinateSystem = dataItem.CoordinateSystem,
+ Name = dataItem.Name,
+ NativeScale = dataItem.NativeScale,
+ NativeUnits = dataItem.NativeUnits,
+ SampleRate = dataItem.SampleRate,
+ Representation = dataItem.Representation,
+ SignificantDigits = dataItem.SignificantDigits,
+ Source = dataItem.Source,
+ Statistic = dataItem.Statistic,
+ SubType = dataItem.SubType,
+ Type = dataItem.Type,
+ //TypePath = dataItem.TypePath,
+ Units = dataItem.Units,
+ //XPath = dataItem.XPath,
+ uid = uuid,
+ thresholdDeadBand = threshDBand,
+ samplePeriod = dSamplePeriod,
+ value = value
+ };
+ // log x capire COME ho chiamato alcune cosette...
+ if (dataItem.Id.Contains("EXE_MODE") || dataItem.Id.Contains("RUN_MODE") || dataItem.Id.Contains("POWER") || dataItem.Id.EndsWith("_Status"))
+ {
+ lgInfo($"DEBUG DATA | dataItem.Id : {dataItem.Id}");
+ }
+
+ return currDataItem;
+ }
+
+ ///
+ /// Effettua lettura file di conf specifico MTC da oggetto serializzato json Nome file da cui leggere i parametri json
+ ///
+ private void loadMtcConf(string fileName)
+ {
+ string jsonFullPath = $"{Application.StartupPath}/DATA/CONF/{fileName}";
+ lgInfo($"Apertura file {jsonFullPath}");
+ StreamReader reader = new StreamReader(jsonFullPath);
+ string jsonData = reader.ReadToEnd().Replace("\n", "").Replace("\r", "");
+ if (!string.IsNullOrEmpty(jsonData))
+ {
+ lgInfo($"File json composto da {jsonData.Length} caratteri");
+ try
+ {
+ mtcParams = JsonConvert.DeserializeObject(jsonData);
+ lgInfo($"Decodifica aree MtcParamConf | condPowerOn: {mtcParams.condPowerOn.keyName}={mtcParams.condPowerOn.targetValue} | condWork: {mtcParams.condWork.Count} | keyPartCount: {mtcParams.keyPartCount} | itemTranslation: {mtcParams.itemTranslation.Count} | fluxLogVeto: {mtcParams.fluxLogVeto.Count} | paramsEndThresh: {mtcParams.paramsEndThresh.Count} ");
+ }
+ catch (Exception exc)
+ {
+ lgError($"Eccezione in decodifica conf json MTC:{Environment.NewLine}{exc}");
+ }
+ }
+ else
+ {
+ lgError("Errore in loadMtcConf: file json vuoto!");
+ }
+ reader.Dispose();
+ }
+
+ private void MTC_ref_AssetsReceived(object sender, MTConnect.Assets.IAssetsResponseDocument doc)
+ {
+ lgInfo("ASSET received");
+ queueInEnabCurr = true;
+ connectionOk = true;
+ foreach (var asset in doc.Assets)
+ {
+ // Print AssetId to the Console
+ lgInfo($"Asset: {asset.AssetId}");
+ }
+ }
+
+ private void MTC_ref_ClientStarted(object sender, EventArgs e)
+ {
+ lgInfo($"Client Started!");
+ }
+
+ private void MTC_ref_ClientStopped(object sender, EventArgs e)
+ {
+ lgInfo($"Client Stopped! | {e}");
+ queueInEnabCurr = false;
+ connectionOk = false;
+ }
+
+ private void MTC_ref_ConnectionError(object sender, Exception exc)
+ {
+ lgError($"CONNECTION ERROR returned!{Environment.NewLine}{exc}");
+ queueInEnabCurr = false;
+ connectionOk = false;
+ }
+
+ ///
+ /// Effettuata discovery iniziale valori CURRENT
+ ///
+ ///
+ ///
+ private void MTC_ref_CurrentReceived(object sender, MTConnect.Streams.IStreamsResponseDocument document)
+ {
+ lgInfo("CURRENT received");
+ queueInEnabCurr = true;
+ connectionOk = true;
+ if (document != null)
+ {
+ if (document.Streams != null)
+ {
+ lgInfo($"CurrentSuccessful: trovati {document.Streams.Count()} streams");
+ }
+ checkAndSend(document, true);
+ }
+ else
+ {
+ lgError("MTC_ref_CurrentReceived ERROR: document è null");
+ }
+ }
+
+ ///
+ /// Processing singola observation ricevuta
+ ///
+ ///
+ ///
+ private void MTC_ref_ObservationReceived(object sender, MTConnect.Observations.IObservation observ)
+ {
+ connectionOk = true;
+ processObservation(observ, false);
+ }
+
+ ///
+ /// Effettuata discovery iniziale valori PROBE
+ ///
+ ///
+ ///
+ private void MTC_ref_ProbeReceived(object sender, MTConnect.Devices.IDevicesResponseDocument document)
+ {
+ queueInEnabCurr = true;
+ connectionOk = true;
+ lgInfo("STEP 01 DevicesSuccessful reached!");
+ MtcDataItemExt currDataItem = null;
+ machDataItem currMapoDataItem = null;
+ List elencoDataItems = new List();
+ int dSamplePeriod = 0;
+ float threshDBand = 0;
+ string uuid = "";
+ if (document != null)
+ {
+ foreach (var device in document.Devices)
+ {
+ List dataItems = device.GetDataItems().ToList();
+ //List dataItems = device.GetDataItems();
+ lgInfo($"Inizio STEP 02 per caricare {dataItems.Count} dataItems");
+ foreach (var dataItem in dataItems)
+ {
+ try
+ {
+ currDataItem = formatDataItem(ref dSamplePeriod, ref threshDBand, ref uuid, dataItem, "");
+ // aggiungo se non c'è...
+ if (!dataItemMem.ContainsKey(dataItem.Id))
+ {
+ dataItemMem.Add(dataItem.Id, currDataItem);
+ }
+ var thisCat = (MapoSDK.DataItemCategory)Enum.Parse(typeof(MapoSDK.DataItemCategory), $"{dataItem.Category}");
+ // salvo oggetto x registrazione su server MP-IO
+ currMapoDataItem = new machDataItem()
+ {
+ uuid = dataItem.Id,
+ Category = thisCat,
+ Name = dataItem.Name,
+ Type = dataItem.Type,
+ SubType = dataItem.SubType,
+ Units = dataItem.Units
+ };
+ // aggiungo se non ci fosse
+ if (!elencoDataItems.Contains(currMapoDataItem))
+ {
+ elencoDataItems.Add(currMapoDataItem);
+ }
+ }
+ catch (Exception exc)
+ {
+ lgError($"Eccezione in DevicesSuccessful / DataItem:{Environment.NewLine}{exc}");
+ }
+ }
+ }
+ // invio IN BLOCCO il dataItem serializzati...
+ if (elencoDataItems.Count > 0)
+ {
+ lgInfo($"STEP 03 invio dati di {elencoDataItems.Count} records");
+ sendDataItemsList(elencoDataItems);
+ }
+ hasReadItems = true;
+ lgInfo($"STEP 04: memorizzati {dataItemMem.Count} oggetti in memoria");
+ }
+ else
+ {
+ lgError("STEP 05 error: document null!");
+ }
+ }
+
+ ///
+ /// Ricevuto SAMPLE stream da campionamenti ricevuti
+ ///
+ ///
+ private void MTC_ref_SampleReceived(object sender, MTConnect.Streams.IStreamsResponseDocument document)
+ {
+ connectionOk = true;
+ lgTrace("SAMPLE received");
+ checkAndSend(document, false);
+ }
+
+ ///
+ /// Processing di una singola observ in un datastream
+ ///
+ /// Osservazione da processare
+ /// invio forzato
+ private void processObservation(IObservation observ, bool forceSend)
+ {
+ string sVal = "";
+ string descr = "";
+ DateTime locTStamp = DateTime.Now;
+ // log msg
+ string sMsg = $" - {observ.DataItemId} | {observ.Category}";
+ switch (observ.Category)
+ {
+ case MTConnect.Devices.DataItemCategory.CONDITION:
+ string message = "OK";
+ string level = "";
+ string fullMsg = "";
+ try
+ {
+ descr = itemTranslation("C", observ.DataItemId);
+ locTStamp = observ.Timestamp.ToLocalTime();
+ sVal = $"CONDITION: {locTStamp.ToString()} | descr: {descr} | Id: {observ.DataItemId} | Name: {observ.Name}";
+ if (observ.Values.Count() > 0)
+ {
+ foreach (var item in observ.Values)
+ {
+ sVal += $" | {item.Key}: {item.Value}";
+ if (item.Key == "Level")
+ {
+ level = item.Value;
+ }
+ else if (item.Key == "Message")
+ {
+ message = item.Value;
+ }
+ }
+ fullMsg = $"{level} | {message}";
+ }
+ // condition verboso SEMPRE!
+ lgInfo(sVal);
+ DateTime tStamp = observ.Timestamp;
+ var time2 = tStamp.ToLocalTime();
+ // verifico se salvare
+ bool changed = checkSaveCondition(observ, fullMsg);
+ if (changed || forceSend)
+ {
+ // accodare ed invia nella coda ALARMS (che POI salva in document
+ // MongoDB anche ultimi x minuti di FluxLog...)
+ accodaAlarmLog(sVal, qEncodeFLog(time2, descr, fullMsg));
+ }
+ }
+ catch (Exception exc)
+ {
+ lgError($"Eccezione in decodifica Conditions x StreamSuccesfull{Environment.NewLine}{exc}", false);
+ }
+ break;
+
+ case MTConnect.Devices.DataItemCategory.EVENT:
+ string eValue = "";
+ try
+ {
+ descr = itemTranslation("E", observ.DataItemId);
+ locTStamp = observ.Timestamp.ToLocalTime();
+ sVal = $"EVENT: {locTStamp.ToString()} | descr: {descr} | Id: {observ.DataItemId} | Name: {observ.Name}";
+ if (observ.Values.Count() > 0)
+ {
+ foreach (var item in observ.Values)
+ {
+ sVal += $" | {item.Key}: {item.Value}";
+ if (item.Key == "Result")
+ {
+ eValue = item.Value;
+ }
+ }
+ }
+ if (isVerboseLog)
+ {
+ lgInfo(sVal);
+ }
+ DateTime tStamp = observ.Timestamp;
+ var time2 = tStamp.ToLocalTime();
+ // verifico se salvare
+ bool changed = checkSaveItem(observ, eValue);
+ if (changed || forceSend)
+ {
+ accodaFLog(sVal, qEncodeFLog(time2, descr, eValue));
+ }
+ }
+ catch (Exception exc)
+ {
+ lgError($"Eccezione in decodifica Events x StreamSuccesfull{Environment.NewLine}{exc}", false);
+ }
+ break;
+
+ case MTConnect.Devices.DataItemCategory.SAMPLE:
+ string sValue = "";
+ try
+ {
+ descr = itemTranslation("S", observ.DataItemId);
+ locTStamp = observ.Timestamp.ToLocalTime();
+ sVal = $"SAMPLE: {locTStamp.ToString()} | descr: {descr} | Id: {observ.DataItemId} | Name: {observ.Name}";
+ if (observ.Values.Count() > 0)
+ {
+ foreach (var item in observ.Values)
+ {
+ sVal += $" | {item.Key}: {item.Value}";
+ if (item.Key == "Result")
+ {
+ sValue = item.Value;
+ }
+ }
+ }
+ if (isVerboseLog)
+ {
+ lgInfo(sVal);
+ }
+ DateTime tStamp = observ.Timestamp;
+ var time2 = tStamp.ToLocalTime();
+ // verifico se salvare
+ bool changed = checkSaveSample(observ, sValue);
+ if (changed || forceSend)
+ {
+ accodaFLog(sVal, qEncodeFLog(time2, descr, sValue));
+ }
+ else
+ {
+ if (isVerboseLog)
+ {
+ lgTrace($"NON ACCODATO sample per {observ.DataItemId} - verifica variazione SAMPLE ha dato esito negativo", false);
+ }
+ }
+ }
+ catch (Exception exc)
+ {
+ lgError($"Eccezione in decodifica Samples x StreamSuccesfull{Environment.NewLine}{exc}");
+ }
+ break;
+
+ default:
+ break;
+ }
+ if (observ.Values != null && observ.Values.Count() > 0)
+ {
+ foreach (var item in observ.Values)
+ {
+ sMsg += $" | {item.Key}: {item.Value}";
+ }
+ }
+ lgTrace(sMsg);
+ }
+
+ ///
+ /// Effettua invio a MP/IO dell'elenco serializzato dei dataItems
+ ///
+ ///
+ private void sendDataItemsList(List dataItems)
+ {
+ string rawData = JsonConvert.SerializeObject(dataItems);
+ utils.callUrlNow($"{urlSaveDataItems}", rawData);
+ }
+
+ ///
+ /// Esegue log trace del valore che è filtrato in invio
+ ///
+ ///
+ private void traceObservation(IObservation observation)
+ {
+ string sMsg = $"VETO: - {observation.DataItemId} | {observation.Category}";
+ if (observation.Values != null && observation.Values.Count() > 0)
+ {
+ foreach (var item in observation.Values)
+ {
+ sMsg += $" | {item.Key}: {item.Value}";
+ }
+ }
+ lgTrace(sMsg);
+ }
+
+ #endregion Private Methods
+
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-MTC/MainFormNext.cs b/IOB-WIN-MTC/MainFormNext.cs
new file mode 100644
index 00000000..d549da1c
--- /dev/null
+++ b/IOB-WIN-MTC/MainFormNext.cs
@@ -0,0 +1,40 @@
+using IOB_UT_NEXT;
+using IOB_WIN_MTC.Iob;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IOB_WIN_MTC
+{
+ public class MainFormNext : IOB_WIN_FORM.MainForm
+ {
+
+ ///
+ /// Avvio MainForm
+ ///
+ ///
+ public MainFormNext(string[] args) : base(args)
+ {
+ }
+
+ ///
+ /// Apre la finestra child con conf
+ ///
+ protected override void openChild(string IOB)
+ {
+ if (IOB == null)
+ {
+ throw new ArgumentNullException(nameof(IOB));
+ }
+
+ AdapterFormNext child = new AdapterFormNext(IOB);
+ child.MdiParent = this;
+ child.Text = IOB;
+ child.Show();
+ child.Shown += Child_Shown;
+ child.FormClosed += Child_FormClosed;
+ }
+ }
+}
diff --git a/IOB-WIN-MTC/NLog.config b/IOB-WIN-MTC/NLog.config
new file mode 100644
index 00000000..cd1bcc98
--- /dev/null
+++ b/IOB-WIN-MTC/NLog.config
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/IOB-WIN-MTC/Objects.cs b/IOB-WIN-MTC/Objects.cs
new file mode 100644
index 00000000..faa35322
--- /dev/null
+++ b/IOB-WIN-MTC/Objects.cs
@@ -0,0 +1,40 @@
+using System;
+
+namespace IOB_WIN_MTC
+{
+ ///
+ /// Classe di estensione x oggetti DataItems MTC con struttura e valori
+ ///
+ public class MtcDataItemExt : MTConnect.Devices.DataItem
+ {
+ #region Public Properties
+
+ ///
+ /// Valore (in sec) del periodo di downsampling (0 --> NON usato)
+ ///
+ public int samplePeriod { get; set; } = 60;
+
+ ///
+ /// Valore soglia DeadBand (0 --> non usata)
+ ///
+ public double thresholdDeadBand { get; set; } = 0;
+
+ ///
+ /// UUID univoco dell'oggetto --> flusso
+ ///
+ public string uid { get; set; } = "";
+
+ ///
+ /// Valore Registrato in formato stringa
+ ///
+ public string value { get; set; } = "";
+
+ ///
+ /// Timestamp data-ora evento registrato
+ ///
+ public DateTime valueTimestamp { get; set; } = DateTime.Now;
+
+ #endregion Public Properties
+ }
+
+}
\ No newline at end of file
diff --git a/IOB-WIN-MTC/Program.cs b/IOB-WIN-MTC/Program.cs
new file mode 100644
index 00000000..22411006
--- /dev/null
+++ b/IOB-WIN-MTC/Program.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Windows.Forms;
+
+namespace IOB_WIN_MTC
+{
+ internal static class Program
+ {
+ #region Private Methods
+
+ ///
+ /// Punto di ingresso principale dell'applicazione.
+ /// Parametri di avvio
+ ///
+ [STAThread]
+ private static void Main(string[] args)
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new MainFormNext(args));
+ }
+
+ #endregion Private Methods
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-MTC/Properties/AssemblyInfo.cs b/IOB-WIN-MTC/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..8f5a1a70
--- /dev/null
+++ b/IOB-WIN-MTC/Properties/AssemblyInfo.cs
@@ -0,0 +1,22 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("IOB-WIN-MTC")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyProduct("IOB-WIN-MTC")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("eebe38bd-29ee-45de-9af4-8fa34b58d8ba")]
+
diff --git a/IOB-WIN-MTC/Properties/Resources.Designer.cs b/IOB-WIN-MTC/Properties/Resources.Designer.cs
new file mode 100644
index 00000000..0f013ea4
--- /dev/null
+++ b/IOB-WIN-MTC/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace IOB_WIN_MTC.Properties
+{
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("IOB_WIN_MTC.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/IOB-WIN-MTC/Properties/Resources.resx b/IOB-WIN-MTC/Properties/Resources.resx
new file mode 100644
index 00000000..af7dbebb
--- /dev/null
+++ b/IOB-WIN-MTC/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/IOB-WIN-MTC/Properties/Settings.Designer.cs b/IOB-WIN-MTC/Properties/Settings.Designer.cs
new file mode 100644
index 00000000..894a7528
--- /dev/null
+++ b/IOB-WIN-MTC/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace IOB_WIN_MTC.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/IOB-WIN-MTC/Properties/Settings.settings b/IOB-WIN-MTC/Properties/Settings.settings
new file mode 100644
index 00000000..39645652
--- /dev/null
+++ b/IOB-WIN-MTC/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/IOB-WIN-MTC/Readme/ToDo.txt b/IOB-WIN-MTC/Readme/ToDo.txt
new file mode 100644
index 00000000..161ff489
--- /dev/null
+++ b/IOB-WIN-MTC/Readme/ToDo.txt
@@ -0,0 +1,61 @@
+-------------------------------------
+- 2017.10.19
+-------------------------------------
+OK - da testare ora invio URL a MoonPro
+OK - ALIVE
+OK - ENABLED
+OK - INPUT
+OK - FARE lettura VERA da FANUC almeno della bitmap
+OK - fare gestione come rPI-IOB, ovvero
+OK - gestione QUEUE eventi
+OK - salvataggio su file dello storico eventi rilevati
+OK - gestione dei segnali ballerini (BITMASK!)
+OK - gestione contapezzi CUSTOM
+ - fare gestione configurabile lettura FANUC
+OK - gestione dati G43
+OK - togliere dati F (E0 | 90)
+ - fare integrazione ALTRI varori FANUC, tra cui
+ - allarmi
+OK - load/speed
+OK - overrides (G12, G30)
+
+OK - nuovo metodo chiamata x MP/IO (che dovrà avere nuovo comando x accettare queste chiamate e salvare su tabella SENZA processing, come eventi o come extra... evento NOTA?)
+ - verificare segnali: (vedi doc gsheet)
+ - F001.0: ALARM_PRESENT
+ - F001.7: CN_READY / POWER_ON
+ - STL000.5: AUTO (vers 1)
+ - STL000.7: AUTO (vers 2)
+- Cambiare ordine valutazione eventi frequenza VLF-->VHF
+- Azzerare I contatori quanto si arriva al più lento (quando si azzera lui ripartono comunque tutti...) -> in questo modo scatta un contatore QUANDO GENERAL_COUNTER MOD periodo_Ccntatore == 0
+- rendere parametrica l'assegnazione delle funzioni al diverso ambito frequenza tra i 5 (VHF, HF, NF, LF, VLF)
+- procedura x gestione dati REALTIME (da NON salvare su db ma al limite su REDIS, simil EQN con 2 tab x eliminare dati scaduti)
+
+OK FINIRE SISTEMAZIONE JETCO:
+OK - install servers
+OK - install DB
+OK - conf acquisitore togliendo parti abbozzate x contapezzi/fineciclo
+OK - part program name MAIN con nuova funzione
+
+CREARE NUOVO SW (o configurazione? o ramo alternativo a develop?) x mapping INIZIALE della macchina... ad esempio
+ - si collega a ns server
+ - chiede cosa deve fare (es mappa memorie D da 0 a 9999)
+ - effettua testing e poi fa upload risultati
+ - il ns sw fa i check/controlli modifica
+in questo modo ad esmepio possiamo cercare i contapezzi, i segnali ceh cambiano con il fineciclo nelle aree Y, i contatori STANDARD nelle memorie D, ...
+
+
+GESTIONE LIVE DATA
+L'idea è ceh quando una macchina è "sotto osservazione" ovvero live viene aperta pagina questa debba inviare PIU' DATI di tipo realtime e mostrarli nel browser. Per farlo ci saranno questi elementi
+- si apre una pagina di dettaglio macchina (da tablet? da SITE principale?)
+- questo causa la modifica di una chiave su DB (e/o redis) di stato macchina, del tipo "OnAir=true", e potrebbe essere una chiave a tempo (30 sec poi scade?) e mentre la pagina è aperta e si aggiorna (ogni 1-2 sec oppure Signal-R) questo valore viene confermato (e prorigato)
+- ogni IOB-WIN fa una chiamata "extra" all'URL dedicato al checl "OnAir", e se trova che è abilitato passa in modalità letture frequenti (1/2 al sec?) dei parametri LIVE (es: feed, speed, posizioni assi, load istantanei)
+- se passa inq eusta modalità live invia DI CONTINUO il dato al server IO
+- il server IO salva SU REDIS questi valori sia come "lastVal" che come serie storica
+- le pagine che mostrano i dati si continuano ad aggiornare (da redis) con grafici (chartJs come PIC) e/o valori istantanei
+- le serie storiche vengono ripulite periodicamente (ogni ora? valori + vecchi di 24h ad esempio?)
+- struttura dati REDIS da creare SIMILE a struttura info URL...
+- struttura dati LIVE: ../LIVE/COD_MACC/CURR_VAL (contiene TUTTI i dati LIVE, ultimi ricevuti...)
+- struttura dati TimeSeries: ../LIVE/COD_MACC/DATA_NAME (contiene TUTTI i dati come timeseries, es SPEEDRATE, FEEDRATE, POS_X1, POS_X2, ...)
+- operazione SAVE aggiorna SURR e accoda NUOVO valore...
+- LOAD (rilettura9 POTREBBE fare pulizia se + vecchi di 24h...)
+- la trasmissione verso IO deve avvenire con "multisend, nel
\ No newline at end of file
diff --git a/IOB-WIN-MTC/Resources/ChangeLog.html b/IOB-WIN-MTC/Resources/ChangeLog.html
new file mode 100644
index 00000000..7ab91d78
--- /dev/null
+++ b/IOB-WIN-MTC/Resources/ChangeLog.html
@@ -0,0 +1,120 @@
+
+ MAPO-IOB-WIN
+ v: {{CURRENT-REL}}
+
+ Acquisitore MAPO-IOB per sistemi Windows
+
+ Note di rilascio:
+
+ -
+ v.3.1.* → v.3.2.*
+
+ - Nuovi simulatori con gestione emergenza
+ - Fix gestione invio dati Redis
+ - Implementazione IOB Eurom63
+
+
+ -
+ v.2.6.* → v.3.0.*
+
+ - revisione sistema metodi invio in blocco
+ - Gestione invio contapezzi in step > 1
+ - Gestione eventi in blocco (indipendente e prioritario su EvBlock)
+ - Gestione limite eventi memorizzabili
+ - Integrazione REDIS
+ - Integrazione IOB-MAN
+
+
+ -
+ v.2.5.* → v.2.6.*
+
+ - revisione sistema timeout Ping
+ - Gestione AutoODL in prod generale (non solo SIM)
+
+
+ -
+ v.2.4.* → v.2.5.*
+
+ - Aggiunto adapter MTConnect
+ - Ottimizzazione gestione SIEMENS
+
+
+ -
+ v.2.3.* → v.2.4.*
+
+ - inserita gestione conf json x Flog acquisiti
+ - gestione invio Json blocchi dati FLog
+ - ottimizzazioni varie adapter Siemens
+ - ottimizzazione processo svuotamento code
+ - riduzione interferenza e interblocchi in fase di PLC assente
+
+
+ -
+ Ultime modifiche:
+
+
+ -
+ v.1.18.* → v.2.3.*
+
+ - inserimento WPS x acontrolli WebPage human readable
+ - fix gestione task2exe
+ - aggiunte varie versioni PLC siemens
+ - aggiunto PLC WPS x generiche web pages
+ - revisitazione LOG ODL e contapezzi
+ - modifica pagina presentazione dati (master) x resize
+ - Attivazione IOB SIMULATOR per test di carico (sostituito type DEMO)
+ - Aggiunto simulatore macchine MULTI pallet
+ - Ottimizzazione simulatore
+ - Ottimizzazioni PLC Siemens x riavvio post disconnessione (es spegnimento notturno)
+ - Ottimizzazione processo chiusura in update applicazione
+ - Aggiunta simulazione spegnimento con WU/CD
+
+
+ -
+ v.1.11.* → v.1.18.*
+
+ - Inserimento controller SIEMENS con S7+ library
+ - Inserimento nuove letture FANUC x programmi
+ - Inserimento nuove letture FANUC x SysEx (informazioni sistema)
+ - Inserimento invio FluxLog x parametri estesi (es SysEx, ProgName,...)
+ - FIX visualizzazione dati FluxLog e URL inviati
+ - FIX MAIN program da FANUC (non il current)
+ - Inserita modalita' DUMP memoria (iniziale full + periodica)
+ - Inserimento gestione contapezzi standard/checkBit in IOB.cfg
+ - Inserimento contapezzi da area memoria X
+ - NUOVA Gestione rami cliente e URL di update
+ - Gestione modi CNC
+ - Lettura dari dinamycs FANUC (feed, speed)
+ - aggiunta gestione aree G0..G30 (overrides?)
+ - fix errore disconnessione FANUC (allo spegnimento dl CNC) e memoria valori persistente a 1
+ - fix globali x gestione log IN / FLOG + ottimizzaizone check FANUC (PING)
+ - ottimizzazione fasi di restart in caso di assenza del server (evita reinvii inutili e migliora tempo ripartenza invio)
+ - review procedure controllo connessione x FANUC (es Tornos II)
+ - non richeide più privilegi admin x fare update
+ - gestione segnali inverted
+ - completata gestione configurabilità parametrica segnali (Tornos, CMZ, Biglia)
+ - revisitazione LOG x distinguere processi IOB
+
+
+ -
+ v.0.1.* → v.0.10.*
+
+ - Testato in produzione x update ad avvio e su richiesta
+ - Testato in produzione x lettura dati da Fanuc
+ - Inizio deploy con copia file su area IIS
+ - Prima versione con autoupdate
+ - Test PrettyBin x spostamento dll
+ - Base acquisitore FANUC
+ - Sistema base sw controllo in tray
+
+
+
+
+
+

+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-MTC/Resources/Circuit.ico b/IOB-WIN-MTC/Resources/Circuit.ico
new file mode 100644
index 00000000..a05b27a6
Binary files /dev/null and b/IOB-WIN-MTC/Resources/Circuit.ico differ
diff --git a/IOB-WIN-MTC/Resources/Net.ico b/IOB-WIN-MTC/Resources/Net.ico
new file mode 100644
index 00000000..a33a9eca
Binary files /dev/null and b/IOB-WIN-MTC/Resources/Net.ico differ
diff --git a/IOB-WIN-MTC/Resources/STEAM-IOB-WIN.xml b/IOB-WIN-MTC/Resources/STEAM-IOB-WIN.xml
new file mode 100644
index 00000000..ba4e78f6
Binary files /dev/null and b/IOB-WIN-MTC/Resources/STEAM-IOB-WIN.xml differ
diff --git a/IOB-WIN-MTC/Resources/Start-IOB-WIN.bat b/IOB-WIN-MTC/Resources/Start-IOB-WIN.bat
new file mode 100644
index 00000000..3f8ecaa1
--- /dev/null
+++ b/IOB-WIN-MTC/Resources/Start-IOB-WIN.bat
@@ -0,0 +1,15 @@
+@ECHO OFF
+
+SET EXEName=IOB-WIN.exe
+SET EXEFullPath=C:\Steamware\IOB-WIN\IOB-WIN.exe
+
+TASKLIST | FINDSTR /I "%EXEName%"
+IF ERRORLEVEL 1 GOTO :StartIobWin
+
+REM "Programma ancora in run, nessuna azione necessaria"
+timeout /T 2
+GOTO :EOF
+
+:StartIobWin
+START "" "%EXEFullPath%"
+GOTO :EOF
diff --git a/IOB-WIN-MTC/Resources/SteamWare.ico b/IOB-WIN-MTC/Resources/SteamWare.ico
new file mode 100644
index 00000000..70ccadaf
Binary files /dev/null and b/IOB-WIN-MTC/Resources/SteamWare.ico differ
diff --git a/IOB-WIN-MTC/Resources/logoSteamware.png b/IOB-WIN-MTC/Resources/logoSteamware.png
new file mode 100644
index 00000000..0958b50a
Binary files /dev/null and b/IOB-WIN-MTC/Resources/logoSteamware.png differ
diff --git a/IOB-WIN-MTC/Resources/manifest.xml b/IOB-WIN-MTC/Resources/manifest.xml
new file mode 100644
index 00000000..f66a7e99
--- /dev/null
+++ b/IOB-WIN-MTC/Resources/manifest.xml
@@ -0,0 +1,7 @@
+
+-
+ 1.0.0.0
+ http://seriate.steamware.net:8083/SWS/MAPO/IOB-WIN/{{BRANCHNAME}}/MAPO-IOB-WIN.zip
+ http://seriate.steamware.net:8083/SWS/MAPO/IOB-WIN/{{BRANCHNAME}}/ChangeLog.html
+ false
+
\ No newline at end of file
diff --git a/IOB-WIN-MTC/logs/.placeholder.txt b/IOB-WIN-MTC/logs/.placeholder.txt
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-MTC/logs/.placeholder.txt
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-MTC/packages.config b/IOB-WIN-MTC/packages.config
new file mode 100644
index 00000000..ec6cb5b3
--- /dev/null
+++ b/IOB-WIN-MTC/packages.config
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-MTC/postBuildTgt.bat b/IOB-WIN-MTC/postBuildTgt.bat
new file mode 100644
index 00000000..e2530148
--- /dev/null
+++ b/IOB-WIN-MTC/postBuildTgt.bat
@@ -0,0 +1,97 @@
+@echo off
+echo Inizio processing After Build: configurazione %1 , directory %2
+
+RD /S /Q %2"\lib\ar"
+RD /S /Q %2"\lib\cs"
+RD /S /Q %2"\lib\da"
+RD /S /Q %2"\lib\de"
+RD /S /Q %2"\lib\es"
+RD /S /Q %2"\lib\fr"
+RD /S /Q %2"\lib\it"
+RD /S /Q %2"\lib\ja-JP"
+RD /S /Q %2"\lib\ko"
+RD /S /Q %2"\lib\lv"
+RD /S /Q %2"\lib\nl"
+RD /S /Q %2"\lib\pl"
+RD /S /Q %2"\lib\pt"
+RD /S /Q %2"\lib\pt-BR"
+RD /S /Q %2"\lib\ru"
+RD /S /Q %2"\lib\sk"
+RD /S /Q %2"\lib\sv"
+RD /S /Q %2"\lib\th"
+RD /S /Q %2"\lib\tr"
+RD /S /Q %2"\lib\zh"
+RD /S /Q %2"\lib\zh-TW"
+
+MOVE /Y %2"ar" %2"lib\"
+MOVE /Y %2"cs" %2"lib\"
+MOVE /Y %2"da" %2"lib\"
+MOVE /Y %2"de" %2"lib\"
+MOVE /Y %2"es" %2"lib\"
+MOVE /Y %2"fr" %2"lib\"
+MOVE /Y %2"it" %2"lib\"
+MOVE /Y %2"ja-JP" %2"lib\"
+MOVE /Y %2"ko" %2"lib\"
+MOVE /Y %2"lv" %2"lib\"
+MOVE /Y %2"nl" %2"lib\"
+MOVE /Y %2"pl" %2"lib\"
+MOVE /Y %2"pt" %2"lib\"
+MOVE /Y %2"pt-BR" %2"lib\"
+MOVE /Y %2"ru" %2"lib\"
+MOVE /Y %2"sk" %2"lib\"
+MOVE /Y %2"sv" %2"lib\"
+MOVE /Y %2"th" %2"lib\"
+MOVE /Y %2"tr" %2"lib\"
+MOVE /Y %2"zh" %2"lib\"
+MOVE /Y %2"zh-TW" %2"lib\"
+
+
+if %1 == "Release" goto ReleaseExec
+if %1 == Release goto ReleaseExec
+if %1 == "Debug" goto DebugExec
+if %1 == Debug goto DebugExec
+if %1 == "Remote_DEBUG" goto RemoteDebugExec
+if %1 == Remote_DEBUG goto RemoteDebugExec
+
+:ReleaseExec
+echo Release processing...
+del /S %2"*.pdb""
+del /S %2"*.xml""
+del /S %2"lib/*.pdb""
+echo Release: eliminato pdb + xml!!!
+goto END
+
+:DebugExec
+echo Debug processing...
+
+goto END
+
+
+:RemoteDebugExec
+echo Remote_DEBUG processing, effettuo copia script verso server remoto (ROBOCOPY)
+REM copia script verso server remoto
+REM echo Debug remoto: effettuo robocopy sync (verificare remote per cliente)
+
+REM FINASSI
+REM ROBOCOPY %2 \\10.150.0.1\Steamware\IOB-WIN-MTC-DEB /MIR
+REM Baglietto
+REM ROBOCOPY %2 \\192.168.60.15\Steamware\IOB-WIN-MTC-DEB /MIR
+REM GIACOVELLI LOCOROTONDO
+REM ROBOCOPY %2 \\192.168.1.93\Steamware\IOB-WIN-MTC-DEB /MIR
+REM IMI Remosa
+REM ROBOCOPY %2 \\192.168.0.12\Steamware\IOB-WIN-MTC-DEB /MIR
+
+REM IOB-WIN-SIM
+REM ROBOCOPY %2 \\IOB-WIN-SIMULA\Steamware\IOB-WIN-MTC-DEB /MIR
+
+REM IOBVPN4MACHINE
+REM ROBOCOPY %2 \\10.51.90.5\Steamware\IOB-WIN-MTC-DEB /MIR
+REM ROBOCOPY %2 \\10.51.90.5\Steamware\IOB-WIN-MTC-DEB /MIR /log:RobocopyTransfer.log
+REM ROBOCOPY %2 Z:\IOB-WIN-MTC-DEB /MIR
+REM ROBOCOPY %2 \\10.51.90.10\Steamware\IOB-WIN-MTC-DEB /MIR
+ROBOCOPY %2 \\10.51.90.9\Steamware\IOB-WIN-MTC-DEB /MIR
+
+goto END
+
+:END
+echo Fatto!
\ No newline at end of file
diff --git a/IOB-WIN-MTC/setupTgt.bat b/IOB-WIN-MTC/setupTgt.bat
new file mode 100644
index 00000000..ba685c02
--- /dev/null
+++ b/IOB-WIN-MTC/setupTgt.bat
@@ -0,0 +1,25 @@
+@echo off
+echo Effettua setup dei file specifici per i vari ambienti pre build installer: verifica da nome configurazione %1
+
+
+if %1 == "Release" goto Release
+if %1 == "Debug" goto Debug
+if %1 == "Remote_DEBUG" goto RemoteDebug
+
+:Release
+echo Release: nulla da copiare
+goto END
+
+:Debug
+echo Debug: copia file ini x simulazione Debug
+REM del %2"DATA\CONF\EsaKvara.ini"
+REM copy %2"Resources\SCM\EsaKvara_SIM.ini" %2"DATA\CONF\EsaKvara.ini"
+goto END
+
+
+:RemoteDebug
+echo RemoteDebug: nulla da copiare
+goto END
+
+:END
+echo Fatto!
\ No newline at end of file
diff --git a/IOB-WIN-MTC/temp/.placeholder b/IOB-WIN-MTC/temp/.placeholder
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-MTC/temp/.placeholder
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-NEXT.sln b/IOB-WIN-NEXT.sln
index 3c7a3e16..855ab074 100644
--- a/IOB-WIN-NEXT.sln
+++ b/IOB-WIN-NEXT.sln
@@ -68,8 +68,8 @@ Global
{9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Release|Any CPU.Build.0 = Release|Any CPU
{9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Release|x86.ActiveCfg = Release|Any CPU
{9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Release|x86.Build.0 = Release|Any CPU
- {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Remote_DEBUG|Any CPU.ActiveCfg = Release|Any CPU
- {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Remote_DEBUG|Any CPU.Build.0 = Release|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Remote_DEBUG|Any CPU.ActiveCfg = Debug|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Remote_DEBUG|Any CPU.Build.0 = Debug|Any CPU
{9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Remote_DEBUG|x86.ActiveCfg = Release|Any CPU
{9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Remote_DEBUG|x86.Build.0 = Release|Any CPU
{9BA331BB-9BF1-40E0-AC03-74B43D73A097}.SIEMENS|Any CPU.ActiveCfg = Debug|Any CPU
diff --git a/IOB-WIN-NEXT/AdapterFormNext.cs b/IOB-WIN-NEXT/AdapterFormNext.cs
index b3bf1e24..ea91196d 100644
--- a/IOB-WIN-NEXT/AdapterFormNext.cs
+++ b/IOB-WIN-NEXT/AdapterFormNext.cs
@@ -139,10 +139,12 @@ namespace IOB_WIN_NEXT
btnStart.Enabled = true;
break;
+#if false
case tipoAdapter.MTConnect:
iobObj = new Iob.MTConn(this, IOBConf);
btnStart.Enabled = true;
- break;
+ break;
+#endif
case tipoAdapter.OMRON:
iobObj = new Iob.Omron(this, IOBConf);
diff --git a/IOB-WIN-NEXT/DATA/CONF/3025.ini b/IOB-WIN-NEXT/DATA/CONF/3025.ini
index 6895cf60..2fa97d5b 100644
--- a/IOB-WIN-NEXT/DATA/CONF/3025.ini
+++ b/IOB-WIN-NEXT/DATA/CONF/3025.ini
@@ -26,18 +26,21 @@ CMDREBO=/sendReboot.aspx?idxMacchina=
; Red: Y31.4 | Yellow: Y31.5 | Green Y31.6 | riscaldamento Y7.4 ???
;BIT0=CONN
BIT1=Y31.6
+;BIT2=PZCOUNT.PAR.6711
BIT2=PZCOUNT.MACRO.10100
+;BIT2=STD.MACRO.10100
BIT3=Y31.4
BIT4=Y31.5
-BIT5=Y7.4
-BIT6=X8.4
+; 8.4 --> emg armata= true, 0 = attiva mettere !8.4 (da verificare)
+BIT5=!X8.4
+;BIT6=X8.4
AREAD_START=0
AREAD_SIZE=0
AREAG_SIZE=48
AREAR_START=0
AREAR_SIZE=0
AREAX_START=0
-AREAX_SIZE=8
+AREAX_SIZE=40
AREAY_START=0
AREAY_SIZE=32
PAR_START=6711
@@ -45,32 +48,39 @@ PAR_SIZE=3
[BLINK]
;MAX_COUNTER_BLINK = 30
-MAX_COUNTER_BLINK = 15
+MAX_COUNTER_BLINK = 60
;bit0 = 0
-;bit1 = 0
+;bit1 = 1
;bit2 = 0
;bit3 = 0
-;bit4 = 1
+;bit4 = 0
;bit5 = 0
;bit6 = 0
;bit7 = 0
-BLINK_FILT=0
+BLINK_FILT=2
;BLINK_FILT=16
[OPTPAR]
-;PZCOUNT_MODE=STD.PAR.6711
-;PZREQ_MODE=STD.PAR.6713
+;PZCOUNT_MODE=STD|BIT
+;PZCOUNT_MODE=STD.PAR.6711
PZCOUNT_MODE=STD.MACRO.10100
PZREQ_MODE=STD.MACRO.10000
PZGTOT_MODE=STD.PAR.6712
-;PZREQ_MODE=STD.PAR.6713
;PZCAD_MODE=STD.D.6408.DW
ENABLE_PZ_RESET=TRUE
ENABLE_PZ_RESET_stopSetup=TRUE
;gestione invio pezzi in blocco
ENABLE_SEND_PZC_BLOCK=TRUE
-MIN_SEND_PZC_BLOCK=5
+MIN_SEND_PZC_BLOCK=0
MAX_SEND_PZC_BLOCK=100
+DISABLE_SEND_WDST=TRUE
[BRANCH]
-NAME=master
\ No newline at end of file
+NAME=master
+
+; Tags manuali
+[TAGS]
+Customer=JETCO
+HostOS=WIN
+HostName=IOB-WIN-09
+HostAddr=192.168.1.133
diff --git a/IOB-WIN-NEXT/DATA/CONF/MAIN.ini b/IOB-WIN-NEXT/DATA/CONF/MAIN.ini
index 2533e40d..1be77771 100644
--- a/IOB-WIN-NEXT/DATA/CONF/MAIN.ini
+++ b/IOB-WIN-NEXT/DATA/CONF/MAIN.ini
@@ -52,8 +52,8 @@ CLI_INST=SteamWareSim
;STARTLIST=Tend_RAMA_10_47
;STARTLIST=3024-PING
;STARTLIST=2015
-STARTLIST=SIMUL_01
-;STARTLIST=3024
+;STARTLIST=SIMUL_01
+STARTLIST=3025
MAXCNC=10
\ No newline at end of file
diff --git a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj
index 84540ede..c1cf4bb5 100644
--- a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj
+++ b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj
@@ -155,78 +155,12 @@
..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll
-
- ..\packages\Microsoft.Extensions.Configuration.7.0.0\lib\net462\Microsoft.Extensions.Configuration.dll
-
-
- ..\packages\Microsoft.Extensions.Configuration.Abstractions.7.0.0\lib\net462\Microsoft.Extensions.Configuration.Abstractions.dll
-
-
- ..\packages\Microsoft.Extensions.Configuration.Binder.7.0.0\lib\net462\Microsoft.Extensions.Configuration.Binder.dll
-
-
- ..\packages\Microsoft.Extensions.Configuration.CommandLine.7.0.0\lib\net462\Microsoft.Extensions.Configuration.CommandLine.dll
-
-
- ..\packages\Microsoft.Extensions.Configuration.EnvironmentVariables.7.0.0\lib\net462\Microsoft.Extensions.Configuration.EnvironmentVariables.dll
-
-
- ..\packages\Microsoft.Extensions.Configuration.FileExtensions.7.0.0\lib\net462\Microsoft.Extensions.Configuration.FileExtensions.dll
-
-
- ..\packages\Microsoft.Extensions.Configuration.Json.7.0.0\lib\net462\Microsoft.Extensions.Configuration.Json.dll
-
-
- ..\packages\Microsoft.Extensions.Configuration.UserSecrets.7.0.0\lib\net462\Microsoft.Extensions.Configuration.UserSecrets.dll
-
-
- ..\packages\Microsoft.Extensions.DependencyInjection.7.0.0\lib\net462\Microsoft.Extensions.DependencyInjection.dll
-
..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.9.0.0\lib\net462\Microsoft.Extensions.DependencyInjection.Abstractions.dll
-
- ..\packages\Microsoft.Extensions.FileProviders.Abstractions.7.0.0\lib\net462\Microsoft.Extensions.FileProviders.Abstractions.dll
-
-
- ..\packages\Microsoft.Extensions.FileProviders.Physical.7.0.0\lib\net462\Microsoft.Extensions.FileProviders.Physical.dll
-
-
- ..\packages\Microsoft.Extensions.FileSystemGlobbing.7.0.0\lib\net462\Microsoft.Extensions.FileSystemGlobbing.dll
-
-
- ..\packages\Microsoft.Extensions.Hosting.7.0.0\lib\net462\Microsoft.Extensions.Hosting.dll
-
-
- ..\packages\Microsoft.Extensions.Hosting.Abstractions.7.0.0\lib\net462\Microsoft.Extensions.Hosting.Abstractions.dll
-
-
- ..\packages\Microsoft.Extensions.Logging.7.0.0\lib\net462\Microsoft.Extensions.Logging.dll
-
..\packages\Microsoft.Extensions.Logging.Abstractions.9.0.0\lib\net462\Microsoft.Extensions.Logging.Abstractions.dll
-
- ..\packages\Microsoft.Extensions.Logging.Configuration.7.0.0\lib\net462\Microsoft.Extensions.Logging.Configuration.dll
-
-
- ..\packages\Microsoft.Extensions.Logging.Console.7.0.0\lib\net462\Microsoft.Extensions.Logging.Console.dll
-
-
- ..\packages\Microsoft.Extensions.Logging.Debug.7.0.0\lib\net462\Microsoft.Extensions.Logging.Debug.dll
-
-
- ..\packages\Microsoft.Extensions.Logging.EventLog.7.0.0\lib\net462\Microsoft.Extensions.Logging.EventLog.dll
-
-
- ..\packages\Microsoft.Extensions.Logging.EventSource.7.0.0\lib\net462\Microsoft.Extensions.Logging.EventSource.dll
-
-
- ..\packages\Microsoft.Extensions.Options.7.0.0\lib\net462\Microsoft.Extensions.Options.dll
-
-
- ..\packages\Microsoft.Extensions.Options.ConfigurationExtensions.7.0.0\lib\net462\Microsoft.Extensions.Options.ConfigurationExtensions.dll
-
..\packages\Microsoft.Extensions.Primitives.7.0.0\lib\net462\Microsoft.Extensions.Primitives.dll
@@ -259,33 +193,6 @@
..\packages\MQTTnet.Extensions.ManagedClient.4.3.3.952\lib\net461\MQTTnet.Extensions.ManagedClient.dll
-
- ..\packages\MTConnect.NET.6.5.1\lib\net462\MTConnect.NET.dll
-
-
- ..\packages\MTConnect.NET-Common.6.5.1\lib\net462\MTConnect.NET-Common.dll
-
-
- ..\packages\MTConnect.NET-HTTP.6.5.1\lib\net462\MTConnect.NET-HTTP.dll
-
-
- ..\packages\MTConnect.NET-JSON.6.5.1\lib\net462\MTConnect.NET-JSON.dll
-
-
- ..\packages\MTConnect.NET-JSON-cppagent.6.5.1\lib\net462\MTConnect.NET-JSON-cppagent.dll
-
-
- ..\packages\MTConnect.NET-MQTT.6.5.1\lib\net462\MTConnect.NET-MQTT.dll
-
-
- ..\packages\MTConnect.NET-SHDR.6.5.1\lib\net462\MTConnect.NET-SHDR.dll
-
-
- ..\packages\MTConnect.NET-TLS.6.5.1\lib\net462\MTConnect.NET-TLS.dll
-
-
- ..\packages\MTConnect.NET-XML.6.5.1\lib\net462\MTConnect.NET-XML.dll
-
..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll
@@ -571,7 +478,6 @@
-
@@ -617,21 +523,12 @@
-
- Always
-
-
-
-
-
-
-
@@ -648,9 +545,6 @@
-
- Always
-
Always
@@ -751,17 +645,11 @@
-
+
+ Always
+
-
- Always
-
-
- Always
-
-
-
@@ -789,8 +677,6 @@
-
-
@@ -866,8 +752,6 @@
-
-
@@ -878,14 +762,8 @@
Always
-
-
-
-
-
-
@@ -900,9 +778,6 @@
-
- Always
-
@@ -920,8 +795,6 @@
-
-
@@ -1013,8 +886,6 @@
-
-
Always
diff --git a/IOB-WIN-NEXT/Iob/GenericNext.cs b/IOB-WIN-NEXT/Iob/GenericNext.cs
index 76a1e168..49bf970e 100644
--- a/IOB-WIN-NEXT/Iob/GenericNext.cs
+++ b/IOB-WIN-NEXT/Iob/GenericNext.cs
@@ -4,8 +4,6 @@ using IOB_UT_NEXT;
using IOB_WIN_FORM;
using MapoSDK;
using MathNet.Numerics.Statistics;
-using MTConnect;
-using MTConnect.Clients;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NLog;
diff --git a/IOB-WIN-NEXT/Objects.cs b/IOB-WIN-NEXT/Objects.cs
index 1437a3b0..7535210e 100644
--- a/IOB-WIN-NEXT/Objects.cs
+++ b/IOB-WIN-NEXT/Objects.cs
@@ -2,6 +2,7 @@
namespace IOB_WIN_NEXT
{
+#if false
///
/// Classe di estensione x oggetti DataItems MTC con struttura e valori
///
@@ -35,11 +36,9 @@ namespace IOB_WIN_NEXT
public DateTime valueTimestamp { get; set; } = DateTime.Now;
#endregion Public Properties
- }
+ }
+#endif
- public class Objects
- {
- }
///
/// Classe di estensione x oggetti DataItems OPC-UA con struttura e valori
diff --git a/IOB-WIN-NEXT/packages.config b/IOB-WIN-NEXT/packages.config
index 78c3685b..9af14d81 100644
--- a/IOB-WIN-NEXT/packages.config
+++ b/IOB-WIN-NEXT/packages.config
@@ -15,30 +15,8 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -49,15 +27,6 @@
-
-
-
-
-
-
-
-
-
diff --git a/IOB-WIN-OPC-UA.sln b/IOB-WIN-OPC-UA.sln
new file mode 100644
index 00000000..221674f9
--- /dev/null
+++ b/IOB-WIN-OPC-UA.sln
@@ -0,0 +1,83 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.2.32505.173
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VersGen", "VersGen\VersGen.csproj", "{58E399F3-9D4E-49D3-AB35-9ED536543D50}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{B52E3E86-1B82-4F4D-982C-0C8909CD2A28}"
+ ProjectSection(SolutionItems) = preProject
+ .editorconfig = .editorconfig
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IOB-UT-NEXT", "IOB-UT-NEXT\IOB-UT-NEXT.csproj", "{90512E12-29FC-460D-94CC-648C2A072DBD}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IOB-WIN-FORM", "IOB-WIN-FORM\IOB-WIN-FORM.csproj", "{9BA331BB-9BF1-40E0-AC03-74B43D73A097}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IOB-WIN-PING", "IOB-WIN-PING\IOB-WIN-PING.csproj", "{6ADF1E82-124C-489C-99EF-A857C933D362}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|x86 = Release|x86
+ Remote_DEBUG|Any CPU = Remote_DEBUG|Any CPU
+ Remote_DEBUG|x86 = Remote_DEBUG|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Debug|x86.Build.0 = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Release|Any CPU.Build.0 = Release|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Release|x86.ActiveCfg = Release|x86
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Release|x86.Build.0 = Release|x86
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Remote_DEBUG|Any CPU.ActiveCfg = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Remote_DEBUG|Any CPU.Build.0 = Debug|Any CPU
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Remote_DEBUG|x86.ActiveCfg = Remote_DEBUG|x86
+ {58E399F3-9D4E-49D3-AB35-9ED536543D50}.Remote_DEBUG|x86.Build.0 = Remote_DEBUG|x86
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Debug|x86.ActiveCfg = Debug|x86
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Debug|x86.Build.0 = Debug|x86
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Release|x86.ActiveCfg = Release|x86
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Release|x86.Build.0 = Release|x86
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Remote_DEBUG|Any CPU.ActiveCfg = Debug|Any CPU
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Remote_DEBUG|Any CPU.Build.0 = Debug|Any CPU
+ {90512E12-29FC-460D-94CC-648C2A072DBD}.Remote_DEBUG|x86.ActiveCfg = Release|x86
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Debug|x86.Build.0 = Debug|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Release|x86.ActiveCfg = Release|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Release|x86.Build.0 = Release|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Remote_DEBUG|Any CPU.ActiveCfg = Debug|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Remote_DEBUG|Any CPU.Build.0 = Debug|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Remote_DEBUG|x86.ActiveCfg = Release|Any CPU
+ {9BA331BB-9BF1-40E0-AC03-74B43D73A097}.Remote_DEBUG|x86.Build.0 = Release|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Debug|x86.Build.0 = Debug|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Release|x86.ActiveCfg = Release|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Release|x86.Build.0 = Release|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Remote_DEBUG|Any CPU.ActiveCfg = Release|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Remote_DEBUG|Any CPU.Build.0 = Release|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Remote_DEBUG|x86.ActiveCfg = Release|Any CPU
+ {6ADF1E82-124C-489C-99EF-A857C933D362}.Remote_DEBUG|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {801DCDC5-B7D3-4EA5-B543-783D2C91765F}
+ EndGlobalSection
+EndGlobal
diff --git a/IOB-WIN-OPC-UA/AdapterFormNext.cs b/IOB-WIN-OPC-UA/AdapterFormNext.cs
new file mode 100644
index 00000000..d4b03e39
--- /dev/null
+++ b/IOB-WIN-OPC-UA/AdapterFormNext.cs
@@ -0,0 +1,56 @@
+using IOB_UT_NEXT;
+using IOB_WIN_PING.Iob;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IOB_WIN_PING
+{
+ public class AdapterFormNext: IOB_WIN_FORM.AdapterForm
+ {
+
+ ///
+ /// Avvio MainForm
+ ///
+ ///
+ public AdapterFormNext(string codIOB): base(codIOB)
+ {
+ }
+ ///
+ /// carica IOB richiesto
+ ///
+ protected override void loadIobType()
+ {
+ if (IOBConf != null)
+ {
+ switch (tipoScelto)
+ {
+
+ case tipoAdapter.PingWatchdog:
+ iobObj = new IOB_WIN_FORM.Iob.PingWatchDog(this, IOBConf);
+ btnStart.Enabled = true;
+ break;
+
+ case tipoAdapter.SIMULA:
+ case tipoAdapter.ND:
+ default:
+ iobObj = new IOB_WIN_FORM.Iob.Simula(this, IOBConf);
+ btnStart.Enabled = false;
+ break;
+ }
+ lblCncText = $"CNC: {IOBConf.tipoIob} [{IOBConf.cncIpAddr}:{IOBConf.cncPort}]";
+ lblSrvUrlText = $"SRV: {IOBConf.serverData.MPIP} | URL: {IOBConf.serverData.MPURL}{IOBConf.serverData.CMDBASE}";
+
+ // aggancio evento refresh
+ iobObj.eh_refreshed += IobObj_eh_refreshed;
+
+ // carico i default values su interfaccia
+ setDefaults();
+
+ displayTaskAndLog($"Caricata conf per adapter {tipoScelto}");
+ }
+ }
+ }
+}
diff --git a/IOB-WIN-OPC-UA/App.Debug.config b/IOB-WIN-OPC-UA/App.Debug.config
new file mode 100644
index 00000000..42297ccc
--- /dev/null
+++ b/IOB-WIN-OPC-UA/App.Debug.config
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/App.Release.config b/IOB-WIN-OPC-UA/App.Release.config
new file mode 100644
index 00000000..0f80d173
--- /dev/null
+++ b/IOB-WIN-OPC-UA/App.Release.config
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/App.config b/IOB-WIN-OPC-UA/App.config
new file mode 100644
index 00000000..93faf2cd
--- /dev/null
+++ b/IOB-WIN-OPC-UA/App.config
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/DATA/CONF/FTP-PING.ini b/IOB-WIN-OPC-UA/DATA/CONF/FTP-PING.ini
new file mode 100644
index 00000000..efe46cca
--- /dev/null
+++ b/IOB-WIN-OPC-UA/DATA/CONF/FTP-PING.ini
@@ -0,0 +1,59 @@
+;Configurazione IOB-WIN
+[IOB]
+;Macchina TEST PING
+CNCTYPE=PingWatchdog
+PING_MS_TIMEOUT=500
+IOB_NAME=FTP_SONATEST
+
+[MACHINE]
+VENDOR=STEAMWARE
+MODEL=WATCHDOG
+
+[CNC]
+IP=10.74.82.204
+PORT=0000
+PING_IP=10.74.82.204
+GETPRGNAME=false
+
+[SERVER]
+MPIP=http://10.74.82.218
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+CMD_ODL_STARTED=/IOB/getCurrOdlStart/
+CMD_FORCLE_SPLIT_ODL=/IOB/forceSplitOdlFull/
+CMD_IDLE_TIME=/IOB/getIdlePeriod/
+
+[MEMORY]
+
+[BLINK]
+;MAX_COUNTER_BLINK = 30
+MAX_COUNTER_BLINK = 30
+BLINK_FILT=0
+
+[OPTPAR]
+VETO_QUEUE_IN=15
+AUTO_CHANGE_ODL=false
+POWEROFF_TIMEOUT_SEC=60
+DISABLE_PZCOUNT=TRUE
+;; gestioni PING
+;MAX_TRY_PING=3
+;VETO_QUEUE_IN=4
+;VETO_PING_SEC=4
+;VETO_CHECKDIR_SEC=10
+;MAX_ELAPSED_TIME_SEC=60
+;VETO_SEND_SNAPSHOT=3
+
+[BRANCH]
+NAME=master
+
+; Tags manuali
+[TAGS]
+Customer=SteamWare
+HostOS=WIN
+HostName=IOB-WIN-SIMULA
+HostAddr=10.74.82.76
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/DATA/CONF/IOB.ini b/IOB-WIN-OPC-UA/DATA/CONF/IOB.ini
new file mode 100644
index 00000000..9ac13668
--- /dev/null
+++ b/IOB-WIN-OPC-UA/DATA/CONF/IOB.ini
@@ -0,0 +1,50 @@
+;Configurazione IOB-WIN
+[IOB]
+CNCTYPE=FANUC
+;IDXMACC=3001
+
+[CNC]
+; TEST TORNOS!
+;IP=192.168.1.80
+IP=172.16.199.10
+PORT=8193
+
+[SERVER]
+MPIP=http://10.74.82.219
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+
+[MEMORY]
+BITRED=Y8.4
+BITYELLOW=Y8.5
+BITGREEN=Y8.6
+
+[BLINK]
+;MAX_COUNTER_BLINK = 30
+MAX_COUNTER_BLINK = 15
+;bit0 = 0
+;bit1 = 0
+;bit2 = 1
+;bit3 = 1
+;bit4 = 1
+;bit5 = 0
+;bit6 = 0
+;bit7 = 0
+BLINK_FILT=0
+;BLINK_FILT=28
+
+[OPTPAR]
+;PZCOUNT_MODE=STD|BIT
+PZCOUNT_MODE=BIT
+PZ_CAD_MADDR=1602
+PZ_REQ_MADDR=1603
+PZ_DONE_MADDR=1604
+PZ_GTOT_MADDR=1605
+
+[BRANCH]
+NAME=master
diff --git a/IOB-WIN-OPC-UA/DATA/CONF/MAIN.ini b/IOB-WIN-OPC-UA/DATA/CONF/MAIN.ini
new file mode 100644
index 00000000..43299be3
--- /dev/null
+++ b/IOB-WIN-OPC-UA/DATA/CONF/MAIN.ini
@@ -0,0 +1,61 @@
+;Configurazione IOB-WIN GENERALE
+[BRANCH]
+NAME=master
+
+[SERVER]
+
+; Server Steamware
+MPIP=10.74.82.218
+MPURL=/MP/IO
+CMDREBO=/IOB/sendRebootGateway?GWIP=
+CMDIOB2CALL=/IOB/getIob2call?GWIP=
+
+;Client Install
+CLI_INST=SteamWareSim
+
+[IOB]
+;--- TEST sul campo
+; SIMULAZIONE verso server ufficio
+;STARTLIST=SIMUL_01,SIMUL_02,SIMUL_03,SIMUL_04
+;STARTLIST=PIZ09
+;STARTLIST=VL25
+;STARTLIST=SIMUL_03
+;STARTLIST=GIACO_CEDAX_001
+;STARTLIST=GIACO_ICOEL_002
+;STARTLIST=GIACO_CENTERFRIGO
+;STARTLIST=GIACO_NWSE
+;STARTLIST=SIM_DP_01
+;STARTLIST=WPS
+;STARTLIST=FINASSI_HELPI_01
+;STARTLIST=FINASSI_OMP_01
+;STARTLIST=BAGLIETTO_CIMOLAI_01
+;STARTLIST=GIACO_SAIM_003
+;STARTLIST=PIZ09
+;STARTLIST=IMI_RIMOR_SAB_01
+;STARTLIST=IMI_RIMOR_SAB_02
+;STARTLIST=IMI_RIMOR_VER_01
+;STARTLIST=IMI_RIMOR_VER_02
+;STARTLIST=IMI_PAMA_392
+;STARTLIST=Tend_FIMAT_01
+;STARTLIST=PIZ10
+;STARTLIST=IMI_SOITAAB_Z2342_02
+;STARTLIST=IMI_GOMBA
+;STARTLIST=SIMUL_02
+;STARTLIST=SIM_DP_01
+;STARTLIST=FTP_SONATEST
+;STARTLIST=L020
+;STARTLIST=PING
+;STARTLIST=VL27
+
+;NB: mettere copy always ai file di conf x fare test...
+;STARTLIST=2014
+;STARTLIST=Tend_RAMA_10_47
+;STARTLIST=3024-PING
+;STARTLIST=2015
+;STARTLIST=3024
+;STARTLIST=SIMUL_01
+;STARTLIST=WPS
+STARTLIST=FTP-PING
+
+
+MAXCNC=10
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/DATA/CONF/PING.ini b/IOB-WIN-OPC-UA/DATA/CONF/PING.ini
new file mode 100644
index 00000000..1a4c140e
--- /dev/null
+++ b/IOB-WIN-OPC-UA/DATA/CONF/PING.ini
@@ -0,0 +1,51 @@
+;Configurazione IOB-WIN
+[IOB]
+CNCTYPE=PingWatchdog
+PING_MS_TIMEOUT=500
+;IOB_NAME=SIMUL_09
+IOB_NAME=SIMUL_01
+
+[MACHINE]
+VENDOR=STEAMWARE
+MODEL=WATCHDOG
+
+[CNC]
+IP=10.74.83.183
+;IP=10.74.82.253
+PORT=0000
+
+[SERVER]
+MPIP=http://10.74.82.218
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+CMD_ODL_STARTED=/IOB/getCurrOdlStart/
+CMD_FORCLE_SPLIT_ODL=/IOB/forceSplitOdlFull/
+CMD_IDLE_TIME=/IOB/getIdlePeriod/
+
+[MEMORY]
+
+[BLINK]
+MAX_COUNTER_BLINK = 15
+BLINK_FILT=0
+
+[OPTPAR]
+VETO_QUEUE_IN=15
+AUTO_CHANGE_ODL=false
+POWEROFF_TIMEOUT_SEC=60
+DISABLE_PZCOUNT=TRUE
+;; gestioni PING
+;MAX_TRY_PING=3
+;VETO_QUEUE_IN=4
+;VETO_PING_SEC=4
+;VETO_CHECKDIR_SEC=10
+;MAX_ELAPSED_TIME_SEC=60
+;VETO_SEND_SNAPSHOT=3
+
+
+[BRANCH]
+NAME=master
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/DATA/CONF/SIMUL_01.ini b/IOB-WIN-OPC-UA/DATA/CONF/SIMUL_01.ini
new file mode 100644
index 00000000..08975356
--- /dev/null
+++ b/IOB-WIN-OPC-UA/DATA/CONF/SIMUL_01.ini
@@ -0,0 +1,120 @@
+;Configurazione IOB-WIN
+[IOB]
+CNCTYPE=SIMULA
+PING_MS_TIMEOUT=500
+MinDeltaSec=5
+EnableRedisQueue=true
+;IOB_NAME=TFT_RAMA_001
+
+[MACHINE]
+VENDOR=STEAMWARE
+MODEL=DEMO_SIMULATOR
+
+[CNC]
+IP=127.0.0.1
+PORT=0000
+
+[SERVER]
+MPIP=http://10.74.82.218
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+CMD_ODL_STARTED=/IOB/getCurrOdlStart/
+CMD_FORCLE_SPLIT_ODL=/IOB/forceSplitOdlFull/
+CMD_IDLE_TIME=/IOB/getIdlePeriod/
+
+[MEMORY]
+
+[BLINK]
+MAX_COUNTER_BLINK = 15
+BLINK_FILT=0
+
+[OPTPAR]
+DISABLE_SEND_WDST=TRUE
+AUTO_CHANGE_ODL=true
+AUTO_SNAPSHOT_DOSSIER=true
+CHANGE_ODL_HOURS=24
+CHANGE_ODL_IDLE_MIN=0
+CHANGE_ODL_MODE=SIMUL
+; gestione custom timer
+timerIntMs=100
+;PZCOUNT_MODE=STD.[PAR/MEM].info|BIT.indice
+PZCOUNT_MODE=BIT
+ENABLE_PZ_RESET=TRUE
+;gestione invio pezzi in blocco
+ENABLE_SEND_PZC_BLOCK=TRUE
+MIN_SEND_PZC_BLOCK=0
+MAX_SEND_PZC_BLOCK=100
+; gestione cambio ODL automatico (minuti minimi durata)
+MIN_DURATA_ODL=960
+; per il simulatore: 50|1 = WAIT 50, DURATION 1 con riferimento al PERIODO base (PER_BASE in ms, default 10 secondi)
+PER_BASE=10100
+SIM_PZCNT=5|1
+SIM_ALARM=100|10
+SIM_MANU=50|6
+; indica gestione e simulazione bit 5 --> slow
+SIM_SLOW=3600|20
+; indica gestione e simulazione bit 6 --> warmup/cooldown
+SIM_WUCD=8000|20
+; indica gestione e simulazione bit 7 --> emergenza
+SIM_EMRG=4000|10
+; indica simulazione delle funzionalità power ON/ OFF
+SIM_POW_ON_OFF=true
+T_ON=7
+T_OFF=22
+; indica simulazione controlli utente
+SIM_RC=81|1
+; indica simulazione registro scarti
+SIM_RS=161|1
+; indica simulazione dichiarazioni (note) utente
+SIM_DICH=261|1
+; indica matricola opr simulata
+SIM_MATR_OPR=1
+
+; test x datasync...
+DATA_SYNC_AT_START=true
+; test sim dossiers tipo Kepware
+SIM_KWP=true
+
+; gestione DynData simulati
+ENABLE_DYN_DATA=TRUE
+FORCE_DYN_DATA=TRUE
+NEW_DYN_DATA=TRUE
+; indica parametri gestione TcMan
+TC_MAX_TC_FACTOR=3.9
+TC_LAMBDA=0.4
+TC_MAX_INCR=5
+MAX_PZ_INCR_PERC=1000
+; conf parametri memoria READ/WRITE
+PARAM_CONF=SIMUL_01.json
+ALARM_CONF=SIMUL_01_alarm.json
+;test gestione logfile (eg: soitaab)
+EnabelPodlManFull=true
+CodGruppoIob=STEAMWARE-SIM-FASE-01
+; invio flux alla lettura file
+sendFluxOnRead=true
+
+;conf test FTP
+FTP_SERVER=ftp.steamware.net
+FTP_USER=testftpuser
+FTP_PWD=we4reFromB3rghem!
+FTP_CERT=
+FTP_SKIP=TRUE
+FTP_LOC_DIR=temp\csv
+FTP_REM_DIR=
+CSV_ADD_HEADER=true
+
+
+[BRANCH]
+NAME=master
+
+; Tags manuali
+[TAGS]
+Customer=Steamware
+HostOS=WIN
+HostName=IOB-WIN-SIMULA
+HostAddr=10.74.82.76
diff --git a/IOB-WIN-OPC-UA/DATA/CONF/SIMUL_01.json b/IOB-WIN-OPC-UA/DATA/CONF/SIMUL_01.json
new file mode 100644
index 00000000..d2895eb1
--- /dev/null
+++ b/IOB-WIN-OPC-UA/DATA/CONF/SIMUL_01.json
@@ -0,0 +1,410 @@
+{
+ "mMapWrite": {
+ "setArt": {
+ "name": "setArt",
+ "description": "Articolo",
+ "memAddr": "DB150.DBB12",
+ "tipoMem": "String",
+ "index": 12,
+ "size": 20,
+ "displOrdinal": 1
+ },
+ "setArtNum": {
+ "name": "setArtNum",
+ "description": "# Num Articolo",
+ "memAddr": "DB150.DBB112",
+ "tipoMem": "Int",
+ "index": 112,
+ "size": 4,
+ "displOrdinal": 1
+ },
+ "setComm": {
+ "name": "setComm",
+ "description": "Commessa",
+ "memAddr": "DB150.DBB32",
+ "tipoMem": "String",
+ "index": 32,
+ "size": 20,
+ "displOrdinal": 2
+ },
+ "setCommNum": {
+ "name": "setCommNum",
+ "description": "# NumCommessa",
+ "memAddr": "DB150.DBB132",
+ "tipoMem": "Int",
+ "index": 132,
+ "size": 4,
+ "displOrdinal": 2
+ },
+ "setPzComm": {
+ "name": "setPzComm",
+ "description": "Qta Richiesta",
+ "memAddr": "DB150.DBB8",
+ "tipoMem": "Int",
+ "index": 8,
+ "size": 4,
+ "displOrdinal": 3
+ },
+ "forceSetPzCount": {
+ "name": "forceSetPzCount",
+ "description": "Imposta Qta",
+ "memAddr": "DB150.DBB8",
+ "tipoMem": "Int",
+ "index": 8,
+ "size": 4,
+ "displOrdinal": 11
+ },
+ //"OPC_Set Point.Chain Spped": {
+ // "name": "OPC_Set Point.Chain Spped",
+ // "description": "Chain Spped",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Chain Spped",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Top Overfeeding": {
+ // "name": "OPC_Set Point.Top Overfeeding",
+ // "description": "Top Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Top Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Bottom Overfeeding": {
+ // "name": "OPC_Set Point.Bottom Overfeeding",
+ // "description": "Bottom Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Bottom Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Width Master": {
+ // "name": "OPC_Set Point.Width Master",
+ // "description": "Width Master",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Width Master",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Thermoset Time": {
+ // "name": "OPC_Set Point.Thermoset Time",
+ // "description": "Thermoset Time",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Thermoset Time",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Thermoset Temperature": {
+ // "name": "OPC_Set Point.Thermoset Temperature",
+ // "description": "Thermoset Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Thermoset Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Take Off Overfeeding": {
+ // "name": "OPC_Set Point.Take Off Overfeeding",
+ // "description": "Take Off Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Take Off Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Small Roller Overfeeding": {
+ // "name": "OPC_Set Point.Small Roller Overfeeding",
+ // "description": "Small Roller Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Small Roller Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Scroll Roller Overfeeding": {
+ // "name": "OPC_Set Point.Scroll Roller Overfeeding",
+ // "description": "Scroll Roller Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Scroll Roller Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Right Whell Overfeeding": {
+ // "name": "OPC_Set Point.Right Whell Overfeeding",
+ // "description": "Right Whell Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Right Whell Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Plaiter Overfeeding": {
+ // "name": "OPC_Set Point.Plaiter Overfeeding",
+ // "description": "Plaiter Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Plaiter Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Load cell Weight": {
+ // "name": "OPC_Set Point.Load cell Weight",
+ // "description": "Load cell Weight",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Load cell Weight",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Left Wheel Overfeeding": {
+ // "name": "OPC_Set Point.Left Wheel Overfeeding",
+ // "description": "Left Wheel Overfeeding",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Left Wheel Overfeeding",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Fan 105A Speed": {
+ // "name": "OPC_Set Point.Fan 105A Speed",
+ // "description": "Fan 105A Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Fan 105A Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Fan 105 Speed": {
+ // "name": "OPC_Set Point.Fan 105 Speed",
+ // "description": "Fan 105 Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Fan 105 Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Fan 103A Speed": {
+ // "name": "OPC_Set Point.Fan 103A Speed",
+ // "description": "Fan 103A Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Fan 103A Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Fan 103 Speed": {
+ // "name": "OPC_Set Point.Fan 103 Speed",
+ // "description": "Fan 103 Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Fan 103 Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Fan 101A Speed": {
+ // "name": "OPC_Set Point.Fan 101A Speed",
+ // "description": "Fan 101A Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Fan 101A Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Fan 101 Speed": {
+ // "name": "OPC_Set Point.Fan 101 Speed",
+ // "description": "Fan 101 Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Fan 101 Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Exhaust Fan 1 Speed": {
+ // "name": "OPC_Set Point.Exhaust Fan 1 Speed",
+ // "description": "Exhaust Fan 1 Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Exhaust Fan 1 Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Differentiation Spindle 5": {
+ // "name": "OPC_Set Point.Differentiation Spindle 5",
+ // "description": "Differentiation Spindle 5",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Differentiation Spindle 5",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Differentiation Spindle 4": {
+ // "name": "OPC_Set Point.Differentiation Spindle 4",
+ // "description": "Differentiation Spindle 4",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Differentiation Spindle 4",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Differentiation Spindle 3": {
+ // "name": "OPC_Set Point.Differentiation Spindle 3",
+ // "description": "Differentiation Spindle 3",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Differentiation Spindle 3",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Differentiation Spindle 2": {
+ // "name": "OPC_Set Point.Differentiation Spindle 2",
+ // "description": "Differentiation Spindle 2",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Differentiation Spindle 2",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Differentiation Spindle 1": {
+ // "name": "OPC_Set Point.Differentiation Spindle 1",
+ // "description": "Differentiation Spindle 1",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Differentiation Spindle 1",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Cooling Cell 1 Speed": {
+ // "name": "OPC_Set Point.Cooling Cell 1 Speed",
+ // "description": "Cooling Cell 1 Speed",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Cooling Cell 1 Speed",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Burner 6 Temperature": {
+ // "name": "OPC_Set Point.Burner 6 Temperature",
+ // "description": "Burner 6 Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Burner 6 Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Burner 5 Temperature": {
+ // "name": "OPC_Set Point.Burner 5 Temperature",
+ // "description": "Burner 5 Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Burner 5 Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Burner 4 Temperature": {
+ // "name": "OPC_Set Point.Burner 4 Temperature",
+ // "description": "Burner 4 Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Burner 4 Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Burner 3 Temperature": {
+ // "name": "OPC_Set Point.Burner 3 Temperature",
+ // "description": "Burner 3 Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Burner 3 Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Burner 2 Temperature": {
+ // "name": "OPC_Set Point.Burner 2 Temperature",
+ // "description": "Burner 2 Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Burner 2 Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Burner 1 Temperature": {
+ // "name": "OPC_Set Point.Burner 1 Temperature",
+ // "description": "Burner 1 Temperature",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Burner 1 Temperature",
+ // "index": 0,
+ // "size": 0
+ //},
+ //"OPC_Set Point.Air Humidity Preset Esa 1": {
+ // "name": "OPC_Set Point.Air Humidity Preset Esa 1",
+ // "description": "Air Humidity Preset Esa 1",
+ // "tipoMem": "String",
+ // "memAddr": "ns=2;s=RamosaETN21.RamosaCJ2.Recipe.Air Humidity Preset Esa 1",
+ // "index": 0,
+ // "size": 0
+ //}
+ },
+ "mMapRead": {
+ "TEMP_01": {
+ "name": "TEMP_01",
+ "description": "Temperatura 01",
+ "tipoMem": "Real",
+ "minVal": 18,
+ "maxVal": 24,
+ "displOrdinal": 4
+ },
+ "POWER_01": {
+ "name": "POWER_01",
+ "description": "Potenza impianto",
+ "tipoMem": "Int",
+ "minVal": 40,
+ "maxVal": 80,
+ "displOrdinal": 5
+ },
+ "FEED_OVER": {
+ "name": "FEED_OVER",
+ "description": "FEED override",
+ "tipoMem": "Int",
+ "minVal": 0,
+ "maxVal": 100,
+ "displOrdinal": 6
+ },
+ "RAPID_OVER": {
+ "name": "RAPID_OVER",
+ "description": "RAPID override",
+ "tipoMem": "Int",
+ "minVal": 50,
+ "maxVal": 120,
+ "displOrdinal": 7
+ },
+ "POS_X": {
+ "name": "POS_X",
+ "description": "Asse X",
+ "tipoMem": "Int",
+ "minVal": -2000,
+ "maxVal": 2000,
+ "displOrdinal": 8
+ },
+ "POS_Y": {
+ "name": "POS_Y",
+ "description": "Asse Y",
+ "tipoMem": "Int",
+ "minVal": 0,
+ "maxVal": 2000,
+ "displOrdinal": 9
+ },
+ "POS_Z": {
+ "name": "POS_Z",
+ "description": "Asse Z",
+ "tipoMem": "Int",
+ "minVal": 0,
+ "maxVal": 1500,
+ "displOrdinal": 10
+ }
+ },
+ "optKVP": {
+ "fluxLogReduce": true,
+ "fluxLogRedDeadBand": 1.5,
+ "fluxLogResendPeriod": 15,
+ "hasRecipe": true,
+ "maxPodlQty": 530,
+ "useLocalRecipe": true,
+ "path-locBase": "C:\\MesData\\",
+ "path-00-Arch": "ArchivioRicette\\FIMAT",
+ "path-01-Temp": "01-Temp\\FIMAT",
+ "path-02-Sent": "02-Inviate\\FIMAT",
+ "path-03-Recv": "03-Ricevute\\FIMAT",
+ "path-04-remReq": "Y:\\",
+ "path-05-remExe": "C:\\MesData\\Remote\\Dosed",
+ "path-06-remRec": "R:\\",
+ "path-outReport": "C:\\MesData\\Report",
+ "path-confSetup": "C:\\MesData\\Setup\\setupConsumi.json",
+ "replace-": "{{PODL}}",
+ "replace-": "Kg{{Qty}} | {{Note}}"
+ }, //,
+ //"BaseKeyTranslate": "ns=2;s=RamosaETN21.RamosaCJ2",
+ //"RecipeKeyTranslate": {
+ // "Present Value.General Fan": "Recipe.Chain Spped",
+ // "Present Value.Bottom Overfeeding": "Recipe.Bottom Overfeeding",
+ // "Present Value.Top Overfeeding": "Recipe.Top Overfeeding"
+ //}
+ "mMapWriteLink": {
+ "setArt": "setArtNum",
+ "setComm": "setCommNum"
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/DATA/CONF/SIMUL_01_WD.ini b/IOB-WIN-OPC-UA/DATA/CONF/SIMUL_01_WD.ini
new file mode 100644
index 00000000..56bca173
--- /dev/null
+++ b/IOB-WIN-OPC-UA/DATA/CONF/SIMUL_01_WD.ini
@@ -0,0 +1,51 @@
+;Configurazione IOB-WIN
+[IOB]
+CNCTYPE=PingWatchdog
+PING_MS_TIMEOUT=500
+; attenzione che alcuni eventi vengo scritti cmq nel log di SIMUL_01 invece di SIMUL_01_WD
+IOB_NAME=SIMUL_01
+
+[MACHINE]
+VENDOR=STEAMWARE
+MODEL=WATCHDOG
+
+[CNC]
+; ping vs WIN10-VPN-03 per test
+IP=10.74.83.203
+PORT=0000
+
+[SERVER]
+MPIP=http://10.74.82.218
+MPURL=/MP/IO
+CMDBASE=/IOB/input/
+CMDFLOG=/IOB/flog/
+CMDALIVE=/IOB
+CMDENABLED=/IOB/enabled/
+CMDADV1=?valore=
+CMDREBO=/sendReboot.aspx?idxMacchina=
+CMD_ODL_STARTED=/IOB/getCurrOdlStart/
+CMD_FORCLE_SPLIT_ODL=/IOB/forceSplitOdlFull/
+CMD_IDLE_TIME=/IOB/getIdlePeriod/
+
+[MEMORY]
+
+[BLINK]
+MAX_COUNTER_BLINK = 15
+BLINK_FILT=0
+
+[OPTPAR]
+AUTO_CHANGE_ODL=false
+POWEROFF_TIMEOUT_SEC=60
+ENABLE_SEND_PZC_BLOCK=TRUE
+MIN_SEND_PZC_BLOCK=0
+MAX_SEND_PZC_BLOCK=100
+
+[BRANCH]
+NAME=master
+
+; Tags manuali
+[TAGS]
+Customer=Steamware
+HostOS=WIN
+HostName=IOB-WIN-SIMULA
+HostAddr=10.74.82.76
diff --git a/IOB-WIN-OPC-UA/DATA/CONF/SIMUL_01_alarm.json b/IOB-WIN-OPC-UA/DATA/CONF/SIMUL_01_alarm.json
new file mode 100644
index 00000000..4f6ed310
--- /dev/null
+++ b/IOB-WIN-OPC-UA/DATA/CONF/SIMUL_01_alarm.json
@@ -0,0 +1,859 @@
+[
+ {
+ "description": "Alarm Word 0 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 0",
+ "index": 0,
+ "size": 2,
+ "messages": [
+ "1,ALLARME INVERTER CATENA TRASP. TESSUTO",
+ "2,ALLARME INVERTER CILINDRO SOVRALIMENTAZIONE SUPERIORE",
+ "3,ALLARME INVERTER CILINDRO SOVRALIMENTAZIONE INFERIORE",
+ "4,ALLARME INVERTER RUOTA SOVRALIMENTAZIONE SINISTRA",
+ "5,ALLARME INVERTER RUOTA SOVRALIMENTAZIONE DESTRA",
+ "6,ALLARME INVERTER STACCAPEZZA",
+ "7,ALLARME INVERTER FALDAROTOLATORE",
+ "8,ALLARME INVERTER FALDERUOLE",
+ "9,ALLARME INVERTER ESAUSTORE 1 ",
+ "10,ALLARME FUNE SICUREZZA USCITA",
+ "11,ALLARME VENTILATORE 1 (BASSO)",
+ "12, ALLARME VENTILATORE 2 (BASSO)",
+ "13,ALLARME F.C. MINIMO CAMPO MASTER",
+ "14,ALLARME F.C. MASSIMO CAMPO MASTER",
+ "15,ALLARME PROTEZIONE TAPPETO INGRESSO",
+ "16,RIFERIMENTO POTENZIOMETRI CAMPI ASSENTE"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 1 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 1",
+ "index": 1,
+ "size": 2,
+ "messages": [
+ "17,ALLARME CONDIZIONATORI",
+ "18,EMERGENZA IN CORSO !!!",
+ "19,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 2 POMPA 1",
+ "20,ALLARME POMPA RECUPERO CALORE 3",
+ "21,CONTROLLO UMIDITA' : FUORI CAMPO",
+ "22,ALLARME RILEVATORE ALTEZZA TESSUTO",
+ "23,ALLARME NON RILASCIO TESSUTO SINISTRO",
+ "24,ALLARME NON RILASCIO TESSUTO DESTRO",
+ "25,ALLARME ALIMENTAZIONE 24VAC QUADRO",
+ "26,ALLARME APRICIMOSSE",
+ "27,ALLARME ASCIUGACIMOSSE A INFRAROSSI",
+ "28,ALLARME PROTEZIONE CELLA DI RAFFREDDAMENTO 1",
+ "29,CAMPO PARALLELO 2 ALLARME PROTEZIONE",
+ "30,ALLARME VENTILATORE 3 (BASSO)",
+ "31,ALLARME VENTILATORE 4 (BASSO)",
+ "32,CAMPO PARALLELO 1 ALLARME PROTEZIONE"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 2 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 2",
+ "index": 2,
+ "size": 2,
+ "messages": [
+ "33,CAMPO PARALLELO 3 ALLARME PROTEZIONE",
+ "34,RAGGIUNTO MASSIMO CARICO CELLA DI CARICO TAPPETO",
+ "35,ALLARME FALLOPEZZA SINISTRO",
+ "36,ALLARME FALLOPEZZA DESTRO",
+ "37,PARATIE ANTERIORI APERTE",
+ "38,ALLARME AZIONAMENTO CAMPO CONICO",
+ "39,BLOCCO BRUCIATORE 9",
+ "40,CAMPO MASTER ALLARME PROTEZIONE ",
+ "41,ALLARME PRESSOSTATO TENDICATENA SINISTRO",
+ "42,ALLARME PRESSOSTATO TENDICATENA DESTRO",
+ "43,ALLARME MASSIMO ALLUNGAMENTO CATENA",
+ "44,ALLARME TIPO LAVORO USCITA NON SELEZIONATO",
+ "45,ALLARME RADDRIZZATRAMA",
+ "46,ALLARME SPREMITORE 1",
+ "47,BLOCCO BRUCIATORE 10",
+ "48,BLOCCO BRUCIATORE 11"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 3 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 3",
+ "index": 3,
+ "size": 2,
+ "messages": [
+ "49,BLOCCO BRUCIATORE 12",
+ "50,BLOCCO BRUCIATORE 1",
+ "51,BLOCCO BRUCIATORE 2",
+ "52,BLOCCO BRUCIATORE 3",
+ "53,BLOCCO BRUCIATORE 4",
+ "54,BIELLE FUORI POSIZIONE",
+ "55,GRUPPO FALDATORE FUORI POSIZIONE",
+ "56,SERIE ARRESTI APERTA",
+ "57,MANCANZA LUBRIFICANTE CATENA TRASP. TESSUTO",
+ "58,ALLARME INVERTER PICCOLO ROTOLO",
+ "59,ALLARME PROTEZIONE ALLARGATORI",
+ "60,ALLARME PROTEZIONE ASPIRACIMOSSE",
+ "61,ALLARME TAGLIACIMOSSE SINISTRA",
+ "62,ALLARME TAGLIACIMOSSE DESTRA",
+ "63,ALLARME INVERTER VENTILATORI INV101",
+ "64,ALLARME INVERTER VENTILATORI INV103"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 4 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 4",
+ "index": 4,
+ "size": 2,
+ "messages": [
+ "65,ALLARME TIMEOUT VITE CAMPO MASTER",
+ "66,ALLARME TIMEOUT VITE CAMPO PARALLELO 1",
+ "67,ALLARME TIMEOUT VITE CAMPO PARALLELO 2",
+ "68,ALLARME TIMEOUT VITE CAMPO PARALLELO 3",
+ "69,ALLARME TIMEOUT VITE CAMPO PARALLELO 4",
+ "70,ALLARME TIMEOUT VITE CAMPO PARALLELO 5",
+ "71,ALLARME TIMEOUT VITE CAMPO PARALLELO 6",
+ "72,ALLARME TIMEOUT VITE CAMPO PARALLELO 7",
+ "73,ALLARME TIMEOUT VITE CAMPO PARALLELO 8",
+ "74,ALLARME TIMEOUT VITE CAMPO PARALLELO 9",
+ "75,ALLARME DEVICE_NET ADDR. 32 DA BANCHETTO DI SPALMATURA",
+ "76,ALLARME INVERTER DOGAL ",
+ "77,ALLARME FOTOCELLULA TAPPETO USCITA PIENO",
+ "78,TEMPO DI CICLO PLC SOPRA MASSIMO IMPOSTATO",
+ "79,ERRORE INDIRIZZI SONDE BRUCIATORI",
+ "80,ALLARME VENTILATORE 4 (ALTO)"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 5 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 5",
+ "index": 5,
+ "size": 2,
+ "messages": [
+ "81,ALLARME VENTILATORE 5 (ALTO)",
+ "82,ALLARME VENTILATORE 6 (ALTO)",
+ "83,ALLARME VENTILATORE 7 (ALTO)",
+ "84,SONDA BRUCIATORE 1 INTERROTTA",
+ "85,SONDA BRUCIATORE 2 INTERROTTA",
+ "86,SONDA BRUCIATORE 3 INTERROTTA",
+ "87,SONDA BRUCIATORE 4 INTERROTTA",
+ "88,ALLARME DEVICE_NET ADDR. 0",
+ "89,ALLARME DEVICE_NET ADDR. 1",
+ "90,ALLARME DEVICE_NET ADDR. 2",
+ "91,ALLARME DEVICE_NET ADDR. 3",
+ "92,ALLARME DEVICE_NET ADDR. 4",
+ "93,ALLARME DEVICE_NET ADDR. 5",
+ "94,ALLARME DEVICE_NET ADDR. 6",
+ "95,ALLARME DEVICE_NET ADDR. 7",
+ "96,ALLARME DEVICE_NET ADDR. 8"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 6 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 6",
+ "index": 6,
+ "size": 2,
+ "messages": [
+ "97,ALLARME DEVICE_NET ADDR. 9",
+ "98,ALLARME DEVICE_NET ADDR. 10",
+ "99,ALLARME DEVICE_NET ADDR. 11",
+ "100,ALLARME DEVICE_NET ADDR. 12",
+ "101,ALLARME DEVICE_NET ADDR. 13",
+ "102,ALLARME DEVICE_NET ADDR. 14",
+ "103,ALLARME DEVICE_NET ADDR. 15",
+ "104,ALLARME DEVICE_NET ADDR. 16",
+ "105,ALLARME DEVICE_NET ADDR. 17",
+ "106,ALLARME DEVICE_NET ADDR. 18",
+ "107,ALLARME DEVICE_NET ADDR. 19",
+ "108,ALLARME DEVICE_NET ADDR. 20",
+ "109,ALLARME DEVICE_NET ADDR. 21",
+ "110,ALLARME DEVICE_NET ADDR. 22",
+ "111,ALLARME DEVICE_NET ADDR. 23",
+ "112,ALLARME DEVICE_NET ADDR. 24"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 7 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 7",
+ "index": 7,
+ "size": 2,
+ "messages": [
+ "113,ALLARME DEVICE_NET ADDR. 25",
+ "114,ALLARME DEVICE_NET ADDR. 26",
+ "115,BLOCCO BRUCIATORE 5",
+ "116,BLOCCO BRUCIATORE 6",
+ "117,BLOCCO BRUCIATORE 7",
+ "118,BLOCCO BRUCIATORE 8",
+ "119,SOVRATEMPERATURA BRUCIATORE 1",
+ "120,SOVRATEMPERATURA BRUCIATORE 2",
+ "121,SOVRATEMPERATURA BRUCIATORE 3",
+ "122,SOVRATEMPERATURA BRUCIATORE 4",
+ "123,SOVRATEMPERATURA BRUCIATORE 5",
+ "124,SOVRATEMPERATURA BRUCIATORE 6",
+ "125,SOVRATEMPERATURA BRUCIATORE 7",
+ "126,SOVRATEMPERATURA BRUCIATORE 8",
+ "127,SONDA BRUCIATORE 5 INTERROTTA",
+ "128,SONDA BRUCIATORE 6 INTERROTTA"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 8 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 8",
+ "index": 8,
+ "size": 2,
+ "messages": [
+ "129,SONDA BRUCIATORE 7 INTERROTTA",
+ "130,SONDA BRUCIATORE 8 INTERROTTA",
+ "131,SONDA BRUCIATORE 9 INTERROTTA",
+ "132,SONDA BRUCIATORE 10 INTERROTTA",
+ "133,SONDA BRUCIATORE 11 INTERROTTA",
+ "134,SONDA BRUCIATORE 12 INTERROTTA",
+ "135,SOVRATEMPERATURA BRUCIATORE 9",
+ "136,SOVRATEMPERATURA BRUCIATORE 10",
+ "137,SOVRATEMPERATURA BRUCIATORE 11",
+ "138,SOVRATEMPERATURA BRUCIATORE 12",
+ "139,ALLARME INVERTER VENTILATORI INV105",
+ "140,ALLARME INVERTER VENTILATORI INV107",
+ "141,ALLARME INVERTER VENTILATORI INV109",
+ "142,ALLARME INVERTER VENTILATORI INV111",
+ "143,ALLARME VENTILATORE 5 (BASSO)",
+ "144,ALLARME VENTILATORE 6 (BASSO)"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 9 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 9",
+ "index": 9,
+ "size": 2,
+ "messages": [
+ "145,ALLARME VENTILATORE 7 (BASSO)",
+ "146,ALLARME VENTILATORE 8 (BASSO)",
+ "147,ALLARME VENTILATORE 9 (BASSO)",
+ "148,ALLARME VENTILATORE 10 (BASSO)",
+ "149,ALLARME VENTILATORE 11 (BASSO)",
+ "150,ALLARME VENTILATORE 12 (BASSO)",
+ "151,ALLARME INVERTER ESAUSTORE 2",
+ "152,CAMPO PARALLELO 4 ALLARME PROTEZIONE",
+ "153,CAMPO PARALLELO 5 ALLARME PROTEZIONE",
+ "154,CAMPO PARALLELO 6 ALLARME PROTEZIONE",
+ "155,CAMPO PARALLELO 7 ALLARME PROTEZIONE",
+ "156,CAMPO PARALLELO 8 ALLARME PROTEZIONE",
+ "157,ALLARME INSEGUIMENTO VITE MASTER AGGIUNTA",
+ "158,ALLARME INVERTER CILINDRO RAFFREDDAMENTO",
+ "159,ALLARME TEMPERATURA ESAUSTORI",
+ "160,ALLARME INVERTER RECUPERO CALORE GRUPPO 1 "
+ ]
+ },
+
+ {
+ "description": "Alarm Word 10 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 10",
+ "index": 10,
+ "size": 2,
+ "messages": [
+ "161,ALLARME FINECORSA SX TAPPETO USCITA",
+ "162,ALLARME FINECORSA DX TAPPETO USCITA",
+ "163,ALLARME INVERTER RECUPERO CALORE GRUPPO 2",
+ "164,ALLARME DEVICE_NET ADDR. 31",
+ "165,ALLARME CENTRATORE USCITA",
+ "166,COMPATTATORE NON PRONTO",
+ "167,ALLARME CONTROLLO PIROMETRI",
+ "168,ALLARME ALLARGATORE SU TAPPETO USCITA",
+ "169,ALLARME CONTROLLO FUMI",
+ "170,ALLARME FINECORSA BALLERINO ALTO",
+ "171,ALLARME FINECORSA BALLERINO BASSO",
+ "172,ALLARME PROTEZIONE ASPIRATORE VAPORIZZO INTENSIVO",
+ "173,ALLARME PROTEZIONE BRUCIATORE 1",
+ "174,ALLARME PROTEZIONE BRUCIATORE 2",
+ "175,ALLARME PROTEZIONE BRUCIATORE 3",
+ "176,ALLARME PROTEZIONE BRUCIATORE 4"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 11 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 11",
+ "index": 11,
+ "size": 2,
+ "messages": [
+ "177,ALLARME PROTEZIONE BRUCIATORE 5",
+ "178,ALLARME PROTEZIONE BRUCIATORE 6",
+ "179,ALLARME PROTEZIONE BRUCIATORE 7",
+ "180,ALLARME PROTEZIONE BRUCIATORE 8",
+ "181,ALLARME PROTEZIONE BRUCIATORE 9",
+ "182,ALLARME PROTEZIONE BRUCIATORE 10",
+ "183,ALLARME PROTEZIONE BRUCIATORE 11",
+ "184,ALLARME PROTEZIONE BRUCIATORE 12",
+ "185,TERMOFISSAGGIO O ESSICCAZIONE: TEMPERATURA FUORI CAMPO",
+ "186,TERMOFISSAGGIO O ESSICCAZIONE: VELOCITA' FUORI CAMPO",
+ "187,TERMOFISSAGGIO O ESSICCAZIONE: TEMPO FUORI CAMPO",
+ "188,SISTEMA CAMPI PARALLELI NON TARATO",
+ "189,ALLARME PROTEZIONE VENTOLE BRUCIATORI",
+ "190,CAMPO CONICO SINISTRO SU LIMITE CHIUSURA",
+ "191,CAMPO CONICO SINISTRO SU LIMITE APERTURA",
+ "192,CAMPO CONICO DESTRO SU LIMITE APERTURA"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 12 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 12",
+ "index": 12,
+ "size": 2,
+ "messages": [
+ "193,CAMPO CONICO DESTRO SU LIMITE CHIUSURA",
+ "194,FINECORSA CAMPO CONICO DESTRO SU TRAVERSA",
+ "195,FINECORSA CAMPO CONICO SINISTRO SU TRAVERSA",
+ "196,ALLARME PROTEZIONE INVERTER CAMPO CONICO SINISTRO",
+ "197,ALLARME PROTEZIONE INVERTER CAMPO CONICO DESTRO",
+ "198,ALLARME DEVICE_NET ADDR. 27",
+ "199,ALLARME VENTILATORE 8 (ALTO)",
+ "200,ALLARME VENTILATORE 9 (ALTO)",
+ "201,ALLARME VENTILATORE 10 (ALTO)",
+ "202,ALLARME VENTILATORE 11 (ALTO)",
+ "203,ALLARME VENTILATORE 12 (ALTO)",
+ "204,ALLARME VENTILATORE 1 (ALTO)",
+ "205,ALLARME VENTILATORE 2 (ALTO)",
+ "206,ALLARME VENTILATORE 3 (ALTO)",
+ "207,ALLARME PROTEZIONE CELLA DI RAFFREDDAMENTO 2",
+ "208,ALLARME FINECORSA TANDEM CONTROLLO ANSA TESSUTO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 13 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 13",
+ "index": 13,
+ "size": 2,
+ "messages": [
+ "209,ALLARME FUNE SICUREZZA / PROTEZIONE RIBALTABILE ANTERIORE",
+ "210,ALLARME INVERTER VENTILATORI INV101A",
+ "211,ALLARME INVERTER VENTILATORI INV103A",
+ "212,ALLARME INVERTER VENTILATORI INV105A",
+ "213,ALLARME INVERTER VENTILATORI INV107A",
+ "214,ALLARME INVERTER VENTILATORI INV109A",
+ "215,ALLARME INVERTER VENTILATORI INV111A",
+ "216,ALLARME DA BANCHETTO DI SPALMATURA",
+ "217,ALLARME DEVICE_NET ADDR. 28",
+ "218,STOP JOG USCITA PER PESO RAGGIUNTO SU CELLA DI CARICO",
+ "219,DOGAL NON PRONTO",
+ "220,ALLARME PROTEZIONE CELLA RAFFREDDAMENTO 91A",
+ "221,MALFUNZIONAMENTO RECUPERO CALORE GRUPPO 1",
+ "222,ALLARME PROTEZIONE SOSTEGNO TESSUTO",
+ "223,TARATURA CAMPI CONICI NON EFFETTUATA!",
+ "224,ALLARME TIMEOUT VITE CAMPO PARALLELO 10"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 14 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 14",
+ "index": 14,
+ "size": 2,
+ "messages": [
+ "225,CAMPO PARALLELO 9 ALLARME PROTEZIONE",
+ "226,CAMPO PARALLELO 10 ALLARME PROTEZIONE",
+ "227,CAMPO PARALLELO 11 ALLARME PROTEZIONE",
+ "228,CAMPO PARALLELO 12 ALLARME PROTEZIONE",
+ "229,ALLARME FLUSSOSTATO RECUPERO CALORE 1",
+ "230,ALLARME FLUSSOSTATO RECUPERO CALORE 2",
+ "231,ALLARME FLUSSOSTATO RECUPERO CALORE 3",
+ "232,ALLARME PROTEZIONE VENTILATORE ASCIUGACIMOSSE",
+ "233,ALLARME PROTEZIONE RESISTENZE ASCIUGACIMOSSE",
+ "234,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 1 POMPA 1 ",
+ "235,ALLARME INCENDIO",
+ "236,ATTENZIONE ! ALLARME PRESENTE SU BANCHETTO DI SPALMATURA",
+ "237,MALFUNZIONAMENTO RECUPERO CALORE GRUPPO 2",
+ "238,ALLARME PROTEZIONE CELLA RAFFREDDAMENTO 91B",
+ "239,ALLARME PROTEZIONE PULISCISPILLI",
+ "240,BATTERIA PLC - LIVELLO BASSO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 15 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 15",
+ "index": 15,
+ "size": 2,
+ "messages": [
+ "241,ALLARME CONTEMPORANEIT? TERMOSTATI SICUREZZA BRUCIATORI",
+ "242,BLOCCO VERSIONE SOFTWARE",
+ "243,SROTOLATORE NON PRONTO",
+ "244,ERRORE DI COMUNICAZIONE PROTOCOL MACRO",
+ "245,ALLARME TAGLIERINA URBAN",
+ "246,FINE TESSUTO IN INGRESSO",
+ "247,ALLARME PROTEZIONE SERVOVENTILAZIONI MOTORI",
+ "248,ALLARME INVERTER ARROTOLATORE TANGENZIALE",
+ "249,ALLARME SPREMITORE 2",
+ "250,ALLARME FS-91ER PLEVA",
+ "251,ALLARME LINEA EMERGENZA ARROTOLATORE",
+ "252,ALLARME FOTOCELLULE ARROTOLATORE",
+ "253,PORTA CASSETTA USCITA RAMOSA APERTA",
+ "254,ALLARME FINECORSA CILINDRO PROTEZIONE ARROTOLATORE ASSIALE",
+ "255,ALLARME PRESSOSTATI GRUPPO VALVOLE USCITA",
+ "256,ARROTOLATORE NON PRONTO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 16 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 16",
+ "index": 16,
+ "size": 2,
+ "messages": [
+ "257,FINECORSA GRUPPO FALDATORE AVANTI",
+ "258,FINECORSA GRUPPO FALDATORE INDIETRO",
+ "259,ALLARME BATTERIA ELETTRICA 1",
+ "260,SOVRATEMPERATURA BATTERIA ELETTRICA 5",
+ "261,ALLARME BATTERIA ELETTRICA 2",
+ "262,RISCALDAMENTO QUADRO SPENTO",
+ "263,SOVRATEMPERATURA BATTERIA ELETTRICA 1",
+ "264,SOVRATEMPERATURA BATTERIA ELETTRICA 2",
+ "265,ALLARME BATTERIA ELETTRICA 3",
+ "266,EMERGENZA DA SPALMATRICE",
+ "267,ALLARME BATTERIA ELETTRICA 4",
+ "268,ALLARME BATTERIA ELETTRICA 5",
+ "269,SOVRATEMPERATURA BATTERIA ELETTRICA 3",
+ "270,SOVRATEMPERATURA BATTERIA ELETTRICA 4",
+ "271,ALLARME IDROSTATO RECUPERO CALORE 1",
+ "272,ALLARME SENSORE LIVELLO RECUPERO CALORE 1 : AGGIUNGERE LIQUIDO !"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 17 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 17",
+ "index": 17,
+ "size": 2,
+ "messages": [
+ "273,ALLARME RELE' CONTROLLO FASI",
+ "274,ALLARME DEVICE NET ADDR. 40 - MODULO GRT1-DRT USCITA RAMOSA",
+ "275,ALLARME PRESSOSTATO LINEA ENTRATA MACCHINA",
+ "276,ALLARME PRESSOSTATO LINEA USCITA MACCHINA",
+ "277,CAMPO CANNOCCHIALI 1 BLOCCATO",
+ "278,CAMPO CANNOCCHIALI 2 BLOCCATO",
+ "279,ALLARME DISCONTINUITA' CAMPI PARALLELI",
+ "280,ALLARME INSEGUIMENTO CAMPI PARALLELI - VITE LENTA",
+ "281,ALLARME LIMITE VITI",
+ "282,RAGGIUNTO MASSIMO CARICO SU CELLA DI CARICO",
+ "283,ALLARME PRESSOSTATO ESAUSTORE",
+ "284,EMERGENZA MOVIMENTO TESSUTO",
+ "285,EMERGENZA DA SPREMITORE 1",
+ "286,EMERGENZA DA RADDRIZZATRAMA",
+ "287,EMERGENZA DA SROTOLATORE",
+ "288,EMERGENZA DA ARROTOLATORE"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 18 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 18",
+ "index": 18,
+ "size": 2,
+ "messages": [
+ "289,ALLARME SICUREZZA BRUCIATORE 1",
+ "290,ALLARME SICUREZZA BRUCIATORE 2",
+ "291,ALLARME SICUREZZA BRUCIATORE 3",
+ "292,ALLARME SICUREZZA BRUCIATORE 4",
+ "293,ALLARME SICUREZZA BRUCIATORE 5",
+ "294,ALLARME SICUREZZA BRUCIATORE 6",
+ "295,ALLARME SICUREZZA BRUCIATORE 7",
+ "296,ALLARME SICUREZZA BRUCIATORE 8",
+ "297,ALLARME SICUREZZA BRUCIATORE 9",
+ "298,ALLARME SICUREZZA BRUCIATORE 10",
+ "299,ALLARME SICUREZZA BRUCIATORE 11",
+ "300,ALLARME SICUREZZA BRUCIATORE 12",
+ "301,ALLARME BRUCIATORE 1 SPENTO",
+ "302,ALLARME BRUCIATORE 2 SPENTO",
+ "303,ALLARME BRUCIATORE 3 SPENTO",
+ "304,ALLARME BRUCIATORE 4 SPENTO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 19 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 19",
+ "index": 19,
+ "size": 2,
+ "messages": [
+ "305,ALLARME BRUCIATORE 5 SPENTO",
+ "306,ALLARME BRUCIATORE 6 SPENTO",
+ "307,ALLARME BRUCIATORE 7 SPENTO",
+ "308,ALLARME BRUCIATORE 8 SPENTO",
+ "309,ALLARME BRUCIATORE 9 SPENTO",
+ "310,ALLARME BRUCIATORE 10 SPENTO",
+ "311,ALLARME BRUCIATORE 11 SPENTO",
+ "312,ALLARME BRUCIATORE 12 SPENTO",
+ "313,ALLARME SENSORE LIVELLO RECUPERO CALORE 2 : AGGIUNGERE LIQUIDO !",
+ "314,ALLARME DA MIXER",
+ "315,ALLARME PRESSOSTATI LUBRIFICAZIONE",
+ "316,ALLARME ABBATTITORE FUMI",
+ "317,MACCHINA 1 NON IN LINEA",
+ "318,MACCHINA 2 NON IN LINEA",
+ "319,MACCHINA 3 NON IN LINEA",
+ "320,MACCHINA 4 NON IN LINEA"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 20 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 20",
+ "index": 20,
+ "size": 2,
+ "messages": [
+ "321,MACCHINA 5 NON IN LINEA",
+ "322,MACCHINA 6 NON IN LINEA",
+ "323,MACCHINA 7 NON IN LINEA",
+ "324,MACCHINA 8 NON IN LINEA",
+ "325,NON STOP NON PRONTO",
+ "326,EMERGENZA DA NON STOP",
+ "327,ALLARME DISCONTINUITA' CAMPO MASTER",
+ "328,ALLARME DISCONTINUITA' CAMPO PARALLELO 1",
+ "329,ALLARME DISCONTINUITA' CAMPO PARALLELO 2",
+ "330,ALLARME DISCONTINUITA' CAMPO PARALLELO 3",
+ "331,ALLARME DISCONTINUITA' CAMPO PARALLELO 4",
+ "332,ALLARME DISCONTINUITA' CAMPO PARALLELO 5",
+ "333,ALLARME DISCONTINUITA' CAMPO PARALLELO 6",
+ "334,ALLARME DISCONTINUITA' CAMPO PARALLELO 7",
+ "335,ALLARME DISCONTINUITA' CAMPO PARALLELO 8",
+ "336,ALLARME DISCONTINUITA' CAMPO PARALLELO 9"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 21 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 21",
+ "index": 21,
+ "size": 2,
+ "messages": [
+ "337,ALLARME DISCONTINUITA' CAMPO PARALLELO 10",
+ "338,PROTEZIONI INGRESSO APERTE",
+ "339,PROTEZIONI USCITA APERTE",
+ "340,ALLARME PROTEZIONE ESTRATTORE FUMI 1",
+ "341,ALLARME PROTEZIONE ESTRATTORE FUMI 2",
+ "342,MANCANZA PRESSOSTATO ESTRATTORE FUMI 1",
+ "343,MANCANZA PRESSOSTATO ESTRATTORE FUMI 2",
+ "344,EMERGENZA DA MIXER",
+ "345,EMERGENZA DA SPREMITORE 2",
+ "346,ALLARME PROTEZIONE VENTILATORE RECUPERO CALORE 1",
+ "347,ALLARME PROTEZIONE VENTILATORE RECUPERO CALORE 2",
+ "348,ALLARME MODULO VELOCITA? ZERO CATENA TRASP. TESSUTO",
+ "349,ALLARME RILEVAMENTO TESSUTO SINISTRO USCITA",
+ "350,ALLARME RILEVAMENTO TESSUTO DESTRO USCITA",
+ "351,ALLARME FINECORSA SOLLEVAMENTO CAMPI CONICI",
+ "352,ALLARME IDROSTATO RECUPERO CALORE 2"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 22 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 22",
+ "index": 22,
+ "size": 2,
+ "messages": [
+ "353,ALLARME FUNE DI PROTEZIONE IN USCITA",
+ "354,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 1",
+ "355,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 2",
+ "356,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 3",
+ "357,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 4",
+ "358,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 5",
+ "359,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 6",
+ "360,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 7",
+ "361,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 8",
+ "362,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 9",
+ "363,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 10",
+ "364,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 11",
+ "365,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 12",
+ "366,OLIO CATENA - PRESSIONE MINIMA",
+ "367,POMPA OLIO CATENA - ALLARME PROTEZIONE",
+ "368,JBOX INGRESSO - BALLERINO BASSO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 23 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 23",
+ "index": 23,
+ "size": 2,
+ "messages": [
+ "369,JBOX INGRESSO - FINE TESSUTO",
+ "370,JBOX INGRESSO - PIENO",
+ "371,JBOX INGRESSO - BALLERINO ALTO",
+ "372,JBOX INGRESSO - VUOTO",
+ "373,JBOX USCITA - BALLERINO BASSO",
+ "374,JBOX USCITA - FINE TESSUTO",
+ "375,JBOX USCITA - PIENO",
+ "376,JBOX USCITA - BALLERINO ALTO",
+ "377,JBOX USCITA - VUOTO",
+ "378,JBOX USCITA - ALLARME PRESSOSTATO",
+ "379,JBOX ENTRATA - ALLARME PRESSOSTATO",
+ "380,ALLARME PROTEZIONE CARRELLO FALDATORE",
+ "381,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 1",
+ "382,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 2",
+ "383,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 3",
+ "384,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 4"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 24 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 24",
+ "index": 24,
+ "size": 2,
+ "messages": [
+ "385,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 5",
+ "386,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 6",
+ "387,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 7",
+ "388,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 8",
+ "389,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 9",
+ "390,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 10",
+ "391,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 11",
+ "392,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 12",
+ "393,ESTRATTORE FUMI RISC. INDIRETTO 1 - ALLARME PROTEZIONE",
+ "394,ESTRATTORE FUMI RISC. INDIRETTO 2 - ALLARME PROTEZIONE",
+ "395,ESTRATTORE FUMI RISC. INDIRETTO 3 - ALLARME PROTEZIONE",
+ "396,ESTRATTORE FUMI RISC. INDIRETTO 4 - ALLARME PROTEZIONE",
+ "397,ESTRATTORE FUMI RISC. INDIRETTO 5 - ALLARME PROTEZIONE",
+ "398,ESTRATTORE FUMI RISC. INDIRETTO 6 - ALLARME PROTEZIONE",
+ "399,TAGLIERINA SINISTRA - FUORI POSIZIONE",
+ "400,TAGLIERINA DESTRA - FUORI POSIZIONE"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 25 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 25",
+ "index": 25,
+ "size": 2,
+ "messages": [
+ "401,ALLARME PROTEZIONE CILINDRO CONTRASTO TAGLIERINE",
+ "402,JBOX INGRESSO - TESSUTO INCROCIATO",
+ "403,JBOX USCITA - TESSUTO INCROCIATO",
+ "404,ALLARME DEVICE_NET STAZIONE ADDR.38 - JBOX INGRESSO",
+ "405,ALLARME DEVICE_NET STAZIONE ADDR.39 - JBOX USCITA",
+ "406,JBOX INGRESSO - ALLARME INVERTER",
+ "407,JBOX USCITA - ALLARME INVERTER",
+ "408,ALLARGA/CENTRATORE A/B SU IMBARRAGGIO - ALLARME PROTEZIONE",
+ "409,ALLARME TIMEOUT VITE CAMPO PARALLELO 11",
+ "410,ALLARME TIMEOUT VITE CAMPO PARALLELO 12",
+ "411,FRENO JBOX INGRESSO - ALLARME PROTEZIONE",
+ "412,FRENO JBOX USCITA - ALLARME PROTEZIONE",
+ "413,ALLARME PROTEZIONE FRENO CAMPO CONICO SINISTRO",
+ "414,ALLARME PROTEZIONE FRENO CAMPO CONICO DESTRO",
+ "415,VERIFICA PRESSOSTATO 1 FALLITA",
+ "416,VERIFICA PRESSOSTATO 2 FALLITA"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 26 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 26",
+ "index": 26,
+ "size": 2,
+ "messages": [
+ "417,ALLARME TERMOSTATO INTERNO QUADRO",
+ "418,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 1 POMPA 2",
+ "419,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 2 POMPA 2",
+ "420,PROTEZIONE RIBALTABILE INGRESSO",
+ "421,FUNE EMERGENZA INGRESSO",
+ "422,PARATIA SCORREVOLE INGRESSO SINISTRA",
+ "423,PARATIA SCORREVOLE INGRESSO DESTRA",
+ "424,CANCELLO SINISTRO ENTRATA ANTERIORE",
+ "425,CANCELLO SINISTRO ENTRATA POSTERIORE",
+ "426,CANCELLO DESTRO ENTRATA ANTERIORE",
+ "427,CANCELLO DESTRO ENTRATA POSTERIORE",
+ "428,CANCELLO SINISTRO USCITA",
+ "429,CANCELLO DESTRO USCITA",
+ "430,TENSIONATORE FUNE EMERGENZA SINISTRA ZONA FORNO",
+ "431,TENSIONATORE FUNE EMERGENZA DESTRA ZONA FORNO",
+ "432,FUNE EMERGENZA SINISTRA ZONA FORNO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 27 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 27",
+ "index": 27,
+ "size": 2,
+ "messages": [
+ "433,FUNE EMERGENZA DESTRA ZONA FORNO",
+ "434,ALLARME FEEDBACK SCARICO ARIA ENTRATA MACCHINA (1)",
+ "435,ALLARME FEEDBACK SCARICO ARIA ENTRATA MACCHINA (2)",
+ "436,ALLARME FEEDBACK SCARICO ARIA USCITA MACCHINA (1)",
+ "437,ALLARME FEEDBACK SCARICO ARIA USCITA MACCHINA (2)",
+ "438,ALLARME FEEDBACK EMERGENZA GENERALE DA SCARICO ARIA",
+ "439,BYPASS SPORTELLI ARMADIO ATTIVO",
+ "440,TIMEOUT ENCODER CAMPO CONICO SINISTRO",
+ "441,TIMEOUT ENCODER CAMPO CONICO DESTRO",
+ "442,ALLARME BALLERINO ALTO SPREMITORE 1",
+ "443,ALLARME BALLERINO ALTO SPREMITORE 2",
+ "444,",
+ "445,",
+ "446,",
+ "447,",
+ "448,"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 28 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 28",
+ "index": 28,
+ "size": 2,
+ "messages": [
+ "449,",
+ "450,",
+ "451,",
+ "452,",
+ "453,",
+ "454,",
+ "455,",
+ "456,",
+ "457,",
+ "458,",
+ "459,",
+ "460,ALLARME PROTEZIONE BARRE ANTISTATICHE",
+ "461,ALLARME PROTEZIONE VENTILAZIONE INTERNO QUADRO",
+ "462,BORDO SENSIBILE ",
+ "463,FALDAROTOLATORE_SICUREZZA SX/DX ",
+ "464,FALDAROTOLATORE_EMERGENZA TESSUTO "
+ ]
+ },
+
+ {
+ "description": "Alarm Word 29 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 29",
+ "index": 29,
+ "size": 2,
+ "messages": [
+ "465,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.1",
+ "466,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.2",
+ "467,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.3",
+ "468,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.4",
+ "469,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.5",
+ "470,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.6",
+ "471,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.7",
+ "472,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.8",
+ "473,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.9",
+ "474,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.10",
+ "475,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.11",
+ "476,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.12",
+ "477,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 1/2",
+ "478,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 3/4",
+ "479,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 5/6",
+ "480,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 7/8"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 30 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 30",
+ "index": 30,
+ "size": 2,
+ "messages": [
+ "481,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 9/10",
+ "482,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 1",
+ "483,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 2",
+ "484,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 3",
+ "485,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 4",
+ "486,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 5",
+ "487,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 6",
+ "488,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 7",
+ "489,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 8",
+ "490,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 9",
+ "491,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 10",
+ "492,TRASDUTTORE PRESSIONE BR 1 INTERROTTO",
+ "493,TRASDUTTORE PRESSIONE BR 2 INTERROTTO",
+ "494,TRASDUTTORE PRESSIONE BR 3 INTERROTTO",
+ "495,TRASDUTTORE PRESSIONE BR 4 INTERROTTO",
+ "496,TRASDUTTORE PRESSIONE BR 5 INTERROTTO"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 31 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 31",
+ "index": 31,
+ "size": 2,
+ "messages": [
+ "497,TRASDUTTORE PRESSIONE BR 6 INTERROTTO",
+ "498,TRASDUTTORE PRESSIONE BR 7 INTERROTTO",
+ "499,TRASDUTTORE PRESSIONE BR 8 INTERROTTO",
+ "500,TRASDUTTORE PRESSIONE BR 9 INTERROTTO",
+ "501,TRASDUTTORE PRESSIONE BR 10 INTERROTTO",
+ "502,TRASDUTTORE PRESSIONE BR 11 INTERROTTO",
+ "503,TRASDUTTORE PRESSIONE BR 12 INTERROTTO",
+ "504,ERRORE TRASDUTTORE DI PRESSIONE RC1",
+ "505,ERRORE TRASDUTTORE DI PRESSIONE RC2",
+ "506,ALLARME INVERTER RIPRISTINO PRESSIONE GRUPPO 1 RC",
+ "507,ALLARME INVERTER RIPRISTINO PRESSIONE GRUPPO 2 RC",
+ "508,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 11",
+ "509,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 12",
+ "510,ALLARME PRESSOSTATO TAGLIERINE",
+ "511,BALLERINO ALTO - SROTOLATORE - ALLARME",
+ "512,EMERGENZA DA LINEA ENTRATA RAMOSA"
+ ]
+ },
+
+ {
+ "description": "Alarm Word 32 ",
+ "tipoMem": "Byte",
+ "memAddr": "Alarm Word 32",
+ "index": 32,
+ "size": 2,
+ "messages": [
+ "513,LINEA ENTRATA RAMOSA NON PRONTA",
+ "514,EMERGENZA DA LINEA USCITA RAMOSA",
+ "515,LINEA USCITA RAMOSA NON PRONTA",
+ "516,TAGLIERINA CENTRALE FUORI POSIZIONE",
+ "517,TIRACIMOSSE NON PRONTO",
+ "518,JBOX INGRESSO IN EMERGENZA",
+ "519,JBOX INGRESSO NON PRONTO",
+ "520,JBOX USCITA IN EMERGENZA",
+ "521,JBOX USCITA NON PRONTO",
+ "522,ALLARME D-NET 41 RISCALDAMENTO INDIRETTO",
+ "523,SPAZZOLATRICE IN EMERGENZA",
+ "524,SPAZZOLATRICE NON PRONTA",
+ "525,ALLARME FUNE DI SICUREZZA USCITA STACCAPEZZA",
+ "526,ALLARME FUNE DI SICUREZZA USCITA FALDAROTOLATORE",
+ "527,ALLARME FUNE DI SICUREZZA CAMPO CONICO SINISTRO",
+ "528,ALLARME FUNE DI SICUREZZA CAMPO CONICO DESTRO"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/DATA/DAT/PersistData.dat b/IOB-WIN-OPC-UA/DATA/DAT/PersistData.dat
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-OPC-UA/DATA/DAT/PersistData.dat
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/DATA/DAT/SimData.dat b/IOB-WIN-OPC-UA/DATA/DAT/SimData.dat
new file mode 100644
index 00000000..c59e4823
--- /dev/null
+++ b/IOB-WIN-OPC-UA/DATA/DAT/SimData.dat
@@ -0,0 +1,959 @@
+;------------------------------------------------------------------------------------
+; filevalori simulati x provare sistema dati e filtraggio... commenti iniziano per ';', valori formato data#valore#counter
+; NOTE FILE:
+; - bit come macchine std IOB
+; B0 = POWERON
+; B1 = RUN
+; B2 = CONTAPEZZO
+; B3 = ALLARME
+; B4 = MANUALE
+; B5 = NA
+; B6 = NA
+; B7 = NA
+; - segnali alternanti su 00011100
+;------------------------------------------------------------------------------------
+;
+;----------------------------
+; inizio da spenta
+0
+0
+; indico accesa
+1
+1
+1
+; allarme (BLINK)
+9
+9
+9
+9
+9
+1
+1
+1
+1
+1
+1
+9
+9
+9
+9
+9
+1
+1
+1
+1
+1
+19
+9
+9
+9
+9
+1
+1
+1
+1
+1
+1
+; allarme manuale (2 blink, periodo diverso)
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+; indico manuale
+17
+17
+17
+17
+17
+17
+17
+17
+17
+17
+1
+1
+1
+1
+1
+1
+1
+1
+17
+17
+17
+17
+17
+17
+17
+17
+17
+17
+1
+1
+1
+1
+1
+1
+1
+1
+17
+17
+17
+17
+17
+17
+17
+17
+17
+17
+1
+1
+1
+1
+1
+1
+1
+1
+; RUN!
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+; contapezzo
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+; RUN
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+; contapezzo
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+; RUN
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+; contapezzo
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+; RUN
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+; allarme (BLINK)
+9
+9
+9
+9
+9
+1
+1
+1
+1
+1
+1
+9
+9
+9
+9
+9
+1
+1
+1
+1
+1
+19
+9
+9
+9
+9
+1
+1
+1
+1
+1
+1
+; allarme manuale (2 blink, periodo diverso)
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+25
+25
+17
+17
+9
+9
+1
+1
+; indico manuale
+17
+17
+17
+17
+17
+17
+17
+17
+17
+17
+1
+1
+1
+1
+1
+1
+1
+1
+17
+17
+17
+17
+17
+17
+17
+17
+17
+17
+1
+1
+1
+1
+1
+1
+1
+1
+17
+17
+17
+17
+17
+17
+17
+17
+17
+17
+1
+1
+1
+1
+1
+1
+1
+1
+; RUN!
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+; contapezzo
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+; RUN
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+; contapezzo
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+7
+7
+7
+7
+7
+3
+3
+3
+3
+3
+3
+; RUN
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
+3
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/DATA/HIST/.placeholder b/IOB-WIN-OPC-UA/DATA/HIST/.placeholder
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-OPC-UA/DATA/HIST/.placeholder
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/IOB-WIN-OPC-UA.csproj b/IOB-WIN-OPC-UA/IOB-WIN-OPC-UA.csproj
new file mode 100644
index 00000000..40368b2c
--- /dev/null
+++ b/IOB-WIN-OPC-UA/IOB-WIN-OPC-UA.csproj
@@ -0,0 +1,257 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {EEBE38BD-29EE-45DE-9AF4-8FA34B58D8BA}
+ WinExe
+ IOB_WIN_MTC
+ IOB-WIN-MTC
+ v4.6.2
+ 512
+ true
+ true
+
+
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+ true
+ bin\Remote_DEBUG\
+ DEBUG;TRACE
+ full
+ x86
+ 7.3
+ prompt
+
+
+
+ ..\packages\MapoSDK.6.14.2411.518\lib\MapoSDK.dll
+
+
+ ..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.Logging.Abstractions.dll
+
+
+ ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll
+
+
+ ..\packages\NLog.5.3.4\lib\net46\NLog.dll
+
+
+ ..\packages\Pipelines.Sockets.Unofficial.2.2.8\lib\net461\Pipelines.Sockets.Unofficial.dll
+
+
+ ..\packages\StackExchange.Redis.2.8.24\lib\net461\StackExchange.Redis.dll
+
+
+
+ ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll
+
+
+
+
+ ..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll
+
+
+ ..\packages\System.IO.Pipelines.5.0.1\lib\net461\System.IO.Pipelines.dll
+
+
+ ..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll
+
+
+
+ ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll
+
+
+ ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll
+
+
+ ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll
+
+
+ ..\packages\System.Threading.Channels.5.0.0\lib\net461\System.Threading.Channels.dll
+
+
+ ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VersGen.cs
+
+
+ Form
+
+
+
+ Form
+
+
+
+
+ Always
+
+
+ Always
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+ True
+
+
+ Always
+
+
+ App.config
+ True
+ PreserveNewest
+
+
+ App.config
+ True
+ PreserveNewest
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+ Always
+
+
+
+ Always
+
+
+
+
+ Designer
+ true
+ PreserveNewest
+
+
+
+
+ Always
+
+
+
+ Always
+
+
+
+ Always
+
+
+ Always
+
+
+
+
+
+ {90512e12-29fc-460d-94cc-648c2a072dbd}
+ IOB-UT-NEXT
+
+
+ {9ba331bb-9bf1-40e0-ac03-74b43d73a097}
+ IOB-WIN-FORM
+
+
+
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/Iob/GenericNext.cs b/IOB-WIN-OPC-UA/Iob/GenericNext.cs
new file mode 100644
index 00000000..89815943
--- /dev/null
+++ b/IOB-WIN-OPC-UA/Iob/GenericNext.cs
@@ -0,0 +1,13 @@
+using IOB_UT_NEXT;
+
+namespace IOB_WIN_PING.Iob
+{
+ public class GenericNext : IOB_WIN_FORM.Iob.Generic
+ {
+
+ public GenericNext(AdapterFormNext caller, IobConfiguration IOBConf): base((IOB_WIN_FORM.AdapterForm)caller, IOBConf)
+ {
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/MainFormNext.cs b/IOB-WIN-OPC-UA/MainFormNext.cs
new file mode 100644
index 00000000..422d8335
--- /dev/null
+++ b/IOB-WIN-OPC-UA/MainFormNext.cs
@@ -0,0 +1,40 @@
+using IOB_UT_NEXT;
+using IOB_WIN_PING.Iob;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IOB_WIN_PING
+{
+ public class MainFormNext : IOB_WIN_FORM.MainForm
+ {
+
+ ///
+ /// Avvio MainForm
+ ///
+ ///
+ public MainFormNext(string[] args) : base(args)
+ {
+ }
+
+ ///
+ /// Apre la finestra child con conf
+ ///
+ protected override void openChild(string IOB)
+ {
+ if (IOB == null)
+ {
+ throw new ArgumentNullException(nameof(IOB));
+ }
+
+ AdapterFormNext child = new AdapterFormNext(IOB);
+ child.MdiParent = this;
+ child.Text = IOB;
+ child.Show();
+ child.Shown += Child_Shown;
+ child.FormClosed += Child_FormClosed;
+ }
+ }
+}
diff --git a/IOB-WIN-OPC-UA/NLog.config b/IOB-WIN-OPC-UA/NLog.config
new file mode 100644
index 00000000..cd1bcc98
--- /dev/null
+++ b/IOB-WIN-OPC-UA/NLog.config
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/IOB-WIN-OPC-UA/Program.cs b/IOB-WIN-OPC-UA/Program.cs
new file mode 100644
index 00000000..5671848f
--- /dev/null
+++ b/IOB-WIN-OPC-UA/Program.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Windows.Forms;
+
+namespace IOB_WIN_PING
+{
+ internal static class Program
+ {
+ #region Private Methods
+
+ ///
+ /// Punto di ingresso principale dell'applicazione.
+ /// Parametri di avvio
+ ///
+ [STAThread]
+ private static void Main(string[] args)
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new MainFormNext(args));
+ }
+
+ #endregion Private Methods
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/Properties/AssemblyInfo.cs b/IOB-WIN-OPC-UA/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..8f5a1a70
--- /dev/null
+++ b/IOB-WIN-OPC-UA/Properties/AssemblyInfo.cs
@@ -0,0 +1,22 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("IOB-WIN-MTC")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyProduct("IOB-WIN-MTC")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("eebe38bd-29ee-45de-9af4-8fa34b58d8ba")]
+
diff --git a/IOB-WIN-OPC-UA/Properties/Resources.Designer.cs b/IOB-WIN-OPC-UA/Properties/Resources.Designer.cs
new file mode 100644
index 00000000..0f013ea4
--- /dev/null
+++ b/IOB-WIN-OPC-UA/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace IOB_WIN_MTC.Properties
+{
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("IOB_WIN_MTC.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/IOB-WIN-OPC-UA/Properties/Resources.resx b/IOB-WIN-OPC-UA/Properties/Resources.resx
new file mode 100644
index 00000000..af7dbebb
--- /dev/null
+++ b/IOB-WIN-OPC-UA/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/Properties/Settings.Designer.cs b/IOB-WIN-OPC-UA/Properties/Settings.Designer.cs
new file mode 100644
index 00000000..894a7528
--- /dev/null
+++ b/IOB-WIN-OPC-UA/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace IOB_WIN_MTC.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/IOB-WIN-OPC-UA/Properties/Settings.settings b/IOB-WIN-OPC-UA/Properties/Settings.settings
new file mode 100644
index 00000000..39645652
--- /dev/null
+++ b/IOB-WIN-OPC-UA/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/IOB-WIN-OPC-UA/Readme/ToDo.txt b/IOB-WIN-OPC-UA/Readme/ToDo.txt
new file mode 100644
index 00000000..161ff489
--- /dev/null
+++ b/IOB-WIN-OPC-UA/Readme/ToDo.txt
@@ -0,0 +1,61 @@
+-------------------------------------
+- 2017.10.19
+-------------------------------------
+OK - da testare ora invio URL a MoonPro
+OK - ALIVE
+OK - ENABLED
+OK - INPUT
+OK - FARE lettura VERA da FANUC almeno della bitmap
+OK - fare gestione come rPI-IOB, ovvero
+OK - gestione QUEUE eventi
+OK - salvataggio su file dello storico eventi rilevati
+OK - gestione dei segnali ballerini (BITMASK!)
+OK - gestione contapezzi CUSTOM
+ - fare gestione configurabile lettura FANUC
+OK - gestione dati G43
+OK - togliere dati F (E0 | 90)
+ - fare integrazione ALTRI varori FANUC, tra cui
+ - allarmi
+OK - load/speed
+OK - overrides (G12, G30)
+
+OK - nuovo metodo chiamata x MP/IO (che dovrà avere nuovo comando x accettare queste chiamate e salvare su tabella SENZA processing, come eventi o come extra... evento NOTA?)
+ - verificare segnali: (vedi doc gsheet)
+ - F001.0: ALARM_PRESENT
+ - F001.7: CN_READY / POWER_ON
+ - STL000.5: AUTO (vers 1)
+ - STL000.7: AUTO (vers 2)
+- Cambiare ordine valutazione eventi frequenza VLF-->VHF
+- Azzerare I contatori quanto si arriva al più lento (quando si azzera lui ripartono comunque tutti...) -> in questo modo scatta un contatore QUANDO GENERAL_COUNTER MOD periodo_Ccntatore == 0
+- rendere parametrica l'assegnazione delle funzioni al diverso ambito frequenza tra i 5 (VHF, HF, NF, LF, VLF)
+- procedura x gestione dati REALTIME (da NON salvare su db ma al limite su REDIS, simil EQN con 2 tab x eliminare dati scaduti)
+
+OK FINIRE SISTEMAZIONE JETCO:
+OK - install servers
+OK - install DB
+OK - conf acquisitore togliendo parti abbozzate x contapezzi/fineciclo
+OK - part program name MAIN con nuova funzione
+
+CREARE NUOVO SW (o configurazione? o ramo alternativo a develop?) x mapping INIZIALE della macchina... ad esempio
+ - si collega a ns server
+ - chiede cosa deve fare (es mappa memorie D da 0 a 9999)
+ - effettua testing e poi fa upload risultati
+ - il ns sw fa i check/controlli modifica
+in questo modo ad esmepio possiamo cercare i contapezzi, i segnali ceh cambiano con il fineciclo nelle aree Y, i contatori STANDARD nelle memorie D, ...
+
+
+GESTIONE LIVE DATA
+L'idea è ceh quando una macchina è "sotto osservazione" ovvero live viene aperta pagina questa debba inviare PIU' DATI di tipo realtime e mostrarli nel browser. Per farlo ci saranno questi elementi
+- si apre una pagina di dettaglio macchina (da tablet? da SITE principale?)
+- questo causa la modifica di una chiave su DB (e/o redis) di stato macchina, del tipo "OnAir=true", e potrebbe essere una chiave a tempo (30 sec poi scade?) e mentre la pagina è aperta e si aggiorna (ogni 1-2 sec oppure Signal-R) questo valore viene confermato (e prorigato)
+- ogni IOB-WIN fa una chiamata "extra" all'URL dedicato al checl "OnAir", e se trova che è abilitato passa in modalità letture frequenti (1/2 al sec?) dei parametri LIVE (es: feed, speed, posizioni assi, load istantanei)
+- se passa inq eusta modalità live invia DI CONTINUO il dato al server IO
+- il server IO salva SU REDIS questi valori sia come "lastVal" che come serie storica
+- le pagine che mostrano i dati si continuano ad aggiornare (da redis) con grafici (chartJs come PIC) e/o valori istantanei
+- le serie storiche vengono ripulite periodicamente (ogni ora? valori + vecchi di 24h ad esempio?)
+- struttura dati REDIS da creare SIMILE a struttura info URL...
+- struttura dati LIVE: ../LIVE/COD_MACC/CURR_VAL (contiene TUTTI i dati LIVE, ultimi ricevuti...)
+- struttura dati TimeSeries: ../LIVE/COD_MACC/DATA_NAME (contiene TUTTI i dati come timeseries, es SPEEDRATE, FEEDRATE, POS_X1, POS_X2, ...)
+- operazione SAVE aggiorna SURR e accoda NUOVO valore...
+- LOAD (rilettura9 POTREBBE fare pulizia se + vecchi di 24h...)
+- la trasmissione verso IO deve avvenire con "multisend, nel
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/Resources/ChangeLog.html b/IOB-WIN-OPC-UA/Resources/ChangeLog.html
new file mode 100644
index 00000000..7ab91d78
--- /dev/null
+++ b/IOB-WIN-OPC-UA/Resources/ChangeLog.html
@@ -0,0 +1,120 @@
+
+ MAPO-IOB-WIN
+ v: {{CURRENT-REL}}
+
+ Acquisitore MAPO-IOB per sistemi Windows
+
+ Note di rilascio:
+
+ -
+ v.3.1.* → v.3.2.*
+
+ - Nuovi simulatori con gestione emergenza
+ - Fix gestione invio dati Redis
+ - Implementazione IOB Eurom63
+
+
+ -
+ v.2.6.* → v.3.0.*
+
+ - revisione sistema metodi invio in blocco
+ - Gestione invio contapezzi in step > 1
+ - Gestione eventi in blocco (indipendente e prioritario su EvBlock)
+ - Gestione limite eventi memorizzabili
+ - Integrazione REDIS
+ - Integrazione IOB-MAN
+
+
+ -
+ v.2.5.* → v.2.6.*
+
+ - revisione sistema timeout Ping
+ - Gestione AutoODL in prod generale (non solo SIM)
+
+
+ -
+ v.2.4.* → v.2.5.*
+
+ - Aggiunto adapter MTConnect
+ - Ottimizzazione gestione SIEMENS
+
+
+ -
+ v.2.3.* → v.2.4.*
+
+ - inserita gestione conf json x Flog acquisiti
+ - gestione invio Json blocchi dati FLog
+ - ottimizzazioni varie adapter Siemens
+ - ottimizzazione processo svuotamento code
+ - riduzione interferenza e interblocchi in fase di PLC assente
+
+
+ -
+ Ultime modifiche:
+
+
+ -
+ v.1.18.* → v.2.3.*
+
+ - inserimento WPS x acontrolli WebPage human readable
+ - fix gestione task2exe
+ - aggiunte varie versioni PLC siemens
+ - aggiunto PLC WPS x generiche web pages
+ - revisitazione LOG ODL e contapezzi
+ - modifica pagina presentazione dati (master) x resize
+ - Attivazione IOB SIMULATOR per test di carico (sostituito type DEMO)
+ - Aggiunto simulatore macchine MULTI pallet
+ - Ottimizzazione simulatore
+ - Ottimizzazioni PLC Siemens x riavvio post disconnessione (es spegnimento notturno)
+ - Ottimizzazione processo chiusura in update applicazione
+ - Aggiunta simulazione spegnimento con WU/CD
+
+
+ -
+ v.1.11.* → v.1.18.*
+
+ - Inserimento controller SIEMENS con S7+ library
+ - Inserimento nuove letture FANUC x programmi
+ - Inserimento nuove letture FANUC x SysEx (informazioni sistema)
+ - Inserimento invio FluxLog x parametri estesi (es SysEx, ProgName,...)
+ - FIX visualizzazione dati FluxLog e URL inviati
+ - FIX MAIN program da FANUC (non il current)
+ - Inserita modalita' DUMP memoria (iniziale full + periodica)
+ - Inserimento gestione contapezzi standard/checkBit in IOB.cfg
+ - Inserimento contapezzi da area memoria X
+ - NUOVA Gestione rami cliente e URL di update
+ - Gestione modi CNC
+ - Lettura dari dinamycs FANUC (feed, speed)
+ - aggiunta gestione aree G0..G30 (overrides?)
+ - fix errore disconnessione FANUC (allo spegnimento dl CNC) e memoria valori persistente a 1
+ - fix globali x gestione log IN / FLOG + ottimizzaizone check FANUC (PING)
+ - ottimizzazione fasi di restart in caso di assenza del server (evita reinvii inutili e migliora tempo ripartenza invio)
+ - review procedure controllo connessione x FANUC (es Tornos II)
+ - non richeide più privilegi admin x fare update
+ - gestione segnali inverted
+ - completata gestione configurabilità parametrica segnali (Tornos, CMZ, Biglia)
+ - revisitazione LOG x distinguere processi IOB
+
+
+ -
+ v.0.1.* → v.0.10.*
+
+ - Testato in produzione x update ad avvio e su richiesta
+ - Testato in produzione x lettura dati da Fanuc
+ - Inizio deploy con copia file su area IIS
+ - Prima versione con autoupdate
+ - Test PrettyBin x spostamento dll
+ - Base acquisitore FANUC
+ - Sistema base sw controllo in tray
+
+
+
+
+
+

+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/Resources/Circuit.ico b/IOB-WIN-OPC-UA/Resources/Circuit.ico
new file mode 100644
index 00000000..a05b27a6
Binary files /dev/null and b/IOB-WIN-OPC-UA/Resources/Circuit.ico differ
diff --git a/IOB-WIN-OPC-UA/Resources/Net.ico b/IOB-WIN-OPC-UA/Resources/Net.ico
new file mode 100644
index 00000000..a33a9eca
Binary files /dev/null and b/IOB-WIN-OPC-UA/Resources/Net.ico differ
diff --git a/IOB-WIN-OPC-UA/Resources/STEAM-IOB-WIN.xml b/IOB-WIN-OPC-UA/Resources/STEAM-IOB-WIN.xml
new file mode 100644
index 00000000..ba4e78f6
Binary files /dev/null and b/IOB-WIN-OPC-UA/Resources/STEAM-IOB-WIN.xml differ
diff --git a/IOB-WIN-OPC-UA/Resources/Start-IOB-WIN.bat b/IOB-WIN-OPC-UA/Resources/Start-IOB-WIN.bat
new file mode 100644
index 00000000..3f8ecaa1
--- /dev/null
+++ b/IOB-WIN-OPC-UA/Resources/Start-IOB-WIN.bat
@@ -0,0 +1,15 @@
+@ECHO OFF
+
+SET EXEName=IOB-WIN.exe
+SET EXEFullPath=C:\Steamware\IOB-WIN\IOB-WIN.exe
+
+TASKLIST | FINDSTR /I "%EXEName%"
+IF ERRORLEVEL 1 GOTO :StartIobWin
+
+REM "Programma ancora in run, nessuna azione necessaria"
+timeout /T 2
+GOTO :EOF
+
+:StartIobWin
+START "" "%EXEFullPath%"
+GOTO :EOF
diff --git a/IOB-WIN-OPC-UA/Resources/SteamWare.ico b/IOB-WIN-OPC-UA/Resources/SteamWare.ico
new file mode 100644
index 00000000..70ccadaf
Binary files /dev/null and b/IOB-WIN-OPC-UA/Resources/SteamWare.ico differ
diff --git a/IOB-WIN-OPC-UA/Resources/logoSteamware.png b/IOB-WIN-OPC-UA/Resources/logoSteamware.png
new file mode 100644
index 00000000..0958b50a
Binary files /dev/null and b/IOB-WIN-OPC-UA/Resources/logoSteamware.png differ
diff --git a/IOB-WIN-OPC-UA/Resources/manifest.xml b/IOB-WIN-OPC-UA/Resources/manifest.xml
new file mode 100644
index 00000000..f66a7e99
--- /dev/null
+++ b/IOB-WIN-OPC-UA/Resources/manifest.xml
@@ -0,0 +1,7 @@
+
+-
+ 1.0.0.0
+ http://seriate.steamware.net:8083/SWS/MAPO/IOB-WIN/{{BRANCHNAME}}/MAPO-IOB-WIN.zip
+ http://seriate.steamware.net:8083/SWS/MAPO/IOB-WIN/{{BRANCHNAME}}/ChangeLog.html
+ false
+
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/logs/.placeholder.txt b/IOB-WIN-OPC-UA/logs/.placeholder.txt
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-OPC-UA/logs/.placeholder.txt
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/packages.config b/IOB-WIN-OPC-UA/packages.config
new file mode 100644
index 00000000..bc12d868
--- /dev/null
+++ b/IOB-WIN-OPC-UA/packages.config
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/postBuildTgt.bat b/IOB-WIN-OPC-UA/postBuildTgt.bat
new file mode 100644
index 00000000..d56896d2
--- /dev/null
+++ b/IOB-WIN-OPC-UA/postBuildTgt.bat
@@ -0,0 +1,97 @@
+@echo off
+echo Inizio processing After Build: configurazione %1 , directory %2
+
+RD /S /Q %2"\lib\ar"
+RD /S /Q %2"\lib\cs"
+RD /S /Q %2"\lib\da"
+RD /S /Q %2"\lib\de"
+RD /S /Q %2"\lib\es"
+RD /S /Q %2"\lib\fr"
+RD /S /Q %2"\lib\it"
+RD /S /Q %2"\lib\ja-JP"
+RD /S /Q %2"\lib\ko"
+RD /S /Q %2"\lib\lv"
+RD /S /Q %2"\lib\nl"
+RD /S /Q %2"\lib\pl"
+RD /S /Q %2"\lib\pt"
+RD /S /Q %2"\lib\pt-BR"
+RD /S /Q %2"\lib\ru"
+RD /S /Q %2"\lib\sk"
+RD /S /Q %2"\lib\sv"
+RD /S /Q %2"\lib\th"
+RD /S /Q %2"\lib\tr"
+RD /S /Q %2"\lib\zh"
+RD /S /Q %2"\lib\zh-TW"
+
+MOVE /Y %2"ar" %2"lib\"
+MOVE /Y %2"cs" %2"lib\"
+MOVE /Y %2"da" %2"lib\"
+MOVE /Y %2"de" %2"lib\"
+MOVE /Y %2"es" %2"lib\"
+MOVE /Y %2"fr" %2"lib\"
+MOVE /Y %2"it" %2"lib\"
+MOVE /Y %2"ja-JP" %2"lib\"
+MOVE /Y %2"ko" %2"lib\"
+MOVE /Y %2"lv" %2"lib\"
+MOVE /Y %2"nl" %2"lib\"
+MOVE /Y %2"pl" %2"lib\"
+MOVE /Y %2"pt" %2"lib\"
+MOVE /Y %2"pt-BR" %2"lib\"
+MOVE /Y %2"ru" %2"lib\"
+MOVE /Y %2"sk" %2"lib\"
+MOVE /Y %2"sv" %2"lib\"
+MOVE /Y %2"th" %2"lib\"
+MOVE /Y %2"tr" %2"lib\"
+MOVE /Y %2"zh" %2"lib\"
+MOVE /Y %2"zh-TW" %2"lib\"
+
+
+if %1 == "Release" goto ReleaseExec
+if %1 == Release goto ReleaseExec
+if %1 == "Debug" goto DebugExec
+if %1 == Debug goto DebugExec
+if %1 == "Remote_DEBUG" goto RemoteDebugExec
+if %1 == Remote_DEBUG goto RemoteDebugExec
+
+:ReleaseExec
+echo Release processing...
+del /S %2"*.pdb""
+del /S %2"*.xml""
+del /S %2"lib/*.pdb""
+echo Release: eliminato pdb + xml!!!
+goto END
+
+:DebugExec
+echo Debug processing...
+
+goto END
+
+
+:RemoteDebugExec
+echo Remote_DEBUG processing, effettuo copia script verso server remoto (ROBOCOPY)
+REM copia script verso server remoto
+REM echo Debug remoto: effettuo robocopy sync (verificare remote per cliente)
+
+REM FINASSI
+REM ROBOCOPY %2 \\10.150.0.1\Steamware\IOB-WIN-WPS-DEB /MIR
+REM Baglietto
+REM ROBOCOPY %2 \\192.168.60.15\Steamware\IOB-WIN-WPS-DEB /MIR
+REM GIACOVELLI LOCOROTONDO
+REM ROBOCOPY %2 \\192.168.1.93\Steamware\IOB-WIN-WPS-DEB /MIR
+REM IMI Remosa
+REM ROBOCOPY %2 \\192.168.0.12\Steamware\IOB-WIN-WPS-DEB /MIR
+
+REM IOB-WIN-SIM
+REM ROBOCOPY %2 \\IOB-WIN-SIMULA\Steamware\IOB-WIN-WPS-DEB /MIR
+
+REM IOBVPN4MACHINE
+REM ROBOCOPY %2 \\10.51.90.5\Steamware\IOB-WIN-WPS-DEB /MIR
+REM ROBOCOPY %2 \\10.51.90.5\Steamware\IOB-WIN-WPS-DEB /MIR /log:RobocopyTransfer.log
+REM ROBOCOPY %2 Z:\IOB-WIN-WPS-DEB /MIR
+REM ROBOCOPY %2 \\10.51.90.10\Steamware\IOB-WIN-WPS-DEB /MIR
+ROBOCOPY %2 \\10.51.90.9\Steamware\IOB-WIN-WPS-DEB /MIR
+
+goto END
+
+:END
+echo Fatto!
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/setupTgt.bat b/IOB-WIN-OPC-UA/setupTgt.bat
new file mode 100644
index 00000000..ba685c02
--- /dev/null
+++ b/IOB-WIN-OPC-UA/setupTgt.bat
@@ -0,0 +1,25 @@
+@echo off
+echo Effettua setup dei file specifici per i vari ambienti pre build installer: verifica da nome configurazione %1
+
+
+if %1 == "Release" goto Release
+if %1 == "Debug" goto Debug
+if %1 == "Remote_DEBUG" goto RemoteDebug
+
+:Release
+echo Release: nulla da copiare
+goto END
+
+:Debug
+echo Debug: copia file ini x simulazione Debug
+REM del %2"DATA\CONF\EsaKvara.ini"
+REM copy %2"Resources\SCM\EsaKvara_SIM.ini" %2"DATA\CONF\EsaKvara.ini"
+goto END
+
+
+:RemoteDebug
+echo RemoteDebug: nulla da copiare
+goto END
+
+:END
+echo Fatto!
\ No newline at end of file
diff --git a/IOB-WIN-OPC-UA/temp/.placeholder b/IOB-WIN-OPC-UA/temp/.placeholder
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-OPC-UA/temp/.placeholder
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-PING/IOB-WIN-PING.csproj b/IOB-WIN-PING/IOB-WIN-PING.csproj
index d56536fb..dd6f71f1 100644
--- a/IOB-WIN-PING/IOB-WIN-PING.csproj
+++ b/IOB-WIN-PING/IOB-WIN-PING.csproj
@@ -135,10 +135,9 @@
Resources.resx
True
-
+
Always
-
-
+
App.config
True
@@ -182,9 +181,6 @@
Always
-
- Always
-