From 20dd87a9d006e2e5772ae35535e9a66dd2982fff Mon Sep 17 00:00:00 2001 From: chi Date: Thu, 24 Apr 2025 16:24:01 +0900 Subject: [PATCH] .. --- Cs_HMI/AGVCSharp.sln | 41 +- Cs_HMI/Project/AGV4 - Backup.csproj | 63 ++ Cs_HMI/Project/AGV4.csproj | 585 ++---------------- Cs_HMI/Project/AGV4.csproj.bak | 67 ++ Cs_HMI/Project/CSetting.cs | 8 +- Cs_HMI/Project/Class/CResult.cs | 2 +- Cs_HMI/Project/Class/EEMStatus.cs | 2 +- Cs_HMI/Project/Device/Xbee.cs | 250 ++++++-- Cs_HMI/Project/Dialog/fSystem.cs | 15 +- Cs_HMI/Project/Dialog/fUpdateForm.cs | 22 +- Cs_HMI/Project/Dialog/fVolume.cs | 14 +- Cs_HMI/Project/Manager/DataBaseManager.cs | 8 +- Cs_HMI/Project/PUB.cs | 99 ++- Cs_HMI/Project/Program.cs | 17 +- Cs_HMI/Project/Properties/AssemblyInfo.cs | 36 -- .../Project/Properties/Settings.Designer.cs | 16 +- Cs_HMI/Project/Properties/Settings.settings | 10 +- Cs_HMI/Project/Properties/launchSettings.json | 8 + Cs_HMI/Project/StateMachine/Step/_SM_RUN.cs | 2 +- .../StateMachine/Step/_SM_RUN_CHGOFF.cs | 2 +- .../StateMachine/Step/_SM_RUN_GOCHARGE.cs | 2 +- .../Step/_SM_RUN_GOCHARGECHECK.cs | 2 +- .../StateMachine/Step/_SM_RUN_GODOWN.cs | 2 +- .../StateMachine/Step/_SM_RUN_GOHOME.cs | 2 +- .../Project/StateMachine/Step/_SM_RUN_GOUP.cs | 2 +- .../Project/StateMachine/Step/_SM_RUN_INIT.cs | 1 - .../StateMachine/Step/_SM_RUN_READY.cs | 2 +- .../StateMachine/Step/_SM_RUN_RESET.cs | 2 +- .../Project/StateMachine/Step/_SM_RUN_SYNC.cs | 2 +- .../Project/StateMachine/Step/_STEP_CLOSE.cs | 2 +- Cs_HMI/Project/StateMachine/_AGV.cs | 2 +- Cs_HMI/Project/StateMachine/_AGV.resx | 120 ++++ Cs_HMI/Project/StateMachine/_BMS.cs | 2 +- Cs_HMI/Project/StateMachine/_DIO.cs | 345 +++++------ Cs_HMI/Project/StateMachine/_Flag.cs | 12 +- Cs_HMI/Project/StateMachine/_Loop.cs | 8 +- Cs_HMI/Project/StateMachine/_SPS.cs | 2 +- Cs_HMI/Project/StateMachine/_TMDisplay.cs | 8 +- Cs_HMI/Project/ViewForm/fAgv.cs | 1 - Cs_HMI/Project/ViewForm/fAuto.cs | 4 +- Cs_HMI/Project/ViewForm/fBms.cs | 1 - Cs_HMI/Project/ViewForm/fFlag.cs | 1 - Cs_HMI/Project/ViewForm/fIO.cs | 62 +- Cs_HMI/Project/app.config | 12 + Cs_HMI/Project/fMain.cs | 13 +- Cs_HMI/Project/fSetup.cs | 11 +- Cs_HMI/Project/run.bat | 4 + Cs_HMI/StateMachine/EnumStruct.cs | 138 ++--- Cs_HMI/StateMachine/EventArgs.cs | 2 +- Cs_HMI/StateMachine/StateMachine.cs | 2 +- Cs_HMI/StateMachine/StateMachine.csproj | 2 +- Cs_HMI/SubProject/AGV/Narumi.cs | 1 - Cs_HMI/SubProject/MSSQLCommand/Monitor.cs | 1 - .../TestProject/Test_ProPLC/Test_PLC.csproj | 4 - Cs_HMI/run.bat | 2 + 55 files changed, 961 insertions(+), 1085 deletions(-) create mode 100644 Cs_HMI/Project/AGV4 - Backup.csproj create mode 100644 Cs_HMI/Project/AGV4.csproj.bak delete mode 100644 Cs_HMI/Project/Properties/AssemblyInfo.cs create mode 100644 Cs_HMI/Project/Properties/launchSettings.json create mode 100644 Cs_HMI/Project/StateMachine/_AGV.resx create mode 100644 Cs_HMI/Project/run.bat create mode 100644 Cs_HMI/run.bat diff --git a/Cs_HMI/AGVCSharp.sln b/Cs_HMI/AGVCSharp.sln index 758792a..60edcdc 100644 --- a/Cs_HMI/AGVCSharp.sln +++ b/Cs_HMI/AGVCSharp.sln @@ -3,7 +3,10 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.9.34714.143 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AGV4", "Project\AGV4.csproj", "{65F3E762-800C-499E-862F-A535642EC59F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AGV4", "Project\AGV4.csproj", "{65F3E762-800C-499E-862F-A535642EC59F}" + ProjectSection(ProjectDependencies) = postProject + {16BD025D-CB0F-4A4B-A452-8FE629F02F0C} = {16BD025D-CB0F-4A4B-A452-8FE629F02F0C} + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "arControl", "SubProject\arCtl\arControl.csproj", "{F31C242C-1B15-4518-9733-48558499FE4B}" EndProject @@ -27,10 +30,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BMS", "SubProject\BMS\BMS.c EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SWPatch", "SubProject\Patch\SWPatch.csproj", "{37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Emulator", "Emulator\Emulator.csproj", "{00BBEF50-3899-4BF1-82E0-DF065CB2A88C}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PLC.Net45", "SubProject\ProPLC\PLC.Net45.csproj", "{476C8E64-7B6B-4554-ACA2-04302715750F}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NARUMI", "SubProject\AGV\NARUMI.csproj", "{8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommData", "SubProject\CommData\CommData.csproj", "{14E8C9A5-013E-49BA-B435-EFEFC77DD623}" @@ -107,7 +106,6 @@ Global {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Release|x86.ActiveCfg = Release|Any CPU {8CB883C0-99C3-4DD4-B017-F9B92010A806}.Release|x86.Build.0 = Release|Any CPU {2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Debug|Any CPU.Build.0 = Debug|Any CPU {2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Debug|x64.ActiveCfg = Debug|Any CPU {2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Debug|x64.Build.0 = Debug|Any CPU {2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Debug|x86.ActiveCfg = Debug|Any CPU @@ -119,7 +117,6 @@ Global {2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Release|x86.ActiveCfg = Release|Any CPU {2CDAD6D3-2D25-4604-A46C-EDEC0EB308D8}.Release|x86.Build.0 = Release|Any CPU {9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Debug|Any CPU.Build.0 = Debug|Any CPU {9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Debug|x64.ActiveCfg = Debug|Any CPU {9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Debug|x64.Build.0 = Debug|Any CPU {9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Debug|x86.ActiveCfg = Debug|Any CPU @@ -131,7 +128,6 @@ Global {9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Release|x86.ActiveCfg = Release|Any CPU {9C027BF1-289F-4CC8-83F0-CB2B975C39C2}.Release|x86.Build.0 = Release|Any CPU {CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E}.Debug|Any CPU.Build.0 = Debug|Any CPU {CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E}.Debug|x64.ActiveCfg = Debug|Any CPU {CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E}.Debug|x64.Build.0 = Debug|Any CPU {CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E}.Debug|x86.ActiveCfg = Debug|Any CPU @@ -155,7 +151,6 @@ Global {7A94C30C-6772-4F71-BF9C-0DF071A1BC70}.Release|x86.ActiveCfg = Release|Any CPU {7A94C30C-6772-4F71-BF9C-0DF071A1BC70}.Release|x86.Build.0 = Release|Any CPU {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Debug|Any CPU.Build.0 = Debug|Any CPU {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Debug|x64.ActiveCfg = Debug|Any CPU {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Debug|x64.Build.0 = Debug|Any CPU {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Debug|x86.ActiveCfg = Debug|Any CPU @@ -166,30 +161,6 @@ Global {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Release|x64.Build.0 = Release|Any CPU {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Release|x86.ActiveCfg = Release|Any CPU {37DC0BAE-50BF-41E4-BAAB-B0E211467AD1}.Release|x86.Build.0 = Release|Any CPU - {00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Debug|x64.ActiveCfg = Debug|Any CPU - {00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Debug|x64.Build.0 = Debug|Any CPU - {00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Debug|x86.ActiveCfg = Debug|Any CPU - {00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Debug|x86.Build.0 = Debug|Any CPU - {00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Release|Any CPU.Build.0 = Release|Any CPU - {00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Release|x64.ActiveCfg = Release|Any CPU - {00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Release|x64.Build.0 = Release|Any CPU - {00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Release|x86.ActiveCfg = Release|Any CPU - {00BBEF50-3899-4BF1-82E0-DF065CB2A88C}.Release|x86.Build.0 = Release|Any CPU - {476C8E64-7B6B-4554-ACA2-04302715750F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {476C8E64-7B6B-4554-ACA2-04302715750F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {476C8E64-7B6B-4554-ACA2-04302715750F}.Debug|x64.ActiveCfg = Debug|Any CPU - {476C8E64-7B6B-4554-ACA2-04302715750F}.Debug|x64.Build.0 = Debug|Any CPU - {476C8E64-7B6B-4554-ACA2-04302715750F}.Debug|x86.ActiveCfg = Debug|Any CPU - {476C8E64-7B6B-4554-ACA2-04302715750F}.Debug|x86.Build.0 = Debug|Any CPU - {476C8E64-7B6B-4554-ACA2-04302715750F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {476C8E64-7B6B-4554-ACA2-04302715750F}.Release|Any CPU.Build.0 = Release|Any CPU - {476C8E64-7B6B-4554-ACA2-04302715750F}.Release|x64.ActiveCfg = Release|Any CPU - {476C8E64-7B6B-4554-ACA2-04302715750F}.Release|x64.Build.0 = Release|Any CPU - {476C8E64-7B6B-4554-ACA2-04302715750F}.Release|x86.ActiveCfg = Release|Any CPU - {476C8E64-7B6B-4554-ACA2-04302715750F}.Release|x86.Build.0 = Release|Any CPU {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Debug|Any CPU.Build.0 = Debug|Any CPU {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -215,7 +186,6 @@ Global {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|x86.ActiveCfg = Release|Any CPU {14E8C9A5-013E-49BA-B435-EFEFC77DD623}.Release|x86.Build.0 = Release|Any CPU {EB77976F-4DE4-46A5-8B25-D07226204C32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EB77976F-4DE4-46A5-8B25-D07226204C32}.Debug|Any CPU.Build.0 = Debug|Any CPU {EB77976F-4DE4-46A5-8B25-D07226204C32}.Debug|x64.ActiveCfg = Debug|Any CPU {EB77976F-4DE4-46A5-8B25-D07226204C32}.Debug|x64.Build.0 = Debug|Any CPU {EB77976F-4DE4-46A5-8B25-D07226204C32}.Debug|x86.ActiveCfg = Debug|Any CPU @@ -227,7 +197,6 @@ Global {EB77976F-4DE4-46A5-8B25-D07226204C32}.Release|x86.ActiveCfg = Release|Any CPU {EB77976F-4DE4-46A5-8B25-D07226204C32}.Release|x86.Build.0 = Release|Any CPU {AAF68D20-4590-4AB0-BB91-E0DD04C91DEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AAF68D20-4590-4AB0-BB91-E0DD04C91DEC}.Debug|Any CPU.Build.0 = Debug|Any CPU {AAF68D20-4590-4AB0-BB91-E0DD04C91DEC}.Debug|x64.ActiveCfg = Debug|Any CPU {AAF68D20-4590-4AB0-BB91-E0DD04C91DEC}.Debug|x64.Build.0 = Debug|Any CPU {AAF68D20-4590-4AB0-BB91-E0DD04C91DEC}.Debug|x86.ActiveCfg = Debug|Any CPU @@ -274,8 +243,6 @@ Global {9C027BF1-289F-4CC8-83F0-CB2B975C39C2} = {7AF32085-E7A6-4D06-BA6E-C6B1EBAEA99A} {CE3FFF9F-6ACA-44BD-B64A-33FF4AD5E82E} = {7AF32085-E7A6-4D06-BA6E-C6B1EBAEA99A} {7A94C30C-6772-4F71-BF9C-0DF071A1BC70} = {C423C39A-44E7-4F09-B2F7-7943975FF948} - {00BBEF50-3899-4BF1-82E0-DF065CB2A88C} = {7AF32085-E7A6-4D06-BA6E-C6B1EBAEA99A} - {476C8E64-7B6B-4554-ACA2-04302715750F} = {C423C39A-44E7-4F09-B2F7-7943975FF948} {8BAE0EAC-3D25-402F-9A65-2BA1ECFE28B7} = {C423C39A-44E7-4F09-B2F7-7943975FF948} {14E8C9A5-013E-49BA-B435-EFEFC77DD623} = {C423C39A-44E7-4F09-B2F7-7943975FF948} {EB77976F-4DE4-46A5-8B25-D07226204C32} = {7AF32085-E7A6-4D06-BA6E-C6B1EBAEA99A} diff --git a/Cs_HMI/Project/AGV4 - Backup.csproj b/Cs_HMI/Project/AGV4 - Backup.csproj new file mode 100644 index 0000000..0f2b449 --- /dev/null +++ b/Cs_HMI/Project/AGV4 - Backup.csproj @@ -0,0 +1,63 @@ + + + + WinExe + net8.0-windows + enable + true + enable + x64 + D:\Amkor\AGV4 + + + + + + + + + + + + + + + + + + + + True + True + Settings.settings + + + + + + PreserveNewest + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + lib\Winsock_Orcas.dll + + + lib\EEProtocol.dll + + + lib\arUtil.dll + + + + + + + + + \ No newline at end of file diff --git a/Cs_HMI/Project/AGV4.csproj b/Cs_HMI/Project/AGV4.csproj index 34cda61..88024fb 100644 --- a/Cs_HMI/Project/AGV4.csproj +++ b/Cs_HMI/Project/AGV4.csproj @@ -1,545 +1,70 @@  - - + - Debug - AnyCPU - {65F3E762-800C-499E-862F-A535642EC59F} WinExe - Project - Amkor - v4.8 - 512 - 게시\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - False - False - False - OnBuildSuccess - False - False - False - obj\$(Configuration)\ - - - - x86 - true - Full - False - ..\..\..\..\..\Amkor\AGV4\ - DEBUG;TRACE - prompt - 4 - false - IDE1006 - - - AnyCPU - pdbonly - true - ..\..\..\ManualMapEditor\ - TRACE - prompt - 4 - false - - - icons8-split-64.ico - - - LocalIntranet - - - false - - - - true - ..\..\..\..\Amkor\OTP2DReading\ - DEBUG;TRACE - full + net8.0-windows + enable + true + enable x64 - prompt - MinimumRecommendedRules.ruleset - false + D:\Amkor\AGV4 + Amkor + AGV4 + Amkor AGV4 + 25.04.24.1500 + 25.04.24.1500 - - bin\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - false + + 1701;1702;8622 - - Project - False - obj\ - - - 4194304 - False - Auto + + 1701;1702;8622 + + + + + + + + + + + + + + + + + + + True + True + Settings.settings + + + + + + PreserveNewest + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + - - False - ..\DLL\ArLog.Net4.dll - - - False - ..\DLL\ArSetting.Net4.dll - - - ..\packages\Ionic.Zip.1.9.1.8\lib\Ionic.Zip.dll - - - False - C:\Program Files (x86)\Microsoft SDKs\Speech\v11.0\Assembly\Microsoft.Speech.dll - - - - - - - - - - - - - - - ..\DLL\Winsock Orcas.dll + - - - - Component - - - CtlAuto.cs - - - Component - - - CtlPos.cs - - - - - - DataSet1.xsd - - - True - True - DataSet1.xsd - - - - - Component - - - - Form - - - fCounter.cs - - - Form - - - fUpdateForm.cs - - - Form - - - fLog.cs - - - Form - - - fJobSelect.cs - - - Form - - - fSystem.cs - - - Form - - - Form - - - fVolume.cs - - - Form - - - fMessageWindow.cs - - - Form - - - fTouchKey.cs - - - Form - - - fTouchKeyFull.cs - - - Form - - - fTouchNumDot.cs - - - Form - - - fPassword.cs - - - Form - - - fErrorException.cs - - - Form - - - fMain.cs - - - - - - - - - - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - - - Form - - - fBms.cs - - - Form - - - fAuto.cs - - - Form - - - fAgv.cs - - - Form - - - fFlag.cs - - - Form - - - fIO.cs - - - Form - - - fSetup.cs - - - Form - - - fManual.cs - - - fCounter.cs - - - fUpdateForm.cs - - - fLog.cs - - - fJobSelect.cs - - - fSystem.cs - - - fVolume.cs - - - fMessageWindow.cs - - - fTouchKey.cs - - - fTouchKeyFull.cs - - - fTouchNumDot.cs - - - fPassword.cs - - - fErrorException.cs - - - fMain.cs - Designer - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - fBms.cs - - - fAuto.cs - - - fAgv.cs - - - fFlag.cs - - - fIO.cs - - - fSetup.cs - - - fManual.cs - - - - DataSet1.xsd - - - Designer - MSDataSetGenerator - DataSet1.Designer.cs - - - DataSet1.xsd - Designer - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - + + + + + - - - - - - - - - - - - - - - - - - - - False - Microsoft .NET Framework 4%28x86 및 x64%29 - true - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - false - - - False - Windows Installer 4.5 - true - - - - - {16bd025d-cb0f-4a4b-a452-8fe629f02f0c} - ENIGProtocol - - - {8cb883c0-99c3-4dd4-b017-f9b92010a806} - agvControl - - - {8bae0eac-3d25-402f-9a65-2ba1ecfe28b7} - NARUMI - - - {7a94c30c-6772-4f71-bf9c-0df071a1bc70} - BMS - - - {bbc9bccf-6262-4355-9cc2-37ff678ac499} - StateMachine - - - {f31c242c-1b15-4518-9733-48558499fe4b} - arControl - - - {a16c9667-5241-4313-888e-548375f85d29} - arFrameControl - - - {14e8c9a5-013e-49ba-b435-efefc77dd623} - CommData - - - {14e8c9a5-013e-49ba-b435-ffffff7dd623} - arCommUtil - - - {476c8e64-7b6b-4554-aca2-04302715750f} - PLC.Net45 - - - - - - rem xcopy "$(TargetDir)*.exe" "\\192.168.1.80\Amkor\AGV2" /Y -rem xcopy "$(TargetDir)*.dll" "\\192.168.1.80\Amkor\AGV2" /Y - \ No newline at end of file diff --git a/Cs_HMI/Project/AGV4.csproj.bak b/Cs_HMI/Project/AGV4.csproj.bak new file mode 100644 index 0000000..083f694 --- /dev/null +++ b/Cs_HMI/Project/AGV4.csproj.bak @@ -0,0 +1,67 @@ + + + + WinExe + net8.0-windows + Project + Amkor + true + enable + enable + icons8-split-64.ico + x64 + False + False + False + IDE1006 + + + + ..\..\..\..\..\Amkor\AGV4\ + DEBUG;TRACE + x64 + + + + ..\..\..\ManualMapEditor\ + TRACE + x64 + + + + ..\..\..\..\Amkor\OTP2DReading\ + DEBUG;TRACE + + + + bin\ + TRACE + + + + + + + + + + + + + + + + + + + + + + + + + + PreserveNewest + + + \ No newline at end of file diff --git a/Cs_HMI/Project/CSetting.cs b/Cs_HMI/Project/CSetting.cs index d0e4f0d..764ca34 100644 --- a/Cs_HMI/Project/CSetting.cs +++ b/Cs_HMI/Project/CSetting.cs @@ -4,9 +4,9 @@ using System.Linq; using System.Text; using System.ComponentModel; using System.Drawing.Design; -using System.Management; using System.Runtime.CompilerServices; -using System.Security.RightsManagement; +using System.Management; +using System.IO.Ports; namespace Project { @@ -65,7 +65,7 @@ namespace Project } } - public class CSetting : arUtil.Setting + public class CSetting : AR.Setting { #region "log" @@ -454,7 +454,7 @@ namespace Project } - public class CounterSetting : arUtil.Setting, INotifyPropertyChanged + public class CounterSetting : AR.Setting, INotifyPropertyChanged { public DateTime CountReset { get; set; } diff --git a/Cs_HMI/Project/Class/CResult.cs b/Cs_HMI/Project/Class/CResult.cs index 76da243..abe0b06 100644 --- a/Cs_HMI/Project/Class/CResult.cs +++ b/Cs_HMI/Project/Class/CResult.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; -using static Project.StateMachine; +using Project.StateMachine; namespace Project { diff --git a/Cs_HMI/Project/Class/EEMStatus.cs b/Cs_HMI/Project/Class/EEMStatus.cs index edc1653..7d14c78 100644 --- a/Cs_HMI/Project/Class/EEMStatus.cs +++ b/Cs_HMI/Project/Class/EEMStatus.cs @@ -1,5 +1,6 @@ using Project; using Project.Device; +using Project.StateMachine; using System; using System.Collections.Generic; using System.Linq; @@ -8,7 +9,6 @@ using System.Net; using System.Net.NetworkInformation; using System.Text; using System.Threading.Tasks; -using static Project.StateMachine; /// /// ============================================================================ diff --git a/Cs_HMI/Project/Device/Xbee.cs b/Cs_HMI/Project/Device/Xbee.cs index 4369354..ea0f38d 100644 --- a/Cs_HMI/Project/Device/Xbee.cs +++ b/Cs_HMI/Project/Device/Xbee.cs @@ -5,15 +5,15 @@ using System.Text; using System.ComponentModel; using System.Threading; using COMM; -using System.Runtime.Remoting.Messaging; using ENIG; using System.Security.Cryptography; using AR; -using System.Web.Compilation; +using System.IO.Ports; +using System.Security.Cryptography.X509Certificates; namespace Project.Device { - public class Xbee : System.IO.Ports.SerialPort + public class Xbee : SerialPort { public string buffer = string.Empty; public System.Text.StringBuilder newbuffer = new StringBuilder(); @@ -35,6 +35,181 @@ namespace Project.Device proto.OnMessage -= Proto_OnMessage; } + + /// + /// 지그비장치에 데이터를 전송합니다 + /// + /// + /// + public bool Send(byte[] data) + { + try + { + this.Write(data, 0, data.Length); + return true; + } + catch (Exception ex) + { + errorMessage = ex.Message; + return false; + } + } + + public new bool Open() + { + try + { + this.Open(); + return true; + } + catch (Exception ex) + { + errorMessage = ex.Message; + PUB.logxbee.AddE(errorMessage); + return false; + } + } + + private void Proto_OnDataReceived(object sender, EEProtocol.DataEventArgs e) + { + var hexstrRaw = e.ReceivedPacket.RawData.HexString(); + var hexstr = e.ReceivedPacket.Data.HexString(); + var cmd = e.ReceivedPacket.Command.ToString("X2"); + var id = e.ReceivedPacket.ID.ToString("X2"); + PUB.logxbee.Add("RX", $"{hexstrRaw}\nID:{id},CMD:{cmd},DATA:{hexstr}"); + + //TODO : 기능 처리필요 (XBee 메세지 데이터처리) + //PUB.CheckManualChargeMode() : 수동충전확인 + //VAR.BOOL[eVarBool.FLAG_AUTORUN] : 자동실행 + //PUB.Speak("현재 위치는 QA 입니다.") : 음성출력 + + //ACS 수신 데이터 처리(타 장비는 확인하지 않는다) + if (e.ReceivedPacket.ID == 0) + { + var data = e.ReceivedPacket.Data; + switch (e.ReceivedPacket.Command) + { + case 1: //Request PATH + var pathID = data[0]; + var pathPage = data[1]; + + //TODO : 요청받은 맵 데이터를 전송해야한다 + + + break; + case 100: //move to tag + var TargetTag = System.Text.Encoding.Default.GetString(data, 0, 6); + + //1.현재위치에서 경로계산 하여 경로저장 + //2.현재위치를 모를경우 이전 이동 기록을 통해 위치를 추정한다 + //3.대상태그에 맞는 전/후진 방향을 결정하여 이동을 수행한다 + + break; + case 101: //stop + PUB.AGV.AGVMoveStop("xbee"); + break; + case 102: //Error Reset + PUB.AGV.AGVErrorReset(); + break; + case 103: //charing command (0:off, 1:on) + var CharingCmd = data[0]; + + //0.자동모드가 아니라면 실행하지 않는다 + //1.충전프로세스를 시작한다 + //2.1분간 충전진행 신호가 없다면 반대편으로 1TAG이동하여 다시 시도한다 + //3.3회 시도 실패시 오류 데이터를 HOST에 전송한다 + + break; + case 104: //Manual Move (Direction, speed, runtime) + var Direction = data[0]; //0=back, 1=forward, 2=left, 3=right + var Speed = data[1]; //0=slow, 1=normal, 2=fast + var Runtime = data[2]; // running seconds + + arDev.Narumi.ManulOpt opt = arDev.Narumi.ManulOpt.BS; + arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low; + if (Speed == 1) spd = arDev.Narumi.Speed.Mid; + else if (Speed == 2) spd = arDev.Narumi.Speed.High; + + //0.자동모드가 아니라면 실행하지 않는다 + //1.입력된 파라미터로 AGV를 이동한다 + if (Direction == 0) opt = arDev.Narumi.ManulOpt.BS; + else if (Direction == 1) opt = arDev.Narumi.ManulOpt.FS; + else if (Direction == 2) opt = arDev.Narumi.ManulOpt.LT; + else if (Direction == 3) opt = arDev.Narumi.ManulOpt.RT; + + PUB.AGV.AGVMoveManual(opt, spd, arDev.Narumi.Sensor.PBSOn); + break; + case 105: //Set MarkStop + var MarkStop = data[0]; //0=off, 1=on + + //마크센서에서 멈추게 한다 + PUB.AGV.AGVMoveStop("Xbee", arDev.Narumi.eStopOpt.MarkStop); + break; + case 106: //Lift Control + var LiftCommand = data[0]; //0=stop, 1=up, 2=down + arDev.Narumi.LiftCommand LCmd = arDev.Narumi.LiftCommand.STP; + if (LiftCommand == 1) LCmd = arDev.Narumi.LiftCommand.UP; + else if (LiftCommand == 2) LCmd = arDev.Narumi.LiftCommand.DN; + + //리프트제어 + PUB.AGV.LiftControl(LCmd); + break; + + case 107: //clear path + //TODO: 현재 설정된 경로삭제기능 필요 + break; + case 108: //send path + //TODO : 경로정보를 수신받고 페이지가 1을 초과하면 나머지 페이지정보도 요청할 수 있어야 한다 + break; + + + } + } + + + } + private void Proto_OnMessage(object sender, EEProtocol.MessageEventArgs e) + { + if (e.IsError) PUB.log.AddE(e.Message); + else PUB.log.Add(e.Message); + } + + + private void Xbee_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) + { + var dev = sender as System.IO.Ports.SerialPort; + var buffer = new byte[dev.BytesToRead]; + dev.Read(buffer, 0, buffer.Length); + proto.ProcessReceivedData(buffer); + } + /// + /// 이동완료 신호 전송 + /// + /// 목적지태그값 + public void SendMoveComplete(string tag) + { + var id = PUB.setting.XBE_ID; + byte cmd = 2; + var data = System.Text.Encoding.Default.GetBytes(tag); + var packet = proto.CreatePacket(id, cmd, data); + Send(packet); + } + + /// + /// 신규 RFID태그값이 읽혔다면 이명령을 통해서 전송한다 + /// + public void SendRFIDTag(string tag) + { + var id = PUB.setting.XBE_ID; + byte cmd = 3; + var data = System.Text.Encoding.Default.GetBytes(tag); + var packet = proto.CreatePacket(id, cmd, data); + Send(packet); + } + + + + /// /// AGV상태를 Xbee 로 전송한다 /// @@ -82,23 +257,23 @@ namespace Project.Device data[4] = (byte)((VAR.BOOL[eVarBool.FLAG_CHARGEONA] || VAR.BOOL[eVarBool.FLAG_CHARGEONM]) ? 1 : 0); // CartSt - if(PUB.AGV.signal.cart_detect1 && PUB.AGV.signal.cart_detect2) + if (PUB.AGV.signal.cart_detect1 && PUB.AGV.signal.cart_detect2) data[5] = 1; // 센서두개가 모두 감지되는 경우 - else if(PUB.AGV.signal.cart_detect1==false && PUB.AGV.signal.cart_detect2==false) + else if (PUB.AGV.signal.cart_detect1 == false && PUB.AGV.signal.cart_detect2 == false) data[5] = 0; // 센서두개가 모두 감지되지 않는 경우 else data[5] = 2; // 센서하나만 감지되는 경우 // LiftSt - if(PUB.AGV.signal.lift_up) + if (PUB.AGV.signal.lift_up) data[6] = 1; // 위로 올라가는 경우 - else if(PUB.AGV.signal.lift_down) + else if (PUB.AGV.signal.lift_down) data[6] = 0; // 아래로 내려가는 경우 else data[6] = 2; // unknown (기본값) // LastTag - string lastTag = PUB.AGV.data.TagNo.ToString("000000") ?? "000000"; + string lastTag = PUB.AGV.data.TagNo.ToString("000000") ?? "000000"; byte[] tagBytes = Encoding.ASCII.GetBytes(lastTag.PadRight(6, '0')); Array.Copy(tagBytes, 0, data, 7, 6); @@ -114,65 +289,6 @@ namespace Project.Device } } - /// - /// 지그비장치에 데이터를 전송합니다 - /// - /// - /// - public bool Send(byte[] data) - { - try - { - this.Write(data, 0, data.Length); - return true; - }catch (Exception ex) - { - errorMessage = ex.Message; - return false; - } - } - - public new bool Open() - { - try{ - this.Open(); - return true; - }catch (Exception ex) - { - errorMessage = ex.Message; - PUB.logxbee.AddE(errorMessage); - return false; - } - } - - private void Proto_OnDataReceived(object sender, EEProtocol.DataEventArgs e) - { - var hexstrRaw = e.ReceivedPacket.RawData.HexString(); - var hexstr = e.ReceivedPacket.Data.HexString(); - var cmd = e.ReceivedPacket.Command.ToString("X2"); - var id = e.ReceivedPacket.ID.ToString("X2"); - PUB.logxbee.Add("RX", $"{hexstrRaw}\nID:{id},CMD:{cmd},DATA:{hexstr}"); - - //TODO : 기능 처리필요 (XBee 메세지 데이터처리) - //PUB.CheckManualChargeMode() : 수동충전확인 - //VAR.BOOL[eVarBool.FLAG_AUTORUN] : 자동실행 - //PUB.Speak("현재 위치는 QA 입니다.") : 음성출력 - - } - private void Proto_OnMessage(object sender, EEProtocol.MessageEventArgs e) - { - if (e.IsError) PUB.log.AddE(e.Message); - else PUB.log.Add(e.Message); - } - - - private void Xbee_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) - { - var dev = sender as System.IO.Ports.SerialPort; - var buffer = new byte[dev.BytesToRead]; - dev.Read(buffer, 0, buffer.Length); - proto.ProcessReceivedData(buffer); - } } } diff --git a/Cs_HMI/Project/Dialog/fSystem.cs b/Cs_HMI/Project/Dialog/fSystem.cs index df01d81..83347d3 100644 --- a/Cs_HMI/Project/Dialog/fSystem.cs +++ b/Cs_HMI/Project/Dialog/fSystem.cs @@ -7,6 +7,8 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; +using System.IO; +using System.IO.Compression; namespace Project.Dialog { @@ -123,15 +125,20 @@ namespace Project.Dialog Util.MsgE("실행파일 amkor.exe 가 없습니다."); return; } - var zipfile = new Ionic.Zip.ZipFile(); - zipfile.AddFile(file_exe,"/"); + var zipfile = new ZipArchive(new MemoryStream(), ZipArchiveMode.Create); + zipfile.CreateEntryFromFile(file_exe, "amkor.exe"); foreach (var filedll in files_dll) - zipfile.AddFile(filedll.FullName,"/"); + zipfile.CreateEntryFromFile(filedll.FullName, filedll.Name); var veri = Application.ProductVersion.Split('.'); var newfilename = "Patch_AGV_" + veri[0] + veri[1]+ veri[2] + "_" + veri[3] + ".zip"; - zipfile.Save(newfilename); + var entry = zipfile.CreateEntry(newfilename); + using (var entryStream = entry.Open()) + using (var fileStream = new FileStream(newfilename, FileMode.Open)) + { + fileStream.CopyTo(entryStream); + } Util.MsgI("다음 패치 파일이 생성됨\n" + newfilename); } diff --git a/Cs_HMI/Project/Dialog/fUpdateForm.cs b/Cs_HMI/Project/Dialog/fUpdateForm.cs index 7cec84d..d3f3d3e 100644 --- a/Cs_HMI/Project/Dialog/fUpdateForm.cs +++ b/Cs_HMI/Project/Dialog/fUpdateForm.cs @@ -7,6 +7,8 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; +using System.IO; +using System.IO.Compression; namespace Project.Dialog { @@ -211,10 +213,7 @@ namespace Project.Dialog } //해당폴더에 압축을 해제해준다. - var f = new Ionic.Zip.ZipFile(file); - f.ExtractProgress += F_ExtractProgress; - f.ExtractAll(dir_path.FullName); - f.ExtractProgress -= F_ExtractProgress; + ZipFile.ExtractToDirectory(file, dir_path.FullName); //패치정보파일 추가 var infofile = System.IO.Path.Combine(dir_path.FullName, "version.txt"); @@ -231,19 +230,10 @@ namespace Project.Dialog } - private void F_ExtractProgress(object sender, Ionic.Zip.ExtractProgressEventArgs e) + private void F_ExtractProgress(object sender, EventArgs e) { - if(e.TotalBytesToTransfer < 1) - { - lb3.ProgressValue = 0; - } - else - { - var perc = (e.BytesTransferred / e.TotalBytesToTransfer) * 100.0; - this.lb3.ProgressValue = (float)perc; - } - - + // System.IO.Compression은 진행률 이벤트를 제공하지 않으므로 + // 필요한 경우 별도의 진행률 계산 로직을 구현해야 합니다. } private void btNo_Click(object sender, EventArgs e) diff --git a/Cs_HMI/Project/Dialog/fVolume.cs b/Cs_HMI/Project/Dialog/fVolume.cs index 397cbb0..b295573 100644 --- a/Cs_HMI/Project/Dialog/fVolume.cs +++ b/Cs_HMI/Project/Dialog/fVolume.cs @@ -94,14 +94,18 @@ namespace Project.Dialog private void button5_Click(object sender, EventArgs e) { - PUB.mplayer.Volume += 0.1; - PUB.setting.musicvol = (int)(PUB.mplayer.Volume * 100); + var newvol = PUB.setting.musicvol + 10; + if (newvol > 100) newvol = 100; + if (newvol < 0) newvol = 0; + PUB.SetVolume(newvol); } private void button4_Click(object sender, EventArgs e) { - PUB.mplayer.Volume -= 0.1; - PUB.setting.musicvol = (int)(PUB.mplayer.Volume * 100); + var newvol = PUB.setting.musicvol - 10; + if (newvol > 100) newvol = 100; + if (newvol < 0) newvol = 0; + PUB.SetVolume(newvol); } private void button7_Click(object sender, EventArgs e) @@ -118,7 +122,7 @@ namespace Project.Dialog { var s = "고수석님, 그 에러는 못고쳐요. 포기 하면 편해요"; var s1 = $"현재시간은 {DateTime.Now.Hour}시 입니다"; - PUB.Speak( this.textBox1.Text); + PUB.Speak(this.textBox1.Text); } } } diff --git a/Cs_HMI/Project/Manager/DataBaseManager.cs b/Cs_HMI/Project/Manager/DataBaseManager.cs index c1753a3..adc17de 100644 --- a/Cs_HMI/Project/Manager/DataBaseManager.cs +++ b/Cs_HMI/Project/Manager/DataBaseManager.cs @@ -83,7 +83,7 @@ namespace Project.Manager void MakeFile(string filename) { //파일이없다면 헤더를 만들어준다. - arUtil.XMLHelper xml = new arUtil.XMLHelper(filename); + AR.XMLHelper xml = new AR.XMLHelper(filename); xml.CreateFile(); } @@ -142,7 +142,7 @@ namespace Project.Manager try { //general info - var xml = new arUtil.XMLHelper(fi.FullName); + var xml = new AR.XMLHelper(fi.FullName); foreach(System.Data.DataColumn dc in this.dt.Columns) { if (dc.ColumnName.ToLower() == "idx") continue; @@ -194,7 +194,7 @@ namespace Project.Manager { var newdr = retval.NewResultDataRow(); newdr.info_filename = file.FullName; - arUtil.XMLHelper xml = new arUtil.XMLHelper(file.FullName); + var xml = new AR.XMLHelper(file.FullName); foreach (System.Data.DataColumn col in retval.Columns) { if (col.ColumnName.ToLower() == "idx") continue; @@ -235,7 +235,7 @@ namespace Project.Manager var filese = System.IO.Directory.GetFiles( path , strip + ".xml"); if(filese .Length == 1) { - var xml = new arUtil.XMLHelper(filese[0]); + var xml = new AR.XMLHelper(filese[0]); var upload = xml.get_Data("info", "upload"); if (upload == "O") return eStripSearchResult.OK; } diff --git a/Cs_HMI/Project/PUB.cs b/Cs_HMI/Project/PUB.cs index aa87b4b..fdc44fa 100644 --- a/Cs_HMI/Project/PUB.cs +++ b/Cs_HMI/Project/PUB.cs @@ -1,18 +1,19 @@ -using Microsoft.Speech.Synthesis; -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Windows.Media; -using COMM; -using System.Threading.Tasks; +using COMM; using System.Net.NetworkInformation; using System.Net; using System.Management; -using System.Data.SqlClient; using System.Data; using AR; +using System.Security.Policy; +using Project.StateMachine; +using System.Data.SqlClient; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Speech.Synthesis; +using System.Media; +using System.Runtime.InteropServices; namespace Project { @@ -61,8 +62,18 @@ namespace Project public static Device.Socket sock_debug; private static SpeechSynthesizer voice; - public static MediaPlayer mplayer; + public static SoundPlayer mplayer; + [DllImport("winmm.dll")] + private static extern int waveOutSetVolume(IntPtr hwo, uint dwVolume); + + public static void SetVolume(int volume) + { + // volume은 0~100 사이의 값 + uint vol = (uint)((volume / 100.0) * 0xFFFF); + waveOutSetVolume(IntPtr.Zero, vol); + setting.musicvol = volume; + } public static bool CheckPassword() { @@ -76,7 +87,11 @@ namespace Project public static void Speak(string m, Boolean force = false, bool addlog = true) { - if (force == false && PUB.setting.Enable_Speak == false) return; + if (force == false && PUB.setting.Enable_Speak == false) + { + Console.WriteLine("speech disabled"); + return; + } if (force) voice.SpeakAsyncCancelAll(); if (voice.State == SynthesizerState.Ready) @@ -123,7 +138,7 @@ namespace Project /// /// 시스템로그 /// - public static arUtil.Log log, logagv, logplc, logbms, logxbee; + public static AR.Log log, logagv, logplc, logbms, logxbee; public static Boolean bPlayMusic = false; @@ -139,7 +154,7 @@ namespace Project /// /// 상태머신 /// - public static StateMachine sm; //상태머신분리 190529 + public static StateMachine.StateMachine sm; //상태머신분리 190529 public static System.IO.DirectoryInfo path; @@ -155,11 +170,11 @@ namespace Project counter.Load(); //log - log = new arUtil.Log(); - logagv = new arUtil.Log(); - logplc = new arUtil.Log(); - logbms = new arUtil.Log(); - logxbee = new arUtil.Log(); + log = new AR.Log(); + logagv = new AR.Log(); + logplc = new AR.Log(); + logbms = new AR.Log(); + logxbee = new AR.Log(); logagv.FileNameFormat = "{yyyyMMdd}_agv"; logplc.FileNameFormat = "{yyyyMMdd}_plc"; @@ -178,22 +193,46 @@ namespace Project Result = new CResult(); //state machine - sm = new StateMachine(); + sm = new StateMachine.StateMachine(); path = new System.IO.DirectoryInfo(Util.CurrentPath); - mplayer = new MediaPlayer - { - Volume = PUB.setting.musicvol / 100.0 - }; + mplayer = new SoundPlayer(); if (PUB.setting.musicfile.isEmpty() == false) if (System.IO.File.Exists(PUB.setting.musicfile)) - PUB.mplayer.Open(new Uri(PUB.setting.musicfile)); + { + PUB.mplayer.SoundLocation = PUB.setting.musicfile; + SetVolume(PUB.setting.musicvol); + } voice = new SpeechSynthesizer(); - voice.SelectVoice("Microsoft Server Speech Text to Speech Voice (ko-KR, Heami)"); + try + { + // 한국어 음성을 찾아서 설정 + var koreanVoice = voice.GetInstalledVoices() + .Where(v => v.VoiceInfo.Culture.Name.StartsWith("ko")) + .FirstOrDefault(); + + if (koreanVoice != null) + { + voice.SelectVoice(koreanVoice.VoiceInfo.Name); + } + else + { + // 한국어 음성이 없으면 기본 음성 사용 + var defaultVoice = voice.GetInstalledVoices().FirstOrDefault(); + if (defaultVoice != null) + { + voice.SelectVoice(defaultVoice.VoiceInfo.Name); + } + } + } + catch + { + // 음성 설정 실패 시 기본값 사용 + } voice.SetOutputToDefaultAudioDevice(); var file_version = System.IO.Path.Combine(Util.CurrentPath, "version.txt"); @@ -362,13 +401,9 @@ namespace Project } } - if (ip == "" || mac == "") - { - return; - } + if (ip == "" || mac == "") return; - - SqlConnection conn = new SqlConnection("Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!"); + var conn = new SqlConnection(AGV4.Properties.Settings.Default.CS);// "Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!"); conn.Open(); string ProcName = "AddPrgmUser3"; SqlCommand cmd = new SqlCommand(ProcName, conn) diff --git a/Cs_HMI/Project/Program.cs b/Cs_HMI/Project/Program.cs index 4258887..b11ea9b 100644 --- a/Cs_HMI/Project/Program.cs +++ b/Cs_HMI/Project/Program.cs @@ -18,18 +18,13 @@ namespace Project static void Main() { //중복실행방지 - var guidAttr = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(GuidAttribute), true); - if (guidAttr != null) + string mutexName = "AGV4_Application_Mutex"; + Mutex mtx = new Mutex(true, mutexName); + var success = mtx.WaitOne(new TimeSpan(0, 0, 1)); + if (success == false) { - var guida = (GuidAttribute)guidAttr[0]; - var guidstr = guida.Value; - Mutex mtx = new Mutex(true, guidstr); - var success = mtx.WaitOne(new TimeSpan(0, 0, 1)); - if (success == false) - { - MessageBox.Show("중복실행 불가\n\n프로그램이 실행 중 입니다"); - return; - } + MessageBox.Show("Duplicate execution not allowed\n\nProgram is already running"); + return; } Application.EnableVisualStyles(); diff --git a/Cs_HMI/Project/Properties/AssemblyInfo.cs b/Cs_HMI/Project/Properties/AssemblyInfo.cs deleted file mode 100644 index a085014..0000000 --- a/Cs_HMI/Project/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 -// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 -// 이러한 특성 값을 변경하세요. -[assembly: AssemblyTitle("(OTP) 2D Reading System")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Amkor K4")] -[assembly: AssemblyProduct("(OTP) 2D Reading System")] -[assembly: AssemblyCopyright("Copyright ©Amkor-EET 2020")] -[assembly: AssemblyTrademark("EET")] -[assembly: AssemblyCulture("")] - -// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 -// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 -// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. -[assembly: ComVisible(false)] - -// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. -[assembly: Guid("65f3e762-800c-772e-862f-b444642ec59f")] - -// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. -// -// 주 버전 -// 부 버전 -// 빌드 번호 -// 수정 버전 -// -// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 -// 지정되도록 할 수 있습니다. -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("24.12.06.1300")] -[assembly: AssemblyFileVersion("24.12.06.1300")] diff --git a/Cs_HMI/Project/Properties/Settings.Designer.cs b/Cs_HMI/Project/Properties/Settings.Designer.cs index b54975d..883cf55 100644 --- a/Cs_HMI/Project/Properties/Settings.Designer.cs +++ b/Cs_HMI/Project/Properties/Settings.Designer.cs @@ -8,11 +8,11 @@ // //------------------------------------------------------------------------------ -namespace Project.Properties { +namespace AGV4.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.9.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); @@ -34,5 +34,17 @@ namespace Project.Properties { this["css"] = value; } } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] + [global::System.Configuration.DefaultSettingValueAttribute("Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Inf" + + "o=True;User ID=eeadm;Password=uJnU8a8q&DJ+ug-D;Encrypt=False;TrustServerCertific" + + "ate=True")] + public string CS { + get { + return ((string)(this["CS"])); + } + } } } diff --git a/Cs_HMI/Project/Properties/Settings.settings b/Cs_HMI/Project/Properties/Settings.settings index f8293bd..9fb9111 100644 --- a/Cs_HMI/Project/Properties/Settings.settings +++ b/Cs_HMI/Project/Properties/Settings.settings @@ -1,5 +1,5 @@  - + @@ -7,5 +7,13 @@ asdfasdfasdf asdf + + <?xml version="1.0" encoding="utf-16"?> +<SerializableConnectionString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <ConnectionString>Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&amp;DJ+ug-D;Encrypt=False;TrustServerCertificate=True</ConnectionString> + <ProviderName>System.Data.SqlClient</ProviderName> +</SerializableConnectionString> + Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&DJ+ug-D;Encrypt=False;TrustServerCertificate=True + \ No newline at end of file diff --git a/Cs_HMI/Project/Properties/launchSettings.json b/Cs_HMI/Project/Properties/launchSettings.json new file mode 100644 index 0000000..c54641c --- /dev/null +++ b/Cs_HMI/Project/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "AGV4": { + "commandName": "Project", + "workingDirectory": "D:\\Amkor\\AGV4" + } + } +} \ No newline at end of file diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN.cs b/Cs_HMI/Project/StateMachine/Step/_SM_RUN.cs index 3450670..6cc7a15 100644 --- a/Cs_HMI/Project/StateMachine/Step/_SM_RUN.cs +++ b/Cs_HMI/Project/StateMachine/Step/_SM_RUN.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; -using static Project.StateMachine; +using Project.StateMachine; using COMM; using AR; diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_CHGOFF.cs b/Cs_HMI/Project/StateMachine/Step/_SM_RUN_CHGOFF.cs index e9634ae..06b5484 100644 --- a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_CHGOFF.cs +++ b/Cs_HMI/Project/StateMachine/Step/_SM_RUN_CHGOFF.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; -using static Project.StateMachine; +using Project.StateMachine; using COMM; using AR; diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GOCHARGE.cs b/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GOCHARGE.cs index d6d8ac2..0d21c1a 100644 --- a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GOCHARGE.cs +++ b/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GOCHARGE.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; -using static Project.StateMachine; +using Project.StateMachine; using COMM; using AR; diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GOCHARGECHECK.cs b/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GOCHARGECHECK.cs index 88b5f4f..874e223 100644 --- a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GOCHARGECHECK.cs +++ b/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GOCHARGECHECK.cs @@ -3,9 +3,9 @@ using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; -using static Project.StateMachine; using COMM; using AR; +using Project.StateMachine; namespace Project { diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GODOWN.cs b/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GODOWN.cs index 01c33a4..4b8e529 100644 --- a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GODOWN.cs +++ b/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GODOWN.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; -using static Project.StateMachine; +using Project.StateMachine; using COMM; using AR; diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GOHOME.cs b/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GOHOME.cs index 82c8f3d..56506b5 100644 --- a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GOHOME.cs +++ b/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GOHOME.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; -using static Project.StateMachine; +using Project.StateMachine; using COMM; using AR; diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GOUP.cs b/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GOUP.cs index cfc98c4..ca0d7c6 100644 --- a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GOUP.cs +++ b/Cs_HMI/Project/StateMachine/Step/_SM_RUN_GOUP.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; -using static Project.StateMachine; +using Project.StateMachine; using COMM; using AR; diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_INIT.cs b/Cs_HMI/Project/StateMachine/Step/_SM_RUN_INIT.cs index ac69c2d..a42b505 100644 --- a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_INIT.cs +++ b/Cs_HMI/Project/StateMachine/Step/_SM_RUN_INIT.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; -using System.Windows.Media; namespace Project { diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_READY.cs b/Cs_HMI/Project/StateMachine/Step/_SM_RUN_READY.cs index 7971b78..53a46af 100644 --- a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_READY.cs +++ b/Cs_HMI/Project/StateMachine/Step/_SM_RUN_READY.cs @@ -5,7 +5,7 @@ using System.Text; using System.Threading.Tasks; using AR; using COMM; -using static Project.StateMachine; +using Project.StateMachine; namespace Project { diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_RESET.cs b/Cs_HMI/Project/StateMachine/Step/_SM_RUN_RESET.cs index c1ef85a..3250203 100644 --- a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_RESET.cs +++ b/Cs_HMI/Project/StateMachine/Step/_SM_RUN_RESET.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; -using static Project.StateMachine; +using Project.StateMachine; using COMM; using AR; diff --git a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_SYNC.cs b/Cs_HMI/Project/StateMachine/Step/_SM_RUN_SYNC.cs index fa61a2f..5d083a1 100644 --- a/Cs_HMI/Project/StateMachine/Step/_SM_RUN_SYNC.cs +++ b/Cs_HMI/Project/StateMachine/Step/_SM_RUN_SYNC.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; -using static Project.StateMachine; +using Project.StateMachine; using COMM; using System.Diagnostics; using AR; diff --git a/Cs_HMI/Project/StateMachine/Step/_STEP_CLOSE.cs b/Cs_HMI/Project/StateMachine/Step/_STEP_CLOSE.cs index 2ab5eca..32ac26b 100644 --- a/Cs_HMI/Project/StateMachine/Step/_STEP_CLOSE.cs +++ b/Cs_HMI/Project/StateMachine/Step/_STEP_CLOSE.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; -using static Project.StateMachine; +using Project.StateMachine; namespace Project { diff --git a/Cs_HMI/Project/StateMachine/_AGV.cs b/Cs_HMI/Project/StateMachine/_AGV.cs index 09ad6c7..6c69379 100644 --- a/Cs_HMI/Project/StateMachine/_AGV.cs +++ b/Cs_HMI/Project/StateMachine/_AGV.cs @@ -5,7 +5,7 @@ using System.Drawing; using System.Linq; using System.Text; using arCtl; -using static Project.StateMachine; +using Project.StateMachine; using COMM; using AR; namespace Project diff --git a/Cs_HMI/Project/StateMachine/_AGV.resx b/Cs_HMI/Project/StateMachine/_AGV.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/Cs_HMI/Project/StateMachine/_AGV.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Cs_HMI/Project/StateMachine/_BMS.cs b/Cs_HMI/Project/StateMachine/_BMS.cs index 5f548e1..1b4ccea 100644 --- a/Cs_HMI/Project/StateMachine/_BMS.cs +++ b/Cs_HMI/Project/StateMachine/_BMS.cs @@ -5,7 +5,7 @@ using System.Drawing; using System.Linq; using System.Text; using arCtl; -using static Project.StateMachine; +using Project.StateMachine; using COMM; using AR; diff --git a/Cs_HMI/Project/StateMachine/_DIO.cs b/Cs_HMI/Project/StateMachine/_DIO.cs index d279038..0861c49 100644 --- a/Cs_HMI/Project/StateMachine/_DIO.cs +++ b/Cs_HMI/Project/StateMachine/_DIO.cs @@ -12,185 +12,184 @@ namespace Project public partial class fMain { - private void PLC_DioChanged(object sender, arDev.FakePLC.IOValueEventArgs e) - { - if (e.Direction == arDev.Arduino.IODirection.Input) - { - var diName = (arDev.FakePLC.DIName)e.ArrIDX; - Console.WriteLine(string.Format("[DI:{1}]{0}=>{2}", diName, e.ArrIDX, e.NewValue)); + //private void PLC_DioChanged(object sender, arDev.FakePLC.IOValueEventArgs e) + //{ + // if (e.Direction == arDev.Arduino.IODirection.Input) + // { + // var diName = (arDev.FakePLC.DIName)e.ArrIDX; + // Console.WriteLine(string.Format("[DI:{1}]{0}=>{2}", diName, e.ArrIDX, e.NewValue)); - if (diName == arDev.FakePLC.DIName.PINI_BTN_1) //reset - { - if (e.NewValue == true) - { - PUB.log.Add($"버튼({diName}) 눌림(AGV_RESET)"); - PUB.AGV.AGVErrorReset(); + // if (diName == arDev.FakePLC.DIName.PINI_BTN_1) //reset + // { + // if (e.NewValue == true) + // { + // PUB.log.Add($"버튼({diName}) 눌림(AGV_RESET)"); + // PUB.AGV.AGVErrorReset(); - //241203 - if(PUB.AGV.system1.agv_run || PUB.AGV.system1.agv_run_manual) - { - PUB.AGV.AGVMoveStop("button1"); - } - //PUB.XBE.NewMsgEvent('0', '1'); - } - } - else if (diName == arDev.FakePLC.DIName.PINI_BTN_2) //auto -> QC //230424 - { - if (e.NewValue == true) - { - PUB.log.Add($"버튼({diName}) 눌림"); - if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == true) - { - if (PUB.sm.RunStep == StateMachine.ERunStep.GOUP) - { - //zup을 자동으로 해준다 - if (VAR.BOOL[eVarBool.WAIT_COVER_UP]) - { - PUB.log.Add($"버튼({diName}) 눌림"); - PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP); - PUB.Result.NextPos = ePosition.QC; - } - else PUB.Speak(Lang.커버업대기상태가아닙니다); - } - else if (PUB.sm.RunStep == StateMachine.ERunStep.GODOWN) - { - //이미 하차진행중에 누른 경우이다 - PUB.Result.NextPos = ePosition.QC; - PUB.Result.TargetPos = ePosition.QC; - } - else - { - PUB.log.Add(Lang.QC이동버튼은상하차에서만사용가능합니다); - PUB.Speak(Lang.하차상태에서만사용가능합니다); - } - } - else PUB.Speak(Lang.자동운전상태가아닙니다); + // //241203 + // if(PUB.AGV.system1.agv_run || PUB.AGV.system1.agv_run_manual) + // { + // PUB.AGV.AGVMoveStop("button1"); + // } + // //PUB.XBE.NewMsgEvent('0', '1'); + // } + // } + // else if (diName == arDev.FakePLC.DIName.PINI_BTN_2) //auto -> QC //230424 + // { + // if (e.NewValue == true) + // { + // PUB.log.Add($"버튼({diName}) 눌림"); + // if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == true) + // { + // if (PUB.sm.RunStep == StateMachine.ERunStep.GOUP) + // { + // //zup을 자동으로 해준다 + // if (VAR.BOOL[eVarBool.WAIT_COVER_UP]) + // { + // PUB.log.Add($"버튼({diName}) 눌림"); + // PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP); + // PUB.Result.NextPos = ePosition.QC; + // } + // else PUB.Speak(Lang.커버업대기상태가아닙니다); + // } + // else if (PUB.sm.RunStep == StateMachine.ERunStep.GODOWN) + // { + // //이미 하차진행중에 누른 경우이다 + // PUB.Result.NextPos = ePosition.QC; + // PUB.Result.TargetPos = ePosition.QC; + // } + // else + // { + // PUB.log.Add(Lang.QC이동버튼은상하차에서만사용가능합니다); + // PUB.Speak(Lang.하차상태에서만사용가능합니다); + // } + // } + // else PUB.Speak(Lang.자동운전상태가아닙니다); - //if (VAR.BOOL[eVarBool.FLAG_AUTORUN]==false) - //{ - // PUB.sm.ClearRunStep(); - // PUB.sm.SetNewRunStep(StateMachine.ERunStep.READY); - // PUB.sm.SetNewStep(StateMachine.eSMStep.RUN); - // PUB.Speak("자동 상태로 전환 합니다"); - //} - //else - //{ - // PUB.Speak("현재 자동 상태 입니다"); - //} - } - } - else if (diName == arDev.FakePLC.DIName.PINI_BTN_3) //z-down -> QA //230424 - { - if (e.NewValue == true) - { - //Z-dn기능으로 업데이트 230119 - PUB.log.Add($"버튼({diName}) 눌림"); - if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == true) - { - if (PUB.sm.RunStep == StateMachine.ERunStep.GOUP) - { - //zup.을 자동으로 해준다 - if (VAR.BOOL[eVarBool.WAIT_COVER_UP]) - { - PUB.log.Add($"버튼({diName}) 눌림"); - PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP); - PUB.Result.NextPos = ePosition.QA; - } - else PUB.Speak(Lang.커버업대기상태가아닙니다); - } - else if (PUB.sm.RunStep == StateMachine.ERunStep.GODOWN) - { - //이미 하차진행중에 누른 경우이다 - PUB.Result.NextPos = ePosition.QA; - PUB.Result.TargetPos = ePosition.QA; - } - else - { - PUB.log.Add($"QA이동 버튼은 상/하차에서만 사용 가능합니다"); - PUB.Speak(Lang.하차상태에서만사용가능합니다); - } - } - else PUB.Speak(Lang.자동운전상태가아닙니다); + // //if (VAR.BOOL[eVarBool.FLAG_AUTORUN]==false) + // //{ + // // PUB.sm.ClearRunStep(); + // // PUB.sm.SetNewRunStep(StateMachine.ERunStep.READY); + // // PUB.sm.SetNewStep(StateMachine.eSMStep.RUN); + // // PUB.Speak("자동 상태로 전환 합니다"); + // //} + // //else + // //{ + // // PUB.Speak("현재 자동 상태 입니다"); + // //} + // } + // } + // else if (diName == arDev.FakePLC.DIName.PINI_BTN_3) //z-down -> QA //230424 + // { + // if (e.NewValue == true) + // { + // //Z-dn기능으로 업데이트 230119 + // PUB.log.Add($"버튼({diName}) 눌림"); + // if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == true) + // { + // if (PUB.sm.RunStep == StateMachine.ERunStep.GOUP) + // { + // //zup.을 자동으로 해준다 + // if (VAR.BOOL[eVarBool.WAIT_COVER_UP]) + // { + // PUB.log.Add($"버튼({diName}) 눌림"); + // PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP); + // PUB.Result.NextPos = ePosition.QA; + // } + // else PUB.Speak(Lang.커버업대기상태가아닙니다); + // } + // else if (PUB.sm.RunStep == StateMachine.ERunStep.GODOWN) + // { + // //이미 하차진행중에 누른 경우이다 + // PUB.Result.NextPos = ePosition.QA; + // PUB.Result.TargetPos = ePosition.QA; + // } + // else + // { + // PUB.log.Add($"QA이동 버튼은 상/하차에서만 사용 가능합니다"); + // PUB.Speak(Lang.하차상태에서만사용가능합니다); + // } + // } + // else PUB.Speak(Lang.자동운전상태가아닙니다); - //PUB.PLC.ZMot(FakePLC.ZMotDirection.Down); - } - } - else if (diName == arDev.FakePLC.DIName.PINI_BTN_4) //z-up - { - if (e.NewValue == true) - { - //Z-up기능으로 업데이트 230119 - PUB.log.Add($"버튼({diName}) 눌림"); - PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP); - } - } - else if (diName == arDev.FakePLC.DIName.PINI_EMG) - { - if (e.NewValue == true) - { - PUB.log.Add($"버튼({diName}) 눌림"); - PUB.Speak(Lang.비상정지); - } - //else Pub.Speak("비상 정지 해제"); - } - else if (diName == arDev.FakePLC.DIName.PINI_OVERLOADL) - { - if (e.NewValue == true) - { - PUB.log.Add($"버튼({diName}) 눌림"); - PUB.Speak(Lang.오버로드감지); - } - VAR.BOOL[eVarBool.OVERLOADL] = e.NewValue; - } - else if (diName == arDev.FakePLC.DIName.PINI_OVERLOADR) - { - if (e.NewValue == true) - { - PUB.log.Add($"버튼({diName}) 눌림"); - PUB.Speak(Lang.오버로드감지); - } - VAR.BOOL[eVarBool.OVERLOADR] = e.NewValue; - } - //else if (diName == FakePLC.DIName.PINI_LIMIT_LU) - //{ - // PUB.flag.set(EFlag.FLAG_LIMITHIGHL, e.NewValue); - //} - //else if (diName == FakePLC.DIName.PINI_LIMIT_RU) - //{ - // PUB.flag.set(EFlag.FLAG_LIMITHIGHR, e.NewValue); - //} - //else if (diName == FakePLC.DIName.PINI_LIMIT_LD) - //{ - // PUB.flag.set(EFlag.FLAG_LIMITLOWL, e.NewValue); - //} - //else if (diName == FakePLC.DIName.PINI_LIMIT_RD) - //{ - // PUB.flag.set(EFlag.FLAG_LIMITLOWR, e.NewValue); - //} - //else - //{ - // //처리하지 않음 - //} - //PUB.flag.set(EFlag.FLAG_LIMITHIGH, (PUB.flag.get(EFlag.FLAG_LIMITHIGHL) && PUB.flag.get(EFlag.FLAG_LIMITHIGHR))); - //PUB.flag.set(EFlag.FLAG_LIMITLOW, (PUB.flag.get(EFlag.FLAG_LIMITLOWL) && PUB.flag.get(EFlag.FLAG_LIMITLOWR))); - VAR.BOOL[eVarBool.FLAG_LIMITHIGH] = false;// PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LU) || PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RU); - VAR.BOOL[eVarBool.FLAG_LIMITLOW] = false;//PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LD) || PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RD); - VAR.BOOL[eVarBool.OVERLOAD] = (VAR.BOOL[eVarBool.OVERLOADL] || VAR.BOOL[eVarBool.OVERLOADR]); - } - else - { - //출력포트값 변경 - var doName = (arDev.FakePLC.DOName)e.ArrIDX; - PUB.logplc.Add($"출력({doName}) {(e.NewValue ? "O" : "X")}"); - } - } + // //PUB.PLC.ZMot(FakePLC.ZMotDirection.Down); + // } + // } + // else if (diName == arDev.FakePLC.DIName.PINI_BTN_4) //z-up + // { + // if (e.NewValue == true) + // { + // //Z-up기능으로 업데이트 230119 + // PUB.log.Add($"버튼({diName}) 눌림"); + // PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP); + // } + // } + // else if (diName == arDev.FakePLC.DIName.PINI_EMG) + // { + // if (e.NewValue == true) + // { + // PUB.log.Add($"버튼({diName}) 눌림"); + // PUB.Speak(Lang.비상정지); + // } + // //else Pub.Speak("비상 정지 해제"); + // } + // else if (diName == arDev.FakePLC.DIName.PINI_OVERLOADL) + // { + // if (e.NewValue == true) + // { + // PUB.log.Add($"버튼({diName}) 눌림"); + // PUB.Speak(Lang.오버로드감지); + // } + // VAR.BOOL[eVarBool.OVERLOADL] = e.NewValue; + // } + // else if (diName == arDev.FakePLC.DIName.PINI_OVERLOADR) + // { + // if (e.NewValue == true) + // { + // PUB.log.Add($"버튼({diName}) 눌림"); + // PUB.Speak(Lang.오버로드감지); + // } + // VAR.BOOL[eVarBool.OVERLOADR] = e.NewValue; + // } + // //else if (diName == FakePLC.DIName.PINI_LIMIT_LU) + // //{ + // // PUB.flag.set(EFlag.FLAG_LIMITHIGHL, e.NewValue); + // //} + // //else if (diName == FakePLC.DIName.PINI_LIMIT_RU) + // //{ + // // PUB.flag.set(EFlag.FLAG_LIMITHIGHR, e.NewValue); + // //} + // //else if (diName == FakePLC.DIName.PINI_LIMIT_LD) + // //{ + // // PUB.flag.set(EFlag.FLAG_LIMITLOWL, e.NewValue); + // //} + // //else if (diName == FakePLC.DIName.PINI_LIMIT_RD) + // //{ + // // PUB.flag.set(EFlag.FLAG_LIMITLOWR, e.NewValue); + // //} + // //else + // //{ + // // //처리하지 않음 + // //} + // //PUB.flag.set(EFlag.FLAG_LIMITHIGH, (PUB.flag.get(EFlag.FLAG_LIMITHIGHL) && PUB.flag.get(EFlag.FLAG_LIMITHIGHR))); + // //PUB.flag.set(EFlag.FLAG_LIMITLOW, (PUB.flag.get(EFlag.FLAG_LIMITLOWL) && PUB.flag.get(EFlag.FLAG_LIMITLOWR))); + // VAR.BOOL[eVarBool.FLAG_LIMITHIGH] = false;// PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LU) || PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RU); + // VAR.BOOL[eVarBool.FLAG_LIMITLOW] = false;//PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_LD) || PUB.PLC.GetValueI(arDev.FakePLC.DIName.PINI_LIMIT_RD); + // VAR.BOOL[eVarBool.OVERLOAD] = (VAR.BOOL[eVarBool.OVERLOADL] || VAR.BOOL[eVarBool.OVERLOADR]); + // } + // else + // { + // //출력포트값 변경 + // var doName = (arDev.FakePLC.DOName)e.ArrIDX; + // PUB.logplc.Add($"출력({doName}) {(e.NewValue ? "O" : "X")}"); + // } + //} //string oldflagmessage = string.Empty; - string lastplclogmessage = ""; - DateTime lastplclogtime = DateTime.Now; - string logmessage = ""; - bool logerror = false; - + // 사용하지 않는 필드들 제거 + // private string logmessage; + // private string lastplclogmessage; + // private string logerror; } } diff --git a/Cs_HMI/Project/StateMachine/_Flag.cs b/Cs_HMI/Project/StateMachine/_Flag.cs index 01acea5..01195b8 100644 --- a/Cs_HMI/Project/StateMachine/_Flag.cs +++ b/Cs_HMI/Project/StateMachine/_Flag.cs @@ -98,11 +98,11 @@ namespace Project } - void PLC_FlagChanged(object sender, arDev.Arduino.DIO.FlagValueEventArgs e) - { - //플래그 상태표시는 메인의 타이머를 이용한다 - // var flag = (arDev.FakePLC.PLCFlag)e.ArrIDX; - PUB.log.Add($"PLC Flag Changed {e.ArrIDX} : {e.NewValue}"); - } + //void PLC_FlagChanged(object sender, arDev.Arduino.DIO.FlagValueEventArgs e) + //{ + // //플래그 상태표시는 메인의 타이머를 이용한다 + // // var flag = (arDev.FakePLC.PLCFlag)e.ArrIDX; + // PUB.log.Add($"PLC Flag Changed {e.ArrIDX} : {e.NewValue}"); + //} } } diff --git a/Cs_HMI/Project/StateMachine/_Loop.cs b/Cs_HMI/Project/StateMachine/_Loop.cs index 46835a5..025b0c1 100644 --- a/Cs_HMI/Project/StateMachine/_Loop.cs +++ b/Cs_HMI/Project/StateMachine/_Loop.cs @@ -5,7 +5,7 @@ using System.Drawing; using System.Linq; using System.Text; using arCtl; -using static Project.StateMachine; +using Project.StateMachine; using COMM; using System.Windows.Forms; using Project.ViewForm; @@ -77,7 +77,7 @@ namespace Project } - void sm_Running(object sender, StateMachine.RunningEventArgs e) + void sm_Running(object sender, StateMachine.StateMachine.RunningEventArgs e) { //창을 닫아야하는 상황에는 처리하지 않는다. @@ -352,7 +352,7 @@ namespace Project } } - void sm_Message(object sender, StateMachine.StateMachineMessageEventArgs e) + void sm_Message(object sender, StateMachine.StateMachine.StateMachineMessageEventArgs e) { //상태머신에서 발생한 메세지 if (e.Header != "SM-STEP") @@ -360,7 +360,7 @@ namespace Project } - void sm_StepChanged(object sender, StateMachine.StepChangeEventArgs e) + void sm_StepChanged(object sender, StateMachine.StateMachine.StepChangeEventArgs e) { //상태머신의 스텝이 변경될때 발생함 //Pub.log.Add(string.Format("SM:Step Changed {0} to {1}",e.Old,e.New)); diff --git a/Cs_HMI/Project/StateMachine/_SPS.cs b/Cs_HMI/Project/StateMachine/_SPS.cs index 7918f90..ef6bb8a 100644 --- a/Cs_HMI/Project/StateMachine/_SPS.cs +++ b/Cs_HMI/Project/StateMachine/_SPS.cs @@ -7,7 +7,7 @@ using System.Text; using AR; using arCtl; using COMM; -using static Project.StateMachine; +using Project.StateMachine; namespace Project { diff --git a/Cs_HMI/Project/StateMachine/_TMDisplay.cs b/Cs_HMI/Project/StateMachine/_TMDisplay.cs index 6b01714..b4d9493 100644 --- a/Cs_HMI/Project/StateMachine/_TMDisplay.cs +++ b/Cs_HMI/Project/StateMachine/_TMDisplay.cs @@ -2,7 +2,7 @@ using COMM; using System; using System.Drawing; -using static Project.StateMachine; +using Project.StateMachine; namespace Project { @@ -421,8 +421,8 @@ namespace Project /// void Update_Music() { - - if (PUB.mplayer != null && PUB.mplayer.HasAudio && PUB.bPlayMusic) + if (PUB.mplayer == null) return; + if (PUB.mplayer != null && !string.IsNullOrEmpty(PUB.mplayer.SoundLocation) && PUB.bPlayMusic) { if (PUB.AGV.system1.agv_run == false) { @@ -434,7 +434,7 @@ namespace Project } } - else if (PUB.setting.Enable_Music && PUB.mplayer != null && PUB.mplayer.HasAudio) + else if (PUB.setting.Enable_Music && PUB.mplayer != null && !string.IsNullOrEmpty(PUB.mplayer.SoundLocation)) { if (PUB.AGV.system1.agv_run == true) { diff --git a/Cs_HMI/Project/ViewForm/fAgv.cs b/Cs_HMI/Project/ViewForm/fAgv.cs index aace338..29645f7 100644 --- a/Cs_HMI/Project/ViewForm/fAgv.cs +++ b/Cs_HMI/Project/ViewForm/fAgv.cs @@ -32,7 +32,6 @@ namespace Project.ViewForm } - bool tmrun = false; private void timer1_Tick(object sender, EventArgs e) { timer1.Stop(); diff --git a/Cs_HMI/Project/ViewForm/fAuto.cs b/Cs_HMI/Project/ViewForm/fAuto.cs index 48dcdca..9e29e0f 100644 --- a/Cs_HMI/Project/ViewForm/fAuto.cs +++ b/Cs_HMI/Project/ViewForm/fAuto.cs @@ -7,7 +7,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; -using static Project.StateMachine; +using Project.StateMachine; using COMM; using AR; @@ -44,7 +44,7 @@ namespace Project.ViewForm } } - private void Sm_StepChanged(object sender, StepChangeEventArgs e) + private void Sm_StepChanged(object sender, StateMachine.StateMachine.StepChangeEventArgs e) { if (e.New == eSMStep.INIT || e.New == eSMStep.SYNC) this.ctlAuto1.Scean = CtlAuto.eScean.Progress; diff --git a/Cs_HMI/Project/ViewForm/fBms.cs b/Cs_HMI/Project/ViewForm/fBms.cs index 431c95f..399b280 100644 --- a/Cs_HMI/Project/ViewForm/fBms.cs +++ b/Cs_HMI/Project/ViewForm/fBms.cs @@ -60,7 +60,6 @@ namespace Project.ViewForm } - bool tmrun = false; private void timer1_Tick(object sender, EventArgs e) { timer1.Stop(); diff --git a/Cs_HMI/Project/ViewForm/fFlag.cs b/Cs_HMI/Project/ViewForm/fFlag.cs index 3d8d8b5..6b720ff 100644 --- a/Cs_HMI/Project/ViewForm/fFlag.cs +++ b/Cs_HMI/Project/ViewForm/fFlag.cs @@ -88,7 +88,6 @@ namespace Project.ViewForm } - bool tmrun = false; private void timer1_Tick(object sender, EventArgs e) { timer1.Stop(); diff --git a/Cs_HMI/Project/ViewForm/fIO.cs b/Cs_HMI/Project/ViewForm/fIO.cs index 1d9d5c7..289b3ff 100644 --- a/Cs_HMI/Project/ViewForm/fIO.cs +++ b/Cs_HMI/Project/ViewForm/fIO.cs @@ -23,43 +23,33 @@ namespace Project.ViewForm namearray.Clear(); tagarray.Clear(); - for (byte i = 0; i < 16; i++) - { - var flagName = ((arDev.FakePLC.DIName)i).ToString(); - var enumValue = Enum.Parse(typeof(arDev.FakePLC.DIPin), flagName); - if (flagName == i.ToString()) tagarray.Add(string.Empty); - else - { - //동일한 이름의 pin 번호르 찾아서 할당해준다. - var eV = (arDev.FakePLC.DIPin)enumValue; - tagarray.Add(((byte)eV).ToString()); - } - namearray.Add(flagName.Replace("_", "\n")); - } - for (byte i = 0; i < 8; i++) - { - var flagName = ((arDev.FakePLC.DOName)i).ToString(); - var enumValue = Enum.Parse(typeof(arDev.FakePLC.DOPin), flagName); - if (flagName == i.ToString()) tagarray.Add(string.Empty); - else - { - //동일한 이름의 pin 번호르 찾아서 할당해준다. - var eV = (arDev.FakePLC.DOPin)enumValue; - tagarray.Add(((byte)eV).ToString()); - } - namearray.Add(flagName); - } - - ////값설정 - //List fgValueM = new List(); - //List fgValueS = new List(); - - ////mainplc //for (byte i = 0; i < 16; i++) - // fgValueM.Add(PUB.PLC.GetValueI(i)); - //for (byte i = 0; i < 16; i++) - // fgValueM.Add(PUB.PLC.GetValueO(i)); - + //{ + // var flagName = ((arDev.FakePLC.DIName)i).ToString(); + // var enumValue = Enum.Parse(typeof(arDev.FakePLC.DIPin), flagName); + // if (flagName == i.ToString()) tagarray.Add(string.Empty); + // else + // { + // //동일한 이름의 pin 번호르 찾아서 할당해준다. + // var eV = (arDev.FakePLC.DIPin)enumValue; + // tagarray.Add(((byte)eV).ToString()); + // } + // namearray.Add(flagName.Replace("_", "\n")); + //} + //for (byte i = 0; i < 8; i++) + //{ + // var flagName = ((arDev.FakePLC.DOName)i).ToString(); + // var enumValue = Enum.Parse(typeof(arDev.FakePLC.DOPin), flagName); + // if (flagName == i.ToString()) tagarray.Add(string.Empty); + // else + // { + // //동일한 이름의 pin 번호르 찾아서 할당해준다. + // var eV = (arDev.FakePLC.DOPin)enumValue; + // tagarray.Add(((byte)eV).ToString()); + // } + // namearray.Add(flagName); + //} + this.FormClosed += FIO_FormClosed; UpdateControl(); diff --git a/Cs_HMI/Project/app.config b/Cs_HMI/Project/app.config index 16d62dc..547c6c9 100644 --- a/Cs_HMI/Project/app.config +++ b/Cs_HMI/Project/app.config @@ -2,10 +2,22 @@ +
+ + + + + + asdfasdfasdf +asdfasdfasdf +asdf + + asdfasdfasdf diff --git a/Cs_HMI/Project/fMain.cs b/Cs_HMI/Project/fMain.cs index f2882d6..5658023 100644 --- a/Cs_HMI/Project/fMain.cs +++ b/Cs_HMI/Project/fMain.cs @@ -7,12 +7,10 @@ using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; -using static Project.StateMachine; -using Microsoft.Speech.Synthesis; -using Microsoft.Speech; using COMM; using System.CodeDom; using AR; +using Project.StateMachine; namespace Project { @@ -159,7 +157,7 @@ namespace Project } - short[] FlagMapValue; + private Dictionary FlagMap = new Dictionary(); private void __Load(object sender, EventArgs e) { this.Text = Application.ProductName + " ver " + Application.ProductVersion; @@ -228,7 +226,7 @@ namespace Project PUB.sm.SetMsgOptOff(); //모든 메세지출력을 해제한다. (이벤트는 동작함) PUB.log.Add("State Machine Start"); - PUB.sm = new StateMachine(); + PUB.sm = new StateMachine.StateMachine(); PUB.sm.StepChanged += sm_StepChanged; PUB.sm.Message += sm_Message; PUB.sm.Running += sm_Running; @@ -690,8 +688,7 @@ namespace Project using (var f = new fSetup()) if (f.ShowDialog() == DialogResult.OK) { - //music volume200522 - PUB.mplayer.Volume = PUB.setting.musicvol / 100.0; + //AGV정보 싱크 PUB.sm.ResetRunStepSeq(); @@ -719,7 +716,7 @@ namespace Project PUB.sm.ClearRunStep(); PUB.sm.SetNewStep(eSMStep.RESET); PUB.sm.bPause = false; - if (PUB.mplayer != null && PUB.mplayer.HasAudio) + if (PUB.mplayer != null && PUB.mplayer.SoundLocation.isEmpty() == false) { PUB.mplayer.Stop(); PUB.bPlayMusic = false; diff --git a/Cs_HMI/Project/fSetup.cs b/Cs_HMI/Project/fSetup.cs index f2f5d0b..b89780d 100644 --- a/Cs_HMI/Project/fSetup.cs +++ b/Cs_HMI/Project/fSetup.cs @@ -18,7 +18,7 @@ namespace Project public fSetup() { InitializeComponent(); - tmDisplay = new Timer + tmDisplay = new System.Windows.Forms.Timer { Interval = 200 }; @@ -125,7 +125,7 @@ namespace Project chkClearPos.Checked = PUB.setting.AutoModeOffAndClearPosition; //PLC옵션 - nudMusicVol.Value = (int)(PUB.mplayer.Volume * 100.0); + nudMusicVol.Value = PUB.setting.musicvol;// (int)(PUB.mplayer.Volume * 100.0); tbMusic.Text = PUB.setting.musicfile; this.chkFullScreen.Checked = PUB.setting.FullScreen; this.chkDetectManualCharge.Checked = PUB.setting.DetectManualCharge; @@ -332,7 +332,8 @@ namespace Project PUB.setting.TAGF5B = (int)vcTagF5B.Value; //PLC옵션 - PUB.setting.musicvol = (int)nudMusicVol.Value; + //PUB.setting.musicvol = (int)nudMusicVol.Value; + PUB.SetVolume((int)nudMusicVol.Value); PUB.setting.ChargeSearchTime = (int)vcChargeSearchTime.Value; PUB.setting.doorSoundTerm = (int)nudDoorSoundTerm.Value; @@ -527,8 +528,8 @@ namespace Project } try { - if (PUB.mplayer.HasAudio) PUB.mplayer.Stop(); - PUB.mplayer.Open(new Uri(tbMusic.Text)); + if (PUB.mplayer.SoundLocation.isEmpty()==false) PUB.mplayer.Stop(); + PUB.mplayer.SoundLocation = tbMusic.Text;// (new Uri(tbMusic.Text)); PUB.mplayer.Play(); PUB.bPlayMusic = true; } diff --git a/Cs_HMI/Project/run.bat b/Cs_HMI/Project/run.bat new file mode 100644 index 0000000..aba823c --- /dev/null +++ b/Cs_HMI/Project/run.bat @@ -0,0 +1,4 @@ +echo "Building..." +rem dotnet build +echo "Running..." +dotnet run --project .\Project\AGV4.csproj \ No newline at end of file diff --git a/Cs_HMI/StateMachine/EnumStruct.cs b/Cs_HMI/StateMachine/EnumStruct.cs index baedc6f..fad6909 100644 --- a/Cs_HMI/StateMachine/EnumStruct.cs +++ b/Cs_HMI/StateMachine/EnumStruct.cs @@ -3,90 +3,90 @@ using System.Collections.Generic; using System.Linq; using System.Text; -namespace Project +namespace Project.StateMachine { - public partial class StateMachine + // public partial class StateMachine + //{ + public enum eGoDir { - public enum eGoDir - { - Up, - Down, - } - public enum EMsgOpt : byte - { - NORMAL, - STEPCHANGE, - ERROR, - } + Up, + Down, + } + public enum EMsgOpt : byte + { + NORMAL, + STEPCHANGE, + ERROR, + } + /// + /// 000~020 : System Define + /// 020~255 : User Define + /// + public enum eSMStep : byte + { + NOTSET = 0, + INIT, + SYNC, + IDLE, + RUN, + FINISH, + PAUSE, + ERROR, + RESET, + EMERGENCY, + CLEAR, + CLOSING, + CLOSEWAIT, + CLOSED, + } + + /// + /// RUN중일 때 사용되는 세부 시퀀스 + /// + public enum ERunStep : byte + { + /// - /// 000~020 : System Define - /// 020~255 : User Define + /// 자동모드 대기상태 /// - public enum eSMStep : byte - { - NOTSET = 0, - INIT, - SYNC, - IDLE, - RUN, - FINISH, - PAUSE, - ERROR, - RESET, - EMERGENCY, - CLEAR, - CLOSING, - CLOSEWAIT, - CLOSED, - } - + READY = 0, + /// - /// RUN중일 때 사용되는 세부 시퀀스 + /// 홈(QC)로 이동합니다 /// - public enum ERunStep : byte - { - - /// - /// 자동모드 대기상태 - /// - READY=0, + GOHOME, - /// - /// 홈(QC)로 이동합니다 - /// - GOHOME, + /// + /// 충전을 해제 함 + /// + CHARGEOFF, - /// - /// 충전을 해제 함 - /// - CHARGEOFF, - - /// - /// 충전이동 - /// - GOCHARGE, + /// + /// 충전이동 + /// + GOCHARGE, - /// - /// 충전중 - /// - CHARGECHECK =50, + /// + /// 충전중 + /// + CHARGECHECK = 50, - /// - /// 상차이동 - /// - GOUP, + /// + /// 상차이동 + /// + GOUP, - /// - /// 하차이동 - /// - GODOWN, - - } - + /// + /// 하차이동 + /// + GODOWN, } + + + } diff --git a/Cs_HMI/StateMachine/EventArgs.cs b/Cs_HMI/StateMachine/EventArgs.cs index b70ea06..ac2850b 100644 --- a/Cs_HMI/StateMachine/EventArgs.cs +++ b/Cs_HMI/StateMachine/EventArgs.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; -namespace Project +namespace Project.StateMachine { public partial class StateMachine { diff --git a/Cs_HMI/StateMachine/StateMachine.cs b/Cs_HMI/StateMachine/StateMachine.cs index 07beaf2..1b1badd 100644 --- a/Cs_HMI/StateMachine/StateMachine.cs +++ b/Cs_HMI/StateMachine/StateMachine.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; -namespace Project +namespace Project.StateMachine { public partial class StateMachine : IDisposable { diff --git a/Cs_HMI/StateMachine/StateMachine.csproj b/Cs_HMI/StateMachine/StateMachine.csproj index 78843e6..15580ba 100644 --- a/Cs_HMI/StateMachine/StateMachine.csproj +++ b/Cs_HMI/StateMachine/StateMachine.csproj @@ -7,7 +7,7 @@ {BBC9BCCF-6262-4355-9CC2-37FF678AC499} Library Properties - StateMachine + Project.StateMachine StateMachine v4.8 512 diff --git a/Cs_HMI/SubProject/AGV/Narumi.cs b/Cs_HMI/SubProject/AGV/Narumi.cs index 972d7b9..a423305 100644 --- a/Cs_HMI/SubProject/AGV/Narumi.cs +++ b/Cs_HMI/SubProject/AGV/Narumi.cs @@ -62,7 +62,6 @@ namespace arDev Errlog = new Queue(); MinRecvLength = 4; - VAR.Init(128); } diff --git a/Cs_HMI/SubProject/MSSQLCommand/Monitor.cs b/Cs_HMI/SubProject/MSSQLCommand/Monitor.cs index e224b6c..a912cbc 100644 --- a/Cs_HMI/SubProject/MSSQLCommand/Monitor.cs +++ b/Cs_HMI/SubProject/MSSQLCommand/Monitor.cs @@ -12,7 +12,6 @@ namespace MSSQLCommand /// public string CS { get; private set; } - private int public Monitor(string ip, string id, string pass, string db) { //ConnectionString = $"Data Source =10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!"; diff --git a/Cs_HMI/TestProject/Test_ProPLC/Test_PLC.csproj b/Cs_HMI/TestProject/Test_ProPLC/Test_PLC.csproj index 0763fac..40eb8c5 100644 --- a/Cs_HMI/TestProject/Test_ProPLC/Test_PLC.csproj +++ b/Cs_HMI/TestProject/Test_ProPLC/Test_PLC.csproj @@ -95,10 +95,6 @@ {14e8c9a5-013e-49ba-b435-efefc77dd623} CommData - - {476c8e64-7b6b-4554-aca2-04302715750f} - PLC.Net45 - \ No newline at end of file diff --git a/Cs_HMI/run.bat b/Cs_HMI/run.bat new file mode 100644 index 0000000..f6db54e --- /dev/null +++ b/Cs_HMI/run.bat @@ -0,0 +1,2 @@ +dotnet build +dotnet run --project .\Project\AGV4.csproj \ No newline at end of file