OperationOverView.xaml 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543
  1. <UserControl x:Class="Venus_MainPages.Views.OperationOverView"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:local="clr-namespace:Venus_MainPages.Views"
  7. mc:Ignorable="d"
  8. xmlns:ctrls="clr-namespace:Venus_Themes.UserControls;assembly=Venus_Themes"
  9. xmlns:customControls="clr-namespace:Venus_Themes.CustomControls;assembly=Venus_Themes"
  10. xmlns:Attach="clr-namespace:Venus_UI.Themes.Attach;assembly=Venus_Themes"
  11. xmlns:converters="clr-namespace:Venus_Themes.Converters;assembly=Venus_Themes"
  12. xmlns:converters2="clr-namespace:Venus_MainPages.Converters"
  13. xmlns:userControls="clr-namespace:Venus_Themes.UserControls;assembly=Venus_Themes"
  14. xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
  15. xmlns:prism="http://prismlibrary.com/"
  16. prism:ViewModelLocator.AutoWireViewModel="True"
  17. xmlns:unity="clr-namespace:Venus_MainPages.Unity"
  18. d:DesignHeight="1000" d:DesignWidth="1920" x:Name="operationOverView">
  19. <i:Interaction.Triggers>
  20. <i:EventTrigger EventName="Loaded">
  21. <i:InvokeCommandAction Command="{Binding LoadCommand}" CommandParameter="{Binding ElementName=operationOverView}"/>
  22. </i:EventTrigger>
  23. </i:Interaction.Triggers>
  24. <UserControl.Resources>
  25. <converters:BoolToVisibility x:Key="boolToVisibility"/>
  26. <converters:BoolToVisibility2 x:Key="boolToVisibility2"/>
  27. <converters:BoolToVisibility3 x:Key="boolToVisibility3"/>
  28. <converters:BoolToBool x:Key="BoolToBool"/>
  29. <converters2:IsOnlineToOpacityConverter x:Key="IsOnlineToOpacityConverter"/>
  30. <converters:BoolToColor x:Key="boolToColor"/>
  31. <converters:BoolToColor4 x:Key="boolToColor4"/>
  32. <!--<converters2:IntToPathDataConverter x:Key="IntToPathDataConverter"/>-->
  33. <converters2:mTorrToPaConverter x:Key="mTorrToPaConverter"/>
  34. </UserControl.Resources>
  35. <Grid>
  36. <Grid.ColumnDefinitions>
  37. <ColumnDefinition />
  38. <ColumnDefinition Width="840"/>
  39. </Grid.ColumnDefinitions>
  40. <Canvas x:Name="operationCanvas">
  41. <Border Canvas.Left="120" Canvas.Top="10" BorderBrush="#076DB6" BorderThickness="0 0 0 0" Padding="5,1" >
  42. <StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
  43. <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Margin="20 1 0 0">
  44. <TextBlock Text="ATM Mode" FontSize="14" HorizontalAlignment="Center" VerticalAlignment="Center" />
  45. <Ellipse Width="16" Height="16" Fill="{Binding ATMModeIsOn,Converter={StaticResource boolToColor}}" Stroke="Silver" StrokeThickness="0" Margin="5 0 0 0"></Ellipse>
  46. </StackPanel>
  47. <TextBlock Margin="30 1 0 0" Text="Wafer Status: " FontFamily="Arial" FontSize="14" Foreground="Black" HorizontalAlignment="Left" VerticalAlignment="Center"/>
  48. <Grid Height="14" Margin="0,1,0,0" HorizontalAlignment="Left">
  49. <Grid.ColumnDefinitions>
  50. <ColumnDefinition Width="14"/>
  51. <ColumnDefinition />
  52. </Grid.ColumnDefinitions>
  53. <Rectangle Fill="Gold" Stroke="Black" StrokeThickness="1"/>
  54. <TextBlock Width="120" Text="Idle / Unselected" Grid.Column="1" Margin="10,0,5,0" Foreground="{DynamicResource FG_Black}" FontSize="14" FontFamily="Arial" VerticalAlignment="Center"/>
  55. </Grid>
  56. <Grid Height="14" Margin="0,1,0,0" HorizontalAlignment="Left">
  57. <Grid.ColumnDefinitions>
  58. <ColumnDefinition Width="14"/>
  59. <ColumnDefinition />
  60. </Grid.ColumnDefinitions>
  61. <Rectangle Fill="Blue" Stroke="Black" StrokeThickness="1"/>
  62. <TextBlock Width="120" Text="Idle / Job Selected" Grid.Column="1" Margin="10,0,5,0" Foreground="{DynamicResource FG_Black}" FontSize="14" FontFamily="Arial" VerticalAlignment="Center"/>
  63. </Grid>
  64. <Grid Height="14" Margin="0,1,0,0" HorizontalAlignment="Left">
  65. <Grid.ColumnDefinitions>
  66. <ColumnDefinition Width="14"/>
  67. <ColumnDefinition />
  68. </Grid.ColumnDefinitions>
  69. <Rectangle Fill="Cyan" Stroke="Black" StrokeThickness="1"/>
  70. <TextBlock Width="80" Text="In Process" Grid.Column="1" Margin="10,0,5,0" Foreground="{DynamicResource FG_Black}" FontSize="14" FontFamily="Arial" VerticalAlignment="Center"/>
  71. </Grid>
  72. <Grid Height="14" Margin="0,1,0,0" HorizontalAlignment="Left">
  73. <Grid.ColumnDefinitions>
  74. <ColumnDefinition Width="14"/>
  75. <ColumnDefinition />
  76. </Grid.ColumnDefinitions>
  77. <Rectangle Fill="LimeGreen" Stroke="Black" StrokeThickness="1"/>
  78. <TextBlock Width="70" Text="Complete" Grid.Column="1" Margin="10,0,5,0" Foreground="{DynamicResource FG_Black}" FontSize="14" FontFamily="Arial" VerticalAlignment="Center"/>
  79. </Grid>
  80. <Grid Height="14" Margin="0,1,0,0" HorizontalAlignment="Left">
  81. <Grid.ColumnDefinitions>
  82. <ColumnDefinition Width="14"/>
  83. <ColumnDefinition />
  84. </Grid.ColumnDefinitions>
  85. <Rectangle Fill="Red" Stroke="Black" StrokeThickness="1"/>
  86. <TextBlock Width="50" Text="Error" Grid.Column="1" Margin="10,0,5,0" Foreground="{DynamicResource FG_Black}" FontSize="14" FontFamily="Arial" VerticalAlignment="Center"/>
  87. </Grid>
  88. </StackPanel>
  89. </Border>
  90. <Grid x:Name="pmaGrid" Canvas.Left="5" Canvas.Top="250" Width="280" Height="180" Margin="0 0 0 10" Visibility="{Binding PMAIsInstalled,Converter={StaticResource bool2VisibilityConverter}}">
  91. <Grid.RowDefinitions>
  92. <RowDefinition Height="24"/>
  93. <RowDefinition/>
  94. <RowDefinition/>
  95. <RowDefinition/>
  96. <RowDefinition/>
  97. <RowDefinition/>
  98. <RowDefinition/>
  99. <RowDefinition/>
  100. </Grid.RowDefinitions>
  101. <Grid.ColumnDefinitions>
  102. <ColumnDefinition Width="90"/>
  103. <ColumnDefinition/>
  104. </Grid.ColumnDefinitions>
  105. <TextBlock Grid.Row="0" Text="PMA" Grid.ColumnSpan="2" FontSize="16" Padding="0,2,0,0" FontWeight="Bold"/>
  106. <TextBlock Grid.Row="1" Text="Name" FontSize="13" Padding="0,2,0,0" />
  107. <TextBlock Grid.Row="5" Text="Step Num" FontSize="13" Padding="0,2,0,0"/>
  108. <TextBlock Grid.Row="3" Text="Step Type" FontSize="13" Padding="0,2,0,0" />
  109. <TextBlock Grid.Row="4" Text="Step Time(s)" FontSize="13" Padding="0,2,0,0" />
  110. <TextBlock Grid.Row="2" Text="Step Desc" FontSize="13" Padding="0,2,0,0" />
  111. <!--<TextBlock Grid.Row="6" Text="Next Step" FontSize="13" Padding="0,2,0,0" Background="#FAFAFA"/>-->
  112. <TextBlock Grid.Row="6" Text="Cycle Num" FontSize="13" Padding="0,2,0,0" />
  113. <TextBlock Grid.Row="7" Text="Heater Info" FontSize="13" Padding="0,2,0,0" />
  114. <TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding PMARecipeResult.RecipeName}" FontSize="13" Padding="0,2,0,0" />
  115. <TextBlock Grid.Row="5" Grid.Column="1" FontSize="13" Padding="0,2,0,0" >
  116. <TextBlock.Text>
  117. <MultiBinding StringFormat="{}{0}/{1}">
  118. <Binding Path="PMARecipeResult.RecipeStepNumber"></Binding>
  119. <Binding Path="PMARecipeResult.RecipeStepCount"></Binding>
  120. </MultiBinding>
  121. </TextBlock.Text>
  122. </TextBlock>
  123. <TextBlock Grid.Row="3" Grid.Column="1" Text="{Binding PMARecipeResult.RecipeStepType}" FontSize="13" Padding="0,2,0,0" />
  124. <TextBlock Grid.Row="4" Grid.Column="1" FontSize="13" Padding="0,2,0,0" >
  125. <TextBlock.Text>
  126. <MultiBinding StringFormat="{}{0}/{1}">
  127. <Binding Path="PMARecipeResult.RecipeStepDuringTime"></Binding>
  128. <Binding Path="PMARecipeResult.RecipeStepSetTime"></Binding>
  129. </MultiBinding>
  130. </TextBlock.Text>
  131. </TextBlock>
  132. <TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding PMARecipeResult.RecipeStepDescription}" FontSize="13" Padding="0,2,0,0" />
  133. <!--<customControls:PathButton BorderThickness="0" PathData="{StaticResource Icon_Next}" Background="Transparent" DefaultFillBrush="Black" Foreground="White" Cursor="Hand" Grid.Row="6" Grid.Column="1" Command="{Binding EndStepCommand}" Margin="15,0,0,0" HorizontalAlignment="Left"/>-->
  134. <TextBlock Grid.Row="6" Grid.Column="1" FontSize="13" Padding="0,2,0,0" >
  135. <TextBlock.Text>
  136. <MultiBinding StringFormat="{}{0}/{1}">
  137. <Binding Path="PMARecipeResult.RecipeCurrentCounter"></Binding>
  138. <Binding Path="PMARecipeResult.RecipeAllCounters"></Binding>
  139. </MultiBinding>
  140. </TextBlock.Text>
  141. </TextBlock>
  142. <TextBlock Grid.Row="7" Grid.Column="1" FontSize="13" Padding="0,2,0,0" >
  143. <Run Text="{Binding RtDataValues[PMA.HighTemperatureHeater.DeviceData].HighTemperatureHeaterPositionFeedBack}" />
  144. <Run Text=" "/>
  145. <Run Text="{Binding RtDataValues[PMA.HighTemperatureHeater.DeviceData].HighTemperatureHeaterTemperatureFeedBack,StringFormat=F1}" />
  146. <Run Text="°C"/>
  147. </TextBlock>
  148. </Grid>
  149. <Grid x:Name="pmbGrid" Canvas.Left="5" Canvas.Top="50" Width="280" Height="180" Margin="0 0 0 10" Visibility="{Binding PMBIsInstalled,Converter={StaticResource bool2VisibilityConverter}}">
  150. <Grid.RowDefinitions>
  151. <RowDefinition Height="24"/>
  152. <RowDefinition/>
  153. <RowDefinition/>
  154. <RowDefinition/>
  155. <RowDefinition/>
  156. <RowDefinition/>
  157. <RowDefinition/>
  158. <RowDefinition/>
  159. </Grid.RowDefinitions>
  160. <Grid.ColumnDefinitions>
  161. <ColumnDefinition Width="90"/>
  162. <ColumnDefinition/>
  163. </Grid.ColumnDefinitions>
  164. <TextBlock Grid.Row="0" Text="PMB" Grid.ColumnSpan="2" FontSize="16" Padding="0,2,0,0" FontWeight="Bold"/>
  165. <TextBlock Grid.Row="1" Text="Name" FontSize="13" Padding="0,2,0,0" />
  166. <TextBlock Grid.Row="5" Text="Step Num" FontSize="13" Padding="0,2,0,0" />
  167. <TextBlock Grid.Row="3" Text="Step Type" FontSize="13" Padding="0,2,0,0" />
  168. <TextBlock Grid.Row="4" Text="Step Time(s)" FontSize="13" Padding="0,2,0,0" />
  169. <TextBlock Grid.Row="2" Text="Step Desc" FontSize="13" Padding="0,2,0,0" />
  170. <!--<TextBlock Grid.Row="6" Text="Next Step" FontSize="13" Padding="0,2,0,0" Background="#FAFAFA"/>-->
  171. <TextBlock Grid.Row="6" Text="Cycle Num" FontSize="13" Padding="0,2,0,0" />
  172. <TextBlock Grid.Row="7" Text="Heater Info" FontSize="13" Padding="0,2,0,0"/>
  173. <TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding PMBRecipeResult.RecipeName}" FontSize="13" Padding="0,2,0,0" />
  174. <TextBlock Grid.Row="5" Grid.Column="1" FontSize="13" Padding="0,2,0,0" >
  175. <TextBlock.Text>
  176. <MultiBinding StringFormat="{}{0}/{1}">
  177. <Binding Path="PMBRecipeResult.RecipeStepNumber"></Binding>
  178. <Binding Path="PMBRecipeResult.RecipeStepCount"></Binding>
  179. </MultiBinding>
  180. </TextBlock.Text>
  181. </TextBlock>
  182. <TextBlock Grid.Row="3" Grid.Column="1" Text="{Binding PMBRecipeResult.RecipeStepType}" FontSize="13" Padding="0,2,0,0" />
  183. <TextBlock Grid.Row="4" Grid.Column="1" FontSize="13" Padding="0,2,0,0" >
  184. <TextBlock.Text>
  185. <MultiBinding StringFormat="{}{0}/{1}">
  186. <Binding Path="PMBRecipeResult.RecipeStepDuringTime"></Binding>
  187. <Binding Path="PMBRecipeResult.RecipeStepSetTime"></Binding>
  188. </MultiBinding>
  189. </TextBlock.Text>
  190. </TextBlock>
  191. <TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding PMBRecipeResult.RecipeStepDescription}" FontSize="13" Padding="0,2,0,0" />
  192. <!--<customControls:PathButton BorderThickness="0" PathData="{StaticResource Icon_Next}" Background="Transparent" DefaultFillBrush="Black" Foreground="White" Cursor="Hand" Grid.Row="6" Grid.Column="1" Command="{Binding EndStepCommand}" Margin="15,0,0,0" HorizontalAlignment="Left"/>-->
  193. <TextBlock Grid.Row="6" Grid.Column="1" FontSize="13" Padding="0,2,0,0" >
  194. <TextBlock.Text>
  195. <MultiBinding StringFormat="{}{0}/{1}">
  196. <Binding Path="PMBRecipeResult.RecipeCurrentCounter"></Binding>
  197. <Binding Path="PMBRecipeResult.RecipeAllCounters"></Binding>
  198. </MultiBinding>
  199. </TextBlock.Text>
  200. </TextBlock>
  201. <TextBlock Grid.Row="7" Grid.Column="1" FontSize="13" Padding="0,2,0,0" >
  202. <Run Text="{Binding RtDataValues[PMB.HighTemperatureHeater.DeviceData].HighTemperatureHeaterPositionFeedBack}" />
  203. <Run Text=" "/>
  204. <Run Text="{Binding RtDataValues[PMB.HighTemperatureHeater.DeviceData].HighTemperatureHeaterTemperatureFeedBack,StringFormat=F1}" />
  205. <Run Text="°C"/>
  206. </TextBlock>
  207. </Grid>
  208. <Grid x:Name="pmcGrid" Canvas.Left="800" Canvas.Top="50" Width="280" Height="180" Margin="0 0 0 10" Visibility="{Binding PMCIsInstalled,Converter={StaticResource bool2VisibilityConverter}}">
  209. <Grid.RowDefinitions>
  210. <RowDefinition Height="24"/>
  211. <RowDefinition/>
  212. <RowDefinition/>
  213. <RowDefinition/>
  214. <RowDefinition/>
  215. <RowDefinition/>
  216. <RowDefinition/>
  217. <RowDefinition/>
  218. </Grid.RowDefinitions>
  219. <Grid.ColumnDefinitions>
  220. <ColumnDefinition Width="90"/>
  221. <ColumnDefinition/>
  222. </Grid.ColumnDefinitions>
  223. <TextBlock Grid.Row="0" Text="PMC" Grid.ColumnSpan="2" FontSize="16" Padding="0,2,0,0" FontWeight="Bold"/>
  224. <TextBlock Grid.Row="1" Text="Name" FontSize="13" Padding="0,2,0,0" />
  225. <TextBlock Grid.Row="5" Text="Step Num" FontSize="13" Padding="0,2,0,0" />
  226. <TextBlock Grid.Row="3" Text="Step Type" FontSize="13" Padding="0,2,0,0" />
  227. <TextBlock Grid.Row="4" Text="Step Time(s)" FontSize="13" Padding="0,2,0,0" />
  228. <TextBlock Grid.Row="2" Text="Step Desc" FontSize="13" Padding="0,2,0,0" />
  229. <!--<TextBlock Grid.Row="6" Text="Next Step" FontSize="13" Padding="0,2,0,0" Background="#FAFAFA"/>-->
  230. <TextBlock Grid.Row="6" Text="Cycle Num" FontSize="13" Padding="0,2,0,0" />
  231. <TextBlock Grid.Row="7" Text="Heater Info" FontSize="13" Padding="0,2,0,0" />
  232. <TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding PMCRecipeResult.RecipeName}" FontSize="13" Padding="0,2,0,0" />
  233. <TextBlock Grid.Row="5" Grid.Column="1" FontSize="13" Padding="0,2,0,0" >
  234. <TextBlock.Text>
  235. <MultiBinding StringFormat="{}{0}/{1}">
  236. <Binding Path="PMCRecipeResult.RecipeStepNumber"></Binding>
  237. <Binding Path="PMCRecipeResult.RecipeStepCount"></Binding>
  238. </MultiBinding>
  239. </TextBlock.Text>
  240. </TextBlock>
  241. <TextBlock Grid.Row="3" Grid.Column="1" Text="{Binding PMCRecipeResult.RecipeStepType}" FontSize="13" Padding="0,2,0,0" />
  242. <TextBlock Grid.Row="4" Grid.Column="1" FontSize="13" Padding="0,2,0,0" >
  243. <TextBlock.Text>
  244. <MultiBinding StringFormat="{}{0}/{1}">
  245. <Binding Path="PMCRecipeResult.RecipeStepDuringTime"></Binding>
  246. <Binding Path="PMCRecipeResult.RecipeStepSetTime"></Binding>
  247. </MultiBinding>
  248. </TextBlock.Text>
  249. </TextBlock>
  250. <TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding PMCRecipeResult.RecipeStepDescription}" FontSize="13" Padding="0,2,0,0" />
  251. <!--<customControls:PathButton BorderThickness="0" PathData="{StaticResource Icon_Next}" Background="Transparent" DefaultFillBrush="Black" Foreground="White" Cursor="Hand" Grid.Row="6" Grid.Column="1" Command="{Binding EndStepCommand}" Margin="15,0,0,0" HorizontalAlignment="Left"/>-->
  252. <TextBlock Grid.Row="6" Grid.Column="1" FontSize="13" Padding="0,2,0,0" >
  253. <TextBlock.Text>
  254. <MultiBinding StringFormat="{}{0}/{1}">
  255. <Binding Path="PMCRecipeResult.RecipeCurrentCounter"></Binding>
  256. <Binding Path="PMCRecipeResult.RecipeAllCounters"></Binding>
  257. </MultiBinding>
  258. </TextBlock.Text>
  259. </TextBlock>
  260. <TextBlock Grid.Row="7" Grid.Column="1" FontSize="13" Padding="0,2,0,0" >
  261. <Run Text="{Binding RtDataValues[PMC.HighTemperatureHeater.DeviceData].HighTemperatureHeaterPositionFeedBack}" />
  262. <Run Text=" "/>
  263. <Run Text="{Binding RtDataValues[PMC.HighTemperatureHeater.DeviceData].HighTemperatureHeaterTemperatureFeedBack,StringFormat=F1}" />
  264. <Run Text="°C"/>
  265. </TextBlock>
  266. </Grid>
  267. <Grid x:Name="pmdGrid" Canvas.Left="800" Canvas.Top="250" Width="280" Height="180" Visibility="{Binding PMDIsInstalled,Converter={StaticResource bool2VisibilityConverter}}">
  268. <Grid.RowDefinitions>
  269. <RowDefinition Height="24"/>
  270. <RowDefinition/>
  271. <RowDefinition/>
  272. <RowDefinition/>
  273. <RowDefinition/>
  274. <RowDefinition/>
  275. <RowDefinition/>
  276. <RowDefinition/>
  277. </Grid.RowDefinitions>
  278. <Grid.ColumnDefinitions>
  279. <ColumnDefinition Width="90"/>
  280. <ColumnDefinition/>
  281. </Grid.ColumnDefinitions>
  282. <TextBlock Grid.Row="0" Text="PMD" Grid.ColumnSpan="2" FontSize="16" Padding="0,2,0,0" FontWeight="Bold"/>
  283. <TextBlock Grid.Row="1" Text="Name" FontSize="13" Padding="0,2,0,0" />
  284. <TextBlock Grid.Row="5" Text="Step Num" FontSize="13" Padding="0,2,0,0" />
  285. <TextBlock Grid.Row="3" Text="Step Type" FontSize="13" Padding="0,2,0,0" />
  286. <TextBlock Grid.Row="4" Text="Step Time(s)" FontSize="13" Padding="0,2,0,0" />
  287. <TextBlock Grid.Row="2" Text="Step Desc" FontSize="13" Padding="0,2,0,0" />
  288. <!--<TextBlock Grid.Row="6" Text="Next Step" FontSize="13" Padding="0,2,0,0" Background="#FAFAFA"/>-->
  289. <TextBlock Grid.Row="6" Text="Cycle Num" FontSize="13" Padding="0,2,0,0" />
  290. <TextBlock Grid.Row="7" Text="Heater Info" FontSize="13" Padding="0,2,0,0" />
  291. <TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding PMDRecipeResult.RecipeName}" FontSize="13" Padding="0,2,0,0" />
  292. <TextBlock Grid.Row="5" Grid.Column="1" FontSize="13" Padding="0,2,0,0" >
  293. <TextBlock.Text>
  294. <MultiBinding StringFormat="{}{0}/{1}">
  295. <Binding Path="PMDRecipeResult.RecipeStepNumber"></Binding>
  296. <Binding Path="PMDRecipeResult.RecipeStepCount"></Binding>
  297. </MultiBinding>
  298. </TextBlock.Text>
  299. </TextBlock>
  300. <TextBlock Grid.Row="3" Grid.Column="1" Text="{Binding PMDRecipeResult.RecipeStepType}" FontSize="13" Padding="0,2,0,0" />
  301. <TextBlock Grid.Row="4" Grid.Column="1" FontSize="13" Padding="0,2,0,0" >
  302. <TextBlock.Text>
  303. <MultiBinding StringFormat="{}{0}/{1}">
  304. <Binding Path="PMDRecipeResult.RecipeStepDuringTime"></Binding>
  305. <Binding Path="PMDRecipeResult.RecipeStepSetTime"></Binding>
  306. </MultiBinding>
  307. </TextBlock.Text>
  308. </TextBlock>
  309. <TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding PMDRecipeResult.RecipeStepDescription}" FontSize="13" Padding="0,2,0,0" />
  310. <!--<customControls:PathButton BorderThickness="0" PathData="{StaticResource Icon_Next}" Background="Transparent" DefaultFillBrush="Black" Foreground="White" Cursor="Hand" Grid.Row="6" Grid.Column="1" Command="{Binding EndStepCommand}" Margin="15,0,0,0" HorizontalAlignment="Left"/>-->
  311. <TextBlock Grid.Row="6" Grid.Column="1" FontSize="13" Padding="0,2,0,0" >
  312. <TextBlock.Text>
  313. <MultiBinding StringFormat="{}{0}/{1}">
  314. <Binding Path="PMDRecipeResult.RecipeCurrentCounter"></Binding>
  315. <Binding Path="PMDRecipeResult.RecipeAllCounters"></Binding>
  316. </MultiBinding>
  317. </TextBlock.Text>
  318. </TextBlock>
  319. <TextBlock Grid.Row="7" Grid.Column="1" FontSize="13" Padding="0,2,0,0" >
  320. <Run Text="{Binding RtDataValues[PMD.HighTemperatureHeater.DeviceData].HighTemperatureHeaterPositionFeedBack}" />
  321. <Run Text=" "/>
  322. <Run Text="{Binding RtDataValues[PMD.HighTemperatureHeater.DeviceData].HighTemperatureHeaterTemperatureFeedBack,StringFormat=F1}" />
  323. <Run Text="°C"/>
  324. </TextBlock>
  325. </Grid>
  326. <Canvas Canvas.Top="40" Canvas.Left="-25">
  327. <Canvas Canvas.Left="176">
  328. <Viewbox Width="760" Height="760" Canvas.Top="100" Canvas.Left="-24" Stretch="Fill">
  329. <Canvas Width="1000" Height="1000">
  330. <Canvas Canvas.Top="-300" Canvas.Left="00" Width="450" Height="800" x:Name="moduleCanvas">
  331. <ctrls:NiceMainTMWithLoadLock Canvas.Left="380" Canvas.Top="90"
  332. PMADoorIsOpen="{Binding RtDataValues[TM.PMASlitDoor.IsClosed],Converter={StaticResource BoolToBool}}" PMBDoorIsOpen="{Binding RtDataValues[TM.PMBSlitDoor.IsClosed],Converter={StaticResource BoolToBool}}" PMCDoorIsOpen="{Binding RtDataValues[TM.PMCSlitDoor.IsClosed],Converter={StaticResource BoolToBool}}" PMDDoorIsOpen="{Binding RtDataValues[TM.PMDSlitDoor.IsClosed],Converter={StaticResource BoolToBool}}" LLATDoorIsOpen="{Binding RtDataValues[TM.LLATSlitDoor.IsClosed],Converter={StaticResource BoolToBool}}" LLBTDoorIsOpen="{Binding RtDataValues[TM.LLBTSlitDoor.IsClosed],Converter={StaticResource BoolToBool}}" LLAEDoorIsOpen="{Binding RtDataValues[TM.LLAESlitDoor.IsClosed],Converter={StaticResource BoolToBool}}" LLBEDoorIsOpen="{Binding RtDataValues[TM.LLBESlitDoor.IsClosed],Converter={StaticResource BoolToBool}}"
  333. TMIsOnline="{Binding RtDataValues[TM.IsOnline]}" LLAIsOnline="{Binding RtDataValues[LLA.IsOnline]}" LLBIsOnline="{Binding RtDataValues[LLB.IsOnline]}"
  334. LLAWafer="{Binding LLAWafer}" LLBWafer="{Binding LLBWafer}" IsEnabled="{Binding RtDataValues[TM.IsOnline],Converter={StaticResource BoolToBool}}"/>
  335. <ctrls:XinSongRobot Width="95" Height="95" Canvas.Left="446" Canvas.Top="505" Blade1RobotXAction="{Binding Blade1NiceXinSongWaferRobotXAction}" Blade2RobotXAction="{Binding Blade2NiceXinSongWaferRobotXAction}" BladeRobotTAction="{Binding BladeNiceXinSongWaferRobotTAction}" Blade1RobotWafer="{Binding TMBladeAWafer}" Blade2RobotWafer="{Binding TMBladeBWafer}" Opacity="{Binding RtDataValues[TM.IsOnline],Converter={StaticResource IsOnlineToOpacityConverter}}" IsEnabled="False"/>
  336. <TextBlock Canvas.Left="430" Canvas.Top="605" FontSize="20" Width="180" Block.TextAlignment="Center" Opacity="{Binding RtDataValues[TM.IsOnline],Converter={StaticResource IsOnlineToOpacityConverter}}">
  337. <TextBlock.Text>
  338. <MultiBinding StringFormat="{}TM({0:F1}{1})">
  339. <Binding Path="RtDataValues[TM.TMProcessGauge.Value]"/>
  340. <Binding Path="PressureType"/>
  341. </MultiBinding>
  342. </TextBlock.Text>
  343. </TextBlock>
  344. <ctrls:NiceTMChamber x:Name="pmaChamber" ModuleName="PMA" RotateTransformValue="-90" Width="162" Height="162" Canvas.Left="225" Canvas.Top="607" RobotWafer="{Binding PMAWafer}" Opacity="{Binding RtDataValues[PMA.IsOnline],Converter={StaticResource IsOnlineToOpacityConverter}}" IsEnabled="{Binding RtDataValues[PMA.IsOnline],Converter={StaticResource BoolToBool}}" PressureValue="{Binding RtDataValues[PMA.CalculationPressure]}" Unit="{Binding PressureType}" ChamberType="{Binding PMAChamberType}"/>
  345. <ctrls:NiceTMChamber x:Name="pmbChamber" ModuleName="PMB" RotateTransformValue="-30" Width="162" Height="162" Canvas.Left="305" Canvas.Top="307" RobotWafer="{Binding PMBWafer}" Opacity="{Binding RtDataValues[PMB.IsOnline],Converter={StaticResource IsOnlineToOpacityConverter}}" IsEnabled="{Binding RtDataValues[PMB.IsOnline],Converter={StaticResource BoolToBool}}" PressureValue="{Binding RtDataValues[PMB.CalculationPressure]}" Unit="{Binding PressureType}" ChamberType="{Binding PMBChamberType}"/>
  346. <ctrls:NiceTMChamber x:Name="pmcChamber" ModuleName="PMC" RotateTransformValue="30" Width="162" Height="162" Canvas.Left="608" Canvas.Top="227" RobotWafer="{Binding PMCWafer}" Opacity="{Binding RtDataValues[PMC.IsOnline],Converter={StaticResource IsOnlineToOpacityConverter}}" IsEnabled="{Binding RtDataValues[PMC.IsOnline],Converter={StaticResource BoolToBool}}" PressureValue="{Binding RtDataValues[PMC.CalculationPressure]}" Unit="{Binding PressureType}" ChamberType="{Binding PMCChamberType}"/>
  347. <ctrls:NiceTMChamber x:Name="pmdChamber" ModuleName="PMD" RotateTransformValue="90" Width="162" Height="162" Canvas.Left="826" Canvas.Top="443" RobotWafer="{Binding PMDWafer}" Opacity="{Binding RtDataValues[PMD.IsOnline],Converter={StaticResource IsOnlineToOpacityConverter}}" IsEnabled="{Binding RtDataValues[PMD.IsOnline],Converter={StaticResource BoolToBool}}" PressureValue="{Binding RtDataValues[PMD.CalculationPressure]}" Unit="{Binding PressureType}" ChamberType="{Binding PMDChamberType}"/>
  348. <userControls:NiceEFEM Canvas.Left="220" Canvas.Top="795" Width="600" Height="410"
  349. Aligner1Wafer="{Binding Aligner1Wafer}" RobotAWaferInfo="{Binding EFEMBladeAWafer}" RobotBWaferInfo="{Binding EFEMBladeBWafer}"
  350. Blade1RobotXAction="{Binding Blade1NiceGuangChuanWaferRobotXAction}" Blade2RobotXAction="{Binding Blade2NiceGuangChuanWaferRobotXAction}" BladeRobotTAction="{Binding BladeNiceGuangChuanWaferRobotTAction}"
  351. LP1Presented="{Binding RtDataValues[LP1.CassettePlaced]}" LP2Presented="{Binding RtDataValues[LP2.CassettePlaced]}" LP3Presented="{Binding RtDataValues[LP3.CassettePlaced]}" LP1Loaded="{Binding RtDataValues[LP1.IsLoaded]}" LP2Loaded="{Binding RtDataValues[LP2.IsLoaded]}" LP3Loaded="{Binding RtDataValues[LP3.IsLoaded]}"
  352. Opacity="{Binding RtDataValues[EFEM.IsOnline],Converter={StaticResource IsOnlineToOpacityConverter}}" IsEnabled="{Binding RtDataValues[EFEM.IsOnline],Converter={StaticResource BoolToBool}}"/>
  353. </Canvas>
  354. </Canvas>
  355. </Viewbox>
  356. </Canvas>
  357. <!--<TextBlock Canvas.Top="465" Canvas.Left="230" Text="LLA" Visibility="{Binding LLAIsInstalled,Converter={StaticResource bool2VisibilityConverter}}"></TextBlock>
  358. <TextBlock Canvas.Top="465" Canvas.Left="910" Text="LLB" Visibility="{Binding LLBIsInstalled,Converter={StaticResource bool2VisibilityConverter}}"></TextBlock>-->
  359. <userControls:EFEMFrontView UnitData="{Binding TMModuleInfo}" Title="TM Robot" Canvas.Top="530" Canvas.Left="100" IsEnabled="{Binding RtDataValues[TM.IsOnline],Converter={StaticResource BoolToBool}}" SlotWidth="74"/>
  360. <userControls:FOUPFrontView UnitData="{Binding LLAModuleInfo}" VerticalAlignment="Top" Canvas.Top="450" Canvas.Left="120" Visibility="{Binding LLAIsInstalled,Converter={StaticResource bool2VisibilityConverter}}" ShowTitle="True" IsEnabled="{Binding RtDataValues[LLA.IsOnline],Converter={StaticResource BoolToBool}}" SlotWidth="76"/>
  361. <userControls:FOUPFrontView UnitData="{Binding LLBModuleInfo}" VerticalAlignment="Top" Canvas.Top="450" Canvas.Left="840" Visibility="{Binding LLBIsInstalled,Converter={StaticResource bool2VisibilityConverter}}" ShowTitle="True" IsEnabled="{Binding RtDataValues[LLB.IsOnline],Converter={StaticResource BoolToBool}}" SlotWidth="76"/>
  362. <userControls:EFEMFrontView UnitData="{Binding EFEMModuleInfo}" Title="Efem Robot" Canvas.Top="530" Canvas.Left="840" IsEnabled="{Binding RtDataValues[EFEM.IsOnline],Converter={StaticResource BoolToBool}}" SlotWidth="74"/>
  363. <Canvas Canvas.Top="-40" Canvas.Left="30">
  364. <userControls:TextBlockWithLabel Canvas.Left="254" Canvas.Top="422" LabelValue="{Binding PressureType, StringFormat=CM5({0})}" TextBoxValue="{Binding RtDataValues[TM.LLAPressureGauge.Value],StringFormat='F1'}"/>
  365. <Ellipse Width="15" Height="15" Canvas.Left="360" Canvas.Top="426" Fill="{Binding RtDataValues[TM.IoSensor.LLAATMSwitch.Value],Converter={StaticResource boolToColor}}" Stroke="Silver" StrokeThickness="0"></Ellipse>
  366. <Ellipse Width="15" Height="15" Canvas.Left="360" Canvas.Top="446" Fill="{Binding RtDataValues[TM.IoSensor.LLAVacSwitch.Value],Converter={StaticResource boolToColor}}" Stroke="Silver" StrokeThickness="0"></Ellipse>
  367. <TextBlock Text="ATM" Canvas.Left="330" Canvas.Top="426"/>
  368. <TextBlock Text="VAC" Canvas.Left="330" Canvas.Top="446"/>
  369. </Canvas>
  370. <Canvas Canvas.Top="-40" Canvas.Left="-125">
  371. <userControls:TextBlockWithLabel Canvas.Left="870" Canvas.Top="422" LabelValue="{Binding PressureType, StringFormat=CM4({0})}" TextBoxValue="{Binding RtDataValues[TM.LLBPressureGauge.Value],StringFormat='F1'}"/>
  372. <Ellipse Width="15" Height="15" Canvas.Left="820" Canvas.Top="426" Fill="{Binding RtDataValues[TM.IoSensor.LLBATMSwitch.Value],Converter={StaticResource boolToColor}}" Stroke="Silver" StrokeThickness="0"></Ellipse>
  373. <Ellipse Width="15" Height="15" Canvas.Left="820" Canvas.Top="446" Fill="{Binding RtDataValues[TM.IoSensor.LLBVacSwitch.Value],Converter={StaticResource boolToColor}}" Stroke="Silver" StrokeThickness="0"></Ellipse>
  374. <TextBlock Text="ATM" Canvas.Left="840" Canvas.Top="426"/>
  375. <TextBlock Text="VAC" Canvas.Left="840" Canvas.Top="446"/>
  376. </Canvas>
  377. <TextBlock Canvas.Left="310" Canvas.Top="436" FontSize="14">
  378. <TextBlock.Text>
  379. <MultiBinding StringFormat="{}CoolingTime:{0}s">
  380. <Binding Path="RtDataValues[LLA.CoolingTime]"/>
  381. </MultiBinding>
  382. </TextBlock.Text>
  383. </TextBlock>
  384. <TextBlock Canvas.Left="690" Canvas.Top="436" FontSize="14">
  385. <TextBlock.Text>
  386. <MultiBinding StringFormat="{}CoolingTime:{0}s">
  387. <Binding Path="RtDataValues[LLB.CoolingTime]"/>
  388. </MultiBinding>
  389. </TextBlock.Text>
  390. </TextBlock>
  391. </Canvas>
  392. </Canvas>
  393. <Canvas Grid.Column="1" Background="#C7D2DF">
  394. <TabPanel Margin="14 10 0 0">
  395. <StackPanel>
  396. <Border BorderThickness="0,0,0,0" BorderBrush="#076DB6" Canvas.Left="10" Width="810" Margin="0 2 0 0" Background="#FAFAFA" HorizontalAlignment="Center" VerticalAlignment="Center" Height="35">
  397. <StackPanel Orientation="Horizontal" Margin="26,0,0,0" VerticalAlignment="Center">
  398. <Button Width="105" Height="26" Content="Home" Command="{Binding HomeAllCommand}" Margin="5,0,0,0" IsEnabled="{Binding RtDataValues[System.IsAutoMode],Converter={StaticResource BoolToBool}}" FontSize="15"/>
  399. <Button Width="105" Height="26" Content="Return Wafer" Command="{Binding ReturnAllWaferCommand}" IsEnabled="{Binding RtDataValues[System.IsAutoMode],Converter={StaticResource BoolToBool}}" Margin="30,0,0,0" FontSize="15"/>
  400. <Button Width="105" Height="26" Content="Abort" Command="{Binding AbortAllCommand}" IsEnabled="{Binding RtDataValues[System.IsBusy]}" Margin="30 0 0 0" FontSize="15"/>
  401. <Button Width="105" Height="26" Content="{Binding RouteState}" Command="{Binding ResumeAllJobCommand}" IsEnabled="{Binding RtDataValues[System.IsAutoMode]}" Margin="30 0 0 0" FontSize="15"/>
  402. <RadioButton Content="Manual" FontSize="14" Width="105" Height="26" Margin="30 0 5 0" Style="{StaticResource Button_RadioButton}" Command="{Binding EnableManualCommand}" IsChecked="{Binding RtDataValues[System.IsAutoMode],Converter={StaticResource BoolToBool}}" />
  403. <RadioButton Content="Auto" FontSize="14" Width="105" Height="26" Margin="0 0 0 0" Style="{StaticResource Button_RadioButton}" Command="{Binding EnableAutoCommand}" IsChecked="{Binding RtDataValues[System.IsAutoMode]}"/>
  404. </StackPanel>
  405. </Border>
  406. <StackPanel Orientation="Horizontal" Margin="0 5 0 0">
  407. <StackPanel Margin="2">
  408. <TextBox Background="{StaticResource titleColor}" Text="LP1" Width="Auto" Height="30" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" IsReadOnly="True" Foreground="White" FontSize="16"/>
  409. <local:KeplerWaferAssociationUnit WAInfo="{Binding LP1WaferAssociation}" ButtonIsEnable="{Binding ButtonIsEnableLP1}" CarrierId="{Binding RtDataValues[LP1.CarrierId]}">
  410. <local:KeplerWaferAssociationUnit.CycleInfo>
  411. <MultiBinding StringFormat="{}{0}/{1} Wafer Count: {2}">
  412. <Binding Path="RtDataValues[LP1.CycleSetPoint]"></Binding>
  413. <Binding Path="RtDataValues[LP1.CycledCount]"></Binding>
  414. <Binding Path="RtDataValues[LP1.CycledWafer]"></Binding>
  415. </MultiBinding>
  416. </local:KeplerWaferAssociationUnit.CycleInfo>
  417. </local:KeplerWaferAssociationUnit>
  418. <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" IsEnabled="{Binding ButtonIsEnableLP1}">
  419. <Button Content="Load" HorizontalAlignment="Center" Margin="0,15,0,0" Width="85" Height="26" Command="{Binding LoadWaferCommand}" CommandParameter="LP1" IsEnabled="{Binding RtDataValues[LP1.IsLoaded],Converter={StaticResource BoolToBool}}" FontSize="14"/>
  420. <Button Content="UnLoad" HorizontalAlignment="Center" Margin="10,15,0,0" Width="85" Height="26" Command="{Binding UnLoadWaferCommand}" CommandParameter="LP1" IsEnabled="{Binding RtDataValues[LP1.IsLoaded]}" FontSize="14"/>
  421. </StackPanel>
  422. </StackPanel>
  423. <StackPanel Margin="2">
  424. <TextBox Background="{StaticResource titleColor}" Text="LP2" Width="Auto" Height="30" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" IsReadOnly="True" Foreground="White" FontSize="16"/>
  425. <local:KeplerWaferAssociationUnit WAInfo="{Binding LP2WaferAssociation}" ButtonIsEnable="{Binding ButtonIsEnableLP2}" CarrierId="{Binding RtDataValues[LP2.CarrierId]}">
  426. <local:KeplerWaferAssociationUnit.CycleInfo>
  427. <MultiBinding StringFormat="{}{0}/{1} Wafer Count: {2}">
  428. <Binding Path="RtDataValues[LP2.CycleSetPoint]"></Binding>
  429. <Binding Path="RtDataValues[LP2.CycledCount]"></Binding>
  430. <Binding Path="RtDataValues[LP2.CycledWafer]"></Binding>
  431. </MultiBinding>
  432. </local:KeplerWaferAssociationUnit.CycleInfo>
  433. </local:KeplerWaferAssociationUnit>
  434. <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" IsEnabled="{Binding ButtonIsEnableLP2}">
  435. <Button Content="Load" HorizontalAlignment="Center" Margin="0,15,0,0" Width="85" Height="25" Command="{Binding LoadWaferCommand}" CommandParameter="LP2" IsEnabled="{Binding RtDataValues[LP2.IsLoaded],Converter={StaticResource BoolToBool}}" FontSize="14"/>
  436. <Button Content="UnLoad" HorizontalAlignment="Center" Margin="10,15,0,0" Width="85" Height="25" Command="{Binding UnLoadWaferCommand}" CommandParameter="LP2" IsEnabled="{Binding RtDataValues[LP2.IsLoaded]}" FontSize="14"/>
  437. </StackPanel>
  438. </StackPanel>
  439. <StackPanel Margin="2">
  440. <TextBox Background="{StaticResource titleColor}" Text="LP3" Width="Auto" Height="30" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" IsReadOnly="True" Foreground="White" FontSize="16"/>
  441. <local:KeplerWaferAssociationUnit WAInfo="{Binding LP3WaferAssociation}" ButtonIsEnable="{Binding ButtonIsEnableLP3}" CarrierId="{Binding RtDataValues[LP3.CarrierId]}">
  442. <local:KeplerWaferAssociationUnit.CycleInfo>
  443. <MultiBinding StringFormat="{}{0}/{1} Wafer Count: {2}">
  444. <Binding Path="RtDataValues[LP3.CycleSetPoint]"></Binding>
  445. <Binding Path="RtDataValues[LP3.CycledCount]"></Binding>
  446. <Binding Path="RtDataValues[LP3.CycledWafer]"></Binding>
  447. </MultiBinding>
  448. </local:KeplerWaferAssociationUnit.CycleInfo>
  449. </local:KeplerWaferAssociationUnit>
  450. <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" IsEnabled="{Binding ButtonIsEnableLP3}">
  451. <Button Content="Load" HorizontalAlignment="Center" Margin="0,15,0,0" Width="85" Height="25" Command="{Binding LoadWaferCommand}" CommandParameter="LP3" IsEnabled="{Binding RtDataValues[LP3.IsLoaded],Converter={StaticResource BoolToBool}}" FontSize="14"/>
  452. <Button Content="UnLoad" HorizontalAlignment="Center" Margin="10,15,0,0" Width="85" Height="25" Command="{Binding UnLoadWaferCommand}" CommandParameter="LP3" IsEnabled="{Binding RtDataValues[LP3.IsLoaded]}" FontSize="14"/>
  453. </StackPanel>
  454. </StackPanel>
  455. </StackPanel>
  456. </StackPanel>
  457. </TabPanel>
  458. </Canvas>
  459. </Grid>
  460. </UserControl>