Browse Source

Auto Mode 전환시 초기 동작에서 Tray 가 감지 안되면 Clamp Lock/Unlock 동작하여 Tray 끼임 확인

SWGroupSetup01 4 years ago
parent
commit
448cb458e6

+ 5 - 5
Dev/OHV/OHV.LanguageHalper/Languages/Chinese.xaml

@@ -9,11 +9,11 @@
     <system:String x:Key="Common_Save">保存数据</system:String>
 
     <!-->Q&A</-->
-    <system:String x:Key="Question_ProgramExit">确定要结束这个程序吗?</system:String>
+    <system:String x:Key="Question_ProgramExit">确定要结束程序吗?</system:String>
     <system:String x:Key="VehicleModeChange">Vehicle Mode Change to</system:String>
     <system:String x:Key="VehicleOnRailStateChange">Vehicle On Rail Change To</system:String>
-    <system:String x:Key="VehicleAutoMode">要换成自动模式吗 ?</system:String>
-    <system:String x:Key="VehicleManualMode">要换成手动模式吗 ?</system:String>
+    <system:String x:Key="VehicleAutoMode">要换成自动模式吗 ?</system:String>
+    <system:String x:Key="VehicleManualMode">要换成手动模式吗 ? &#x0a; 注意:Vehicle可能稍微向前行驶</system:String>
 
     <!-->Notification</-->
     <system:String x:Key="AutoModeChangeWranOnRailState">车辆不是 Installed 状态 !</system:String>
@@ -31,8 +31,8 @@
     <system:String x:Key="MainView_BuzzerStop">蜂鸣器  解决</system:String>
     <system:String x:Key="MainView_EmergencyStop">紧急停堆</system:String>
 
-    <system:String x:Key="MainView_AutoMode">自动</system:String>
-    <system:String x:Key="MainView_ManualMode">手动</system:String>
+    <system:String x:Key="MainView_AutoMode">自动模式</system:String>
+    <system:String x:Key="MainView_ManualMode">手动模式</system:String>
 
     <system:String x:Key="MainView_LocalMode">Local Mode</system:String>
     <system:String x:Key="MainView_HostMode">Host Mode</system:String>

+ 1 - 1
Dev/OHV/OHV.LanguageHalper/Languages/English.xaml

@@ -13,7 +13,7 @@
     <system:String x:Key="Question_ProgramExit">Program Exit ?</system:String>
     <system:String x:Key="VehicleModeChange">Vehicle Mode Change to </system:String>
     <system:String x:Key="VehicleOnRailStateChange">Vehicle On Rail Change To</system:String>
-    <system:String x:Key="VehicleAutoMode">Vehicle Auto Mode</system:String>
+    <system:String x:Key="VehicleAutoMode">Vehicle Auto Mode &#x0a; Warning : The vehicle may move a little to forward</system:String>
     <system:String x:Key="VehicleManualMode">Vehicle Manual Mode</system:String>
 
     <!-->Notification</-->

+ 2 - 2
Dev/OHV/OHV.Module.Interactivity/NotificationAlarmView.xaml

@@ -90,7 +90,7 @@
                         <GradientStop Color="#FFAA2A2D" Offset="1"/>
                     </LinearGradientBrush>
                 </Border.Background>
-                <TextBox TextWrapping="Wrap" Text="{Binding Text}" VerticalScrollBarVisibility="Auto" VerticalContentAlignment="Center" Padding="5,1,1,1" Background="White" Foreground="Black"/>
+                <TextBox TextWrapping="Wrap" Text="{Binding Text}" FontSize="20" VerticalScrollBarVisibility="Auto" VerticalContentAlignment="Center" Padding="5,1,1,1" Background="White" Foreground="Black"/>
             </Border>
             <Grid Margin="5,5,5,0" Height="25" Grid.Row="2">
                 <TextBlock Text="Solution" VerticalAlignment="Bottom" Foreground="White" Margin="5,0,0,0"/>
@@ -102,7 +102,7 @@
                         <GradientStop Color="#FFAA2A2D" Offset="1"/>
                     </LinearGradientBrush>
                 </Border.Background>
-                <TextBox TextWrapping="Wrap" Text="{Binding Solution}" VerticalScrollBarVisibility="Auto" VerticalContentAlignment="Center" Padding="5,1,1,1" Background="White" Foreground="Black"/>
+                <TextBox TextWrapping="Wrap" Text="{Binding Solution}" FontSize="20" VerticalScrollBarVisibility="Auto" VerticalContentAlignment="Center" Padding="5,1,1,1" Background="White" Foreground="Black"/>
             </Border>
         </Grid>
         <StackPanel Orientation="Horizontal" Grid.Row="2" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0,5,0,0">

+ 1 - 2
Dev/OHV/OHV.Vehicle/Concept/D_MainWindowViewModel.cs

@@ -706,7 +706,7 @@ namespace OHV.Vehicle.Concept
                 var hisAlarm = args.Args as HisAlarm;
                 this.VehicleModeChange( false );//알람이 발생하면 자동으로 Manual Mode 로 변경됨
                 this.IsVehicleAlarm = true;
-                //this.messageController.ShowNotificationView( args.MessageText );
+                this.ResetBusy(); // 자동모드 진행 중 알람이 생기면 자동으로 Busy 상태를 빠져 나온다. UI
                 this.messageController.ShowNotificationAlarmView( CastTo<HisAlarm>.From<object>(args.Args));
             }
 
@@ -847,7 +847,6 @@ namespace OHV.Vehicle.Concept
             this.IsBusy = false;
         }
 
-
         public static void SelectCulture( string culture )
         {
             if ( String.IsNullOrEmpty( culture ) )

BIN
Dev/OHV/OHV.Vehicle/Config/AlarmDefind.xlsx


+ 1 - 1
Dev/OHV/OHV.Vehicle/OHV.Vehicle.csproj

@@ -65,7 +65,7 @@
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Remote1|AnyCPU'">
     <DebugSymbols>true</DebugSymbols>
-    <OutputPath>\\192.168.0.100\vcs\</OutputPath>
+    <OutputPath>\\192.168.0.100\VCS\</OutputPath>
     <DefineConstants>TRACE;DEBUG</DefineConstants>
     <DebugType>full</DebugType>
     <PlatformTarget>AnyCPU</PlatformTarget>

+ 22 - 3
Dev/OHV/VehicleControlSystem/ControlLayer/Vehicle.cs

@@ -789,18 +789,37 @@ namespace VehicleControlSystem.ControlLayer
             result = this.refObjects.Clamp.IsAllAxisOriginReturn();
             if (result != ConstInt.EXECUTE_SUCCESS)
             {
-                this.refObjects.Clamp.AllOriginReturn();
+                result = this.refObjects.Clamp.AllOriginReturn();
+                if (result != ConstInt.EXECUTE_SUCCESS)
+                    return result;
+
                 LockUtils.Wait(2000);
             }
 
+
+
+            //C/V Sensor 가 Load Start 만 감지면 Tray 가 설비 와 Vehicle 사이에 있는걸로 판단.
+            if ( !this.refObjects.Conveyor.IsDetectedCenter() && this.refObjects.Conveyor.IsDetectedLoadStart())
+                return 46;
+
             if (this.refObjects.Conveyor.IsDetectedCenter()) //자제가 있으면 Lock
                 result = this.refObjects.Clamp.Lock_Sync();
             else
+            {
+                result = this.refObjects.Clamp.Lock_Sync();         //210825 Kkm
+                if (result != ConstInt.EXECUTE_SUCCESS)
+                {
+                    return result;
+                }
+                LockUtils.Wait(ConstUtils.ONE_SECOND);
+
                 result = this.refObjects.Clamp.Unlock_Sync();
+            }
 
-            result = 0;
+            if ( result != ConstInt.EXECUTE_SUCCESS)
+                return result;
 
-            if (result != 0)
+            if (result != ConstInt.EXECUTE_SUCCESS)
             {
                 this.VehicleStateProperty = eVehicleState.Abnormal;
                 return result;

+ 1 - 1
Dev/OHV/VehicleControlSystem/Managers/HostManager.cs

@@ -119,7 +119,7 @@ namespace VehicleControlSystem.Managers
 
                 //Vehicle Mode 변경시 Queue 내용을 삭제한다.
                 OCSMessage oCSMessage;
-                while (this.ocsDisConnectQueue.TryDequeue(out oCSMessage)) { }
+                while (this.ocsDisConnectQueue.TryDequeue(out oCSMessage)) { LockUtils.Wait(5); }
             }
 
             if (e.PropertyName.Equals("IsContain"))

+ 31 - 8
Dev/OHV/VehicleControlSystem/VCSystem.cs

@@ -2,6 +2,9 @@
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
+using System.Net;
+using System.Net.NetworkInformation;
+using System.Text;
 using System.Threading;
 using FluentResults;
 using GSG.NET.Concurrent;
@@ -707,12 +710,7 @@ namespace VehicleControlSystem
             GUIMessageEventArgs reply;
             if (msg.MessageKey.Equals(MessageKey.AutoMode))
             {
-                //#if TEST
-                //                if (!QuartzUtils.StopSchedule("SteerTest"))
-                //                    return;
-                //#endif
-
-                if (!this.ZmqManager.IsReqConnected)
+               if (!this.ZmqManager.IsReqConnected)
                 {
                     reply = new GUIMessageEventArgs { Kind = GUIMessageEventArgs.eGUIMessageKind.RspVehicleModeChange, Result = FluentResults.Results.Fail(new Error("Drive P/G not Connected")), MessageKey = MessageKey.ManualMode };
                     GUIMessageEventPublish(reply);
@@ -725,8 +723,8 @@ namespace VehicleControlSystem
                     GUIMessageEventPublish(reply);
                     return;
                 }
-
-                int result = vehicle.InitializationVehicle();
+                
+               int result = vehicle.InitializationVehicle();
                 if (result != ConstInt.EXECUTE_SUCCESS)
                 {
                     var al = this.Alarms.FirstOrDefault(a => a.AlarmId == result);
@@ -817,6 +815,31 @@ namespace VehicleControlSystem
 
         #endregion
 
+        #region Tablet Ping Chack
+        bool ChackPing()
+        {
+            bool result = false;
+            PingOptions option = new PingOptions();
+            Ping ping = new Ping();
+
+            byte[] buffer = ASCIIEncoding.ASCII.GetBytes("");
+            int timeout = 120;
+            try
+            {
+                var pingReply = ping.Send(IPAddress.Parse("109.19.25.240"), timeout, buffer, option);
+                if (pingReply.Status == IPStatus.Success)
+                    result = true;
+                else
+                    result = false;
+            }
+            catch (Exception ex)
+            {
+                logger.E(ex);
+            }
+            
+            return result;
+        }
+        #endregion
         /// <summary>
         /// GUI 로 보내는 Event
         /// </summary>

BIN
Documents/OHV.SETUP/Vehicle_IP_Setting.xlsx