diff --git a/IOB-WIN-FILE.sln b/IOB-WIN-FILE.sln new file mode 100644 index 00000000..a62eceed --- /dev/null +++ b/IOB-WIN-FILE.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-KAVASAKI.sln b/IOB-WIN-KAVASAKI.sln new file mode 100644 index 00000000..a62eceed --- /dev/null +++ b/IOB-WIN-KAVASAKI.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-NEXT/AdapterFormNext.cs b/IOB-WIN-NEXT/AdapterFormNext.cs index b833faf7..418652c6 100644 --- a/IOB-WIN-NEXT/AdapterFormNext.cs +++ b/IOB-WIN-NEXT/AdapterFormNext.cs @@ -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); diff --git a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj index 56653fd8..257f6b78 100644 --- a/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj +++ b/IOB-WIN-NEXT/IOB-WIN-NEXT.csproj @@ -388,7 +388,6 @@ Form - Form @@ -412,32 +411,14 @@ TestForm.cs - - - - - - - - - - - Always - - - - - - - @@ -446,15 +427,9 @@ Always - - Always - - - - @@ -516,17 +491,6 @@ True PreserveNewest - - - - - - - - - - - @@ -554,16 +518,6 @@ Always - - - - - - - - - - @@ -571,8 +525,6 @@ - - Always diff --git a/IOB-WIN-OMRON.sln b/IOB-WIN-OMRON.sln new file mode 100644 index 00000000..a62eceed --- /dev/null +++ b/IOB-WIN-OMRON.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-OPC-UA/IOB-WIN-OPC-UA.csproj b/IOB-WIN-OPC-UA/IOB-WIN-OPC-UA.csproj index a77f7ab5..ab5c13f9 100644 --- a/IOB-WIN-OPC-UA/IOB-WIN-OPC-UA.csproj +++ b/IOB-WIN-OPC-UA/IOB-WIN-OPC-UA.csproj @@ -224,6 +224,7 @@ + @@ -293,7 +294,6 @@ Always - Always @@ -316,9 +316,7 @@ IOB-WIN-FORM - - - + diff --git a/IOB-WIN-OPC-UA/IobOpc/OpcUaSiemens.cs b/IOB-WIN-OPC-UA/IobOpc/OpcUaSiemens.cs index 9a7bd20a..615d9862 100644 --- a/IOB-WIN-OPC-UA/IobOpc/OpcUaSiemens.cs +++ b/IOB-WIN-OPC-UA/IobOpc/OpcUaSiemens.cs @@ -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"); } } diff --git a/IOB-WIN-OPC-UA/Readme/ToDo.txt b/IOB-WIN-OPC-UA/Readme/ToDo.txt deleted file mode 100644 index 161ff489..00000000 --- a/IOB-WIN-OPC-UA/Readme/ToDo.txt +++ /dev/null @@ -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 \ No newline at end of file diff --git a/IOB-WIN-OSAI.sln b/IOB-WIN-OSAI.sln new file mode 100644 index 00000000..a62eceed --- /dev/null +++ b/IOB-WIN-OSAI.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-SQL/AdapterFormNext.cs b/IOB-WIN-SQL/AdapterFormNext.cs index ab41fb52..ae446f83 100644 --- a/IOB-WIN-SQL/AdapterFormNext.cs +++ b/IOB-WIN-SQL/AdapterFormNext.cs @@ -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; diff --git a/IOB-WIN-SQL/DATA/CONF/GIACO_ICOEL_003.ini b/IOB-WIN-SQL/DATA/CONF/GIACO_ICOEL_003.ini new file mode 100644 index 00000000..32c69ff3 --- /dev/null +++ b/IOB-WIN-SQL/DATA/CONF/GIACO_ICOEL_003.ini @@ -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 diff --git a/IOB-WIN-SQL/DATA/CONF/GIACO_ICOEL_003.json b/IOB-WIN-SQL/DATA/CONF/GIACO_ICOEL_003.json new file mode 100644 index 00000000..479d6927 --- /dev/null +++ b/IOB-WIN-SQL/DATA/CONF/GIACO_ICOEL_003.json @@ -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 + } +} diff --git a/IOB-WIN-SQL/DATA/CONF/IMI_PAMA_392.ini b/IOB-WIN-SQL/DATA/CONF/IMI_PAMA_392.ini new file mode 100644 index 00000000..e24c4d98 --- /dev/null +++ b/IOB-WIN-SQL/DATA/CONF/IMI_PAMA_392.ini @@ -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 \ No newline at end of file diff --git a/IOB-WIN-SQL/DATA/CONF/IMI_PAMA_392.json b/IOB-WIN-SQL/DATA/CONF/IMI_PAMA_392.json new file mode 100644 index 00000000..898e2595 --- /dev/null +++ b/IOB-WIN-SQL/DATA/CONF/IMI_PAMA_392.json @@ -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 + //} + } +} diff --git a/IOB-WIN-SQL/DATA/CONF/IMI_SOITAAB_Z2342_01.ini b/IOB-WIN-SQL/DATA/CONF/IMI_SOITAAB_Z2342_01.ini new file mode 100644 index 00000000..3c53fb69 --- /dev/null +++ b/IOB-WIN-SQL/DATA/CONF/IMI_SOITAAB_Z2342_01.ini @@ -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 \ No newline at end of file diff --git a/IOB-WIN-SQL/DATA/CONF/IMI_SOITAAB_Z2342_01.json b/IOB-WIN-SQL/DATA/CONF/IMI_SOITAAB_Z2342_01.json new file mode 100644 index 00000000..b689eced --- /dev/null +++ b/IOB-WIN-SQL/DATA/CONF/IMI_SOITAAB_Z2342_01.json @@ -0,0 +1,10 @@ +{ + "mMapWrite": { + }, + "mMapRead": { + }, + "optKVP": { + //"path-remBase": "C:\\Temp" + "path-remBase": "\\\\ecs900\\Logs" + } +} \ No newline at end of file diff --git a/IOB-WIN-SQL/DATA/CONF/IMI_SOITAAB_Z2342_02.ini b/IOB-WIN-SQL/DATA/CONF/IMI_SOITAAB_Z2342_02.ini new file mode 100644 index 00000000..1055e433 --- /dev/null +++ b/IOB-WIN-SQL/DATA/CONF/IMI_SOITAAB_Z2342_02.ini @@ -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 \ No newline at end of file diff --git a/IOB-WIN-SQL/DATA/CONF/IMI_SOITAAB_Z2342_02.json b/IOB-WIN-SQL/DATA/CONF/IMI_SOITAAB_Z2342_02.json new file mode 100644 index 00000000..b689eced --- /dev/null +++ b/IOB-WIN-SQL/DATA/CONF/IMI_SOITAAB_Z2342_02.json @@ -0,0 +1,10 @@ +{ + "mMapWrite": { + }, + "mMapRead": { + }, + "optKVP": { + //"path-remBase": "C:\\Temp" + "path-remBase": "\\\\ecs900\\Logs" + } +} \ No newline at end of file diff --git a/IOB-WIN-SQL/IOB-WIN-SQL.csproj b/IOB-WIN-SQL/IOB-WIN-SQL.csproj index 2c767b1d..6df523f8 100644 --- a/IOB-WIN-SQL/IOB-WIN-SQL.csproj +++ b/IOB-WIN-SQL/IOB-WIN-SQL.csproj @@ -132,6 +132,7 @@ + Form @@ -164,6 +165,14 @@ Always + + + + + + + + Always diff --git a/IOB-WIN-SQL/Iob/IobFileSoitaab.cs b/IOB-WIN-SQL/Iob/IobFileSoitaab.cs new file mode 100644 index 00000000..d998f30e --- /dev/null +++ b/IOB-WIN-SQL/Iob/IobFileSoitaab.cs @@ -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 +{ + /// + /// 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: --> sigLog + /// --> fluxLog + /// + + public class IobFileSoitaab : Iob.GenericNext + { + #region Public Constructors + + /// + /// Costruttore dell'IOB FileBased SOITAAB + /// + /// AdapterForm chiamante + /// Configurazione IOB per avvio + 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 + + /// + /// Implementazione custom esecuzione task specifici + /// + /// + /// + public override Dictionary executeTasks(Dictionary task2exe) + { + DateTime adesso = DateTime.Now; + // NON fa nulla... anche se non dovrebbe richiamarlo + Dictionary taskDone = new Dictionary(); + lastReadPLC = DateTime.Now; + return taskDone; + } + + /// + /// Recupero dati dinamici... + /// + public override Dictionary getDynData() + { + DateTime adesso = DateTime.Now; + // dizionario vuoto / faccio direttamente accodamento in FluxLog + Dictionary outVal = new Dictionary(); + // processo ed accodo! + processFluxLogTable(adesso); + lastReadPLC = DateTime.Now; + return outVal; + } + + /// + /// Effettua lettura semafori principale Parametri da + /// aggiornare x display in form + /// + 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; + } + } + + /// + /// Override connessione + /// + public override void tryConnect() + { + if (!connectionOk) + { + // controllo che il ping sia stato tentato almeno pingTestSec fa... + if (DateTime.Now.Subtract(lastPING).TotalSeconds > utils.CRI("pingTestSec")) + { + if (verboseLog || periodicLog) + { + lgInfo("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 + /// + /// Stato di sync delle tab gestite + /// + protected List elencoSyncState { get; set; } = new List(); +#endif + + #endregion Protected Properties + + #region Protected Methods + + /// + /// Conversione string row in log generico + /// + /// + /// + 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; + } + + /// + /// Recupera file log da analizzare + /// + /// + 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; + } + + /// + /// Esegue processing + invio dati tab SignLog + /// + /// + /// + 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(); + // fatto! + fatto = true; + } + return fatto; + } + + /// + /// Esegue processing + invio dati tab ProdData + /// + /// + /// + private bool processProdDataTable(DateTime adesso) + { + bool fatto = false; + return fatto; + } + + /// + /// Esegue processing + invio dati tab SignLog + /// + /// + /// + private bool processSignLogTable(DateTime adesso) + { + bool fatto = false; + // init oggetto x processing + Dictionary sigLogFromFile = new Dictionary(); + // 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 logNew = new List(); + List sigLogData = new List(); + List logLast = getGenLogFromMachineLog(fileLast); + List 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 elencoProdBatch = new List(); + 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 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 + } +} \ No newline at end of file diff --git a/IOB-WIN-WS/DATA/CONF/GIACO_ICOEL_002.ini b/IOB-WIN-WS/DATA/CONF/GIACO_ICOEL_002.ini new file mode 100644 index 00000000..9ced4fca --- /dev/null +++ b/IOB-WIN-WS/DATA/CONF/GIACO_ICOEL_002.ini @@ -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 diff --git a/IOB-WIN-WS/DATA/CONF/GIACO_ICOEL_002.json b/IOB-WIN-WS/DATA/CONF/GIACO_ICOEL_002.json new file mode 100644 index 00000000..df6898b4 --- /dev/null +++ b/IOB-WIN-WS/DATA/CONF/GIACO_ICOEL_002.json @@ -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 + } + } +} \ No newline at end of file diff --git a/IOB-WIN-WS/DATA/CONF/IMI_GOMBA.ini b/IOB-WIN-WS/DATA/CONF/IMI_GOMBA.ini new file mode 100644 index 00000000..abcc3af2 --- /dev/null +++ b/IOB-WIN-WS/DATA/CONF/IMI_GOMBA.ini @@ -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 \ No newline at end of file diff --git a/IOB-WIN-WS/DATA/CONF/IMI_GOMBA.json b/IOB-WIN-WS/DATA/CONF/IMI_GOMBA.json new file mode 100644 index 00000000..da14d2eb --- /dev/null +++ b/IOB-WIN-WS/DATA/CONF/IMI_GOMBA.json @@ -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 + } +} diff --git a/IOB-WIN-WS/DATA/CONF/L020.ini b/IOB-WIN-WS/DATA/CONF/L020.ini new file mode 100644 index 00000000..68d6a858 --- /dev/null +++ b/IOB-WIN-WS/DATA/CONF/L020.ini @@ -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 \ No newline at end of file diff --git a/IOB-WIN-WS/DATA/CONF/L020.json b/IOB-WIN-WS/DATA/CONF/L020.json new file mode 100644 index 00000000..16b0469d --- /dev/null +++ b/IOB-WIN-WS/DATA/CONF/L020.json @@ -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" ] + } + } +} \ No newline at end of file diff --git a/IOB-WIN-WS/DATA/CONF/L020_Rest.wrong.json b/IOB-WIN-WS/DATA/CONF/L020_Rest.wrong.json new file mode 100644 index 00000000..7d130a3b --- /dev/null +++ b/IOB-WIN-WS/DATA/CONF/L020_Rest.wrong.json @@ -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 + } + } +} \ No newline at end of file diff --git a/IOB-WIN-WS/DATA/DAT/PersistData.dat b/IOB-WIN-WS/DATA/DAT/PersistData.dat deleted file mode 100644 index 5f282702..00000000 --- a/IOB-WIN-WS/DATA/DAT/PersistData.dat +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/IOB-WIN-WS/DATA/DAT/SimData.dat b/IOB-WIN-WS/DATA/DAT/SimData.dat deleted file mode 100644 index c59e4823..00000000 --- a/IOB-WIN-WS/DATA/DAT/SimData.dat +++ /dev/null @@ -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 \ No newline at end of file diff --git a/IOB-WIN-WS/DATA/HIST/.placeholder b/IOB-WIN-WS/DATA/HIST/.placeholder deleted file mode 100644 index 5f282702..00000000 --- a/IOB-WIN-WS/DATA/HIST/.placeholder +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/IOB-WIN-WS/IOB-WIN-WS.csproj b/IOB-WIN-WS/IOB-WIN-WS.csproj index dda7835f..70c1b4fb 100644 --- a/IOB-WIN-WS/IOB-WIN-WS.csproj +++ b/IOB-WIN-WS/IOB-WIN-WS.csproj @@ -193,9 +193,16 @@ Always + + + + Always + + + Always @@ -214,15 +221,6 @@ Always - - Always - - - Always - - - Always - Always