From 61aee83181ad749f4f6a9d7965106c62081d599e Mon Sep 17 00:00:00 2001 From: Nicola Pievani Date: Fri, 21 May 2021 16:47:06 +0200 Subject: [PATCH 1/4] Nuovi pulsanti NUM --- Constants/ConstMachIni.vb | 6 ++ DirectCuts/DirectCutPageUC.xaml | 27 ++++++- DirectCuts/DirectCutPageUC.xaml.vb | 116 ++++++++++++++++++++++++++- Machine/MachineCNPageUC.xaml | 20 ++++- Machine/MachineCNPageUC.xaml.vb | 78 ++++++++++++++++++ MainWindow.xaml.vb | 2 +- NcComm/CNCommunication.vb | 29 ++++++- NcComm/CN_generico.vb | 15 +++- NcComm/M_Num.vb | 10 +++ Project/CurrentProjectPageUC.xaml.vb | 24 +++--- 10 files changed, 305 insertions(+), 22 deletions(-) diff --git a/Constants/ConstMachIni.vb b/Constants/ConstMachIni.vb index 354f9a3..1e7d119 100644 --- a/Constants/ConstMachIni.vb +++ b/Constants/ConstMachIni.vb @@ -44,6 +44,7 @@ Public Const S_NCDATA As String = "NcData" Public Const K_NEWVARIABLE As String = "NewVariable" + Public Const K_NEWCONSOLE As String = "NewConsole" Public Const K_COMM As String = "Comm" Public Const K_REFRESH As String = "Refresh" Public Const K_MODE As String = "Mode" @@ -98,7 +99,12 @@ Public Const K_VACUUMOFF As String = "VacuumOff" Public Const K_BYPASSTATE As String = "BypassState" Public Const K_FEEDHOLD As String = "FeedHold" + ' Nuove variabili Public Const K_SPEEDHOLD As String = "SpeedHold" + Public Const K_XYAXES As String = "XYAxes" + Public Const K_ZAXES As String = "ZAxes" + Public Const K_BCAXES As String = "BCAxes" + Public Const K_POWERON As String = "PowerON" Public Const S_PRODUCTIONLINE As String = "ProductionLine" Public Const K_ACTIVE As String = "Active" diff --git a/DirectCuts/DirectCutPageUC.xaml b/DirectCuts/DirectCutPageUC.xaml index e1cafd9..308d8ed 100644 --- a/DirectCuts/DirectCutPageUC.xaml +++ b/DirectCuts/DirectCutPageUC.xaml @@ -94,7 +94,10 @@ - + + + + @@ -108,8 +111,26 @@ Style="{DynamicResource OmagCut_GradientYellowIconToggleButton}"> - - diff --git a/DirectCuts/DirectCutPageUC.xaml.vb b/DirectCuts/DirectCutPageUC.xaml.vb index a8db894..75c7a96 100644 --- a/DirectCuts/DirectCutPageUC.xaml.vb +++ b/DirectCuts/DirectCutPageUC.xaml.vb @@ -36,6 +36,9 @@ Public Class DirectCutPageUC ' Indica che la finestra del talio Singolo deve essere di tipo manuale Friend m_bManulaCut As Boolean = False + ' elenco dei nuovi bottoni + Private m_ButtonAxesList As New List(Of MachineButton) + Enum DirectCutPages DirectCut ManualAxesMove @@ -106,11 +109,59 @@ Public Class DirectCutPageUC FlatteningCutBtn.Content = EgtMsg( 90206) PolishingBtn.Content = EgtMsg( 90231) CopyTemplateBtn.Content = EgtMsg( 90209) - SawTestBtn.Content = EgtMsg( 90207) + SawTestBtn.Content = EgtMsg(90207) + ' nuovi bottoni 20/05/2021 + If GetPrivateProfileInt(S_NCDATA, K_NEWCONSOLE, 0, m_MainWindow.GetMachIniFile()) = 1 Then + XYBtn.Content = "X - Y" + ZBtn.Content = "Z" + BCBtn.Content = "B - C" + Else + XYBtn.Visibility = Visibility.Collapsed + ZBtn.Visibility = Visibility.Collapsed + BCBtn.Visibility = Visibility.Collapsed + End If + End Sub Private Sub DirectCutPage_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded + '------ NUOVI BOTTONI ---------- + ' Lettura configurazione bottoni (per impostare l'uso del Joystick) da Ini di macchina + m_ButtonAxesList.Clear() + Dim m_nCount As Integer = 1 + Dim bFoundBtn As Boolean = True + While bFoundBtn + Dim sNameBtn As String = K_BUTTON & (m_nCount).ToString() + Dim sMachineButtonType As String = String.Empty + Dim sTImageName As String = String.Empty + Dim sTLuaScriptName As String = String.Empty + Dim sFImageName As String = String.Empty + Dim sFLuaScriptName As String = String.Empty + Dim sStateFlag As String = String.Empty + bFoundBtn = m_ControlsMachineButton.GetPrivateProfileMachineButtons("AxesButtons", sNameBtn, sMachineButtonType, sTImageName, sTLuaScriptName, sFImageName, sFLuaScriptName, sStateFlag, m_MainWindow.GetMachIniFile()) + If bFoundBtn Then + m_nCount += 1 + Dim ButtonToAdd As MachineButton = Nothing + ' la selezione dei comandi si trova nella pagina m_ControlsMachineButton.MachineButtonType (tipo Enum) + Select Case sMachineButtonType + Case 1 + ButtonToAdd = New NoStateButton(sTImageName, sTLuaScriptName, sFImageName, sFLuaScriptName, sStateFlag) + Case 2 + ButtonToAdd = New TwoStateButton(sTImageName, sTLuaScriptName, sFImageName, sFLuaScriptName, sStateFlag) + Case 3 + ButtonToAdd = New ThreeStateButton(sTImageName, sTLuaScriptName, sFImageName, sFLuaScriptName, sStateFlag) + Case 4 + ButtonToAdd = New DoubleCommandButton(sTImageName, sTLuaScriptName, sFImageName, sFLuaScriptName, sStateFlag) + Case 5 + ButtonToAdd = New PressedCommandButton(sTImageName, sTLuaScriptName, sFImageName, sFLuaScriptName, sStateFlag) + End Select + If Not IsNothing(ButtonToAdd) Then + m_ButtonAxesList.Add(ButtonToAdd) + End If + End If + End While + ' lo stato di questi comandi vieni carico dalla lettura del PLC (refresh) + '-----------NUOVI BOTTONI------------ ' Se rientro da simulazione If m_ActiveDirectCutPage = DirectCutPages.SingleCut Then LeftButtonGrid.Children.Add(m_SingleCut) @@ -152,7 +203,7 @@ Public Class DirectCutPageUC MultipleCutBtn.IsEnabled = bRawOk GridCutBtn.IsEnabled = bRawOk FlatteningCutBtn.IsEnabled = bRawOk - PolishingBtn.IsEnabled = ( bRawOk And m_MainWindow.m_CurrentMachine.bPolishing) + PolishingBtn.IsEnabled = (bRawOk And m_MainWindow.m_CurrentMachine.bPolishing) SawTestBtn.IsEnabled = bRawOk ' Nascondo i pezzi in parcheggio @@ -258,6 +309,67 @@ Public Class DirectCutPageUC End If End Sub + Private Sub XYBtn_Click(sender As Object, e As RoutedEventArgs) Handles XYBtn.Click + Dim XYAxesButton As MachineButton = m_ButtonAxesList(0) + ' eseguo lo script lua associato + XYAxesButton.ExecuteMDICommand(XYAxesButton.TLuaScriptName) + ' che comunica al PLC di cambiare lo stato, la modifica dello stato è intercettata dalla funzione Refresh che avvia il metodo Changed + End Sub + + Friend Sub XYAxesChanged(bXYAxes As Boolean) + ' devo decodificare il tipo di pulsante, quindi eseguire la conversione... + Dim XYAxesButton As TwoStateButton = Nothing + For Each MachineButton In m_ButtonAxesList + If MachineButton.StateFlag = "XYAxes" Then + XYAxesButton = MachineButton + End If + Next + If Not IsNothing(XYAxesButton) Then + XYAxesButton.SetIsChecked(bXYAxes) + XYBtn.IsChecked = bXYAxes + End If + End Sub + + Private Sub ZBtn_Click(sender As Object, e As RoutedEventArgs) Handles ZBtn.Click + Dim ZAxesButton As MachineButton = m_ButtonAxesList(1) + ' eseguo lo script lua associato + ZAxesButton.ExecuteMDICommand(ZAxesButton.TLuaScriptName) + End Sub + + Friend Sub ZAxesChanged(bZAxes As Boolean) + ' devo decodificare il tipo di pulsante, quindi eseguire la conversione... + Dim ZAxesButton As TwoStateButton = Nothing + For Each MachineButton In m_ButtonAxesList + If MachineButton.StateFlag = "ZAxes" Then + ZAxesButton = MachineButton + End If + Next + If Not IsNothing(ZAxesButton) Then + ZAxesButton.SetIsChecked(bZAxes) + ZBtn.IsChecked = bZAxes + End If + End Sub + + Private Sub BCBtn_Click(sender As Object, e As RoutedEventArgs) Handles BCBtn.Click + Dim BCAxesButton As MachineButton = m_ButtonAxesList(2) + ' eseguo lo script lua associato + BCAxesButton.ExecuteMDICommand(BCAxesButton.TLuaScriptName) + End Sub + + Friend Sub BCAxesChanged(bBCAxes As Boolean) + ' devo decodificare il tipo di pulsante, quindi eseguire la conversione... + Dim BCAxesButton As TwoStateButton = Nothing + For Each MachineButton In m_ButtonAxesList + If MachineButton.StateFlag = "BCAxes" Then + BCAxesButton = MachineButton + End If + Next + If Not IsNothing(BCAxesButton) Then + BCAxesButton.SetIsChecked(bBCAxes) + BCBtn.IsChecked = bBCAxes + End If + End Sub + Private Sub MachViewModeBtn_Click(sender As Object, e As RoutedEventArgs) Handles MachViewModeBtn.Click If m_bShowMachine Then ' aggiorno lo stato diff --git a/Machine/MachineCNPageUC.xaml b/Machine/MachineCNPageUC.xaml index 96de89e..045b31c 100644 --- a/Machine/MachineCNPageUC.xaml +++ b/Machine/MachineCNPageUC.xaml @@ -49,7 +49,7 @@ - + @@ -82,7 +82,7 @@ - @@ -107,6 +107,22 @@ + + + + + + + +