Merge branch 'release/IobWinOpcUa_07'

This commit is contained in:
Samuele Locatelli
2025-01-16 11:20:54 +01:00
31 changed files with 2354 additions and 1086 deletions
+83
View File
@@ -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
+83
View File
@@ -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
+3 -1
View File
@@ -54,10 +54,12 @@ namespace IOB_WIN_NEXT
btnStart.Enabled = true;
break;
#if false
case tipoAdapter.FILE_SOITAAB:
iobObj = new IobFile.IobFileSoitaab(this, IOBConf);
btnStart.Enabled = true;
break;
break;
#endif
case tipoAdapter.KAWASAKI:
iobObj = new Iob.Kawasaki(this, IOBConf);
-48
View File
@@ -388,7 +388,6 @@
<Compile Include="AdapterFormNext.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="IobFile\IobFileSoitaab.cs" />
<Compile Include="Iob\Mitsubishi.cs" />
<Compile Include="MainFormNext.cs">
<SubType>Form</SubType>
@@ -412,32 +411,14 @@
<Compile Include="TestForm.Designer.cs">
<DependentUpon>TestForm.cs</DependentUpon>
</Compile>
<None Include="DATA\CONF\3028.json" />
<None Include="DATA\CONF\3028.ini" />
<None Include="DATA\CONF\GT613.ini" />
<None Include="DATA\CONF\GT653.ini" />
<None Include="DATA\CONF\GT658.ini" />
<None Include="DATA\CONF\GT673.ini" />
<None Include="DATA\CONF\FOV098.ini" />
<None Include="DATA\CONF\FOV099.ini" />
<None Include="DATA\CONF\L019.ini" />
<None Include="DATA\CONF\L020.json" />
<None Include="DATA\CONF\L020_Rest.wrong.json" />
<None Include="DATA\CONF\L020.ini" />
<None Include="DATA\CONF\VL27.json" />
<None Include="DATA\CONF\VL27.ini" />
<None Include="DATA\CONF\SIMUL_01.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\STEL_210_alarm.json" />
<None Include="DATA\CONF\IMI_GOMBA.json" />
<None Include="DATA\CONF\IMI_PAMA_392.ini" />
<None Include="DATA\CONF\IMI_PAMA_392.json" />
<None Include="DATA\CONF\IMI_GOMBA.ini" />
<None Include="DATA\CONF\IMI_SOITAAB_Z2342_02.ini" />
<None Include="DATA\CONF\IMI_SOITAAB_Z2342_02.json" />
<None Include="DATA\CONF\IMI_SOITAAB_Z2342_01.ini" />
<None Include="DATA\CONF\IMI_SOITAAB_Z2342_01.json" />
<None Include="DATA\CONF\VL28.ini" />
<None Include="DATA\CONF\VL28.json" />
<None Include="DATA\MES_Setup\setupConsumi.json" />
@@ -446,15 +427,9 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\GIACO_ICOEL_002.json" />
<None Include="DATA\CONF\3025.ini">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\3023.ini" />
<None Include="DATA\CONF\3023.json" />
<None Include="DATA\CONF\GIACO_ICOEL_002.ini" />
<None Include="DATA\CONF\GIACO_ICOEL_003.ini" />
<None Include="DATA\CONF\GIACO_ICOEL_003.json" />
<None Include="DATA\CONF\L018.ini" />
<None Include="DATA\CONF\SIM_DP_02.json" />
<None Include="DATA\CONF\SIM_DP_01.json" />
<Content Include="ExtLib\krcc.dll">
@@ -516,17 +491,6 @@
<IsTransformFile>True</IsTransformFile>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\3015.ini" />
<None Include="DATA\CONF\3021.ini" />
<None Include="DATA\CONF\FOV002.ini" />
<None Include="DATA\CONF\FOV011.ini" />
<None Include="DATA\CONF\FOV005.ini" />
<None Include="DATA\CONF\FOV006.ini" />
<None Include="DATA\CONF\FOV090.ini" />
<None Include="DATA\CONF\FOV008.ini" />
<None Include="DATA\CONF\GT575.ini" />
<None Include="DATA\CONF\GT578.ini" />
<None Include="DATA\CONF\GT579.ini" />
<None Include="DATA\CONF\SIM_PIZ08.ini" />
<None Include="DATA\CONF\SIM_PIZ05.ini" />
<None Include="DATA\CONF\SIM_PIZ04.ini" />
@@ -554,16 +518,6 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\SIMUL_02.ini" />
<None Include="DATA\CONF\3006.ini" />
<None Include="DATA\CONF\3007.ini" />
<None Include="DATA\CONF\3005.ini" />
<None Include="DATA\CONF\3004.ini" />
<None Include="DATA\CONF\3003.ini" />
<None Include="DATA\CONF\3002.ini" />
<None Include="DATA\CONF\3001.ini" />
<None Include="DATA\CONF\GT529.ini" />
<None Include="DATA\CONF\GT555.ini" />
<None Include="DATA\CONF\3012.ini" />
<None Include="DATA\CONF\FP_R7.ini" />
<None Include="DATA\CONF\FP_R6.ini" />
<None Include="DATA\CONF\OSAI.ini" />
@@ -571,8 +525,6 @@
<None Include="DATA\CONF\4000.ini" />
<None Include="DATA\CONF\SIMUL_04.ini" />
<None Include="DATA\CONF\SIMUL_03.ini" />
<None Include="DATA\CONF\L014.ini" />
<None Include="DATA\CONF\L017.ini" />
<None Include="DATA\CONF\MAIN.ini">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
+83
View File
@@ -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
+2 -4
View File
@@ -224,6 +224,7 @@
<None Include="DATA\CONF\STEL_200.json" />
<None Include="DATA\CONF\STEL_210.ini" />
<None Include="DATA\CONF\STEL_210.json" />
<None Include="DATA\CONF\STEL_210_alarm.json" />
<None Include="DATA\CONF\Tend_250_53.ini" />
<None Include="DATA\CONF\Tend_250_53.json" />
<None Include="DATA\CONF\Tend_RAMA_10_47.ini" />
@@ -293,7 +294,6 @@
<Content Include="logs\.placeholder.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Readme\ToDo.txt" />
<Content Include="Resources\ChangeLog.html">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
@@ -316,9 +316,7 @@
<Name>IOB-WIN-FORM</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Folder Include="DATA\DAT\" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\Microsoft.VisualStudio.SlowCheetah.4.0.50\build\Microsoft.VisualStudio.SlowCheetah.targets" Condition="Exists('..\packages\Microsoft.VisualStudio.SlowCheetah.4.0.50\build\Microsoft.VisualStudio.SlowCheetah.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+1
View File
@@ -103,6 +103,7 @@ namespace IOB_WIN_OPC_UA.IobOpc
// se NON c'è già sync DB
if (addResetPzCount && !task2exe.ContainsKey("forceResetPzCount"))
{
task2exe.Add("forceSetPzCount", "0");
task2exe.Add("forceResetPzCount", "0");
}
}
-61
View File
@@ -1,61 +0,0 @@
-------------------------------------
- 2017.10.19
-------------------------------------
OK - da testare ora invio URL a MoonPro
OK - ALIVE
OK - ENABLED
OK - INPUT
OK - FARE lettura VERA da FANUC almeno della bitmap
OK - fare gestione come rPI-IOB, ovvero
OK - gestione QUEUE eventi
OK - salvataggio su file dello storico eventi rilevati
OK - gestione dei segnali ballerini (BITMASK!)
OK - gestione contapezzi CUSTOM
- fare gestione configurabile lettura FANUC
OK - gestione dati G43
OK - togliere dati F (E0 | 90)
- fare integrazione ALTRI varori FANUC, tra cui
- allarmi
OK - load/speed
OK - overrides (G12, G30)
OK - nuovo metodo chiamata x MP/IO (che dovrà avere nuovo comando x accettare queste chiamate e salvare su tabella SENZA processing, come eventi o come extra... evento NOTA?)
- verificare segnali: (vedi doc gsheet)
- F001.0: ALARM_PRESENT
- F001.7: CN_READY / POWER_ON
- STL000.5: AUTO (vers 1)
- STL000.7: AUTO (vers 2)
- Cambiare ordine valutazione eventi frequenza VLF-->VHF
- Azzerare I contatori quanto si arriva al più lento (quando si azzera lui ripartono comunque tutti...) -> in questo modo scatta un contatore QUANDO GENERAL_COUNTER MOD periodo_Ccntatore == 0
- rendere parametrica l'assegnazione delle funzioni al diverso ambito frequenza tra i 5 (VHF, HF, NF, LF, VLF)
- procedura x gestione dati REALTIME (da NON salvare su db ma al limite su REDIS, simil EQN con 2 tab x eliminare dati scaduti)
OK FINIRE SISTEMAZIONE JETCO:
OK - install servers
OK - install DB
OK - conf acquisitore togliendo parti abbozzate x contapezzi/fineciclo
OK - part program name MAIN con nuova funzione
CREARE NUOVO SW (o configurazione? o ramo alternativo a develop?) x mapping INIZIALE della macchina... ad esempio
- si collega a ns server
- chiede cosa deve fare (es mappa memorie D da 0 a 9999)
- effettua testing e poi fa upload risultati
- il ns sw fa i check/controlli modifica
in questo modo ad esmepio possiamo cercare i contapezzi, i segnali ceh cambiano con il fineciclo nelle aree Y, i contatori STANDARD nelle memorie D, ...
GESTIONE LIVE DATA
L'idea è ceh quando una macchina è "sotto osservazione" ovvero live viene aperta pagina questa debba inviare PIU' DATI di tipo realtime e mostrarli nel browser. Per farlo ci saranno questi elementi
- si apre una pagina di dettaglio macchina (da tablet? da SITE principale?)
- questo causa la modifica di una chiave su DB (e/o redis) di stato macchina, del tipo "OnAir=true", e potrebbe essere una chiave a tempo (30 sec poi scade?) e mentre la pagina è aperta e si aggiorna (ogni 1-2 sec oppure Signal-R) questo valore viene confermato (e prorigato)
- ogni IOB-WIN fa una chiamata "extra" all'URL dedicato al checl "OnAir", e se trova che è abilitato passa in modalità letture frequenti (1/2 al sec?) dei parametri LIVE (es: feed, speed, posizioni assi, load istantanei)
- se passa inq eusta modalità live invia DI CONTINUO il dato al server IO
- il server IO salva SU REDIS questi valori sia come "lastVal" che come serie storica
- le pagine che mostrano i dati si continuano ad aggiornare (da redis) con grafici (chartJs come PIC) e/o valori istantanei
- le serie storiche vengono ripulite periodicamente (ogni ora? valori + vecchi di 24h ad esempio?)
- struttura dati REDIS da creare SIMILE a struttura info URL...
- struttura dati LIVE: ../LIVE/COD_MACC/CURR_VAL (contiene TUTTI i dati LIVE, ultimi ricevuti...)
- struttura dati TimeSeries: ../LIVE/COD_MACC/DATA_NAME (contiene TUTTI i dati come timeseries, es SPEEDRATE, FEEDRATE, POS_X1, POS_X2, ...)
- operazione SAVE aggiorna SURR e accoda NUOVO valore...
- LOAD (rilettura9 POTREBBE fare pulizia se + vecchi di 24h...)
- la trasmissione verso IO deve avvenire con "multisend, nel
+83
View File
@@ -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
+16 -2
View File
@@ -27,9 +27,23 @@ namespace IOB_WIN_SQL
{
switch (tipoScelto)
{
case tipoAdapter.FILE_SOITAAB:
iobObj = new IobFile.IobFileSoitaab(this, IOBConf);
btnStart.Enabled = true;
break;
case tipoAdapter.PingWatchdog:
iobObj = new IOB_WIN_FORM.Iob.PingWatchDog(this, IOBConf);
case tipoAdapter.IcoelDb:
iobObj = new IobSql.IcoelDb(this, IOBConf);
btnStart.Enabled = true;
break;
case tipoAdapter.SQLSERVER_LANTEK:
iobObj = new IobSql.SqlServLantek(this, IOBConf);
btnStart.Enabled = true;
break;
case tipoAdapter.SQLSERVER_PAMA:
iobObj = new IobSql.SqlServPama(this, IOBConf);
btnStart.Enabled = true;
break;
+91
View File
@@ -0,0 +1,91 @@
;Configurazione IOB-WIN
[IOB]
;Accesso gestione sync DB x sync ICOEL --> MoonPro_ISF --> MoonPro_IS
CNCTYPE=IcoelDb
PING_MS_TIMEOUT=500
MinDeltaSec=5
;IOB_NAME=GIACO_ICOEL
[MACHINE]
VENDOR=ICOEL
MODEL=Impianto Ciliegie Turi
[CNC]
IP=192.168.137.175
PORT=1443
GETPRGNAME=false
[SERVER]
MPIP=http://192.168.1.14
MPURL=/MP/IO
CMDBASE=/IOB/input/
CMDFLOG=/IOB/flog/
CMDRAWTRANSF=/IOB/rawTransfJson/
CMDALIVE=/IOB
CMDENABLED=/IOB/enabled/
CMDADV1=?valore=
CMDREBO=/sendReboot.aspx?idxMacchina=
[MEMORY]
ADDR_READ=DB9999.DBB0
ADDR_WRITE=DB9999.DBB0
SIZE_READ=0
SIZE_WRITE=0
;BIT0=CONN
;BIT1=DB60.DBB1
;BIT2=PZCOUNT.STD.DB700.DBW22
;BIT3=DB60.DBB3
;BIT4=DB60.DBB4
[BLINK]
;MAX_COUNTER_BLINK = 30
MAX_COUNTER_BLINK = 15
;bit0 = 0
;bit1 = 0
;bit2 = 1
;bit3 = 1
;bit4 = 1
;bit5 = 0
;bit6 = 0
;bit7 = 0
BLINK_FILT=0
;BLINK_FILT=28
[OPTPAR]
AUTO_CHANGE_ODL=false
CHANGE_ODL_MODE=TIME
CHANGE_ODL_HOURS=24
CHANGE_ODL_IDLE_MIN=5
PZCOUNT_MODE=Icoel
DISABLE_PZCOUNT=FALSE
ENABLE_SEND_PZC_BLOCK=TRUE
MIN_SEND_PZC_BLOCK=0
MAX_SEND_PZC_BLOCK=100
ENABLE_DYN_DATA=TRUE
FORCE_DYN_DATA=TRUE
DEM_FACT_DYN_DATA=5
ENABLE_DATA_FILTER=TRUE
ENABLE_CLI_RESTART=TRUE
SyncStateServer=localhost\sqlexpress
SyncStateDb=MoonPro_ISF_2022
SyncStateUser=egalware
SyncStatePwd=egalware2022
SyncStateCTout=
DISABLE_SEND_WDST=TRUE
; clock base (da 10ms)
timerIntMs=20
; conf parametri memoria READ/WRITE
PARAM_CONF=GIACO_ICOEL_003.json
[BRANCH]
NAME=master
; Tags manuali
[TAGS]
Customer=Giacovelli-Turi
HostOS=WIN
HostName=IOB-WIN-TURI-03
HostAddr=192.168.137.175
@@ -0,0 +1,34 @@
{
"mMapWrite": {
},
"mMapRead": {
"TotMerceProcTonn": {
"name": "TotMerceProcTonn",
"description": "Totale merce processata oggi su impianto (Tonn)",
"memAddr": "TotMerceProcTonn",
"tipoMem": "Real",
"index": 0,
"size": 0,
"func": "MAX",
"period": 60,
"factor": 1
},
"TotMerceCaricTonn": {
"name": "TotMerceCaricTonn",
"description": "Totale merce caricata oggi su impianto (Tonn)",
"memAddr": "TotMerceCaricTonn",
"tipoMem": "Real",
"index": 0,
"size": 0,
"func": "MAX",
"period": 60,
"factor": 1
}
},
"optKVP": {
"fluxLogReduce": true,
"fluxLogRedDeadBand": 1.0,
"fluxLogResendPeriod": 60
}
}
+85
View File
@@ -0,0 +1,85 @@
;Configurazione IOB-WIN
[IOB]
;Accesso gestione sync DB x sync PAMA --> MoonPro_IOB_ISF --> Chiamate REST
CNCTYPE=SQLSERVER_PAMA
PING_MS_TIMEOUT=500
MinDeltaSec=5
[MACHINE]
VENDOR=PAMA
MODEL=Alesatrice 392
[CNC]
IP=127.0.0.1
PORT=1443
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=
CMDRAWTRANSF=/IOB/rawTransfJson/
[MEMORY]
ADDR_READ=DB9999.DBB0
ADDR_WRITE=DB9999.DBB0
SIZE_READ=0
SIZE_WRITE=0
;BIT0=CONN
;BIT1=DB60.DBB1
;BIT2=PZCOUNT.STD.DB700.DBW22
;BIT3=DB60.DBB3
;BIT4=DB60.DBB4
[BLINK]
;MAX_COUNTER_BLINK = 30
MAX_COUNTER_BLINK = 15
;bit0 = 0
;bit1 = 0
;bit2 = 1
;bit3 = 1
;bit4 = 1
;bit5 = 0
;bit6 = 0
;bit7 = 0
BLINK_FILT=0
;BLINK_FILT=28
[OPTPAR]
AUTO_CHANGE_ODL=false
CHANGE_ODL_MODE=TIME
CHANGE_ODL_HOURS=24
CHANGE_ODL_IDLE_MIN=5
PZCOUNT_MODE=PAMA
DISABLE_PZCOUNT=FALSE
ENABLE_SEND_PZC_BLOCK=TRUE
MIN_SEND_PZC_BLOCK=0
MAX_SEND_PZC_BLOCK=100
ENABLE_DYN_DATA=TRUE
FORCE_DYN_DATA=TRUE
DEM_FACT_DYN_DATA=5
ENABLE_DATA_FILTER=TRUE
ENABLE_CLI_RESTART=TRUE
SyncStateServer=308SERVER60\LANTEK
SyncStateDb=MoonPro_IOB_ISF_PAMA
SyncStateUser=steamware
SyncStatePwd=viadante16
SyncStateCTout=
VetoReadSec=2
VetoSyncSec=10
;FullPodlUrl=true
; clock base (da 10ms)
timerIntMs=20
; conf parametri memoria READ/WRITE
PARAM_CONF=IMI_PAMA_392.json
[BRANCH]
NAME=master
+29
View File
@@ -0,0 +1,29 @@
{
"mMapWrite": {
},
"mMapRead": {
//"TotMerceProcTonn": {
// "name": "TotMerceProcTonn",
// "description": "Totale merce processata oggi su impianto (Tonn)",
// "memAddr": "TotMerceProcTonn",
// "tipoMem": "Real",
// "index": 0,
// "size": 0,
// "func": "MAX",
// "period": 60,
// "factor": 1
//},
//"TotMerceCaricTonn": {
// "name": "TotMerceCaricTonn",
// "description": "Totale merce caricata oggi su impianto (Tonn)",
// "memAddr": "TotMerceCaricTonn",
// "tipoMem": "Real",
// "index": 0,
// "size": 0,
// "func": "MAX",
// "period": 60,
// "factor": 1
//}
}
}
@@ -0,0 +1,89 @@
;Configurazione IOB-WIN
[IOB]
;Accesso gestione sync DB x LANTEK --> MoonPro_IOB_ISF --> Chiamate REST
CNCTYPE=SQLSERVER_LANTEK
PING_MS_TIMEOUT=500
MinDeltaSec=5
IOB_NAME=IMI_SOITAAB_Z2342
DIS_EXE_TASK=FALSE
DIS_STATE_CH=TRUE
[MACHINE]
VENDOR=SOITAAB
MODEL=Ossitaglio Z2342 + sw nesting LANTEK
[CNC]
IP=127.0.0.1
PORT=1443
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=
CMDRAWTRANSF=/IOB/rawTransfJson/
[MEMORY]
ADDR_READ=DB9999.DBB0
ADDR_WRITE=DB9999.DBB0
SIZE_READ=0
SIZE_WRITE=0
;BIT0=CONN
;BIT1=DB60.DBB1
;BIT2=PZCOUNT.STD.DB700.DBW22
;BIT3=DB60.DBB3
;BIT4=DB60.DBB4
[BLINK]
;MAX_COUNTER_BLINK = 30
MAX_COUNTER_BLINK = 15
;bit0 = 0
;bit1 = 0
;bit2 = 1
;bit3 = 1
;bit4 = 1
;bit5 = 0
;bit6 = 0
;bit7 = 0
BLINK_FILT=0
;BLINK_FILT=28
[OPTPAR]
AUTO_CHANGE_ODL=false
CHANGE_ODL_MODE=TIME
CHANGE_ODL_HOURS=24
CHANGE_ODL_IDLE_MIN=5
PZCOUNT_MODE=PAMA
DISABLE_PZCOUNT=FALSE
ENABLE_SEND_PZC_BLOCK=TRUE
MIN_SEND_PZC_BLOCK=0
MAX_SEND_PZC_BLOCK=100
ENABLE_DYN_DATA=TRUE
FORCE_DYN_DATA=TRUE
DEM_FACT_DYN_DATA=5
ENABLE_DATA_FILTER=TRUE
ENABLE_CLI_RESTART=TRUE
DISABLE_SEND_WDST=TRUE
SyncStateServer=308SERVER60\LANTEK
SyncStateDb=MoonPro_IOB_ISF_LANTEK
SyncStateUser=steamware
SyncStatePwd=viadante16
SyncStateCTout=
VetoReadSec=2
VetoSyncSec=10
FullPodlUrl=true
; clock base (da 10ms)
timerIntMs=20
; conf parametri memoria READ/WRITE
PARAM_CONF=IMI_SOITAAB_Z2342_01.json
[BRANCH]
NAME=master
@@ -0,0 +1,10 @@
{
"mMapWrite": {
},
"mMapRead": {
},
"optKVP": {
//"path-remBase": "C:\\Temp"
"path-remBase": "\\\\ecs900\\Logs"
}
}
@@ -0,0 +1,87 @@
;Configurazione IOB-WIN
[IOB]
;Accesso gestione sync con FILE SOITAAB
CNCTYPE=FILE_SOITAAB
PING_MS_TIMEOUT=500
MinDeltaSec=5
IOB_NAME=IMI_SOITAAB_Z2342
DIS_EXE_TASK=TRUE
DIS_STATE_CH=FALSE
[MACHINE]
VENDOR=SOITAAB
MODEL=Ossitaglio Z2342
[CNC]
;IP=ecs900
IP=172.28.30.53
PORT=0
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=
CMDRAWTRANSF=/IOB/rawTransfJson/
[MEMORY]
ADDR_READ=DB9999.DBB0
ADDR_WRITE=DB9999.DBB0
SIZE_READ=0
SIZE_WRITE=0
;BIT0=CONN
;BIT1=DB60.DBB1
;BIT2=PZCOUNT.STD.DB700.DBW22
;BIT3=DB60.DBB3
;BIT4=DB60.DBB4
[BLINK]
;MAX_COUNTER_BLINK = 30
MAX_COUNTER_BLINK = 15
;bit0 = 0
;bit1 = 0
;bit2 = 1
;bit3 = 1
;bit4 = 1
;bit5 = 0
;bit6 = 0
;bit7 = 0
BLINK_FILT=0
;BLINK_FILT=28
[OPTPAR]
AUTO_CHANGE_ODL=false
CHANGE_ODL_MODE=TIME
CHANGE_ODL_HOURS=24
CHANGE_ODL_IDLE_MIN=5
PZCOUNT_MODE=SOITAAB
DISABLE_PZCOUNT=FALSE
ENABLE_SEND_PZC_BLOCK=TRUE
MIN_SEND_PZC_BLOCK=0
MAX_SEND_PZC_BLOCK=100
ENABLE_DYN_DATA=TRUE
FORCE_DYN_DATA=TRUE
DEM_FACT_DYN_DATA=5
ENABLE_DATA_FILTER=TRUE
ENABLE_CLI_RESTART=TRUE
DISABLE_SEND_WDST=TRUE
VetoReadSec=5
EnabelPodlManFull=true
CodGruppoIob=GRP-CC-025
; invio flux alla lettura file
sendFluxOnRead=true
; clock base (da 10ms)
timerIntMs=20
; conf parametri memoria READ/WRITE
PARAM_CONF=IMI_SOITAAB_Z2342_02.json
[BRANCH]
NAME=master
@@ -0,0 +1,10 @@
{
"mMapWrite": {
},
"mMapRead": {
},
"optKVP": {
//"path-remBase": "C:\\Temp"
"path-remBase": "\\\\ecs900\\Logs"
}
}
+9
View File
@@ -132,6 +132,7 @@
<Compile Include="IobSql\SqlServLantek.cs" />
<Compile Include="IobSql\SqlServPama.cs" />
<Compile Include="Iob\GenericNext.cs" />
<Compile Include="Iob\IobFileSoitaab.cs" />
<Compile Include="MainFormNext.cs">
<SubType>Form</SubType>
</Compile>
@@ -164,6 +165,14 @@
<None Include="DATA\CONF\FTP-PING.ini">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\GIACO_ICOEL_003.ini" />
<None Include="DATA\CONF\GIACO_ICOEL_003.json" />
<None Include="DATA\CONF\IMI_PAMA_392.ini" />
<None Include="DATA\CONF\IMI_PAMA_392.json" />
<None Include="DATA\CONF\IMI_SOITAAB_Z2342_01.ini" />
<None Include="DATA\CONF\IMI_SOITAAB_Z2342_01.json" />
<None Include="DATA\CONF\IMI_SOITAAB_Z2342_02.ini" />
<None Include="DATA\CONF\IMI_SOITAAB_Z2342_02.json" />
<None Include="DATA\CONF\IOB.ini">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
+629
View File
@@ -0,0 +1,629 @@
#if false
using EgwProxy.SqlDb.DbModels;
#endif
using IOB_UT_NEXT;
using MapoSDK;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.NetworkInformation;
using static IOB_UT_NEXT.CustomObj;
namespace IOB_WIN_SQL.IobFile
{
/// <summary>
/// Adapter specializzato per SOITAAB x la SOLA lettura stato macchina da log, da accoppiare a
/// adapter x IOB LANTEK x scrittura PODL
/// - IN: LOGFile macchina diretto
/// - OUT: --&gt; sigLog
/// --&gt; fluxLog
/// </summary>
public class IobFileSoitaab : Iob.GenericNext
{
#region Public Constructors
/// <summary>
/// Costruttore dell'IOB FileBased SOITAAB
/// </summary>
/// <param name="caller">AdapterForm chiamante</param>
/// <param name="IOBConf">Configurazione IOB per avvio</param>
public IobFileSoitaab(AdapterFormNext caller, IobConfiguration IOBConf) : base(caller, IOBConf)
{
DateTime adesso = DateTime.Now;
string VetoReadSec = getOptPar("VetoReadSec");
setupSpecialParams();
if (pathList.ContainsKey("path-remBase"))
{
logDirPath = pathList["path-remBase"];
}
// fix parametri veto
if (!string.IsNullOrEmpty(VetoReadSec))
{
int.TryParse(VetoReadSec, out vetoReadFileSec);
}
string sFluxOnRead = getOptPar("sendFluxOnRead");
if (!string.IsNullOrEmpty("sendFluxOnRead"))
{
bool.TryParse(sFluxOnRead, out sendFluxOnRead);
}
// init a zero....
B_input = 0;
// provo prima lettura logfile
try
{
// eseguo subito un ciclo acquisizione log + processing
bool acquireLog = getRemoteLog();
if (acquireLog)
{
bool sentSignLog = processSignLogTable(adesso);
}
}
catch (Exception exc)
{
lgError($"Eccezione in IobFileSoitaab{Environment.NewLine}{exc}");
}
lastPING = DateTime.Now.AddHours(-1);
}
#endregion Public Constructors
#region Public Methods
/// <summary>
/// Implementazione custom esecuzione task specifici
/// </summary>
/// <param name="task2exe"></param>
/// <returns></returns>
public override Dictionary<string, string> executeTasks(Dictionary<string, string> task2exe)
{
DateTime adesso = DateTime.Now;
// NON fa nulla... anche se non dovrebbe richiamarlo
Dictionary<string, string> taskDone = new Dictionary<string, string>();
lastReadPLC = DateTime.Now;
return taskDone;
}
/// <summary>
/// Recupero dati dinamici...
/// </summary>
public override Dictionary<string, string> getDynData()
{
DateTime adesso = DateTime.Now;
// dizionario vuoto / faccio direttamente accodamento in FluxLog
Dictionary<string, string> outVal = new Dictionary<string, string>();
// processo ed accodo!
processFluxLogTable(adesso);
lastReadPLC = DateTime.Now;
return outVal;
}
/// <summary>
/// Effettua lettura semafori principale <paramref name="currDispData">Parametri da
/// aggiornare x display in form</paramref>
/// </summary>
public override void readSemafori(ref newDisplayData currDispData)
{
DateTime adesso = DateTime.Now;
if (connectionOk)
{
// controllo veto checkDB
if (adesso > vetoDataRead)
{
// predispongo prox veto...
vetoDataRead = adesso.AddSeconds(vetoReadFileSec);
// semaforo
currDispData.semIn = Semaforo.SV;
// verifico SignLog e processo
bool acquireLog = getRemoteLog();
bool sentSignLog = processSignLogTable(adesso);
// verifico ProdData e processo
bool sentProdData = processProdDataTable(adesso);
}
}
else
{
B_input = 0;
currDispData.semIn = Semaforo.SR;
}
}
/// <summary>
/// Override connessione
/// </summary>
public override void tryConnect()
{
if (!connectionOk)
{
// controllo che il ping sia stato tentato almeno pingTestSec fa...
if (DateTime.Now.Subtract(lastPING).TotalSeconds > utils.CRI("pingTestSec"))
{
if (verboseLog || periodicLog)
{
lgInfo("FileSoitaab: ConnKO - tryConnect");
}
// in primis salvo data ping...
lastPING = DateTime.Now;
// se passa il ping faccio il resto...
if (testPingMachine == IPStatus.Success)
{
string szStatusConnection = "";
try
{
// ora provo connessione...
parentForm.commPlcActive = true;
// connessione OK se oltre al PING riesco a leggere la folder di base
if (Directory.Exists(logDirPath))
{
parentForm.commPlcActive = false;
connectionOk = true;
}
// refresh stato connessione!!!
if (connectionOk)
{
queueInEnabCurr = true;
if (adpRunning)
{
lgInfo($"Connessione OK alla folder {logDirPath}");
lastReadPLC = DateTime.Now;
}
}
else
{
lgError("Impossibile procedere, connessione mancante...");
}
}
catch (Exception exc)
{
lgFatal($"Errore nella connessione all'adapter IobFileSoitaab: {szStatusConnection}{Environment.NewLine}{exc}");
connectionOk = false;
lgInfo($"Eccezione in TryConnect, Adapter IobFileSoitaab NON running, pausa di {utils.CRI("waitRecMSec")} msec prima di ulteriori tentativi di riconnessione");
}
}
else
{
// loggo no risposta ping ...
connectionOk = false;
B_input = 0;
if (verboseLog || periodicLog)
{
lgInfo($"Attenzione: IobFileSoitaab controllo PING fallito per IP {cIobConf.cncPingAddr}");
}
}
}
}
else
{
needRefresh = true;
}
}
public override void tryDisconnect()
{
// registro solo che è disconnesso
connectionOk = false;
queueInEnabCurr = false;
}
#endregion Public Methods
#region Protected Fields
protected bool sendFluxOnRead = false;
protected int vetoReadFileSec = 3;
#endregion Protected Fields
#region Protected Properties
#if false
/// <summary>
/// Stato di sync delle tab gestite
/// </summary>
protected List<SyncStateModel> elencoSyncState { get; set; } = new List<SyncStateModel>();
#endif
#endregion Protected Properties
#region Protected Methods
/// <summary>
/// Conversione string row in log generico
/// </summary>
/// <param name="dailyLog"></param>
/// <returns></returns>
protected override GenLogRow convertToMachineLog(string dailyLog)
{
GenLogRow answ = new GenLogRow();
if (!string.IsNullOrEmpty(dailyLog))
{
// preventivamente: doppio ";;" --> ";"
dailyLog = dailyLog.Replace(";;", ";");
var sSplit = dailyLog.Split(';');
answ.dtRif = DateTime.ParseExact($"{sSplit[0]} {sSplit[1]}", "yyyy-M-d HH:mm:ss", null);
answ.valString = $"{sSplit[2]};{sSplit[3]}";
}
return answ;
}
/// <summary>
/// Recupera file log da analizzare
/// </summary>
/// <returns></returns>
protected override bool getRemoteLog()
{
bool answ = false;
bool pingOk = testPingMachine == IPStatus.Success;
if (pingOk && Directory.Exists(logDirPath))
{
string filePath = Path.Combine(logDirPath, $"Report-{DateTime.Today.Day}.txt");
bool hasDaily = File.Exists(filePath);
// cerco file quotidiano...
if (!hasDaily)
{
var fileList = Directory.GetFiles(logDirPath, "Report-*.txt");
DateTime lastMod = DateTime.Today.AddYears(-1);
foreach (var cFile in fileList)
{
var tempFile = Path.Combine(logDirPath, cFile);
var lwTime = File.GetLastWriteTime(tempFile);
if (lwTime >= lastMod)
{
lastMod = lwTime;
filePath = tempFile;
}
}
}
// leggo file
string rawVal = File.ReadAllText(Path.Combine(logDirPath, filePath));
if (!string.IsNullOrEmpty(rawVal))
{
// salvo in redis
string redKey = redisMan.redHash($"IOB:CurrData:{cIobConf.codIOB}:LogFile:Act");
redisMan.setRSV(redKey, rawVal);
answ = true;
}
}
return answ;
}
#endregion Protected Methods
#region Private Properties
private string logDirPath { get; set; } = "\\\\ecs900\\Logs";
#endregion Private Properties
#region Private Methods
private static int decodeSoitaabLog(string val2test)
{
// di default NON EMERGENZA...
int valInt = 128;
switch (val2test)
{
case "START;1":
valInt = 1 + 2 + 128;
break;
case "END;1":
valInt = 1 + 128;
break;
case "START;0":
case "END;0":
case "HOLD;":
valInt = 1 + 16 + 128;
break;
default:
break;
}
return valInt;
}
/// <summary>
/// Esegue processing + invio dati tab SignLog
/// </summary>
/// <param name="adesso"></param>
/// <returns></returns>
private bool processFluxLogTable(DateTime adesso)
{
bool fatto = false;
// leggo eventuali dati di fluxlog ed invio...
if (fluxLogData != null && fluxLogData.Count > 0)
{
string sVal = "";
foreach (var fLog2send in fluxLogData)
{
var kvpFlux = fLog2send.valString.Split(';');
if (kvpFlux.Count() > 1)
{
sVal = $"[DYNDATA] |{fLog2send.dtRif:yyyy-MM-dd HH:mm:ss}|{kvpFlux[0]}|{kvpFlux[1]}";
// chiamo accodamento con dataora corretta...
accodaFLog(sVal, qEncodeFLog(fLog2send.dtRif, kvpFlux[0], kvpFlux[1]));
}
}
// svuoto coda invio fluxlog...
fluxLogData = new List<GenLogRow>();
// fatto!
fatto = true;
}
return fatto;
}
/// <summary>
/// Esegue processing + invio dati tab ProdData
/// </summary>
/// <param name="adesso"></param>
/// <returns></returns>
private bool processProdDataTable(DateTime adesso)
{
bool fatto = false;
return fatto;
}
/// <summary>
/// Esegue processing + invio dati tab SignLog
/// </summary>
/// <param name="adesso"></param>
/// <returns></returns>
private bool processSignLogTable(DateTime adesso)
{
bool fatto = false;
// init oggetto x processing
Dictionary<DateTime, int> sigLogFromFile = new Dictionary<DateTime, int>();
// recupero i dati dai logs files, attuale e nuovo...
string fileAct = redisMan.getRSV(redKeyLogfileAct);
string fileLast = redisMan.getRSV(redKeyLogfileLast);
// confronto con i dati dell'ultimo LOG FILE processato
int lenghtAct = fileAct != null ? fileAct.Length : 0;
int lenghtLast = fileLast != null ? fileLast.Length : 0;
//if (lenghtAct > 0 && lenghtAct != lenghtLast)
if (lenghtAct > 0)
{
List<GenLogRow> logNew = new List<GenLogRow>();
List<GenLogRow> sigLogData = new List<GenLogRow>();
List<GenLogRow> logLast = getGenLogFromMachineLog(fileLast);
List<GenLogRow> logAct = getGenLogFromMachineLog(fileAct);
// SE c'è prendo ultima riga inviata x confronto...
var fileLastEnd = logLast.LastOrDefault();
if (fileLastEnd != null)
{
// ora prendo SOLAMENTE le righe nuove
logNew = logAct
.Where(x => x.dtRif > fileLastEnd.dtRif)
.OrderBy(x => x.dtRif)
.ToList();
}
else
{
logNew = logAct;
}
// solo SE ho nuovi dati....
if (logNew.Count > 0)
{
// processo le righe nuove e le accodo in redis come elenco FluxLog da inviare
// (appoggio in redis)... andando ad accodarle...
var currFLD = fluxLogData;
currFLD.AddRange(logNew);
fluxLogData = currFLD;
// estraggo solo info x sig log
sigLogData = logNew
.Where(x => x.valString.StartsWith("START") || x.valString.StartsWith("HOLD") || x.valString.StartsWith("END"))
.OrderBy(x => x.dtRif)
.ToList();
// processo le righe nuove trasformando al volo SOLO eventi...
foreach (var sLog2send in sigLogData)
{
/* -----------------------------------------------------
* bitmap MAPO STANDARD 60
* B0: 001 POWER_ON
* B1: 002 RUN
* B2: 004 pzCount
* B3: 008 allarme
* B4: 016 manuale
* B5: 032 slowTC
* B6: 064 WarmUpCoolDown
* B7: 128 EmergArmata
*
----------------------------------------------------- */
int valInt = decodeSoitaabLog(sLog2send.valString);
string currVal = getEncodSigLog(sLog2send.dtRif, valInt, counterSigIN);
// verifico non sia in veto invio iniziale...
if (queueInEnabCurr)
{
// --> accodo (valore già formattato)!
QueueIN.Enqueue(currVal);
// loggo!
lgTrace(string.Format("[QUEUE-IN] {0}", currVal));
counterSigIN++;
if (counterSigIN > 9999)
{
counterSigIN = 0;
}
}
else
{
lgDebug($"[VETO FOR QUEUE-IN] | {currVal} - MESSAGE NOT SENT | {adesso:yyyyMMdd_HHmmss}");
checkVetoQueueIn();
}
}
/* ----------------------------------------------------------
* processo righe x costruire una lista di eventi produzione:
* - elenco di eventi contapezzi
* - lista xODL come articolo + quantità prodotta (_1, _2, ...)
* - eventuale ultimo xODL che resta aperto
*
* successivamente processing + invio info raccolte
* - recupero PODL aperti
* - apertura/chiusura PODL esistenti
* - creazione PODL mancanti
* - dichiarazione contapezzi
*
* ---------------------------------------------------------- */
string sVal = "";
string descrArt = "";
List<ProdBatchData> elencoProdBatch = new List<ProdBatchData>();
ProdBatchData lastProdBatch = new ProdBatchData();
// ora processo TUTTO x il generico caso fluxLog......
foreach (var fLog2send in logNew)
{
// separo per ";"
var currData = fLog2send.valString.Split(';');
if (currData.Length > 1)
{
if (sendFluxOnRead)
{
// per prima cosa fluxLog a prescindere...
sVal = $"[LOGFILE]{currData[0]}|{currData[1]}";
// ...e chiamo accodamento
accodaFLog(sVal, qEncodeFLog(fLog2send.dtRif, currData[0], currData[1]));
}
switch (currData[0])
{
case "END":
// se è un end --> è comunque NON + runnning
isRunningState = false; // chiudo batch precedente + in elenco (SE era valido...)
if (!string.IsNullOrEmpty(lastProdBatch.codArt))
{
lastProdBatch.dtEnd = fLog2send.dtRif;
elencoProdBatch.Add(lastProdBatch);
}
// reset articolo..
lastArtDescr = "";
// nuovo batch VUOTO
lastProdBatch = new ProdBatchData();
contapezziPLC = 0;
break;
case "START":
isRunningState = currData[1] == "1";
break;
case "PARTCODE":
// inizio confronto articolo con precedente x capire se sia NUOVO
descrArt = currData[1];
// devo scartare i "doppi percorsi"
if (descrArt != lastArtDescr)
{
// verifico se sia DAVVERO cambiato articolo... prendo
// articolo senza indice (_1, _2, _3, ...)
var artDataLast = lastArtDescr.Split('_');
var artDataNew = descrArt.Split('_');
// nuovo articolo (NON vuoto)
if (!string.IsNullOrEmpty(artDataNew[0]) && artDataLast[0] != artDataNew[0])
{
// chiudo batch precedente + in elenco (SE era valido...)
if (!string.IsNullOrEmpty(lastProdBatch.codArt))
{
// chiudo prod
lastProdBatch.dtEnd = fLog2send.dtRif;
elencoProdBatch.Add(lastProdBatch);
}
// nuovo batch
lastProdBatch = new ProdBatchData()
{
codArt = artDataNew[0],
dtStart = fLog2send.dtRif,
numPz = 1
};
}
// solo nuova copia articolo
else
{
// aumento numPezzi batch
lastProdBatch.numPz++;
}
// salvo nuovo art processato
lastArtDescr = descrArt;
}
break;
default:
break;
}
}
}
// recupero elenco PODL corrente...
List<PODLModel> reqPOdlList = MachineNextPodl();
// adesso processo tutti i prodBatch collezionati x invio
foreach (var item in elencoProdBatch)
{
int currIdxPOdl = 0;
// cerco se articolo sia in elenco PODL
var listPOdl = reqPOdlList
.Where(x => x.CodArticolo.Equals(item.codArt, StringComparison.InvariantCultureIgnoreCase))
.ToList();
// se trovato --> invio start/stop PODL
if (listPOdl != null && listPOdl.Count > 0)
{
var currPodl = listPOdl.FirstOrDefault();
if (currPodl != null)
{
currIdxPOdl = currPodl.IdxPromessa;
// elimino da elenco PODL
reqPOdlList.Remove(currPodl);
}
}
else
{
// se NON trovato --> creo PODL, poi avvio/chiudo
currIdxPOdl = TryCreatePodl(item.codArt, CodGruppoIob, item.numPz);
}
// se idxPOdl valido
if (currIdxPOdl > 0)
{
// mando apertura PODL
SendStartPodl(currIdxPOdl, item.dtStart);
// chiudo PODL...
if (item.dtEnd != null)
{
// invio pezzi 3 sec prima di chiusura
SendPzIncrAtDate(item.numPz, ((DateTime)item.dtEnd).AddSeconds(-3));
// chiudo
SendClosePOdl(currIdxPOdl, (DateTime)item.dtEnd);
}
}
}
// salvo in last il valore di act...
redisMan.setRSV(redKeyLogfileLast, fileAct);
// calcolo B_input valido
var lastRec = sigLogData.LastOrDefault();
if (lastRec != null)
{
// salvo in B_input ultimo valore letto...
int lastValInt = decodeSoitaabLog(lastRec.valString);
B_input = lastValInt;
}
}
fatto = true;
}
return fatto;
}
#endregion Private Methods
}
}
+86
View File
@@ -0,0 +1,86 @@
;Configurazione IOB-WIN
[IOB]
;WebService SOAP x sizer
CNCTYPE=IcoelSoap
PING_MS_TIMEOUT=500
MinDeltaSec=5
;IOB_NAME=GIACO_ICOEL
[MACHINE]
VENDOR=ICOEL
MODEL=Impianto Ciliegie Turi
[CNC]
IP=192.168.137.50
PORT=8001
GETPRGNAME=false
[SERVER]
MPIP=http://192.168.1.14
MPURL=/MP/IO
CMDBASE=/IOB/input/
CMDFLOG=/IOB/flog/
CMDRAWTRANSF=/IOB/rawTransfJson/
CMDALIVE=/IOB
CMDENABLED=/IOB/enabled/
CMDADV1=?valore=
CMDREBO=/sendReboot.aspx?idxMacchina=
[MEMORY]
ADDR_READ=DB9999.DBB0
ADDR_WRITE=DB9999.DBB0
SIZE_READ=0
SIZE_WRITE=0
;BIT0=CONN
;BIT1=DB60.DBB1
;BIT2=PZCOUNT.STD.DB700.DBW22
;BIT3=DB60.DBB3
;BIT4=DB60.DBB4
[BLINK]
;MAX_COUNTER_BLINK = 30
MAX_COUNTER_BLINK = 15
;bit0 = 0
;bit1 = 0
;bit2 = 1
;bit3 = 1
;bit4 = 1
;bit5 = 0
;bit6 = 0
;bit7 = 0
BLINK_FILT=0
;BLINK_FILT=28
[OPTPAR]
AUTO_CHANGE_ODL=false
CHANGE_ODL_MODE=TIME
CHANGE_ODL_HOURS=24
CHANGE_ODL_IDLE_MIN=5
PZCOUNT_MODE=Icoel
DISABLE_PZCOUNT=FALSE
ENABLE_SEND_PZC_BLOCK=TRUE
MIN_SEND_PZC_BLOCK=0
MAX_SEND_PZC_BLOCK=100
ENABLE_DYN_DATA=TRUE
FORCE_DYN_DATA=TRUE
DEM_FACT_DYN_DATA=2
ENABLE_DATA_FILTER=TRUE
ENABLE_CLI_RESTART=TRUE
DISABLE_SEND_WDST=TRUE
; clock base (da 10ms)
timerIntMs=40
; conf parametri memoria READ/WRITE
PARAM_CONF=GIACO_ICOEL_002.json
[BRANCH]
NAME=master
; Tags manuali
[TAGS]
Customer=Giacovelli-Turi
HostOS=WIN
HostName=IOB-WIN-01
HostAddr=192.168.137.11
+124
View File
@@ -0,0 +1,124 @@
{
"mMapWrite": {
"setSupplier": {
"name": "setSupplier",
"description": "Send Batch req (GrowerCode|Descript)",
"tipoMem": "String",
"memAddr": "setSupplier",
"index": 0,
"size": 50
}
},
"mMapRead": {
"VelTonnOra": {
"name": "VelTonnOra",
"description": "Vel. Impianto Tonnellate / Ora",
"memAddr": "VelTonnOra",
"tipoMem": "Real",
"index": 0,
"size": 0,
"func": "AVG",
"period": 50,
"factor": 1
},
"VelFruttiMinuto": {
"name": "VelFruttiMinuto",
"description": "Vel. Impianto Frutti / Minuto",
"memAddr": "VelFruttiMinuto",
"tipoMem": "Real",
"index": 0,
"size": 0,
"func": "AVG",
"period": 50,
"factor": 1
},
"NumPacksOra": {
"name": "NumPacksOra",
"description": "Numero confezioni / Ora",
"memAddr": "NumPacksOra",
"tipoMem": "Real",
"index": 0,
"size": 0,
"func": "AVG",
"period": 50,
"factor": 1
},
"PercRiemp": {
"name": "PercRiemp",
"description": "Percentuale riempimento carrelli",
"memAddr": "PercRiemp",
"tipoMem": "Real",
"index": 0,
"size": 0,
"func": "AVG",
"period": 50,
"factor": 1
},
"L1_Batch": {
"name": "L1_Batch",
"description": "Curr Batch",
"tipoMem": "String",
"memAddr": "L1_Batch",
"index": 0,
"size": 50,
"func": "POINT",
"period": 120,
"factor": 1
},
"L2_Batch": {
"name": "L2_Batch",
"description": "Curr Batch",
"tipoMem": "String",
"memAddr": "L2_Batch",
"index": 0,
"size": 50,
"func": "POINT",
"period": 120,
"factor": 1
},
"L1_Grower": {
"name": "L1_Grower",
"description": "Grower Data",
"tipoMem": "String",
"memAddr": "L1_Grower",
"index": 0,
"size": 50,
"func": "POINT",
"period": 120,
"factor": 1
},
"L2_Grower": {
"name": "L2_Grower",
"description": "Grower Data",
"tipoMem": "String",
"memAddr": "L2_Grower",
"index": 0,
"size": 50,
"func": "POINT",
"period": 120,
"factor": 1
},
"L1_Variety": {
"name": "L1_Variety",
"description": "Variety Data",
"tipoMem": "String",
"memAddr": "L1_Variety",
"index": 0,
"size": 50,
"func": "POINT",
"period": 120,
"factor": 1
},
"L2_Variety": {
"name": "L2_Variety",
"description": "Variety Data",
"tipoMem": "String",
"memAddr": "L2_Variety",
"index": 0,
"size": 50,
"func": "POINT",
"period": 120,
"factor": 1
}
}
}
+80
View File
@@ -0,0 +1,80 @@
;Configurazione IOB-WIN
[IOB]
;Accesso gestione sync pesate con bilancia GOMBA via SOAP
CNCTYPE=SOAP_GOMBA
PING_MS_TIMEOUT=500
MinDeltaSec=5
DIS_EXE_TASK=FALSE
DIS_STATE_CH=FALSE
[MACHINE]
VENDOR=Gomba
MODEL=Bilancia Gomba
[CNC]
;IP=172.28.31.56
IP=308gomba
PORT=8000
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=
CMDRAWTRANSF=/IOB/rawTransfJson/
[MEMORY]
ADDR_READ=DB9999.DBB0
ADDR_WRITE=DB9999.DBB0
SIZE_READ=0
SIZE_WRITE=0
;BIT0=CONN
;BIT1=DB60.DBB1
;BIT2=PZCOUNT.STD.DB700.DBW22
;BIT3=DB60.DBB3
;BIT4=DB60.DBB4
[BLINK]
;MAX_COUNTER_BLINK = 30
MAX_COUNTER_BLINK = 15
;bit0 = 0
;bit1 = 0
;bit2 = 1
;bit3 = 1
;bit4 = 1
;bit5 = 0
;bit6 = 0
;bit7 = 0
BLINK_FILT=0
;BLINK_FILT=28
[OPTPAR]
AUTO_CHANGE_ODL=TRUE
CHANGE_ODL_MODE=DAILY
PZCOUNT_MODE=GOMBA
DISABLE_PZCOUNT=TRUE
ENABLE_SEND_PZC_BLOCK=TRUE
MIN_SEND_PZC_BLOCK=0
MAX_SEND_PZC_BLOCK=100
ENABLE_DYN_DATA=TRUE
FORCE_DYN_DATA=TRUE
DEM_FACT_DYN_DATA=5
ENABLE_DATA_FILTER=TRUE
ENABLE_CLI_RESTART=TRUE
DISABLE_SEND_WDST=TRUE
VetoReadSec=5
; clock base (da 10ms)
timerIntMs=20
; conf specifica (NON necessaria)
PARAM_CONF=IMI_GOMBA.json
[BRANCH]
NAME=master
+138
View File
@@ -0,0 +1,138 @@
{
"mMapWrite": {
"reqPesata": {
"name": "reqPesata",
"description": "Registra Peso IN/OUT",
"memAddr": "000",
"tipoMem": "String",
"index": 0,
"size": 1,
"displOrdinal": 1
},
"RM": {
"name": "RM",
"description": "Codice Pesata",
"memAddr": "000",
"tipoMem": "String",
"index": 0,
"size": 1,
"displOrdinal": 3
},
"Cod1": {
"name": "Cod1",
"description": "Codice Cliente",
"memAddr": "000",
"tipoMem": "String",
"index": 0,
"size": 1,
"displOrdinal": 4
},
"Cod2": {
"name": "Cod2",
"description": "Targa Automezzo",
"memAddr": "000",
"tipoMem": "String",
"index": 0,
"size": 1,
"displOrdinal": 5
},
"Cod3": {
"name": "Cod3",
"description": "Codice Articolo",
"memAddr": "000",
"tipoMem": "String",
"index": 0,
"size": 1,
"displOrdinal": 6
},
"Cod4": {
"name": "Cod4",
"description": "Note Ingresso",
"memAddr": "000",
"tipoMem": "String",
"index": 0,
"size": 1,
"displOrdinal": 7
},
"Cod5": {
"name": "Cod5",
"description": "Note Uscita",
"memAddr": "000",
"tipoMem": "String",
"index": 0,
"size": 1,
"displOrdinal": 8
},
"Cod6": {
"name": "Cod6",
"description": "Note",
"memAddr": "000",
"tipoMem": "String",
"index": 0,
"size": 1,
"displOrdinal": 9
}
},
"mMapRead": {
"logReq": {
"name": "logReq",
"description": "Esito Comando Pesata",
"memAddr": "000",
"tipoMem": "String",
"index": 0,
"size": 1,
"displOrdinal": 2
},
"lastWeightIn": {
"name": "lastWeightIn",
"description": "Ultima Pesata IN (kg)",
"memAddr": "lastWeightIn",
"tipoMem": "Int",
"index": 0,
"size": 0,
"func": "MAX",
"period": 60,
"factor": 1,
"displOrdinal": 10
},
"lastWeightOut": {
"name": "lastWeightOut",
"description": "Ultima Pesata OUT (kg)",
"memAddr": "lastWeightOut",
"tipoMem": "Int",
"index": 0,
"size": 0,
"func": "MAX",
"period": 60,
"factor": 1,
"displOrdinal": 11
},
"lastRecIn": {
"name": "lastRecIn",
"description": "Ultimo record IN",
"memAddr": "lastRecIn",
"tipoMem": "Int",
"index": 0,
"size": 0,
"func": "MAX",
"period": 60,
"factor": 1,
"displOrdinal": 12
},
"lastRecOut": {
"name": "lastRecOut",
"description": "Ultimo record OUT",
"memAddr": "lastRecOut",
"tipoMem": "Int",
"index": 0,
"size": 0,
"func": "MAX",
"period": 60,
"factor": 1,
"displOrdinal": 13
}
},
"optKVP": {
"numLastWeight": 100
}
}
+75
View File
@@ -0,0 +1,75 @@
;Configurazione IOB-WIN
[IOB]
CNCTYPE=REST_CITIZEN
[MACHINE]
VENDOR=Citizen_Mecmatica
MODEL=Citizen
[CNC]
IP=192.168.80.61
PORT=8733
GETPRGNAME=true
[SERVER]
MPIP=192.168.111.104
MPURL=/MP/IO
CMDBASE=/IOB/input/
CMDFLOG=/IOB/flog/
CMDALIVE=/IOB
CMDENABLED=/IOB/enabled/
CMDADV1=?valore=
CMDREBO=/sendReboot.aspx?idxMacchina=
[MEMORY]
;BIT0=CONN
;BIT1=Y12.6
;BIT2=PZCOUNT.PAR.6711
;BIT3=Y12.4
;BIT5=X18.3
;BIT6=X11.3
AREAD_START=0
AREAD_SIZE=9999
AREAG_SIZE=48
AREAR_START=0
AREAR_SIZE=64
AREAX_START=0
AREAX_SIZE=64
AREAY_START=0
AREAY_SIZE=64
PAR_START=6711
PAR_SIZE=3
[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=STD.PAR.6711
;PZGTOT_MODE=STD.PAR.6712
;PZREQ_MODE=STD.PAR.6713
ENABLE_PZ_RESET=TRUE
ENABLE_PZ_RESET_stopSetup=TRUE
;gestione invio pezzi in blocco
ENABLE_SEND_PZC_BLOCK=TRUE
MIN_SEND_PZC_BLOCK=10
MAX_SEND_PZC_BLOCK=100
;DynData
ENABLE_DYN_DATA=TRUE
DISABLE_SEND_WDST=TRUE
PARAM_CONF=L020.json
REST_CONF=L020.json
[BRANCH]
NAME=master
+288
View File
@@ -0,0 +1,288 @@
{
"mMapRead": {
"qtyWrk": {
"name": "qtyWrk",
"description": "Contatore Parziale",
"memAddr": "",
"tipoMem": "Int",
"index": 0,
"size": 4,
"func": "POINT",
"period": 60,
"factor": 1,
"displOrdinal": 5
},
"qtyTot": {
"name": "qtyTot",
"description": "Contatore Assoluto",
"memAddr": "",
"tipoMem": "Int",
"index": 0,
"size": 4,
"func": "POINT",
"period": 60,
"factor": 1,
"displOrdinal": 6
},
"qtyReq": {
"name": "qtyReq",
"description": "Qty Richiesta",
"memAddr": "",
"tipoMem": "Int",
"index": 0,
"size": 4,
"func": "POINT",
"period": 60,
"factor": 1,
"displOrdinal": 4
},
"gLamp": {
"name": "gLamp",
"description": "Lamp G",
"memAddr": "",
"tipoMem": "Int",
"index": 0,
"size": 4,
"func": "POINT",
"period": 60,
"factor": 1,
"displOrdinal": 7
},
"yLamp": {
"name": "yLamp",
"description": "Lamp Y",
"memAddr": "",
"tipoMem": "Int",
"index": 0,
"size": 4,
"func": "POINT",
"period": 60,
"factor": 1,
"displOrdinal": 8
},
"rLamp": {
"name": "rLamp",
"description": "Lamp R",
"memAddr": "",
"tipoMem": "Int",
"index": 0,
"size": 4,
"func": "POINT",
"period": 60,
"factor": 1,
"displOrdinal": 9
},
"pName": {
"name": "pName",
"description": "Programma",
"memAddr": "",
"tipoMem": "String",
"index": 0,
"size": 4,
"func": "POINT",
"period": 60,
"factor": 1,
"displOrdinal": 10
},
"Alarms": {
"name": "Alarms",
"description": "Allarm Status",
"memAddr": "",
"tipoMem": "String",
"index": 0,
"size": 4,
"func": "POINT",
"period": 60,
"factor": 1,
"displOrdinal": 11
},
"cTime": {
"name": "cTime",
"description": "Ultimo T.Ciclo",
"memAddr": "",
"tipoMem": "String",
"index": 0,
"size": 4,
"func": "POINT",
"period": 60,
"factor": 1,
"displOrdinal": 12
},
"DYNDATA": {
"name": "DYNDATA",
"description": "DynData check",
"memAddr": "",
"tipoMem": "String",
"index": 0,
"size": 4,
"func": "POINT",
"period": 60,
"factor": 1,
"displOrdinal": 13
},
"token": {
"name": "token",
"description": "Token Rest",
"memAddr": "",
"tipoMem": "String",
"index": 0,
"size": 4,
"func": "POINT",
"period": 60,
"factor": 1,
"displOrdinal": 14
}
},
"mMapWrite": {
"setArt": {
"name": "setArt",
"description": "Articolo",
"memAddr": "",
"tipoMem": "Int",
"index": 0,
"size": 4,
"func": "POINT",
"period": 60,
"factor": 1,
"displOrdinal": 1
},
"setComm": {
"name": "setComm",
"description": "Commessa",
"memAddr": "",
"tipoMem": "Int",
"index": 0,
"size": 4,
"func": "POINT",
"period": 60,
"factor": 1,
"displOrdinal": 2
},
"setPzComm": {
"name": "setPzComm",
"description": "Qty Commessa",
"memAddr": "",
"tipoMem": "Int",
"index": 0,
"size": 4,
"func": "POINT",
"period": 60,
"factor": 1,
"displOrdinal": 3
}
},
"timeOutSec": 60,
"apiUrl": "http://192.168.80.61:8733/DRIVER_MES/rest/",
"samplePeriod": 1000,
"numErrDisconnect": 5,
"CallList": {
"GetConnection": {
"Method": "Get",
"Url": "checkconnection",
"Name": "Connection",
"OutVarName": "Connected"
},
"GetToken": {
"Method": "Get",
"Url": "gettoken/mecmaticames/mecmatica@mes",
"OutVarName": "token",
"SamplePeriod": 1000
},
"GetLampGreen": {
"Method": "Get",
"Url": "getsingleladderio/[[token]]/Y/8E",
"Name": "Lampada Verde",
"OutVarName": "LampGreen",
"ListPrevCall": [ "GetToken" ],
"SamplePeriod": 1000
},
"GetLampYellow": {
"Method": "Get",
"Url": "getsingleladderio/[[token]]/Y/21",
"Name": "Lampada Gialla",
"OutVarName": "LampYellow",
"ListPrevCall": [ "GetToken" ],
"SamplePeriod": 1000
},
"GetLampRed": {
"Method": "Get",
"Url": "getsingleladderio/[[token]]/Y/22",
"Name": "Lampada Rossa",
"OutVarName": "LampRed",
"ListPrevCall": [ "GetToken" ],
"SamplePeriod": 1000
},
"GetQtyTot": {
"Method": "Get",
"Url": "gettotalquantity/[[token]]",
"Name": "Contapezzi Assoluto",
"OutVarName": "ContapezziAssoluto",
"ListPrevCall": [ "GetToken" ]
},
"GetQtyReq": {
"Method": "Get",
"Url": "getneededquantity/[[token]]",
"Name": "Qta Richiesta",
"OutVarName": "setPzComm",
"ListPrevCall": [ "GetToken" ]
},
"GetQtyProd": {
"Method": "Get",
"Url": "getworkedquantity/[[token]]",
"Name": "Contapezzi Parziale",
"OutVarName": "ContapezziParziale",
"ListPrevCall": [ "GetToken" ]
},
"GetCycleTime": {
"Method": "Get",
"Url": "getcycletime/[[token]]",
"Name": "tempoCiclo (sec)",
"OutVarName": "LastTC",
"ListPrevCall": [ "GetToken" ]
},
"GetProgName": {
"Method": "Get",
"Url": "getmainprogram/[[token]]",
"Name": "Programma MAIN",
"OutVarName": "PROG",
"ListPrevCall": [ "GetToken" ]
},
"GetCurrAlarm": {
"Method": "Get",
"Url": "getalarm/[[token]]",
"Name": "Allarme attivo",
"OutVarName": "AlarmActive",
"ListPrevCall": [ "GetToken" ],
"SamplePeriod": 2000
},
"GetAllAlarmLog": {
"Method": "Get",
"Url": "getallalarmlog/[[token]]",
"Name": "Log Allarmi (last)",
"OutVarName": "",
"ListPrevCall": [ "GetToken" ],
"SamplePeriod": 20000
},
"SetJobData": {
"Method": "Post",
"Url": "SetJobData",
"Name": "Invio Parametri Jobs",
"OutVarName": "",
"ListPrevCall": [ "GetToken" ]
},
"SetNeededQuantity_disab": {
"Method": "Post",
"Url": "SetNeededQuantity",
"Name": "Invio Qty Richiesta (disabilitato)",
"OutVarName": "",
"ListPrevCall": [ "GetToken" ]
},
"SetWorkedQuantity": {
"Method": "Post",
"Url": "SetWorkedQuantity",
"Name": "Invio Qty Lavorata",
"OutVarName": "",
"ListPrevCall": [ "GetToken" ]
}
}
}
+129
View File
@@ -0,0 +1,129 @@
{
"timeOutSec": 60,
"apiUrl": "http://192.168.80.61:8733/DRIVER_MES/rest/",
"mMapRead": {
},
"mMapWrite": {
},
"CallList": {
"GetConnection": {
"Method": "Get",
"Url": "checkconnection",
"Name": "Connection",
"OutVarName": "Connected"
},
"GetToken": {
"Method": "Get",
"Url": "gettoken/mecmaticames/mecmatica@mes",
"OutVarName": "token",
"SamplePeriod": 1000
},
"GetLampGreen": {
"Method": "Get",
"Url": "getsingleladderio/[[token]]/Y/8E",
"Name": "Lampada Verde",
"OutVarName": "LampGreen",
"ListPrevCall": [ "GetToken" ],
"SamplePeriod": 1000
},
"GetLampYellow": {
"Method": "Get",
"Url": "getsingleladderio/[[token]]/Y/21",
"Name": "Lampada Gialla",
"OutVarName": "LampYellow",
"ListPrevCall": [ "GetToken" ],
"SamplePeriod": 1000
},
"GetLampRed": {
"Method": "Get",
"Url": "getsingleladderio/[[token]]/Y/22",
"Name": "Lampada Rossa",
"OutVarName": "LampRed",
"ListPrevCall": [ "GetToken" ],
"SamplePeriod": 1000
},
//"GetStateAlarm": {
// "Method": "Get",
// "Url": "getsingleladderio/[[token]]/Y/200",
// "Name": "Macchina in Allarme",
// "OutVarName": "AlarmState",
// "ListPrevCall": [ "GetToken" ],
// "SamplePeriod": 2000
//},
//"GetStateCaution": {
// "Method": "Get",
// "Url": "getsingleladderio/[[token]]/Y/201",
// "Name": "Macchina in Caution",
// "OutVarName": "CautionState",
// "ListPrevCall": [ "GetToken" ],
// "SamplePeriod": 2000
//},
//"GetStateStart": {
// "Method": "Get",
// "Url": "getsingleladderio/[[token]]/Y/222",
// "Name": "Macchina in Start",
// "OutVarName": "StartState",
// "ListPrevCall": [ "GetToken" ],
// "SamplePeriod": 2000
//},
//"GetStateStop": {
// "Method": "Get",
// "Url": "getsingleladderio/[[token]]/Y/223",
// "Name": "Macchina in Stop",
// "OutVarName": "StopState",
// "ListPrevCall": [ "GetToken" ],
// "SamplePeriod": 2000
//},
"GetQtyTot": {
"Method": "Get",
"Url": "gettotalquantity/[[token]]",
"Name": "Contapezzi Assoluto",
"OutVarName": "ContapezziAssoluto",
"ListPrevCall": [ "GetToken" ]
},
"GetQtyReq": {
"Method": "Get",
"Url": "getneededquantity/[[token]]",
"Name": "Qta Richiesta",
"OutVarName": "setPzComm",
"ListPrevCall": [ "GetToken" ]
},
"GetQtyProd": {
"Method": "Get",
"Url": "getworkedquantity/[[token]]",
"Name": "Contapezzi Parziale",
"OutVarName": "ContapezziParziale",
"ListPrevCall": [ "GetToken" ]
},
"GetCycleTime": {
"Method": "Get",
"Url": "getcycletime/[[token]]",
"Name": "tempoCiclo (sec)",
"OutVarName": "LastTC",
"ListPrevCall": [ "GetToken" ]
},
"GetProgName": {
"Method": "Get",
"Url": "getmainprogram/[[token]]",
"Name": "Programma MAIN",
"OutVarName": "PROG",
"ListPrevCall": [ "GetToken" ]
},
"GetCurrAlarm": {
"Method": "Get",
"Url": "getalarm/[[token]]",
"Name": "Allarme attivo",
"OutVarName": "AlarmActive",
"ListPrevCall": [ "GetToken" ],
"SamplePeriod": 2000
},
"GetAllAlarmLog": {
"Method": "Get",
"Url": "getallalarmlog/[[token]]",
"Name": "Log Allarmi (last)",
"OutVarName": "",
"ListPrevCall": [ "GetToken" ],
"SamplePeriod": 20000
}
}
}
-1
View File
@@ -1 +0,0 @@

-959
View File
@@ -1,959 +0,0 @@
;------------------------------------------------------------------------------------
; 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
-1
View File
@@ -1 +0,0 @@

+7 -9
View File
@@ -193,9 +193,16 @@
<None Include="DATA\CONF\FTP-PING.ini">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\GIACO_ICOEL_002.ini" />
<None Include="DATA\CONF\GIACO_ICOEL_002.json" />
<None Include="DATA\CONF\IMI_GOMBA.ini" />
<None Include="DATA\CONF\IMI_GOMBA.json" />
<None Include="DATA\CONF\IOB.ini">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\L020.ini" />
<None Include="DATA\CONF\L020.json" />
<None Include="DATA\CONF\L020_Rest.wrong.json" />
<None Include="DATA\CONF\MAIN.ini">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
@@ -214,15 +221,6 @@
<None Include="DATA\CONF\SIMUL_01_WD.ini">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\DAT\PersistData.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\DAT\SimData.dat">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\HIST\.placeholder">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="NLog.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>