Browse Source

Modify TransporterHome and Transporter View;

niuyx 3 months ago
parent
commit
d315dbd352

+ 1 - 1
CyberX8_MainPages/Views/TransporterTeachView.xaml

@@ -34,7 +34,7 @@
                                                     CurrentStation="{Binding GantryCurrentCellName}" Homed="{Binding GantryIsHomed}" IsSwitchOn="{Binding GantryIsSwitchOn}"
                                                     Moving="{Binding GantryIsMoving}" TorqueLimited="{Binding GantryTorqueLimited}" PositiveSwSwitched="{Binding GantryMotionData.ForwardSoftwareLimited}"
                                                     NegativeSwSwitched="{Binding GantryMotionData.ReverseSoftwareLimited}" PositiveHwSwitched="{Binding GantryMotionData.FwdLimited}"
-                                                    NegativeHwSwitched="{Binding GantryMotionData.RevLimited}"/>
+                                                    NegativeHwSwitched="{Binding GantryMotionData.RevLimited}" Loaded="TransporterGantryTeachControl_Loaded"/>
         <UserControls:TransporterElevatorTeachControl Grid.Row="1" Grid.Column="3" ModuleName="{Binding ElevatorModuleName}" CurrentPosition="{Binding ElevatorMotionPosition}"
                                                       CurrentStation="{Binding ElevatorCurrentCellName}" Homed="{Binding ElevatorIsHomed}" IsSwitchOn="{Binding ElevatorIsSwitchOn}"
                                                       Moving="{Binding ElevatorMoving}" ReadyToLock1="{Binding TransporterData.ReadyToLock1}" ReadyToLock2="{Binding TransporterData.ReadyToLock2}"

+ 5 - 0
CyberX8_MainPages/Views/TransporterTeachView.xaml.cs

@@ -25,5 +25,10 @@ namespace CyberX8_MainPages.Views
         {
             InitializeComponent();
         }
+
+        private void TransporterGantryTeachControl_Loaded(object sender, RoutedEventArgs e)
+        {
+
+        }
     }
 }

+ 36 - 36
CyberX8_RT/Config/Devices/GalilControllerCfg-Simulator.xml

@@ -130,60 +130,60 @@
 			<PositiveTorqueLimit>20</PositiveTorqueLimit>
 		</GalilAxisConfig>
 	</GalilDeviceConfig>
-	<GalilDeviceConfig Module="Transporter1" IpAddress="127.0.0.1" Port="58680" SendTimeout="2000" RecvTimeout="2000" GalilType="Galil21">
-		<GalilAxisConfig Name="Gantry" Index="0" Type="Galil"  CNType="-1">
-			<Speed>1000000</Speed>
-			<Acceleration>2000000</Acceleration>
-			<Deceleration>2000000</Deceleration>
-			<HomingSpeed>16000</HomingSpeed>
-			<HomingOffset>495</HomingOffset>
-			<HomingTimeOut>20000</HomingTimeOut>
-			<HomingAcceleration>2000000</HomingAcceleration>
-			<HomingDeceleration>2000000</HomingDeceleration>
+	<GalilDeviceConfig Module="Transporter1" IpAddress="127.0.0.3" Port="58680" SendTimeout="2000" RecvTimeout="2000" GalilType="Galil21">
+		<GalilAxisConfig Name="Elevator" Index="0" Type="Galil" CNType="-1">
+			<Speed>200000</Speed>
+			<Acceleration>200000</Acceleration>
+			<Deceleration>200000</Deceleration>
+			<HomingSpeed>50000</HomingSpeed>
+			<HomingOffset>0</HomingOffset>
+			<HomingTimeOut>60000</HomingTimeOut>
+			<HomingAcceleration>200000</HomingAcceleration>
+			<HomingDeceleration>400000</HomingDeceleration>
 			<ReverseSoftwareLimit>0</ReverseSoftwareLimit>
 			<ForwardSoftwareLimit>0</ForwardSoftwareLimit>
 			<NegativeTorqueLimit>130</NegativeTorqueLimit>
 			<PositiveTorqueLimit>20</PositiveTorqueLimit>
 		</GalilAxisConfig>
-		<GalilAxisConfig Name="Elevator" Index="1" Type="Galil"  CNType="-1">
-			<Speed>500000</Speed>
-			<Acceleration>500000</Acceleration>
-			<Deceleration>250000</Deceleration>
-			<HomingSpeed>8000</HomingSpeed>
+		<GalilAxisConfig Name="Gantry" Index="1" Type="Galil" CNType="1">
+			<Speed>400000</Speed>
+			<Acceleration>4000000</Acceleration>
+			<Deceleration>4000000</Deceleration>
+			<HomingSpeed>100000</HomingSpeed>
 			<HomingOffset>0</HomingOffset>
-			<HomingTimeOut>20000</HomingTimeOut>
-			<HomingAcceleration>500000</HomingAcceleration>
-			<HomingDeceleration>250000</HomingDeceleration>
+			<HomingTimeOut>60000</HomingTimeOut>
+			<HomingAcceleration>4000000</HomingAcceleration>
+			<HomingDeceleration>8000000</HomingDeceleration>
 			<ReverseSoftwareLimit>0</ReverseSoftwareLimit>
 			<ForwardSoftwareLimit>0</ForwardSoftwareLimit>
 			<NegativeTorqueLimit>130</NegativeTorqueLimit>
 			<PositiveTorqueLimit>20</PositiveTorqueLimit>
 		</GalilAxisConfig>
 	</GalilDeviceConfig>
-	<GalilDeviceConfig Module="Transporter2" IpAddress="127.0.0.1" Port="58681" SendTimeout="2000" RecvTimeout="2000" GalilType="Galil21">
-		<GalilAxisConfig Name="Gantry" Index="0" Type="Galil"  CNType="-1">
-			<Speed>1000000</Speed>
-			<Acceleration>2000000</Acceleration>
-			<Deceleration>2000000</Deceleration>
-			<HomingSpeed>16000</HomingSpeed>
-			<HomingOffset>495</HomingOffset>
-			<HomingTimeOut>20000</HomingTimeOut>
-			<HomingAcceleration>2000000</HomingAcceleration>
-			<HomingDeceleration>2000000</HomingDeceleration>
+	<GalilDeviceConfig Module="Transporter2" IpAddress="127.0.0.4" Port="58681" SendTimeout="2000" RecvTimeout="2000" GalilType="Galil21">
+		<GalilAxisConfig Name="Elevator" Index="0" Type="Galil" CNType="-1">
+			<Speed>200000</Speed>
+			<Acceleration>200000</Acceleration>
+			<Deceleration>200000</Deceleration>
+			<HomingSpeed>50000</HomingSpeed>
+			<HomingOffset>0</HomingOffset>
+			<HomingTimeOut>60000</HomingTimeOut>
+			<HomingAcceleration>200000</HomingAcceleration>
+			<HomingDeceleration>400000</HomingDeceleration>
 			<ReverseSoftwareLimit>0</ReverseSoftwareLimit>
 			<ForwardSoftwareLimit>0</ForwardSoftwareLimit>
 			<NegativeTorqueLimit>130</NegativeTorqueLimit>
 			<PositiveTorqueLimit>20</PositiveTorqueLimit>
 		</GalilAxisConfig>
-		<GalilAxisConfig Name="Elevator" Index="1" Type="Galil"  CNType="-1">
-			<Speed>500000</Speed>
-			<Acceleration>500000</Acceleration>
-			<Deceleration>250000</Deceleration>
-			<HomingSpeed>8000</HomingSpeed>
+		<GalilAxisConfig Name="Gantry" Index="1" Type="Galil" CNType="1">
+			<Speed>400000</Speed>
+			<Acceleration>4000000</Acceleration>
+			<Deceleration>4000000</Deceleration>
+			<HomingSpeed>100000</HomingSpeed>
 			<HomingOffset>0</HomingOffset>
-			<HomingTimeOut>20000</HomingTimeOut>
-			<HomingAcceleration>500000</HomingAcceleration>
-			<HomingDeceleration>250000</HomingDeceleration>
+			<HomingTimeOut>60000</HomingTimeOut>
+			<HomingAcceleration>4000000</HomingAcceleration>
+			<HomingDeceleration>8000000</HomingDeceleration>
 			<ReverseSoftwareLimit>0</ReverseSoftwareLimit>
 			<ForwardSoftwareLimit>0</ForwardSoftwareLimit>
 			<NegativeTorqueLimit>130</NegativeTorqueLimit>

+ 12 - 1
CyberX8_RT/Modules/Transporter/TransporterHomeRoutine.cs

@@ -14,6 +14,8 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using CyberX8_RT.Devices.Safety;
+using CyberX8_RT.Modules.PUF;
+using CyberX8_RT.Modules.Loader;
 
 namespace CyberX8_RT.Modules.Transporter
 {
@@ -71,7 +73,6 @@ namespace CyberX8_RT.Modules.Transporter
         private bool CheckPreCondition()
         {
             //所有运动模块均已Initialized
-
             if(! _gantryAxis.IsSwitchOn)
             {
                 LOG.WriteLog(eEvent.ERR_TRANSPORTER, Module.ToString(), "Gantry is switchoff");
@@ -98,6 +99,16 @@ namespace CyberX8_RT.Modules.Transporter
                     return false;
                 }
             }
+            //Loader Home
+            if (ModuleHelper.IsInstalled(ModuleName.Loader1))
+            {
+                LoaderEntity loaderEntity = Singleton<RouteManager>.Instance.GetModule<LoaderEntity>(ModuleName.Loader1.ToString());
+                if (!loaderEntity.IsHomed)
+                {
+                    NotifyError(eEvent.ERR_LOADER, "Loader is not homed", -1);
+                    return false;
+                }
+            }
 
             return true;
         }

+ 6 - 14
CyberX8_Themes/UserControls/TransporterDebugControl.xaml

@@ -28,19 +28,12 @@
                     </Grid.RowDefinitions>
                     <GroupBox Header="Lock Unlock" Grid.Row="0">
                         <Grid>
-                            <Label Content="1" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="10,0,0,0"></Label>
-                            <Ellipse Width="16" Height="16"  Fill="{Binding ElementName=self,Path=Lock1On,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left" Margin="10,14,0,14"/>
-
-                            <Label Content="2" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="40,0,0,0"></Label>
-                            <Ellipse Width="16" Height="16"  Fill="{Binding ElementName=self,Path=Lock2On,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left" Margin="40,14,0,14"/>
+                            <Ellipse Width="16" Height="16"  Fill="{Binding ElementName=self,Path=Lock1On,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left" Margin="32,21,0,21"/>
 
                             <Button Style="{StaticResource SysBtnStyle}"  Content="Lock" Width="70" Height="30" HorizontalAlignment="Left" Click="Lock_Click" Margin="70,14,0,14"/>
                             <Button Style="{StaticResource SysBtnStyle}"  Content="Unlock" Width="70" Height="30" HorizontalAlignment="Left" Click="Unlock_Click" Margin="150,14,0,14"/>
 
-                            <Label Content="1" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="230,0,0,0"></Label>
-                            <Ellipse Width="16" Height="16"  Fill="{Binding ElementName=self,Path=Unlock1On,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left" Margin="230,14,0,14"/>
-                            <Label Content="2" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="260,0,0,0"></Label>
-                            <Ellipse Width="16" Height="16"  Fill="{Binding ElementName=self,Path=Unlock2On,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left" Margin="260,14,0,14"/>
+                            <Ellipse Width="16" Height="16"  Fill="{Binding ElementName=self,Path=Unlock1On,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left" Margin="243,21,0,21"/>
 
                         </Grid>
                     </GroupBox>
@@ -85,16 +78,15 @@
                                     <RowDefinition Height="30"></RowDefinition>
                                     <RowDefinition/>
                                 </Grid.RowDefinitions>
-                                <Label Content="1" Grid.Row="0" Grid.RowSpan="2" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="160,4,0,0"></Label>
-                                <Label Content="2" Grid.Row="0" Grid.RowSpan="2" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="200,4,0,0"></Label>
+
                             
                                 <!--<Label Content="Ready To Lock" Grid.Row="1" VerticalAlignment="Center"></Label>
                                 <Ellipse Grid.Row="1" Width="16" Height="16"  Fill="{Binding ElementName=self,Path=ReadyToLock1On,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="160,0,0,0"/>
                                 <Ellipse Grid.Row="1" Width="16" Height="16"  Fill="{Binding ElementName=self,Path=ReadyToLock2On,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="200,0,0,0"/>-->
 
-                                <Label Content="WS Present" Grid.Row="2" VerticalAlignment="Center"></Label>
-                                <Ellipse Grid.Row="2" Width="16" Height="16"  Fill="{Binding ElementName=self,Path=WHPresent1,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="160,0,0,0"/>
-                                <Ellipse Grid.Row="2" Width="16" Height="16"  Fill="{Binding ElementName=self,Path=WHPresent2,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="200,0,0,0"/>
+                                <Label Content="WS Present" Grid.Row="1" VerticalAlignment="Center"></Label>
+                                <Ellipse Grid.Row="1" Width="16" Height="16"  Fill="{Binding ElementName=self,Path=WHPresent1,Converter={StaticResource boolToColor}}" Stroke="Silver" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="180,0,0,0"/>
+                                
 
                                 <Label Content="Gantry" Grid.Row="3" Grid.RowSpan="2" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="146,0,0,0"></Label>
                                 <Label Content="Elevator" Grid.Row="3" Grid.RowSpan="2" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="190,0,0,0"></Label>

+ 1 - 1
CyberX8_Themes/UserControls/TransporterElevatorTeachControl.xaml

@@ -33,7 +33,7 @@
 
             <Button Style="{StaticResource SysBtnStyle}" Grid.Row="1" Grid.Column="0"  Content="Elevator Up" Height="30" Width="180" 
                     VerticalAlignment="Top" HorizontalAlignment="Left" Margin="75,30,0,0" Click="ElevatorUp_Click"/>
-            <Button Style="{StaticResource SysBtnStyle}" Grid.Row="1" Grid.Column="0"  Content="Elevator Low" Height="30" Width="180" 
+            <Button Style="{StaticResource SysBtnStyle}" Grid.Row="1" Grid.Column="0"  Content="Elevator CellTop" Height="30" Width="180" 
                     VerticalAlignment="Top" HorizontalAlignment="Left" Margin="288,30,0,0" Click="ElevatorLow_Click"/>
             <Grid Grid.Row="0" Grid.Column="1" Grid.RowSpan="2">
                 <Grid.RowDefinitions>

+ 34 - 0
Framework/Common/Simulator/MotorSimulator.cs

@@ -2,7 +2,9 @@
 using Aitex.Core.RT.Log;
 using Aitex.Core.Util;
 using MECF.Framework.Common.Beckhoff.AxisProvider;
+using MECF.Framework.Common.Beckhoff.Station;
 using MECF.Framework.Common.Device.Galil;
+using MECF.Framework.Common.Equipment;
 using System;
 using System.Collections.Generic;
 using System.IO;
@@ -126,6 +128,38 @@ namespace MECF.Framework.Common.Simulator
             {
                 LOG.WriteLog(eEvent.ERR_AXIS, "axisProvider", "Load AxisProviderCfg.xml failed");
             }
+            //加载对应配置文件 StationPositionCfg-Simulator.xml,初始化数据字典
+            try
+            {
+                string oldXmlPath = PathManager.GetCfgDir();
+                string newXmlPath = oldXmlPath.Replace("CyberX8_Simulator", "CyberX8_RT") + "Devices\\StationPositionsCfg_Simulator.xml";
+                StationPositionCfg cfg = CustomXmlSerializer.Deserialize<StationPositionCfg>(new FileInfo(newXmlPath));
+                if (cfg != null)
+                {
+                    //foreach (BeckhoffStationModule config in cfg.Module)
+                    //{
+                    //    if (config.Name == ModuleName.Transporter1.ToString())
+                    //    {
+                    //        foreach (BeckhoffStationAxis item in config.Axises)
+                    //        {
+                    //            ;
+                    //        }
+                    //    }
+                    //    else if(config.Name == ModuleName.Transporter2.ToString())
+                    //    {
+                    //        foreach (BeckhoffStationAxis item in config.Axises)
+                    //        {
+                    //            ;
+                    //        }
+                    //    }
+                        
+                    //}
+                }
+            }
+            catch
+            {
+                LOG.WriteLog(eEvent.ERR_GALIL, "Galil", "Load galil GalilControllerCfg-Simulator.xml failed");
+            }
         }
         /// <summary>
         /// 定时器执行