diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 79deaee7..8498eca5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -220,6 +220,19 @@ IOB-WIN-FANUC:build:
- *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'
+
+IOB-WIN-FTP:build:
+ stage: build
+ tags:
+ - win
+ variables:
+ APP_NAME: IOB-WIN-FTP
+ 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'
IOB-WIN-MBUS:build:
stage: build
@@ -365,6 +378,31 @@ IOB-WIN-FANUC:release:
- *nexusUpload
- *SendToVersionsLog
+IOB-WIN-FTP:release:
+ stage: release
+ needs: ["IOB-WIN-FTP:build"]
+ tags:
+ - win
+ variables:
+ APP_NAME: IOB-WIN-FTP
+ NEXUS_PATH: MAPO/IOB-WIN-FTP
+ rules:
+ - if: $CI_COMMIT_BRANCH == 'master'
+ changes:
+ - IOB-WIN-FTP/*
+ 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-MBUS:release:
stage: release
needs: ["IOB-WIN-MBUS:build"]
@@ -584,6 +622,26 @@ IOB-WIN-FANUC:docfx:
- mv $env:APP_NAME/_site "docfx"
- *DocReplica
+IOB-WIN-FTP:docfx:
+ stage: docfx
+ needs: ["IOB-WIN-FTP:build"]
+ tags:
+ - win
+ variables:
+ APP_NAME: IOB-WIN-FTP
+ rules:
+ - if: $CI_COMMIT_BRANCH == 'master'
+ changes:
+ - IOB-WIN-FTP/*
+ 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-MTC:docfx:
stage: docfx
needs: ["IOB-WIN-MTC:build"]
diff --git a/IOB-WIN-FTP.sln b/IOB-WIN-FTP.sln
new file mode 100644
index 00000000..a62eceed
--- /dev/null
+++ b/IOB-WIN-FTP.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-FTP", "IOB-WIN-FTP\IOB-WIN-FTP.csproj", "{3ED97EEA-9EAB-480D-8E53-EDB3662DCB79}"
+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
+ {3ED97EEA-9EAB-480D-8E53-EDB3662DCB79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3ED97EEA-9EAB-480D-8E53-EDB3662DCB79}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3ED97EEA-9EAB-480D-8E53-EDB3662DCB79}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3ED97EEA-9EAB-480D-8E53-EDB3662DCB79}.Debug|x86.Build.0 = Debug|Any CPU
+ {3ED97EEA-9EAB-480D-8E53-EDB3662DCB79}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3ED97EEA-9EAB-480D-8E53-EDB3662DCB79}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3ED97EEA-9EAB-480D-8E53-EDB3662DCB79}.Release|x86.ActiveCfg = Release|Any CPU
+ {3ED97EEA-9EAB-480D-8E53-EDB3662DCB79}.Release|x86.Build.0 = Release|Any CPU
+ {3ED97EEA-9EAB-480D-8E53-EDB3662DCB79}.Remote_DEBUG|Any CPU.ActiveCfg = Release_DEBUG|Any CPU
+ {3ED97EEA-9EAB-480D-8E53-EDB3662DCB79}.Remote_DEBUG|Any CPU.Build.0 = Release_DEBUG|Any CPU
+ {3ED97EEA-9EAB-480D-8E53-EDB3662DCB79}.Remote_DEBUG|x86.ActiveCfg = Release|Any CPU
+ {3ED97EEA-9EAB-480D-8E53-EDB3662DCB79}.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-FTP/AdapterFormNext.cs b/IOB-WIN-FTP/AdapterFormNext.cs
new file mode 100644
index 00000000..53066a47
--- /dev/null
+++ b/IOB-WIN-FTP/AdapterFormNext.cs
@@ -0,0 +1,55 @@
+using IOB_UT_NEXT;
+using IOB_WIN_FTP.Iob;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IOB_WIN_FTP
+{
+ 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.FTP:
+ iobObj = new Iob.Ftp(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-FTP/App.Debug.config b/IOB-WIN-FTP/App.Debug.config
new file mode 100644
index 00000000..42297ccc
--- /dev/null
+++ b/IOB-WIN-FTP/App.Debug.config
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-FTP/App.Release.config b/IOB-WIN-FTP/App.Release.config
new file mode 100644
index 00000000..0f80d173
--- /dev/null
+++ b/IOB-WIN-FTP/App.Release.config
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-FTP/App.config b/IOB-WIN-FTP/App.config
new file mode 100644
index 00000000..fd627151
--- /dev/null
+++ b/IOB-WIN-FTP/App.config
@@ -0,0 +1,186 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-FTP/DATA/CONF/FTP-PING.ini b/IOB-WIN-FTP/DATA/CONF/FTP-PING.ini
new file mode 100644
index 00000000..efe46cca
--- /dev/null
+++ b/IOB-WIN-FTP/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-FTP/DATA/CONF/FTP_SONATEST.ini b/IOB-WIN-FTP/DATA/CONF/FTP_SONATEST.ini
new file mode 100644
index 00000000..9aa6c689
--- /dev/null
+++ b/IOB-WIN-FTP/DATA/CONF/FTP_SONATEST.ini
@@ -0,0 +1,79 @@
+;Configurazione IOB-WIN
+[IOB]
+;Macchina TEST FTP simile a ultrasuoni Sonatest x IMI Remosa
+CNCTYPE=FTP
+PING_MS_TIMEOUT=500
+
+[MACHINE]
+VENDOR=TEST_FTP
+MODEL=TRUESCALE_FTP
+
+[CNC]
+IP=10.74.82.204
+PORT=21
+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=
+
+[MEMORY]
+ADDR_READ=DB9999.DBB0
+ADDR_WRITE=DB9999.DBB0
+SIZE_READ=0
+SIZE_WRITE=0
+
+
+[BLINK]
+;MAX_COUNTER_BLINK = 30
+MAX_COUNTER_BLINK = 30
+BLINK_FILT=0
+
+[OPTPAR]
+; imposto breve sennò non riesce a partire...
+WAIT_REC_MSEC = 1000
+; indica gestione folder ritorno dati ODL
+ODL_FOLDER = TRUE
+; gestione contapezzi
+PZCOUNT_MODE=NONE
+DISABLE_PZCOUNT=TRUE
+ENABLE_SEND_PZC_BLOCK=FALSE
+MIN_SEND_PZC_BLOCK=0
+MAX_SEND_PZC_BLOCK=100
+;errori verifica folder FTP MAX
+MAX_ERR_CHECK=10
+; gestione DynData
+ENABLE_DYN_DATA=TRUE
+FORCE_DYN_DATA=TRUE
+DISABLE_DYN_DATA=TRUE
+DISABLE_SEND_WDST=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
+POWEROFF_TIMEOUT_SEC=60
+
+; conf parametri memoria READ/WRITE
+FTP_PARAM=FTP_SONATEST.json
+
+[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-FTP/DATA/CONF/FTP_SONATEST.json b/IOB-WIN-FTP/DATA/CONF/FTP_SONATEST.json
new file mode 100644
index 00000000..de2bdc0f
--- /dev/null
+++ b/IOB-WIN-FTP/DATA/CONF/FTP_SONATEST.json
@@ -0,0 +1,26 @@
+{
+ "ListTask": [
+ {
+ "ActionId": "FtpDownload",
+ "ServerAddr": "egw-tscale-04",
+ "ServerPort": 21,
+ "ConnUser": "testftpuser",
+ "ConnPasswd": "we4reFromB3rghem!",
+ "RawCert": "",
+ "SkipCert": true,
+ "ReExecVeto": 90,
+ "Note": "Sync periodico completo",
+ "StepsList": [
+ {
+ "Id": "01",
+ "Description": "Mirror Remote 2 Local Directory",
+ "Action": "mirrorDirR2L",
+ "ParamList": {
+ "RemoteDir": "ftpdata/syncfolder",
+ "LocalDir": "\\\\iis01\\W$\\Files"
+ }
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/IOB-WIN-FTP/DATA/CONF/IMI_SONATEST.ini b/IOB-WIN-FTP/DATA/CONF/IMI_SONATEST.ini
new file mode 100644
index 00000000..399dd54e
--- /dev/null
+++ b/IOB-WIN-FTP/DATA/CONF/IMI_SONATEST.ini
@@ -0,0 +1,79 @@
+;Configurazione IOB-WIN
+[IOB]
+;Macchina controllo ultrasuoni Sonatest x IMI Remosa
+CNCTYPE=FTP
+PING_MS_TIMEOUT=500
+
+[MACHINE]
+VENDOR=SONATEST
+MODEL=VEO
+
+[CNC]
+IP=172.28.30.208
+PORT=21
+PING_IP=172.28.30.208
+GETPRGNAME=false
+
+[SERVER]
+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
+
+
+[BLINK]
+;MAX_COUNTER_BLINK = 30
+MAX_COUNTER_BLINK = 30
+BLINK_FILT=0
+
+[OPTPAR]
+; imposto breve sennò non riesce a partire...
+WAIT_REC_MSEC = 1000
+; indica gestione folder ritorno dati ODL
+ODL_FOLDER = TRUE
+; gestione contapezzi
+PZCOUNT_MODE=NONE
+DISABLE_PZCOUNT=TRUE
+ENABLE_SEND_PZC_BLOCK=FALSE
+MIN_SEND_PZC_BLOCK=0
+MAX_SEND_PZC_BLOCK=100
+;errori verifica folder FTP MAX
+MAX_ERR_CHECK=10
+; gestione DynData
+ENABLE_DYN_DATA=TRUE
+FORCE_DYN_DATA=TRUE
+DISABLE_DYN_DATA=TRUE
+DISABLE_SEND_WDST=TRUE
+
+; gestioni PING
+MAX_TRY_PING=3
+VETO_QUEUE_IN=5
+VETO_PING_SEC=5
+VETO_CHECKDIR_SEC=10
+MAX_ELAPSED_TIME_SEC=60
+
+;VETO_SEND_SNAPSHOT=3
+POWEROFF_TIMEOUT_SEC=60
+
+; conf parametri memoria READ/WRITE
+FTP_PARAM=IMI_SONATEST.json
+
+[BRANCH]
+NAME=master
+
+; Tags manuali
+[TAGS]
+Customer=IMI-Remosa
+HostOS=WIN
+HostName=MAPO-SRV-60
+HostAddr=192.168.0.12
diff --git a/IOB-WIN-FTP/DATA/CONF/IMI_SONATEST.json b/IOB-WIN-FTP/DATA/CONF/IMI_SONATEST.json
new file mode 100644
index 00000000..c6ff3c6e
--- /dev/null
+++ b/IOB-WIN-FTP/DATA/CONF/IMI_SONATEST.json
@@ -0,0 +1,27 @@
+{
+ "ListTask": [
+ {
+ "ActionId": "FtpDownload",
+ "ServerAddr": "172.28.30.208",
+ "ServerPort": 21,
+ "ConnUser": "ftpuser",
+ "ConnPasswd": "SOnaTEst",
+ "RawCert": "",
+ "SkipCert": true,
+ "ReExecVeto": 90,
+ "Note": "Sync periodico completo",
+ "StepsList": [
+ {
+ "Id": "01",
+ "Description": "Mirror Remote 2 Local Directory",
+ "Action": "mirrorDirR2L",
+ "ParamList": {
+ "RemoteDir": "internal/MES",
+ "LocalDir": "\\\\308file\\shares\\QUAL\\Sonatest_Reports\\MES"
+ }
+ }
+
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/IOB-WIN-FTP/DATA/CONF/MAIN.ini b/IOB-WIN-FTP/DATA/CONF/MAIN.ini
new file mode 100644
index 00000000..5335f1c9
--- /dev/null
+++ b/IOB-WIN-FTP/DATA/CONF/MAIN.ini
@@ -0,0 +1,24 @@
+;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_SONATEST
+STARTLIST=FTP_SONATEST
+
+
+MAXCNC=10
\ No newline at end of file
diff --git a/IOB-WIN-FTP/DATA/CONF/SIMUL_01.ini b/IOB-WIN-FTP/DATA/CONF/SIMUL_01.ini
new file mode 100644
index 00000000..08975356
--- /dev/null
+++ b/IOB-WIN-FTP/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-FTP/DATA/CONF/SIMUL_01.json b/IOB-WIN-FTP/DATA/CONF/SIMUL_01.json
new file mode 100644
index 00000000..d2895eb1
--- /dev/null
+++ b/IOB-WIN-FTP/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-FTP/DATA/CONF/SIMUL_01_WD.ini b/IOB-WIN-FTP/DATA/CONF/SIMUL_01_WD.ini
new file mode 100644
index 00000000..56bca173
--- /dev/null
+++ b/IOB-WIN-FTP/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-FTP/DATA/CONF/SIMUL_01_alarm.json b/IOB-WIN-FTP/DATA/CONF/SIMUL_01_alarm.json
new file mode 100644
index 00000000..4f6ed310
--- /dev/null
+++ b/IOB-WIN-FTP/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-FTP/DATA/DAT/PersistData.dat b/IOB-WIN-FTP/DATA/DAT/PersistData.dat
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-FTP/DATA/DAT/PersistData.dat
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-FTP/DATA/DAT/SimData.dat b/IOB-WIN-FTP/DATA/DAT/SimData.dat
new file mode 100644
index 00000000..c59e4823
--- /dev/null
+++ b/IOB-WIN-FTP/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-FTP/DATA/HIST/.placeholder b/IOB-WIN-FTP/DATA/HIST/.placeholder
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-FTP/DATA/HIST/.placeholder
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-FTP/ILLink/ILLink.Descriptors.LibraryBuild.xml b/IOB-WIN-FTP/ILLink/ILLink.Descriptors.LibraryBuild.xml
new file mode 100644
index 00000000..a42d7f0e
--- /dev/null
+++ b/IOB-WIN-FTP/ILLink/ILLink.Descriptors.LibraryBuild.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/IOB-WIN-FTP/IOB-WIN-FTP.csproj b/IOB-WIN-FTP/IOB-WIN-FTP.csproj
new file mode 100644
index 00000000..14cfca70
--- /dev/null
+++ b/IOB-WIN-FTP/IOB-WIN-FTP.csproj
@@ -0,0 +1,260 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {3ED97EEA-9EAB-480D-8E53-EDB3662DCB79}
+ WinExe
+ IOB_WIN_FTP
+ IOB-WIN-FTP
+ 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\EgwProxy.Ftp.3.6.2410.816\lib\EgwProxy.Ftp.dll
+
+
+ ..\packages\FluentFTP.51.1.0\lib\net462\FluentFTP.dll
+
+
+ ..\packages\MapoSDK.6.14.2411.518\lib\MapoSDK.dll
+
+
+ ..\packages\Microsoft.Bcl.AsyncInterfaces.9.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll
+
+
+ ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.9.0.0\lib\net462\Microsoft.Extensions.DependencyInjection.Abstractions.dll
+
+
+ ..\packages\Microsoft.Extensions.Logging.Abstractions.9.0.0\lib\net462\Microsoft.Extensions.Logging.Abstractions.dll
+
+
+ ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll
+
+
+ ..\packages\StackExchange.Redis.2.8.24\lib\net461\StackExchange.Redis.dll
+
+
+
+ ..\packages\System.Buffers.4.6.0\lib\net462\System.Buffers.dll
+
+
+
+ ..\packages\System.Diagnostics.DiagnosticSource.9.0.0\lib\net462\System.Diagnostics.DiagnosticSource.dll
+
+
+ ..\packages\System.Diagnostics.PerformanceCounter.9.0.0\lib\net462\System.Diagnostics.PerformanceCounter.dll
+
+
+ ..\packages\System.IO.Pipelines.9.0.0\lib\net462\System.IO.Pipelines.dll
+
+
+ ..\packages\System.Memory.4.6.0\lib\net462\System.Memory.dll
+
+
+
+ ..\packages\System.Numerics.Vectors.4.6.0\lib\net462\System.Numerics.Vectors.dll
+
+
+ ..\packages\System.Runtime.CompilerServices.Unsafe.6.1.0\lib\net462\System.Runtime.CompilerServices.Unsafe.dll
+
+
+ ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll
+
+
+ ..\packages\System.Threading.Channels.9.0.0\lib\net462\System.Threading.Channels.dll
+
+
+ ..\packages\System.Threading.Tasks.Extensions.4.6.0\lib\net462\System.Threading.Tasks.Extensions.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VersGen.cs
+
+
+ Form
+
+
+
+
+ Form
+
+
+
+
+
+ Always
+
+
+ Always
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+ App.config
+ PreserveNewest
+
+
+ App.config
+ PreserveNewest
+
+
+ Always
+
+
+ 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-FTP/Iob/Ftp.cs b/IOB-WIN-FTP/Iob/Ftp.cs
new file mode 100644
index 00000000..b54c0618
--- /dev/null
+++ b/IOB-WIN-FTP/Iob/Ftp.cs
@@ -0,0 +1,1010 @@
+using EgwProxy.Ftp;
+using IOB_UT_NEXT;
+using MapoSDK;
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using System.Net.NetworkInformation;
+
+namespace IOB_WIN_FTP.Iob
+{
+ ///
+ /// Classe gestione sync via FTP
+ ///
+ public class Ftp : Iob.GenericNext
+ {
+ #region Public Constructors
+
+ ///
+ /// Estende l'init della classe base, impiegando il pacchetto EgwCoreLib.Ftp
+ /// - gestione dei task da svolgere da configurazione json specifica
+ /// - specializzazione da conf e non da codice
+ ///
+ ///
+ ///
+ public Ftp(AdapterFormNext caller, IobConfiguration IOBConf) : base(caller, IOBConf)
+ {
+ lgInfo("Init IobFtp Client");
+ // imposto
+ B_input = 0;
+ // init datetime counters
+ DateTime adesso = DateTime.Now;
+ lastPzCountSend = adesso;
+ lastWarnODL = adesso;
+ vetoCheckStatus = adesso;
+ // 2023.09.05 imposto anche primo ping e check disconnected...
+ lastPING = adesso;
+ lastDisconnCheck = adesso;
+ var VETO_PING_SEC = getOptPar("VETO_PING_SEC");
+ if (!string.IsNullOrEmpty(VETO_PING_SEC))
+ {
+ int.TryParse(VETO_PING_SEC, out vetoPingSec);
+ }
+ var VETO_CHECKDIR_SEC = getOptPar("VETO_CHECKDIR_SEC");
+ if (!string.IsNullOrEmpty(VETO_CHECKDIR_SEC))
+ {
+ int.TryParse(VETO_CHECKDIR_SEC, out vetoCheckDirSec);
+ }
+ var POWEROFF_TIMEOUT_SEC = getOptPar("POWEROFF_TIMEOUT_SEC");
+ if (!string.IsNullOrEmpty(POWEROFF_TIMEOUT_SEC))
+ {
+ int.TryParse(POWEROFF_TIMEOUT_SEC, out PoweroffTimeoutSec);
+ }
+ // fix coda ping
+ PingQueue = new DataQueue("000", "PingQueue", false);
+ // carico conf specifica steps FTP
+ string ftpConfFile = getOptPar("FTP_PARAM");
+ if (!string.IsNullOrEmpty(ftpConfFile))
+ {
+ loadFtpConfFile(ftpConfFile);
+ // mi calcolo ed imposto la ftpClientMan + Remote BaseDir...
+ string actKey = "RemoteDir";
+ if (currFtpTaskList != null && currFtpTaskList.ListTask.Count > 0)
+ {
+ // prendo i task
+ foreach (var fTask in currFtpTaskList.ListTask)
+ {
+ if (string.IsNullOrEmpty(RemoteBaseDir))
+ {
+ foreach (var fAct in fTask.StepsList)
+ {
+ // cerco nei parametri...
+ if (fAct.ParamList.ContainsKey(actKey))
+ {
+ RemoteBaseDir = fAct.ParamList[actKey];
+ break;
+ }
+ }
+ }
+ if (!ftpClientMan.IsConfigured)
+ {
+ // setup ftpClientMan!
+ ftpClientMan = new Manager(fTask.ServerAddr, fTask.ConnUser, fTask.ConnPasswd, fTask.RawCert, fTask.SkipCert);
+ }
+ }
+ }
+ }
+ forceMemMap();
+ // invio conf macchina all'inizio
+ SendMachineConf();
+ }
+
+ #endregion Public Constructors
+
+ #region Public Methods
+
+ ///
+ /// Processo i task richiesti e li elimino dalla coda
+ ///
+ ///
+ public override Dictionary executeTasks(Dictionary task2exe)
+ {
+ /*---------------------------------------------------------------------------
+ * va creata una folder x ogni ODL (una volta LANCIATO da tablet) APERTO
+ * - nella folder scriviamo un file con articolo, qta, commessa
+ * - la folder sarà usata x salvare OGNI file necessario e di rilevazione
+ * - per farlo si creeano degli ActionStep specifici e vengono poi richiamati...
+ *---------------------------------------------------------------------------*/
+
+ // Verificare il protocollo: dovrebbe togliere SOLO i task eseguiti...
+ Dictionary taskDone = new Dictionary();
+ ActionConfig currAct = new ActionConfig();
+ var currActParam = new Dictionary();
+ string actKey = "RemoteDir";
+ string newDir = "";
+ bool taskOk = false;
+ string taskVal = "";
+ string fNameOdl = "ODL_ATTIVO.txt";
+ string basePath = System.Windows.Forms.Application.StartupPath;
+ string remFile = "";
+ string fileContent = "";
+ string locFile = "";
+ // cerco task specifici: se ho startSetup --> imposto bit DBB701.DBB0.4
+ foreach (var item in task2exe)
+ {
+ taskOk = false;
+ taskVal = "";
+ // converto richiesta in enum...
+ taskType tName = taskType.nihil;
+ Enum.TryParse(item.Key, out tName);
+ // controllo sulla KEY...
+ switch (tName)
+ {
+ case taskType.setArt:
+ case taskType.setPzComm:
+ // L'articolo ed il numPz li salva nei dati di produzione... SE disponibili
+ // li indicherà nel file ODL ATTIVA...
+ upsertKey(item.Key, item.Value);
+ // salvo nei taskVal il valore acquisito...
+ taskVal = $"Saved {item.Key} = {item.Value} on ProdData";
+ break;
+
+ case taskType.setComm:
+ /*------------------------------------------------------------------
+ * La commessa è la cartella DI BASE per poter poi procedere con acquisizione dati...
+ * - step 1: check folder
+ * - step 2: creazione folder
+ * - step 3: salva file ODL_attiva
+ * - step 4: salva parametro dell'ODL corrente
+ ------------------------------------------------------------------*/
+ // compongo remDir dai 2 parametri...
+ actKey = "RemoteDir";
+ newDir = $"{RemoteBaseDir}/{item.Value}";
+ currActParam.Add(actKey, newDir);
+ currAct = new ActionConfig()
+ {
+ Id = "01",
+ Description = "Verifica esistenza directory",
+ Action = ActType.CheckDir,
+ ParamList = currActParam
+ };
+ //eseguo step...
+ bool dirOk = doStep(currAct);
+ // se la cartella mancasse
+ if (!dirOk)
+ {
+ // nuovo act x crearla!
+ currAct = new ActionConfig()
+ {
+ Id = "02",
+ Description = "Creazione directory",
+ Action = ActType.CreateDir,
+ ParamList = currActParam
+ };
+ //eseguo step...
+ dirOk = doStep(currAct);
+ if (dirOk)
+ {
+ taskVal = $"DIR Created: {item.Key} --> {item.Value}";
+ }
+ }
+ else
+ {
+ taskVal = $"DIR Already Exists: {item.Key} --> {item.Value}";
+ }
+ // ora creo il file interno...
+ remFile = $"{newDir}/{fNameOdl}";
+ // cerco se disponibili info in prodData x art/pezzi
+ string setArt = getCurrProdData("setArt", "ND");
+ string setPzComm = getCurrProdData("setPzComm", "?");
+ fileContent = $"NEW ODL activated | {item.Value} | ART: {setArt} x {setPzComm} pz | {DateTime.Now}";
+ locFile = Path.Combine(basePath, "temp", fNameOdl);
+ taskOk = SendOdlActFile(locFile, remFile, fileContent);
+ if (taskOk)
+ {
+ taskVal += $"{Environment.NewLine}File uploaded | locFile: {locFile} | remFile: {remFile}";
+ }
+ else
+ {
+ lgError($"Error in startSetup | fileUpload | locFile: {locFile} | remFile: {remFile}");
+ }
+ // salvo in currProd..
+ upsertKey(item.Key, item.Value);
+ break;
+
+ case taskType.startSetup:
+ case taskType.stopSetup:
+ //verifico odl x prima cosa...
+ pzCntReload(true);
+ // faccio pulizia preliminare della commessa corrente...
+ bool cleanDone = RemPlaceholder(RemoteBaseDir, fNameOdl);
+ if (cleanDone)
+ {
+ lgInfo($"Cleaned {fNameOdl} during startSetup | remDir: {RemoteBaseDir}");
+ }
+ // verifico di avere già un ODL corrente...
+ if (currIdxODL == 0)
+ {
+ lgTrace($"Manca ODL corrente: non procedo con impostazione start/stop setup");
+ }
+ else
+ {
+ string odlFolder = $"ODL{currIdxODL:00000000}";
+ remFile = $"{RemoteBaseDir}/{odlFolder}/{fNameOdl}";
+ fileContent = item.Value;
+ // scrivo file ultima richiesta setup
+ locFile = Path.Combine(basePath, "temp", fNameOdl);
+ taskOk = SendOdlActFile(locFile, remFile, fileContent);
+ if (taskOk)
+ {
+ taskVal = $"File uploaded: {item.Key} --> {item.Value} | locFile: {locFile} | remFile: {remFile}";
+ }
+ else
+ {
+ lgError($"Error in startSetup | fileUpload | locFile: {locFile} | remFile: {remFile}");
+ }
+ }
+
+ break;
+
+ case taskType.endProd:
+ bool okRemove = RemPlaceholder(RemoteBaseDir, fNameOdl);
+ if (okRemove)
+ {
+ taskVal = $"Cleaned CurrOdlFile: {item.Key} --> {item.Value} | remDir: {RemoteBaseDir} | fName: {fNameOdl}";
+ }
+ else
+ {
+ lgError($"Error in CurrOdlFile | remDir: {RemoteBaseDir} | fName: {fNameOdl}");
+ }
+ break;
+
+ default:
+ taskVal = $"taskReq: {tName} | key: {item.Key} | val: {item.Value} | SKIPPED | NO EXEC";
+ lgInfo($"Chiamata senza processing: taskOk: {taskOk} | taskVal: {taskVal}");
+ break;
+ }
+ // aggiungo task SE svolto!
+ if (!string.IsNullOrEmpty(taskVal))
+ {
+ taskDone.Add(item.Key, taskVal);
+ }
+ }
+ return taskDone;
+ }
+
+ ///
+ /// Effettua processing CUSTOM x FTP:
+ /// - prende ogni conf specifica
+ /// - esegue step
+ /// - registra eventuali DynData da salvare
+ ///
+ public override void processCustomTaskLF()
+ {
+ lgInfo($"Richiesto processCustomTaskLF");
+ // verifico di avere compiti da svolgere...
+ if (currFtpTaskList != null && currFtpTaskList.ListTask != null && currFtpTaskList.ListTask.Count > 0)
+ {
+ foreach (var srvFtp in currFtpTaskList.ListTask)
+ {
+ // verifico eventuale veto all'esecuzione...
+ if (ActionEnabled(srvFtp))
+ {
+ // imposto nuovo veto...
+ ActionResetVeto(srvFtp);
+ // ora setup server FTP x item...
+ ftpClientMan = new Manager(srvFtp.ServerAddr, srvFtp.ConnUser, srvFtp.ConnPasswd, srvFtp.RawCert, srvFtp.SkipCert);
+ // test server ok...
+ if (ftpClientMan.ServerOk())
+ {
+ int stepDone = 0;
+ string srvType = ftpClientMan.ServerType();
+ lgTrace($"Connesso a server {srvType} | {srvFtp.ServerAddr} | inizio processing {srvFtp.StepsList.Count} steps");
+ // ciclo tra i vari steps!
+ foreach (var step in srvFtp.StepsList)
+ {
+ bool fatto = doStep(step);
+ stepDone += fatto ? 1 : 0;
+ }
+ lgInfo($"Completata esecuzione steps FTP | {srvFtp.ActionId} | {stepDone}/{srvFtp.StepsList.Count} Done/Req");
+ }
+ else
+ {
+ // FixMe ToDo verificare se necessario...
+ //connectionOk = false;
+ //tryDisconnect();
+ lgError($"Impossibile connettersi al server {srvFtp.ServerAddr}");
+ }
+ }
+ else
+ {
+ lgTrace($"Saltata esecuzione {srvFtp.ActionId} | veto attivo");
+ }
+ }
+ }
+ lastReadPLC = DateTime.Now;
+ }
+
+ ///
+ /// Effettua lettura semafori principale Parametri da
+ /// aggiornare x display in form
+ ///
+ public override void readSemafori(ref newDisplayData currDispData)
+ {
+ DateTime adesso = DateTime.Now;
+ // procedo solo se ftp è configurato (altrimenti inutile controllare...)ù
+ if (ftpClientMan.IsConfigured)
+ {
+ // salto se fosse attivo il veto ping...
+ if (lastPING.AddSeconds(vetoPingSec) < adesso)
+ {
+ // lo stato è come ping machine, x ora puntato a IP unico (WiFi?)
+ byte[] MemBlock = new byte[2];
+ try
+ {
+ currDispData.semIn = Semaforo.SV;
+ // in primis salvo data ping comunque...
+ lastPING = adesso;
+
+ // salvo esito ping
+ bool pingOK = testPingMachine == IPStatus.Success;
+ addTest(pingOK);
+ bool ftpOk = ftpClientMan.ServerOk();
+ // se passa il check ping + folder faccio il resto...
+ if (pingStatusOk() && ftpOk)
+ {
+ // salto se fosse attivo il veto controllo folder...
+ if (lastCheckDir.AddSeconds(vetoCheckDirSec) < adesso)
+ {
+ lastCheckDir = adesso;
+ // verifico SE HO una folder da ODL in currProdData e se è disponibile...
+ string reqFolder = getCurrProdData("setComm", "");
+ if (!string.IsNullOrEmpty(reqFolder))
+ {
+ // verifico se ci sia...
+ ActionConfig currAct = new ActionConfig();
+ var currActParam = new Dictionary();
+ // compongo remDir dai 2 parametri...
+ currActParam.Add("RemoteDir", $"{RemoteBaseDir}/{reqFolder}");
+ currAct = new ActionConfig()
+ {
+ Id = "01",
+ Description = "Verifica esistenza directory",
+ Action = ActType.CheckDir,
+ ParamList = currActParam
+ };
+ //eseguo step...
+ bool dirOk = doStep(currAct);
+ if (dirOk)
+ {
+ numErroriCheck = numErroriCheck > 0 ? numErroriCheck-- : 0;
+ }
+ else
+ {
+ lgInfo($"Rilevata mancanza folder ODL: inizio ripristino tramite task setComm");
+ numErroriCheck++;
+ // altrimenti eseguo task2exe x crearla...
+ Dictionary task2ExeSetOdl = new Dictionary();
+ task2ExeSetOdl.Add($"setComm", reqFolder);
+ var res = executeTasks(task2ExeSetOdl);
+ }
+ }
+ }
+
+ // se supero soglia errori lettura --> disconnetto e resetto
+ if (numErroriCheck > maxErroriCheck)
+ {
+ lgError($"numErroriCheck: {numErroriCheck} --> disconnessione adapter con tryDisconnect");
+
+ numErroriCheck = 0;
+ connectionOk = false;
+ tryDisconnect();
+ }
+ else
+ {
+ connectionOk = true;
+ }
+
+ lastReadPLC = adesso;
+ lastWatchDog = adesso;
+ }
+ else
+ {
+ connectionOk = false;
+ }
+
+ if (connectionOk)
+ {
+ B_input = 3;
+ // aggiungo NON emergenza...
+ B_input += (1 << 7);
+ }
+ else
+ {
+ B_input = 0;
+ }
+ }
+ catch
+ {
+ currDispData.semIn = Semaforo.SR;
+ }
+ }
+ }
+ }
+
+ public override void startAdapter(bool resetQueue)
+ {
+ base.startAdapter(resetQueue);
+ // 2023.09.05 imposto anche primo ping e check disconnected...
+ DateTime adesso = DateTime.Now;
+ lastWatchDog = adesso;
+ //lastPING = adesso;
+ lastReadPLC = adesso;
+ lastDisconnCheck = adesso;
+ // faccio un primo check POST ritardo
+ tryConnect();
+ }
+
+ ///
+ /// Override connessione
+ ///
+ public override void tryConnect()
+ {
+ bool doLog = (verboseLog || periodicLog);
+ lgDebug($"FTP: tryConnect step 01 | connectionOk: {connectionOk}");
+ if (!connectionOk)
+ {
+ //// resetto coda...
+ //PingQueue = new DataQueue("000", "PingQueue", false);
+ // controllo che il ping sia stato tentato almeno pingTestSec fa...
+ if (DateTime.Now.Subtract(lastPING).TotalSeconds > vetoPingSec)
+ {
+ if (doLog)
+ {
+ lgInfo("FTP: ConnKO - tryConnect");
+ }
+ lgDebug("FTP: tryConnect step 04");
+
+ lgDebug("FTP: Reset PingQueue");
+
+ bool pingOK = testPingMachine == IPStatus.Success;
+ addTest(pingOK);
+
+ // se passa il ping faccio il resto...
+ if (pingStatusOk())
+ {
+ // in primis salvo data ping...
+ lastPING = DateTime.Now;
+ connectionOk = true;
+ queueInEnabCurr = true;
+ lgInfo("FTP - ping OK");
+ }
+ else
+ {
+ // loggo no risposta ping ...
+ lgError("FTP - ping KO");
+ }
+ }
+ }
+ }
+
+ ///
+ /// Override disconnessione
+ ///
+ public override void tryDisconnect()
+ {
+ lgInfo("Richiesta disconnessione adapter FTP!");
+ connectionOk = false;
+ queueInEnabCurr = false;
+ }
+
+ #endregion Public Methods
+
+ #region Protected Methods
+
+ ///
+ /// Imposta la memoria PLC in modo forzato (es x oggetti gestiti da FTP come setComm)
+ ///
+ protected override void forceMemMap()
+ {
+ // simulo setup mappa memoria in scrittura...
+ memMap = new plcMemMapExt();
+ // area READ
+ Dictionary ftpMemRead = new Dictionary();
+ ftpMemRead.Add("FtpSync", new dataConfTSVC()
+ {
+ description = "Last FTP sync",
+ name = "FtpSync",
+ tipoMem = plcDataType.String,
+ displOrdinal = 10
+ });
+ memMap.mMapRead = ftpMemRead;
+ // area WRITE
+ Dictionary ftpMemWrite = new Dictionary();
+ ftpMemWrite.Add("setComm", new dataConf()
+ {
+ description = "Commessa",
+ name = "setComm",
+ tipoMem = plcDataType.String,
+ displOrdinal = 1
+ });
+ ftpMemWrite.Add("setArt", new dataConf()
+ {
+ description = "Articolo",
+ name = "setArt",
+ tipoMem = plcDataType.String,
+ displOrdinal = 2
+ });
+ ftpMemWrite.Add("setPzComm", new dataConf()
+ {
+ description = "Qta Richiesta",
+ name = "setPzComm",
+ tipoMem = plcDataType.Int,
+ displOrdinal = 3
+ });
+ memMap.mMapWrite = ftpMemWrite;
+ // eseguo setup + invio info configurazione...
+ setupMemMap();
+ }
+
+ #endregion Protected Methods
+
+ #region Private Fields
+
+ private static Stopwatch sw = new Stopwatch();
+
+ ///
+ /// Ultima verifica presenza dir corrente
+ ///
+ private DateTime lastCheckDir = DateTime.Now.AddHours(-1);
+
+ ///
+ /// Dimensione coda di ping x valutazione
+ ///
+ private int maxQueuePing = 11;
+
+ ///
+ /// Coda degli esiti di ping x calcolo stato macchina
+ ///
+ private DataQueue PingQueue = new DataQueue("000", "PingQueue", false);
+
+ private int PoweroffTimeoutSec = 100;
+
+ ///
+ /// Dizionario dei divieti di esecuzione x i vari step
+ ///
+ private Dictionary StepsVeto = new Dictionary();
+
+ ///
+ /// Periodo veto controllo directory FTP corrente
+ ///
+ private int vetoCheckDirSec = 5;
+
+ ///
+ /// Veto controllo status x log...
+ ///
+ private DateTime vetoCheckStatus = DateTime.Now;
+
+ #endregion Private Fields
+
+ #region Private Properties
+
+ ///
+ /// Oggetto configurazione gestione FTP
+ ///
+ private FtpTaskList currFtpTaskList { get; set; } = new FtpTaskList();
+
+ ///
+ /// CLient connessioni FTP
+ ///
+ private Manager ftpClientMan { get; set; } = new Manager("", "", "", "", false);
+
+ ///
+ /// Directpry remota di abse
+ ///
+ private string RemoteBaseDir { get; set; } = "";
+
+ #endregion Private Properties
+
+ #region Private Methods
+
+ ///
+ /// Verifica se l'azione sia permessa o in stato veto a tempo
+ ///
+ ///
+ ///
+ private bool ActionEnabled(FtpActConf currAct)
+ {
+ bool enabled = true;
+ // se veto presente
+ if (StepsVeto.ContainsKey(currAct.ActionId))
+ {
+ // controllo scadenza
+ enabled = StepsVeto[currAct.ActionId] < DateTime.Now;
+ }
+ return enabled;
+ }
+
+ ///
+ /// Imposta veto azione corrente
+ ///
+ ///
+ ///
+ private bool ActionResetVeto(FtpActConf currAct)
+ {
+ bool fatto = false;
+ if (StepsVeto.ContainsKey(currAct.ActionId))
+ {
+ StepsVeto[currAct.ActionId] = DateTime.Now.AddSeconds(currAct.ReExecVeto);
+ }
+ else
+ {
+ StepsVeto.Add(currAct.ActionId, DateTime.Now.AddSeconds(currAct.ReExecVeto));
+ }
+ return fatto;
+ }
+
+ private void addTest(bool pingOk)
+ {
+ int score = pingOk ? 1 : 0;
+ // controllo: se era spenta e risulta ping ok --> reset coda!
+ if (B_input == 0 && pingOk)
+ {
+ B_input = 1;
+ PingQueue = new DataQueue("000", "PingQueue", false);
+ lgTrace($"PingQueue resetted on addTest");
+ }
+ PingQueue.Enqueue($"{score}");
+ while (PingQueue.Count > maxQueuePing)
+ {
+ string res = "";
+ PingQueue.TryDequeue(out res);
+ }
+ }
+
+ ///
+ /// Esegue l'azione configurata
+ ///
+ ///
+ ///
+ ///
+ private bool doStep(ActionConfig step)
+ {
+ bool fatto = false;
+ string remoteVal = "";
+ string localVal = "";
+ string sVal = "";
+ string actKey = "";
+ string actVal = "";
+ // faccio switch in base al tipo di azione da eseguire...
+ switch (step.Action)
+ {
+ case ActType.CheckDir:
+ if (step.ParamList != null && step.ParamList.Count > 0)
+ {
+ sw.Restart();
+ remoteVal = step.ParamList["RemoteDir"] ?? "";
+ //verifico dir remota
+ fatto = ftpClientMan.DirExists(remoteVal);
+ }
+ else
+ {
+ lgError("Error: missing parameters!");
+ }
+ sw.Stop();
+ if (fatto)
+ {
+ lgInfo($"Check RemDir: {remoteVal} | {sw.ElapsedMilliseconds:N1} ms");
+ }
+ break;
+
+ case ActType.CheckFile:
+ break;
+
+ case ActType.CreateDir:
+ if (step.ParamList != null && step.ParamList.Count > 0)
+ {
+ sw.Restart();
+ remoteVal = step.ParamList["RemoteDir"] ?? "";
+ //verifico dir remota
+ bool dirExist = ftpClientMan.DirExists(remoteVal);
+ if (dirExist)
+ {
+ lgTrace("Error: Folder already exists!");
+ }
+ else
+ {
+ fatto = ftpClientMan.CreateDir(remoteVal);
+ }
+ }
+ else
+ {
+ lgError("Error: missing parameters!");
+ }
+ sw.Stop();
+ if (fatto)
+ {
+ lgInfo($"Directory {remoteVal} created!| {sw.ElapsedMilliseconds:N1} ms");
+ }
+ break;
+
+ case ActType.DelDir:
+ break;
+
+ case ActType.DelFile:
+ break;
+
+ case ActType.DownloadDir:
+
+ break;
+
+ case ActType.DownloadFile:
+ break;
+
+ case ActType.GenRandomDir:
+ break;
+
+ case ActType.ListContent:
+ break;
+
+ case ActType.MirrorDirL2R:
+ break;
+
+ case ActType.MirrorDirR2L:
+ // eseguo mirroring directory
+ actKey = "FtpSync";
+ actVal = "SRC --> DEST | Size";
+ if (step.ParamList != null && step.ParamList.Count > 1)
+ {
+ sw.Restart();
+ remoteVal = step.ParamList["RemoteDir"] ?? "";
+ localVal = step.ParamList["LocalDir"] ?? "";
+ // verifico esistenza dir locale...
+ if (!Directory.Exists(localVal))
+ {
+ Directory.CreateDirectory(localVal);
+ }
+ //verifico dir remota
+ var preTest = ftpClientMan.DirExists(remoteVal);
+ if (preTest)
+ {
+ // chiamo metodo MIRROR x calcolare esattamente se ci siano stati
+ // download di sync...
+ var mirResult = ftpClientMan.MirrorRemoteDir(localVal, remoteVal, FluentFTP.FtpFolderSyncMode.Mirror);
+ // ciclo cercando eventuali info da emttere in DynData...
+ foreach (var result in mirResult)
+ {
+ // processo solo se size > 0...
+ if (result.Size > 0 && result.IsDownload && result.IsSuccess && !result.IsSkipped)
+ {
+ string objSize = MeasureUtils.SizeSuffix(result.Size, 3);
+ actVal = $"Rem2Loc | {result.Name} | {objSize} | {result.RemotePath}";
+ sVal = $"{actKey} | {actVal}";
+ accodaFLog(sVal, qEncodeFLog(actKey, actVal));
+ }
+ else
+ {
+ lgTrace($"Skipped sync | {actVal}");
+ }
+ }
+ // risultato sintetico come successi...
+ fatto = mirResult != null && mirResult.Where(x => !x.IsSuccess).Count() == 0;
+
+ if (!fatto)
+ {
+ lgError($"Error: {remoteVal} NOT mirrored!");
+ }
+ }
+ else
+ {
+ lgError($"Dir remota non trovata! RemDir: {remoteVal}");
+ }
+ }
+ else
+ {
+ lgError("Error: missing parameters!");
+ }
+ sw.Stop();
+ if (fatto)
+ {
+ lgInfo($"Mirror Rem2Loc | RemDir: {remoteVal} | {sw.ElapsedMilliseconds:N1} ms");
+ }
+
+ break;
+
+ case ActType.PingServer:
+ break;
+
+ case ActType.RemoveFileByName:
+ string fName2Del = "";
+ int numRem = 0;
+ if (step.ParamList != null && step.ParamList.Count > 1)
+ {
+ sw.Restart();
+ remoteVal = step.ParamList["RemoteDir"] ?? "";
+ fName2Del = step.ParamList["FileName2Del"] ?? "";
+ //verifico dir remota
+ fatto = ftpClientMan.DirExists(remoteVal);
+ if (fatto)
+ {
+ // recupero elenco di TUTTI i file presenti
+ List resList = ftpClientMan.GetRemoteList(remoteVal, true);
+ List list2del = new List();
+ // cerco tutti i file che indicano ODL attivo e li elimino
+ foreach (var flItem in resList)
+ {
+ if (flItem.Type == FluentFTP.FtpObjectType.File && flItem.Name.EndsWith(fName2Del))
+ {
+ list2del.Add(flItem);
+ }
+ }
+ // elimino quelli trovati
+ if (list2del.Count > 0)
+ {
+ var fList = list2del.Select(x => x.FullName).ToList();
+ numRem = ftpClientMan.DeleteFileList(fList);
+ }
+ }
+ }
+ else
+ {
+ lgError("Error: missing parameters!");
+ }
+ sw.Stop();
+ if (fatto)
+ {
+ lgInfo($"RemoveFileByName | path: {remoteVal} | name: {fName2Del} | # del: {numRem} | {sw.ElapsedMilliseconds:N1} ms");
+ }
+
+ break;
+
+ case ActType.UploadDir:
+ break;
+
+ case ActType.UploadFile:
+ if (step.ParamList != null && step.ParamList.Count > 1)
+ {
+ sw.Restart();
+ localVal = step.ParamList["LocalFile"] ?? "";
+ remoteVal = step.ParamList["RemoteFile"] ?? "";
+
+ //verifico dir remota
+ string remoteDir = remoteVal.Substring(0, remoteVal.LastIndexOf("/"));
+ bool dirExist = ftpClientMan.DirExists(remoteDir);
+ if (!dirExist)
+ {
+ fatto = ftpClientMan.CreateDir(remoteDir);
+ }
+
+ fatto = ftpClientMan.SendFile(localVal, remoteVal);
+ if (!fatto)
+ {
+ lgError($"Error: {localVal} NOT uploaded!");
+ }
+ }
+ else
+ {
+ lgError("Error: missing parameters!");
+ }
+ sw.Stop();
+ if (fatto)
+ {
+ lgInfo($"Upload File: {remoteVal} | {sw.ElapsedMilliseconds:N1} ms");
+ }
+ break;
+
+ default:
+ break;
+ }
+ return fatto;
+ }
+
+ ///
+ /// Effettuo lettura file di conf
+ ///
+ ///
+ private void loadFtpConfFile(string fileName)
+ {
+ string jsonFullPath = Path.Combine(System.Windows.Forms.Application.StartupPath, "DATA", "CONF", fileName);
+ lgInfo($"Apertura file {jsonFullPath}");
+ using (StreamReader reader = new StreamReader(jsonFullPath))
+ {
+ string jsonData = reader.ReadToEnd().Replace("\n", "").Replace("\r", "");
+ if (!string.IsNullOrEmpty(jsonData))
+ {
+ lgDebug($"File json composto da {jsonData.Length} caratteri");
+ try
+ {
+ currFtpTaskList = JsonConvert.DeserializeObject(jsonData);
+ lgDebug($"Decodifica aree FtpTaskList: trovati {currFtpTaskList.ListTask.Count} gruppi di task FTP");
+ }
+ catch (Exception exc)
+ {
+ lgError($"Eccezione in decodifica conf json FTP:{Environment.NewLine}{exc}");
+ }
+ }
+ else
+ {
+ lgError("Errore in loadFtpConfFile: file json vuoto!");
+ }
+ }
+ }
+
+ ///
+ /// Calcola status ping:
+ /// - se ha ‹ 50% coda richiesta --› true
+ /// - se ha › 50% coda richiesta --› true se è maggior parte a 1 (true)
+ ///
+ ///
+ private bool pingStatusOk()
+ {
+ bool answ = false;
+ int numVal = PingQueue.Count;
+ if (numVal > maxQueuePing / 2)
+ {
+ var listaValori = PingQueue.ToList();
+ int numOk = listaValori.Where(x => x == "1").Count();
+ int numKo = numVal - numOk;
+ answ = numOk >= numKo;
+ lgTrace($"PING ok per: {numOk} > {numKo}");
+ }
+ else
+ {
+ lgTrace($"PING check: {answ} per mancanza dati minimi test");
+ }
+ return answ;
+ }
+
+ ///
+ /// Rimuove eventuali file placeholder di ODL corrente preesistenti
+ ///
+ ///
+ ///
+ private bool RemPlaceholder(string remDir, string fNameOdl)
+ {
+ bool fatto = false;
+ try
+ {
+ Dictionary currActParam = new Dictionary();
+ currActParam.Add("RemoteDir", remDir);
+ currActParam.Add("FileName2Del", fNameOdl);
+ ActionConfig currAct = new ActionConfig()
+ {
+ Id = "01",
+ Description = "Clean Curr ODL Files",
+ Action = ActType.RemoveFileByName,
+ ParamList = currActParam
+ };
+ // eseguo step...
+ fatto = doStep(currAct);
+ }
+ catch (Exception exc)
+ {
+ lgError($"Eccezione in RemPlaceholder{Environment.NewLine}{exc}");
+ }
+ return fatto;
+ }
+
+ ///
+ /// Invia il file dell'ODL attivo
+ ///
+ ///
+ ///
+ ///
+ private bool SendOdlActFile(string locFile, string remFile, string fileContent)
+ {
+ bool taskOk = false;
+ Dictionary currActParam = new Dictionary();
+ // creo file locale
+ File.WriteAllText(locFile, fileContent);
+ // invio file x ODL attivo
+ currActParam.Add("LocalFile", locFile);
+ currActParam.Add("RemoteFile", remFile);
+ ActionConfig currAct = new ActionConfig()
+ {
+ Id = "01",
+ Description = "Upload File",
+ Action = ActType.UploadFile,
+ ParamList = currActParam
+ };
+ // eseguo step...
+ taskOk = doStep(currAct);
+ return taskOk;
+ }
+
+ #endregion Private Methods
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-FTP/Iob/GenericNext.cs b/IOB-WIN-FTP/Iob/GenericNext.cs
new file mode 100644
index 00000000..0e49c104
--- /dev/null
+++ b/IOB-WIN-FTP/Iob/GenericNext.cs
@@ -0,0 +1,13 @@
+using IOB_UT_NEXT;
+
+namespace IOB_WIN_FTP.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-FTP/MainFormNext.cs b/IOB-WIN-FTP/MainFormNext.cs
new file mode 100644
index 00000000..bbfb99c1
--- /dev/null
+++ b/IOB-WIN-FTP/MainFormNext.cs
@@ -0,0 +1,40 @@
+using IOB_UT_NEXT;
+using IOB_WIN_FTP.Iob;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IOB_WIN_FTP
+{
+ 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-FTP/NLog.config b/IOB-WIN-FTP/NLog.config
new file mode 100644
index 00000000..cd1bcc98
--- /dev/null
+++ b/IOB-WIN-FTP/NLog.config
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/IOB-WIN-FTP/Program.cs b/IOB-WIN-FTP/Program.cs
new file mode 100644
index 00000000..08f26a44
--- /dev/null
+++ b/IOB-WIN-FTP/Program.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Windows.Forms;
+
+namespace IOB_WIN_FTP
+{
+ 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-FTP/Properties/AssemblyInfo.cs b/IOB-WIN-FTP/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..e8f07806
--- /dev/null
+++ b/IOB-WIN-FTP/Properties/AssemblyInfo.cs
@@ -0,0 +1,21 @@
+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-FTP")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyProduct("IOB-WIN-FTP")]
+[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("3ed97eea-9eab-480d-8e53-edb3662dcb79")]
diff --git a/IOB-WIN-FTP/Properties/Resources.Designer.cs b/IOB-WIN-FTP/Properties/Resources.Designer.cs
new file mode 100644
index 00000000..9c4c4386
--- /dev/null
+++ b/IOB-WIN-FTP/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_FTP.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_FTP.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-FTP/Properties/Resources.resx b/IOB-WIN-FTP/Properties/Resources.resx
new file mode 100644
index 00000000..af7dbebb
--- /dev/null
+++ b/IOB-WIN-FTP/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-FTP/Properties/Settings.Designer.cs b/IOB-WIN-FTP/Properties/Settings.Designer.cs
new file mode 100644
index 00000000..4b311929
--- /dev/null
+++ b/IOB-WIN-FTP/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_FTP.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-FTP/Properties/Settings.settings b/IOB-WIN-FTP/Properties/Settings.settings
new file mode 100644
index 00000000..39645652
--- /dev/null
+++ b/IOB-WIN-FTP/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/IOB-WIN-FTP/Resources/ChangeLog.html b/IOB-WIN-FTP/Resources/ChangeLog.html
new file mode 100644
index 00000000..7ab91d78
--- /dev/null
+++ b/IOB-WIN-FTP/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-FTP/Resources/Circuit.ico b/IOB-WIN-FTP/Resources/Circuit.ico
new file mode 100644
index 00000000..a05b27a6
Binary files /dev/null and b/IOB-WIN-FTP/Resources/Circuit.ico differ
diff --git a/IOB-WIN-FTP/Resources/Net.ico b/IOB-WIN-FTP/Resources/Net.ico
new file mode 100644
index 00000000..a33a9eca
Binary files /dev/null and b/IOB-WIN-FTP/Resources/Net.ico differ
diff --git a/IOB-WIN-FTP/Resources/STEAM-IOB-WIN.xml b/IOB-WIN-FTP/Resources/STEAM-IOB-WIN.xml
new file mode 100644
index 00000000..ba4e78f6
Binary files /dev/null and b/IOB-WIN-FTP/Resources/STEAM-IOB-WIN.xml differ
diff --git a/IOB-WIN-FTP/Resources/Start-IOB-WIN.bat b/IOB-WIN-FTP/Resources/Start-IOB-WIN.bat
new file mode 100644
index 00000000..3f8ecaa1
--- /dev/null
+++ b/IOB-WIN-FTP/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-FTP/Resources/SteamWare.ico b/IOB-WIN-FTP/Resources/SteamWare.ico
new file mode 100644
index 00000000..70ccadaf
Binary files /dev/null and b/IOB-WIN-FTP/Resources/SteamWare.ico differ
diff --git a/IOB-WIN-FTP/Resources/logoSteamware.png b/IOB-WIN-FTP/Resources/logoSteamware.png
new file mode 100644
index 00000000..0958b50a
Binary files /dev/null and b/IOB-WIN-FTP/Resources/logoSteamware.png differ
diff --git a/IOB-WIN-FTP/Resources/manifest.xml b/IOB-WIN-FTP/Resources/manifest.xml
new file mode 100644
index 00000000..f66a7e99
--- /dev/null
+++ b/IOB-WIN-FTP/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-FTP/docfx.json b/IOB-WIN-FTP/docfx.json
new file mode 100644
index 00000000..bacb80c9
--- /dev/null
+++ b/IOB-WIN-FTP/docfx.json
@@ -0,0 +1,68 @@
+{
+ "metadata": [
+ {
+ "src": [
+ {
+ "files": [
+ "*.csproj"
+ ],
+ "cwd": ".",
+ "exclude": [
+ "**/obj/**",
+ "**/bin/**",
+ "_site/**"
+ ]
+ }
+ ],
+ "dest": "obj/api"
+ }
+ ],
+ "build": {
+ "content": [
+ {
+ "files": [
+ "api/**.yml"
+ ],
+ "cwd": "obj"
+ },
+ {
+ "files": [
+ "api/*.md",
+ "articles/**.md",
+ "toc.yml",
+ "*.md"
+ ],
+ "exclude": [
+ "obj/**",
+ "_site/**"
+ ]
+ }
+ ],
+ "resource": [
+ {
+ "files": [
+ "images/**"
+ ],
+ "exclude": [
+ "obj/**",
+ "_site/**"
+ ]
+ }
+ ],
+ "overwrite": [
+ {
+ "files": [
+ "apidoc/**.md"
+ ],
+ "exclude": [
+ "obj/**",
+ "_site/**"
+ ]
+ }
+ ],
+ "dest": "_site",
+ "template": [
+ "default"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-FTP/index.md b/IOB-WIN-FTP/index.md
new file mode 100644
index 00000000..fdb4be99
--- /dev/null
+++ b/IOB-WIN-FTP/index.md
@@ -0,0 +1,11 @@
+# IOB-WIN-PING
+
+Documentazione relativa all'applicativo IOB-WIN-PING
+
+## Articles
+
+Per maggiori dettagli, definizioni e demo funzionamento si rimanda alla sezione Articles
+
+## Api
+
+Per ogni dettaglio e riferimento alla libreria si rimanda alla sezione Api Documentation
\ No newline at end of file
diff --git a/IOB-WIN-FTP/index.pdf b/IOB-WIN-FTP/index.pdf
new file mode 100644
index 00000000..8f7e09ef
Binary files /dev/null and b/IOB-WIN-FTP/index.pdf differ
diff --git a/IOB-WIN-FTP/logs/.placeholder.txt b/IOB-WIN-FTP/logs/.placeholder.txt
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-FTP/logs/.placeholder.txt
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-FTP/packages.config b/IOB-WIN-FTP/packages.config
new file mode 100644
index 00000000..37e06f05
--- /dev/null
+++ b/IOB-WIN-FTP/packages.config
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-FTP/postBuildTgt.bat b/IOB-WIN-FTP/postBuildTgt.bat
new file mode 100644
index 00000000..d56896d2
--- /dev/null
+++ b/IOB-WIN-FTP/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-FTP/setupTgt.bat b/IOB-WIN-FTP/setupTgt.bat
new file mode 100644
index 00000000..ba685c02
--- /dev/null
+++ b/IOB-WIN-FTP/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-FTP/temp/.placeholder b/IOB-WIN-FTP/temp/.placeholder
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-FTP/temp/.placeholder
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-FTP/toc.yml b/IOB-WIN-FTP/toc.yml
new file mode 100644
index 00000000..7eee9ffb
--- /dev/null
+++ b/IOB-WIN-FTP/toc.yml
@@ -0,0 +1,6 @@
+
+- name: Articles
+ href: articles/
+- name: API Documentation
+ href: obj/api/
+ homepage: api/index.md
diff --git a/IOB-WIN-SQL.sln b/IOB-WIN-SQL.sln
new file mode 100644
index 00000000..f74b9464
--- /dev/null
+++ b/IOB-WIN-SQL.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-SQL", "IOB-WIN-SQL\IOB-WIN-SQL.csproj", "{4B67E8A4-7AE3-47EF-9E06-EF0FA74969F7}"
+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
+ {4B67E8A4-7AE3-47EF-9E06-EF0FA74969F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4B67E8A4-7AE3-47EF-9E06-EF0FA74969F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4B67E8A4-7AE3-47EF-9E06-EF0FA74969F7}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4B67E8A4-7AE3-47EF-9E06-EF0FA74969F7}.Debug|x86.Build.0 = Debug|Any CPU
+ {4B67E8A4-7AE3-47EF-9E06-EF0FA74969F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4B67E8A4-7AE3-47EF-9E06-EF0FA74969F7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4B67E8A4-7AE3-47EF-9E06-EF0FA74969F7}.Release|x86.ActiveCfg = Release|Any CPU
+ {4B67E8A4-7AE3-47EF-9E06-EF0FA74969F7}.Release|x86.Build.0 = Release|Any CPU
+ {4B67E8A4-7AE3-47EF-9E06-EF0FA74969F7}.Remote_DEBUG|Any CPU.ActiveCfg = Release|Any CPU
+ {4B67E8A4-7AE3-47EF-9E06-EF0FA74969F7}.Remote_DEBUG|Any CPU.Build.0 = Release|Any CPU
+ {4B67E8A4-7AE3-47EF-9E06-EF0FA74969F7}.Remote_DEBUG|x86.ActiveCfg = Release|Any CPU
+ {4B67E8A4-7AE3-47EF-9E06-EF0FA74969F7}.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-SQL/AdapterFormNext.cs b/IOB-WIN-SQL/AdapterFormNext.cs
new file mode 100644
index 00000000..ab41fb52
--- /dev/null
+++ b/IOB-WIN-SQL/AdapterFormNext.cs
@@ -0,0 +1,56 @@
+using IOB_UT_NEXT;
+using IOB_WIN_SQL.Iob;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IOB_WIN_SQL
+{
+ 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-SQL/App.Debug.config b/IOB-WIN-SQL/App.Debug.config
new file mode 100644
index 00000000..42297ccc
--- /dev/null
+++ b/IOB-WIN-SQL/App.Debug.config
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-SQL/App.Release.config b/IOB-WIN-SQL/App.Release.config
new file mode 100644
index 00000000..0f80d173
--- /dev/null
+++ b/IOB-WIN-SQL/App.Release.config
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-SQL/App.config b/IOB-WIN-SQL/App.config
new file mode 100644
index 00000000..93faf2cd
--- /dev/null
+++ b/IOB-WIN-SQL/App.config
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-SQL/DATA/CONF/FTP-PING.ini b/IOB-WIN-SQL/DATA/CONF/FTP-PING.ini
new file mode 100644
index 00000000..efe46cca
--- /dev/null
+++ b/IOB-WIN-SQL/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-SQL/DATA/CONF/IOB.ini b/IOB-WIN-SQL/DATA/CONF/IOB.ini
new file mode 100644
index 00000000..9ac13668
--- /dev/null
+++ b/IOB-WIN-SQL/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-SQL/DATA/CONF/MAIN.ini b/IOB-WIN-SQL/DATA/CONF/MAIN.ini
new file mode 100644
index 00000000..43299be3
--- /dev/null
+++ b/IOB-WIN-SQL/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-SQL/DATA/CONF/PING.ini b/IOB-WIN-SQL/DATA/CONF/PING.ini
new file mode 100644
index 00000000..1a4c140e
--- /dev/null
+++ b/IOB-WIN-SQL/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-SQL/DATA/CONF/SIMUL_01.ini b/IOB-WIN-SQL/DATA/CONF/SIMUL_01.ini
new file mode 100644
index 00000000..08975356
--- /dev/null
+++ b/IOB-WIN-SQL/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-SQL/DATA/CONF/SIMUL_01.json b/IOB-WIN-SQL/DATA/CONF/SIMUL_01.json
new file mode 100644
index 00000000..d2895eb1
--- /dev/null
+++ b/IOB-WIN-SQL/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-SQL/DATA/CONF/SIMUL_01_WD.ini b/IOB-WIN-SQL/DATA/CONF/SIMUL_01_WD.ini
new file mode 100644
index 00000000..56bca173
--- /dev/null
+++ b/IOB-WIN-SQL/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-SQL/DATA/CONF/SIMUL_01_alarm.json b/IOB-WIN-SQL/DATA/CONF/SIMUL_01_alarm.json
new file mode 100644
index 00000000..4f6ed310
--- /dev/null
+++ b/IOB-WIN-SQL/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-SQL/DATA/DAT/PersistData.dat b/IOB-WIN-SQL/DATA/DAT/PersistData.dat
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-SQL/DATA/DAT/PersistData.dat
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-SQL/DATA/DAT/SimData.dat b/IOB-WIN-SQL/DATA/DAT/SimData.dat
new file mode 100644
index 00000000..c59e4823
--- /dev/null
+++ b/IOB-WIN-SQL/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-SQL/DATA/HIST/.placeholder b/IOB-WIN-SQL/DATA/HIST/.placeholder
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-SQL/DATA/HIST/.placeholder
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-SQL/IOB-WIN-SQL.csproj b/IOB-WIN-SQL/IOB-WIN-SQL.csproj
new file mode 100644
index 00000000..d7d64285
--- /dev/null
+++ b/IOB-WIN-SQL/IOB-WIN-SQL.csproj
@@ -0,0 +1,172 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {4B67E8A4-7AE3-47EF-9E06-EF0FA74969F7}
+ WinExe
+ IOB_WIN_SQL
+ IOB-WIN-SQL
+ v4.6.2
+ 512
+ true
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VersGen.cs
+
+
+ Form
+
+
+
+ Form
+
+
+
+
+ Always
+
+
+ Always
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+ App.config
+ PreserveNewest
+
+
+ App.config
+ PreserveNewest
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+ Always
+
+
+
+ Always
+
+
+
+
+ Designer
+ PreserveNewest
+
+
+
+
+ Always
+
+
+ Always
+
+
+
+ Always
+
+
+ Always
+
+
+
+
+
+ {90512e12-29fc-460d-94cc-648c2a072dbd}
+ IOB-UT-NEXT
+
+
+ {9ba331bb-9bf1-40e0-ac03-74b43d73a097}
+ IOB-WIN-FORM
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-SQL/Iob/GenericNext.cs b/IOB-WIN-SQL/Iob/GenericNext.cs
new file mode 100644
index 00000000..0b55233f
--- /dev/null
+++ b/IOB-WIN-SQL/Iob/GenericNext.cs
@@ -0,0 +1,13 @@
+using IOB_UT_NEXT;
+
+namespace IOB_WIN_SQL.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-SQL/MainFormNext.cs b/IOB-WIN-SQL/MainFormNext.cs
new file mode 100644
index 00000000..fdfc35a8
--- /dev/null
+++ b/IOB-WIN-SQL/MainFormNext.cs
@@ -0,0 +1,40 @@
+using IOB_UT_NEXT;
+using IOB_WIN_SQL.Iob;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IOB_WIN_SQL
+{
+ 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-SQL/NLog.config b/IOB-WIN-SQL/NLog.config
new file mode 100644
index 00000000..cd1bcc98
--- /dev/null
+++ b/IOB-WIN-SQL/NLog.config
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/IOB-WIN-SQL/Program.cs b/IOB-WIN-SQL/Program.cs
new file mode 100644
index 00000000..332a4b6f
--- /dev/null
+++ b/IOB-WIN-SQL/Program.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Windows.Forms;
+
+namespace IOB_WIN_SQL
+{
+ 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-SQL/Properties/AssemblyInfo.cs b/IOB-WIN-SQL/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..62760c81
--- /dev/null
+++ b/IOB-WIN-SQL/Properties/AssemblyInfo.cs
@@ -0,0 +1,21 @@
+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-SQL")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyProduct("IOB-WIN-SQL")]
+[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("4b67e8a4-7ae3-47ef-9e06-ef0fa74969f7")]
diff --git a/IOB-WIN-SQL/Properties/Resources.Designer.cs b/IOB-WIN-SQL/Properties/Resources.Designer.cs
new file mode 100644
index 00000000..6a41beb1
--- /dev/null
+++ b/IOB-WIN-SQL/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_SQL.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_SQL.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-SQL/Properties/Resources.resx b/IOB-WIN-SQL/Properties/Resources.resx
new file mode 100644
index 00000000..af7dbebb
--- /dev/null
+++ b/IOB-WIN-SQL/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-SQL/Properties/Settings.Designer.cs b/IOB-WIN-SQL/Properties/Settings.Designer.cs
new file mode 100644
index 00000000..af9ad9e1
--- /dev/null
+++ b/IOB-WIN-SQL/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_SQL.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-SQL/Properties/Settings.settings b/IOB-WIN-SQL/Properties/Settings.settings
new file mode 100644
index 00000000..39645652
--- /dev/null
+++ b/IOB-WIN-SQL/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/IOB-WIN-SQL/Resources/ChangeLog.html b/IOB-WIN-SQL/Resources/ChangeLog.html
new file mode 100644
index 00000000..7ab91d78
--- /dev/null
+++ b/IOB-WIN-SQL/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-SQL/Resources/Circuit.ico b/IOB-WIN-SQL/Resources/Circuit.ico
new file mode 100644
index 00000000..a05b27a6
Binary files /dev/null and b/IOB-WIN-SQL/Resources/Circuit.ico differ
diff --git a/IOB-WIN-SQL/Resources/Net.ico b/IOB-WIN-SQL/Resources/Net.ico
new file mode 100644
index 00000000..a33a9eca
Binary files /dev/null and b/IOB-WIN-SQL/Resources/Net.ico differ
diff --git a/IOB-WIN-SQL/Resources/STEAM-IOB-WIN.xml b/IOB-WIN-SQL/Resources/STEAM-IOB-WIN.xml
new file mode 100644
index 00000000..ba4e78f6
Binary files /dev/null and b/IOB-WIN-SQL/Resources/STEAM-IOB-WIN.xml differ
diff --git a/IOB-WIN-SQL/Resources/Start-IOB-WIN.bat b/IOB-WIN-SQL/Resources/Start-IOB-WIN.bat
new file mode 100644
index 00000000..3f8ecaa1
--- /dev/null
+++ b/IOB-WIN-SQL/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-SQL/Resources/SteamWare.ico b/IOB-WIN-SQL/Resources/SteamWare.ico
new file mode 100644
index 00000000..70ccadaf
Binary files /dev/null and b/IOB-WIN-SQL/Resources/SteamWare.ico differ
diff --git a/IOB-WIN-SQL/Resources/logoSteamware.png b/IOB-WIN-SQL/Resources/logoSteamware.png
new file mode 100644
index 00000000..0958b50a
Binary files /dev/null and b/IOB-WIN-SQL/Resources/logoSteamware.png differ
diff --git a/IOB-WIN-SQL/Resources/manifest.xml b/IOB-WIN-SQL/Resources/manifest.xml
new file mode 100644
index 00000000..f66a7e99
--- /dev/null
+++ b/IOB-WIN-SQL/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-SQL/docfx.json b/IOB-WIN-SQL/docfx.json
new file mode 100644
index 00000000..bacb80c9
--- /dev/null
+++ b/IOB-WIN-SQL/docfx.json
@@ -0,0 +1,68 @@
+{
+ "metadata": [
+ {
+ "src": [
+ {
+ "files": [
+ "*.csproj"
+ ],
+ "cwd": ".",
+ "exclude": [
+ "**/obj/**",
+ "**/bin/**",
+ "_site/**"
+ ]
+ }
+ ],
+ "dest": "obj/api"
+ }
+ ],
+ "build": {
+ "content": [
+ {
+ "files": [
+ "api/**.yml"
+ ],
+ "cwd": "obj"
+ },
+ {
+ "files": [
+ "api/*.md",
+ "articles/**.md",
+ "toc.yml",
+ "*.md"
+ ],
+ "exclude": [
+ "obj/**",
+ "_site/**"
+ ]
+ }
+ ],
+ "resource": [
+ {
+ "files": [
+ "images/**"
+ ],
+ "exclude": [
+ "obj/**",
+ "_site/**"
+ ]
+ }
+ ],
+ "overwrite": [
+ {
+ "files": [
+ "apidoc/**.md"
+ ],
+ "exclude": [
+ "obj/**",
+ "_site/**"
+ ]
+ }
+ ],
+ "dest": "_site",
+ "template": [
+ "default"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-SQL/index.md b/IOB-WIN-SQL/index.md
new file mode 100644
index 00000000..fdb4be99
--- /dev/null
+++ b/IOB-WIN-SQL/index.md
@@ -0,0 +1,11 @@
+# IOB-WIN-PING
+
+Documentazione relativa all'applicativo IOB-WIN-PING
+
+## Articles
+
+Per maggiori dettagli, definizioni e demo funzionamento si rimanda alla sezione Articles
+
+## Api
+
+Per ogni dettaglio e riferimento alla libreria si rimanda alla sezione Api Documentation
\ No newline at end of file
diff --git a/IOB-WIN-SQL/index.pdf b/IOB-WIN-SQL/index.pdf
new file mode 100644
index 00000000..8f7e09ef
Binary files /dev/null and b/IOB-WIN-SQL/index.pdf differ
diff --git a/IOB-WIN-SQL/logs/.placeholder.txt b/IOB-WIN-SQL/logs/.placeholder.txt
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-SQL/logs/.placeholder.txt
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-SQL/packages.config b/IOB-WIN-SQL/packages.config
new file mode 100644
index 00000000..bc12d868
--- /dev/null
+++ b/IOB-WIN-SQL/packages.config
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-SQL/postBuildTgt.bat b/IOB-WIN-SQL/postBuildTgt.bat
new file mode 100644
index 00000000..d56896d2
--- /dev/null
+++ b/IOB-WIN-SQL/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-SQL/setupTgt.bat b/IOB-WIN-SQL/setupTgt.bat
new file mode 100644
index 00000000..ba685c02
--- /dev/null
+++ b/IOB-WIN-SQL/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-SQL/temp/.placeholder b/IOB-WIN-SQL/temp/.placeholder
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-SQL/temp/.placeholder
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-SQL/toc.yml b/IOB-WIN-SQL/toc.yml
new file mode 100644
index 00000000..7eee9ffb
--- /dev/null
+++ b/IOB-WIN-SQL/toc.yml
@@ -0,0 +1,6 @@
+
+- name: Articles
+ href: articles/
+- name: API Documentation
+ href: obj/api/
+ homepage: api/index.md
diff --git a/IOB-WIN-WS.sln b/IOB-WIN-WS.sln
new file mode 100644
index 00000000..5a582232
--- /dev/null
+++ b/IOB-WIN-WS.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-WS", "IOB-WIN-WS\IOB-WIN-WS.csproj", "{94C842D8-15E5-4A0B-BFA6-7F2ABD3513BF}"
+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
+ {94C842D8-15E5-4A0B-BFA6-7F2ABD3513BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {94C842D8-15E5-4A0B-BFA6-7F2ABD3513BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {94C842D8-15E5-4A0B-BFA6-7F2ABD3513BF}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {94C842D8-15E5-4A0B-BFA6-7F2ABD3513BF}.Debug|x86.Build.0 = Debug|Any CPU
+ {94C842D8-15E5-4A0B-BFA6-7F2ABD3513BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {94C842D8-15E5-4A0B-BFA6-7F2ABD3513BF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {94C842D8-15E5-4A0B-BFA6-7F2ABD3513BF}.Release|x86.ActiveCfg = Release|Any CPU
+ {94C842D8-15E5-4A0B-BFA6-7F2ABD3513BF}.Release|x86.Build.0 = Release|Any CPU
+ {94C842D8-15E5-4A0B-BFA6-7F2ABD3513BF}.Remote_DEBUG|Any CPU.ActiveCfg = Release|Any CPU
+ {94C842D8-15E5-4A0B-BFA6-7F2ABD3513BF}.Remote_DEBUG|Any CPU.Build.0 = Release|Any CPU
+ {94C842D8-15E5-4A0B-BFA6-7F2ABD3513BF}.Remote_DEBUG|x86.ActiveCfg = Release|Any CPU
+ {94C842D8-15E5-4A0B-BFA6-7F2ABD3513BF}.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-WS/AdapterFormNext.cs b/IOB-WIN-WS/AdapterFormNext.cs
new file mode 100644
index 00000000..7a66c432
--- /dev/null
+++ b/IOB-WIN-WS/AdapterFormNext.cs
@@ -0,0 +1,56 @@
+using IOB_UT_NEXT;
+using IOB_WIN_WS.Iob;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IOB_WIN_WS
+{
+ 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-WS/App.Debug.config b/IOB-WIN-WS/App.Debug.config
new file mode 100644
index 00000000..42297ccc
--- /dev/null
+++ b/IOB-WIN-WS/App.Debug.config
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-WS/App.Release.config b/IOB-WIN-WS/App.Release.config
new file mode 100644
index 00000000..0f80d173
--- /dev/null
+++ b/IOB-WIN-WS/App.Release.config
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-WS/App.config b/IOB-WIN-WS/App.config
new file mode 100644
index 00000000..93faf2cd
--- /dev/null
+++ b/IOB-WIN-WS/App.config
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-WS/DATA/CONF/FTP-PING.ini b/IOB-WIN-WS/DATA/CONF/FTP-PING.ini
new file mode 100644
index 00000000..efe46cca
--- /dev/null
+++ b/IOB-WIN-WS/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-WS/DATA/CONF/IOB.ini b/IOB-WIN-WS/DATA/CONF/IOB.ini
new file mode 100644
index 00000000..9ac13668
--- /dev/null
+++ b/IOB-WIN-WS/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-WS/DATA/CONF/MAIN.ini b/IOB-WIN-WS/DATA/CONF/MAIN.ini
new file mode 100644
index 00000000..43299be3
--- /dev/null
+++ b/IOB-WIN-WS/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-WS/DATA/CONF/PING.ini b/IOB-WIN-WS/DATA/CONF/PING.ini
new file mode 100644
index 00000000..1a4c140e
--- /dev/null
+++ b/IOB-WIN-WS/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-WS/DATA/CONF/SIMUL_01.ini b/IOB-WIN-WS/DATA/CONF/SIMUL_01.ini
new file mode 100644
index 00000000..08975356
--- /dev/null
+++ b/IOB-WIN-WS/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-WS/DATA/CONF/SIMUL_01.json b/IOB-WIN-WS/DATA/CONF/SIMUL_01.json
new file mode 100644
index 00000000..d2895eb1
--- /dev/null
+++ b/IOB-WIN-WS/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-WS/DATA/CONF/SIMUL_01_WD.ini b/IOB-WIN-WS/DATA/CONF/SIMUL_01_WD.ini
new file mode 100644
index 00000000..56bca173
--- /dev/null
+++ b/IOB-WIN-WS/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-WS/DATA/CONF/SIMUL_01_alarm.json b/IOB-WIN-WS/DATA/CONF/SIMUL_01_alarm.json
new file mode 100644
index 00000000..4f6ed310
--- /dev/null
+++ b/IOB-WIN-WS/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-WS/DATA/DAT/PersistData.dat b/IOB-WIN-WS/DATA/DAT/PersistData.dat
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-WS/DATA/DAT/PersistData.dat
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-WS/DATA/DAT/SimData.dat b/IOB-WIN-WS/DATA/DAT/SimData.dat
new file mode 100644
index 00000000..c59e4823
--- /dev/null
+++ b/IOB-WIN-WS/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-WS/DATA/HIST/.placeholder b/IOB-WIN-WS/DATA/HIST/.placeholder
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-WS/DATA/HIST/.placeholder
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-WS/IOB-WIN-WS.csproj b/IOB-WIN-WS/IOB-WIN-WS.csproj
new file mode 100644
index 00000000..df26b0b6
--- /dev/null
+++ b/IOB-WIN-WS/IOB-WIN-WS.csproj
@@ -0,0 +1,172 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {94C842D8-15E5-4A0B-BFA6-7F2ABD3513BF}
+ WinExe
+ IOB_WIN_WS
+ IOB-WIN-WS
+ v4.6.2
+ 512
+ true
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VersGen.cs
+
+
+ Form
+
+
+
+ Form
+
+
+
+
+ Always
+
+
+ Always
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+ True
+ Resources.resx
+
+
+ App.config
+ PreserveNewest
+
+
+ App.config
+ PreserveNewest
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+ True
+ Settings.settings
+ True
+
+
+ Always
+
+
+
+ Always
+
+
+
+
+ Designer
+ PreserveNewest
+
+
+
+
+ Always
+
+
+ Always
+
+
+
+ Always
+
+
+ Always
+
+
+
+
+
+ {90512e12-29fc-460d-94cc-648c2a072dbd}
+ IOB-UT-NEXT
+
+
+ {9ba331bb-9bf1-40e0-ac03-74b43d73a097}
+ IOB-WIN-FORM
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-WS/Iob/GenericNext.cs b/IOB-WIN-WS/Iob/GenericNext.cs
new file mode 100644
index 00000000..ae14193c
--- /dev/null
+++ b/IOB-WIN-WS/Iob/GenericNext.cs
@@ -0,0 +1,13 @@
+using IOB_UT_NEXT;
+
+namespace IOB_WIN_WS.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-WS/MainFormNext.cs b/IOB-WIN-WS/MainFormNext.cs
new file mode 100644
index 00000000..4b89f818
--- /dev/null
+++ b/IOB-WIN-WS/MainFormNext.cs
@@ -0,0 +1,40 @@
+using IOB_UT_NEXT;
+using IOB_WIN_WS.Iob;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IOB_WIN_WS
+{
+ 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-WS/NLog.config b/IOB-WIN-WS/NLog.config
new file mode 100644
index 00000000..cd1bcc98
--- /dev/null
+++ b/IOB-WIN-WS/NLog.config
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/IOB-WIN-WS/Program.cs b/IOB-WIN-WS/Program.cs
new file mode 100644
index 00000000..e7a0f6ab
--- /dev/null
+++ b/IOB-WIN-WS/Program.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Windows.Forms;
+
+namespace IOB_WIN_WS
+{
+ 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-WS/Properties/AssemblyInfo.cs b/IOB-WIN-WS/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..5ecfcc0c
--- /dev/null
+++ b/IOB-WIN-WS/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-WS")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyProduct("IOB-WIN-WS")]
+[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("94c842d8-15e5-4a0b-bfa6-7f2abd3513bf")]
+
diff --git a/IOB-WIN-WS/Properties/Resources.Designer.cs b/IOB-WIN-WS/Properties/Resources.Designer.cs
new file mode 100644
index 00000000..0074390b
--- /dev/null
+++ b/IOB-WIN-WS/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_WS.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_WS.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-WS/Properties/Resources.resx b/IOB-WIN-WS/Properties/Resources.resx
new file mode 100644
index 00000000..af7dbebb
--- /dev/null
+++ b/IOB-WIN-WS/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-WS/Properties/Settings.Designer.cs b/IOB-WIN-WS/Properties/Settings.Designer.cs
new file mode 100644
index 00000000..8a1fbd2c
--- /dev/null
+++ b/IOB-WIN-WS/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_WS.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-WS/Properties/Settings.settings b/IOB-WIN-WS/Properties/Settings.settings
new file mode 100644
index 00000000..39645652
--- /dev/null
+++ b/IOB-WIN-WS/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/IOB-WIN-WS/Resources/ChangeLog.html b/IOB-WIN-WS/Resources/ChangeLog.html
new file mode 100644
index 00000000..7ab91d78
--- /dev/null
+++ b/IOB-WIN-WS/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-WS/Resources/Circuit.ico b/IOB-WIN-WS/Resources/Circuit.ico
new file mode 100644
index 00000000..a05b27a6
Binary files /dev/null and b/IOB-WIN-WS/Resources/Circuit.ico differ
diff --git a/IOB-WIN-WS/Resources/Net.ico b/IOB-WIN-WS/Resources/Net.ico
new file mode 100644
index 00000000..a33a9eca
Binary files /dev/null and b/IOB-WIN-WS/Resources/Net.ico differ
diff --git a/IOB-WIN-WS/Resources/STEAM-IOB-WIN.xml b/IOB-WIN-WS/Resources/STEAM-IOB-WIN.xml
new file mode 100644
index 00000000..ba4e78f6
Binary files /dev/null and b/IOB-WIN-WS/Resources/STEAM-IOB-WIN.xml differ
diff --git a/IOB-WIN-WS/Resources/Start-IOB-WIN.bat b/IOB-WIN-WS/Resources/Start-IOB-WIN.bat
new file mode 100644
index 00000000..3f8ecaa1
--- /dev/null
+++ b/IOB-WIN-WS/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-WS/Resources/SteamWare.ico b/IOB-WIN-WS/Resources/SteamWare.ico
new file mode 100644
index 00000000..70ccadaf
Binary files /dev/null and b/IOB-WIN-WS/Resources/SteamWare.ico differ
diff --git a/IOB-WIN-WS/Resources/logoSteamware.png b/IOB-WIN-WS/Resources/logoSteamware.png
new file mode 100644
index 00000000..0958b50a
Binary files /dev/null and b/IOB-WIN-WS/Resources/logoSteamware.png differ
diff --git a/IOB-WIN-WS/Resources/manifest.xml b/IOB-WIN-WS/Resources/manifest.xml
new file mode 100644
index 00000000..f66a7e99
--- /dev/null
+++ b/IOB-WIN-WS/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-WS/docfx.json b/IOB-WIN-WS/docfx.json
new file mode 100644
index 00000000..bacb80c9
--- /dev/null
+++ b/IOB-WIN-WS/docfx.json
@@ -0,0 +1,68 @@
+{
+ "metadata": [
+ {
+ "src": [
+ {
+ "files": [
+ "*.csproj"
+ ],
+ "cwd": ".",
+ "exclude": [
+ "**/obj/**",
+ "**/bin/**",
+ "_site/**"
+ ]
+ }
+ ],
+ "dest": "obj/api"
+ }
+ ],
+ "build": {
+ "content": [
+ {
+ "files": [
+ "api/**.yml"
+ ],
+ "cwd": "obj"
+ },
+ {
+ "files": [
+ "api/*.md",
+ "articles/**.md",
+ "toc.yml",
+ "*.md"
+ ],
+ "exclude": [
+ "obj/**",
+ "_site/**"
+ ]
+ }
+ ],
+ "resource": [
+ {
+ "files": [
+ "images/**"
+ ],
+ "exclude": [
+ "obj/**",
+ "_site/**"
+ ]
+ }
+ ],
+ "overwrite": [
+ {
+ "files": [
+ "apidoc/**.md"
+ ],
+ "exclude": [
+ "obj/**",
+ "_site/**"
+ ]
+ }
+ ],
+ "dest": "_site",
+ "template": [
+ "default"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/IOB-WIN-WS/index.md b/IOB-WIN-WS/index.md
new file mode 100644
index 00000000..fdb4be99
--- /dev/null
+++ b/IOB-WIN-WS/index.md
@@ -0,0 +1,11 @@
+# IOB-WIN-PING
+
+Documentazione relativa all'applicativo IOB-WIN-PING
+
+## Articles
+
+Per maggiori dettagli, definizioni e demo funzionamento si rimanda alla sezione Articles
+
+## Api
+
+Per ogni dettaglio e riferimento alla libreria si rimanda alla sezione Api Documentation
\ No newline at end of file
diff --git a/IOB-WIN-WS/index.pdf b/IOB-WIN-WS/index.pdf
new file mode 100644
index 00000000..8f7e09ef
Binary files /dev/null and b/IOB-WIN-WS/index.pdf differ
diff --git a/IOB-WIN-WS/logs/.placeholder.txt b/IOB-WIN-WS/logs/.placeholder.txt
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-WS/logs/.placeholder.txt
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-WS/packages.config b/IOB-WIN-WS/packages.config
new file mode 100644
index 00000000..bc12d868
--- /dev/null
+++ b/IOB-WIN-WS/packages.config
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/IOB-WIN-WS/postBuildTgt.bat b/IOB-WIN-WS/postBuildTgt.bat
new file mode 100644
index 00000000..d56896d2
--- /dev/null
+++ b/IOB-WIN-WS/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-WS/setupTgt.bat b/IOB-WIN-WS/setupTgt.bat
new file mode 100644
index 00000000..ba685c02
--- /dev/null
+++ b/IOB-WIN-WS/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-WS/temp/.placeholder b/IOB-WIN-WS/temp/.placeholder
new file mode 100644
index 00000000..5f282702
--- /dev/null
+++ b/IOB-WIN-WS/temp/.placeholder
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/IOB-WIN-WS/toc.yml b/IOB-WIN-WS/toc.yml
new file mode 100644
index 00000000..7eee9ffb
--- /dev/null
+++ b/IOB-WIN-WS/toc.yml
@@ -0,0 +1,6 @@
+
+- name: Articles
+ href: articles/
+- name: API Documentation
+ href: obj/api/
+ homepage: api/index.md