Push Changes from Techcrafters Repo
This commit is contained in:
2
uniper_hmi/Infineon.sln.DotSettings
Normal file
2
uniper_hmi/Infineon.sln.DotSettings
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||||
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=Infineon/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
|
||||||
@@ -1,12 +1,13 @@
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Security.Cryptography;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
using System.Xml.Serialization;
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
namespace InfineonHMI.Common
|
namespace InfineonHMI.Common;
|
||||||
{
|
|
||||||
public static class L4ItXmlSerializer
|
public static class L4ItXmlSerializer
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -123,5 +124,53 @@ namespace InfineonHMI.Common
|
|||||||
|
|
||||||
return objectOut;
|
return objectOut;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string Encrypt(string encryptString)
|
||||||
|
{
|
||||||
|
string EncryptionKey = "0ram@1234xxxxxxxxxxtttttuuuuuiiiiio"; //we can change the code converstion key as per our requirement
|
||||||
|
byte[] clearBytes = Encoding.Unicode.GetBytes(encryptString);
|
||||||
|
using (Aes encryptor = Aes.Create())
|
||||||
|
{
|
||||||
|
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] {
|
||||||
|
0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76
|
||||||
|
});
|
||||||
|
encryptor.Key = pdb.GetBytes(32);
|
||||||
|
encryptor.IV = pdb.GetBytes(16);
|
||||||
|
using (MemoryStream ms = new MemoryStream())
|
||||||
|
{
|
||||||
|
using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateEncryptor(), CryptoStreamMode.Write))
|
||||||
|
{
|
||||||
|
cs.Write(clearBytes, 0, clearBytes.Length);
|
||||||
|
cs.Close();
|
||||||
|
}
|
||||||
|
encryptString = Convert.ToBase64String(ms.ToArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return encryptString;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string Decrypt(string cipherText)
|
||||||
|
{
|
||||||
|
string EncryptionKey = "0ram@1234xxxxxxxxxxtttttuuuuuiiiiio"; //we can change the code converstion key as per our requirement, but the decryption key should be same as encryption key
|
||||||
|
cipherText = cipherText.Replace(" ", "+");
|
||||||
|
byte[] cipherBytes = Convert.FromBase64String(cipherText);
|
||||||
|
using (Aes encryptor = Aes.Create())
|
||||||
|
{
|
||||||
|
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] {
|
||||||
|
0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76
|
||||||
|
});
|
||||||
|
encryptor.Key = pdb.GetBytes(32);
|
||||||
|
encryptor.IV = pdb.GetBytes(16);
|
||||||
|
using (MemoryStream ms = new MemoryStream())
|
||||||
|
{
|
||||||
|
using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateDecryptor(), CryptoStreamMode.Write))
|
||||||
|
{
|
||||||
|
cs.Write(cipherBytes, 0, cipherBytes.Length);
|
||||||
|
cs.Close();
|
||||||
|
}
|
||||||
|
cipherText = Encoding.Unicode.GetString(ms.ToArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return cipherText;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6,10 +6,8 @@
|
|||||||
xmlns:common="clr-namespace:Common"
|
xmlns:common="clr-namespace:Common"
|
||||||
xmlns:HMIToolkit="clr-namespace:HMIToolkit"
|
xmlns:HMIToolkit="clr-namespace:HMIToolkit"
|
||||||
d:DataContext="{d:DesignInstance Type=common:MediaContainerVm, IsDesignTimeCreatable=True}"
|
d:DataContext="{d:DesignInstance Type=common:MediaContainerVm, IsDesignTimeCreatable=True}"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d">
|
||||||
Width="Auto"
|
|
||||||
Height="Auto"
|
|
||||||
MinWidth="200">
|
|
||||||
<UserControl.Resources>
|
<UserControl.Resources>
|
||||||
<HMIToolkit:FeedbackToColorConverter x:Key="feedbackConverter" />
|
<HMIToolkit:FeedbackToColorConverter x:Key="feedbackConverter" />
|
||||||
</UserControl.Resources>
|
</UserControl.Resources>
|
||||||
@@ -19,65 +17,85 @@
|
|||||||
<Style TargetType="UserControl">
|
<Style TargetType="UserControl">
|
||||||
<!-- Property="Background" Value="White" /> -->
|
<!-- Property="Background" Value="White" /> -->
|
||||||
<Setter Property="Height" Value="300" />
|
<Setter Property="Height" Value="300" />
|
||||||
<Setter Property="Width" Value="100" />
|
|
||||||
</Style>
|
</Style>
|
||||||
</d:DesignerProperties.DesignStyle>
|
</d:DesignerProperties.DesignStyle>
|
||||||
|
|
||||||
<Grid Height="Auto">
|
<Grid>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition/>
|
<ColumnDefinition Width="25*"/>
|
||||||
<ColumnDefinition/>
|
<ColumnDefinition Width="25*"/>
|
||||||
|
<ColumnDefinition Width="50*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="10*"/>
|
<RowDefinition Height="70"/>
|
||||||
<RowDefinition Height="30*"/>
|
<RowDefinition Height="100"/>
|
||||||
<RowDefinition Height="30*"/>
|
<RowDefinition Height="100"/>
|
||||||
<RowDefinition Height="30*"/>
|
<RowDefinition Height="180"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Border Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" BorderBrush="White" BorderThickness="2"/>
|
<Border Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="3" BorderBrush="White" BorderThickness="2"/>
|
||||||
<!-- <Label Grid.Column="0" Content="{Binding SName}" VerticalAlignment="Center" HorizontalAlignment="Left"/> -->
|
<!-- <Label Grid.Column="0" Content="{Binding SName}" VerticalAlignment="Center" HorizontalAlignment="Left"/> -->
|
||||||
<Label Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Content="{Binding SName, Mode=OneWay }" HorizontalAlignment="Center" FontSize="24"/>
|
<Label Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" HorizontalContentAlignment="Center" Content="{Binding SName, Mode=OneWay }" FontSize="35"/>
|
||||||
|
|
||||||
<Grid Grid.Row="1">
|
<Grid Grid.Row="1" Grid.Column="2">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition/>
|
<RowDefinition/>
|
||||||
<RowDefinition/>
|
<RowDefinition/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Border Grid.Row="0" BorderBrush="White" BorderThickness="1" />
|
<Border Grid.Row="0" BorderBrush="White" BorderThickness="1" />
|
||||||
<Border Grid.Row="1" BorderBrush="White" BorderThickness="1" />
|
<Border Grid.Row="1" BorderBrush="White" BorderThickness="1" />
|
||||||
<Label Grid.Row="0" VerticalAlignment="Center" Content="Übervoll" HorizontalAlignment="Center" FontSize="16"/>
|
<Label Grid.Row="0" VerticalAlignment="Center" Content="Übervoll" HorizontalContentAlignment="Center" HorizontalAlignment="Center" Width="200" FontSize="30"/>
|
||||||
<RadioButton Margin="5" Grid.Row="1" IsChecked="{Binding Overload}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
<RadioButton Margin="5" Grid.Row="1" IsChecked="{Binding Overload}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Grid Grid.Column="0" Grid.Row="2">
|
|
||||||
|
<Grid Grid.Column="1" Grid.Row="1">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition/>
|
<RowDefinition/>
|
||||||
<RowDefinition/>
|
<RowDefinition/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Border Grid.Row="0" BorderBrush="White" BorderThickness="1" />
|
<Border Grid.Row="0" BorderBrush="White" BorderThickness="1" />
|
||||||
<Border Grid.Row="1" BorderBrush="White" BorderThickness="1" />
|
<Border Grid.Row="1" BorderBrush="White" BorderThickness="1" />
|
||||||
<Label Grid.Row="0" VerticalAlignment="Center" Content="Voll" HorizontalAlignment="Center" FontSize="16"/>
|
<Label Grid.Row="0" VerticalAlignment="Center" Content="Voll" HorizontalAlignment="Center" FontSize="30"/>
|
||||||
<RadioButton Grid.Row="1" Margin="5" IsChecked="{Binding Full}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
<RadioButton Grid.Row="1" Margin="5" IsChecked="{Binding Full}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Grid Grid.Row="3">
|
|
||||||
|
<Grid Grid.Row="1" Grid.Column="0">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition/>
|
<RowDefinition/>
|
||||||
<RowDefinition/>
|
<RowDefinition/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Border Grid.Row="0" BorderBrush="White" BorderThickness="1" />
|
<Border Grid.Row="0" BorderBrush="White" BorderThickness="1" />
|
||||||
<Border Grid.Row="1" BorderBrush="White" BorderThickness="1" />
|
<Border Grid.Row="1" BorderBrush="White" BorderThickness="1" />
|
||||||
<Label Grid.Row="0" VerticalAlignment="Center" Content="Leer" HorizontalAlignment="Center" FontSize="16"/>
|
<Label Grid.Row="0" VerticalAlignment="Center" Content="Leer" HorizontalAlignment="Center" FontSize="30"/>
|
||||||
<RadioButton Grid.Row="1" Margin="5" IsChecked="{Binding Empty}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
<RadioButton Grid.Row="1" Margin="5" IsChecked="{Binding Empty}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<Border Grid.Column="1" Grid.Row="1" Grid.RowSpan="3" BorderBrush="White" BorderThickness="1"></Border>
|
<Border Grid.Column="1" Grid.Row="1" BorderBrush="White" BorderThickness="1"/>
|
||||||
<Grid Grid.Column="1" Grid.Row="1" Grid.RowSpan="3">
|
|
||||||
<Grid.RowDefinitions>
|
|
||||||
<RowDefinition/>
|
|
||||||
<RowDefinition/>
|
|
||||||
</Grid.RowDefinitions>
|
|
||||||
<Button x:Name="btnFill" DataContext="{Binding FillButton}" Command="{Binding ButtonClickedCommand}" IsEnabled="{Binding XRelease}" Background="{Binding IFeedback, Converter={StaticResource feedbackConverter}}" Grid.Row="0" Grid.Column="0" Content="Füllen" Margin="5" />
|
|
||||||
<Button x:Name="btnOpen" DataContext="{Binding EmptyButton}" Command="{Binding ButtonClickedCommand}" IsEnabled="{Binding XRelease}" Background="{Binding IFeedback, Converter={StaticResource feedbackConverter}}" Grid.Row="1" Grid.Column="0" Content="Leeren" Margin="5" />
|
|
||||||
</Grid>
|
|
||||||
|
|
||||||
|
<Grid Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
<Button x:Name="btnOpen"
|
||||||
|
Grid.Column="0"
|
||||||
|
DataContext="{Binding EmptyButton}"
|
||||||
|
Command="{Binding ButtonClickedCommand}"
|
||||||
|
IsEnabled="{Binding XRelease}"
|
||||||
|
Background="{Binding IFeedback, Converter={StaticResource feedbackConverter}}"
|
||||||
|
Content="Leeren"
|
||||||
|
Height="100"
|
||||||
|
FontSize="30"/>
|
||||||
|
|
||||||
|
<Button x:Name="btnFill"
|
||||||
|
Grid.Column="1"
|
||||||
|
DataContext="{Binding FillButton}"
|
||||||
|
Command="{Binding ButtonClickedCommand}"
|
||||||
|
IsEnabled="{Binding XRelease}"
|
||||||
|
Background="{Binding IFeedback, Converter={StaticResource feedbackConverter}}"
|
||||||
|
Content="Füllen"
|
||||||
|
Height="100"
|
||||||
|
FontSize="30"/>
|
||||||
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
|
|
||||||
namespace Common
|
namespace Common;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für AnalogValue.xaml
|
/// Interaktionslogik für AnalogValue.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -29,4 +29,3 @@ namespace Common
|
|||||||
e.Handled = regex.IsMatch(e.Text);
|
e.Handled = regex.IsMatch(e.Text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
68
uniper_hmi/UniperHMI/Common/PackMLControl.xaml
Normal file
68
uniper_hmi/UniperHMI/Common/PackMLControl.xaml
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
<UserControl x:Class="Common.PackMLControl"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:common="clr-namespace:Common"
|
||||||
|
xmlns:HMIToolkit="clr-namespace:HMIToolkit"
|
||||||
|
d:DataContext="{d:DesignInstance Type=common:PackMLControlVM, IsDesignTimeCreatable=True}"
|
||||||
|
mc:Ignorable="d"
|
||||||
|
Width="Auto"
|
||||||
|
Height="Auto"
|
||||||
|
MinHeight="800"
|
||||||
|
MinWidth="500">
|
||||||
|
<UserControl.Resources>
|
||||||
|
<HMIToolkit:FeedbackToColorConverter x:Key="feedbackConverter"/>
|
||||||
|
</UserControl.Resources>
|
||||||
|
<!-- :DataContext="{d:DesignInstance Type=local:AnalogValueVM, IsDesignTimeCreatable=True}" -->
|
||||||
|
<!-- Style to see things in the designer-->
|
||||||
|
<d:DesignerProperties.DesignStyle>
|
||||||
|
<Style TargetType="UserControl">
|
||||||
|
<!--<Setter Property="Background" Value="Transparent" />-->
|
||||||
|
<Setter Property="Height" Value="300" />
|
||||||
|
<Setter Property="Width" Value="250" />
|
||||||
|
</Style>
|
||||||
|
</d:DesignerProperties.DesignStyle>
|
||||||
|
|
||||||
|
<Grid Height="Auto">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="250"/>
|
||||||
|
<ColumnDefinition Width="250"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="15*"/>
|
||||||
|
<RowDefinition Height="8*"/>
|
||||||
|
<RowDefinition Height="15*"/>
|
||||||
|
<RowDefinition Height="15*"/>
|
||||||
|
<RowDefinition Height="1*"/>
|
||||||
|
<RowDefinition Height="15*"/>
|
||||||
|
<RowDefinition Height="15*"/>
|
||||||
|
<RowDefinition Height="15*"/>
|
||||||
|
<RowDefinition Height="15*"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<Border Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" BorderBrush="White" BorderThickness="2"/>
|
||||||
|
<!-- <Label Grid.Column="0" Content="{Binding SName}" VerticalAlignment="Center" HorizontalAlignment="Left"/> -->
|
||||||
|
<Label Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Content="{Binding STitle}" HorizontalAlignment="Center" FontSize="44"/>
|
||||||
|
|
||||||
|
<Label Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Margin="10" Content="{Binding SCurrentState}" FontSize="32"/>
|
||||||
|
<Border Grid.Row="1" Grid.Column="0" Grid.RowSpan="1" Grid.ColumnSpan="2" BorderBrush="White" BorderThickness="1,1,1,0"></Border>
|
||||||
|
<Label Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Margin="10" Content="{Binding SCurrentMode}" FontSize="32"/>
|
||||||
|
<Border Grid.Row="2" Grid.Column="0" Grid.RowSpan="1" Grid.ColumnSpan="2" BorderBrush="White" BorderThickness="1,0,1,1"></Border>
|
||||||
|
|
||||||
|
|
||||||
|
<Border Grid.Row="0" Grid.Column="0" Grid.RowSpan="9" Grid.ColumnSpan="2" BorderBrush="White" BorderThickness="1"></Border>
|
||||||
|
<Border Grid.Row="4" Grid.Column="0" Grid.RowSpan="1" Grid.ColumnSpan="2" BorderBrush="White" BorderThickness="2"></Border>
|
||||||
|
|
||||||
|
<Button Visibility="Visible" Grid.Row="3" Grid.Column="0" Content="Produktion" Margin="5" DataContext="{Binding ProdModeButtonVm}" Command="{Binding ButtonClickedCommand}" IsEnabled="{Binding XRelease}" Background="{Binding IFeedback, Converter={StaticResource feedbackConverter}}" FontSize="32" />
|
||||||
|
<Button Visibility="Visible" Grid.Row="3" Grid.Column="1" Content="Manuell" Margin="5" DataContext="{Binding ManualModeButtonVm}" Command="{Binding ButtonClickedCommand}" IsEnabled="{Binding XRelease}" Background="{Binding IFeedback, Converter={StaticResource feedbackConverter}}" FontSize="32" />
|
||||||
|
<Button Visibility="Visible" Grid.Row="5" Grid.Column="0" Content="Clear" Margin="5" DataContext="{Binding ClearButtonVm}" Command="{Binding ButtonClickedCommand}" IsEnabled="{Binding XRelease}" Background="{Binding IFeedback, Converter={StaticResource feedbackConverter}}" FontSize="32" />
|
||||||
|
<Button Visibility="Visible" Grid.Row="5" Grid.Column="1" Content="Reset" Margin="5" DataContext="{Binding ResetButtonVm}" Command="{Binding ButtonClickedCommand}" IsEnabled="{Binding XRelease}" Background="{Binding IFeedback, Converter={StaticResource feedbackConverter}}" FontSize="32" />
|
||||||
|
<Button Visibility="Visible" Grid.Row="6" Grid.Column="0" Content="Abbruch" Margin="5" DataContext="{Binding AbortButtonVm}" Command="{Binding ButtonClickedCommand}" IsEnabled="{Binding XRelease}" Background="{Binding IFeedback, Converter={StaticResource feedbackConverter}}" FontSize="32" />
|
||||||
|
<Button Visibility="Visible" Grid.Row="6" Grid.Column="1" Content="Hold" Margin="5" DataContext="{Binding HoldButtonVm}" Command="{Binding ButtonClickedCommand}" IsEnabled="{Binding XRelease}" Background="{Binding IFeedback, Converter={StaticResource feedbackConverter}}" FontSize="32" />
|
||||||
|
<Button Visibility="Visible" Grid.Row="7" Grid.Column="0" Content="Stop" Margin="5" DataContext="{Binding StopButtonVm}" Command="{Binding ButtonClickedCommand}" IsEnabled="{Binding XRelease}" Background="{Binding IFeedback, Converter={StaticResource feedbackConverter}}" FontSize="32" />
|
||||||
|
<Button Visibility="Visible" Grid.Row="7" Grid.Column="1" Content="Suspend" Margin="5" DataContext="{Binding SuspendButtonVm}" Command="{Binding ButtonClickedCommand}" IsEnabled="{Binding XRelease}" Background="{Binding IFeedback, Converter={StaticResource feedbackConverter}}" FontSize="32" />
|
||||||
|
<Button Visibility="Visible" Grid.Row="8" Grid.Column="0" Content="Unhold" Margin="5" DataContext="{Binding UnholdButtonVm}" Command="{Binding ButtonClickedCommand}" IsEnabled="{Binding XRelease}" Background="{Binding IFeedback, Converter={StaticResource feedbackConverter}}" FontSize="32" />
|
||||||
|
<Button Visibility="Visible" Grid.Row="8" Grid.Column="1" Content="Unsuspend" Margin="5" DataContext="{Binding UnsuspendButtonVm}" Command="{Binding ButtonClickedCommand}" IsEnabled="{Binding XRelease}" Background="{Binding IFeedback, Converter={StaticResource feedbackConverter}}" FontSize="32" />
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
</UserControl>
|
||||||
@@ -13,16 +13,15 @@ using System.Windows.Media.Imaging;
|
|||||||
using System.Windows.Navigation;
|
using System.Windows.Navigation;
|
||||||
using System.Windows.Shapes;
|
using System.Windows.Shapes;
|
||||||
|
|
||||||
namespace UniperHMI
|
namespace Common;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für ModuleOverviewPage.xaml
|
/// Interaktionslogik für WorkingModeSelectionControl.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public partial class ModuleOverviewPage : Page
|
public partial class PackMLControl : UserControl
|
||||||
{
|
{
|
||||||
public ModuleOverviewPage()
|
public PackMLControl()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
201
uniper_hmi/UniperHMI/Common/PackMLControlVm.cs
Normal file
201
uniper_hmi/UniperHMI/Common/PackMLControlVm.cs
Normal file
@@ -0,0 +1,201 @@
|
|||||||
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using CommunityToolkit.Mvvm.Input;
|
||||||
|
using TwinCAT.TypeSystem;
|
||||||
|
using Heisig.HMI.AdsManager;
|
||||||
|
using HMIToolkit;
|
||||||
|
using InfineonHMI.Common;
|
||||||
|
|
||||||
|
namespace Common;
|
||||||
|
|
||||||
|
public sealed partial class PackMLControlVM : ObservableValidator, IDisposable
|
||||||
|
{
|
||||||
|
|
||||||
|
private IAdsManager _adsManager;
|
||||||
|
private readonly string _variableName;
|
||||||
|
|
||||||
|
[ObservableProperty] private string? sTitle;
|
||||||
|
|
||||||
|
[ObservableProperty] private string? sCurrentMode;
|
||||||
|
|
||||||
|
[ObservableProperty] private string? sCurrentState;
|
||||||
|
|
||||||
|
[ObservableProperty] private HMIControlButtonVM? prodModeButtonVm;
|
||||||
|
[ObservableProperty] private HMIControlButtonVM? manualModeButtonVm;
|
||||||
|
[ObservableProperty] private HMIControlButtonVM? clearButtonVm;
|
||||||
|
[ObservableProperty] private HMIControlButtonVM? resetButtonVm;
|
||||||
|
[ObservableProperty] private HMIControlButtonVM? startButtonVm;
|
||||||
|
[ObservableProperty] private HMIControlButtonVM? abortButtonVm;
|
||||||
|
[ObservableProperty] private HMIControlButtonVM? holdButtonVm;
|
||||||
|
[ObservableProperty] private HMIControlButtonVM? stopButtonVm;
|
||||||
|
[ObservableProperty] private HMIControlButtonVM? suspendButtonVm;
|
||||||
|
[ObservableProperty] private HMIControlButtonVM? unholdButtonVm;
|
||||||
|
[ObservableProperty] private HMIControlButtonVM? unsuspendButtonVm;
|
||||||
|
|
||||||
|
[ObservableProperty] private bool canUserInteract;
|
||||||
|
|
||||||
|
public PackMLControlVM()
|
||||||
|
{
|
||||||
|
SCurrentMode = "Modus: ";
|
||||||
|
SCurrentState = "Aktueller Zustand: ";
|
||||||
|
STitle = "Betriebsart";
|
||||||
|
ProdModeButtonVm = new();
|
||||||
|
ManualModeButtonVm = new();
|
||||||
|
ClearButtonVm= new();
|
||||||
|
ResetButtonVm= new();
|
||||||
|
StartButtonVm = new();
|
||||||
|
AbortButtonVm = new();
|
||||||
|
HoldButtonVm = new();
|
||||||
|
StopButtonVm = new();
|
||||||
|
SuspendButtonVm = new();
|
||||||
|
UnholdButtonVm = new();
|
||||||
|
UnsuspendButtonVm = new();
|
||||||
|
|
||||||
|
var currentUser = Users.getCurrentUser();
|
||||||
|
canUserInteract = currentUser.UserLevel > 50;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PackMLControlVM(IAdsManager adsManager, string variableName)
|
||||||
|
{
|
||||||
|
|
||||||
|
_adsManager = adsManager;
|
||||||
|
_variableName = variableName;
|
||||||
|
STitle = "Betriebsart";
|
||||||
|
|
||||||
|
SCurrentMode = "Modus: ";
|
||||||
|
SCurrentState = "Aktueller Zustand: ";
|
||||||
|
|
||||||
|
ProdModeButtonVm = new(_adsManager, _variableName + ".stBtnProdMode");
|
||||||
|
ManualModeButtonVm = new(_adsManager, _variableName + ".stBtnManualMode");
|
||||||
|
ClearButtonVm = new(_adsManager, _variableName + ".stBtnClear");
|
||||||
|
ResetButtonVm = new(_adsManager, _variableName + ".stBtnReset");
|
||||||
|
StartButtonVm = new(_adsManager, _variableName + ".stBtnStart");
|
||||||
|
AbortButtonVm = new(_adsManager, _variableName + ".stBtnAbort");
|
||||||
|
HoldButtonVm = new(_adsManager, _variableName + ".stBtnHold");
|
||||||
|
StopButtonVm = new(_adsManager, _variableName + ".stBtnStop");
|
||||||
|
SuspendButtonVm = new(_adsManager, _variableName + ".stBtnSuspend");
|
||||||
|
UnholdButtonVm = new(_adsManager, _variableName + ".stBtnUnhold");
|
||||||
|
UnsuspendButtonVm = new(_adsManager, _variableName + ".stBtnUnsuspend");
|
||||||
|
|
||||||
|
_adsManager.Register(_variableName + ".eCurrentState", StateChanged);
|
||||||
|
_adsManager.Register(_variableName + ".eCurrentMode", ModeChanged);
|
||||||
|
|
||||||
|
var currentUser = Users.getCurrentUser();
|
||||||
|
canUserInteract = currentUser.UserLevel > 50;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void StateChanged(object? sender, ValueChangedEventArgs e)
|
||||||
|
{
|
||||||
|
var state = (int)e.Value;
|
||||||
|
var curState = "Aktueller Status: ";
|
||||||
|
switch (state)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
curState += "Undefined";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
curState += "Clearing";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
curState += "Stopped";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
curState += "Starting";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
curState += "Idle";
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
curState += "Suspended";
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
curState += "Execute";
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
curState += "Stopping";
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
curState += "Aborting";
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
curState += "Aborted";
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
curState += "Holding";
|
||||||
|
break;
|
||||||
|
case 11:
|
||||||
|
curState += "Held";
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
curState += "Unholding";
|
||||||
|
break;
|
||||||
|
case 13:
|
||||||
|
curState += "Suspending";
|
||||||
|
break;
|
||||||
|
case 14:
|
||||||
|
curState += "Unsuspending";
|
||||||
|
break;
|
||||||
|
case 15:
|
||||||
|
curState += "Resetting";
|
||||||
|
break;
|
||||||
|
case 16:
|
||||||
|
curState += "Completing";
|
||||||
|
break;
|
||||||
|
case 17:
|
||||||
|
curState += "Completed";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
curState += "Undefined";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
SCurrentState = curState;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ModeChanged(object? sender, ValueChangedEventArgs e)
|
||||||
|
{
|
||||||
|
var curMode = "Aktueller Modus: ";
|
||||||
|
var mode = (int)e.Value;
|
||||||
|
|
||||||
|
switch (mode)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
curMode += "Invalid";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
curMode += "Production";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
curMode += "Maintenance";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
curMode += "Manual";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
curMode += "change_over";
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
curMode += "clean";
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
curMode += "set up";
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
curMode += "empty out";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
curMode += "Invalid";
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
SCurrentMode = curMode;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -6,27 +6,20 @@
|
|||||||
xmlns:local="clr-namespace:Common"
|
xmlns:local="clr-namespace:Common"
|
||||||
d:DataContext="{d:DesignInstance Type=local:ParamControlFloatVm, IsDesignTimeCreatable=True}"
|
d:DataContext="{d:DesignInstance Type=local:ParamControlFloatVm, IsDesignTimeCreatable=True}"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
|
d:DesignWidth="600"
|
||||||
|
d:DesignHeight="120"
|
||||||
Width="Auto"
|
Width="Auto"
|
||||||
Height="Auto">
|
Height="Auto">
|
||||||
<!-- :DataContext="{d:DesignInstance Type=local:AnalogValueVM, IsDesignTimeCreatable=True}" -->
|
<Grid Height="70">
|
||||||
<!-- Style to see things in the designer-->
|
|
||||||
<d:DesignerProperties.DesignStyle>
|
|
||||||
<Style TargetType="UserControl">
|
|
||||||
<!-- Property="Background" Value="White" /> -->
|
|
||||||
<Setter Property="Height" Value="40" />
|
|
||||||
<Setter Property="Width" Value="280" />
|
|
||||||
</Style>
|
|
||||||
</d:DesignerProperties.DesignStyle>
|
|
||||||
<Grid Height="Auto">
|
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<!-- <ColumnDefinition Width="Auto" /> -->
|
<!-- <ColumnDefinition Width="Auto" /> -->
|
||||||
<ColumnDefinition Width="*" />
|
<ColumnDefinition Width="400" />
|
||||||
<ColumnDefinition Width="Auto" />
|
<ColumnDefinition Width="200" />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<!-- <Label Grid.Column="0" Content="{Binding SName}" VerticalAlignment="Center" HorizontalAlignment="Left"/> -->
|
<!-- <Label Grid.Column="0" Content="{Binding SName}" VerticalAlignment="Center" HorizontalAlignment="Left"/> -->
|
||||||
<Label x:Name="tbName" Grid.Column="0" Content="{Binding SName, Mode=OneWay }" Width="200"/>
|
<Label x:Name="tbName" Grid.Column="0" Content="{Binding SName, Mode=OneWay }" FontSize="30" VerticalAlignment="Center"/>
|
||||||
<TextBox x:Name="tbValue" Text="{Binding Value, Mode=TwoWay, StringFormat=N2}" Grid.Column="1" MaxLines="1" Width="80" HorizontalContentAlignment="Right" VerticalContentAlignment="Center" IsReadOnly="{Binding Readonly}" />
|
<TextBox x:Name="tbValue" Text="{Binding Value, Mode=TwoWay, StringFormat=N2}" Margin="10" Width="Auto" FontSize="30" Grid.Column="1" MaxLines="1" HorizontalContentAlignment="Right" VerticalContentAlignment="Center" IsReadOnly="{Binding Readonly}" />
|
||||||
|
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
|
|
||||||
namespace Common
|
namespace Common;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für AnalogValue.xaml
|
/// Interaktionslogik für AnalogValue.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -29,4 +29,3 @@ namespace Common
|
|||||||
e.Handled = regex.IsMatch(e.Text);
|
e.Handled = regex.IsMatch(e.Text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -6,27 +6,20 @@
|
|||||||
xmlns:common="clr-namespace:Common"
|
xmlns:common="clr-namespace:Common"
|
||||||
d:DataContext="{d:DesignInstance Type=common:ParamControlIntVm, IsDesignTimeCreatable=True}"
|
d:DataContext="{d:DesignInstance Type=common:ParamControlIntVm, IsDesignTimeCreatable=True}"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
|
d:DesignWidth="600"
|
||||||
|
d:DesignHeight="120"
|
||||||
Width="Auto"
|
Width="Auto"
|
||||||
Height="Auto">
|
Height="Auto">
|
||||||
<!-- :DataContext="{d:DesignInstance Type=local:AnalogValueVM, IsDesignTimeCreatable=True}" -->
|
<Grid Height="70">
|
||||||
<!-- Style to see things in the designer-->
|
|
||||||
<d:DesignerProperties.DesignStyle>
|
|
||||||
<Style TargetType="UserControl">
|
|
||||||
<!-- Property="Background" Value="White" /> -->
|
|
||||||
<Setter Property="Height" Value="40" />
|
|
||||||
<Setter Property="Width" Value="280" />
|
|
||||||
</Style>
|
|
||||||
</d:DesignerProperties.DesignStyle>
|
|
||||||
<Grid Height="Auto">
|
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<!-- <ColumnDefinition Width="Auto" /> -->
|
<!-- <ColumnDefinition Width="Auto" /> -->
|
||||||
<ColumnDefinition Width="*" />
|
<ColumnDefinition Width="400" />
|
||||||
<ColumnDefinition Width="Auto" />
|
<ColumnDefinition Width="200" />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<!-- <Label Grid.Column="0" Content="{Binding SName}" VerticalAlignment="Center" HorizontalAlignment="Left"/> -->
|
<!-- <Label Grid.Column="0" Content="{Binding SName}" VerticalAlignment="Center" HorizontalAlignment="Left"/> -->
|
||||||
<Label x:Name="tbName" Grid.Column="0" Content="{Binding SName, Mode=OneWay }" Width="200"/>
|
<Label x:Name="tbName" Grid.Column="0" Content="{Binding SName, Mode=OneWay }" FontSize="30" VerticalAlignment="Center"/>
|
||||||
<TextBox x:Name="tbValue" Text="{Binding Value, Mode=TwoWay}" Grid.Column="1" MaxLines="1" Width="80" HorizontalContentAlignment="Right" VerticalContentAlignment="Center" IsReadOnly="{Binding Readonly}" />
|
<TextBox x:Name="tbValue" Text="{Binding Value, Mode=TwoWay}" Margin="10" Width="Auto" FontSize="30" Grid.Column="1" MaxLines="1" HorizontalContentAlignment="Right" VerticalContentAlignment="Center" IsReadOnly="{Binding Readonly}" />
|
||||||
|
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
|
|
||||||
namespace Common
|
namespace Common;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für AnalogValue.xaml
|
/// Interaktionslogik für AnalogValue.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -29,4 +29,3 @@ namespace Common
|
|||||||
e.Handled = regex.IsMatch(e.Text);
|
e.Handled = regex.IsMatch(e.Text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
57
uniper_hmi/UniperHMI/Common/User.cs
Normal file
57
uniper_hmi/UniperHMI/Common/User.cs
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace InfineonHMI.Common;
|
||||||
|
|
||||||
|
public static class Users
|
||||||
|
{
|
||||||
|
|
||||||
|
private static User CurrentUser { get; set; }
|
||||||
|
public static ObservableCollection<User> UsersCollection { get; set; }
|
||||||
|
|
||||||
|
public static void setCurrentUser(User u)
|
||||||
|
{
|
||||||
|
CurrentUser = new User(u);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static User getCurrentUser()
|
||||||
|
{
|
||||||
|
if (CurrentUser == null)
|
||||||
|
CurrentUser = new User("undefined", "undef", 0);
|
||||||
|
|
||||||
|
return CurrentUser;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public class User
|
||||||
|
{
|
||||||
|
public string? UserName { get; set; }
|
||||||
|
|
||||||
|
public string PasswordHash { get; set; }
|
||||||
|
|
||||||
|
public int UserLevel { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public User()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public User(User u)
|
||||||
|
{
|
||||||
|
UserName = u.UserName;
|
||||||
|
PasswordHash = u.PasswordHash;
|
||||||
|
UserLevel = u.UserLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public User(string name, string hash, int level)
|
||||||
|
{
|
||||||
|
UserName = name;
|
||||||
|
PasswordHash = hash;
|
||||||
|
UserLevel = level;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
52
uniper_hmi/UniperHMI/Common/UserManagementWindow.xaml
Normal file
52
uniper_hmi/UniperHMI/Common/UserManagementWindow.xaml
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
<Window x:Class="InfineonHMI.Common.UserManagementWindow"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:common="clr-namespace:Common"
|
||||||
|
d:DesignHeight="800" d:DesignWidth="1500"
|
||||||
|
d:DataContext="{d:DesignInstance Type=common:UserManagementWindowVm, IsDesignTimeCreatable=True}"
|
||||||
|
mc:Ignorable="d"
|
||||||
|
Title="Benutzer anmelden"
|
||||||
|
Icon="../Resources/user.png"
|
||||||
|
Height="800"
|
||||||
|
Width="1500"
|
||||||
|
Background="Black">
|
||||||
|
<Grid Margin="20">
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="*"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="550"/>
|
||||||
|
<ColumnDefinition Width="*"/>
|
||||||
|
<ColumnDefinition Width="400"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
<Label Grid.Row="0" Grid.Column="0" Content="Benutzername:" FontSize="50" Margin="20"/>
|
||||||
|
<ComboBox Grid.Row="0"
|
||||||
|
Grid.Column="1"
|
||||||
|
FontSize="40"
|
||||||
|
Margin="20"
|
||||||
|
ItemsSource="{Binding SavedUsers}" SelectedItem="{Binding SelectedUsername}"/>
|
||||||
|
<Button Grid.Row="0" Grid.Column="2"
|
||||||
|
Margin="20" Content="Löschen" FontSize="40" Command="{Binding DeleteUserCommand}"/>
|
||||||
|
|
||||||
|
<Label Grid.Column="0" Grid.Row="1" Content="Neuer Benutzer: " FontSize="50" Margin="20" />
|
||||||
|
<TextBox Grid.Column="1" Grid.Row="1" Margin="20" Text="{Binding NewUser}"/>
|
||||||
|
<Button Grid.Row="1" Grid.Column="2" Margin="20" Content="Anmelden" FontSize="40" Command="{Binding LoginCommand}"/>
|
||||||
|
|
||||||
|
<Label Grid.Column="0" Grid.Row="2" Content="Passwort: " FontSize="50" Margin="20" />
|
||||||
|
<TextBox Grid.Column="1" Grid.Row="2" FontSize="50" Margin="20" Text="{Binding SelectedUserPassword, UpdateSourceTrigger=PropertyChanged}" Foreground="Transparent" Background="Transparent" />
|
||||||
|
<Button Grid.Row="2" Grid.Column="2" Margin="20" Content="Erstellen" FontSize="40" Command="{Binding CreateUserCommand}" IsEnabled="{Binding IsCreateCommandEnabled}"/>
|
||||||
|
|
||||||
|
<Label Grid.Column="0" Grid.Row="3" Content="Passwort wiederholen: " FontSize="50" Margin="20" />
|
||||||
|
<TextBox Grid.Column="1" Grid.Row="3" FontSize="50" Margin="20" Text="{Binding SelectedUserPasswordWdh, UpdateSourceTrigger=PropertyChanged}" Foreground="Transparent" Background="Transparent"/>
|
||||||
|
|
||||||
|
<Button Grid.Row="5" Grid.Column="2" Height="80" Margin="20" Content="Abmelden" FontSize="40" Command="{Binding LogoffCommand}"/>
|
||||||
|
</Grid>
|
||||||
|
</Window>
|
||||||
17
uniper_hmi/UniperHMI/Common/UserManagementWindow.xaml.cs
Normal file
17
uniper_hmi/UniperHMI/Common/UserManagementWindow.xaml.cs
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
using System.Windows;
|
||||||
|
|
||||||
|
namespace InfineonHMI.Common;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Login or change user dialog.
|
||||||
|
/// </summary>
|
||||||
|
public partial class UserManagementWindow
|
||||||
|
{
|
||||||
|
public UserManagementWindow()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
// Center dialog to MainWindow
|
||||||
|
Owner = Application.Current.MainWindow;
|
||||||
|
WindowStartupLocation = WindowStartupLocation.CenterOwner;
|
||||||
|
}
|
||||||
|
}
|
||||||
213
uniper_hmi/UniperHMI/Common/UserManagementWindowVm.cs
Normal file
213
uniper_hmi/UniperHMI/Common/UserManagementWindowVm.cs
Normal file
@@ -0,0 +1,213 @@
|
|||||||
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
|
using CommunityToolkit.Mvvm.Input;
|
||||||
|
using Heisig.HMI.AdsManager;
|
||||||
|
using HMIToolkit;
|
||||||
|
using InfineonHMI.Common;
|
||||||
|
using MahApps.Metro.Controls;
|
||||||
|
using Microsoft.Win32;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.Drawing.Text;
|
||||||
|
using System.Security;
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Controls;
|
||||||
|
using System.Windows.Input;
|
||||||
|
using TwinCAT.TypeSystem;
|
||||||
|
|
||||||
|
namespace Common;
|
||||||
|
|
||||||
|
public sealed partial class UserManagementWindowVm : ObservableValidator
|
||||||
|
{
|
||||||
|
|
||||||
|
private IAdsManager _adsManager;
|
||||||
|
private readonly string _variableName;
|
||||||
|
|
||||||
|
[ObservableProperty] private string? selectedUsername;
|
||||||
|
|
||||||
|
[ObservableProperty] private string newUser;
|
||||||
|
|
||||||
|
[ObservableProperty] private ObservableCollection<string>? savedUsers;
|
||||||
|
|
||||||
|
private ObservableCollection<User> users;
|
||||||
|
|
||||||
|
private UserManagementWindow dlg = new UserManagementWindow();
|
||||||
|
|
||||||
|
private string selectedUserPassword;
|
||||||
|
|
||||||
|
private string filePath = "C:\\ProgramData\\InfineonHMI_UserData\\Userdata.xml";
|
||||||
|
|
||||||
|
private string selectedUserPasswordWdh;
|
||||||
|
public User CurrentUser { get; set; }
|
||||||
|
public string SelectedUserPassword
|
||||||
|
{
|
||||||
|
get { return selectedUserPassword; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
SetProperty(ref selectedUserPassword, value);
|
||||||
|
IsCreateCommandEnabled = SelectedUserPasswordWdh.Equals(value) && !string.IsNullOrEmpty(value)&& CurrentUser.UserLevel>0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string? SelectedUserPasswordWdh
|
||||||
|
{
|
||||||
|
get { return selectedUserPasswordWdh; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
SetProperty(ref selectedUserPasswordWdh, value);
|
||||||
|
IsCreateCommandEnabled = SelectedUserPassword.Equals(value) && !string.IsNullOrEmpty(value) && CurrentUser.UserLevel > 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[ObservableProperty] private bool isCreateCommandEnabled;
|
||||||
|
|
||||||
|
|
||||||
|
public UserManagementWindowVm()
|
||||||
|
{
|
||||||
|
IsCreateCommandEnabled = false;
|
||||||
|
CurrentUser = new("default", "default", 0);
|
||||||
|
users = L4ItXmlSerializer.DeSerializeObject<ObservableCollection<User>>(filePath);
|
||||||
|
savedUsers = new ObservableCollection<string>();
|
||||||
|
foreach (var user in users)
|
||||||
|
{
|
||||||
|
if (user.UserName != null)
|
||||||
|
savedUsers.Add(user.UserName);
|
||||||
|
}
|
||||||
|
|
||||||
|
selectedUserPassword = "";
|
||||||
|
selectedUserPasswordWdh = "";
|
||||||
|
selectedUsername = "";
|
||||||
|
SelectedUserPasswordWdh = "";
|
||||||
|
SelectedUserPassword = "";
|
||||||
|
SelectedUsername = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserManagementWindowVm(User curUser)
|
||||||
|
{
|
||||||
|
IsCreateCommandEnabled = true;
|
||||||
|
if (curUser != null)
|
||||||
|
{
|
||||||
|
CurrentUser = curUser;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CurrentUser = new User("unknown", "default", 100);
|
||||||
|
}
|
||||||
|
users = L4ItXmlSerializer.DeSerializeObject<ObservableCollection<User>>(filePath);
|
||||||
|
savedUsers = new ObservableCollection<string>();
|
||||||
|
if (users == null)
|
||||||
|
{
|
||||||
|
users = new ObservableCollection<User>();
|
||||||
|
users.Add(new User("default", "ssW+1nwLrdWTKi1tkE/pfQ==", 100));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
foreach (var user in users)
|
||||||
|
{
|
||||||
|
if(user.UserName != null)
|
||||||
|
savedUsers.Add(user.UserName);
|
||||||
|
}
|
||||||
|
|
||||||
|
selectedUserPassword = "";
|
||||||
|
selectedUserPasswordWdh = "";
|
||||||
|
selectedUsername = "";
|
||||||
|
SelectedUserPasswordWdh = "";
|
||||||
|
SelectedUserPassword = "";
|
||||||
|
SelectedUsername = "";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public User GetCurrentUserLevel()
|
||||||
|
{
|
||||||
|
dlg.DataContext = this;
|
||||||
|
|
||||||
|
dlg.ShowDialog();
|
||||||
|
|
||||||
|
return CurrentUser;
|
||||||
|
}
|
||||||
|
|
||||||
|
[RelayCommand]
|
||||||
|
private void Login()
|
||||||
|
{
|
||||||
|
|
||||||
|
User userInFile = new User("default", "default", 0);
|
||||||
|
bool userFound = false;
|
||||||
|
foreach (var user in users)
|
||||||
|
{
|
||||||
|
if (user.UserName.Equals(SelectedUsername))
|
||||||
|
{
|
||||||
|
userInFile = user;
|
||||||
|
userFound = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (userFound && CheckPassword(userInFile))
|
||||||
|
{
|
||||||
|
CurrentUser = userInFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
dlg.Close();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[RelayCommand]
|
||||||
|
private void Logoff()
|
||||||
|
{
|
||||||
|
CurrentUser = new User("default", "default", 0);
|
||||||
|
dlg.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
[RelayCommand]
|
||||||
|
private void CreateUser()
|
||||||
|
{
|
||||||
|
if(!SelectedUserPassword.Equals(SelectedUserPasswordWdh))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (users == null)
|
||||||
|
users = new ();
|
||||||
|
var u = new User
|
||||||
|
{
|
||||||
|
UserName = NewUser,
|
||||||
|
PasswordHash = L4ItXmlSerializer.Encrypt(SelectedUserPassword),
|
||||||
|
UserLevel = 100,
|
||||||
|
};
|
||||||
|
|
||||||
|
users.Add(new User(u));
|
||||||
|
SavedUsers.Add(NewUser);
|
||||||
|
|
||||||
|
SelectedUserPassword = "";
|
||||||
|
SelectedUserPasswordWdh = "";
|
||||||
|
|
||||||
|
L4ItXmlSerializer.SerializeObject(users, filePath);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[RelayCommand]
|
||||||
|
private void DeleteUser()
|
||||||
|
{
|
||||||
|
if (SelectedUsername.Equals("default"))
|
||||||
|
return;
|
||||||
|
|
||||||
|
users.Remove(users.First(user => user.UserName.Equals(SelectedUsername)));
|
||||||
|
|
||||||
|
SavedUsers = new ObservableCollection<string>();
|
||||||
|
foreach (var user in users)
|
||||||
|
{
|
||||||
|
SavedUsers.Add(user.UserName);
|
||||||
|
}
|
||||||
|
|
||||||
|
L4ItXmlSerializer.SerializeObject(users, filePath);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool CheckPassword(User user)
|
||||||
|
{
|
||||||
|
var hashcode = L4ItXmlSerializer.Decrypt(user.PasswordHash);
|
||||||
|
if (hashcode.Equals(SelectedUserPassword))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
34
uniper_hmi/UniperHMI/Common/WorkingmodeToColorConverter.cs
Normal file
34
uniper_hmi/UniperHMI/Common/WorkingmodeToColorConverter.cs
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
using System.Diagnostics.Eventing.Reader;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Data;
|
||||||
|
|
||||||
|
namespace Common;
|
||||||
|
|
||||||
|
class WorkingmodeToColorConverter : IValueConverter
|
||||||
|
{
|
||||||
|
public Object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (targetType != typeof(System.Windows.Media.Brush))
|
||||||
|
throw new InvalidOperationException("The target must be a brush");
|
||||||
|
|
||||||
|
|
||||||
|
#pragma warning disable CS8604 // Mögliches Nullverweisargument.
|
||||||
|
var selected = (bool)value;
|
||||||
|
#pragma warning restore CS8604 // Mögliches Nullverweisargument.
|
||||||
|
|
||||||
|
if (selected)
|
||||||
|
{
|
||||||
|
return System.Windows.Media.Brushes.LightSeaGreen;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{ return DependencyProperty.UnsetValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
return DependencyProperty.UnsetValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,8 +2,8 @@
|
|||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Data;
|
using System.Windows.Data;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
public class DateTimeToEventTimeConverter : IValueConverter
|
public class DateTimeToEventTimeConverter : IValueConverter
|
||||||
{
|
{
|
||||||
// 599264352000000000 ticks is a date used by beckhoff for events that didnt happen up to this point
|
// 599264352000000000 ticks is a date used by beckhoff for events that didnt happen up to this point
|
||||||
@@ -30,4 +30,3 @@ namespace InfineonHMI
|
|||||||
return DependencyProperty.UnsetValue;
|
return DependencyProperty.UnsetValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.Windows;
|
using System.Windows;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für BinaryValveWindow.xaml
|
/// Interaktionslogik für BinaryValveWindow.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -12,4 +12,3 @@ namespace InfineonHMI
|
|||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
|
|
||||||
namespace HMIToolkit
|
namespace HMIToolkit;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für AnalogMotorControl.xaml
|
/// Interaktionslogik für AnalogMotorControl.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -20,4 +20,3 @@ namespace HMIToolkit
|
|||||||
disposable?.Dispose();
|
disposable?.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
using TwinCAT.TypeSystem;
|
using TwinCAT.TypeSystem;
|
||||||
using Heisig.HMI.AdsManager;
|
using Heisig.HMI.AdsManager;
|
||||||
|
|
||||||
namespace HMIToolkit
|
namespace HMIToolkit;
|
||||||
{
|
|
||||||
public sealed partial class AnalogMotorControlVM : ObservableObject
|
public sealed partial class AnalogMotorControlVM : ObservableObject
|
||||||
{
|
{
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
@@ -80,4 +80,3 @@ namespace HMIToolkit
|
|||||||
SName = (string)e.Value;
|
SName = (string)e.Value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
namespace HMIToolkit
|
namespace HMIToolkit;
|
||||||
{
|
|
||||||
public sealed partial class AnalogRangeValidator : ValidationRule
|
public sealed partial class AnalogRangeValidator : ValidationRule
|
||||||
{
|
{
|
||||||
public float Min { get; set; }
|
public float Min { get; set; }
|
||||||
@@ -30,4 +30,3 @@ namespace HMIToolkit
|
|||||||
return ValidationResult.ValidResult;
|
return ValidationResult.ValidResult;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
|
|
||||||
namespace HMIToolkit
|
namespace HMIToolkit;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für AnalogValue.xaml
|
/// Interaktionslogik für AnalogValue.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -29,4 +29,3 @@ namespace HMIToolkit
|
|||||||
e.Handled = regex.IsMatch(e.Text);
|
e.Handled = regex.IsMatch(e.Text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ using System.Windows.Media.Imaging;
|
|||||||
using System.Windows.Navigation;
|
using System.Windows.Navigation;
|
||||||
using System.Windows.Shapes;
|
using System.Windows.Shapes;
|
||||||
|
|
||||||
namespace HMIToolkit
|
namespace HMIToolkit;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für AnalogValveControl.xaml
|
/// Interaktionslogik für AnalogValveControl.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -32,4 +32,3 @@ namespace HMIToolkit
|
|||||||
disposable?.Dispose();
|
disposable?.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
using TwinCAT.TypeSystem;
|
using TwinCAT.TypeSystem;
|
||||||
using Heisig.HMI.AdsManager;
|
using Heisig.HMI.AdsManager;
|
||||||
|
|
||||||
namespace HMIToolkit
|
namespace HMIToolkit;
|
||||||
{
|
|
||||||
public sealed partial class AnalogValveControlVM : ObservableObject
|
public sealed partial class AnalogValveControlVM : ObservableObject
|
||||||
{
|
{
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
@@ -80,4 +80,3 @@ namespace HMIToolkit
|
|||||||
SName = (string)e.Value;
|
SName = (string)e.Value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
<Setter Property="Width" Value="Auto" />
|
<Setter Property="Width" Value="Auto" />
|
||||||
</Style>
|
</Style>
|
||||||
</d:DesignerProperties.DesignStyle>
|
</d:DesignerProperties.DesignStyle>
|
||||||
|
<Border BorderThickness="2" BorderBrush="White">
|
||||||
<Grid Margin="5">
|
<Grid Margin="5">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="55" />
|
<RowDefinition Height="55" />
|
||||||
@@ -73,4 +73,5 @@
|
|||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
</Border>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ using System.Windows.Media.Imaging;
|
|||||||
using System.Windows.Navigation;
|
using System.Windows.Navigation;
|
||||||
using System.Windows.Shapes;
|
using System.Windows.Shapes;
|
||||||
|
|
||||||
namespace HMIToolkit
|
namespace HMIToolkit;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für BinaryValveControl.xaml
|
/// Interaktionslogik für BinaryValveControl.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -32,4 +32,3 @@ namespace HMIToolkit
|
|||||||
disposable?.Dispose();
|
disposable?.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ using Heisig.HMI.AdsManager;
|
|||||||
|
|
||||||
// {Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.OpenButton}
|
// {Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.OpenButton}
|
||||||
|
|
||||||
namespace HMIToolkit
|
namespace HMIToolkit;
|
||||||
{
|
|
||||||
public sealed partial class BinaryValveControlVM : ObservableObject, IDisposable
|
public sealed partial class BinaryValveControlVM : ObservableObject, IDisposable
|
||||||
{
|
{
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
@@ -67,4 +67,3 @@ namespace HMIToolkit
|
|||||||
SName = (string)e.Value;
|
SName = (string)e.Value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ using System.Windows;
|
|||||||
using System.Windows.Data;
|
using System.Windows.Data;
|
||||||
using System.Windows.Media;
|
using System.Windows.Media;
|
||||||
|
|
||||||
namespace HMIToolkit
|
namespace HMIToolkit;
|
||||||
{
|
|
||||||
public class BoolToBrushConverter : IValueConverter
|
public class BoolToBrushConverter : IValueConverter
|
||||||
{
|
{
|
||||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
@@ -22,4 +22,3 @@ namespace HMIToolkit
|
|||||||
return DependencyProperty.UnsetValue;
|
return DependencyProperty.UnsetValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ using CommunityToolkit.Mvvm.Input;
|
|||||||
using TwinCAT.TypeSystem;
|
using TwinCAT.TypeSystem;
|
||||||
using Heisig.HMI.AdsManager;
|
using Heisig.HMI.AdsManager;
|
||||||
|
|
||||||
namespace HMIToolkit
|
namespace HMIToolkit;
|
||||||
{
|
|
||||||
public sealed partial class HMIControlButtonVM : ObservableObject, IDisposable
|
public sealed partial class HMIControlButtonVM : ObservableObject, IDisposable
|
||||||
{
|
{
|
||||||
private IAdsManager? _adsManager;
|
private IAdsManager? _adsManager;
|
||||||
@@ -71,4 +71,3 @@ namespace HMIToolkit
|
|||||||
FeedbackChanged?.Invoke(this, EventArgs.Empty);
|
FeedbackChanged?.Invoke(this, EventArgs.Empty);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ using System.Windows.Media.Imaging;
|
|||||||
using System.Windows.Navigation;
|
using System.Windows.Navigation;
|
||||||
using System.Windows.Shapes;
|
using System.Windows.Shapes;
|
||||||
|
|
||||||
namespace HMIToolkit
|
namespace HMIToolkit;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für ProcessIntlkButtonControl.xaml
|
/// Interaktionslogik für ProcessIntlkButtonControl.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -32,4 +32,3 @@ namespace HMIToolkit
|
|||||||
disposable?.Dispose();
|
disposable?.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ using System.Windows.Media.Imaging;
|
|||||||
using System.Windows.Navigation;
|
using System.Windows.Navigation;
|
||||||
using System.Windows.Shapes;
|
using System.Windows.Shapes;
|
||||||
|
|
||||||
namespace HMIToolkit
|
namespace HMIToolkit;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für IntlkDetails.xaml
|
/// Interaktionslogik für IntlkDetails.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -32,4 +32,3 @@ namespace HMIToolkit
|
|||||||
disposable?.Dispose();
|
disposable?.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ using System.Windows.Controls;
|
|||||||
using TwinCAT.TypeSystem;
|
using TwinCAT.TypeSystem;
|
||||||
using Heisig.HMI.AdsManager;
|
using Heisig.HMI.AdsManager;
|
||||||
|
|
||||||
namespace HMIToolkit
|
namespace HMIToolkit;
|
||||||
{
|
|
||||||
public sealed partial class IntlkDetailsVM : ObservableObject, IDisposable
|
public sealed partial class IntlkDetailsVM : ObservableObject, IDisposable
|
||||||
{
|
{
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
@@ -148,4 +148,3 @@ namespace HMIToolkit
|
|||||||
InterlockNames = (string[])e.Value;
|
InterlockNames = (string[])e.Value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ using System.Windows.Media;
|
|||||||
using System.Windows.Media.Imaging;
|
using System.Windows.Media.Imaging;
|
||||||
using System.Windows.Shapes;
|
using System.Windows.Shapes;
|
||||||
|
|
||||||
namespace HMIToolkit
|
namespace HMIToolkit;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für IntlkDetailsWindow.xaml
|
/// Interaktionslogik für IntlkDetailsWindow.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -24,4 +24,3 @@ namespace HMIToolkit
|
|||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace HMIToolkit
|
namespace HMIToolkit;
|
||||||
{
|
|
||||||
// PLC - C#
|
// PLC - C#
|
||||||
// --------
|
// --------
|
||||||
// int - short
|
// int - short
|
||||||
@@ -215,4 +214,3 @@ namespace HMIToolkit
|
|||||||
return temp;
|
return temp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -14,6 +14,8 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Remove="Anlagenuebersicht.png" />
|
<None Remove="Anlagenuebersicht.png" />
|
||||||
|
<None Remove="Resources\Application.png" />
|
||||||
|
<None Remove="Resources\user.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -35,6 +37,8 @@
|
|||||||
<Resource Include="Anlagenuebersicht.png">
|
<Resource Include="Anlagenuebersicht.png">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Resource>
|
</Resource>
|
||||||
|
<Resource Include="Resources\Application.png" />
|
||||||
|
<Resource Include="Resources\user.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -4,12 +4,19 @@
|
|||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:system="clr-namespace:System;assembly=System.Runtime"
|
xmlns:system="clr-namespace:System;assembly=System.Runtime"
|
||||||
xmlns:uniperHmi="clr-namespace:InfineonHMI"
|
xmlns:infineonHmi="clr-namespace:InfineonHMI"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
x:Name="MainControlWindow"
|
x:Name="MainControlWindow"
|
||||||
d:DataContext="{d:DesignInstance Type=uniperHmi:MainWindowVM}"
|
d:DataContext="{d:DesignInstance Type=infineonHmi:MainWindowVM}"
|
||||||
WindowStartupLocation="CenterScreen"
|
WindowStartupLocation="CenterScreen"
|
||||||
Title="Infineon BiPolar" Height="2100" Width="3820" ResizeMode="NoResize">
|
|
||||||
|
Title="Infineon HMI"
|
||||||
|
Icon="Resources/Application.png"
|
||||||
|
Height="Auto"
|
||||||
|
Width="Auto"
|
||||||
|
ResizeMode="CanResizeWithGrip"
|
||||||
|
WindowState="Maximized"
|
||||||
|
WindowStyle="SingleBorderWindow">
|
||||||
|
|
||||||
<Viewbox Stretch="Fill">
|
<Viewbox Stretch="Fill">
|
||||||
<Grid Width="3840" Height="2100">
|
<Grid Width="3840" Height="2100">
|
||||||
@@ -17,9 +24,11 @@
|
|||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="0.08*"/>
|
<RowDefinition Height="0.08*"/>
|
||||||
<RowDefinition Height="0.04*"/>
|
<RowDefinition Height="0.04*"/>
|
||||||
<RowDefinition Height="0.04*"/>
|
<RowDefinition Height="Auto"/>
|
||||||
<RowDefinition Height="0.74*"/>
|
<RowDefinition Height="0.74*"/>
|
||||||
<RowDefinition Height="0.10*"/>
|
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="190"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<!-- Header line -->
|
<!-- Header line -->
|
||||||
@@ -82,20 +91,26 @@
|
|||||||
</TextBlock>
|
</TextBlock>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<Button Grid.Column="10"
|
<Button Grid.Column="9"
|
||||||
Grid.ColumnSpan="2"
|
Grid.ColumnSpan="2"
|
||||||
Margin="10"
|
Margin="10"
|
||||||
FontSize="44"
|
FontSize="44"
|
||||||
Content="{Binding ActualUser}"
|
Content="{Binding ActualUser}"
|
||||||
Command="{Binding ChangeUserClickedCommand}"/>
|
Command="{Binding ChangeUserClickedCommand}"/>
|
||||||
|
|
||||||
<Button Grid.Column="12"
|
<Grid Grid.Column="11" Grid.ColumnSpan="3"
|
||||||
Grid.ColumnSpan="2"
|
|
||||||
Margin="10"
|
Margin="10"
|
||||||
FontSize="44"
|
>
|
||||||
Content="Auswahl
Betriebsart"
|
<Grid.RowDefinitions>
|
||||||
Command="{Binding WorkingModeSelectionClickedCommand}"/>
|
<RowDefinition/>
|
||||||
|
<RowDefinition/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<Border Grid.RowSpan="2" BorderBrush="White" BorderThickness="1"/>
|
||||||
|
<Label Grid.Row="0" Content="{Binding SCurrentPackMLState}" FontSize="44"/>
|
||||||
|
<Label Grid.Row="1" Content="{Binding SCurrentPackMLMode}" FontSize="44"/>
|
||||||
|
|
||||||
|
|
||||||
|
</Grid>
|
||||||
<Label Grid.Column="1"
|
<Label Grid.Column="1"
|
||||||
Grid.ColumnSpan="3"
|
Grid.ColumnSpan="3"
|
||||||
Content="BiPolar Randätzer"
|
Content="BiPolar Randätzer"
|
||||||
@@ -110,76 +125,90 @@
|
|||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<!-- Latest event line -->
|
<!-- Latest event line -->
|
||||||
<Border Grid.Row="1" BorderBrush="White" BorderThickness="0,0,0,2">
|
<Border Grid.Row="1" BorderBrush="White" BorderThickness="0,0,0,3" Margin="10 0 10 0">
|
||||||
<Label Content="{Binding EventsPageVM.CurrentEvent.Message}"
|
<Label Content="{Binding EventsPageVM.CurrentEvent.Message}"
|
||||||
FontSize="28"
|
FontSize="28"
|
||||||
VerticalAlignment="Center"/>
|
VerticalAlignment="Center"/>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
<!-- Breadcrumb line -->
|
<!-- Breadcrumb line -->
|
||||||
<Label Grid.Row="2"
|
<!-- Currently no used -->
|
||||||
|
<!--<Label Grid.Row="2"
|
||||||
Content="{Binding Breadcrumb}"
|
Content="{Binding Breadcrumb}"
|
||||||
FontSize="28"/>
|
FontSize="28"/>-->
|
||||||
|
|
||||||
<!-- Page frame -->
|
<!-- Page frame -->
|
||||||
<Frame x:Name="MainFrame"
|
<Frame x:Name="MainFrame"
|
||||||
Grid.Row="3"
|
Grid.Row="3"
|
||||||
NavigationUIVisibility="Hidden"
|
NavigationUIVisibility="Hidden"
|
||||||
|
Margin="20 20 10 20"
|
||||||
Content="{Binding CurrentPage}"/>
|
Content="{Binding CurrentPage}"/>
|
||||||
|
|
||||||
|
<Border Grid.Row="4"
|
||||||
|
Margin="10 0 10 0"
|
||||||
|
BorderBrush="White"
|
||||||
|
BorderThickness="0,3,0,0"/>
|
||||||
|
|
||||||
<!-- Softkey grid -->
|
<!-- Softkey grid -->
|
||||||
<Grid Grid.Row="4" Margin="20">
|
<Grid Grid.Row="5" Margin="15 10 20 15">
|
||||||
<Grid >
|
<Grid >
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
<ColumnDefinition/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
<ColumnDefinition/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
<ColumnDefinition/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
<ColumnDefinition/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
<ColumnDefinition/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
<ColumnDefinition/>
|
<ColumnDefinition Width="*"/>
|
||||||
<ColumnDefinition/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
<ColumnDefinition/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<UniformGrid Columns="7" Grid.ColumnSpan="7">
|
|
||||||
<!-- Softkey 1 -->
|
<!-- Softkey 1 -->
|
||||||
<Button Grid.Column="0" Content="Übersicht" FontSize="38" Margin="10"
|
<Button Grid.Column="0"
|
||||||
|
Width="440"
|
||||||
|
Content="Übersicht" FontSize="38" Margin="10"
|
||||||
Command="{Binding OverviewWindowClickedCommand}" />
|
Command="{Binding OverviewWindowClickedCommand}" />
|
||||||
<!-- Command="{Binding AutomaticModeCommand}" -->
|
<!-- Command="{Binding AutomaticModeCommand}" -->
|
||||||
|
|
||||||
<!-- Softkey 2 -->
|
<!-- Softkey 2 -->
|
||||||
<Button Grid.Column="0" Content="Stationen" FontSize="38" Margin="10"
|
<Button IsEnabled="{Binding CanUserChangePageProductionWindow}"
|
||||||
|
Grid.Column="1" Content="Stationen" FontSize="38" Margin="10"
|
||||||
|
Width="440"
|
||||||
Command="{Binding ProductionWindowClickedCommand}"/>
|
Command="{Binding ProductionWindowClickedCommand}"/>
|
||||||
<!-- Command="{Binding ManualModeCommand}" -->
|
<!-- Command="{Binding ManualModeCommand}" -->
|
||||||
|
|
||||||
<!-- Softkey 3 -->
|
<!-- Softkey 3 -->
|
||||||
<Button Grid.Column="0" Content="Protokoll" FontSize="38" Margin="10"
|
<Button Grid.Column="2" Content="Protokoll" FontSize="38" Margin="10"
|
||||||
Command="{Binding ProtocolWindowClickedCommand}" Visibility="Collapsed"/>
|
Command="{Binding ProtocolWindowClickedCommand}" Visibility="Collapsed"/>
|
||||||
|
|
||||||
<!-- Softkey 4 -->
|
<!-- Softkey 4 -->
|
||||||
<Button Grid.Column="0" Content="Rezepte" FontSize="38" Margin="10"
|
<Button IsEnabled="{Binding CanUserChangePageReceipeWindow}"
|
||||||
|
Grid.Column="3" Content="Rezepte" FontSize="38" Margin="10"
|
||||||
|
Width="440"
|
||||||
Command="{Binding ReceipesWindowClickedCommand}" />
|
Command="{Binding ReceipesWindowClickedCommand}" />
|
||||||
<!-- Command="{Binding SettingsWindowCommand}" -->
|
<!-- Command="{Binding SettingsWindowCommand}" -->
|
||||||
|
|
||||||
<!-- Softkey 5 -->
|
<!-- Softkey 5 -->
|
||||||
<Button Grid.Column="0" Content="Trend" FontSize="38" Margin="10"
|
<Button Grid.Column="7" Content="Trend" FontSize="38" Margin="10"
|
||||||
Command="{Binding TrendWindowClickedCommand}" Visibility="Collapsed"/>
|
Command="{Binding TrendWindowClickedCommand}" Visibility="Collapsed"/>
|
||||||
|
|
||||||
<!-- Softkey 6 -->
|
<!-- Softkey 6 -->
|
||||||
<Button Grid.Column="0" Content="Komponenten" FontSize="38" Margin="10"
|
<Button Grid.Column="8" Content="Komponenten" FontSize="38" Margin="10"
|
||||||
Command="{Binding ComponentsWindowClickedCommand}" Visibility="Collapsed"/>
|
Command="{Binding ComponentsWindowClickedCommand}" Visibility="Collapsed"/>
|
||||||
|
|
||||||
<!-- Softkey 7 -->
|
<!-- Softkey 7 -->
|
||||||
|
|
||||||
|
|
||||||
<!-- Softkey 8 -->
|
<!-- Softkey 8 -->
|
||||||
<Button Content="Einstellungen" FontSize="38" Margin="10"
|
<Button Grid.Column="6" Content="Einstellungen" FontSize="38" Margin="10"
|
||||||
Command="{Binding SettingsWindowClickedCommand}" Visibility="Collapsed"/>
|
Command="{Binding SettingsWindowClickedCommand}" Visibility="Collapsed"/>
|
||||||
</UniformGrid>
|
|
||||||
<Button Grid.Column="7" Content="Meldungen" FontSize="38" Margin="10"
|
<Button Grid.Column="7" Content="Meldungen" FontSize="38" Margin="10"
|
||||||
|
Width="450"
|
||||||
Command="{Binding EventsListClickedCommand}"/>
|
Command="{Binding EventsListClickedCommand}"/>
|
||||||
<!-- Softkey 9 -->
|
<!-- Softkey 9 -->
|
||||||
<Button Grid.Column="8" Content="Ack Alarms" FontSize="38" Margin="10"
|
<Button Grid.Column="8"
|
||||||
|
Width="450"
|
||||||
|
Content="Alarm quitieren" FontSize="38" Margin="10"
|
||||||
Command="{Binding AckAlarmsCommand}"/>
|
Command="{Binding AckAlarmsCommand}"/>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
using HMIToolkit;
|
using HMIToolkit;
|
||||||
using MahApps.Metro.Controls;
|
using MahApps.Metro.Controls;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaction logic for MainWindow.xaml
|
/// Interaction logic for MainWindow.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -12,15 +12,21 @@ namespace InfineonHMI
|
|||||||
|
|
||||||
public MainWindow(MainWindowVM mainWindowVM)
|
public MainWindow(MainWindowVM mainWindowVM)
|
||||||
{
|
{
|
||||||
this.DataContext = mainWindowVM;
|
DataContext = mainWindowVM;
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
Loaded += MainWindowLoaded;
|
||||||
Closed += OnClosedEvent;
|
Closed += OnClosedEvent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void MainWindowLoaded(object sender, System.Windows.RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
var model = (MainWindowVM)DataContext;
|
||||||
|
model.ChangeUserClicked();
|
||||||
|
}
|
||||||
|
|
||||||
private void OnClosedEvent(object? sender, EventArgs e)
|
private void OnClosedEvent(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (DataContext is IDisposable dataContext)
|
if (DataContext is IDisposable dataContext)
|
||||||
dataContext.Dispose();
|
dataContext.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -1,21 +1,22 @@
|
|||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using Common;
|
||||||
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using CommunityToolkit.Mvvm.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
using CommunityToolkit.Mvvm.Messaging;
|
using CommunityToolkit.Mvvm.Messaging;
|
||||||
using Heisig.HMI.AdsManager;
|
using Heisig.HMI.AdsManager;
|
||||||
|
using InfineonHMI.Pages.Views;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
using InfineonHMI.Common;
|
||||||
using TcEventLoggerAdsProxyLib;
|
using TcEventLoggerAdsProxyLib;
|
||||||
using InfineonHMI.Pages.Views;
|
using TwinCAT.TypeSystem;
|
||||||
|
|
||||||
namespace InfineonHMI;
|
namespace InfineonHMI;
|
||||||
|
|
||||||
public sealed partial class MainWindowVM : ObservableObject, IRecipient<NavigateMessage>, IDisposable
|
public sealed partial class MainWindowVM : ObservableObject, IRecipient<NavigateMessage>, IDisposable
|
||||||
{
|
{
|
||||||
|
|
||||||
[ObservableProperty] private StringControlButtonVM dummyStringVM;
|
|
||||||
|
|
||||||
[ObservableProperty] private Page currentPage;
|
[ObservableProperty] private Page currentPage;
|
||||||
|
|
||||||
[ObservableProperty] private Visibility statusBarVisible;
|
[ObservableProperty] private Visibility statusBarVisible;
|
||||||
@@ -24,12 +25,35 @@ public sealed partial class MainWindowVM : ObservableObject, IRecipient<Navigate
|
|||||||
|
|
||||||
[ObservableProperty] private string actualUser;
|
[ObservableProperty] private string actualUser;
|
||||||
|
|
||||||
|
[ObservableProperty] private string sCurrentPackMLMode;
|
||||||
|
|
||||||
|
[ObservableProperty] private string sCurrentPackMLState;
|
||||||
|
|
||||||
|
[ObservableProperty] private bool canUserChangePageProductionWindow;
|
||||||
|
[ObservableProperty] private bool canUserChangePageReceipeWindow;
|
||||||
|
|
||||||
private const string _actualUserPrefix = "Aktueller Benutzer: \n";
|
private const string _actualUserPrefix = "Aktueller Benutzer: \n";
|
||||||
|
|
||||||
private readonly IAdsManager _adsManager;
|
private readonly IAdsManager _adsManager;
|
||||||
private readonly IConfiguration _config;
|
private readonly IConfiguration _config;
|
||||||
private readonly TcEventLogger _eventlogger;
|
private readonly TcEventLogger _eventlogger;
|
||||||
|
|
||||||
|
private User currentUser;
|
||||||
|
|
||||||
|
public User CurrentUser
|
||||||
|
{
|
||||||
|
get { return currentUser; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
SetProperty(ref currentUser, value);
|
||||||
|
ActualUser = _actualUserPrefix + currentUser.UserName + " lvl: " + currentUser.UserLevel;
|
||||||
|
Users.setCurrentUser(value);
|
||||||
|
|
||||||
|
CanUserChangePageProductionWindow = value.UserLevel == 100;
|
||||||
|
CanUserChangePageReceipeWindow = value.UserLevel == 100;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
// Last active event
|
// Last active event
|
||||||
[ObservableProperty] private string currentActiveEvent = "";
|
[ObservableProperty] private string currentActiveEvent = "";
|
||||||
|
|
||||||
@@ -48,6 +72,8 @@ public sealed partial class MainWindowVM : ObservableObject, IRecipient<Navigate
|
|||||||
// Settings page viem model
|
// Settings page viem model
|
||||||
SettingsPageVM? _settingsPageVM;
|
SettingsPageVM? _settingsPageVM;
|
||||||
|
|
||||||
|
private PackMLControlVM stMachinePackMLVM;
|
||||||
|
|
||||||
ProductionOverviewPageVM? _productionOverviewPageVM;
|
ProductionOverviewPageVM? _productionOverviewPageVM;
|
||||||
|
|
||||||
private MachineOverviewPageVM? _machineOverviewPageVM;
|
private MachineOverviewPageVM? _machineOverviewPageVM;
|
||||||
@@ -64,9 +90,9 @@ public sealed partial class MainWindowVM : ObservableObject, IRecipient<Navigate
|
|||||||
_adsManager = adsManager;
|
_adsManager = adsManager;
|
||||||
_config = config;
|
_config = config;
|
||||||
|
|
||||||
|
SCurrentPackMLMode = "Aktueller Modus: ";
|
||||||
|
SCurrentPackMLState = "Aktueller Status: ";
|
||||||
ActualUser = _actualUserPrefix + "---------";
|
ActualUser = _actualUserPrefix + "---------";
|
||||||
// Create dummy string
|
|
||||||
DummyStringVM = new StringControlButtonVM();
|
|
||||||
|
|
||||||
// Create empty page
|
// Create empty page
|
||||||
_emptyPage = new();
|
_emptyPage = new();
|
||||||
@@ -79,9 +105,21 @@ public sealed partial class MainWindowVM : ObservableObject, IRecipient<Navigate
|
|||||||
_currentMessage = new NavigateMessage("", typeof(Page));
|
_currentMessage = new NavigateMessage("", typeof(Page));
|
||||||
_messageStack.Push(_currentMessage);
|
_messageStack.Push(_currentMessage);
|
||||||
|
|
||||||
|
stMachinePackMLVM = new(_adsManager, "GVL_SCADA.stMachine.stMachineCmds");
|
||||||
|
|
||||||
WeakReferenceMessenger.Default.Register<NavigateMessage>(this);
|
WeakReferenceMessenger.Default.Register<NavigateMessage>(this);
|
||||||
|
|
||||||
breadcrumb = "";
|
breadcrumb = "";
|
||||||
|
|
||||||
|
_adsManager.Register("GVL_SCADA.stMachine.stMachineCmds.eCurrentState", StateChanged);
|
||||||
|
_adsManager.Register("GVL_SCADA.stMachine.stMachineCmds.eCurrentMode", ModeChanged);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MainWindowVM()
|
||||||
|
{
|
||||||
|
// Only used for design time
|
||||||
|
SCurrentPackMLMode = "Aktueller Modus: ";
|
||||||
|
SCurrentPackMLState = "Aktueller Status: ";
|
||||||
}
|
}
|
||||||
|
|
||||||
public void NavigateFromOuterPage(NavigateMessage message, NavigateMessage nextMessage)
|
public void NavigateFromOuterPage(NavigateMessage message, NavigateMessage nextMessage)
|
||||||
@@ -92,6 +130,115 @@ public sealed partial class MainWindowVM : ObservableObject, IRecipient<Navigate
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void StateChanged(object? sender, ValueChangedEventArgs e)
|
||||||
|
{
|
||||||
|
var state = (int)e.Value;
|
||||||
|
var curState = "Aktueller Status: ";
|
||||||
|
switch (state)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
curState += "Undefined";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
curState += "Clearing";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
curState += "Stopped";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
curState += "Starting";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
curState += "Idle";
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
curState += "Suspended";
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
curState += "Execute";
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
curState += "Stopping";
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
curState += "Aborting";
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
curState += "Aborted";
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
curState += "Holding";
|
||||||
|
break;
|
||||||
|
case 11:
|
||||||
|
curState += "Held";
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
curState += "Unholding";
|
||||||
|
break;
|
||||||
|
case 13:
|
||||||
|
curState += "Suspending";
|
||||||
|
break;
|
||||||
|
case 14:
|
||||||
|
curState += "Unsuspending";
|
||||||
|
break;
|
||||||
|
case 15:
|
||||||
|
curState += "Resetting";
|
||||||
|
break;
|
||||||
|
case 16:
|
||||||
|
curState += "Completing";
|
||||||
|
break;
|
||||||
|
case 17:
|
||||||
|
curState += "Completed";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
curState += "Undefined";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
SCurrentPackMLState = curState;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ModeChanged(object? sender, ValueChangedEventArgs e)
|
||||||
|
{
|
||||||
|
var curMode = "Aktueller Modus: ";
|
||||||
|
var mode = (int)e.Value;
|
||||||
|
|
||||||
|
switch (mode)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
curMode += "Invalid";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
curMode += "Production";
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
curMode += "Maintenance";
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
curMode += "Manual";
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
curMode += "change_over";
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
curMode += "clean";
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
curMode += "set up";
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
curMode += "empty out";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
curMode += "Invalid";
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
sCurrentPackMLMode = curMode;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
[RelayCommand]
|
[RelayCommand]
|
||||||
private void SettingsWindow()
|
private void SettingsWindow()
|
||||||
{
|
{
|
||||||
@@ -102,15 +249,11 @@ public sealed partial class MainWindowVM : ObservableObject, IRecipient<Navigate
|
|||||||
}
|
}
|
||||||
|
|
||||||
[RelayCommand]
|
[RelayCommand]
|
||||||
private void ChangeUserClicked()
|
public void ChangeUserClicked()
|
||||||
{
|
{
|
||||||
|
var userWindowVm = new UserManagementWindowVm(currentUser);
|
||||||
}
|
CurrentUser = userWindowVm.GetCurrentUserLevel();
|
||||||
|
OverviewWindowClicked();
|
||||||
[RelayCommand]
|
|
||||||
private void WorkingModeSelectionClicked()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[RelayCommand]
|
[RelayCommand]
|
||||||
@@ -166,6 +309,10 @@ public sealed partial class MainWindowVM : ObservableObject, IRecipient<Navigate
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[RelayCommand]
|
[RelayCommand]
|
||||||
public void EventsListClicked()
|
public void EventsListClicked()
|
||||||
{
|
{
|
||||||
@@ -183,7 +330,7 @@ public sealed partial class MainWindowVM : ObservableObject, IRecipient<Navigate
|
|||||||
{
|
{
|
||||||
// Only change page if its a new page type
|
// Only change page if its a new page type
|
||||||
if (CurrentPage.GetType() == message.type)
|
if (CurrentPage.GetType() == message.type)
|
||||||
return;
|
//return;
|
||||||
|
|
||||||
// Push current message
|
// Push current message
|
||||||
if (_currentMessage != null)
|
if (_currentMessage != null)
|
||||||
@@ -255,7 +402,7 @@ public sealed partial class MainWindowVM : ObservableObject, IRecipient<Navigate
|
|||||||
|
|
||||||
case nameof(HotCoolPlatePage):
|
case nameof(HotCoolPlatePage):
|
||||||
if (_hotCoolplatePageVM == null)
|
if (_hotCoolplatePageVM == null)
|
||||||
_hotCoolplatePageVM = new(_adsManager, "GVL_Config.stHotCoolplateConfig");
|
_hotCoolplatePageVM = new(_adsManager, "directlySetInViewModel");
|
||||||
|
|
||||||
HotCoolPlatePage hotCoolPlatePage = new() {DataContext = _hotCoolplatePageVM };
|
HotCoolPlatePage hotCoolPlatePage = new() {DataContext = _hotCoolplatePageVM };
|
||||||
CurrentPage = hotCoolPlatePage;
|
CurrentPage = hotCoolPlatePage;
|
||||||
@@ -293,6 +440,5 @@ public sealed partial class MainWindowVM : ObservableObject, IRecipient<Navigate
|
|||||||
viewModel.Dispose();
|
viewModel.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
DummyStringVM.Dispose();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace InfineonHMI.Model
|
namespace InfineonHMI.Model;
|
||||||
{
|
|
||||||
public enum E_BMS_CONTROL_MODE : short
|
public enum E_BMS_CONTROL_MODE : short
|
||||||
{
|
{
|
||||||
AUTO_REMOTE = 1,
|
AUTO_REMOTE = 1,
|
||||||
@@ -134,5 +134,3 @@ namespace InfineonHMI.Model
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
using CommunityToolkit.Mvvm.Messaging;
|
using CommunityToolkit.Mvvm.Messaging;
|
||||||
using Heisig.HMI.AdsManager;
|
using Heisig.HMI.AdsManager;
|
||||||
|
|
||||||
namespace InfineonHMI.OwnControls
|
namespace InfineonHMI.OwnControls;
|
||||||
{
|
|
||||||
public sealed partial class UnitControlButtonVM : SMUBaseVM
|
public sealed partial class UnitControlButtonVM : SMUBaseVM
|
||||||
{
|
{
|
||||||
public UnitControlButtonVM() : base() { }
|
public UnitControlButtonVM() : base() { }
|
||||||
@@ -16,4 +16,3 @@ namespace InfineonHMI.OwnControls
|
|||||||
WeakReferenceMessenger.Default.Send(new NavigateMessage(_variableName, typeof(UnitDetailsControl)));
|
WeakReferenceMessenger.Default.Send(new NavigateMessage(_variableName, typeof(UnitDetailsControl)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ using HMIToolkit;
|
|||||||
using TwinCAT.TypeSystem;
|
using TwinCAT.TypeSystem;
|
||||||
using Heisig.HMI.AdsManager;
|
using Heisig.HMI.AdsManager;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
public sealed partial class UnitDetailsControlVM : ObservableObject, IDisposable
|
public sealed partial class UnitDetailsControlVM : ObservableObject, IDisposable
|
||||||
{
|
{
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
@@ -491,4 +491,3 @@ namespace InfineonHMI
|
|||||||
_windowPumpPosolyt = null;
|
_windowPumpPosolyt = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für StringControlButton.xaml
|
/// Interaktionslogik für StringControlButton.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -20,4 +20,3 @@ namespace InfineonHMI
|
|||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für UnitControl.xaml
|
/// Interaktionslogik für UnitControl.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -19,4 +19,3 @@ namespace InfineonHMI
|
|||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -5,22 +5,26 @@ using Heisig.HMI.AdsManager;
|
|||||||
using CommunityToolkit.Mvvm.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
using TwinCAT.TypeSystem;
|
using TwinCAT.TypeSystem;
|
||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
|
using Common;
|
||||||
using InfineonHMI.Model;
|
using InfineonHMI.Model;
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
public sealed partial class AlignmentStationPageVM : ObservableValidator, IDisposable
|
public sealed partial class AlignmentStationPageVM : ObservableValidator, IDisposable
|
||||||
{
|
{
|
||||||
private readonly string? _variableName;
|
private readonly string? _variableName;
|
||||||
|
|
||||||
private readonly IAdsManager? _adsManager;
|
private readonly IAdsManager? _adsManager;
|
||||||
|
|
||||||
|
[ObservableProperty] private PackMLControlVM? alignmentPackMLControlVm;
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private BinaryValveControlVM vacuumValveControlVm;
|
private BinaryValveControlVM vacuumValveControlVm;
|
||||||
|
|
||||||
public AlignmentStationPageVM()
|
public AlignmentStationPageVM()
|
||||||
{
|
{
|
||||||
VacuumValveControlVm = new BinaryValveControlVM();
|
VacuumValveControlVm = new BinaryValveControlVM();
|
||||||
|
AlignmentPackMLControlVm = new();
|
||||||
|
AlignmentPackMLControlVm.STitle = "Ausrichtstation";
|
||||||
}
|
}
|
||||||
|
|
||||||
public AlignmentStationPageVM(IAdsManager adsManager, string variableName)
|
public AlignmentStationPageVM(IAdsManager adsManager, string variableName)
|
||||||
@@ -29,6 +33,8 @@ namespace InfineonHMI
|
|||||||
_variableName = variableName;
|
_variableName = variableName;
|
||||||
|
|
||||||
VacuumValveControlVm = new BinaryValveControlVM(_adsManager, _variableName + ".stVacuumValve");
|
VacuumValveControlVm = new BinaryValveControlVM(_adsManager, _variableName + ".stVacuumValve");
|
||||||
|
AlignmentPackMLControlVm = new(_adsManager, _variableName + "stStationCmds");
|
||||||
|
AlignmentPackMLControlVm.STitle = "Ausrichtstation";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -40,4 +46,3 @@ namespace InfineonHMI
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using Common;
|
||||||
using HMIToolkit;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using System.ComponentModel.DataAnnotations;
|
|
||||||
using Heisig.HMI.AdsManager;
|
|
||||||
using CommunityToolkit.Mvvm.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
using TwinCAT.TypeSystem;
|
using Heisig.HMI.AdsManager;
|
||||||
using System.Collections.ObjectModel;
|
using HMIToolkit;
|
||||||
|
|
||||||
using InfineonHMI.Model;
|
using InfineonHMI.Model;
|
||||||
namespace InfineonHMI
|
using System.Collections.ObjectModel;
|
||||||
{
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using TwinCAT.TypeSystem;
|
||||||
|
namespace InfineonHMI;
|
||||||
|
|
||||||
public sealed partial class EtchingStation1PageVM : ObservableValidator, IDisposable
|
public sealed partial class EtchingStation1PageVM : ObservableValidator, IDisposable
|
||||||
{
|
{
|
||||||
@@ -31,6 +31,8 @@ namespace InfineonHMI
|
|||||||
|
|
||||||
[ObservableProperty] private HMIControlButtonVM? chuckEjectCmdButtonEtching1Vm;
|
[ObservableProperty] private HMIControlButtonVM? chuckEjectCmdButtonEtching1Vm;
|
||||||
|
|
||||||
|
[ObservableProperty] private PackMLControlVM? etching1PackMLControlVm;
|
||||||
|
|
||||||
private readonly string? _variableName;
|
private readonly string? _variableName;
|
||||||
|
|
||||||
private readonly IAdsManager? _adsManager;
|
private readonly IAdsManager? _adsManager;
|
||||||
@@ -48,6 +50,8 @@ namespace InfineonHMI
|
|||||||
ChuckLockCmdButtonEtching1Vm = new HMIControlButtonVM();
|
ChuckLockCmdButtonEtching1Vm = new HMIControlButtonVM();
|
||||||
ChuckEjectCmdButtonEtching1Vm = new HMIControlButtonVM();
|
ChuckEjectCmdButtonEtching1Vm = new HMIControlButtonVM();
|
||||||
|
|
||||||
|
Etching1PackMLControlVm = new();
|
||||||
|
Etching1PackMLControlVm.STitle = "Ätzer 1";
|
||||||
}
|
}
|
||||||
|
|
||||||
public EtchingStation1PageVM(IAdsManager adsManager, string variableName)
|
public EtchingStation1PageVM(IAdsManager adsManager, string variableName)
|
||||||
@@ -55,18 +59,19 @@ namespace InfineonHMI
|
|||||||
_adsManager = adsManager;
|
_adsManager = adsManager;
|
||||||
_variableName = variableName;
|
_variableName = variableName;
|
||||||
|
|
||||||
VacuumValveControlEtching1Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher1.stVacuumValve");
|
VacuumValveControlEtching1Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher1.stVacuumValve");
|
||||||
DoorValveControlEtching1Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher1.stDoorValve");
|
DoorValveControlEtching1Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher1.stDoorValve");
|
||||||
ChuckUnlockValveLeftEtching1Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher1.stChuckUnlockLeft");
|
ChuckUnlockValveLeftEtching1Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher1.stChuckUnlockLeft");
|
||||||
ChuckUnlockValveRightEtching1Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher1.stChuckUnlockRight");
|
ChuckUnlockValveRightEtching1Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher1.stChuckUnlockRight");
|
||||||
ChuckEjectValveFrontEtching1Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher1.stChuckEjectFront");
|
ChuckEjectValveFrontEtching1Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher1.stChuckEjectFront");
|
||||||
ChuckEjectValveBackEtching1Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher1.stChuckEjectBack");
|
ChuckEjectValveBackEtching1Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher1.stChuckEjectBack");
|
||||||
|
|
||||||
ChuckUnlockCmdButtonEtching1Vm = new HMIControlButtonVM(_adsManager, "GVL_SCADA.stMachine.stEtcher1.stChuckUnlockCmd");
|
|
||||||
ChuckLockCmdButtonEtching1Vm = new HMIControlButtonVM(_adsManager, "GVL_SCADA.stMachine.stEtcher1.stChuckLockCmd");
|
|
||||||
ChuckEjectCmdButtonEtching1Vm = new HMIControlButtonVM(_adsManager, "GVL_SCADA.stMachine.stEtcher1.stChuckEjectCmd");
|
|
||||||
|
|
||||||
|
ChuckUnlockCmdButtonEtching1Vm = new HMIControlButtonVM(_adsManager, _variableName + ".stEtcher1.stChuckUnlockCmd");
|
||||||
|
ChuckLockCmdButtonEtching1Vm = new HMIControlButtonVM(_adsManager, _variableName + ".stEtcher1.stChuckLockCmd");
|
||||||
|
ChuckEjectCmdButtonEtching1Vm = new HMIControlButtonVM(_adsManager, _variableName + ".stEtcher1.stChuckEjectCmd");
|
||||||
|
|
||||||
|
Etching1PackMLControlVm = new(_adsManager, _variableName + ".stEtcher1.stStationCmds");
|
||||||
|
Etching1PackMLControlVm.STitle = "Ätzer 1";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -91,4 +96,3 @@ namespace InfineonHMI
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -5,10 +5,9 @@ using Heisig.HMI.AdsManager;
|
|||||||
using CommunityToolkit.Mvvm.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
using TwinCAT.TypeSystem;
|
using TwinCAT.TypeSystem;
|
||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
|
using Common;
|
||||||
using InfineonHMI.Model;
|
using InfineonHMI.Model;
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
|
|
||||||
public sealed partial class EtchingStation2PageVM : ObservableValidator, IDisposable
|
public sealed partial class EtchingStation2PageVM : ObservableValidator, IDisposable
|
||||||
{
|
{
|
||||||
@@ -31,6 +30,8 @@ namespace InfineonHMI
|
|||||||
|
|
||||||
[ObservableProperty] private HMIControlButtonVM? chuckEjectCmdButtonEtching2Vm;
|
[ObservableProperty] private HMIControlButtonVM? chuckEjectCmdButtonEtching2Vm;
|
||||||
|
|
||||||
|
[ObservableProperty] private PackMLControlVM? etching2PackMLControlVm;
|
||||||
|
|
||||||
private readonly string? _variableName;
|
private readonly string? _variableName;
|
||||||
|
|
||||||
private readonly IAdsManager? _adsManager;
|
private readonly IAdsManager? _adsManager;
|
||||||
@@ -49,6 +50,9 @@ namespace InfineonHMI
|
|||||||
ChuckUnlockCmdButtonEtching2Vm = new HMIControlButtonVM();
|
ChuckUnlockCmdButtonEtching2Vm = new HMIControlButtonVM();
|
||||||
ChuckLockCmdButtonEtching2Vm = new HMIControlButtonVM();
|
ChuckLockCmdButtonEtching2Vm = new HMIControlButtonVM();
|
||||||
ChuckEjectCmdButtonEtching2Vm = new HMIControlButtonVM();
|
ChuckEjectCmdButtonEtching2Vm = new HMIControlButtonVM();
|
||||||
|
|
||||||
|
Etching2PackMLControlVm = new();
|
||||||
|
Etching2PackMLControlVm.STitle = "Ätzer 2";
|
||||||
}
|
}
|
||||||
|
|
||||||
public EtchingStation2PageVM(IAdsManager adsManager, string variableName)
|
public EtchingStation2PageVM(IAdsManager adsManager, string variableName)
|
||||||
@@ -57,16 +61,19 @@ namespace InfineonHMI
|
|||||||
_variableName = variableName;
|
_variableName = variableName;
|
||||||
|
|
||||||
|
|
||||||
VacuumValveControlEtching2Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher2.stVacuumValve");
|
VacuumValveControlEtching2Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher2.stVacuumValve");
|
||||||
DoorValveControlEtching2Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher2.stDoorValve");
|
DoorValveControlEtching2Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher2.stDoorValve");
|
||||||
ChuckUnlockValveLeftEtching2Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher2.stChuckUnlockLeft");
|
ChuckUnlockValveLeftEtching2Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher2.stChuckUnlockLeft");
|
||||||
ChuckUnlockValveRightEtching2Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher2.stChuckUnlockRight");
|
ChuckUnlockValveRightEtching2Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher2.stChuckUnlockRight");
|
||||||
ChuckEjectValveFrontEtching2Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher2.stChuckEjectFront");
|
ChuckEjectValveFrontEtching2Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher2.stChuckEjectFront");
|
||||||
ChuckEjectValveBackEtching2Vm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stEtcher2.stChuckEjectBack");
|
ChuckEjectValveBackEtching2Vm = new BinaryValveControlVM(_adsManager, _variableName + ".stEtcher2.stChuckEjectBack");
|
||||||
|
|
||||||
ChuckUnlockCmdButtonEtching2Vm = new HMIControlButtonVM(_adsManager, "GVL_SCADA.stMachine.stEtcher2.stChuckUnlockCmd");
|
ChuckUnlockCmdButtonEtching2Vm = new HMIControlButtonVM(_adsManager, _variableName + ".stEtcher2.stChuckUnlockCmd");
|
||||||
ChuckLockCmdButtonEtching2Vm = new HMIControlButtonVM(_adsManager, "GVL_SCADA.stMachine.stEtcher2.stChuckLockCmd");
|
ChuckLockCmdButtonEtching2Vm = new HMIControlButtonVM(_adsManager, _variableName + ".stEtcher2.stChuckLockCmd");
|
||||||
ChuckEjectCmdButtonEtching2Vm = new HMIControlButtonVM(_adsManager, "GVL_SCADA.stMachine.stEtcher2.stChuckEjectCmd");
|
ChuckEjectCmdButtonEtching2Vm = new HMIControlButtonVM(_adsManager, _variableName + ".stEtcher2.stChuckEjectCmd");
|
||||||
|
|
||||||
|
Etching2PackMLControlVm = new(_adsManager, _variableName + ".stEtcher2.stStationCmds");
|
||||||
|
Etching2PackMLControlVm.STitle = "Ätzer 2";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,4 +96,3 @@ namespace InfineonHMI
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ using System.Collections.ObjectModel;
|
|||||||
using System.Windows;
|
using System.Windows;
|
||||||
using TcEventLoggerAdsProxyLib;
|
using TcEventLoggerAdsProxyLib;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
public partial class EventData : ObservableObject
|
public partial class EventData : ObservableObject
|
||||||
{
|
{
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
@@ -111,4 +111,3 @@ namespace InfineonHMI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -5,16 +5,19 @@ using Heisig.HMI.AdsManager;
|
|||||||
using CommunityToolkit.Mvvm.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
using TwinCAT.TypeSystem;
|
using TwinCAT.TypeSystem;
|
||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
|
using Common;
|
||||||
using InfineonHMI.Model;
|
using InfineonHMI.Model;
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
public sealed partial class HighVoltageStationPageVM : ObservableValidator, IDisposable
|
public sealed partial class HighVoltageStationPageVM : ObservableValidator, IDisposable
|
||||||
{
|
{
|
||||||
private readonly string? _variableName;
|
private readonly string? _variableName;
|
||||||
|
|
||||||
private readonly IAdsManager? _adsManager;
|
private readonly IAdsManager? _adsManager;
|
||||||
|
|
||||||
|
[ObservableProperty] private PackMLControlVM highVoltageHotPackMLControlVm;
|
||||||
|
[ObservableProperty] private PackMLControlVM highVoltageColdPackMLControlVm;
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private BinaryValveControlVM doorValveHotControlVm;
|
private BinaryValveControlVM doorValveHotControlVm;
|
||||||
|
|
||||||
@@ -42,6 +45,13 @@ namespace InfineonHMI
|
|||||||
DoorValveColdControlVm = new BinaryValveControlVM();
|
DoorValveColdControlVm = new BinaryValveControlVM();
|
||||||
TestChamberColdValveVm = new BinaryValveControlVM();
|
TestChamberColdValveVm = new BinaryValveControlVM();
|
||||||
TempSPColdVm = new AnalogValueVM();
|
TempSPColdVm = new AnalogValueVM();
|
||||||
|
|
||||||
|
HighVoltageColdPackMLControlVm = new();
|
||||||
|
HighVoltageHotPackMLControlVm = new();
|
||||||
|
|
||||||
|
HighVoltageColdPackMLControlVm.STitle = "Hochvoltstation\nKalt";
|
||||||
|
|
||||||
|
HighVoltageHotPackMLControlVm.STitle = "Hochvoltstation\nHeiß";
|
||||||
}
|
}
|
||||||
|
|
||||||
public HighVoltageStationPageVM(IAdsManager adsManager, string variableName)
|
public HighVoltageStationPageVM(IAdsManager adsManager, string variableName)
|
||||||
@@ -49,14 +59,20 @@ namespace InfineonHMI
|
|||||||
_adsManager = adsManager;
|
_adsManager = adsManager;
|
||||||
_variableName = variableName;
|
_variableName = variableName;
|
||||||
|
|
||||||
DoorValveHotControlVm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stHVTesterHot.stDoorValve");
|
DoorValveHotControlVm = new BinaryValveControlVM(_adsManager, _variableName + "Hot.stDoorValve");
|
||||||
TestChamberHotValveVm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stHVTesterHot.stTestChamberValve");
|
TestChamberHotValveVm = new BinaryValveControlVM(_adsManager, _variableName + "Hot.stTestChamberValve");
|
||||||
TempSPHotVm = new AnalogValueVM(_adsManager, "GVL_SCADA.stMachine.stHVTesterHot.stTempSP", false);
|
TempSPHotVm = new AnalogValueVM(_adsManager, _variableName + "Hot.stTempSP", false);
|
||||||
|
|
||||||
DoorValveColdControlVm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stHVTesterCold.stDoorValve");
|
DoorValveColdControlVm = new BinaryValveControlVM(_adsManager, _variableName + "Cold.stDoorValve");
|
||||||
TestChamberColdValveVm = new BinaryValveControlVM(_adsManager, "GVL_SCADA.stMachine.stHVTesterCold.stTestChamberValve");
|
TestChamberColdValveVm = new BinaryValveControlVM(_adsManager, _variableName + "Cold.stTestChamberValve");
|
||||||
TempSPColdVm = new AnalogValueVM(_adsManager, "GVL_SCADA.stMachine.stHVTesterCold.stTempSP", false);
|
TempSPColdVm = new AnalogValueVM(_adsManager, _variableName + "Cold.stTempSP", false);
|
||||||
|
|
||||||
|
HighVoltageColdPackMLControlVm = new(_adsManager, _variableName + "Cold.stStationCmds");
|
||||||
|
HighVoltageHotPackMLControlVm = new(_adsManager, _variableName + "Hot.stStationCmds");
|
||||||
|
|
||||||
|
HighVoltageColdPackMLControlVm.STitle = "Hochvoltstation\nKalt";
|
||||||
|
|
||||||
|
HighVoltageHotPackMLControlVm.STitle = "Hochvoltstation\nHeiß";
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
@@ -69,4 +85,3 @@ namespace InfineonHMI
|
|||||||
TempSPColdVm.Dispose();
|
TempSPColdVm.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -8,8 +8,10 @@ using System.Collections.ObjectModel;
|
|||||||
|
|
||||||
using InfineonHMI.Model;
|
using InfineonHMI.Model;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
namespace InfineonHMI
|
using Common;
|
||||||
{
|
|
||||||
|
namespace InfineonHMI;
|
||||||
|
|
||||||
public sealed partial class HotCoolPlatePageVM : ObservableValidator, IDisposable
|
public sealed partial class HotCoolPlatePageVM : ObservableValidator, IDisposable
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -37,6 +39,10 @@ namespace InfineonHMI
|
|||||||
|
|
||||||
private readonly string? _variableName;
|
private readonly string? _variableName;
|
||||||
|
|
||||||
|
[ObservableProperty] private PackMLControlVM? hotplatePackMLControlVm;
|
||||||
|
[ObservableProperty] private PackMLControlVM? coolplatePackMLControlVm;
|
||||||
|
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private AnalogValueVM hotPlateTargetTemperature;
|
private AnalogValueVM hotPlateTargetTemperature;
|
||||||
|
|
||||||
@@ -125,6 +131,11 @@ namespace InfineonHMI
|
|||||||
CoolPlateActualTemperature = new AnalogValueVM();
|
CoolPlateActualTemperature = new AnalogValueVM();
|
||||||
CoolPlateTargetTemperature = new AnalogValueVM();
|
CoolPlateTargetTemperature = new AnalogValueVM();
|
||||||
|
|
||||||
|
HotplatePackMLControlVm = new();
|
||||||
|
CoolplatePackMLControlVm = new();
|
||||||
|
|
||||||
|
HotplatePackMLControlVm.STitle = "Heizplatte";
|
||||||
|
CoolplatePackMLControlVm.STitle = "Kühlplatte";
|
||||||
|
|
||||||
}
|
}
|
||||||
public HotCoolPlatePageVM(IAdsManager adsManager, string variableName)
|
public HotCoolPlatePageVM(IAdsManager adsManager, string variableName)
|
||||||
@@ -138,11 +149,17 @@ namespace InfineonHMI
|
|||||||
EnableCoolPlateButtonVm = new HMIControlButtonVM(_adsManager, _variableName + ".stCoolplate.stEnableBtn");
|
EnableCoolPlateButtonVm = new HMIControlButtonVM(_adsManager, _variableName + ".stCoolplate.stEnableBtn");
|
||||||
DisableCoolPlateButtonVm = new HMIControlButtonVM(_adsManager, _variableName + ".stCoolplate.stDisableBtn");
|
DisableCoolPlateButtonVm = new HMIControlButtonVM(_adsManager, _variableName + ".stCoolplate.stDisableBtn");
|
||||||
|
|
||||||
HotPlateActualTemperature = new AnalogValueVM(_adsManager, "GVL_SCADA.stMachine.stHotplate.stPV", true);
|
HotPlateActualTemperature = new AnalogValueVM(_adsManager, _variableName + ".stHotplate.stPV", true);
|
||||||
CoolPlateActualTemperature = new AnalogValueVM(_adsManager, "GVL_SCADA.stMachine.stCoolplate.stPV", true);
|
CoolPlateActualTemperature = new AnalogValueVM(_adsManager, _variableName + ".stCoolplate.stPV", true);
|
||||||
|
|
||||||
HotPlateTargetTemperature = new AnalogValueVM(_adsManager, "GVL_SCADA.stMachine.stHotplate.stSetpoint", false);
|
HotPlateTargetTemperature = new AnalogValueVM(_adsManager, _variableName + ".stHotplate.stSetpoint", false);
|
||||||
CoolPlateTargetTemperature = new AnalogValueVM(_adsManager, "GVL_SCADA.stMachine.stCoolplate.stSetpoint", false);
|
CoolPlateTargetTemperature = new AnalogValueVM(_adsManager, _variableName + ".stCoolplate.stSetpoint", false);
|
||||||
|
|
||||||
|
HotplatePackMLControlVm = new();
|
||||||
|
CoolplatePackMLControlVm = new();
|
||||||
|
|
||||||
|
HotplatePackMLControlVm.STitle = "Heizplatte";
|
||||||
|
CoolplatePackMLControlVm.STitle = "Kühlplatte";
|
||||||
|
|
||||||
_adsManager.Register(sPieceOnHotplate1, HotplatePiece1Changed);
|
_adsManager.Register(sPieceOnHotplate1, HotplatePiece1Changed);
|
||||||
_adsManager.Register(sPieceOnHotplate2, HotplatePiece2Changed);
|
_adsManager.Register(sPieceOnHotplate2, HotplatePiece2Changed);
|
||||||
@@ -405,4 +422,3 @@ namespace InfineonHMI
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -8,15 +8,14 @@ using System.Collections.ObjectModel;
|
|||||||
using System.Security.Policy;
|
using System.Security.Policy;
|
||||||
using System.Printing;
|
using System.Printing;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
|
using Common;
|
||||||
using InfineonHMI.Model;
|
using InfineonHMI.Model;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
public sealed partial class KukaRobotPageVM : ObservableValidator, IDisposable
|
public sealed partial class KukaRobotPageVM : ObservableValidator, IDisposable
|
||||||
{
|
{
|
||||||
|
|
||||||
private readonly string? _variableName = "_adsVariable_";
|
|
||||||
|
|
||||||
private const string sStartRobotJob = "_adsVariable_kukaStartRobotJob";
|
private const string sStartRobotJob = "_adsVariable_kukaStartRobotJob";
|
||||||
private const string sAbortRobotJob = "_adsVariable_kukaAbortRobotJob";
|
private const string sAbortRobotJob = "_adsVariable_kukaAbortRobotJob";
|
||||||
private const string sResetState = "_adsVariable_kukaResetState";
|
private const string sResetState = "_adsVariable_kukaResetState";
|
||||||
@@ -291,6 +290,7 @@ namespace InfineonHMI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[ObservableProperty] private PackMLControlVM kukaRobotPackMLControlVm;
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private bool canChangeCoolPlateIndex;
|
private bool canChangeCoolPlateIndex;
|
||||||
@@ -380,13 +380,14 @@ namespace InfineonHMI
|
|||||||
selectedPLCJob = PLCJobs.First(i => i.eJob == PLCJobenum.NONE);
|
selectedPLCJob = PLCJobs.First(i => i.eJob == PLCJobenum.NONE);
|
||||||
|
|
||||||
canChangeRobotJob = true;currentControlMode = new BMSControlModeEntry(E_BMS_CONTROL_MODE.MANUAL, "Manual");
|
canChangeRobotJob = true;currentControlMode = new BMSControlModeEntry(E_BMS_CONTROL_MODE.MANUAL, "Manual");
|
||||||
|
KukaRobotPackMLControlVm = new PackMLControlVM();
|
||||||
|
|
||||||
|
KukaRobotPackMLControlVm.STitle = "Kuka Roboter";
|
||||||
}
|
}
|
||||||
|
|
||||||
public KukaRobotPageVM(IAdsManager adsManager, string variableName)
|
public KukaRobotPageVM(IAdsManager adsManager)
|
||||||
{
|
{
|
||||||
_adsManager = adsManager;
|
_adsManager = adsManager;
|
||||||
_variableName = variableName;
|
|
||||||
|
|
||||||
StartButton = new HMIControlButtonVM(_adsManager, sStartRobotJob);
|
StartButton = new HMIControlButtonVM(_adsManager, sStartRobotJob);
|
||||||
AbortButton = new HMIControlButtonVM(_adsManager, sAbortRobotJob);
|
AbortButton = new HMIControlButtonVM(_adsManager, sAbortRobotJob);
|
||||||
@@ -398,6 +399,11 @@ namespace InfineonHMI
|
|||||||
robotJobFinishedValue = RobotJobs.First(i => i.eJob == RobotJobenum.NONE);
|
robotJobFinishedValue = RobotJobs.First(i => i.eJob == RobotJobenum.NONE);
|
||||||
selectedPLCJob = PLCJobs.First(i => i.eJob == PLCJobenum.NONE);
|
selectedPLCJob = PLCJobs.First(i => i.eJob == PLCJobenum.NONE);
|
||||||
|
|
||||||
|
|
||||||
|
KukaRobotPackMLControlVm = new PackMLControlVM(_adsManager, "GVL_SCADA.stMachine.stKukaRobot.stStationCmds");
|
||||||
|
|
||||||
|
KukaRobotPackMLControlVm.STitle = "Kuka Roboter";
|
||||||
|
|
||||||
_adsManager.Register(sJobGrippSide, OnJobGrippSideValueChanged);
|
_adsManager.Register(sJobGrippSide, OnJobGrippSideValueChanged);
|
||||||
_adsManager.Register(sJobGrippType, OnJobGrippTypeValueChanged);
|
_adsManager.Register(sJobGrippType, OnJobGrippTypeValueChanged);
|
||||||
_adsManager.Register(sChuckMagazinPlace, OnChuckMagazinPlaceValueChanged);
|
_adsManager.Register(sChuckMagazinPlace, OnChuckMagazinPlaceValueChanged);
|
||||||
@@ -674,4 +680,3 @@ namespace InfineonHMI
|
|||||||
_adsManager?.WriteValue(sAbortRobotJob, true);
|
_adsManager?.WriteValue(sAbortRobotJob, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ using Microsoft.Extensions.Configuration;
|
|||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
using Common;
|
||||||
|
using InfineonHMI.Common;
|
||||||
using TcEventLoggerAdsProxyLib;
|
using TcEventLoggerAdsProxyLib;
|
||||||
|
|
||||||
namespace InfineonHMI;
|
namespace InfineonHMI;
|
||||||
@@ -17,12 +19,63 @@ public sealed partial class MachineOverviewPageVM : ObservableObject, IRecipient
|
|||||||
|
|
||||||
[ObservableProperty] private Page currentDetailPage;
|
[ObservableProperty] private Page currentDetailPage;
|
||||||
|
|
||||||
|
[ObservableProperty] private PackMLControlVM machinePackMLControlVM;
|
||||||
|
|
||||||
|
public bool CanUserChangePageAlignment
|
||||||
|
{
|
||||||
|
get { return currentUser.UserLevel > 50; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool CanUserChangePageEtching1
|
||||||
|
{
|
||||||
|
get { return currentUser.UserLevel > 50; }
|
||||||
|
}
|
||||||
|
public bool CanUserChangePageEtching2
|
||||||
|
{
|
||||||
|
get { return currentUser.UserLevel > 50; }
|
||||||
|
}
|
||||||
|
public bool CanUserChangePageHighVoltage
|
||||||
|
{
|
||||||
|
get { return currentUser.UserLevel > 50; }
|
||||||
|
}
|
||||||
|
public bool CanUserChangePageHotCoolplate
|
||||||
|
{
|
||||||
|
get { return currentUser.UserLevel > 50; }
|
||||||
|
}
|
||||||
|
public bool CanUserChangePageKukaRobot
|
||||||
|
{
|
||||||
|
get { return currentUser.UserLevel > 50; }
|
||||||
|
}
|
||||||
|
public bool CanUserChangePageMediaCabinet
|
||||||
|
{
|
||||||
|
get { return currentUser.UserLevel > 50; }
|
||||||
|
}
|
||||||
|
public bool CanUserChangePageNIOStation
|
||||||
|
{
|
||||||
|
get { return currentUser.UserLevel > 50; }
|
||||||
|
}
|
||||||
|
public bool CanUserChangePageProductionOverview
|
||||||
|
{
|
||||||
|
get { return currentUser.UserLevel > 50; }
|
||||||
|
}
|
||||||
|
public bool CanUserChangePageReceipe
|
||||||
|
{
|
||||||
|
get { return currentUser.UserLevel == 100; }
|
||||||
|
}
|
||||||
|
public bool CanUserChangePageTrayFeeder
|
||||||
|
{
|
||||||
|
get { return currentUser.UserLevel > 50; }
|
||||||
|
}
|
||||||
|
public bool CanUserChangeMachineState
|
||||||
|
{
|
||||||
|
get { return currentUser.UserLevel > 50; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private readonly IAdsManager _adsManager;
|
private readonly IAdsManager _adsManager;
|
||||||
private readonly IConfiguration _config;
|
private readonly IConfiguration _config;
|
||||||
|
|
||||||
|
private User currentUser;
|
||||||
// Last active event
|
// Last active event
|
||||||
[ObservableProperty] private string currentActiveEvent = "";
|
[ObservableProperty] private string currentActiveEvent = "";
|
||||||
|
|
||||||
@@ -60,6 +113,10 @@ public sealed partial class MachineOverviewPageVM : ObservableObject, IRecipient
|
|||||||
public MachineOverviewPageVM()
|
public MachineOverviewPageVM()
|
||||||
{
|
{
|
||||||
// default ctor
|
// default ctor
|
||||||
|
MachinePackMLControlVM = new();
|
||||||
|
MachinePackMLControlVM.STitle = "Betriebszustand\n Gesamtanlage";
|
||||||
|
|
||||||
|
currentUser = Users.getCurrentUser();
|
||||||
}
|
}
|
||||||
public MachineOverviewPageVM(IAdsManager adsManager, IConfiguration config,MainWindowVM mainVm, ProductionOverviewPageVM prodVm, TcEventLogger eventLogger)
|
public MachineOverviewPageVM(IAdsManager adsManager, IConfiguration config,MainWindowVM mainVm, ProductionOverviewPageVM prodVm, TcEventLogger eventLogger)
|
||||||
{
|
{
|
||||||
@@ -70,6 +127,10 @@ public sealed partial class MachineOverviewPageVM : ObservableObject, IRecipient
|
|||||||
// Create dummy string
|
// Create dummy string
|
||||||
DummyStringVM = new StringControlButtonVM();
|
DummyStringVM = new StringControlButtonVM();
|
||||||
|
|
||||||
|
currentUser = Users.getCurrentUser();
|
||||||
|
MachinePackMLControlVM = new(_adsManager, "GVL_SCADA.stMachine.stMachineCmds");
|
||||||
|
|
||||||
|
MachinePackMLControlVM.STitle = "Betriebszustand\n Gesamtanlage";
|
||||||
// Create empty page
|
// Create empty page
|
||||||
_emptyPage = new();
|
_emptyPage = new();
|
||||||
|
|
||||||
@@ -79,6 +140,22 @@ public sealed partial class MachineOverviewPageVM : ObservableObject, IRecipient
|
|||||||
|
|
||||||
WeakReferenceMessenger.Default.Register<NavigateMessage>(this);
|
WeakReferenceMessenger.Default.Register<NavigateMessage>(this);
|
||||||
|
|
||||||
|
//CanUserChangePageAlignment = currentUser.UserLevel > 50;
|
||||||
|
//CanUserChangePageEtching1 = currentUser.UserLevel > 50;
|
||||||
|
//CanUserChangePageEtching2 = currentUser.UserLevel > 50;
|
||||||
|
//CanUserChangePageHighVoltage = currentUser.UserLevel > 50;
|
||||||
|
//CanUserChangePageHotCoolplate = currentUser.UserLevel > 50;
|
||||||
|
//CanUserChangePageKukaRobot = currentUser.UserLevel > 50;
|
||||||
|
//CanUserChangePageMediaCabinet = currentUser.UserLevel > 50;
|
||||||
|
//CanUserChangePageNIOStation = currentUser.UserLevel > 50;
|
||||||
|
//CanUserChangePageProductionOverview = currentUser.UserLevel > 50;
|
||||||
|
//CanUserChangePageReceipe = currentUser.UserLevel == 100;
|
||||||
|
//CanUserChangePageTrayFeeder = currentUser.UserLevel > 50;
|
||||||
|
//CanUserChangeMachineState = currentUser.UserLevel > 50;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -202,7 +279,7 @@ public sealed partial class MachineOverviewPageVM : ObservableObject, IRecipient
|
|||||||
{
|
{
|
||||||
case nameof(TrayFeederPage):
|
case nameof(TrayFeederPage):
|
||||||
if (_trayFeederPageVm == null)
|
if (_trayFeederPageVm == null)
|
||||||
_trayFeederPageVm = new(_adsManager, "GVL_CONFIG.stMachine");
|
_trayFeederPageVm = new(_adsManager, "GVL_SCADA.stMachine.TrayFeeder"); //In and Out ist set directly in ViewModel
|
||||||
|
|
||||||
TrayFeederPage trayFeederPage = new() { DataContext = _trayFeederPageVm };
|
TrayFeederPage trayFeederPage = new() { DataContext = _trayFeederPageVm };
|
||||||
CurrentDetailPage = trayFeederPage;
|
CurrentDetailPage = trayFeederPage;
|
||||||
@@ -211,7 +288,7 @@ public sealed partial class MachineOverviewPageVM : ObservableObject, IRecipient
|
|||||||
case nameof(AlignmentStationPage):
|
case nameof(AlignmentStationPage):
|
||||||
// Create seetings page view model only once
|
// Create seetings page view model only once
|
||||||
if (_alignmentStationPageVM == null)
|
if (_alignmentStationPageVM == null)
|
||||||
_alignmentStationPageVM = new(_adsManager, "GVL_CONFIG.stMachine.stAligner");
|
_alignmentStationPageVM = new(_adsManager, "GVL_SCADA.stMachine.stAligner");
|
||||||
|
|
||||||
AlignmentStationPage settingsPage = new() { DataContext = _alignmentStationPageVM };
|
AlignmentStationPage settingsPage = new() { DataContext = _alignmentStationPageVM };
|
||||||
CurrentDetailPage = settingsPage;
|
CurrentDetailPage = settingsPage;
|
||||||
@@ -219,7 +296,7 @@ public sealed partial class MachineOverviewPageVM : ObservableObject, IRecipient
|
|||||||
|
|
||||||
case nameof(EtchingStation1Page):
|
case nameof(EtchingStation1Page):
|
||||||
if (_etchingStation1PageVm == null)
|
if (_etchingStation1PageVm == null)
|
||||||
_etchingStation1PageVm = new(_adsManager, "GVL_CONFIG.stMachine.stEtcher1");
|
_etchingStation1PageVm = new(_adsManager, "GVL_SCADA.stMachine.stEtcher1");
|
||||||
|
|
||||||
EtchingStation1Page etchingStation1Page = new() { DataContext = _etchingStation1PageVm };
|
EtchingStation1Page etchingStation1Page = new() { DataContext = _etchingStation1PageVm };
|
||||||
CurrentDetailPage = etchingStation1Page;
|
CurrentDetailPage = etchingStation1Page;
|
||||||
@@ -227,7 +304,7 @@ public sealed partial class MachineOverviewPageVM : ObservableObject, IRecipient
|
|||||||
|
|
||||||
case nameof(EtchingStation2Page):
|
case nameof(EtchingStation2Page):
|
||||||
if (_etchingStation2PageVm == null)
|
if (_etchingStation2PageVm == null)
|
||||||
_etchingStation2PageVm = new(_adsManager, "GVL_CONFIG.stMachine.stEtcher2");
|
_etchingStation2PageVm = new(_adsManager, "GVL_SCADA.stMachine.stEtcher2");
|
||||||
|
|
||||||
EtchingStation2Page etchingStation2Page = new() { DataContext = _etchingStation2PageVm };
|
EtchingStation2Page etchingStation2Page = new() { DataContext = _etchingStation2PageVm };
|
||||||
CurrentDetailPage = etchingStation2Page;
|
CurrentDetailPage = etchingStation2Page;
|
||||||
@@ -235,7 +312,7 @@ public sealed partial class MachineOverviewPageVM : ObservableObject, IRecipient
|
|||||||
|
|
||||||
case nameof(HighVoltageStationPage):
|
case nameof(HighVoltageStationPage):
|
||||||
if (_highVoltageStationPageVm == null)
|
if (_highVoltageStationPageVm == null)
|
||||||
_highVoltageStationPageVm = new(_adsManager, "GVL_CONFIG.stMachine");
|
_highVoltageStationPageVm = new(_adsManager, "GVL_SCADA.stMachine.stHVTester"); // Hot/Cold is Set directly in VM
|
||||||
|
|
||||||
HighVoltageStationPage highVoltageStationPage = new() { DataContext = _highVoltageStationPageVm };
|
HighVoltageStationPage highVoltageStationPage = new() { DataContext = _highVoltageStationPageVm };
|
||||||
CurrentDetailPage = highVoltageStationPage;
|
CurrentDetailPage = highVoltageStationPage;
|
||||||
@@ -243,7 +320,7 @@ public sealed partial class MachineOverviewPageVM : ObservableObject, IRecipient
|
|||||||
|
|
||||||
case nameof(HotCoolPlatePage):
|
case nameof(HotCoolPlatePage):
|
||||||
if (_hotCoolplatePageVM == null)
|
if (_hotCoolplatePageVM == null)
|
||||||
_hotCoolplatePageVM = new(_adsManager, "GVL_Config.stMachine");
|
_hotCoolplatePageVM = new(_adsManager, "GVL_SCADA.stMachine"); //".stHotplate /.stCoolplate is set directly in VM
|
||||||
|
|
||||||
HotCoolPlatePage hotCoolPlatePage = new() {DataContext = _hotCoolplatePageVM };
|
HotCoolPlatePage hotCoolPlatePage = new() {DataContext = _hotCoolplatePageVM };
|
||||||
CurrentDetailPage = hotCoolPlatePage;
|
CurrentDetailPage = hotCoolPlatePage;
|
||||||
@@ -251,7 +328,7 @@ public sealed partial class MachineOverviewPageVM : ObservableObject, IRecipient
|
|||||||
|
|
||||||
case nameof(NIOStationPage):
|
case nameof(NIOStationPage):
|
||||||
if (_nioStationPageVm == null)
|
if (_nioStationPageVm == null)
|
||||||
_nioStationPageVm = new(_adsManager, "GVL_Config.stMachine.stNOK");
|
_nioStationPageVm = new(_adsManager, "GVL_SCADA.stMachine.stNOK");
|
||||||
|
|
||||||
NIOStationPage nIOStationPage = new() { DataContext = _nioStationPageVm };
|
NIOStationPage nIOStationPage = new() { DataContext = _nioStationPageVm };
|
||||||
CurrentDetailPage = nIOStationPage;
|
CurrentDetailPage = nIOStationPage;
|
||||||
@@ -260,7 +337,7 @@ public sealed partial class MachineOverviewPageVM : ObservableObject, IRecipient
|
|||||||
case nameof(KukaRobotPage):
|
case nameof(KukaRobotPage):
|
||||||
// Create page view model only once
|
// Create page view model only once
|
||||||
if (_kukaRobotPageVM == null)
|
if (_kukaRobotPageVM == null)
|
||||||
_kukaRobotPageVM = new(_adsManager, "GVL_CONFIG.stMachine.stKukaRobot");
|
_kukaRobotPageVM = new(_adsManager); // Variablenames are set directly in Viewmodel
|
||||||
|
|
||||||
KukaRobotPage kukaRobotPage = new() { DataContext = _kukaRobotPageVM };
|
KukaRobotPage kukaRobotPage = new() { DataContext = _kukaRobotPageVM };
|
||||||
CurrentDetailPage = kukaRobotPage;
|
CurrentDetailPage = kukaRobotPage;
|
||||||
@@ -268,7 +345,7 @@ public sealed partial class MachineOverviewPageVM : ObservableObject, IRecipient
|
|||||||
|
|
||||||
case nameof(MediaCabinetPage):
|
case nameof(MediaCabinetPage):
|
||||||
if (_mediaCabinetPageVM == null)
|
if (_mediaCabinetPageVM == null)
|
||||||
_mediaCabinetPageVM = new(_adsManager, "GVL_Config.stMachine");
|
_mediaCabinetPageVM = new(_adsManager, "GVL_SCADA.stMachine.stMediaCabinet"); //TODO not Implemented on PLC yet
|
||||||
|
|
||||||
MediaCabinetPage mediaCabinetPage = new() { DataContext= _mediaCabinetPageVM };
|
MediaCabinetPage mediaCabinetPage = new() { DataContext= _mediaCabinetPageVM };
|
||||||
CurrentDetailPage = mediaCabinetPage;
|
CurrentDetailPage = mediaCabinetPage;
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ using System.Collections.ObjectModel;
|
|||||||
using Common;
|
using Common;
|
||||||
using InfineonHMI.Model;
|
using InfineonHMI.Model;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
public sealed partial class MediaCabinetPageVM : ObservableValidator, IDisposable
|
public sealed partial class MediaCabinetPageVM : ObservableValidator, IDisposable
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -25,6 +25,9 @@ namespace InfineonHMI
|
|||||||
[ObservableProperty] private MediaContainerVm container7Vm;
|
[ObservableProperty] private MediaContainerVm container7Vm;
|
||||||
[ObservableProperty] private MediaContainerVm container8Vm;
|
[ObservableProperty] private MediaContainerVm container8Vm;
|
||||||
[ObservableProperty] private MediaContainerVm container9Vm;
|
[ObservableProperty] private MediaContainerVm container9Vm;
|
||||||
|
[ObservableProperty] private MediaContainerVm container10Vm;
|
||||||
|
[ObservableProperty] private MediaContainerVm container11Vm;
|
||||||
|
[ObservableProperty] private MediaContainerVm container12Vm;
|
||||||
|
|
||||||
|
|
||||||
public MediaCabinetPageVM(IAdsManager adsManager, string variableName)
|
public MediaCabinetPageVM(IAdsManager adsManager, string variableName)
|
||||||
@@ -41,6 +44,9 @@ namespace InfineonHMI
|
|||||||
Container7Vm = new MediaContainerVm(adsManager, variableName + ".stContainer7");
|
Container7Vm = new MediaContainerVm(adsManager, variableName + ".stContainer7");
|
||||||
Container8Vm = new MediaContainerVm(adsManager, variableName + ".stContainer8");
|
Container8Vm = new MediaContainerVm(adsManager, variableName + ".stContainer8");
|
||||||
Container9Vm = new MediaContainerVm(adsManager, variableName + ".stContainer9");
|
Container9Vm = new MediaContainerVm(adsManager, variableName + ".stContainer9");
|
||||||
|
Container10Vm = new MediaContainerVm(adsManager, variableName + ".stContainer10");
|
||||||
|
Container11Vm = new MediaContainerVm(adsManager, variableName + ".stContainer11");
|
||||||
|
Container12Vm = new MediaContainerVm(adsManager, variableName + ".stContainer12");
|
||||||
|
|
||||||
Container1Vm.SName = "Container1";
|
Container1Vm.SName = "Container1";
|
||||||
Container2Vm.SName = "Container2";
|
Container2Vm.SName = "Container2";
|
||||||
@@ -51,6 +57,10 @@ namespace InfineonHMI
|
|||||||
Container7Vm.SName = "Container7";
|
Container7Vm.SName = "Container7";
|
||||||
Container8Vm.SName = "Container8";
|
Container8Vm.SName = "Container8";
|
||||||
Container9Vm.SName = "Container9";
|
Container9Vm.SName = "Container9";
|
||||||
|
Container10Vm.SName = "Container10";
|
||||||
|
Container11Vm.SName = "Container11";
|
||||||
|
Container12Vm.SName = "Container12";
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -65,6 +75,9 @@ namespace InfineonHMI
|
|||||||
Container7Vm = new MediaContainerVm();
|
Container7Vm = new MediaContainerVm();
|
||||||
Container8Vm = new MediaContainerVm();
|
Container8Vm = new MediaContainerVm();
|
||||||
Container9Vm = new MediaContainerVm();
|
Container9Vm = new MediaContainerVm();
|
||||||
|
Container10Vm = new MediaContainerVm();
|
||||||
|
Container11Vm = new MediaContainerVm();
|
||||||
|
Container12Vm = new MediaContainerVm();
|
||||||
|
|
||||||
|
|
||||||
Container1Vm.SName = "Container1";
|
Container1Vm.SName = "Container1";
|
||||||
@@ -76,6 +89,9 @@ namespace InfineonHMI
|
|||||||
Container7Vm.SName = "Container7";
|
Container7Vm.SName = "Container7";
|
||||||
Container8Vm.SName = "Container8";
|
Container8Vm.SName = "Container8";
|
||||||
Container9Vm.SName = "Container9";
|
Container9Vm.SName = "Container9";
|
||||||
|
Container10Vm.SName = "Container10";
|
||||||
|
Container11Vm.SName = "Container11";
|
||||||
|
Container12Vm.SName = "Container12";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -100,9 +116,11 @@ namespace InfineonHMI
|
|||||||
Container7Vm.Dispose();
|
Container7Vm.Dispose();
|
||||||
Container8Vm.Dispose();
|
Container8Vm.Dispose();
|
||||||
Container9Vm.Dispose();
|
Container9Vm.Dispose();
|
||||||
|
Container10Vm.Dispose();
|
||||||
|
Container11Vm.Dispose();
|
||||||
|
Container12Vm.Dispose();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ using Heisig.HMI.AdsManager;
|
|||||||
using CommunityToolkit.Mvvm.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
using TwinCAT.TypeSystem;
|
using TwinCAT.TypeSystem;
|
||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
|
using Common;
|
||||||
using InfineonHMI.Model;
|
using InfineonHMI.Model;
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
public sealed partial class NIOStationPageVM : ObservableValidator, IDisposable
|
public sealed partial class NIOStationPageVM : ObservableValidator, IDisposable
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -25,12 +25,18 @@ namespace InfineonHMI
|
|||||||
|
|
||||||
[ObservableProperty] private HMIControlButtonVM unclampCmdButtonVm;
|
[ObservableProperty] private HMIControlButtonVM unclampCmdButtonVm;
|
||||||
|
|
||||||
|
[ObservableProperty] private PackMLControlVM? nIOStationPackMLControlVm;
|
||||||
|
|
||||||
|
|
||||||
public NIOStationPageVM()
|
public NIOStationPageVM()
|
||||||
{
|
{
|
||||||
ClampDiagValveVm = new BinaryValveControlVM();
|
ClampDiagValveVm = new BinaryValveControlVM();
|
||||||
ClampAcrossValveVm = new BinaryValveControlVM();
|
ClampAcrossValveVm = new BinaryValveControlVM();
|
||||||
ClampCmdButtonVm = new HMIControlButtonVM();
|
ClampCmdButtonVm = new HMIControlButtonVM();
|
||||||
UnclampCmdButtonVm = new HMIControlButtonVM();
|
UnclampCmdButtonVm = new HMIControlButtonVM();
|
||||||
|
NIOStationPackMLControlVm = new();
|
||||||
|
NIOStationPackMLControlVm.STitle = "NIO Station";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public NIOStationPageVM(IAdsManager adsManager, string variableName)
|
public NIOStationPageVM(IAdsManager adsManager, string variableName)
|
||||||
@@ -43,6 +49,8 @@ namespace InfineonHMI
|
|||||||
ClampCmdButtonVm = new HMIControlButtonVM(_adsManager, _variableName + ".stClampCmd");
|
ClampCmdButtonVm = new HMIControlButtonVM(_adsManager, _variableName + ".stClampCmd");
|
||||||
UnclampCmdButtonVm = new HMIControlButtonVM(_adsManager, _variableName + "stUnclampCmd");
|
UnclampCmdButtonVm = new HMIControlButtonVM(_adsManager, _variableName + "stUnclampCmd");
|
||||||
|
|
||||||
|
NIOStationPackMLControlVm = new(_adsManager, _variableName + ".stStationCmds");
|
||||||
|
NIOStationPackMLControlVm.STitle = "NIO Station";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,4 +64,3 @@ namespace InfineonHMI
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ using Microsoft.Extensions.Configuration;
|
|||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
using InfineonHMI.Common;
|
||||||
using TcEventLoggerAdsProxyLib;
|
using TcEventLoggerAdsProxyLib;
|
||||||
|
|
||||||
namespace InfineonHMI;
|
namespace InfineonHMI;
|
||||||
@@ -23,6 +24,7 @@ public sealed partial class ProductionOverviewPageVM : ObservableObject, IRecipi
|
|||||||
private readonly IConfiguration _config;
|
private readonly IConfiguration _config;
|
||||||
private readonly TcEventLogger _eventlogger;
|
private readonly TcEventLogger _eventlogger;
|
||||||
|
|
||||||
|
private User currentUser;
|
||||||
|
|
||||||
// Last active event
|
// Last active event
|
||||||
[ObservableProperty] private string currentActiveEvent = "";
|
[ObservableProperty] private string currentActiveEvent = "";
|
||||||
@@ -60,6 +62,7 @@ public sealed partial class ProductionOverviewPageVM : ObservableObject, IRecipi
|
|||||||
public ProductionOverviewPageVM()
|
public ProductionOverviewPageVM()
|
||||||
{
|
{
|
||||||
// default ctor
|
// default ctor
|
||||||
|
currentUser = Users.getCurrentUser();
|
||||||
}
|
}
|
||||||
public ProductionOverviewPageVM(IAdsManager adsManager, IConfiguration config, TcEventLogger eventLogger, NavigateMessage? message = null)
|
public ProductionOverviewPageVM(IAdsManager adsManager, IConfiguration config, TcEventLogger eventLogger, NavigateMessage? message = null)
|
||||||
{
|
{
|
||||||
@@ -67,7 +70,7 @@ public sealed partial class ProductionOverviewPageVM : ObservableObject, IRecipi
|
|||||||
_config = config;
|
_config = config;
|
||||||
// Create dummy string
|
// Create dummy string
|
||||||
DummyStringVM = new StringControlButtonVM();
|
DummyStringVM = new StringControlButtonVM();
|
||||||
|
currentUser = Users.getCurrentUser();
|
||||||
// Create empty page
|
// Create empty page
|
||||||
_emptyPage = new();
|
_emptyPage = new();
|
||||||
|
|
||||||
@@ -209,7 +212,7 @@ public sealed partial class ProductionOverviewPageVM : ObservableObject, IRecipi
|
|||||||
{
|
{
|
||||||
case nameof(TrayFeederPage):
|
case nameof(TrayFeederPage):
|
||||||
if (_trayFeederPageVm == null)
|
if (_trayFeederPageVm == null)
|
||||||
_trayFeederPageVm = new(_adsManager, "GVL_CONFIG.stMachine");
|
_trayFeederPageVm = new(_adsManager, "GVL_SCADA.stMachine.TrayFeeder"); //In and Out ist set directly in ViewModel
|
||||||
|
|
||||||
TrayFeederPage trayFeederPage = new() { DataContext = _trayFeederPageVm };
|
TrayFeederPage trayFeederPage = new() { DataContext = _trayFeederPageVm };
|
||||||
CurrentDetailPage = trayFeederPage;
|
CurrentDetailPage = trayFeederPage;
|
||||||
@@ -218,7 +221,7 @@ public sealed partial class ProductionOverviewPageVM : ObservableObject, IRecipi
|
|||||||
case nameof(AlignmentStationPage):
|
case nameof(AlignmentStationPage):
|
||||||
// Create seetings page view model only once
|
// Create seetings page view model only once
|
||||||
if (_alignmentStationPageVM == null)
|
if (_alignmentStationPageVM == null)
|
||||||
_alignmentStationPageVM = new(_adsManager, "GVL_CONFIG.stMachine.stAligner");
|
_alignmentStationPageVM = new(_adsManager, "GVL_SCADA.stMachine.stAligner");
|
||||||
|
|
||||||
AlignmentStationPage settingsPage = new() { DataContext = _alignmentStationPageVM };
|
AlignmentStationPage settingsPage = new() { DataContext = _alignmentStationPageVM };
|
||||||
CurrentDetailPage = settingsPage;
|
CurrentDetailPage = settingsPage;
|
||||||
@@ -226,7 +229,7 @@ public sealed partial class ProductionOverviewPageVM : ObservableObject, IRecipi
|
|||||||
|
|
||||||
case nameof(EtchingStation1Page):
|
case nameof(EtchingStation1Page):
|
||||||
if (_etchingStation1PageVm == null)
|
if (_etchingStation1PageVm == null)
|
||||||
_etchingStation1PageVm = new(_adsManager, "GVL_CONFIG.stMachine.stEtcher1");
|
_etchingStation1PageVm = new(_adsManager, "GVL_SCADA.stMachine.stEtcher1");
|
||||||
|
|
||||||
EtchingStation1Page etchingStation1Page = new() { DataContext = _etchingStation1PageVm };
|
EtchingStation1Page etchingStation1Page = new() { DataContext = _etchingStation1PageVm };
|
||||||
CurrentDetailPage = etchingStation1Page;
|
CurrentDetailPage = etchingStation1Page;
|
||||||
@@ -234,7 +237,7 @@ public sealed partial class ProductionOverviewPageVM : ObservableObject, IRecipi
|
|||||||
|
|
||||||
case nameof(EtchingStation2Page):
|
case nameof(EtchingStation2Page):
|
||||||
if (_etchingStation2PageVm == null)
|
if (_etchingStation2PageVm == null)
|
||||||
_etchingStation2PageVm = new(_adsManager, "GVL_CONFIG.stMachine.stEtcher2");
|
_etchingStation2PageVm = new(_adsManager, "GVL_SCADA.stMachine.stEtcher2");
|
||||||
|
|
||||||
EtchingStation2Page etchingStation2Page = new() { DataContext = _etchingStation2PageVm };
|
EtchingStation2Page etchingStation2Page = new() { DataContext = _etchingStation2PageVm };
|
||||||
CurrentDetailPage = etchingStation2Page;
|
CurrentDetailPage = etchingStation2Page;
|
||||||
@@ -242,7 +245,7 @@ public sealed partial class ProductionOverviewPageVM : ObservableObject, IRecipi
|
|||||||
|
|
||||||
case nameof(HighVoltageStationPage):
|
case nameof(HighVoltageStationPage):
|
||||||
if (_highVoltageStationPageVm == null)
|
if (_highVoltageStationPageVm == null)
|
||||||
_highVoltageStationPageVm = new(_adsManager, "GVL_CONFIG.stMachine");
|
_highVoltageStationPageVm = new(_adsManager, "GVL_SCADA.stMachine.stHVTester"); // Hot/Cold is Set directly in VM
|
||||||
|
|
||||||
HighVoltageStationPage highVoltageStationPage = new() { DataContext = _highVoltageStationPageVm };
|
HighVoltageStationPage highVoltageStationPage = new() { DataContext = _highVoltageStationPageVm };
|
||||||
CurrentDetailPage = highVoltageStationPage;
|
CurrentDetailPage = highVoltageStationPage;
|
||||||
@@ -250,7 +253,7 @@ public sealed partial class ProductionOverviewPageVM : ObservableObject, IRecipi
|
|||||||
|
|
||||||
case nameof(HotCoolPlatePage):
|
case nameof(HotCoolPlatePage):
|
||||||
if (_hotCoolplatePageVM == null)
|
if (_hotCoolplatePageVM == null)
|
||||||
_hotCoolplatePageVM = new(_adsManager, "GVL_Config.stMachine");
|
_hotCoolplatePageVM = new(_adsManager, "GVL_SCADA.stMachine"); //".stHotplate /.stCoolplate is set directly in VM
|
||||||
|
|
||||||
HotCoolPlatePage hotCoolPlatePage = new() {DataContext = _hotCoolplatePageVM };
|
HotCoolPlatePage hotCoolPlatePage = new() {DataContext = _hotCoolplatePageVM };
|
||||||
CurrentDetailPage = hotCoolPlatePage;
|
CurrentDetailPage = hotCoolPlatePage;
|
||||||
@@ -258,7 +261,7 @@ public sealed partial class ProductionOverviewPageVM : ObservableObject, IRecipi
|
|||||||
|
|
||||||
case nameof(NIOStationPage):
|
case nameof(NIOStationPage):
|
||||||
if (_nioStationPageVm == null)
|
if (_nioStationPageVm == null)
|
||||||
_nioStationPageVm = new(_adsManager, "GVL_Config.stMachine.stNOK");
|
_nioStationPageVm = new(_adsManager, "GVL_SCADA.stMachine.stNOK");
|
||||||
|
|
||||||
NIOStationPage nIOStationPage = new() { DataContext = _nioStationPageVm };
|
NIOStationPage nIOStationPage = new() { DataContext = _nioStationPageVm };
|
||||||
CurrentDetailPage = nIOStationPage;
|
CurrentDetailPage = nIOStationPage;
|
||||||
@@ -267,7 +270,7 @@ public sealed partial class ProductionOverviewPageVM : ObservableObject, IRecipi
|
|||||||
case nameof(KukaRobotPage):
|
case nameof(KukaRobotPage):
|
||||||
// Create page view model only once
|
// Create page view model only once
|
||||||
if (_kukaRobotPageVM == null)
|
if (_kukaRobotPageVM == null)
|
||||||
_kukaRobotPageVM = new(_adsManager, "GVL_CONFIG.stMachine.stKukaRobot");
|
_kukaRobotPageVM = new(_adsManager); // Variablenames are set directly in Viewmodel
|
||||||
|
|
||||||
KukaRobotPage kukaRobotPage = new() { DataContext = _kukaRobotPageVM };
|
KukaRobotPage kukaRobotPage = new() { DataContext = _kukaRobotPageVM };
|
||||||
CurrentDetailPage = kukaRobotPage;
|
CurrentDetailPage = kukaRobotPage;
|
||||||
@@ -275,7 +278,7 @@ public sealed partial class ProductionOverviewPageVM : ObservableObject, IRecipi
|
|||||||
|
|
||||||
case nameof(MediaCabinetPage):
|
case nameof(MediaCabinetPage):
|
||||||
if (_mediaCabinetPageVM == null)
|
if (_mediaCabinetPageVM == null)
|
||||||
_mediaCabinetPageVM = new(_adsManager, "GVL_Config.stMachine");
|
_mediaCabinetPageVM = new(_adsManager, "GVL_SCADA.stMachine.stMediaCabinet"); //TODO not Implemented on PLC yet
|
||||||
|
|
||||||
MediaCabinetPage mediaCabinetPage = new() { DataContext= _mediaCabinetPageVM };
|
MediaCabinetPage mediaCabinetPage = new() { DataContext= _mediaCabinetPageVM };
|
||||||
CurrentDetailPage = mediaCabinetPage;
|
CurrentDetailPage = mediaCabinetPage;
|
||||||
|
|||||||
@@ -413,6 +413,13 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
|
|||||||
SendDataToPLC();
|
SendDataToPLC();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[RelayCommand]
|
||||||
|
public void LoadFromPlc()
|
||||||
|
{
|
||||||
|
//ReadDataFromPLC();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
[RelayCommand]
|
[RelayCommand]
|
||||||
public void ReadReceipeFile()
|
public void ReadReceipeFile()
|
||||||
{
|
{
|
||||||
@@ -710,21 +717,21 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
_adsManager.WriteValue("GVL_SCADA.stMachine", CameraProgramsVm.Value);
|
_adsManager.WriteValue("GVL_SCADA.stMachine.iCameraprograms", CameraProgramsVm.Value);
|
||||||
_adsManager.WriteValue("GVL_SCADA.stMachine", ChucksVm.Value);
|
_adsManager.WriteValue("GVL_SCADA.stMachine.iChucks", ChucksVm.Value);
|
||||||
_adsManager.WriteValue("GVL_SCADA.stMachine", GripperVm.Value);
|
_adsManager.WriteValue("GVL_SCADA.stMachine.iGripper", GripperVm.Value);
|
||||||
_adsManager.WriteValue("GVL_SCADA.stMachine", PermissibleBeamParamDeviationsVm.Value);
|
_adsManager.WriteValue("GVL_SCADA.stMachine.rBeamDeviation", PermissibleBeamParamDeviationsVm.Value);
|
||||||
_adsManager.WriteValue("GVL_SCADA.stMachine", DiameterVm.Value);
|
_adsManager.WriteValue("GVL_SCADA.stMachine.rDiameter", DiameterVm.Value);
|
||||||
_adsManager.WriteValue("GVL_SCADA.stMachine", ThicknessVm.Value);
|
_adsManager.WriteValue("GVL_SCADA.stMachine.rThickness", ThicknessVm.Value);
|
||||||
_adsManager.WriteValue("GVL_SCADA.stMachine", TimeIntervallBeamCheckVm.Value);
|
_adsManager.WriteValue("GVL_SCADA.stMachine.rTimeIntervalBeamCheck", TimeIntervallBeamCheckVm.Value);
|
||||||
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHotplate.rRestingTime", RestingTimeHotplateVm.Value);
|
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHotplate.rRestingTime", RestingTimeHotplateVm.Value);
|
||||||
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHotplate.rTemp", TargetTemperatureHotplateVm.Value);
|
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHotplate.rTemp", TargetTemperatureHotplateVm.Value);
|
||||||
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeCoolplate.rRestingTime", RestingTimeCoolplateVm.Value);
|
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeCoolplate.rRestingTime", RestingTimeCoolplateVm.Value);
|
||||||
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeCoolplate.rTemp", TargetTemperatureCoolplateVm.Value);
|
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeCoolplate.rTemp", TargetTemperatureCoolplateVm.Value);
|
||||||
|
|
||||||
_adsManager.WriteValue("GVL_SCADA.stMachine.stRecipeEtcher.uiNumRobotPos", NumberRobotPositionsVm.Value);
|
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeEtcher.uiNumRobotPos", NumberRobotPositionsVm.Value);
|
||||||
_adsManager.WriteValue("GVL_SCADA.stMachine.stRecipeEtcher.rRadialPosLowerWaterJet", RadialPosLowerWaterJetVm.Value);
|
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeEtcher.rRadialPosLowerWaterJet", RadialPosLowerWaterJetVm.Value);
|
||||||
_adsManager.WriteValue("GVL_SCADA.stMachine.stRecipeEtcher.rChuckRPM", ChuckRpmVm.Value);
|
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeEtcher.rChuckRPM", ChuckRpmVm.Value);
|
||||||
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rTestVoltage", HvtestVoltageVm.Value);
|
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rTestVoltage", HvtestVoltageVm.Value);
|
||||||
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rMaxTestCurrent", HvmaxTestCurrentVm.Value);
|
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rMaxTestCurrent", HvmaxTestCurrentVm.Value);
|
||||||
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rRampTime", HvrampTimeVm.Value);
|
_adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rRampTime", HvrampTimeVm.Value);
|
||||||
@@ -739,6 +746,123 @@ public sealed partial class ReceipePageVM : ObservableValidator, IDisposable
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//private void ReadDataFromPLC()
|
||||||
|
//{
|
||||||
|
// var val = _adsManager.ReadValue("GVL_Scheduler.MAX_RECIPE_NODES");
|
||||||
|
// maxFlowNodes = (val == null) ? 10 : (int)val; ;
|
||||||
|
// val = _adsManager.ReadValue("GVL_ETCHER.MAX_ROBOT_POS");
|
||||||
|
// maxEtcherRobotPositions = (val == null) ? 10 : (int)val;
|
||||||
|
// val = _adsManager.ReadValue("GVL_ETCHER.MAX_ROBOT_POS");
|
||||||
|
// maxTrayPositions = (val == null) ? 20 : (int)val;
|
||||||
|
|
||||||
|
// for (var i = 0; i < maxTrayPositions && i < TrayPositions.Count; i++)
|
||||||
|
// {
|
||||||
|
// TrayPositions[i].PosX = GetFloat(_adsManager.ReadValue("GVL_SCADA.stMachine.stTray.arPosX[" + i + "]"));
|
||||||
|
// TrayPositions[i].PosY = GetFloat(_adsManager.ReadValue("GVL_SCADA.stMachine.stTray.arPosY[" + i + "]"));
|
||||||
|
// }
|
||||||
|
|
||||||
|
// var trayPosCountToPlc = TrayPositions.Count < maxTrayPositions ? TrayPositions.Count : maxTrayPositions;
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stTray.iPosCnt", trayPosCountToPlc);
|
||||||
|
|
||||||
|
// for (var i = 0; i < maxEtcherRobotPositions && i < EtcherRobotSteps.Count; i++)
|
||||||
|
// {
|
||||||
|
// EtcherRobotSteps[i].PosX= GetFloat(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rPosX"));
|
||||||
|
// EtcherRobotSteps[i].PosY= GetFloat(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rPosY"));
|
||||||
|
// EtcherRobotSteps[i].PosZ= GetFloat(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rPosZ"));
|
||||||
|
// EtcherRobotSteps[i].AngleAlpha= GetFloat(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rAngleAlpha"));
|
||||||
|
// EtcherRobotSteps[i].MoveSpeed= GetFloat(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rMoveSpeed"));
|
||||||
|
// EtcherRobotSteps[i].Delay = GetFloat(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rDelay"));
|
||||||
|
// EtcherRobotSteps[i].Medium = GetUShort(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].uiMedium"));
|
||||||
|
// EtcherRobotSteps[i].WaterFromBelow= GetShort(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].xWaterFromBelow"));
|
||||||
|
// EtcherRobotSteps[i].WaterFromAbove = GetShort(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].xWaterFromAbove"));
|
||||||
|
|
||||||
|
|
||||||
|
// GetFloat(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rPosX"));
|
||||||
|
// GetFloat(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rPosY"));
|
||||||
|
// GetFloat(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rPosZ"));
|
||||||
|
// GetFloat(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rAngleAlpha"));
|
||||||
|
// GetFloat(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rMoveSpeed"));
|
||||||
|
// GetFloat(_adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].rDelay"));
|
||||||
|
// _adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].uiMedium"));
|
||||||
|
// _adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].xWaterFromBelow"));
|
||||||
|
// _adsManager.ReadValue("GVL_SCADA.stRecipeEtcher.stRobotStepData[" + i + "].xWaterFromAbove"));
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
// for (var i = 0; (i < maxFlowNodes && i < FlowReceipeEntries.Count); i++)
|
||||||
|
// {
|
||||||
|
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterFlowRecipe.astNodes[" + i + "].uiPriority", FlowReceipeEntries[i].Priority);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterFlowRecipe.astNodes[" + i + "].uiPriority", FlowReceipeEntries[i].Station.eStation);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterFlowRecipe.astNodes[" + i + "].uiPriority", FlowReceipeEntries[i].MaxRetries);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterFlowRecipe.astNodes[" + i + "].uiPriority", FlowReceipeEntries[i].NextNodeSuccess);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterFlowRecipe.astNodes[" + i + "].uiPriority", FlowReceipeEntries[i].NextNodeRetry);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterFlowRecipe.astNodes[" + i + "].uiPriority", FlowReceipeEntries[i].NextNodeFail);
|
||||||
|
|
||||||
|
// }
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterFlowRecipe.uiNodeCnt", FlowNodeCountVm.Value);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine", CameraProgramsVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine", ChucksVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine", GripperVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine", PermissibleBeamParamDeviationsVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine", DiameterVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine", ThicknessVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine", TimeIntervallBeamCheckVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHotplate.rRestingTime", RestingTimeHotplateVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHotplate.rTemp", TargetTemperatureHotplateVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeCoolplate.rRestingTime", RestingTimeCoolplateVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeCoolplate.rTemp", TargetTemperatureCoolplateVm.Value);
|
||||||
|
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeEtcher.uiNumRobotPos", NumberRobotPositionsVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeEtcher.rRadialPosLowerWaterJet", RadialPosLowerWaterJetVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeEtcher.rChuckRPM", ChuckRpmVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rTestVoltage", HvtestVoltageVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rMaxTestCurrent", HvmaxTestCurrentVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rRampTime", HvrampTimeVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rTestFrequency", HvtestFrequencyVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.uiPolarity", HvpolarityVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rTestPresN2", HvtestPressureN2Vm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rN2PrePurgeTime", Hvn2PrePurgeTimeVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.uiNumRetries", HvnumRetriesVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rTestTemp", HvtestTemperatureVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rTestOkVoltage", HvTestOkVoltageVm.Value);
|
||||||
|
// _adsManager.WriteValue("GVL_SCADA.stMachine.stMasterRecipeHVTest.rTestOkCurrent", HvTestOkCurrentVm.Value);
|
||||||
|
//}
|
||||||
|
|
||||||
|
//private short GetShort(object? value)
|
||||||
|
//{
|
||||||
|
// if (value != null)
|
||||||
|
// return (short)value;
|
||||||
|
|
||||||
|
// return -1;
|
||||||
|
//}
|
||||||
|
|
||||||
|
//private UInt16 GetUShort(object? value)
|
||||||
|
//{
|
||||||
|
// if (value != null)
|
||||||
|
// return (UInt16)value;
|
||||||
|
|
||||||
|
// return 0;
|
||||||
|
//}
|
||||||
|
|
||||||
|
private bool GetBool(object? value)
|
||||||
|
{
|
||||||
|
if (value != null)
|
||||||
|
return (bool)value;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
private float GetFloat(object? value)
|
||||||
|
{
|
||||||
|
if (value != null)
|
||||||
|
return (float)value;
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
@@ -5,19 +5,25 @@ using Heisig.HMI.AdsManager;
|
|||||||
using CommunityToolkit.Mvvm.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
using TwinCAT.TypeSystem;
|
using TwinCAT.TypeSystem;
|
||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
|
using Common;
|
||||||
using InfineonHMI.Model;
|
using InfineonHMI.Model;
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
public sealed partial class TrayFeederPageVM : ObservableValidator, IDisposable
|
public sealed partial class TrayFeederPageVM : ObservableValidator, IDisposable
|
||||||
{
|
{
|
||||||
private readonly string? _variableName;
|
private readonly string? _variableName;
|
||||||
|
|
||||||
private readonly IAdsManager? _adsManager;
|
private readonly IAdsManager? _adsManager;
|
||||||
|
|
||||||
|
[ObservableProperty] private PackMLControlVM? trayfeederOutPackMLControlVm;
|
||||||
|
[ObservableProperty] private PackMLControlVM? trayfeederInPackMLControlVm;
|
||||||
|
|
||||||
public TrayFeederPageVM()
|
public TrayFeederPageVM()
|
||||||
{
|
{
|
||||||
|
TrayfeederInPackMLControlVm = new();
|
||||||
|
TrayfeederOutPackMLControlVm = new();
|
||||||
|
TrayfeederInPackMLControlVm.STitle = "Trayfeeder IN";
|
||||||
|
TrayfeederOutPackMLControlVm.STitle = "Trayfeeder OUT";
|
||||||
}
|
}
|
||||||
|
|
||||||
public TrayFeederPageVM(IAdsManager adsManager, string variableName)
|
public TrayFeederPageVM(IAdsManager adsManager, string variableName)
|
||||||
@@ -26,6 +32,11 @@ namespace InfineonHMI
|
|||||||
_variableName = variableName;
|
_variableName = variableName;
|
||||||
|
|
||||||
|
|
||||||
|
TrayfeederInPackMLControlVm = new(_adsManager, _variableName + "In.stStationCmds");
|
||||||
|
TrayfeederOutPackMLControlVm = new(_adsManager, _variableName + "Out.stStationCmds");
|
||||||
|
|
||||||
|
TrayfeederInPackMLControlVm.STitle = "Trayfeeder IN";
|
||||||
|
TrayfeederOutPackMLControlVm.STitle = "Trayfeeder OUT";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -38,5 +49,4 @@ namespace InfineonHMI
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -4,18 +4,24 @@
|
|||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:local="clr-namespace:InfineonHMI"
|
xmlns:local="clr-namespace:InfineonHMI"
|
||||||
xmlns:HMIToolkit="clr-namespace:HMIToolkit" x:Class="InfineonHMI.AlignmentStationPage"
|
xmlns:HMIToolkit="clr-namespace:HMIToolkit"
|
||||||
|
xmlns:common="clr-namespace:Common"
|
||||||
|
x:Class="InfineonHMI.AlignmentStationPage"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DataContext="{d:DesignInstance IsDesignTimeCreatable=True, Type={x:Type local:AlignmentStationPageVM}}"
|
d:DataContext="{d:DesignInstance IsDesignTimeCreatable=True, Type={x:Type local:AlignmentStationPageVM}}"
|
||||||
d:DesignHeight="800" d:DesignWidth="1850"
|
d:DesignHeight="1554" d:DesignWidth="3390"
|
||||||
Title="AlignmentStationPage" FontSize="40">
|
Title="AlignmentStationPage" FontSize="40">
|
||||||
|
|
||||||
<Grid>
|
<Grid Margin="20">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
|
<ColumnDefinition />
|
||||||
|
<ColumnDefinition />
|
||||||
|
<ColumnDefinition />
|
||||||
|
<ColumnDefinition />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition />
|
<RowDefinition />
|
||||||
@@ -28,9 +34,11 @@
|
|||||||
<RowDefinition />
|
<RowDefinition />
|
||||||
<RowDefinition />
|
<RowDefinition />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Label Grid.Row="0" Grid.Column="0" Content="Alignment Station" VerticalAlignment="Top" HorizontalAlignment="Left" />
|
|
||||||
|
|
||||||
<HMIToolkit:BinaryValveControl Grid.Column="0" Grid.Row="0" Grid.RowSpan="4" HorizontalAlignment="center" VerticalAlignment="Center" DataContext="{Binding Path=VacuumValveControlVm}"/>
|
<Label Grid.Row="0" Grid.Column="0" Content="Ausrichtstation" VerticalAlignment="Top" HorizontalAlignment="Left" />
|
||||||
|
|
||||||
|
<HMIToolkit:BinaryValveControl Grid.Column="0" Grid.Row="0" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding Path=VacuumValveControlVm}"/>
|
||||||
|
|
||||||
|
<common:PackMLControl Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="2" HorizontalAlignment="Right" Grid.RowSpan="6" Width="Auto" Margin="20" DataContext="{Binding AlignmentPackMLControlVm}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Page>
|
</Page>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für AutomaticModePage.xaml
|
/// Interaktionslogik für AutomaticModePage.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -19,4 +19,3 @@ namespace InfineonHMI
|
|||||||
disposable?.Dispose();
|
disposable?.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -5,12 +5,13 @@
|
|||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:local="clr-namespace:InfineonHMI"
|
xmlns:local="clr-namespace:InfineonHMI"
|
||||||
xmlns:hmiToolkit="clr-namespace:HMIToolkit"
|
xmlns:hmiToolkit="clr-namespace:HMIToolkit"
|
||||||
|
xmlns:common="clr-namespace:Common"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DataContext="{d:DesignInstance Type=local:EtchingStation1PageVM, IsDesignTimeCreatable=True}"
|
d:DataContext="{d:DesignInstance Type=local:EtchingStation1PageVM, IsDesignTimeCreatable=True}"
|
||||||
d:DesignHeight="800" d:DesignWidth="1850"
|
d:DesignHeight="1554" d:DesignWidth="3390"
|
||||||
Title="EtchingStationPage">
|
Title="EtchingStationPage">
|
||||||
|
|
||||||
<Grid>
|
<Grid Margin="20">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
@@ -32,18 +33,19 @@
|
|||||||
<RowDefinition />
|
<RowDefinition />
|
||||||
<RowDefinition />
|
<RowDefinition />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Label Grid.Row="0" Grid.Column="0" Content="Etching Station 1" VerticalAlignment="Top" HorizontalAlignment="Left" FontSize="35" />
|
<Label Grid.Row="0" Grid.Column="0" Content="Ätzstation 1" VerticalAlignment="Top" HorizontalAlignment="Left" FontSize="40" />
|
||||||
<hmiToolkit:BinaryValveControl Grid.Column="0" Grid.Row="0" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding VacuumValveControlEtching1Vm}"/>
|
<hmiToolkit:BinaryValveControl Grid.Column="0" Grid.Row="0" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding VacuumValveControlEtching1Vm}"/>
|
||||||
<hmiToolkit:BinaryValveControl Grid.Column="1" Grid.Row="0" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding DoorValveControlEtching1Vm}"/>
|
<hmiToolkit:BinaryValveControl Grid.Column="1" Grid.Row="0" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding DoorValveControlEtching1Vm}"/>
|
||||||
<hmiToolkit:BinaryValveControl Grid.Column="2" Grid.Row="0" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding ChuckUnlockValveLeftEtching1Vm}"/>
|
<hmiToolkit:BinaryValveControl Grid.Column="2" Grid.Row="0" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding ChuckUnlockValveLeftEtching1Vm}"/>
|
||||||
<hmiToolkit:BinaryValveControl Grid.Column="0" Grid.Row="3" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding ChuckUnlockValveRightEtching1Vm}"/>
|
<hmiToolkit:BinaryValveControl Grid.Column="0" Grid.Row="4" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding ChuckUnlockValveRightEtching1Vm}"/>
|
||||||
<hmiToolkit:BinaryValveControl Grid.Column="1" Grid.Row="3" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding ChuckEjectValveFrontEtching1Vm}"/>
|
<hmiToolkit:BinaryValveControl Grid.Column="1" Grid.Row="4" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding ChuckEjectValveFrontEtching1Vm}"/>
|
||||||
<hmiToolkit:BinaryValveControl Grid.Column="2" Grid.Row="3" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding ChuckEjectValveBackEtching1Vm}"/>
|
<hmiToolkit:BinaryValveControl Grid.Column="2" Grid.Row="4" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding ChuckEjectValveBackEtching1Vm}"/>
|
||||||
|
|
||||||
<Button Grid.Row="1" Grid.Column="3" Content="Teller Entriegeln" DataContext="{Binding ChuckUnlockCmdButtonEtching1Vm}" HorizontalAlignment="Center" Width="320" Height="140" FontSize="30" />
|
<Button Grid.Row="1" Grid.Column="3" Content="Teller Entriegeln" DataContext="{Binding ChuckUnlockCmdButtonEtching1Vm}" HorizontalAlignment="Center" Width="320" Height="140" FontSize="30" />
|
||||||
<Button Grid.Row="2" Grid.Column="3" Content="Teller Verriegeln" DataContext="{Binding ChuckLockCmdButtonEtching1Vm}" HorizontalAlignment="Center" Width="320" Height="140" FontSize="30"/>
|
<Button Grid.Row="2" Grid.Column="3" Content="Teller Verriegeln" DataContext="{Binding ChuckLockCmdButtonEtching1Vm}" HorizontalAlignment="Center" Width="320" Height="140" FontSize="30"/>
|
||||||
<Button Grid.Row="3" Grid.Column="3" Content="Teller Auswerfen" DataContext="{Binding ChuckEjectCmdButtonEtching1Vm}" HorizontalAlignment="Center" Width="320" Height="140" FontSize="30"/>
|
<Button Grid.Row="3" Grid.Column="3" Content="Teller Auswerfen" DataContext="{Binding ChuckEjectCmdButtonEtching1Vm}" HorizontalAlignment="Center" Width="320" Height="140" FontSize="30"/>
|
||||||
|
|
||||||
|
<common:PackMLControl Grid.Row="0" Grid.Column="6" Grid.ColumnSpan="2" HorizontalAlignment="Right" Grid.RowSpan="6" Width="Auto" Margin="20" DataContext="{Binding Etching1PackMLControlVm}"/>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</Page>
|
</Page>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für AutomaticModePage.xaml
|
/// Interaktionslogik für AutomaticModePage.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -19,4 +19,3 @@ namespace InfineonHMI
|
|||||||
disposable?.Dispose();
|
disposable?.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -5,12 +5,13 @@
|
|||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:local="clr-namespace:InfineonHMI"
|
xmlns:local="clr-namespace:InfineonHMI"
|
||||||
xmlns:hmiToolkit="clr-namespace:HMIToolkit"
|
xmlns:hmiToolkit="clr-namespace:HMIToolkit"
|
||||||
|
xmlns:common="clr-namespace:Common"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DataContext="{d:DesignInstance Type=local:EtchingStation2PageVM, IsDesignTimeCreatable=True}"
|
d:DataContext="{d:DesignInstance Type=local:EtchingStation2PageVM, IsDesignTimeCreatable=True}"
|
||||||
d:DesignHeight="800" d:DesignWidth="1850"
|
d:DesignHeight="1554" d:DesignWidth="3390"
|
||||||
Title="EtchingStationPage">
|
Title="EtchingStationPage">
|
||||||
|
|
||||||
<Grid>
|
<Grid Margin="20">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
@@ -32,17 +33,18 @@
|
|||||||
<RowDefinition />
|
<RowDefinition />
|
||||||
<RowDefinition />
|
<RowDefinition />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Label Grid.Row="0" Grid.Column="0" Content="Etching Station 2" VerticalAlignment="Top" HorizontalAlignment="Left" FontSize="35" />
|
<Label Grid.Row="0" Grid.Column="0" Content="Ätzstation 2" VerticalAlignment="Top" HorizontalAlignment="Left" FontSize="40" />
|
||||||
|
|
||||||
<hmiToolkit:BinaryValveControl Grid.Column="0" Grid.Row="0" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding VacuumValveControlEtching2Vm}"/>
|
<hmiToolkit:BinaryValveControl Grid.Column="0" Grid.Row="0" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding VacuumValveControlEtching2Vm}"/>
|
||||||
<hmiToolkit:BinaryValveControl Grid.Column="1" Grid.Row="0" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding DoorValveControlEtching2Vm}"/>
|
<hmiToolkit:BinaryValveControl Grid.Column="1" Grid.Row="0" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding DoorValveControlEtching2Vm}"/>
|
||||||
<hmiToolkit:BinaryValveControl Grid.Column="2" Grid.Row="0" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding ChuckUnlockValveLeftEtching2Vm}"/>
|
<hmiToolkit:BinaryValveControl Grid.Column="2" Grid.Row="0" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding ChuckUnlockValveLeftEtching2Vm}"/>
|
||||||
<hmiToolkit:BinaryValveControl Grid.Column="0" Grid.Row="3" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding ChuckUnlockValveRightEtching2Vm}"/>
|
<hmiToolkit:BinaryValveControl Grid.Column="0" Grid.Row="4" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding ChuckUnlockValveRightEtching2Vm}"/>
|
||||||
<hmiToolkit:BinaryValveControl Grid.Column="1" Grid.Row="3" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding ChuckEjectValveFrontEtching2Vm}"/>
|
<hmiToolkit:BinaryValveControl Grid.Column="1" Grid.Row="4" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding ChuckEjectValveFrontEtching2Vm}"/>
|
||||||
<hmiToolkit:BinaryValveControl Grid.Column="2" Grid.Row="3" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding ChuckEjectValveBackEtching2Vm}"/>
|
<hmiToolkit:BinaryValveControl Grid.Column="2" Grid.Row="4" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding ChuckEjectValveBackEtching2Vm}"/>
|
||||||
|
|
||||||
<Button Grid.Row="1" Grid.Column="3" Content="Teller Entriegeln" DataContext="{Binding ChuckUnlockCmdButtonEtching2Vm}" HorizontalAlignment="Center" Width="320" Height="140" FontSize="30"/>
|
<Button Grid.Row="1" Grid.Column="3" Content="Teller Entriegeln" DataContext="{Binding ChuckUnlockCmdButtonEtching2Vm}" HorizontalAlignment="Center" Width="320" Height="140" FontSize="30"/>
|
||||||
<Button Grid.Row="2" Grid.Column="3" Content="Teller Verriegeln" DataContext="{Binding ChuckLockCmdButtonEtching2Vm}" HorizontalAlignment="Center" Width="320" Height="140" FontSize="30"/>
|
<Button Grid.Row="2" Grid.Column="3" Content="Teller Verriegeln" DataContext="{Binding ChuckLockCmdButtonEtching2Vm}" HorizontalAlignment="Center" Width="320" Height="140" FontSize="30"/>
|
||||||
<Button Grid.Row="3" Grid.Column="3" Content="Teller Auswerfen" DataContext="{Binding ChuckEjectCmdButtonEtching2Vm}" HorizontalAlignment="Center" Width="320" Height="140" FontSize="30"/>
|
<Button Grid.Row="3" Grid.Column="3" Content="Teller Auswerfen" DataContext="{Binding ChuckEjectCmdButtonEtching2Vm}" HorizontalAlignment="Center" Width="320" Height="140" FontSize="30"/>
|
||||||
|
<common:PackMLControl Grid.Row="0" Grid.Column="6" Grid.ColumnSpan="2" HorizontalAlignment="Right" Grid.RowSpan="6" Width="Auto" Margin="20" DataContext="{Binding Etching2PackMLControlVm}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Page>
|
</Page>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für AutomaticModePage.xaml
|
/// Interaktionslogik für AutomaticModePage.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -19,4 +19,3 @@ namespace InfineonHMI
|
|||||||
disposable?.Dispose();
|
disposable?.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -5,17 +5,21 @@
|
|||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:local="clr-namespace:InfineonHMI"
|
xmlns:local="clr-namespace:InfineonHMI"
|
||||||
xmlns:hmiToolkit="clr-namespace:HMIToolkit"
|
xmlns:hmiToolkit="clr-namespace:HMIToolkit"
|
||||||
|
xmlns:common="clr-namespace:Common"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DataContext="{d:DesignInstance Type=local:HighVoltageStationPageVM, IsDesignTimeCreatable=True}"
|
d:DataContext="{d:DesignInstance Type=local:HighVoltageStationPageVM, IsDesignTimeCreatable=True}"
|
||||||
d:DesignHeight="800" d:DesignWidth="1850"
|
d:DesignHeight="1554" d:DesignWidth="3390"
|
||||||
Title="High Voltage Test Station">
|
Title="High Voltage Test Station">
|
||||||
|
|
||||||
<Grid>
|
<Grid Margin="20">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
|
<ColumnDefinition Width="Auto"/>
|
||||||
|
<ColumnDefinition />
|
||||||
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
@@ -30,23 +34,26 @@
|
|||||||
<RowDefinition />
|
<RowDefinition />
|
||||||
<RowDefinition />
|
<RowDefinition />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Label Grid.Row="0" Grid.Column="0" Content="Hochvolt Test Station Heiß" VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="35"/>
|
<Label Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Content="Hochvolt Test Stationen" VerticalAlignment="Top" HorizontalAlignment="Left" FontSize="40" />
|
||||||
<Label Grid.Row="0" Grid.Column="3" Content="Hochvolt Test Station Kalt" VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="35"/>
|
|
||||||
<Border Grid.Row="0" Grid.Column="2" Grid.RowSpan="9" BorderBrush="White" BorderThickness="0,0,1,0"></Border>
|
|
||||||
<Border Grid.Row="0" Grid.Column="3" Grid.RowSpan="9" BorderBrush="White" BorderThickness="1,0,0,0"></Border>
|
|
||||||
|
|
||||||
<hmiToolkit:BinaryValveControl Grid.Column="0" Grid.Row="1" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding DoorValveHotControlVm }"/>
|
<Label Grid.Row="0" Grid.Column="0" Content="Hochvolt Test Station Heiß" VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="30"/>
|
||||||
<hmiToolkit:BinaryValveControl Grid.Column="3" Grid.Row="1" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding DoorValveColdControlVm }"/>
|
<Label Grid.Row="0" Grid.Column="5" Content="Hochvolt Test Station Kalt" VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="30"/>
|
||||||
<hmiToolkit:BinaryValveControl Grid.Column="1" Grid.Row="1" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding TestChamberHotValveVm }"/>
|
|
||||||
<hmiToolkit:BinaryValveControl Grid.Column="4" Grid.Row="1" Grid.RowSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding TestChamberColdValveVm }"/>
|
<Border Grid.Row="0" Grid.Column="4" Grid.RowSpan="9" BorderBrush="White" BorderThickness="2,0,0,0" Margin="20 0 20 0 "/> <!--<Border Grid.Row="0" Grid.Column="4" Grid.RowSpan="9" BorderBrush="White" BorderThickness="1,0,0,0"></Border>-->
|
||||||
|
|
||||||
|
<hmiToolkit:BinaryValveControl Grid.Column="0" Grid.Row="2" Margin="10" Grid.RowSpan="4" VerticalAlignment="Center" DataContext="{Binding DoorValveHotControlVm }"/>
|
||||||
|
<hmiToolkit:BinaryValveControl Grid.Column="1" Grid.Row="2" Margin="10" Grid.RowSpan="4" VerticalAlignment="Center" DataContext="{Binding TestChamberHotValveVm }"/>
|
||||||
|
<hmiToolkit:BinaryValveControl Grid.Column="5" Grid.Row="2" Margin="10" Grid.RowSpan="4" VerticalAlignment="Center" DataContext="{Binding DoorValveColdControlVm }"/>
|
||||||
|
<hmiToolkit:BinaryValveControl Grid.Column="6" Grid.Row="2" Margin="10" Grid.RowSpan="4" VerticalAlignment="Center" DataContext="{Binding TestChamberColdValveVm }"/>
|
||||||
|
|
||||||
|
|
||||||
|
<Label Grid.Column="0" Grid.Row="1" FontSize="40" Content="Solltemperatur" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="5"/>
|
||||||
|
<hmiToolkit:AnalogValue Grid.Column="1" Grid.Row="1" Height="60" Width="260" HorizontalAlignment="Left" Margin="5" VerticalAlignment="Center" DataContext="{Binding TempSPHotVm}"/>
|
||||||
|
<Label Grid.Column="5" Grid.Row="1" FontSize="40" Content="Solltemperatur" VerticalAlignment="Center" Margin="5"/>
|
||||||
|
<hmiToolkit:AnalogValue Grid.Column="6" Grid.Row="1" Height="60" Width="260" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding TempSPColdVm}"/>
|
||||||
|
|
||||||
<Label Grid.Column="2" Grid.Row="1" FontSize="40" Content="Solltemperatur" HorizontalAlignment="left" Margin="5"/>
|
<common:PackMLControl Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="2" HorizontalAlignment="Right" Grid.RowSpan="6" Width="Auto" Margin="20" DataContext="{Binding HighVoltageHotPackMLControlVm}"/>
|
||||||
<hmiToolkit:AnalogValue Grid.Column="2" Grid.Row="1" Height="60" Width="260" HorizontalAlignment="Left" Margin="60" VerticalAlignment="Center" DataContext="{Binding TempSPHotVm}"/>
|
<common:PackMLControl Grid.Row="0" Grid.Column="7" Grid.ColumnSpan="2" HorizontalAlignment="Right" Grid.RowSpan="6" Width="Auto" Margin="20" DataContext="{Binding HighVoltageColdPackMLControlVm}"/>
|
||||||
<Label Grid.Column="5" Grid.Row="1" FontSize="40" Content="Solltemperatur" Margin="5"/>
|
|
||||||
<hmiToolkit:AnalogValue Grid.Column="5" Grid.Row="1" Height="60" Width="260" Margin="60" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding TempSPColdVm}"/>
|
|
||||||
|
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</Page>
|
</Page>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für AutomaticModePage.xaml
|
/// Interaktionslogik für AutomaticModePage.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -19,4 +19,3 @@ namespace InfineonHMI
|
|||||||
disposable?.Dispose();
|
disposable?.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -4,18 +4,22 @@
|
|||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:local="clr-namespace:InfineonHMI"
|
xmlns:local="clr-namespace:InfineonHMI"
|
||||||
|
xmlns:common="clr-namespace:Common"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DataContext="{d:DesignInstance Type=local:HotCoolPlatePageVM, IsDesignTimeCreatable=True}"
|
d:DataContext="{d:DesignInstance Type=local:HotCoolPlatePageVM, IsDesignTimeCreatable=True}"
|
||||||
d:DesignHeight="800" d:DesignWidth="1850"
|
d:DesignHeight="1554" d:DesignWidth="3390"
|
||||||
Title="HotCoolPlatePage">
|
Title="HotCoolPlatePage">
|
||||||
|
|
||||||
<Grid>
|
<Grid Margin="20">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
|
<ColumnDefinition Width="Auto" />
|
||||||
|
<ColumnDefinition />
|
||||||
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
@@ -31,31 +35,33 @@
|
|||||||
<RowDefinition />
|
<RowDefinition />
|
||||||
<RowDefinition />
|
<RowDefinition />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Border Grid.Row="0" Grid.RowSpan="9" Grid.Column="4" BorderBrush="WhiteSmoke" BorderThickness="2,0,0,0" />
|
<Border Grid.Row="0" Grid.RowSpan="9" Grid.Column="5" BorderBrush="WhiteSmoke" BorderThickness="2,0,0,0" />
|
||||||
<Border Grid.Row="0" Grid.RowSpan="9" Grid.Column="3" BorderBrush="WhiteSmoke" BorderThickness="0,0,2,0" />
|
|
||||||
<Label Grid.Row="0" Grid.Column="0" FontSize="35" Content="Heizplatte" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10"/>
|
<Label Grid.Row="0" Grid.Column="0" FontSize="35" Content="Heizplatte" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10"/>
|
||||||
<Label Grid.Row="0" Grid.Column="4" FontSize="35" Content="Kühlplatte" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10"/>
|
<Label Grid.Row="0" Grid.Column="6" FontSize="35" Content="Kühlplatte" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10"/>
|
||||||
|
|
||||||
|
|
||||||
<Button Grid.Row="0" Grid.Column="1" Content="Einschalten" DataContext="{Binding EnableHotPlateButtonVm}" HorizontalAlignment="Center" Width="280" Height="100" FontSize="35" />
|
<Button Grid.Row="0" Grid.Column="1" Content="Einschalten" DataContext="{Binding EnableHotPlateButtonVm}" HorizontalAlignment="Center" Width="280" Height="100" FontSize="35" />
|
||||||
<Button Grid.Row="0" Grid.Column="2" Content="Ausschalten" DataContext="{Binding DisableHotPlateButtonVm}" HorizontalAlignment="Center" Width="280" Height="100" FontSize="35" />
|
<Button Grid.Row="0" Grid.Column="2" Content="Ausschalten" DataContext="{Binding DisableHotPlateButtonVm}" HorizontalAlignment="Center" Width="280" Height="100" FontSize="35" />
|
||||||
|
|
||||||
<Button Grid.Row="0" Grid.Column="5" Content="Einschalten" DataContext="{Binding EnableCoolPlateButtonVm}" HorizontalAlignment="Center" Width="280" Height="100" FontSize="35" />
|
<Button Grid.Row="0" Grid.Column="7" Content="Einschalten" DataContext="{Binding EnableCoolPlateButtonVm}" HorizontalAlignment="Center" Width="280" Height="100" FontSize="35" />
|
||||||
<Button Grid.Row="0" Grid.Column="6" Content="Ausschalten" DataContext="{Binding DisableCoolPlateButtonVm}" HorizontalAlignment="Center" Width="280" Height="100" FontSize="35" />
|
<Button Grid.Row="0" Grid.Column="8" Content="Ausschalten" DataContext="{Binding DisableCoolPlateButtonVm}" HorizontalAlignment="Center" Width="280" Height="100" FontSize="35" />
|
||||||
|
|
||||||
|
|
||||||
|
<common:PackMLControl Grid.Row="0" Grid.Column="3" Grid.ColumnSpan="2" HorizontalAlignment="Right" Grid.RowSpan="6" Width="Auto" Margin="20" DataContext="{Binding HotplatePackMLControlVm}"/>
|
||||||
|
<common:PackMLControl Grid.Row="0" Grid.Column="9" Grid.ColumnSpan="2" HorizontalAlignment="Right" Grid.RowSpan="6" Width="Auto" Margin="20" DataContext="{Binding CoolplatePackMLControlVm}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" FontSize="35" Content="Belegung:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10" />
|
<Label Grid.Row="2" Grid.Column="0" FontSize="35" Content="Belegung:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10" />
|
||||||
<Label Grid.Row="2" Grid.Column="4" FontSize="35" Content="Belegung:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10" />
|
<Label Grid.Row="2" Grid.Column="6" FontSize="35" Content="Belegung:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10" />
|
||||||
|
|
||||||
<Label Grid.Row="1" Grid.Column="1" FontSize="40" Content="Temperatur Soll" VerticalAlignment="Top" HorizontalAlignment="Center"/>
|
<Label Grid.Row="1" Grid.Column="1" Content="Temperatur Soll" VerticalAlignment="Top" HorizontalAlignment="Center" FontSize="35"/>
|
||||||
<HMIToolkit:AnalogValue Grid.Column="1" Grid.Row="1" Height="80" Width="160" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding HotPlateTargetTemperature}"/>
|
<HMIToolkit:AnalogValue Grid.Column="1" Grid.Row="1" Height="80" Width="160" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding HotPlateTargetTemperature}"/>
|
||||||
<Label Grid.Row="1" Grid.Column="2" Content="Temperatur Ist" VerticalAlignment="Top" HorizontalAlignment="Center" FontSize="40" />
|
<Label Grid.Row="1" Grid.Column="2" Content="Temperatur Ist" VerticalAlignment="Top" HorizontalAlignment="Center" FontSize="35" />
|
||||||
<HMIToolkit:AnalogValue Grid.Column="2" Grid.Row="1" Height="80" Width="160" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding HotPlateActualTemperature}"/>
|
<HMIToolkit:AnalogValue Grid.Column="2" Grid.Row="1" Height="80" Width="160" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding HotPlateActualTemperature}"/>
|
||||||
<Label Grid.Row="1" Grid.Column="5" Content="Temperatur Soll" VerticalAlignment="Top" HorizontalAlignment="Center" FontSize="40"/>
|
<Label Grid.Row="1" Grid.Column="7" Content="Temperatur Soll" VerticalAlignment="Top" HorizontalAlignment="Center" FontSize="35"/>
|
||||||
<HMIToolkit:AnalogValue Grid.Column="5" Grid.Row="1" Height="80" Width="160" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding CoolPlateTargetTemperature}"/>
|
<HMIToolkit:AnalogValue Grid.Column="7" Grid.Row="1" Height="80" Width="160" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding CoolPlateTargetTemperature}"/>
|
||||||
<Label Grid.Row="1" Grid.Column="6" Content="Temperatur Ist" VerticalAlignment="Top" HorizontalAlignment="Center" FontSize="40"/>
|
<Label Grid.Row="1" Grid.Column="8" Content="Temperatur Ist" VerticalAlignment="Top" HorizontalAlignment="Center" FontSize="35"/>
|
||||||
<HMIToolkit:AnalogValue Grid.Column="6" Grid.Row="1" Height="80" Width="160" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding CoolPlateActualTemperature}"/>
|
<HMIToolkit:AnalogValue Grid.Column="8" Grid.Row="1" Height="80" Width="160" HorizontalAlignment="Center" VerticalAlignment="Center" DataContext="{Binding CoolPlateActualTemperature}"/>
|
||||||
<Ellipse Grid.Column="0" Grid.Row="2" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
<Ellipse Grid.Column="0" Grid.Row="2" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
||||||
<Ellipse Grid.Column="1" Grid.Row="2" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
<Ellipse Grid.Column="1" Grid.Row="2" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
||||||
<Ellipse Grid.Column="2" Grid.Row="2" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
<Ellipse Grid.Column="2" Grid.Row="2" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
||||||
@@ -75,24 +81,24 @@
|
|||||||
<Ellipse Grid.Column="1" Grid.Row="6" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding HotPlateVisibility8}" VerticalAlignment="Center" Width="120"/>
|
<Ellipse Grid.Column="1" Grid.Row="6" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding HotPlateVisibility8}" VerticalAlignment="Center" Width="120"/>
|
||||||
<Ellipse Grid.Column="2" Grid.Row="6" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding HotPlateVisibility9}" VerticalAlignment="Center" Width="120"/>
|
<Ellipse Grid.Column="2" Grid.Row="6" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding HotPlateVisibility9}" VerticalAlignment="Center" Width="120"/>
|
||||||
|
|
||||||
<Ellipse Grid.Column="4" Grid.Row="2" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
|
||||||
<Ellipse Grid.Column="5" Grid.Row="2" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
|
||||||
<Ellipse Grid.Column="6" Grid.Row="2" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
<Ellipse Grid.Column="6" Grid.Row="2" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
||||||
<Ellipse Grid.Column="4" Grid.Row="4" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
<Ellipse Grid.Column="7" Grid.Row="2" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
||||||
<Ellipse Grid.Column="5" Grid.Row="4" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
<Ellipse Grid.Column="8" Grid.Row="2" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
||||||
<Ellipse Grid.Column="6" Grid.Row="4" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
<Ellipse Grid.Column="6" Grid.Row="4" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
||||||
<Ellipse Grid.Column="4" Grid.Row="6" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
<Ellipse Grid.Column="7" Grid.Row="4" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
||||||
<Ellipse Grid.Column="5" Grid.Row="6" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
<Ellipse Grid.Column="8" Grid.Row="4" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
||||||
<Ellipse Grid.Column="6" Grid.Row="6" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
<Ellipse Grid.Column="6" Grid.Row="6" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
||||||
<Ellipse Grid.Column="4" Grid.Row="2" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding CoolPlateVisibility1}" VerticalAlignment="Center" Width="120"/>
|
<Ellipse Grid.Column="7" Grid.Row="6" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
||||||
<Ellipse Grid.Column="5" Grid.Row="2" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding CoolPlateVisibility2}" VerticalAlignment="Center" Width="120"/>
|
<Ellipse Grid.Column="8" Grid.Row="6" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="150" Margin="10" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="150"/>
|
||||||
<Ellipse Grid.Column="6" Grid.Row="2" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding CoolPlateVisibility3}" VerticalAlignment="Center" Width="120"/>
|
<Ellipse Grid.Column="6" Grid.Row="2" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding CoolPlateVisibility1}" VerticalAlignment="Center" Width="120"/>
|
||||||
<Ellipse Grid.Column="4" Grid.Row="4" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding CoolPlateVisibility4}" VerticalAlignment="Center" Width="120"/>
|
<Ellipse Grid.Column="7" Grid.Row="2" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding CoolPlateVisibility2}" VerticalAlignment="Center" Width="120"/>
|
||||||
<Ellipse Grid.Column="5" Grid.Row="4" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding CoolPlateVisibility5}" VerticalAlignment="Center" Width="120"/>
|
<Ellipse Grid.Column="8" Grid.Row="2" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding CoolPlateVisibility3}" VerticalAlignment="Center" Width="120"/>
|
||||||
<Ellipse Grid.Column="6" Grid.Row="4" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding CoolPlateVisibility6}" VerticalAlignment="Center" Width="120"/>
|
<Ellipse Grid.Column="6" Grid.Row="4" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding CoolPlateVisibility4}" VerticalAlignment="Center" Width="120"/>
|
||||||
<Ellipse Grid.Column="4" Grid.Row="6" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding CoolPlateVisibility7}" VerticalAlignment="Center" Width="120"/>
|
<Ellipse Grid.Column="7" Grid.Row="4" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding CoolPlateVisibility5}" VerticalAlignment="Center" Width="120"/>
|
||||||
<Ellipse Grid.Column="5" Grid.Row="6" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding CoolPlateVisibility8}" VerticalAlignment="Center" Width="120"/>
|
<Ellipse Grid.Column="8" Grid.Row="4" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding CoolPlateVisibility6}" VerticalAlignment="Center" Width="120"/>
|
||||||
<Ellipse Grid.Column="6" Grid.Row="6" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding CoolPlateVisibility9}" VerticalAlignment="Center" Width="120"/>
|
<Ellipse Grid.Column="6" Grid.Row="6" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding CoolPlateVisibility7}" VerticalAlignment="Center" Width="120"/>
|
||||||
|
<Ellipse Grid.Column="7" Grid.Row="6" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding CoolPlateVisibility8}" VerticalAlignment="Center" Width="120"/>
|
||||||
|
<Ellipse Grid.Column="8" Grid.Row="6" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="120" Margin="10" Stroke="WhiteSmoke" Fill="Gray" Visibility="{Binding CoolPlateVisibility9}" VerticalAlignment="Center" Width="120"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für AutomaticModePage.xaml
|
/// Interaktionslogik für AutomaticModePage.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -19,4 +19,3 @@ namespace InfineonHMI
|
|||||||
disposable?.Dispose();
|
disposable?.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -4,166 +4,202 @@
|
|||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:local="clr-namespace:InfineonHMI"
|
xmlns:local="clr-namespace:InfineonHMI"
|
||||||
|
xmlns:common="clr-namespace:Common"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DataContext="{d:DesignInstance Type=local:KukaRobotPageVM, IsDesignTimeCreatable=True}"
|
d:DataContext="{d:DesignInstance Type=local:KukaRobotPageVM, IsDesignTimeCreatable=True}"
|
||||||
d:DesignHeight="800" d:DesignWidth="1850"
|
d:DesignHeight="1600" d:DesignWidth="3800"
|
||||||
Title="KukaRobotPage">
|
Title="KukaRobotPage">
|
||||||
|
|
||||||
|
<Page.Resources>
|
||||||
|
<Style x:Name="RobotLabelStyle" x:Key="RobotLabelStyle" TargetType="Label">
|
||||||
|
<Setter Property="FontSize" Value="40"/>
|
||||||
|
<Setter Property="Margin" Value="5"/>
|
||||||
|
</Style>
|
||||||
|
<Style x:Key="RobotComboStyle" TargetType="ComboBox" BasedOn="{StaticResource MahApps.Styles.ComboBox}">
|
||||||
|
<Setter Property="FontSize" Value="40"/>
|
||||||
|
<Setter Property="Margin" Value="10"/>
|
||||||
|
<Setter Property="Height" Value="120"/>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<Style x:Key="RobotTextBoxStyle" TargetType="TextBox" BasedOn="{StaticResource MahApps.Styles.TextBox}">
|
||||||
|
<Setter Property="FontSize" Value="40"/>
|
||||||
|
<Setter Property="Margin" Value="10"/>
|
||||||
|
<Setter Property="Height" Value="120"/>
|
||||||
|
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||||
|
<Setter Property="TextAlignment" Value="Right"/>
|
||||||
|
<Setter Property="MaxLines" Value="1"/>
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
</Page.Resources>
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition />
|
<ColumnDefinition Width="750"/>
|
||||||
<ColumnDefinition />
|
<ColumnDefinition Width="40" />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition Width="500"/>
|
||||||
<ColumnDefinition />
|
<ColumnDefinition Width="40"/>
|
||||||
<ColumnDefinition />
|
<ColumnDefinition Width="500"/>
|
||||||
<ColumnDefinition />
|
<ColumnDefinition Width="40"/>
|
||||||
|
<ColumnDefinition Width="400"/>
|
||||||
|
<ColumnDefinition Width="360"/>
|
||||||
|
<ColumnDefinition Width="320"/>
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition />
|
<RowDefinition Height="250"/>
|
||||||
<RowDefinition />
|
<RowDefinition Height="250"/>
|
||||||
<RowDefinition />
|
<RowDefinition Height="250"/>
|
||||||
<RowDefinition />
|
<RowDefinition Height="250"/>
|
||||||
<RowDefinition />
|
<RowDefinition Height="250"/>
|
||||||
<RowDefinition />
|
<RowDefinition Height="250"/>
|
||||||
<RowDefinition />
|
<RowDefinition Height="50"/>
|
||||||
<RowDefinition />
|
<RowDefinition Height="*"/>
|
||||||
<RowDefinition />
|
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<Border Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" BorderBrush="WhiteSmoke" BorderThickness="4,4,1,4" Margin="5,5,0,5"/>
|
<StackPanel Grid.Row="0" Grid.Column="0">
|
||||||
<Border Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="2" BorderBrush="WhiteSmoke" BorderThickness="1,4,1,4" Margin="0,5,0,5"/>
|
<Label Content="Roboter Jobnummer" Style="{StaticResource RobotLabelStyle}"/>
|
||||||
<Border Grid.Row="0" Grid.Column="4" Grid.ColumnSpan="2" BorderBrush="WhiteSmoke" BorderThickness="1,4,1,4" Margin="0,5,0,5"/>
|
<ComboBox IsEnabled="{Binding CanChangeRobotJob}" ItemsSource="{Binding RobotJobs}" SelectedItem="{Binding SelectedRobotJob}" Style="{StaticResource RobotComboStyle}"/>
|
||||||
<Border Grid.Row="0" Grid.Column="6" Grid.ColumnSpan="2" BorderBrush="WhiteSmoke" BorderThickness="1,4,4,4" Margin="0,5,5,5"/>
|
</StackPanel>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.Column="0" Content="Roboter Jobnummer" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0" />
|
<StackPanel Grid.Row="0" Grid.Column="2">
|
||||||
<ComboBox Grid.Row="0" Grid.Column="1" Margin="10,15" IsEnabled="{Binding CanChangeRobotJob}" ItemsSource="{Binding RobotJobs}" SelectedItem="{Binding SelectedRobotJob}"/>
|
<Label Content="Roboter aktiver Job " Style="{StaticResource RobotLabelStyle}"/>
|
||||||
<Label Grid.Row="0" Grid.Column="2" Content="Roboter aktiver Job " VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0" />
|
<ComboBox ItemsSource="{Binding RobotJobs}" SelectedItem="{Binding RobotJobActiveValue}" IsReadOnly="True" IsEnabled="False" Style="{StaticResource RobotComboStyle}"/>
|
||||||
<ComboBox Grid.Row="0" Grid.Column="3" Margin="10,15" ItemsSource="{Binding RobotJobs}" SelectedItem="{Binding RobotJobActiveValue}" IsReadOnly="True" IsEnabled="False" />
|
</StackPanel>
|
||||||
<ComboBox Grid.Row="0" Grid.Column="5" Margin="10,15" ItemsSource="{Binding RobotJobs}" SelectedItem="{Binding RobotJobFinishedValue}" IsReadOnly="True" IsEnabled="False"/>
|
|
||||||
<Label Grid.Row="0" Grid.Column="4" Content="Roboter Job fertig " VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0" />
|
|
||||||
|
|
||||||
<Button Grid.Row="0" Grid.Column="6" Command="{Binding StartRobotJobCommand}" Content="Start" Margin="10,15,10,15" />
|
<StackPanel Grid.Row="0" Grid.Column="4">
|
||||||
<Button Grid.Row="0" Grid.Column="7" Command="{Binding AbortRobotJobCommand}" Content="Abbruch" Margin="10,15,15,15" />
|
<Label Content="Roboter Job fertig " Style="{StaticResource RobotLabelStyle}"/>
|
||||||
|
<ComboBox ItemsSource="{Binding RobotJobs}" SelectedItem="{Binding RobotJobFinishedValue}" IsReadOnly="True" IsEnabled="False" Style="{StaticResource RobotComboStyle}"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Grid.Row="0" Grid.Column="6" Grid.RowSpan="2">
|
||||||
|
<Label Content="Roboter Job" Style="{StaticResource RobotLabelStyle}"/>
|
||||||
|
<Button Height="120" Command="{Binding StartRobotJobCommand}" Content="Start" Margin="10" FontSize="30"/>
|
||||||
|
<Button Height="120" Command="{Binding AbortRobotJobCommand}" Content="Abbruch" Margin="10" FontSize="30" />
|
||||||
|
</StackPanel>
|
||||||
|
<StackPanel Grid.Row="1" Grid.Column="0">
|
||||||
|
<Label Content="Greiferseite für Job:" Style="{StaticResource RobotLabelStyle}"/>
|
||||||
|
<TextBox IsEnabled="{Binding CanChangeJobGrippSide}" Text="{Binding JobGrippSide}" Style="{StaticResource RobotTextBoxStyle}"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Grid.Row="1" Grid.Column="2">
|
||||||
|
<Label FontSize="40" Content="Greifertyp:" Style="{StaticResource RobotLabelStyle}"/>
|
||||||
|
<TextBox IsEnabled="{Binding CanChangeJobGrippType}" Text="{Binding JobGrippType}" Style="{StaticResource RobotTextBoxStyle}"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Grid.Row="1" Grid.Column="4">
|
||||||
|
<Label Content="Drehteller Magazinplatz:" Style="{StaticResource RobotLabelStyle}"/>
|
||||||
|
<TextBox IsEnabled="{Binding CanChangeChuckMagazinPlace}" Text="{Binding ChuckMagazinPlace}" Style="{StaticResource RobotTextBoxStyle}"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Grid.Row="2" Grid.Column="0">
|
||||||
|
<Label Content="Teiledicke in mm: " Style="{StaticResource RobotLabelStyle}"/>
|
||||||
|
<TextBox IsEnabled="{Binding CanChangePieceThickness}" Text="{Binding PieceThickness}" Style="{StaticResource RobotTextBoxStyle}"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Grid.Row="3" Grid.Column="0">
|
||||||
|
<Label Content="Angefragter Sps Job :" Style="{StaticResource RobotLabelStyle}"/>
|
||||||
|
<ComboBox ItemsSource="{Binding PLCJobs}" SelectedItem="{Binding SelectedPLCJob}" IsReadOnly="True" IsEnabled="False" Style="{StaticResource RobotComboStyle}"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Grid.Row="2" Grid.Column="2">
|
||||||
|
<Label Content="Offset Abholen in mm (X):" Style="{StaticResource RobotLabelStyle}"/>
|
||||||
|
<TextBox IsEnabled="{Binding CanChangeOffsetPick}" Text="{Binding OffsetPick_X}" Style="{StaticResource RobotTextBoxStyle}"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Grid.Row="2" Grid.Column="4">
|
||||||
|
<Label Content="Offset Abholen in mm (Y):" Style="{StaticResource RobotLabelStyle}"/>
|
||||||
|
<TextBox IsEnabled="{Binding CanChangeOffsetPick}" Text="{Binding OffsetPick_Y}" Style="{StaticResource RobotTextBoxStyle}"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Grid.Row="3" Grid.Column="2">
|
||||||
|
<Label Content="Offset Ablegen in mm (X):" Style="{StaticResource RobotLabelStyle}"/>
|
||||||
|
<TextBox IsEnabled="{Binding CanChangeOffsetPlace}" Text="{Binding OffsetPlace_X}" Style="{StaticResource RobotTextBoxStyle}"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Grid.Row="3" Grid.Column="4">
|
||||||
|
<Label Content="Offset Ablegen in mm (Y):" Style="{StaticResource RobotLabelStyle}"/>
|
||||||
|
<TextBox IsEnabled="{Binding CanChangeOffsetPlace}" Text="{Binding OffsetPlace_Y}" Style="{StaticResource RobotTextBoxStyle}" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Grid.Row="4" Grid.Column="2">
|
||||||
|
<Label Content="Offset NIO Abholen in mm (X):" Style="{StaticResource RobotLabelStyle}"/>
|
||||||
|
<TextBox IsEnabled="{Binding CanChangeOffsetNIOPick}" Text="{Binding OffsetNIOPick_X}" Style="{StaticResource RobotTextBoxStyle}"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Grid.Row="4" Grid.Column="4">
|
||||||
|
<Label Content="Offset NIO Abholen in mm (Y):" Style="{StaticResource RobotLabelStyle}"/>
|
||||||
|
<TextBox IsEnabled="{Binding CanChangeOffsetNIOPick}" Text="{Binding OffsetNIOPick_Y}" Style="{StaticResource RobotTextBoxStyle}"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Grid.Row="5" Grid.Column="2">
|
||||||
|
<Label Content="Offset NIO Ablegen in mm (X):" Style="{StaticResource RobotLabelStyle}"/>
|
||||||
|
<TextBox IsEnabled="{Binding CanChangeOffsetNIOPlace}" Text="{Binding OffsetNIOPlace_X}" Style="{StaticResource RobotTextBoxStyle}"/>
|
||||||
|
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
|
||||||
<Border Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" BorderBrush="WhiteSmoke" BorderThickness="4" Margin="5" />
|
<StackPanel Grid.Row="5" Grid.Column="4">
|
||||||
<Label Grid.Row="1" Grid.Column="0" Content="Greiferseite für Job:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0"/>
|
<Label Content="Offset NIO Ablegen in mm (Y):" Style="{StaticResource RobotLabelStyle}"/>
|
||||||
<TextBox Grid.Row="1" Grid.Column="1" IsEnabled="{Binding CanChangeJobGrippSide}" Text="{Binding JobGrippSide}" MaxLines="1" Margin="10,15,15,15" TextAlignment="Right"/>
|
<TextBox IsEnabled="{Binding CanChangeOffsetNIOPlace}" Text="{Binding OffsetNIOPlace_Y}" Style="{StaticResource RobotTextBoxStyle}"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Grid.Row="4" Grid.Column="0">
|
||||||
|
<Label Content="Platz Heizplatte (1-9)" Style="{StaticResource RobotLabelStyle}" />
|
||||||
|
<TextBox IsEnabled="{Binding CanChangeHotPlateIndex}" Text="{Binding HotplateIndex}" Style="{StaticResource RobotTextBoxStyle}"/>
|
||||||
|
|
||||||
<Border Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="2" BorderBrush="WhiteSmoke" BorderThickness="4" Margin="5" />
|
</StackPanel>
|
||||||
<Label Grid.Row="1" Grid.Column="2" Content="Greifertyp:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0"/>
|
|
||||||
<TextBox Grid.Row="1" Grid.Column="3" IsEnabled="{Binding CanChangeJobGrippType}" Text="{Binding JobGrippType}" MaxLines="1" Margin="10,15,15,15" TextAlignment="Right"/>
|
|
||||||
|
|
||||||
|
<StackPanel Grid.Row="5" Grid.Column="0">
|
||||||
|
<Label Content="Platz Kühlplatte (1-9)" Style="{StaticResource RobotLabelStyle}"/>
|
||||||
|
<TextBox IsEnabled="{Binding CanChangeCoolPlateIndex}" Text="{Binding CoolplateIndex}" Style="{StaticResource RobotTextBoxStyle}"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
<Border Grid.Row="1" Grid.Column="4" Grid.ColumnSpan="2" BorderBrush="WhiteSmoke" BorderThickness="4" Margin="5" />
|
<common:PackMLControl Grid.Row="0" Grid.Column="7" Grid.ColumnSpan="2" HorizontalAlignment="Right" Grid.RowSpan="4" Width="Auto" Margin="20 20 0 20" DataContext="{Binding KukaRobotPackMLControlVm}"/>
|
||||||
<Label Grid.Row="1" Grid.Column="4" Content="Drehteller Magazinplatz:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0"/>
|
|
||||||
<TextBox Grid.Row="1" Grid.Column="5" IsEnabled="{Binding CanChangeChuckMagazinPlace}" Text="{Binding ChuckMagazinPlace}" MaxLines="1" Margin="10,15,15,15" TextAlignment="Right"/>
|
|
||||||
|
|
||||||
|
<Label Grid.Row="3" Grid.Column="6" Grid.ColumnSpan="2" Content="Magazinbelegung:" Style="{StaticResource RobotLabelStyle}" VerticalAlignment="Bottom" />
|
||||||
|
|
||||||
<Border Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" BorderBrush="WhiteSmoke" BorderThickness="4,4,4,4" Margin="5,5,5,5"/>
|
<Border Grid.Column="6" Grid.Row="4" Grid.RowSpan="3" Grid.ColumnSpan="3" BorderBrush="White" BorderThickness="4">
|
||||||
<Label Grid.Row="2" Grid.Column="0" Content="Teiledicke in mm: " VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0"/>
|
<Grid >
|
||||||
<TextBox Grid.Row="2" Grid.Column="1" IsEnabled="{Binding CanChangePieceThickness}" Text="{Binding PieceThickness}" MaxLines="1" Margin="10,15,15,15" TextAlignment="Right"/>
|
|
||||||
|
|
||||||
|
|
||||||
<Border Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" BorderBrush="WhiteSmoke" BorderThickness="4,4,4,4" Margin="5,5,5,5"/>
|
|
||||||
<Label Grid.Row="3" Grid.Column="0" Content="Angefragter Sps Job :" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="5,0,0,0" />
|
|
||||||
<ComboBox Grid.Row="3" Grid.Column="1" Margin="10,15,15,15" ItemsSource="{Binding PLCJobs}" SelectedItem="{Binding SelectedPLCJob}" IsReadOnly="True" IsEnabled="False"/>
|
|
||||||
|
|
||||||
|
|
||||||
<Border Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2" Grid.RowSpan="2" BorderBrush="WhiteSmoke" BorderThickness="4,4,4,4" Margin="5,5,5,5"/>
|
|
||||||
<Label Grid.Row="4" Grid.Column="0" Content="Aktueller Status der Statemachine" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="5,0,0,0" />
|
|
||||||
<ComboBox Grid.Row="4" Grid.Column="1" Margin="10,15,15,10" ItemsSource="{Binding StatemachineStates}" SelectedItem="{Binding ActiveState}" IsReadOnly="True" />
|
|
||||||
<Button Grid.Row="5" Grid.Column="0" Command="{Binding ClearStateCommand}" Content="Clear" Margin="15,15,10,15" />
|
|
||||||
<Button Grid.Row="5" Grid.Column="1" Command="{Binding ResetStateCommand}" Content="Reset" Margin="10,15,15,15" />
|
|
||||||
|
|
||||||
<Border Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="2" BorderBrush="WhiteSmoke" BorderThickness="4,4,1,1" Margin="5,5,0,0"/>
|
|
||||||
<Border Grid.Row="2" Grid.Column="4" Grid.ColumnSpan="2" BorderBrush="WhiteSmoke" BorderThickness="1,4,4,1" Margin="0,5,5,0"/>
|
|
||||||
<Label Grid.Row="2" Grid.Column="2" Content="Offset Abholen in mm (X):" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0"/>
|
|
||||||
<Label Grid.Row="2" Grid.Column="4" Content="Offset Abholen in mm (Y):" VerticalAlignment="Center" HorizontalAlignment="Left"/>
|
|
||||||
<TextBox Grid.Row="2" Grid.Column="5" IsEnabled="{Binding CanChangeOffsetPick}" Text="{Binding OffsetPick_Y}" MaxLines="1" Margin="10,15,15,10" TextAlignment="Right" />
|
|
||||||
<TextBox Grid.Row="2" Grid.Column="3" IsEnabled="{Binding CanChangeOffsetPick}" Text="{Binding OffsetPick_X}" MaxLines="1" Margin="10,15,15,10" TextAlignment="Right" />
|
|
||||||
<Border Grid.Row="3" Grid.Column="2" Grid.ColumnSpan="2" BorderBrush="WhiteSmoke" BorderThickness="4,1,1,1" Margin="5,0,0,0"/>
|
|
||||||
<Border Grid.Row="3" Grid.Column="4" Grid.ColumnSpan="2" BorderBrush="WhiteSmoke" BorderThickness="1,1,4,1" Margin="0,0,5,0"/>
|
|
||||||
<Label Grid.Row="3" Grid.Column="2" Content="Offset Ablegen in mm (X):" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0"/>
|
|
||||||
<Label Grid.Row="3" Grid.Column="4" Content="Offset Ablegen in mm (Y):" VerticalAlignment="Center" HorizontalAlignment="Left"/>
|
|
||||||
<TextBox Grid.Row="3" Grid.Column="5" IsEnabled="{Binding CanChangeOffsetPlace}" Text="{Binding OffsetPlace_Y}" MaxLines="1" Margin="10,10,15,10" TextAlignment="Right" />
|
|
||||||
<TextBox Grid.Row="3" Grid.Column="3" IsEnabled="{Binding CanChangeOffsetPlace}" Text="{Binding OffsetPlace_X}" MaxLines="1" Margin="10,10,15,10" TextAlignment="Right" />
|
|
||||||
|
|
||||||
<Border Grid.Row="4" Grid.Column="2" Grid.ColumnSpan="2" BorderBrush="WhiteSmoke" BorderThickness="4,1,1,1" Margin="5,0,0,0"/>
|
|
||||||
<Border Grid.Row="4" Grid.Column="4" Grid.ColumnSpan="2" BorderBrush="WhiteSmoke" BorderThickness="1,1,4,1" Margin="0,0,5,0"/>
|
|
||||||
<Label Grid.Row="4" Grid.Column="2" Content="Offset NIO Abholen in mm (X):" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0"/>
|
|
||||||
<Label Grid.Row="4" Grid.Column="4" Content="Offset NIO Abholen in mm (Y):" VerticalAlignment="Center" HorizontalAlignment="Left"/>
|
|
||||||
<TextBox Grid.Row="4" Grid.Column="5" IsEnabled="{Binding CanChangeOffsetNIOPick}" Text="{Binding OffsetNIOPick_Y}" MaxLines="1" Margin="10,10,15,10" TextAlignment="Right" />
|
|
||||||
<TextBox Grid.Row="4" Grid.Column="3" IsEnabled="{Binding CanChangeOffsetNIOPick}" Text="{Binding OffsetNIOPick_X}" MaxLines="1" Margin="10,10,15,10" TextAlignment="Right" />
|
|
||||||
|
|
||||||
<Border Grid.Row="5" Grid.Column="2" Grid.ColumnSpan="2" BorderBrush="WhiteSmoke" BorderThickness="4,1,1,4" Margin="5,0,0,5"/>
|
|
||||||
<Border Grid.Row="5" Grid.Column="4" Grid.ColumnSpan="2" BorderBrush="WhiteSmoke" BorderThickness="1,1,4,4" Margin="0,0,5,5"/>
|
|
||||||
<Label Grid.Row="5" Grid.Column="2" Content="Offset NIO Ablegen in mm (X):" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0"/>
|
|
||||||
<Label Grid.Row="5" Grid.Column="4" Content="Offset NIO Ablegen in mm (Y):" VerticalAlignment="Center" HorizontalAlignment="Left"/>
|
|
||||||
<TextBox Grid.Row="5" Grid.Column="5" IsEnabled="{Binding CanChangeOffsetNIOPlace}" Text="{Binding OffsetNIOPlace_Y}" MaxLines="1" Margin="10,10,15,15" TextAlignment="Right" />
|
|
||||||
<TextBox Grid.Row="5" Grid.Column="3" IsEnabled="{Binding CanChangeOffsetNIOPlace}" Text="{Binding OffsetNIOPlace_X}" MaxLines="1" Margin="10,10,15,15" TextAlignment="Right" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<Border Grid.Row="6" Grid.Column="0" Grid.ColumnSpan="2" BorderBrush="WhiteSmoke" BorderThickness="4,4,4,1" Margin="5,5,5,0"/>
|
|
||||||
<Border Grid.Row="7" Grid.Column="0" Grid.ColumnSpan="2" BorderBrush="WhiteSmoke" BorderThickness="4,1,4,4" Margin="5,0,5,5"/>
|
|
||||||
<Label Grid.Row="6" Grid.Column="0" Content="Platz Heizplatte (1-9)" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,5,0,0" />
|
|
||||||
<Label Grid.Row="7" Grid.Column="0" Content="Platz Kühlplatte (1-9)" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,5"/>
|
|
||||||
<TextBox Grid.Row="6" Grid.Column="1" IsEnabled="{Binding CanChangeHotPlateIndex}" Text="{Binding HotplateIndex}" MaxLines="1" Margin="10,15,15,10" TextAlignment="Right" />
|
|
||||||
<TextBox Grid.Row="7" Grid.Column="1" IsEnabled="{Binding CanChangeCoolPlateIndex}" Text="{Binding CoolplateIndex}" MaxLines="1" Margin="10,10,15,15" TextAlignment="Right" />
|
|
||||||
|
|
||||||
<Label Grid.Row="6" Grid.Column="3" Content="Magazinbelegung: " VerticalAlignment="Center" HorizontalAlignment="Center" />
|
|
||||||
|
|
||||||
|
|
||||||
<Grid Grid.Column ="4" Grid.Row="6" Grid.RowSpan="3" Grid.ColumnSpan="4" >
|
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition />
|
<ColumnDefinition Width="*"/>
|
||||||
<ColumnDefinition />
|
<ColumnDefinition Width="10"/>
|
||||||
<ColumnDefinition />
|
<ColumnDefinition Width="*"/>
|
||||||
<ColumnDefinition />
|
<ColumnDefinition Width="10"/>
|
||||||
<ColumnDefinition />
|
<ColumnDefinition Width="*"/>
|
||||||
<ColumnDefinition />
|
|
||||||
<ColumnDefinition />
|
|
||||||
<ColumnDefinition />
|
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition />
|
<RowDefinition Height="80"/>
|
||||||
<RowDefinition />
|
<RowDefinition Height="180"/>
|
||||||
<RowDefinition />
|
<RowDefinition Height="10"/>
|
||||||
<RowDefinition />
|
<RowDefinition Height="80"/>
|
||||||
<RowDefinition />
|
<RowDefinition Height="180"/>
|
||||||
<RowDefinition />
|
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Content="Tellerplatz 1" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="10" />
|
|
||||||
<Label Grid.Row="0" Grid.Column="3" Grid.ColumnSpan="2" Content="Tellerplatz 2" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="10" />
|
|
||||||
<Label Grid.Row="0" Grid.Column="6" Grid.ColumnSpan="2" Content="Tellerplatz 3" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="10" />
|
|
||||||
<Label Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Content="Tellerplatz 4" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="10" />
|
|
||||||
<Label Grid.Row="3" Grid.Column="3" Grid.ColumnSpan="2" Content="Tellerplatz 5" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="10" />
|
|
||||||
<Label Grid.Row="3" Grid.Column="6" Grid.ColumnSpan="2" Content="Tellerplatz 6" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="10" />
|
|
||||||
|
|
||||||
<Ellipse Grid.Column="0" Grid.Row="1" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="85" Margin="0" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="85"/>
|
<Label Grid.Row="0" Grid.Column="0" Content="Tellerplatz 1" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="35" />
|
||||||
<Ellipse Grid.Column="3" Grid.Row="1" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="85" Margin="0" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="85"/>
|
<Ellipse Grid.Column="0" Grid.Row="1" HorizontalAlignment="Center" Height="150" Width="150" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center"/>
|
||||||
<Ellipse Grid.Column="6" Grid.Row="1" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="85" Margin="0" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="85"/>
|
<Ellipse Grid.Column="0" Grid.Row="1" HorizontalAlignment="Center" Height="150" Width="150" Stroke="WhiteSmoke" Fill="DarkCyan" Visibility="{Binding MagazinPlace1}" VerticalAlignment="Center"/>
|
||||||
<Ellipse Grid.Column="0" Grid.Row="4" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="85" Margin="0" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="85"/>
|
|
||||||
<Ellipse Grid.Column="3" Grid.Row="4" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="85" Margin="0" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="85"/>
|
|
||||||
<Ellipse Grid.Column="6" Grid.Row="4" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="85" Margin="0" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center" Width="85"/>
|
|
||||||
<Ellipse Grid.Column="0" Grid.Row="1" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="80" Margin="0" Stroke="WhiteSmoke" Fill="DarkCyan" Visibility="{Binding MagazinPlace1}" VerticalAlignment="Center" Width="80"/>
|
|
||||||
<Ellipse Grid.Column="3" Grid.Row="1" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="80" Margin="0" Stroke="WhiteSmoke" Fill="DarkCyan" Visibility="{Binding MagazinPlace2}" VerticalAlignment="Center" Width="80"/>
|
|
||||||
<Ellipse Grid.Column="6" Grid.Row="1" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="80" Margin="0" Stroke="WhiteSmoke" Fill="DarkCyan" Visibility="{Binding MagazinPlace3}" VerticalAlignment="Center" Width="80"/>
|
|
||||||
<Ellipse Grid.Column="0" Grid.Row="4" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="80" Margin="0" Stroke="WhiteSmoke" Fill="DarkCyan" Visibility="{Binding MagazinPlace4}" VerticalAlignment="Center" Width="80"/>
|
|
||||||
<Ellipse Grid.Column="3" Grid.Row="4" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="80" Margin="0" Stroke="WhiteSmoke" Fill="DarkCyan" Visibility="{Binding MagazinPlace5}" VerticalAlignment="Center" Width="80"/>
|
|
||||||
<Ellipse Grid.Column="6" Grid.Row="4" Grid.RowSpan="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Height="80" Margin="0" Stroke="WhiteSmoke" Fill="DarkCyan" Visibility="{Binding MagazinPlace6}" VerticalAlignment="Center" Width="80"/>
|
|
||||||
|
|
||||||
|
<Label Grid.Row="0" Grid.Column="2" Content="Tellerplatz 2" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="35" />
|
||||||
|
<Ellipse Grid.Column="2" Grid.Row="1" HorizontalAlignment="Center" Height="150" Width="150" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center"/>
|
||||||
|
<Ellipse Grid.Column="2" Grid.Row="1" HorizontalAlignment="Center" Height="150" Width="150" Stroke="WhiteSmoke" Fill="DarkCyan" Visibility="{Binding MagazinPlace2}" VerticalAlignment="Center" />
|
||||||
|
|
||||||
|
<Label Grid.Row="0" Grid.Column="4" Content="Tellerplatz 3" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="35" />
|
||||||
|
<Ellipse Grid.Column="4" Grid.Row="1" HorizontalAlignment="Center" Height="150" Width="150" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center"/>
|
||||||
|
<Ellipse Grid.Column="4" Grid.Row="1" HorizontalAlignment="Center" Height="150" Width="150" Stroke="WhiteSmoke" Fill="DarkCyan" Visibility="{Binding MagazinPlace3}" VerticalAlignment="Center" />
|
||||||
|
|
||||||
|
<Label Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Content="Tellerplatz 4" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="35" />
|
||||||
|
<Ellipse Grid.Column="0" Grid.Row="4" HorizontalAlignment="Center" Height="150" Width="150" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center"/>
|
||||||
|
<Ellipse Grid.Column="0" Grid.Row="4" HorizontalAlignment="Center" Height="150" Width="150" Stroke="WhiteSmoke" Fill="DarkCyan" Visibility="{Binding MagazinPlace4}" VerticalAlignment="Center" />
|
||||||
|
|
||||||
|
<Label Grid.Row="3" Grid.Column="2" Content="Tellerplatz 5" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="35" />
|
||||||
|
<Ellipse Grid.Column="2" Grid.Row="4" HorizontalAlignment="Center" Height="150" Width="150" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center"/>
|
||||||
|
<Ellipse Grid.Column="2" Grid.Row="4" HorizontalAlignment="Center" Height="150" Width="150" Stroke="WhiteSmoke" Fill="DarkCyan" Visibility="{Binding MagazinPlace5}" VerticalAlignment="Center" />
|
||||||
|
|
||||||
|
<Label Grid.Row="3" Grid.Column="4" Content="Tellerplatz 6" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="35" />
|
||||||
|
<Ellipse Grid.Column="4" Grid.Row="4" HorizontalAlignment="Center" Height="150" Width="150" Stroke="WhiteSmoke" Fill="WhiteSmoke" VerticalAlignment="Center"/>
|
||||||
|
<Ellipse Grid.Column="4" Grid.Row="4" HorizontalAlignment="Center" Height="150" Width="150" Stroke="WhiteSmoke" Fill="DarkCyan" Visibility="{Binding MagazinPlace6}" VerticalAlignment="Center"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
</Border>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</Page>
|
</Page>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für AutomaticModePage.xaml
|
/// Interaktionslogik für AutomaticModePage.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -19,4 +19,3 @@ namespace InfineonHMI
|
|||||||
disposable?.Dispose();
|
disposable?.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -4,84 +4,111 @@
|
|||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:uniperHmi="clr-namespace:InfineonHMI"
|
xmlns:uniperHmi="clr-namespace:InfineonHMI"
|
||||||
|
xmlns:common="clr-namespace:Common"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DataContext="{d:DesignInstance Type=uniperHmi:MachineOverviewPageVM, IsDesignTimeCreatable=True}"
|
d:DataContext="{d:DesignInstance Type=uniperHmi:MachineOverviewPageVM, IsDesignTimeCreatable=True}"
|
||||||
Title="Production Overview">
|
Title="Production Overview">
|
||||||
|
|
||||||
<Viewbox Stretch="none">
|
<Grid Width="3840" Height="1554">
|
||||||
<Grid Width="3840" Height="1650">
|
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="0.12*"/>
|
<ColumnDefinition Width="450"/>
|
||||||
<ColumnDefinition Width="0.93*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Grid Grid.Column="0" Margin="25 0 0 0">
|
<Image Grid.Column="1" Source="/Anlagenuebersicht.png" Stretch="Fill" Height="1504" Width="1936"/>
|
||||||
|
|
||||||
|
<!-- DETAIL PAGE -->
|
||||||
|
<Frame x:Name="DetailFrame"
|
||||||
|
Grid.Column="1"
|
||||||
|
NavigationUIVisibility="Hidden"
|
||||||
|
Content="{Binding CurrentDetailPage}"/>
|
||||||
|
|
||||||
|
<Grid Grid.Column="0">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="Auto" />
|
||||||
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="*" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<Button Grid.Row="0"
|
<Button IsEnabled="{Binding CanUserChangePageTrayFeeder}" Grid.Row="0"
|
||||||
|
Height="160"
|
||||||
Margin="5"
|
Margin="5"
|
||||||
FontSize="36"
|
FontSize="36"
|
||||||
FontFamily="Arial"
|
FontFamily="Arial"
|
||||||
Content="Trayfeeder
Ein-/Ausgabe"
|
Content="Trayfeeder
Ein-/Ausgabe"
|
||||||
Command="{Binding TrayfeederPageClickedCommand}"/>
|
Command="{Binding TrayfeederPageClickedCommand}"/>
|
||||||
|
|
||||||
<Button Grid.Row="1"
|
<Button IsEnabled="{Binding CanUserChangePageAlignment}"
|
||||||
|
Grid.Row="1"
|
||||||
|
Height="160"
|
||||||
Margin="5"
|
Margin="5"
|
||||||
FontSize="39"
|
FontSize="39"
|
||||||
Content="Ausrichtstation"
|
Content="Ausrichtstation"
|
||||||
Command="{Binding AlignerPageClickedCommand}"/>
|
Command="{Binding AlignerPageClickedCommand}"/>
|
||||||
|
|
||||||
<Button Grid.Row="2"
|
<Button IsEnabled="{Binding CanUserChangePageEtching1}"
|
||||||
|
Grid.Row="2"
|
||||||
|
Height="160"
|
||||||
Margin="5"
|
Margin="5"
|
||||||
FontSize="36"
|
FontSize="36"
|
||||||
Content="Ätzer 1"
|
Content="Ätzer 1"
|
||||||
Command="{Binding Etching1PageClickedCommand}"/>
|
Command="{Binding Etching1PageClickedCommand}"/>
|
||||||
|
|
||||||
<Button Grid.Row="3"
|
<Button IsEnabled="{Binding CanUserChangePageEtching2}"
|
||||||
|
Grid.Row="3"
|
||||||
|
Height="160"
|
||||||
Margin="5"
|
Margin="5"
|
||||||
FontSize="36"
|
FontSize="36"
|
||||||
Content="Ätzer 2"
|
Content="Ätzer 2"
|
||||||
Command="{Binding Etching2PageClickedCommand}"/>
|
Command="{Binding Etching2PageClickedCommand}"/>
|
||||||
|
|
||||||
<Button Grid.Row="4"
|
<Button IsEnabled="{Binding CanUserChangePageHighVoltage}"
|
||||||
|
Grid.Row="4"
|
||||||
|
Height="160"
|
||||||
Margin="5"
|
Margin="5"
|
||||||
FontSize="36"
|
FontSize="36"
|
||||||
Content="HV Test"
|
Content="HV Test"
|
||||||
Command="{Binding HVTestPageClickedCommand}"/>
|
Command="{Binding HVTestPageClickedCommand}"/>
|
||||||
|
|
||||||
<Button Grid.Row="5"
|
<Button IsEnabled="{Binding CanUserChangePageHotCoolplate}"
|
||||||
|
Grid.Row="5"
|
||||||
|
Height="160"
|
||||||
Margin="5"
|
Margin="5"
|
||||||
FontSize="36"
|
FontSize="36"
|
||||||
Content="Heiz-
/Kühlplatte"
|
Content="Heiz-
/Kühlplatte"
|
||||||
Command="{Binding HotCoolplatePageClickedCommand}"/>
|
Command="{Binding HotCoolplatePageClickedCommand}"/>
|
||||||
|
|
||||||
<Button Grid.Row="6"
|
<Button IsEnabled="{Binding CanUserChangePageNIOStation}"
|
||||||
|
Grid.Row="6"
|
||||||
|
Height="160"
|
||||||
Margin="5"
|
Margin="5"
|
||||||
FontSize="36"
|
FontSize="36"
|
||||||
Content="NOK Station"
|
Content="NOK Station"
|
||||||
Command="{Binding NIOStationPageClickedCommand}"/>
|
Command="{Binding NIOStationPageClickedCommand}"/>
|
||||||
|
|
||||||
<Border Grid.Row="7"
|
<Border Grid.Row="7"
|
||||||
|
Margin="5"
|
||||||
BorderBrush="White"
|
BorderBrush="White"
|
||||||
BorderThickness="0,5,0,0"/>
|
BorderThickness="0,5,0,0"/>
|
||||||
|
|
||||||
<Button Grid.Row="7"
|
<Button IsEnabled="{Binding CanUserChangePageKukaRobot}"
|
||||||
Margin="5,15,5,5"
|
Grid.Row="8"
|
||||||
|
Height="160"
|
||||||
|
Margin="5"
|
||||||
FontSize="36" Content="Kuka Roboter"
|
FontSize="36" Content="Kuka Roboter"
|
||||||
Command="{Binding KukaPageClickedCommand}"/>
|
Command="{Binding KukaPageClickedCommand}"/>
|
||||||
|
|
||||||
<Button Grid.Row="8"
|
<Button IsEnabled="{Binding CanUserChangePageMediaCabinet}"
|
||||||
|
Grid.Row="9"
|
||||||
|
Height="160"
|
||||||
Margin="5"
|
Margin="5"
|
||||||
FontSize="36"
|
FontSize="36"
|
||||||
FontFamily="Arial"
|
FontFamily="Arial"
|
||||||
@@ -89,18 +116,13 @@
|
|||||||
Command="{Binding MediaCabinetPageClickedCommand}"/>
|
Command="{Binding MediaCabinetPageClickedCommand}"/>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
<!-- DETAIL PAGE -->
|
|
||||||
|
|
||||||
|
<Button IsEnabled="{Binding CanUserChangePageTrayFeeder}"
|
||||||
<Frame x:Name="DetailFrame"
|
Command="{Binding TrayfeederPageClickedCommand}" Background="Transparent" Grid.Column="1" Margin="2203,572,820,780"/>
|
||||||
Grid.Column="1"
|
<Button IsEnabled="{Binding CanUserChangePageKukaRobot}"
|
||||||
NavigationUIVisibility="Hidden"
|
Command="{Binding KukaPageClickedCommand}" Background="Transparent" Grid.Column="1" Margin="1822,610,1380,780"/>
|
||||||
Content="{Binding CurrentDetailPage}"/>
|
<Button IsEnabled="{Binding CanUserChangePageEtching1}"
|
||||||
|
Command="{Binding Etching1PageClickedCommand}" Background="Transparent" Grid.Column="1" Margin="1480,819,1749,644" RenderTransformOrigin="0.5,0.5">
|
||||||
<Image Grid.Column="1" Source="/Anlagenuebersicht.png" Stretch="Fill" Height="1504" Width="1936"/>
|
|
||||||
<Button Command="{Binding TrayfeederPageClickedCommand}" Background="Transparent" Grid.Column="1" Margin="2203,572,820,780"/>
|
|
||||||
<Button Command="{Binding KukaPageClickedCommand}" Background="Transparent" Grid.Column="1" Margin="1822,610,1380,780"/>
|
|
||||||
<Button Command="{Binding Etching1PageClickedCommand}" Background="Transparent" Grid.Column="1" Margin="1480,819,1749,644" RenderTransformOrigin="0.5,0.5">
|
|
||||||
<Button.RenderTransform>
|
<Button.RenderTransform>
|
||||||
<TransformGroup>
|
<TransformGroup>
|
||||||
<ScaleTransform/>
|
<ScaleTransform/>
|
||||||
@@ -109,7 +131,8 @@
|
|||||||
</TransformGroup>
|
</TransformGroup>
|
||||||
</Button.RenderTransform>
|
</Button.RenderTransform>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Command="{Binding Etching2PageClickedCommand}" Background="Transparent" Grid.Column="1" Margin="1431,473,1770,971" RenderTransformOrigin="0.5,0.5">
|
<Button IsEnabled="{Binding CanUserChangePageEtching2}"
|
||||||
|
Command="{Binding Etching2PageClickedCommand}" Background="Transparent" Grid.Column="1" Margin="1431,473,1770,971" RenderTransformOrigin="0.5,0.5">
|
||||||
<Button.RenderTransform>
|
<Button.RenderTransform>
|
||||||
<TransformGroup>
|
<TransformGroup>
|
||||||
<ScaleTransform/>
|
<ScaleTransform/>
|
||||||
@@ -118,7 +141,8 @@
|
|||||||
</TransformGroup>
|
</TransformGroup>
|
||||||
</Button.RenderTransform>
|
</Button.RenderTransform>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Command="{Binding HVTestPageClickedCommand}" Background="Transparent" Grid.Column="1" Margin="1706,183,1472,1202" RenderTransformOrigin="0.5,0.5">
|
<Button IsEnabled="{Binding CanUserChangePageHighVoltage}"
|
||||||
|
Command="{Binding HVTestPageClickedCommand}" Background="Transparent" Grid.Column="1" Margin="1706,183,1472,1202" RenderTransformOrigin="0.5,0.5">
|
||||||
<Button.RenderTransform>
|
<Button.RenderTransform>
|
||||||
<TransformGroup>
|
<TransformGroup>
|
||||||
<ScaleTransform/>
|
<ScaleTransform/>
|
||||||
@@ -127,7 +151,8 @@
|
|||||||
</TransformGroup>
|
</TransformGroup>
|
||||||
</Button.RenderTransform>
|
</Button.RenderTransform>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Command="{Binding HotCoolplatePageClickedCommand}" Background="Transparent" Grid.Column="1" Margin="2039,316,1175,1106" RenderTransformOrigin="0.5,0.5">
|
<Button IsEnabled="{Binding CanUserChangePageHotCoolplate}"
|
||||||
|
Command="{Binding HotCoolplatePageClickedCommand}" Background="Transparent" Grid.Column="1" Margin="2039,316,1175,1106" RenderTransformOrigin="0.5,0.5">
|
||||||
<Button.RenderTransform>
|
<Button.RenderTransform>
|
||||||
<TransformGroup>
|
<TransformGroup>
|
||||||
<ScaleTransform/>
|
<ScaleTransform/>
|
||||||
@@ -136,9 +161,11 @@
|
|||||||
</TransformGroup>
|
</TransformGroup>
|
||||||
</Button.RenderTransform>
|
</Button.RenderTransform>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Command="{Binding MediaCabinetPageClickedCommand}" Background="Transparent" Grid.Column="1" Margin="878,565,2350,641"/>
|
<Button IsEnabled="{Binding CanUserChangePageMediaCabinet}"
|
||||||
|
Command="{Binding MediaCabinetPageClickedCommand}" Background="Transparent" Grid.Column="1" Margin="878,565,2350,641"/>
|
||||||
|
|
||||||
<Button Command="{Binding AlignerPageClickedCommand}" Background="Transparent" Grid.Column="1" Margin="1633,1048,1594,474" RenderTransformOrigin="0.5,0.5">
|
<Button IsEnabled="{Binding CanUserChangePageAlignment}"
|
||||||
|
Command="{Binding AlignerPageClickedCommand}" Background="Transparent" Grid.Column="1" Margin="1633,1048,1594,474" RenderTransformOrigin="0.5,0.5">
|
||||||
<Button.RenderTransform>
|
<Button.RenderTransform>
|
||||||
<TransformGroup>
|
<TransformGroup>
|
||||||
<ScaleTransform/>
|
<ScaleTransform/>
|
||||||
@@ -148,7 +175,8 @@
|
|||||||
</TransformGroup>
|
</TransformGroup>
|
||||||
</Button.RenderTransform>
|
</Button.RenderTransform>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Command="{Binding NIOStationPageClickedCommand}" Background="Transparent" Grid.Column="1" Margin="1707,932,1543,601" RenderTransformOrigin="0.5,0.5">
|
<Button IsEnabled="{Binding CanUserChangePageNIOStation}"
|
||||||
|
Command="{Binding NIOStationPageClickedCommand}" Background="Transparent" Grid.Column="1" Margin="1707,932,1543,601" RenderTransformOrigin="0.5,0.5">
|
||||||
<Button.RenderTransform>
|
<Button.RenderTransform>
|
||||||
<TransformGroup>
|
<TransformGroup>
|
||||||
<ScaleTransform/>
|
<ScaleTransform/>
|
||||||
@@ -158,6 +186,11 @@
|
|||||||
</TransformGroup>
|
</TransformGroup>
|
||||||
</Button.RenderTransform>
|
</Button.RenderTransform>
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
|
<common:PackMLControl Margin="20 7 10 5"
|
||||||
|
IsEnabled="{Binding CanUserInteract}"
|
||||||
|
Grid.Column="1"
|
||||||
|
DataContext="{Binding MachinePackMLControlVM}" HorizontalAlignment="Left" VerticalAlignment="Top" />
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</Viewbox>
|
|
||||||
</Page>
|
</Page>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für AutomaticModePage.xaml
|
/// Interaktionslogik für AutomaticModePage.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -18,5 +18,5 @@ namespace InfineonHMI
|
|||||||
var disposable = DataContext as IDisposable;
|
var disposable = DataContext as IDisposable;
|
||||||
disposable?.Dispose();
|
disposable?.Dispose();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -20,18 +20,19 @@
|
|||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="2*"/>
|
<RowDefinition Height="4*"/>
|
||||||
<RowDefinition Height="33*" />
|
<RowDefinition Height="30*" />
|
||||||
<RowDefinition Height="33*" />
|
<RowDefinition Height="30*" />
|
||||||
<RowDefinition Height="33*" />
|
<RowDefinition Height="33*" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Label Grid.Row="0" Grid.Column="0" Content="Mediacabinet Page" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
<Label Grid.Row="0" Grid.Column="0" Content="Mediacabinet Page" VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="35" />
|
||||||
|
|
||||||
<common:MediaContainer Grid.Row="1" Grid.Column="0" Height="400" Width="300" Margin="10" HorizontalAlignment="Center" DataContext="{Binding Container1Vm}"/>
|
<common:MediaContainer Grid.Row="1" Grid.Column="0" Height="400" Width="300" Margin="10" HorizontalAlignment="Center" DataContext="{Binding Container1Vm}"/>
|
||||||
<common:MediaContainer Grid.Row="2" Grid.Column="0" Height="400" Width="300" Margin="10" HorizontalAlignment="Center" DataContext="{Binding Container2Vm}"/>
|
<common:MediaContainer Grid.Row="2" Grid.Column="0" Height="400" Width="300" Margin="10" HorizontalAlignment="Center" DataContext="{Binding Container2Vm}"/>
|
||||||
<common:MediaContainer Grid.Row="3" Grid.Column="0" Height="400" Width="300" Margin="10" HorizontalAlignment="Center" DataContext="{Binding Container3Vm}"/>
|
<common:MediaContainer Grid.Row="3" Grid.Column="0" Height="400" Width="300" Margin="10" HorizontalAlignment="Center" DataContext="{Binding Container3Vm}"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<common:MediaContainer Grid.Row="1" Grid.Column="1" Height="400" Width="300" Margin="10" HorizontalAlignment="Center" DataContext="{Binding Container4Vm}"/>
|
<common:MediaContainer Grid.Row="1" Grid.Column="1" Height="400" Width="300" Margin="10" HorizontalAlignment="Center" DataContext="{Binding Container4Vm}"/>
|
||||||
<common:MediaContainer Grid.Row="2" Grid.Column="1" Height="400" Width="300" Margin="10" HorizontalAlignment="Center" DataContext="{Binding Container5Vm}"/>
|
<common:MediaContainer Grid.Row="2" Grid.Column="1" Height="400" Width="300" Margin="10" HorizontalAlignment="Center" DataContext="{Binding Container5Vm}"/>
|
||||||
<common:MediaContainer Grid.Row="3" Grid.Column="1" Height="400" Width="300" Margin="10" HorizontalAlignment="Center" DataContext="{Binding Container6Vm}"/>
|
<common:MediaContainer Grid.Row="3" Grid.Column="1" Height="400" Width="300" Margin="10" HorizontalAlignment="Center" DataContext="{Binding Container6Vm}"/>
|
||||||
@@ -41,5 +42,9 @@
|
|||||||
<common:MediaContainer Grid.Row="2" Grid.Column="2" Height="400" Width="300" Margin="10" HorizontalAlignment="Center" DataContext="{Binding Container8Vm}"/>
|
<common:MediaContainer Grid.Row="2" Grid.Column="2" Height="400" Width="300" Margin="10" HorizontalAlignment="Center" DataContext="{Binding Container8Vm}"/>
|
||||||
<common:MediaContainer Grid.Row="3" Grid.Column="2" Height="400" Width="300" Margin="10" HorizontalAlignment="Center" DataContext="{Binding Container9Vm}"/>
|
<common:MediaContainer Grid.Row="3" Grid.Column="2" Height="400" Width="300" Margin="10" HorizontalAlignment="Center" DataContext="{Binding Container9Vm}"/>
|
||||||
|
|
||||||
|
<common:MediaContainer Grid.Row="1" Grid.Column="3" Height="400" Width="300" Margin="10" HorizontalAlignment="Center" DataContext="{Binding Container10Vm}"/>
|
||||||
|
<common:MediaContainer Grid.Row="2" Grid.Column="3" Height="400" Width="300" Margin="10" HorizontalAlignment="Center" DataContext="{Binding Container11Vm}"/>
|
||||||
|
<common:MediaContainer Grid.Row="3" Grid.Column="3" Height="400" Width="300" Margin="10" HorizontalAlignment="Center" DataContext="{Binding Container12Vm}"/>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</Page>
|
</Page>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für AutomaticModePage.xaml
|
/// Interaktionslogik für AutomaticModePage.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -19,4 +19,3 @@ namespace InfineonHMI
|
|||||||
disposable?.Dispose();
|
disposable?.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -4,13 +4,15 @@
|
|||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:local="clr-namespace:InfineonHMI"
|
xmlns:local="clr-namespace:InfineonHMI"
|
||||||
xmlns:HMIToolkit="clr-namespace:HMIToolkit" x:Class="InfineonHMI.NIOStationPage"
|
xmlns:HMIToolkit="clr-namespace:HMIToolkit"
|
||||||
|
xmlns:common="clr-namespace:Common"
|
||||||
|
x:Class="InfineonHMI.NIOStationPage"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DataContext="{d:DesignInstance IsDesignTimeCreatable=True, Type={x:Type local:NIOStationPageVM}}"
|
d:DataContext="{d:DesignInstance IsDesignTimeCreatable=True, Type={x:Type local:NIOStationPageVM}}"
|
||||||
d:DesignHeight="800" d:DesignWidth="1850"
|
d:DesignHeight="1554" d:DesignWidth="3390"
|
||||||
Title="NIOStationPage">
|
Title="NIOStationPage">
|
||||||
|
|
||||||
<Grid>
|
<Grid Margin="20">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
@@ -31,16 +33,16 @@
|
|||||||
<RowDefinition />
|
<RowDefinition />
|
||||||
<RowDefinition />
|
<RowDefinition />
|
||||||
<RowDefinition />
|
<RowDefinition />
|
||||||
<RowDefinition />
|
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
<Label Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Content="NOK Station" VerticalAlignment="Top" HorizontalAlignment="Left" FontSize="40" />
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.Column="0" Content="NIO Station" HorizontalAlignment="Left" VerticalAlignment="Center"/>
|
|
||||||
<HMIToolkit:BinaryValveControl DataContext="{Binding ClampDiagValveVm}" Grid.Column="0" HorizontalAlignment="Center" Grid.Row="1" Grid.RowSpan="4" VerticalAlignment="Top" />
|
<HMIToolkit:BinaryValveControl DataContext="{Binding ClampDiagValveVm}" Grid.Column="0" HorizontalAlignment="Center" Grid.Row="1" Grid.RowSpan="4" VerticalAlignment="Top" />
|
||||||
<HMIToolkit:BinaryValveControl DataContext="{Binding ClampAcrossValveVm}" Grid.Column="1" HorizontalAlignment="Center" Grid.Row="1" Grid.RowSpan="4" VerticalAlignment="Top" />
|
<HMIToolkit:BinaryValveControl DataContext="{Binding ClampAcrossValveVm}" Grid.Column="1" HorizontalAlignment="Center" Grid.Row="1" Grid.RowSpan="4" VerticalAlignment="Top" />
|
||||||
|
|
||||||
<Button Grid.Row="1" Grid.Column="2" Content="Tray Fixieren" DataContext="{Binding ClampCmdButtonVm}" HorizontalAlignment="Center" Width="180" Height="60" />
|
<Button Grid.Row="1" Grid.Column="2" Content="Tray Fixieren" DataContext="{Binding ClampCmdButtonVm}" HorizontalAlignment="Center" Width="320" Height="140" FontSize="30" />
|
||||||
<Button Grid.Row="2" Grid.Column="2" Content="Tray Lösen" DataContext="{Binding UnclampCmdButtonVm}" HorizontalAlignment="Center" Width="180" Height="60" />
|
<Button Grid.Row="2" Grid.Column="2" Content="Tray Lösen" DataContext="{Binding UnclampCmdButtonVm}" HorizontalAlignment="Center" Width="320" Height="140" FontSize="30" />
|
||||||
|
|
||||||
|
<common:PackMLControl Grid.Row="0" Grid.Column="6" Grid.ColumnSpan="2" HorizontalAlignment="Right" Grid.RowSpan="6" Width="Auto" Margin="20" DataContext="{Binding NIOStationPackMLControlVm}"/>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</Page>
|
</Page>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für AutomaticModePage.xaml
|
/// Interaktionslogik für AutomaticModePage.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -19,4 +19,3 @@ namespace InfineonHMI
|
|||||||
disposable?.Dispose();
|
disposable?.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -8,28 +8,30 @@
|
|||||||
d:DataContext="{d:DesignInstance Type=uniperHmi:ProductionOverviewPageVM, IsDesignTimeCreatable=True}"
|
d:DataContext="{d:DesignInstance Type=uniperHmi:ProductionOverviewPageVM, IsDesignTimeCreatable=True}"
|
||||||
Title="Production Overview">
|
Title="Production Overview">
|
||||||
|
|
||||||
<Viewbox Stretch="none">
|
|
||||||
<Grid Width="3840" Height="1650">
|
<Grid Width="3840" Height="1554">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="0.12*"/>
|
<ColumnDefinition Width="450"/>
|
||||||
<ColumnDefinition Width="0.93*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Grid Grid.Column="0" Margin="25 0 0 0">
|
<Grid Grid.Column="0" >
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="Auto" />
|
||||||
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="*" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<Button Grid.Row="0"
|
<Button Grid.Row="0"
|
||||||
|
Height="160"
|
||||||
Margin="5"
|
Margin="5"
|
||||||
FontSize="36"
|
FontSize="36"
|
||||||
FontFamily="Arial"
|
FontFamily="Arial"
|
||||||
@@ -37,51 +39,60 @@
|
|||||||
Command="{Binding TrayfeederPageClickedCommand}"/>
|
Command="{Binding TrayfeederPageClickedCommand}"/>
|
||||||
|
|
||||||
<Button Grid.Row="1"
|
<Button Grid.Row="1"
|
||||||
|
Height="160"
|
||||||
Margin="5"
|
Margin="5"
|
||||||
FontSize="39"
|
FontSize="39"
|
||||||
Content="Ausrichtstation"
|
Content="Ausrichtstation"
|
||||||
Command="{Binding AlignerPageClickedCommand}"/>
|
Command="{Binding AlignerPageClickedCommand}"/>
|
||||||
|
|
||||||
<Button Grid.Row="2"
|
<Button Grid.Row="2"
|
||||||
|
Height="160"
|
||||||
Margin="5"
|
Margin="5"
|
||||||
FontSize="36"
|
FontSize="36"
|
||||||
Content="Ätzer 1"
|
Content="Ätzer 1"
|
||||||
Command="{Binding Etching1PageClickedCommand}"/>
|
Command="{Binding Etching1PageClickedCommand}"/>
|
||||||
|
|
||||||
<Button Grid.Row="3"
|
<Button Grid.Row="3"
|
||||||
|
Height="160"
|
||||||
Margin="5"
|
Margin="5"
|
||||||
FontSize="36"
|
FontSize="36"
|
||||||
Content="Ätzer 2"
|
Content="Ätzer 2"
|
||||||
Command="{Binding Etching2PageClickedCommand}"/>
|
Command="{Binding Etching2PageClickedCommand}"/>
|
||||||
|
|
||||||
<Button Grid.Row="4"
|
<Button Grid.Row="4"
|
||||||
|
Height="160"
|
||||||
Margin="5"
|
Margin="5"
|
||||||
FontSize="36"
|
FontSize="36"
|
||||||
Content="HV Test"
|
Content="HV Test"
|
||||||
Command="{Binding HVTestPageClickedCommand}"/>
|
Command="{Binding HVTestPageClickedCommand}"/>
|
||||||
|
|
||||||
<Button Grid.Row="5"
|
<Button Grid.Row="5"
|
||||||
|
Height="160"
|
||||||
Margin="5"
|
Margin="5"
|
||||||
FontSize="36"
|
FontSize="36"
|
||||||
Content="Heiz-
/Kühlplatte"
|
Content="Heiz-
/Kühlplatte"
|
||||||
Command="{Binding HotCoolplatePageClickedCommand}"/>
|
Command="{Binding HotCoolplatePageClickedCommand}"/>
|
||||||
|
|
||||||
<Button Grid.Row="6"
|
<Button Grid.Row="6"
|
||||||
|
Height="160"
|
||||||
Margin="5"
|
Margin="5"
|
||||||
FontSize="36"
|
FontSize="36"
|
||||||
Content="NOK Station"
|
Content="NOK Station"
|
||||||
Command="{Binding NIOStationPageClickedCommand}"/>
|
Command="{Binding NIOStationPageClickedCommand}"/>
|
||||||
|
|
||||||
<Border Grid.Row="7"
|
<Border Grid.Row="7"
|
||||||
|
Margin="5"
|
||||||
BorderBrush="White"
|
BorderBrush="White"
|
||||||
BorderThickness="0,5,0,0"/>
|
BorderThickness="0,5,0,0"/>
|
||||||
|
|
||||||
<Button Grid.Row="7"
|
<Button Grid.Row="8"
|
||||||
Margin="5,15,5,5"
|
Height="160"
|
||||||
|
Margin="5"
|
||||||
FontSize="36" Content="Kuka Roboter"
|
FontSize="36" Content="Kuka Roboter"
|
||||||
Command="{Binding KukaPageClickedCommand}"/>
|
Command="{Binding KukaPageClickedCommand}"/>
|
||||||
|
|
||||||
<Button Grid.Row="8"
|
<Button Grid.Row="9"
|
||||||
|
Height="160"
|
||||||
Margin="5"
|
Margin="5"
|
||||||
FontSize="36"
|
FontSize="36"
|
||||||
FontFamily="Arial"
|
FontFamily="Arial"
|
||||||
@@ -96,5 +107,4 @@
|
|||||||
Content="{Binding CurrentDetailPage}"/>
|
Content="{Binding CurrentDetailPage}"/>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</Viewbox>
|
|
||||||
</Page>
|
</Page>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für AutomaticModePage.xaml
|
/// Interaktionslogik für AutomaticModePage.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -19,4 +19,3 @@ namespace InfineonHMI
|
|||||||
disposable?.Dispose();
|
disposable?.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -7,17 +7,19 @@
|
|||||||
xmlns:common="clr-namespace:Common"
|
xmlns:common="clr-namespace:Common"
|
||||||
d:DataContext="{d:DesignInstance Type=uniperHmi:ReceipePageVM, IsDesignTimeCreatable=True}"
|
d:DataContext="{d:DesignInstance Type=uniperHmi:ReceipePageVM, IsDesignTimeCreatable=True}"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DesignHeight="1900" d:DesignWidth="3800">
|
d:DesignHeight="1554" d:DesignWidth="3840">
|
||||||
|
|
||||||
<Page.Resources>
|
<Page.Resources>
|
||||||
<CollectionViewSource x:Key="FlowStations" Source="{Binding FlowStationsVm}"></CollectionViewSource>
|
<CollectionViewSource x:Key="FlowStations" Source="{Binding FlowStationsVm}"/>
|
||||||
|
<Style x:Key="Foo" TargetType="DataGridCell">
|
||||||
|
<Setter Property="FontSize" Value="30"/>
|
||||||
|
</Style>
|
||||||
</Page.Resources>
|
</Page.Resources>
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="33*"/>
|
<ColumnDefinition Width="0.25*"/>
|
||||||
<ColumnDefinition Width="33*"/>
|
<ColumnDefinition Width="0.25*"/>
|
||||||
<ColumnDefinition Width="17*"/>
|
<ColumnDefinition Width="0.5*"/>
|
||||||
<ColumnDefinition Width="17*"/>
|
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto"/>
|
||||||
@@ -40,34 +42,40 @@
|
|||||||
<RowDefinition/>
|
<RowDefinition/>
|
||||||
<RowDefinition/>
|
<RowDefinition/>
|
||||||
<RowDefinition/>
|
<RowDefinition/>
|
||||||
<RowDefinition/>
|
|
||||||
<RowDefinition/>
|
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Orientation="Horizontal">
|
||||||
<Button Grid.Row="0" x:Name="BtnReadReceipeFile"
|
<Button Grid.Row="0" x:Name="BtnReadReceipeFile"
|
||||||
Content="Rezept aus Datei Laden"
|
Content="Rezept aus Datei Laden"
|
||||||
Width="120"
|
Width="450" Height="140" FontSize="30"
|
||||||
Command="{Binding ReadReceipeFileCommand}"
|
Command="{Binding ReadReceipeFileCommand}"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left"
|
||||||
Margin="10"/>
|
Margin="10"/>
|
||||||
|
|
||||||
<Button Grid.Row="0" x:Name="BtnWriteReceipeFile"
|
<Button Grid.Row="0" x:Name="BtnWriteReceipeFile"
|
||||||
Content="Rezept speichern"
|
Content="Rezept speichern"
|
||||||
Width="120"
|
Width="450" Height="140" FontSize="30"
|
||||||
Command="{Binding WriteReceipeFileCommand}"
|
Command="{Binding WriteReceipeFileCommand}"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left"
|
||||||
Margin="10"/>
|
Margin="10"/>
|
||||||
<Button Grid.Row="0" x:Name="BtnWriteToPlc"
|
<Button Grid.Row="0" x:Name="BtnWriteToPlc"
|
||||||
Content="Sende Daten an SPS"
|
Content="Sende Daten an SPS"
|
||||||
Width="120"
|
Width="450" Height="140" FontSize="30"
|
||||||
Command="{Binding WriteToPlcCommand}"
|
Command="{Binding WriteToPlcCommand}"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left"
|
||||||
Margin="10"/>
|
Margin="10"/>
|
||||||
|
<Button Grid.Row="0" x:Name="BtnReadToPlc"
|
||||||
|
Content="Lese Daten von SPS"
|
||||||
|
Width="450" Height="140" FontSize="30"
|
||||||
|
Command="{Binding ReadFromPlcCommand}"
|
||||||
|
HorizontalAlignment="Left"
|
||||||
|
Margin="10"
|
||||||
|
Visibility ="Collapsed"
|
||||||
|
/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<Label Grid.Column="0" Grid.Row="1" Content="Allgemein: " VerticalAlignment="Center" FontSize="24"></Label>
|
<Label Grid.Column="0" Grid.Row="1" Content="Allgemein: " VerticalAlignment="Center" FontSize="24"></Label>
|
||||||
<common:ParamControlFloat Grid.Column="0" Grid.Row="2" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding CameraProgramsVm}"/>
|
<common:ParamControlInt Grid.Column="0" Grid.Row="2" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding CameraProgramsVm}"/>
|
||||||
<common:ParamControlFloat Grid.Column="0" Grid.Row="3" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding ChucksVm}"/>
|
<common:ParamControlInt Grid.Column="0" Grid.Row="3" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding ChucksVm}"/>
|
||||||
<common:ParamControlFloat Grid.Column="0" Grid.Row="4" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding GripperVm}"/>
|
<common:ParamControlInt Grid.Column="0" Grid.Row="4" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding GripperVm}"/>
|
||||||
<common:ParamControlFloat Grid.Column="0" Grid.Row="6" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding DiameterVm}"/>
|
<common:ParamControlFloat Grid.Column="0" Grid.Row="6" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding DiameterVm}"/>
|
||||||
<common:ParamControlFloat Grid.Column="0" Grid.Row="7" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding ThicknessVm}"/>
|
<common:ParamControlFloat Grid.Column="0" Grid.Row="7" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding ThicknessVm}"/>
|
||||||
|
|
||||||
@@ -88,8 +96,8 @@
|
|||||||
<Label Grid.Column="1" Grid.Row="1" Content="Hochvolt Parameter: " VerticalAlignment="Center" FontSize="24"></Label>
|
<Label Grid.Column="1" Grid.Row="1" Content="Hochvolt Parameter: " VerticalAlignment="Center" FontSize="24"></Label>
|
||||||
<common:ParamControlFloat Grid.Column="1" Grid.Row="2" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding HvmaxTestCurrentVm}"/>
|
<common:ParamControlFloat Grid.Column="1" Grid.Row="2" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding HvmaxTestCurrentVm}"/>
|
||||||
<common:ParamControlFloat Grid.Column="1" Grid.Row="3" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding Hvn2PrePurgeTimeVm}"/>
|
<common:ParamControlFloat Grid.Column="1" Grid.Row="3" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding Hvn2PrePurgeTimeVm}"/>
|
||||||
<common:ParamControlFloat Grid.Column="1" Grid.Row="4" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding HvnumRetriesVm}"/>
|
<common:ParamControlInt Grid.Column="1" Grid.Row="4" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding HvnumRetriesVm}"/>
|
||||||
<common:ParamControlFloat Grid.Column="1" Grid.Row="5" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding HvpolarityVm}"/>
|
<common:ParamControlInt Grid.Column="1" Grid.Row="5" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding HvpolarityVm}"/>
|
||||||
<common:ParamControlFloat Grid.Column="1" Grid.Row="6" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding HvrampTimeVm}"/>
|
<common:ParamControlFloat Grid.Column="1" Grid.Row="6" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding HvrampTimeVm}"/>
|
||||||
<common:ParamControlFloat Grid.Column="1" Grid.Row="7" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding HvtestFrequencyVm}"/>
|
<common:ParamControlFloat Grid.Column="1" Grid.Row="7" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding HvtestFrequencyVm}"/>
|
||||||
<common:ParamControlFloat Grid.Column="1" Grid.Row="8" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding HvTestOkCurrentVm}"/>
|
<common:ParamControlFloat Grid.Column="1" Grid.Row="8" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding HvTestOkCurrentVm}"/>
|
||||||
@@ -98,21 +106,58 @@
|
|||||||
<common:ParamControlFloat Grid.Column="1" Grid.Row="11" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding HvtestVoltageVm}"/>
|
<common:ParamControlFloat Grid.Column="1" Grid.Row="11" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding HvtestVoltageVm}"/>
|
||||||
<common:ParamControlFloat Grid.Column="1" Grid.Row="12" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding HvtestPressureN2Vm}"/>
|
<common:ParamControlFloat Grid.Column="1" Grid.Row="12" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Center" DataContext="{Binding HvtestPressureN2Vm}"/>
|
||||||
|
|
||||||
<Label Grid.Column="1" Grid.Row="14" Content="Durchlaufrezept Tabelle"></Label>
|
<Label Grid.Column="1" Grid.Row="14" Content="Traypositionen" FontSize="35"></Label>
|
||||||
<Grid Grid.Column="1" Grid.Row="15" Grid.RowSpan="6">
|
<Grid Grid.Column="1" Grid.Row="15" Grid.RowSpan="5">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="0.8*"/>
|
||||||
|
<ColumnDefinition Width="0.2*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<DataGrid Grid.Column="0" ItemsSource="{Binding TrayPositions}"
|
||||||
|
SelectedItem="{Binding SelectedTrayPosition}"
|
||||||
|
AutoGenerateColumns="False" CanUserAddRows="False" FontSize="30" >
|
||||||
|
<DataGrid.Columns>
|
||||||
|
<DataGridTextColumn Header="Pos Nr." Binding="{Binding PosId}"/>
|
||||||
|
<DataGridTextColumn Header="Pos X" Binding="{Binding PosX}" Width="170"/>
|
||||||
|
<DataGridTextColumn Header="Pos Y" Binding="{Binding PosY}" Width="170"/>
|
||||||
|
</DataGrid.Columns>
|
||||||
|
</DataGrid>
|
||||||
|
<StackPanel Grid.Column="1" Orientation="Vertical">
|
||||||
|
<Button Content="+" FontSize="24" Width="60" Height="60" HorizontalAlignment="Left" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="10" Command="{Binding AddTrayPositionCommand}" IsEnabled="{Binding CanAddTrayPosition}"/>
|
||||||
|
<Button Content="-" FontSize="24" Width="60" Height="60" HorizontalAlignment="Left" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="10" Command="{Binding RemoveTrayPositionCommand}" IsEnabled="{Binding CanRemoveTrayPosition}"/>
|
||||||
|
<Button Content="↑" FontSize="24" Width="60" Height="60" HorizontalAlignment="Left" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="10" Command="{Binding TrayPositionUpCommand}"/>
|
||||||
|
<Button Content="↓" FontSize="24" Width="60" Height="60" HorizontalAlignment="Left" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="10" Command="{Binding TrayPositionDownCommand}"/>
|
||||||
|
</StackPanel>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<Label Grid.Column="2" Grid.Row="1" Content="Durchlaufrezept Tabelle" FontSize="30"/>
|
||||||
|
<Grid Grid.Column="2" Grid.Row="2" Grid.RowSpan="6">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="90*"/>
|
<ColumnDefinition Width="90*"/>
|
||||||
<ColumnDefinition Width="10*"/>
|
<ColumnDefinition Width="10*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<DataGrid Grid.Column="0" ItemsSource="{Binding FlowReceipeEntries}"
|
<DataGrid Grid.Column="0" ItemsSource="{Binding FlowReceipeEntries}"
|
||||||
SelectedItem="{Binding SelectedFlowReceipeEntry, UpdateSourceTrigger=PropertyChanged}"
|
SelectedItem="{Binding SelectedFlowReceipeEntry, UpdateSourceTrigger=PropertyChanged}"
|
||||||
AutoGenerateColumns="False" CanUserAddRows="False">
|
AutoGenerateColumns="False" CanUserAddRows="False" FontSize="30">
|
||||||
|
|
||||||
<DataGrid.Columns>
|
<DataGrid.Columns>
|
||||||
<DataGridTextColumn Header="NodeID" Binding="{Binding NodeId}"/>
|
<DataGridTextColumn Header="NodeID" Binding="{Binding NodeId}"/>
|
||||||
<DataGridTextColumn Header="Priorität" Binding="{Binding Priority}"/>
|
<DataGridTextColumn Header="Prio" Binding="{Binding Priority}"/>
|
||||||
<DataGridComboBoxColumn Header="Station"
|
<DataGridComboBoxColumn Header="Station"
|
||||||
ItemsSource="{Binding Source={StaticResource FlowStations}}"
|
ItemsSource="{Binding Source={StaticResource FlowStations}}"
|
||||||
SelectedValueBinding="{Binding Station, NotifyOnTargetUpdated=True, NotifyOnSourceUpdated=True}"/>
|
SelectedValueBinding="{Binding Station, NotifyOnTargetUpdated=True, NotifyOnSourceUpdated=True}">
|
||||||
|
<DataGridComboBoxColumn.ElementStyle>
|
||||||
|
<Style TargetType="ComboBox">
|
||||||
|
<Setter Property="FontSize" Value="30"/>
|
||||||
|
<Setter Property="IsHitTestVisible" Value="False"/>
|
||||||
|
<Setter Property="Focusable" Value="False"/>
|
||||||
|
</Style>
|
||||||
|
</DataGridComboBoxColumn.ElementStyle>
|
||||||
|
<DataGridComboBoxColumn.EditingElementStyle>
|
||||||
|
<Style TargetType="ComboBox">
|
||||||
|
<Setter Property="FontSize" Value="30"/>
|
||||||
|
</Style>
|
||||||
|
</DataGridComboBoxColumn.EditingElementStyle>
|
||||||
|
</DataGridComboBoxColumn>
|
||||||
<DataGridTextColumn Header="Max. Wdh." Binding="{Binding MaxRetries}"/>
|
<DataGridTextColumn Header="Max. Wdh." Binding="{Binding MaxRetries}"/>
|
||||||
<DataGridTextColumn Header="Nächste Node" Binding="{Binding NextNodeSuccess}"/>
|
<DataGridTextColumn Header="Nächste Node" Binding="{Binding NextNodeSuccess}"/>
|
||||||
<DataGridTextColumn Header="Nächste Node bei Wdh." Binding="{Binding NextNodeRetry}"/>
|
<DataGridTextColumn Header="Nächste Node bei Wdh." Binding="{Binding NextNodeRetry}"/>
|
||||||
@@ -130,38 +175,15 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<Label Grid.Column="2" Grid.Row="1" Content="Traypositionen" FontSize="24"></Label>
|
<Label Grid.Column="2" Grid.Row="9" Content="Ätzschritte Mecademic Roboter" FontSize="30"></Label>
|
||||||
<Grid Grid.Column="2" Grid.Row="1" Grid.RowSpan="6">
|
<Grid Grid.Column="2" Grid.ColumnSpan="1" Grid.Row="10" Grid.RowSpan="7">
|
||||||
<Grid.ColumnDefinitions>
|
|
||||||
<ColumnDefinition Width="80*"/>
|
|
||||||
<ColumnDefinition Width="20*"/>
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
<DataGrid Grid.Column="0" ItemsSource="{Binding TrayPositions}"
|
|
||||||
SelectedItem="{Binding SelectedTrayPosition}"
|
|
||||||
AutoGenerateColumns="False" CanUserAddRows="False">
|
|
||||||
<DataGrid.Columns>
|
|
||||||
<DataGridTextColumn Header="Pos Nr." Binding="{Binding PosId}"/>
|
|
||||||
<DataGridTextColumn Header="Pos X" Binding="{Binding PosX}"/>
|
|
||||||
<DataGridTextColumn Header="Pos Y" Binding="{Binding PosY}"></DataGridTextColumn>
|
|
||||||
</DataGrid.Columns>
|
|
||||||
</DataGrid>
|
|
||||||
<StackPanel Grid.Column="1" Orientation="Vertical">
|
|
||||||
<Button Content="+" FontSize="24" Width="60" Height="60" HorizontalAlignment="Left" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="10" Command="{Binding AddTrayPositionCommand}" IsEnabled="{Binding CanAddTrayPosition}"></Button>
|
|
||||||
<Button Content="-" FontSize="24" Width="60" Height="60" HorizontalAlignment="Left" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="10" Command="{Binding RemoveTrayPositionCommand}" IsEnabled="{Binding CanRemoveTrayPosition}"></Button>
|
|
||||||
<Button Content="↑" FontSize="24" Width="60" Height="60" HorizontalAlignment="Left" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="10" Command="{Binding TrayPositionUpCommand}"></Button>
|
|
||||||
<Button Content="↓" FontSize="24" Width="60" Height="60" HorizontalAlignment="Left" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Margin="10" Command="{Binding TrayPositionDownCommand}"></Button>
|
|
||||||
</StackPanel>
|
|
||||||
</Grid>
|
|
||||||
|
|
||||||
<Label Grid.Column="2" Grid.Row="9" Content="Ätzschritte Mecademic Roboter"></Label>
|
|
||||||
<Grid Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="10" Grid.RowSpan="7">
|
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="90*"/>
|
<ColumnDefinition Width="90*"/>
|
||||||
<ColumnDefinition Width="10*"/>
|
<ColumnDefinition Width="10*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<DataGrid Grid.Column="0" ItemsSource="{Binding EtcherRobotSteps}"
|
<DataGrid Grid.Column="0" ItemsSource="{Binding EtcherRobotSteps}"
|
||||||
SelectedItem="{Binding SelectedEtchRobotStep, UpdateSourceTrigger=PropertyChanged}"
|
SelectedItem="{Binding SelectedEtchRobotStep, UpdateSourceTrigger=PropertyChanged}"
|
||||||
AutoGenerateColumns="False" CanUserAddRows="False">
|
AutoGenerateColumns="False" CanUserAddRows="False" FontSize="30">
|
||||||
<DataGrid.Columns>
|
<DataGrid.Columns>
|
||||||
<DataGridTextColumn Header="Pos X" Binding="{Binding PosX}"/>
|
<DataGridTextColumn Header="Pos X" Binding="{Binding PosX}"/>
|
||||||
<DataGridTextColumn Header="Pos Y" Binding="{Binding PosY}"/>
|
<DataGridTextColumn Header="Pos Y" Binding="{Binding PosY}"/>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
namespace InfineonHMI.Pages.Views
|
namespace InfineonHMI.Pages.Views;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Receipes Overview Page
|
/// Receipes Overview Page
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -12,4 +12,3 @@ namespace InfineonHMI.Pages.Views
|
|||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -4,17 +4,22 @@
|
|||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:local="clr-namespace:InfineonHMI"
|
xmlns:local="clr-namespace:InfineonHMI"
|
||||||
|
xmlns:common="clr-namespace:Common"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DataContext="{d:DesignInstance Type=local:TrayFeederPageVM, IsDesignTimeCreatable=True}"
|
d:DataContext="{d:DesignInstance Type=local:TrayFeederPageVM, IsDesignTimeCreatable=True}"
|
||||||
d:DesignHeight="800" d:DesignWidth="1850"
|
d:DesignHeight="1554" d:DesignWidth="3390"
|
||||||
Title="Trayfeeder">
|
Title="Trayfeeder">
|
||||||
|
|
||||||
<Grid>
|
<Grid Margin="20">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
<ColumnDefinition />
|
<ColumnDefinition />
|
||||||
|
<ColumnDefinition />
|
||||||
|
<ColumnDefinition />
|
||||||
|
<ColumnDefinition />
|
||||||
|
<ColumnDefinition />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition />
|
<RowDefinition />
|
||||||
@@ -27,7 +32,10 @@
|
|||||||
<RowDefinition />
|
<RowDefinition />
|
||||||
<RowDefinition />
|
<RowDefinition />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Label Grid.Row="0" Grid.Column="0" Content="TrayFeederPage" VerticalAlignment="Center" HorizontalAlignment="Left" />
|
<Label Grid.Row="0" Grid.Column="0" Content="TrayFeederPage" VerticalAlignment="Top" HorizontalAlignment="Left" FontSize="40"/>
|
||||||
|
|
||||||
|
<common:PackMLControl Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="2" HorizontalAlignment="Right" Grid.RowSpan="6" Width="Auto" Margin="20" DataContext="{Binding TrayfeederInPackMLControlVm}"/>
|
||||||
|
<common:PackMLControl Grid.Row="0" Grid.Column="6" Grid.ColumnSpan="2" HorizontalAlignment="Right" Grid.RowSpan="6" Width="Auto" Margin="20" DataContext="{Binding TrayfeederOutPackMLControlVm}"/>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</Page>
|
</Page>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für AutomaticModePage.xaml
|
/// Interaktionslogik für AutomaticModePage.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -13,4 +13,3 @@ namespace InfineonHMI
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
BIN
uniper_hmi/UniperHMI/Resources/application.png
Normal file
BIN
uniper_hmi/UniperHMI/Resources/application.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 47 KiB |
BIN
uniper_hmi/UniperHMI/Resources/user.png
Normal file
BIN
uniper_hmi/UniperHMI/Resources/user.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 44 KiB |
@@ -3,7 +3,6 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mah="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
|
|
||||||
xmlns:local="clr-namespace:InfineonHMI"
|
xmlns:local="clr-namespace:InfineonHMI"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DesignHeight="450" d:DesignWidth="800"
|
d:DesignHeight="450" d:DesignWidth="800"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interaktionslogik für SettingsPageView.xaml
|
/// Interaktionslogik für SettingsPageView.xaml
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -19,4 +19,3 @@ namespace InfineonHMI
|
|||||||
disposable?.Dispose();
|
disposable?.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ using TwinCAT.Ads.TypeSystem;
|
|||||||
using TwinCAT.TypeSystem;
|
using TwinCAT.TypeSystem;
|
||||||
using Heisig.HMI.AdsManager;
|
using Heisig.HMI.AdsManager;
|
||||||
|
|
||||||
namespace InfineonHMI
|
namespace InfineonHMI;
|
||||||
{
|
|
||||||
public partial class SettingsEntry : ObservableObject
|
public partial class SettingsEntry : ObservableObject
|
||||||
{
|
{
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
@@ -122,4 +122,3 @@ namespace InfineonHMI
|
|||||||
_adsManager?.Deregister(_variableName, ConfigChangedEvent);
|
_adsManager?.Deregister(_variableName, ConfigChangedEvent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
63
uniper_hmi_old/.gitattributes
vendored
63
uniper_hmi_old/.gitattributes
vendored
@@ -1,63 +0,0 @@
|
|||||||
###############################################################################
|
|
||||||
# Set default behavior to automatically normalize line endings.
|
|
||||||
###############################################################################
|
|
||||||
* text=auto
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Set default behavior for command prompt diff.
|
|
||||||
#
|
|
||||||
# This is need for earlier builds of msysgit that does not have it on by
|
|
||||||
# default for csharp files.
|
|
||||||
# Note: This is only used by command line
|
|
||||||
###############################################################################
|
|
||||||
#*.cs diff=csharp
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# Set the merge driver for project and solution files
|
|
||||||
#
|
|
||||||
# Merging from the command prompt will add diff markers to the files if there
|
|
||||||
# are conflicts (Merging from VS is not affected by the settings below, in VS
|
|
||||||
# the diff markers are never inserted). Diff markers may cause the following
|
|
||||||
# file extensions to fail to load in VS. An alternative would be to treat
|
|
||||||
# these files as binary and thus will always conflict and require user
|
|
||||||
# intervention with every merge. To do so, just uncomment the entries below
|
|
||||||
###############################################################################
|
|
||||||
#*.sln merge=binary
|
|
||||||
#*.csproj merge=binary
|
|
||||||
#*.vbproj merge=binary
|
|
||||||
#*.vcxproj merge=binary
|
|
||||||
#*.vcproj merge=binary
|
|
||||||
#*.dbproj merge=binary
|
|
||||||
#*.fsproj merge=binary
|
|
||||||
#*.lsproj merge=binary
|
|
||||||
#*.wixproj merge=binary
|
|
||||||
#*.modelproj merge=binary
|
|
||||||
#*.sqlproj merge=binary
|
|
||||||
#*.wwaproj merge=binary
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# behavior for image files
|
|
||||||
#
|
|
||||||
# image files are treated as binary by default.
|
|
||||||
###############################################################################
|
|
||||||
#*.jpg binary
|
|
||||||
#*.png binary
|
|
||||||
#*.gif binary
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# diff behavior for common document formats
|
|
||||||
#
|
|
||||||
# Convert binary document formats to text before diffing them. This feature
|
|
||||||
# is only available from the command line. Turn it on by uncommenting the
|
|
||||||
# entries below.
|
|
||||||
###############################################################################
|
|
||||||
#*.doc diff=astextplain
|
|
||||||
#*.DOC diff=astextplain
|
|
||||||
#*.docx diff=astextplain
|
|
||||||
#*.DOCX diff=astextplain
|
|
||||||
#*.dot diff=astextplain
|
|
||||||
#*.DOT diff=astextplain
|
|
||||||
#*.pdf diff=astextplain
|
|
||||||
#*.PDF diff=astextplain
|
|
||||||
#*.rtf diff=astextplain
|
|
||||||
#*.RTF diff=astextplain
|
|
||||||
367
uniper_hmi_old/.gitignore
vendored
367
uniper_hmi_old/.gitignore
vendored
@@ -1,367 +0,0 @@
|
|||||||
## Ignore Visual Studio temporary files, build results, and
|
|
||||||
## files generated by popular Visual Studio add-ons.
|
|
||||||
##
|
|
||||||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
|
||||||
|
|
||||||
# User-specific files
|
|
||||||
*.rsuser
|
|
||||||
*.suo
|
|
||||||
*.user
|
|
||||||
*.userosscache
|
|
||||||
*.sln.docstates
|
|
||||||
|
|
||||||
# User-specific files (MonoDevelop/Xamarin Studio)
|
|
||||||
*.userprefs
|
|
||||||
|
|
||||||
# Testproject folders
|
|
||||||
AdsSessionTest/
|
|
||||||
HMI_Export/
|
|
||||||
|
|
||||||
# Mono auto generated files
|
|
||||||
mono_crash.*
|
|
||||||
|
|
||||||
# Build results
|
|
||||||
[Dd]ebug/
|
|
||||||
[Dd]ebugPublic/
|
|
||||||
[Rr]elease/
|
|
||||||
[Rr]eleases/
|
|
||||||
x64/
|
|
||||||
x86/
|
|
||||||
[Ww][Ii][Nn]32/
|
|
||||||
[Aa][Rr][Mm]/
|
|
||||||
[Aa][Rr][Mm]64/
|
|
||||||
bld/
|
|
||||||
[Bb]in/
|
|
||||||
[Oo]bj/
|
|
||||||
[Oo]ut/
|
|
||||||
[Ll]og/
|
|
||||||
[Ll]ogs/
|
|
||||||
|
|
||||||
# Visual Studio 2015/2017 cache/options directory
|
|
||||||
.vs/
|
|
||||||
# Uncomment if you have tasks that create the project's static files in wwwroot
|
|
||||||
#wwwroot/
|
|
||||||
|
|
||||||
# Visual Studio 2017 auto generated files
|
|
||||||
Generated\ Files/
|
|
||||||
|
|
||||||
# MSTest test Results
|
|
||||||
[Tt]est[Rr]esult*/
|
|
||||||
[Bb]uild[Ll]og.*
|
|
||||||
|
|
||||||
# NUnit
|
|
||||||
*.VisualState.xml
|
|
||||||
TestResult.xml
|
|
||||||
nunit-*.xml
|
|
||||||
|
|
||||||
# Build Results of an ATL Project
|
|
||||||
[Dd]ebugPS/
|
|
||||||
[Rr]eleasePS/
|
|
||||||
dlldata.c
|
|
||||||
|
|
||||||
# Benchmark Results
|
|
||||||
BenchmarkDotNet.Artifacts/
|
|
||||||
|
|
||||||
# .NET Core
|
|
||||||
project.lock.json
|
|
||||||
project.fragment.lock.json
|
|
||||||
artifacts/
|
|
||||||
|
|
||||||
# ASP.NET Scaffolding
|
|
||||||
ScaffoldingReadMe.txt
|
|
||||||
|
|
||||||
# StyleCop
|
|
||||||
StyleCopReport.xml
|
|
||||||
|
|
||||||
# Files built by Visual Studio
|
|
||||||
*_i.c
|
|
||||||
*_p.c
|
|
||||||
*_h.h
|
|
||||||
*.ilk
|
|
||||||
*.meta
|
|
||||||
*.obj
|
|
||||||
*.iobj
|
|
||||||
*.pch
|
|
||||||
*.pdb
|
|
||||||
*.ipdb
|
|
||||||
*.pgc
|
|
||||||
*.pgd
|
|
||||||
*.rsp
|
|
||||||
*.sbr
|
|
||||||
*.tlb
|
|
||||||
*.tli
|
|
||||||
*.tlh
|
|
||||||
*.tmp
|
|
||||||
*.tmp_proj
|
|
||||||
*_wpftmp.csproj
|
|
||||||
*.log
|
|
||||||
*.vspscc
|
|
||||||
*.vssscc
|
|
||||||
.builds
|
|
||||||
*.pidb
|
|
||||||
*.svclog
|
|
||||||
*.scc
|
|
||||||
|
|
||||||
# Chutzpah Test files
|
|
||||||
_Chutzpah*
|
|
||||||
|
|
||||||
# Visual C++ cache files
|
|
||||||
ipch/
|
|
||||||
*.aps
|
|
||||||
*.ncb
|
|
||||||
*.opendb
|
|
||||||
*.opensdf
|
|
||||||
*.sdf
|
|
||||||
*.cachefile
|
|
||||||
*.VC.db
|
|
||||||
*.VC.VC.opendb
|
|
||||||
|
|
||||||
# Visual Studio profiler
|
|
||||||
*.psess
|
|
||||||
*.vsp
|
|
||||||
*.vspx
|
|
||||||
*.sap
|
|
||||||
|
|
||||||
# Visual Studio Trace Files
|
|
||||||
*.e2e
|
|
||||||
|
|
||||||
# TFS 2012 Local Workspace
|
|
||||||
$tf/
|
|
||||||
|
|
||||||
# Guidance Automation Toolkit
|
|
||||||
*.gpState
|
|
||||||
|
|
||||||
# ReSharper is a .NET coding add-in
|
|
||||||
_ReSharper*/
|
|
||||||
*.[Rr]e[Ss]harper
|
|
||||||
*.DotSettings.user
|
|
||||||
|
|
||||||
# TeamCity is a build add-in
|
|
||||||
_TeamCity*
|
|
||||||
|
|
||||||
# DotCover is a Code Coverage Tool
|
|
||||||
*.dotCover
|
|
||||||
|
|
||||||
# AxoCover is a Code Coverage Tool
|
|
||||||
.axoCover/*
|
|
||||||
!.axoCover/settings.json
|
|
||||||
|
|
||||||
# Coverlet is a free, cross platform Code Coverage Tool
|
|
||||||
coverage*.json
|
|
||||||
coverage*.xml
|
|
||||||
coverage*.info
|
|
||||||
|
|
||||||
# Visual Studio code coverage results
|
|
||||||
*.coverage
|
|
||||||
*.coveragexml
|
|
||||||
|
|
||||||
# NCrunch
|
|
||||||
_NCrunch_*
|
|
||||||
.*crunch*.local.xml
|
|
||||||
nCrunchTemp_*
|
|
||||||
|
|
||||||
# MightyMoose
|
|
||||||
*.mm.*
|
|
||||||
AutoTest.Net/
|
|
||||||
|
|
||||||
# Web workbench (sass)
|
|
||||||
.sass-cache/
|
|
||||||
|
|
||||||
# Installshield output folder
|
|
||||||
[Ee]xpress/
|
|
||||||
|
|
||||||
# DocProject is a documentation generator add-in
|
|
||||||
DocProject/buildhelp/
|
|
||||||
DocProject/Help/*.HxT
|
|
||||||
DocProject/Help/*.HxC
|
|
||||||
DocProject/Help/*.hhc
|
|
||||||
DocProject/Help/*.hhk
|
|
||||||
DocProject/Help/*.hhp
|
|
||||||
DocProject/Help/Html2
|
|
||||||
DocProject/Help/html
|
|
||||||
|
|
||||||
# Click-Once directory
|
|
||||||
publish/
|
|
||||||
|
|
||||||
# Publish Web Output
|
|
||||||
*.[Pp]ublish.xml
|
|
||||||
*.azurePubxml
|
|
||||||
# Note: Comment the next line if you want to checkin your web deploy settings,
|
|
||||||
# but database connection strings (with potential passwords) will be unencrypted
|
|
||||||
*.pubxml
|
|
||||||
*.publishproj
|
|
||||||
|
|
||||||
# Microsoft Azure Web App publish settings. Comment the next line if you want to
|
|
||||||
# checkin your Azure Web App publish settings, but sensitive information contained
|
|
||||||
# in these scripts will be unencrypted
|
|
||||||
PublishScripts/
|
|
||||||
|
|
||||||
# NuGet Packages
|
|
||||||
*.nupkg
|
|
||||||
# NuGet Symbol Packages
|
|
||||||
*.snupkg
|
|
||||||
# The packages folder can be ignored because of Package Restore
|
|
||||||
**/[Pp]ackages/*
|
|
||||||
# except build/, which is used as an MSBuild target.
|
|
||||||
!**/[Pp]ackages/build/
|
|
||||||
# Uncomment if necessary however generally it will be regenerated when needed
|
|
||||||
#!**/[Pp]ackages/repositories.config
|
|
||||||
# NuGet v3's project.json files produces more ignorable files
|
|
||||||
*.nuget.props
|
|
||||||
*.nuget.targets
|
|
||||||
|
|
||||||
# Microsoft Azure Build Output
|
|
||||||
csx/
|
|
||||||
*.build.csdef
|
|
||||||
|
|
||||||
# Microsoft Azure Emulator
|
|
||||||
ecf/
|
|
||||||
rcf/
|
|
||||||
|
|
||||||
# Windows Store app package directories and files
|
|
||||||
AppPackages/
|
|
||||||
BundleArtifacts/
|
|
||||||
Package.StoreAssociation.xml
|
|
||||||
_pkginfo.txt
|
|
||||||
*.appx
|
|
||||||
*.appxbundle
|
|
||||||
*.appxupload
|
|
||||||
|
|
||||||
# Visual Studio cache files
|
|
||||||
# files ending in .cache can be ignored
|
|
||||||
*.[Cc]ache
|
|
||||||
# but keep track of directories ending in .cache
|
|
||||||
!?*.[Cc]ache/
|
|
||||||
|
|
||||||
# Others
|
|
||||||
ClientBin/
|
|
||||||
~$*
|
|
||||||
*~
|
|
||||||
*.dbmdl
|
|
||||||
*.dbproj.schemaview
|
|
||||||
*.jfm
|
|
||||||
*.pfx
|
|
||||||
*.publishsettings
|
|
||||||
orleans.codegen.cs
|
|
||||||
|
|
||||||
# Including strong name files can present a security risk
|
|
||||||
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
|
|
||||||
#*.snk
|
|
||||||
|
|
||||||
# Since there are multiple workflows, uncomment next line to ignore bower_components
|
|
||||||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
|
|
||||||
#bower_components/
|
|
||||||
|
|
||||||
# RIA/Silverlight projects
|
|
||||||
Generated_Code/
|
|
||||||
|
|
||||||
# Backup & report files from converting an old project file
|
|
||||||
# to a newer Visual Studio version. Backup files are not needed,
|
|
||||||
# because we have git ;-)
|
|
||||||
_UpgradeReport_Files/
|
|
||||||
Backup*/
|
|
||||||
UpgradeLog*.XML
|
|
||||||
UpgradeLog*.htm
|
|
||||||
ServiceFabricBackup/
|
|
||||||
*.rptproj.bak
|
|
||||||
|
|
||||||
# SQL Server files
|
|
||||||
*.mdf
|
|
||||||
*.ldf
|
|
||||||
*.ndf
|
|
||||||
|
|
||||||
# Business Intelligence projects
|
|
||||||
*.rdl.data
|
|
||||||
*.bim.layout
|
|
||||||
*.bim_*.settings
|
|
||||||
*.rptproj.rsuser
|
|
||||||
*- [Bb]ackup.rdl
|
|
||||||
*- [Bb]ackup ([0-9]).rdl
|
|
||||||
*- [Bb]ackup ([0-9][0-9]).rdl
|
|
||||||
|
|
||||||
# Microsoft Fakes
|
|
||||||
FakesAssemblies/
|
|
||||||
|
|
||||||
# GhostDoc plugin setting file
|
|
||||||
*.GhostDoc.xml
|
|
||||||
|
|
||||||
# Node.js Tools for Visual Studio
|
|
||||||
.ntvs_analysis.dat
|
|
||||||
node_modules/
|
|
||||||
|
|
||||||
# Visual Studio 6 build log
|
|
||||||
*.plg
|
|
||||||
|
|
||||||
# Visual Studio 6 workspace options file
|
|
||||||
*.opt
|
|
||||||
|
|
||||||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
|
|
||||||
*.vbw
|
|
||||||
|
|
||||||
# Visual Studio LightSwitch build output
|
|
||||||
**/*.HTMLClient/GeneratedArtifacts
|
|
||||||
**/*.DesktopClient/GeneratedArtifacts
|
|
||||||
**/*.DesktopClient/ModelManifest.xml
|
|
||||||
**/*.Server/GeneratedArtifacts
|
|
||||||
**/*.Server/ModelManifest.xml
|
|
||||||
_Pvt_Extensions
|
|
||||||
|
|
||||||
# Paket dependency manager
|
|
||||||
.paket/paket.exe
|
|
||||||
paket-files/
|
|
||||||
|
|
||||||
# FAKE - F# Make
|
|
||||||
.fake/
|
|
||||||
|
|
||||||
# CodeRush personal settings
|
|
||||||
.cr/personal
|
|
||||||
|
|
||||||
# Python Tools for Visual Studio (PTVS)
|
|
||||||
__pycache__/
|
|
||||||
*.pyc
|
|
||||||
|
|
||||||
# Cake - Uncomment if you are using it
|
|
||||||
# tools/**
|
|
||||||
# !tools/packages.config
|
|
||||||
|
|
||||||
# Tabs Studio
|
|
||||||
*.tss
|
|
||||||
|
|
||||||
# Telerik's JustMock configuration file
|
|
||||||
*.jmconfig
|
|
||||||
|
|
||||||
# BizTalk build output
|
|
||||||
*.btp.cs
|
|
||||||
*.btm.cs
|
|
||||||
*.odx.cs
|
|
||||||
*.xsd.cs
|
|
||||||
|
|
||||||
# OpenCover UI analysis results
|
|
||||||
OpenCover/
|
|
||||||
|
|
||||||
# Azure Stream Analytics local run output
|
|
||||||
ASALocalRun/
|
|
||||||
|
|
||||||
# MSBuild Binary and Structured Log
|
|
||||||
*.binlog
|
|
||||||
|
|
||||||
# NVidia Nsight GPU debugger configuration file
|
|
||||||
*.nvuser
|
|
||||||
|
|
||||||
# MFractors (Xamarin productivity tool) working folder
|
|
||||||
.mfractor/
|
|
||||||
|
|
||||||
# Local History for Visual Studio
|
|
||||||
.localhistory/
|
|
||||||
|
|
||||||
# BeatPulse healthcheck temp database
|
|
||||||
healthchecksdb
|
|
||||||
|
|
||||||
# Backup folder for Package Reference Convert tool in Visual Studio 2017
|
|
||||||
MigrationBackup/
|
|
||||||
|
|
||||||
# Ionide (cross platform F# VS Code tools) working folder
|
|
||||||
.ionide/
|
|
||||||
|
|
||||||
# Fody - auto-generated XML schema
|
|
||||||
FodyWeavers.xsd
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"AdsAdress":"10.103.32.50.1.1","AdsPort":851,"ReconnectIntervalMS":1000,"OnlineChangeCntVar":"TWinCAT_SystemInfoVarList._AppInfo.OnlineChangeCnt"}
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 18
|
|
||||||
VisualStudioVersion = 18.2.11415.280
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InfineonHMI", "UniperHMI\InfineonHMI.csproj", "{8D725B27-1242-4C66-ACD8-45F02098C7D3}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|x64 = Debug|x64
|
|
||||||
Release|x64 = Release|x64
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{8D725B27-1242-4C66-ACD8-45F02098C7D3}.Debug|x64.ActiveCfg = Debug|x64
|
|
||||||
{8D725B27-1242-4C66-ACD8-45F02098C7D3}.Debug|x64.Build.0 = Debug|x64
|
|
||||||
{8D725B27-1242-4C66-ACD8-45F02098C7D3}.Release|x64.ActiveCfg = Release|x64
|
|
||||||
{8D725B27-1242-4C66-ACD8-45F02098C7D3}.Release|x64.Build.0 = Release|x64
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
SolutionGuid = {13973C5F-C164-4478-A4B1-1694557CC459}
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
||||||
@@ -1,98 +0,0 @@
|
|||||||
# Uniper
|
|
||||||
Uniper maintenance hmi project.
|
|
||||||
|
|
||||||
# Gitflow
|
|
||||||
1. A develop branch is created from main
|
|
||||||
2. A release branch is created from develop
|
|
||||||
3. Feature branches are created from develop
|
|
||||||
4. When a feature is complete it is merged into the develop branch
|
|
||||||
5. When the release branch is done it is merged into develop and main
|
|
||||||
6. If an issue in main is detected a hotfix branch is created from main
|
|
||||||
7. Once the hotfix is complete it is merged to both develop and main
|
|
||||||
|
|
||||||
## Start new feature
|
|
||||||
```
|
|
||||||
git flow feature start feature_branch
|
|
||||||
```
|
|
||||||
oder
|
|
||||||
```
|
|
||||||
git checkout develop
|
|
||||||
git checkout -b feature_branch
|
|
||||||
```
|
|
||||||
|
|
||||||
## Finish a feature
|
|
||||||
```
|
|
||||||
git flow feature finish feature_branch
|
|
||||||
```
|
|
||||||
oder
|
|
||||||
```
|
|
||||||
git checkout develop
|
|
||||||
git merge feature_branch
|
|
||||||
```
|
|
||||||
|
|
||||||
## Making a release
|
|
||||||
```
|
|
||||||
git flow release start 0.1.0
|
|
||||||
```
|
|
||||||
oder
|
|
||||||
```
|
|
||||||
git checkout develop
|
|
||||||
git checkout -b release/0.1.0
|
|
||||||
```
|
|
||||||
|
|
||||||
## Finishing a release
|
|
||||||
```
|
|
||||||
git flow release finish '0.1.0'
|
|
||||||
```
|
|
||||||
oder
|
|
||||||
```
|
|
||||||
git checkout main
|
|
||||||
git merge release/0.1.0
|
|
||||||
```
|
|
||||||
|
|
||||||
## Starting a Hotfix
|
|
||||||
```
|
|
||||||
git flow hotfix start hotfix_branch
|
|
||||||
```
|
|
||||||
oder
|
|
||||||
```
|
|
||||||
git checkout main
|
|
||||||
git checkout -b hotfix_branch
|
|
||||||
```
|
|
||||||
|
|
||||||
## Finishing a Hotfix
|
|
||||||
```
|
|
||||||
git flow hotfix finish hotfix_branch
|
|
||||||
```
|
|
||||||
oder
|
|
||||||
```
|
|
||||||
git checkout main
|
|
||||||
git merge hotfix_branch
|
|
||||||
git checkout develop
|
|
||||||
git merge hotfix_branch
|
|
||||||
git branch -D hotfix_branch
|
|
||||||
```
|
|
||||||
|
|
||||||
## Workflow example
|
|
||||||
```
|
|
||||||
git checkout main
|
|
||||||
git checkout -b develop
|
|
||||||
git checkout -b feature_branch
|
|
||||||
# work happens on feature branch
|
|
||||||
git checkout develop
|
|
||||||
git merge feature_branch
|
|
||||||
git checkout main
|
|
||||||
git merge develop
|
|
||||||
git branch -d feature_branch
|
|
||||||
```
|
|
||||||
|
|
||||||
## Hotfix example
|
|
||||||
```
|
|
||||||
git checkout main
|
|
||||||
git checkout -b hotfix_branch
|
|
||||||
# work is done commits are added to the hotfix_branch
|
|
||||||
git checkout develop
|
|
||||||
git merge hotfix_branch
|
|
||||||
git checkout main
|
|
||||||
git merge hotfix_branch
|
|
||||||
```
|
|
||||||
BIN
uniper_hmi_old/UniperHMI/3rdParty/AdsManager.dll
vendored
BIN
uniper_hmi_old/UniperHMI/3rdParty/AdsManager.dll
vendored
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 123 KiB |
@@ -1,17 +0,0 @@
|
|||||||
<Application x:Class="InfineonHMI.App"
|
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
||||||
xmlns:local="clr-namespace:InfineonHMI">
|
|
||||||
<Application.Resources>
|
|
||||||
<!-- MahApps Metro style themes -->
|
|
||||||
<ResourceDictionary>
|
|
||||||
<ResourceDictionary.MergedDictionaries>
|
|
||||||
<!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! -->
|
|
||||||
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
|
|
||||||
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
|
|
||||||
<!-- Theme setting -->
|
|
||||||
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Themes/Dark.Blue.xaml" />
|
|
||||||
</ResourceDictionary.MergedDictionaries>
|
|
||||||
</ResourceDictionary>
|
|
||||||
</Application.Resources>
|
|
||||||
</Application>
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
using System.Windows;
|
|
||||||
using Heisig.HMI.AdsManager;
|
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
|
||||||
using Microsoft.Extensions.Hosting;
|
|
||||||
using TcEventLoggerAdsProxyLib;
|
|
||||||
|
|
||||||
namespace InfineonHMI;
|
|
||||||
|
|
||||||
public partial class App : Application
|
|
||||||
{
|
|
||||||
public static IHost? AppHost { get; private set; }
|
|
||||||
|
|
||||||
public App()
|
|
||||||
{
|
|
||||||
AppHost = Host.CreateDefaultBuilder()
|
|
||||||
.ConfigureServices((hostContext, services) =>
|
|
||||||
{
|
|
||||||
services.AddSingleton<MainWindow>();
|
|
||||||
services.AddSingleton<MainWindowVM>();
|
|
||||||
services.AddSingleton<IAdsManager, AdsManager>();
|
|
||||||
services.AddSingleton<TcEventLogger>();
|
|
||||||
})
|
|
||||||
.Build();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override async void OnStartup(StartupEventArgs e)
|
|
||||||
{
|
|
||||||
await AppHost!.StartAsync();
|
|
||||||
|
|
||||||
var startupForm = AppHost.Services.GetRequiredService<MainWindow>();
|
|
||||||
startupForm.Show();
|
|
||||||
|
|
||||||
base.OnStartup(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override async void OnExit(ExitEventArgs e)
|
|
||||||
{
|
|
||||||
await AppHost!.StopAsync();
|
|
||||||
|
|
||||||
base.OnExit(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
using System.Windows;
|
|
||||||
|
|
||||||
[assembly: ThemeInfo(
|
|
||||||
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
|
|
||||||
//(used if a resource is not found in the page,
|
|
||||||
// or application resource dictionaries)
|
|
||||||
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
|
|
||||||
//(used if a resource is not found in the page,
|
|
||||||
// app, or any theme specific resource dictionaries)
|
|
||||||
)]
|
|
||||||
@@ -1,127 +0,0 @@
|
|||||||
using System.IO;
|
|
||||||
using System.Reflection;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
using System.Text;
|
|
||||||
using System.Xml;
|
|
||||||
using System.Xml.Serialization;
|
|
||||||
|
|
||||||
namespace InfineonHMI.Common
|
|
||||||
{
|
|
||||||
public static class L4ItXmlSerializer
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Serializes an object.
|
|
||||||
/// </summary>
|
|
||||||
/// <typeparam name="T"></typeparam>
|
|
||||||
/// <param name="serializableObject"></param>
|
|
||||||
/// <param name="fileName"></param>
|
|
||||||
/// <param name="encrypt"></param>
|
|
||||||
/// <param name="rootElementName"></param>
|
|
||||||
|
|
||||||
public static void SerializeObject<T>(T serializableObject, string fileName, bool encrypt = false, string rootElementName = null)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(fileName))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (serializableObject == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
XmlSerializer serializer;
|
|
||||||
if (rootElementName != null)
|
|
||||||
{
|
|
||||||
var xmlRoot = new XmlRootAttribute(rootElementName);
|
|
||||||
serializer = new XmlSerializer(serializableObject.GetType(), xmlRoot);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
serializer = new XmlSerializer(serializableObject.GetType());
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var dir = new FileInfo(fileName).DirectoryName;
|
|
||||||
if (dir != null && !Directory.Exists(dir)) // Überprüfen Sie, ob dir nicht null ist, bevor Sie es verwenden
|
|
||||||
Directory.CreateDirectory(dir);
|
|
||||||
|
|
||||||
var xmlDocument = new XmlDocument();
|
|
||||||
using var stream = new MemoryStream();
|
|
||||||
serializer.Serialize(stream, serializableObject);
|
|
||||||
stream.Position = 0;
|
|
||||||
xmlDocument.Load(stream);
|
|
||||||
if (encrypt && false)
|
|
||||||
{
|
|
||||||
//FileEncryption.SaveEncryptedToFile(fileName, xmlDocument.OuterXml);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
xmlDocument.Save(fileName);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Console.Write(ex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Deserializes an xml file into an object list
|
|
||||||
/// </summary>
|
|
||||||
/// <typeparam name="T"></typeparam>
|
|
||||||
/// <param name="fileName"></param>
|
|
||||||
/// <param name="decrypt"></param>
|
|
||||||
/// <param name="rootElementName"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
///
|
|
||||||
///
|
|
||||||
public static T DeSerializeObject<T>(string fileName, bool decrypt = false, string rootElementName = null)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(fileName) || !File.Exists(fileName)) return default!;
|
|
||||||
|
|
||||||
T objectOut;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
string xmlString;
|
|
||||||
if (decrypt && false)
|
|
||||||
{
|
|
||||||
//xmlString = FileEncryption.ReadDecryptedFromFile(fileName)!;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var xmlDocument = new XmlDocument();
|
|
||||||
xmlDocument.Load(fileName);
|
|
||||||
xmlString = xmlDocument.OuterXml;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(xmlString))
|
|
||||||
{
|
|
||||||
// Handle empty xmlString if necessary
|
|
||||||
return default!;
|
|
||||||
}
|
|
||||||
|
|
||||||
using var read = new StringReader(xmlString);
|
|
||||||
var outType = typeof(T);
|
|
||||||
|
|
||||||
XmlSerializer serializer;
|
|
||||||
if (rootElementName != null)
|
|
||||||
{
|
|
||||||
var root = new XmlRootAttribute(rootElementName);
|
|
||||||
serializer = new XmlSerializer(outType, root);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
serializer = new XmlSerializer(outType);
|
|
||||||
}
|
|
||||||
|
|
||||||
using XmlReader reader = new XmlTextReader(read);
|
|
||||||
objectOut = (T)serializer.Deserialize(reader)!;
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Console.Write(ex);
|
|
||||||
return default!;
|
|
||||||
}
|
|
||||||
|
|
||||||
return objectOut;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,83 +0,0 @@
|
|||||||
<UserControl x:Class="Common.MediaContainer"
|
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
||||||
xmlns:common="clr-namespace:Common"
|
|
||||||
xmlns:HMIToolkit="clr-namespace:HMIToolkit"
|
|
||||||
d:DataContext="{d:DesignInstance Type=common:MediaContainerVm, IsDesignTimeCreatable=True}"
|
|
||||||
mc:Ignorable="d"
|
|
||||||
Width="Auto"
|
|
||||||
Height="Auto"
|
|
||||||
MinWidth="200">
|
|
||||||
<UserControl.Resources>
|
|
||||||
<HMIToolkit:FeedbackToColorConverter x:Key="feedbackConverter" />
|
|
||||||
</UserControl.Resources>
|
|
||||||
<!-- :DataContext="{d:DesignInstance Type=local:AnalogValueVM, IsDesignTimeCreatable=True}" -->
|
|
||||||
<!-- Style to see things in the designer-->
|
|
||||||
<d:DesignerProperties.DesignStyle>
|
|
||||||
<Style TargetType="UserControl">
|
|
||||||
<!-- Property="Background" Value="White" /> -->
|
|
||||||
<Setter Property="Height" Value="300" />
|
|
||||||
<Setter Property="Width" Value="100" />
|
|
||||||
</Style>
|
|
||||||
</d:DesignerProperties.DesignStyle>
|
|
||||||
|
|
||||||
<Grid Height="Auto">
|
|
||||||
<Grid.ColumnDefinitions>
|
|
||||||
<ColumnDefinition/>
|
|
||||||
<ColumnDefinition/>
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
<Grid.RowDefinitions>
|
|
||||||
<RowDefinition Height="10*"/>
|
|
||||||
<RowDefinition Height="30*"/>
|
|
||||||
<RowDefinition Height="30*"/>
|
|
||||||
<RowDefinition Height="30*"/>
|
|
||||||
</Grid.RowDefinitions>
|
|
||||||
<Border Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" BorderBrush="White" BorderThickness="2"/>
|
|
||||||
<!-- <Label Grid.Column="0" Content="{Binding SName}" VerticalAlignment="Center" HorizontalAlignment="Left"/> -->
|
|
||||||
<Label Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Content="{Binding SName, Mode=OneWay }" HorizontalAlignment="Center" FontSize="24"/>
|
|
||||||
|
|
||||||
<Grid Grid.Row="1">
|
|
||||||
<Grid.RowDefinitions>
|
|
||||||
<RowDefinition/>
|
|
||||||
<RowDefinition/>
|
|
||||||
</Grid.RowDefinitions>
|
|
||||||
<Border Grid.Row="0" BorderBrush="White" BorderThickness="1" />
|
|
||||||
<Border Grid.Row="1" BorderBrush="White" BorderThickness="1" />
|
|
||||||
<Label Grid.Row="0" VerticalAlignment="Center" Content="Übervoll" HorizontalAlignment="Center" FontSize="16"/>
|
|
||||||
<RadioButton Margin="5" Grid.Row="1" IsChecked="{Binding Overload}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
|
||||||
</Grid>
|
|
||||||
<Grid Grid.Column="0" Grid.Row="2">
|
|
||||||
<Grid.RowDefinitions>
|
|
||||||
<RowDefinition/>
|
|
||||||
<RowDefinition/>
|
|
||||||
</Grid.RowDefinitions>
|
|
||||||
<Border Grid.Row="0" BorderBrush="White" BorderThickness="1" />
|
|
||||||
<Border Grid.Row="1" BorderBrush="White" BorderThickness="1" />
|
|
||||||
<Label Grid.Row="0" VerticalAlignment="Center" Content="Voll" HorizontalAlignment="Center" FontSize="16"/>
|
|
||||||
<RadioButton Grid.Row="1" Margin="5" IsChecked="{Binding Full}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
|
||||||
</Grid>
|
|
||||||
<Grid Grid.Row="3">
|
|
||||||
<Grid.RowDefinitions>
|
|
||||||
<RowDefinition/>
|
|
||||||
<RowDefinition/>
|
|
||||||
</Grid.RowDefinitions>
|
|
||||||
<Border Grid.Row="0" BorderBrush="White" BorderThickness="1" />
|
|
||||||
<Border Grid.Row="1" BorderBrush="White" BorderThickness="1" />
|
|
||||||
<Label Grid.Row="0" VerticalAlignment="Center" Content="Leer" HorizontalAlignment="Center" FontSize="16"/>
|
|
||||||
<RadioButton Grid.Row="1" Margin="5" IsChecked="{Binding Empty}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
|
||||||
</Grid>
|
|
||||||
|
|
||||||
<Border Grid.Column="1" Grid.Row="1" Grid.RowSpan="3" BorderBrush="White" BorderThickness="1"></Border>
|
|
||||||
<Grid Grid.Column="1" Grid.Row="1" Grid.RowSpan="3">
|
|
||||||
<Grid.RowDefinitions>
|
|
||||||
<RowDefinition/>
|
|
||||||
<RowDefinition/>
|
|
||||||
</Grid.RowDefinitions>
|
|
||||||
<Button x:Name="btnFill" DataContext="{Binding FillButton}" Command="{Binding ButtonClickedCommand}" IsEnabled="{Binding XRelease}" Background="{Binding IFeedback, Converter={StaticResource feedbackConverter}}" Grid.Row="0" Grid.Column="0" Content="Füllen" Margin="5" />
|
|
||||||
<Button x:Name="btnOpen" DataContext="{Binding EmptyButton}" Command="{Binding ButtonClickedCommand}" IsEnabled="{Binding XRelease}" Background="{Binding IFeedback, Converter={StaticResource feedbackConverter}}" Grid.Row="1" Grid.Column="0" Content="Leeren" Margin="5" />
|
|
||||||
</Grid>
|
|
||||||
|
|
||||||
</Grid>
|
|
||||||
</UserControl>
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
using System.Text.RegularExpressions;
|
|
||||||
using System.Windows.Controls;
|
|
||||||
using System.Windows.Input;
|
|
||||||
|
|
||||||
namespace Common
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Interaktionslogik für AnalogValue.xaml
|
|
||||||
/// </summary>
|
|
||||||
public partial class MediaContainer : UserControl
|
|
||||||
{
|
|
||||||
public bool IsReadonly { get; set; }
|
|
||||||
|
|
||||||
public MediaContainer()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
// Unloaded += OnUnloaded;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnUnloaded(object? sender, EventArgs e)
|
|
||||||
{
|
|
||||||
var disposable = DataContext as IDisposable;
|
|
||||||
disposable?.Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void NumberValidation(object sender, TextCompositionEventArgs e)
|
|
||||||
{
|
|
||||||
Regex regex = new("^[-+]?[0-9]*,?[0-9]+$");
|
|
||||||
e.Handled = regex.IsMatch(e.Text);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
|
||||||
using System.ComponentModel.DataAnnotations;
|
|
||||||
using TwinCAT.TypeSystem;
|
|
||||||
using Heisig.HMI.AdsManager;
|
|
||||||
using HMIToolkit;
|
|
||||||
|
|
||||||
namespace Common;
|
|
||||||
|
|
||||||
public sealed partial class MediaContainerVm : ObservableValidator, IDisposable
|
|
||||||
{
|
|
||||||
|
|
||||||
private IAdsManager? _adsManager;
|
|
||||||
private string? _variableName;
|
|
||||||
|
|
||||||
[ObservableProperty] private string? sName = "No Name";
|
|
||||||
|
|
||||||
[ObservableProperty] private bool empty = false;
|
|
||||||
|
|
||||||
[ObservableProperty] private bool full = false;
|
|
||||||
|
|
||||||
[ObservableProperty] private bool overload = false;
|
|
||||||
|
|
||||||
[ObservableProperty] private HMIControlButtonVM? emptyButton;
|
|
||||||
|
|
||||||
[ObservableProperty] private HMIControlButtonVM? fillButton;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public MediaContainerVm()
|
|
||||||
{
|
|
||||||
sName = "No Name";
|
|
||||||
EmptyButton = new HMIControlButtonVM();
|
|
||||||
FillButton = new HMIControlButtonVM();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public MediaContainerVm(IAdsManager adsManager, string variableName)
|
|
||||||
{
|
|
||||||
_adsManager = adsManager;
|
|
||||||
_variableName = variableName;
|
|
||||||
|
|
||||||
sName = "No Name";
|
|
||||||
|
|
||||||
EmptyButton = new HMIControlButtonVM(_adsManager, _variableName + ".stEmptyButton");
|
|
||||||
FillButton = new HMIControlButtonVM(_adsManager, _variableName + ".stFillButton");
|
|
||||||
_adsManager.Register(_variableName + ".xEmpty", EmptyChanged);
|
|
||||||
_adsManager.Register(_variableName + ".xFull", FullChanged);
|
|
||||||
_adsManager.Register(_variableName + ".xOverload", OverloadChanged);
|
|
||||||
|
|
||||||
}
|
|
||||||
private void EmptyChanged(object? sender, ValueChangedEventArgs e)
|
|
||||||
{
|
|
||||||
Empty = (bool)e.Value;
|
|
||||||
}
|
|
||||||
private void FullChanged(object? sender, ValueChangedEventArgs e)
|
|
||||||
{
|
|
||||||
Full = (bool)e.Value;
|
|
||||||
}
|
|
||||||
private void OverloadChanged(object? sender, ValueChangedEventArgs e)
|
|
||||||
{
|
|
||||||
Overload = (bool)e.Value;
|
|
||||||
}
|
|
||||||
public void Dispose()
|
|
||||||
{
|
|
||||||
EmptyButton?.Dispose();
|
|
||||||
EmptyButton = null;
|
|
||||||
FillButton?.Dispose();
|
|
||||||
FillButton = null;
|
|
||||||
|
|
||||||
_adsManager?.Deregister(_variableName + ".xEmpty", EmptyChanged);
|
|
||||||
_adsManager?.Deregister(_variableName + ".xFull", FullChanged);
|
|
||||||
_adsManager?.Deregister(_variableName + ".xOverload", OverloadChanged);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
<UserControl x:Class="Common.ParamControlFloat"
|
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
||||||
xmlns:local="clr-namespace:Common"
|
|
||||||
d:DataContext="{d:DesignInstance Type=local:ParamControlFloatVm, IsDesignTimeCreatable=True}"
|
|
||||||
mc:Ignorable="d"
|
|
||||||
Width="Auto"
|
|
||||||
Height="Auto">
|
|
||||||
<!-- :DataContext="{d:DesignInstance Type=local:AnalogValueVM, IsDesignTimeCreatable=True}" -->
|
|
||||||
<!-- Style to see things in the designer-->
|
|
||||||
<d:DesignerProperties.DesignStyle>
|
|
||||||
<Style TargetType="UserControl">
|
|
||||||
<!-- Property="Background" Value="White" /> -->
|
|
||||||
<Setter Property="Height" Value="40" />
|
|
||||||
<Setter Property="Width" Value="280" />
|
|
||||||
</Style>
|
|
||||||
</d:DesignerProperties.DesignStyle>
|
|
||||||
<Grid Height="Auto">
|
|
||||||
<Grid.ColumnDefinitions>
|
|
||||||
<!-- <ColumnDefinition Width="Auto" /> -->
|
|
||||||
<ColumnDefinition Width="*" />
|
|
||||||
<ColumnDefinition Width="Auto" />
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
|
|
||||||
<!-- <Label Grid.Column="0" Content="{Binding SName}" VerticalAlignment="Center" HorizontalAlignment="Left"/> -->
|
|
||||||
<Label x:Name="tbName" Grid.Column="0" Content="{Binding SName, Mode=OneWay }" Width="200"/>
|
|
||||||
<TextBox x:Name="tbValue" Text="{Binding Value, Mode=TwoWay, StringFormat=N2}" Grid.Column="1" MaxLines="1" Width="80" HorizontalContentAlignment="Right" VerticalContentAlignment="Center" IsReadOnly="{Binding Readonly}" />
|
|
||||||
|
|
||||||
|
|
||||||
</Grid>
|
|
||||||
</UserControl>
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user