Files
OmagCUT/M_Num.vb
T
Emmanuele Sassi 5b647b0cde OmagCUT :
- Aggiunta comunicazione con il Flexium e classe astratta da cui eredita anche comunicazione Axium.
2015-11-06 10:59:21 +00:00

1236 lines
42 KiB
VB.net

Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Linq
Imports System.Text
Imports System.Windows.Forms
Namespace Num
Public Class NumNC
Inherits CN_generico
#Region " Classes"
#End Region
#Region " Enum"
Enum eDatatype As Short
tpUnknown = -1 ' -1 unknown ...
tpByte = 0 ' 0: signed byte - SINT8
tpUByte = 1 ' 1: unsigned byte - UINT8
tpShort = 2 ' 2: short integer - SINT16
tpUShort = 3 ' 3: unsigned short integer - UINT16
tpLong = 4 ' 4: long integer - SINT32
tpULong = 5 ' 5: unsigned long integer - UINT32
tpDouble = 6 ' 6: double floating point
tpByteMap = 7 ' 7: byte bitmap - read as UINT8, show as BOOL
tpWordMap = 8 ' 8: word bitmap - read as UINT16, show as BOOL
tpLongMap = 9 ' 9: long bitmap - read as UINT32, show as BOOL
tpLLong = 10 ' 10: 64 bits integer long
tpByteLongMap = 11 ' 11: long bitmap - read as UINT32, show as BYTE
End Enum
Enum eCnMode As Short
AutoM = 0
SingleM = 1
MDI = 2
Manual = 7
End Enum
#End Region
#Region " Num objects"
' Instance the FXServer object variables
Dim WithEvents objDRunTimeSystem As FXServer.DRunTimeSystem
Dim WithEvents objDGroupManager As FXServer.DGroupManager
Dim WithEvents objDReadELS As FXServer.DReadELS
Dim WithEvents objDPlcVariables As FXServer.DPlcVariables
Dim WithEvents objDVariables As FXServer.DVariables
Dim WithEvents objDReadTestExectime As FXServer.DReadTestExectime
Dim WithEvents objDPosition As FXServer.DPosition
Dim WithEvents objDNCKParameter As FXServer.DNCKParameter
Dim WithEvents objDMdiCommand As FXServer.DMdiCommand
Dim WithEvents objDMainCncData As FXServer.DMainCncData
Dim WithEvents objDNumDirectory As FXServer.DNumDirectory
Dim WithEvents objDInterpo As FXServer.DInterpo
Dim WithEvents objDGeneralFunctions As FXServer.DGeneralFunctions
Dim WithEvents objDFeedOverride As FXServer.DFeedOverride
Dim WithEvents objDReadSpindleComplete As FXServer.DReadSpindleComplete
Dim WithEvents objDFileTransfer As FXServer.DFileTransfer
Dim WithEvents objDTool As FXServer.DTool
'FXLib
Dim WithEvents objSystemFunctions As FXLib.SystemFunctions
Dim WithEvents objCncState As FXLib.CncState
'FXLog
Dim WithEvents objErrorHandler As FXLog.ErrorHandler
Dim WithEvents objConfig As FXLog.Config
#End Region
#Region " local var"
Private n_dTool_range_start As Short = 1
Private n_dTool_range_stop As Short = 2
#End Region
#Region " Constructor"
Sub New()
' Initialize and start Runtime System
InitFxServer()
End Sub
#End Region
#Region "Internal Methods"
' Init FXServer class DRunTimSystem
Private Sub InitFxServer()
n_state = 0
'Initialize the class DRunTimeSystem
objDRunTimeSystem = New FXServer.DRunTimeSystem()
objDRunTimeSystem.Init()
n_state = 1
While n_state < 2
System.Threading.Thread.Sleep(500) ' 0.5 sec wait
End While
sz_versionRTS = objDRunTimeSystem.GetVersionRTS
sz_ConnectionAddress = objDRunTimeSystem.GetConnectionAddress
sz_AffaireNumber = objDRunTimeSystem.GetAffaireNumber(1).ToString
End Sub
' Init FXServer classes for application
Private Sub InitFxObjects()
Dim n_ret As Short
'Initialize FXServer class DGroupManager
objDGroupManager = New FXServer.DGroupManager()
objDGroupManager.CncNumber = 0
objDGroupManager.AxisGroup = 0 ' seleziona gruppo assi CH1
'Initialize FXServer class DMdiCommand
objDMdiCommand = New FXServer.DMdiCommand()
objDMdiCommand.Init(objDGroupManager.Handle)
'Initialize FXServer class DMainCncData
objDMainCncData = New FXServer.DMainCncData()
objDMainCncData.Init(objDGroupManager.Handle)
'Initialize FXServer class DGeneralFunctions
objDGeneralFunctions = New FXServer.DGeneralFunctions()
objDGeneralFunctions.Init(objDGroupManager.Handle)
'Initialize FXServer class DFileTransfer
objDFileTransfer = New FXServer.DFileTransfer
objDFileTransfer.Init(objDGroupManager.Handle)
' --------'Initialize FXServer class DFeedOverride
' --------objDFeedOverride = New FXServer.DFeedOverride()
' --------objDFeedOverride.Init(objDGroupManager.Handle)
' Detect and identify the Flexium CNC type
sz_CncFxIdentifier = objDMainCncData.GetCncIdentifier()
' _txtGetCncIdentification.Invoke(DirectCast(Sub() _txtGetCncIdentification.Text = CncFxIdentifier, MethodInvoker))
If sz_CncFxIdentifier = "Flexium 6" OrElse sz_CncFxIdentifier = "Flexium 8" OrElse sz_CncFxIdentifier = "Flexium 68" Then
IsFlexiumPlus = False
Else
IsFlexiumPlus = True
End If
d_LinearAxisPrecision = CDbl(objDMainCncData.GetLinearPrecision())
'
' Initialize FXServer class DPosition
'
objDPosition = New FXServer.DPosition()
'--objDPosition.Flag = 0
'--objDPosition.ModeOP = 0
'--objDPosition.FastUpdate = 0 ' Disable FastUpdate=0 To show the refresh time by Flag > 0
objDPosition.Init(objDGroupManager.Handle)
'--objDPosition.FireValues()
n_validaxes = objDPosition.FireValidAxis()
'
' Initialize FXServer class DReadELS
'
'objDReadELS = New FXServer.DReadELS
'Metodi
'objDReadELS.Flag = 0
'objDReadELS.Init(objDGroupManager.Handle)
'objDReadELS.AddParameter("E80000", 1)
' objDReadELS.AddParameter("E80001", 2)
' objDReadELS.AddParameter("E80002", 3)
'objDReadELS.AddParameter("E70000", 2)
'objDReadELS.AddParameter("L100", 3)
'
' dall' esterno call ReadEls_Add_Parameter ( "E80000", 1 )
'
objDVariables = New FXServer.DVariables
objDVariables.Init(objDGroupManager.Handle, "E80000", 10) ' 10 variables
' short n_c = Convert.ToInt16(_Variables[9, 1].Text );
' short rc = objDVariables.WriteVariables2(2, objDGroupManager.Handle, "E80000", n_c); // era 60001
'Dim Paras() As String = New String(1) {"E80000", "E80001"}
'Dim Paras As String = "E80000;E80001"
'Dim Valus As Object
'Dim MyRnd As New Random
'Valus = MyRnd.Next(500) & ";" & MyRnd.Next(450, 1000)
'objDVariables.WriteVariables(objDGroupManager.Handle, Paras, Valus)
'
'Initialize FXServer class DInterpo
'
objDInterpo = New FXServer.DInterpo
objDInterpo.Init(objDGroupManager.Handle)
'Initialize FXServer class DReadSpindleComplete
' Only available with FX Server >= 3.9
' objDReadSpindleComplete.ValueChanged2 += new FXServer.IDReadSpindleCompleteEvents_ValueChanged2EventHandler(objDReadSpindleComplete_ValueChanged2);
objDReadSpindleComplete = New FXServer.DReadSpindleComplete
n_ret = objDReadSpindleComplete.Init(objDGroupManager.Handle)
' Initialize FXServer class DTool
objDTool = New FXServer.DTool
n_ret = objDTool.Init(objDGroupManager.Handle)
' Initialize FXLib SystemFunctions object
' --------objSystemFunctions = New FXLib.SystemFunctions()
' --------' objSystemFunctions.InitWindowsEvent()
' --------' Load Language Values to List
' --------objSystemFunctions.FireAllLanguages()
'Initialize FXLog Config Objects
' --------objConfig = New FXLog.Config()
' --------objConfig.Init()
' Initialize FXLog ErrorHandler Objects
' --------objErrorHandler = New FXLog.ErrorHandler()
' --------' Initialisation config for testing
' --------' Accepting all messages
' --------' Consult the documentation for detailed information
' --------objErrorHandler.AllError = 1
' --------objErrorHandler.ErrorGlobal = 0
' --------objErrorHandler.SetChannel(0, 0)
' --------objErrorHandler.AcceptBootSysMessage(1)
' --------objErrorHandler.AcceptException(0)
' Initialize FXLib CncState objects
' --------objCncState = New FXLib.CncState()
' --------objCncState.Init()
' Initializes FXServer Component DNumDirectory
' works with the zone 0 (Customer content)
' --------objDNumDirectory = New FXServer.DNumDirectory()
' --------objDNumDirectory.Init(objDGroupManager.Handle)
' --------objDNumDirectory.ReadMemorySize()
End Sub
' Close FXServer objects
Private Sub CloseFxObjects()
' FXServer classes without method Close() to close the object => possibilty
' FXServer objectvariable can dispose from memory by following procedure
' !!!!!!!!!!!! aggiungere release di tutti gli oggetti creati !!!!
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDGroupManager)
objDGroupManager = Nothing
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDMdiCommand)
objDMdiCommand = Nothing
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDMainCncData)
objDMainCncData = Nothing
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDGeneralFunctions)
objDGeneralFunctions = Nothing
' --------System.Runtime.InteropServices.Marshal.ReleaseComObject(objDFeedOverride)
' --------objDFeedOverride = Nothing
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDPosition)
objDPosition = Nothing
' --------System.Runtime.InteropServices.Marshal.ReleaseComObject(objDReadELS)
' --------objDReadELS = Nothing
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDVariables)
objDVariables = Nothing
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDInterpo)
objDInterpo = Nothing
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDReadSpindleComplete)
objDReadSpindleComplete = Nothing
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDTool)
objDTool = Nothing
' --------System.Runtime.InteropServices.Marshal.ReleaseComObject(objSystemFunctions)
' --------objSystemFunctions = Nothing
' --------System.Runtime.InteropServices.Marshal.ReleaseComObject(objConfig)
' --------objConfig = Nothing
' --------System.Runtime.InteropServices.Marshal.ReleaseComObject(objErrorHandler)
' --------objErrorHandler = Nothing
' --------System.Runtime.InteropServices.Marshal.ReleaseComObject(objCncState)
' --------objCncState = Nothing
' --------System.Runtime.InteropServices.Marshal.ReleaseComObject(objDNumDirectory)
' --------objDNumDirectory = Nothing
' FXServer dispose by the class method Close()
MessageBox.Show("CloseFxObjects")
End Sub
#End Region
#Region " Events"
#Region "-- FXServer -- DRunTimeSystem EVENTS"
'
' ' ------->> FXServer Event DRunTimeSystem ServerInitializationFinished
'
Private Sub objDRunTimeSystem_ServerInitializationFinished() Handles objDRunTimeSystem.ServerInitializationFinished
' Initialize the FXServer class for application
InitFxObjects()
sz_ServerInitStatus = "FXServer objects initialized !"
sz_ServerReinitStatus = "FXServer no objects closed !"
n_state = 2
End Sub
'
' ' ------->> FXServer Event DRunTimeSystem ServerReinitializationStarted
'
Private Sub objDRunTimeSystem_ServerReinitializationStarted() Handles objDRunTimeSystem.ServerReinitializationStarted
CloseFxObjects()
sz_ServerInitStatus = "FXServer objects closed !"
sz_ServerReinitStatus = "FXServer objects not initialized !"
n_state = 3
End Sub
'Private Delegate Sub _RTSWaitForInteraction(ByVal state As Short, ByVal question As Short, ByVal Cnc As Short, ByVal extAdr As Short, ByVal AddStrings As Object)
Private Sub objDRunTimeSystem_RTSWaitForInteraction(ByVal state As Short, ByVal question As Short, ByVal Cnc As Short, _
ByVal extAdr As Short, ByVal AddStrings As Object) Handles objDRunTimeSystem.RTSWaitForInteraction
End Sub
Private Sub objDRunTimeSystem_CncApplikationLoaded(ByVal value As Short) Handles objDRunTimeSystem.CncApplikationLoaded
'If Me.InvokeRequired Then
'Invoke(New CncApplikationLoaded(AddressOf objDRunTimeSystem_CncApplikationLoaded), value)
'Else
' lstData.Items.Add("CncApplikationLoaded--> " & value ' !!!!!!!!!!!!!!!!!!!!!!
'End If
End Sub
#End Region
#Region "-- FXServer -- DGroupManager EVENTS"
'
' ' ------->> FXServer Event DGroupManager ErrorHandler
'
Private Sub objDGroupManager_ErrorHandler(szError As String, nTextNumber As Short) Handles objDGroupManager.ErrorHandler
MessageBox.Show("DGroupManager.ErrorHandler message : " & szError & "ErrorHandler number : " & nTextNumber.ToString)
End Sub
#End Region
#Region "-- FXServer -- DGeneralFunctions EVENTS"
' ' ------->> FXServer Event GeneralFunctions ProgramActivated
Private Sub objDGeneralFunctions_ProgramActivated(nErrorcode As Short) Handles objDGeneralFunctions.ProgramActivated
n_activate_error_code = nErrorcode ' 0 = OK ; > 0 errorcode
End Sub
' ' ------->> FXServer Event GeneralFunctions OnCncStart
Private Sub objDGeneralFunction_OnCncStart(nErrorcode As Short) Handles objDGeneralFunctions.OnCncStart
End Sub
' ' ------->> FXServer Event GeneralFunctions OnCncStop
Private Sub objDGeneralFunction_OnCncStop(nErrorcode As Short) Handles objDGeneralFunctions.OnCncStop
End Sub
' ' ------->> FXServer Event GeneralFunctions OnCncReset
Private Sub objDGeneralFunction_OnCncReset(nErrorcode As Short) Handles objDGeneralFunctions.OnCncReset
End Sub
' ' ------->> FXServer Event GeneralFunctions CncModeWritten
Private Sub objDGeneralFunction_CncModeWritten(nErrorcode As Short) Handles objDGeneralFunctions.CncModeWritten
End Sub
' ' ------->> FXServer Event GeneralFunctions VariableWritten
Private Sub objDGeneralFunction_VariableWritten(nErrorcode As Short) Handles objDGeneralFunctions.VariableWritten
If nErrorcode <> 0 Then
MessageBox.Show("DGeneralFunctions.VariableWritten :" + " " + nErrorcode.ToString())
End If
End Sub
' ' ------->> FXServer Event GeneralFunctions OnCncStop
Private Sub objDGeneralFunction_OnSkipLevelWritten(iHandle As Integer, nErrorcode As Short) Handles objDGeneralFunctions.OnSkipLevelWritten
End Sub
#End Region
#Region "-- FXServer -- DFileTransfer EVENTS"
' ' ------->> FXServer Event DFileTransfer Completed
Private Sub objDFileTransfer_Completed(l_Handle As Integer) Handles objDFileTransfer.Completed
End Sub
' ' ------->> FXServer Event DFileTransfer TransferStarted
Private Sub objDFileTransfer_TransferStarted(l_Handle As Integer) Handles objDFileTransfer.TransferStarted
End Sub
' ' ------->> FXServer Event DFileTransfer Failed
Private Sub objDFileTransfer_Failed(l_Handle As Integer, n_seq As Short, n_reason As Short) Handles objDFileTransfer.Failed
End Sub
' ' ------->> FXServer Event DFileTransfer BytesTransfered
Private Sub objDFileTransfer_BytesTransfered(l_Handle As Integer, l_bytes As Integer) Handles objDFileTransfer.BytesTransfered
End Sub
#End Region
#Region "-- FXServer -- DFeedOverride EVENTS"
' ' ------->> FXServer Event GeneralFunctions ValueChanged
Private Sub objDFeedOverride_ValueChanged(vtArrayIndex As Object, vtArrayValue As Object) Handles objDFeedOverride.ValueChanged
Dim n As Short, ni As Short
Dim index() As Object
Dim values() As Object
index = vtArrayIndex
values = vtArrayValue
For n = 0 To index.Length - 1
ni = CInt(index(n))
l_channel_override(ni) = CLng(values(n))
Next
b_feed_override_changed = True
End Sub
#End Region
#Region "-- FXServer -- DPosition EVENTS"
'
' ' ------->> FXServer Event DPosition PositionChanged
'
Private Sub objDposition_PositionChanged(vtArrayIndex As Object, vtArrayValue As Object) Handles objDPosition.PositionChanged
Dim n As Short, ni As Short
Dim index() As Object
Dim values() As Object
index = vtArrayIndex
values = vtArrayValue
For n = 0 To index.Length - 1
ni = CInt(index(n))
d_axis_position(ni) = CDbl(CLng(values(n))) / d_LinearAxisPrecision
Next
If b_axis_events_enable Then MyBase.OnNewPositionData()
End Sub
Private Sub objDPosition_DeltaChanged(vtArrayIndex As Object, vtArrayValue As Object) Handles objDPosition.DeltaChanged
Dim n As Short, ni As Short
Dim index() As Object
Dim values() As Object
index = vtArrayIndex
values = vtArrayValue
For n = 0 To index.Length - 1
ni = CInt(index(n))
d_axis_delta(ni) = CDbl(CLng(values(n))) / d_LinearAxisPrecision
Next
If b_axis_events_enable Then MyBase.OnNewPosDeltaData()
End Sub
Private Sub objDPosition_EndposChanged(vtArrayIndex As Object, vtArrayValue As Object) Handles objDPosition.EndposChanged
End Sub
Private Sub objDPosition_OffsetChanged(vtArrayIndex As Object, vtArrayValue As Object) Handles objDPosition.OffsetChanged
End Sub
Private Sub objDPosition_ValidAxisChanged(vtArrayIndex As Object, vtArrayValue As Object) Handles objDPosition.ValidAxisChanged
Dim n As Short, ni As Short
Dim valid_i() As Object
Dim valid_v() As Object
valid_i = vtArrayIndex
valid_v = vtArrayValue
For n = 0 To valid_i.Length - 1
ni = CInt(valid_v(n))
If ni = 0 Then
b_axis_valid(n) = False
Else
b_axis_valid(n) = True
End If
Next
End Sub
Private Sub objDPosition_ValuesChanged(vtArrayIndex As Object, vtArrayValue As Object) Handles objDPosition.ValuesChanged
End Sub
Private Sub objDPosition_ReadOncePositionChanged(lHandle As Integer, vtArrayValue As Object) Handles objDPosition.ReadOncePositionChanged
End Sub
Private Sub objDPosition_ReadOnceDeltaChanged(lHandle As Integer, vtArrayValue As Object) Handles objDPosition.ReadOnceDeltaChanged
End Sub
#End Region
#Region "-- FXServer -- DReadELS EVENTS"
''
'' ATTENZIONE : vengono sparati tutti e 3 gli eventi..... tenerne 1 solo !!! !!! !!!
''
#Region " smorto"
#If False Then
Private Sub objDReadELS_ValueChanged(ByVal nHandle As Short, ByVal dValue As Double, ByVal nErrorcode As Short) Handles objDReadELS.ValueChanged
Dim sza As String
If (nHandle < 1 Or nHandle > MAX_VALUES) Then
MsgBox(" Invalid handle in Validchanged : " + nHandle.ToString)
Exit Sub
End If
If (nErrorcode <> 0) Then MsgBox(" Error in Validchanged : " & nErrorcode.ToString + " Handle : " + nHandle.ToString)
Try
sza = dValue.ToString
Catch Ex As Exception
MsgBox(Ex.Message)
End Try
End Sub
#End If
#End Region
Private Sub objDReadELS_ValueChanged2(nHandle As Integer, dValue As Double, nerrorCode As Short) Handles objDReadELS.ValueChanged2
If (nHandle < 1 Or nHandle > MAX_VALUES) Then
MsgBox(" Invalid handle in Validchanged2 : " + nHandle.ToString)
Exit Sub
End If
If (nerrorCode <> 0) Then MsgBox(" Error in Validchanged2 : " & nerrorCode.ToString + " Handle : " + nHandle.ToString)
Try
d_DReadELS_value = dValue
n_DReadELS_handle = nHandle
Catch Ex As Exception
MsgBox(Ex.Message)
End Try
End Sub
#Region " smorto"
#If False Then
' Only for FX Server >= 3.9.0.0
' poi in realt ritorna sempre tipo = -1 per cui eguale alle altre.....
Private Sub objDReadELS_ValueChanged3(nHandle As Integer, value As Object, DataType As Short, Writable As Short, nerrorCode As Short) Handles objDReadELS.ValueChanged3
Dim edata_type As eDatatype
Dim sValue As String
edata_type = DataType
If (nHandle < 1 Or nHandle > MAX_VALUES) Then
MsgBox(" Invalid handle in Validchanged3 : " + nHandle.ToString)
Exit Sub
End If
If (nerrorCode <> 0) Then MsgBox(" Error in Validchanged3 : " & nerrorCode.ToString + " Handle : " + nHandle.ToString)
Try
Select Case (edata_type)
Case eDatatype.tpByte ' tpByte : signed byte - SINT8
sValue = CType(value, SByte).ToString
Case eDatatype.tpUByte ' tpUByte : unsigned byte - UINT8
sValue = CType(value, Byte).ToString
Case eDatatype.tpShort ' tpShort : short integer - SINT16
sValue = CType(value, Short).ToString
Case eDatatype.tpUShort ' tpUShort 3: unsigned short integer - UINT16
sValue = CType(value, UShort).ToString
Case eDatatype.tpLong ' tpLong : long integer - SINT32
sValue = CType(value, Integer).ToString
Case eDatatype.tpULong ' tpULong : unsigned long integer - UINT32
sValue = CType(value, UInteger).ToString
Case eDatatype.tpDouble ' tpDouble : double floating point - DOUBLE
sValue = CType(value, Double).ToString
Case eDatatype.tpByteMap ' tpByteMap : byte bitmap - read as UINT8, show as BOOL
sValue = CType(value, Byte).ToString
Case eDatatype.tpWordMap ' tpWordMap : word bitmap - read as UINT16, show as BOOL
sValue = CType(value, UShort).ToString
Case eDatatype.tpLongMap ' tpLongMap : long bitmap - read as UINT32, show as BOOL
sValue = CType(value, UInteger).ToString
Case eDatatype.tpLLong ' tpLLong : 64 bits integer long
sValue = CType(value, Long).ToString
Case eDatatype.tpByteLongMap ' tpByteLongMap : long bitmap - read as UINT32, show as BYTE
sValue = CType(value, UInteger).ToString
Case eDatatype.tpUnknown ' for flexium standard we receive No datatype .. we assume it is ???? bug ... we don't know ...
sValue = value.ToString()
Case Else
sValue = String.Empty
MsgBox("objDReadELS_ValueChanged3() : Unknown Datatype !")
End Select
Catch Ex As Exception
MsgBox("objDReadELS_ValueChanged3 " & Ex.Message + " Handle : " + nHandle.ToString)
End Try
End Sub
#End If
#End Region
#End Region
#Region "-- FXServer -- DVariables EVENTS"
Private Sub objDVariables_ValueChanged(vtArrayIndex As Object, vtArrayValues As Object) Handles objDVariables.ValueChanged2
Dim n As Short, ni As Short
Dim index() As Object
Dim values() As Object
index = vtArrayIndex
values = vtArrayValues
If IsFlexiumPlus Then Exit Sub ' This event should not be used for Flexium plus as it returns wrong datatype .. (int instead of double for example)
For n = 0 To index.Length - 1
ni = CInt(index(n))
d_Dvariable_values(ni) = CDbl(CLng(values(n)))
Next
If b_axis_events_enable Then MyBase.OnNewVarChanged()
End Sub
Private Sub objDVariables_ValueChanged2(vtArrayIndex As Object, vtArrayValues As Object) Handles objDVariables.ValueChanged
'
' probabilmente evento non sparato nei flexium non plus.....
'
End Sub
Private Sub objDVariables_VariableWritten(nErrorCode As Short) Handles objDVariables.VariableWritten
If (nErrorCode <> 0) Then
MsgBox(" Error in objDVariables_VariableWritten2 : " & nErrorCode.ToString)
Else
' mettere qualcosa per il completamento ok della scrittura
b_Dvariable_changed = True
End If
End Sub
Private Sub objDVariables_VariableWritten2(lHandle As Integer, nErrorCode As Short) Handles objDVariables.VariableWritten2
If (lHandle <> 2 Or nErrorCode <> 0) Then
MsgBox(" Error in objDVariables_VariableWritten2 : " & nErrorCode.ToString + " Handle : " + lHandle.ToString)
Else
' mettere qualcosa per il completamento ok della scrittura
b_Dvariable_changed = True
End If
End Sub
#End Region
#Region "-- FXServer -- DInterpo EVENTS"
'
' ' ------->> FXServer Event DInterpo MemorySize
'
Private Sub objDInterpo_ValuesChanged(vtArrayValue As Object) Handles objDInterpo.ValuesChanged
'0 = "Interpolation speed", 1= "Not used", 2 = "Distance to go", 3 = "Programmed feedrate", 4 = "Feed override [%]"
Dim n As Short
Dim values() As Object
values = vtArrayValue
For n = 0 To values.Length - 1
d_DInterpo_values(n) = CDbl(CLng(values(n)))
Next
d_DInterpo_Prog_Feed = d_DInterpo_values(3)
d_DInterpo_Feed_override = d_DInterpo_values(4)
b_feed_override_changed = True
End Sub
#End Region
#Region "-- FXServer -- DReadSpindleComplete EVENTS"
'
' ' ------->> FXServer Event DReadSpindleComplete ValueChanged
'
Private Sub objDReadSpindleComplete_ValueChanged(vtArrayIndex As Object, vtArrayValue As Object) Handles objDReadSpindleComplete.ValueChanged
Dim n As Short, n_spindle As Short, n_info As Short
Dim index() As Object
Dim values() As Object
index = vtArrayIndex
values = vtArrayValue
For n = 0 To index.Length - 1
n_spindle = CShort(index(n) \ 10)
n_info = CShort(index(n) Mod 10)
If (n_spindle > (MAX_VALUES - 1) Or n_info > 10) Then Exit For
Select Case n_info
Case 2 ' % override
n_spindle_override(n_spindle) = CShort(values(n))
Case 3 ' prog speed
d_spindle_prog(n_spindle) = CDbl(values(n))
Case 4 ' meas. speed
d_spindle_eff(n_spindle) = CDbl(values(n))
Case Else
End Select
'ni = CInt(index(n))
'd_axis_position(ni) = CDbl(CLng(values(n)))
Next
b_spindle_data_changed = True
End Sub
#End Region
#Region "-- FXServer -- DTool EVENTS"
'
' ' ------->> FXServer Event DTool ToolDataChanged
'
Private Sub objDTool_ToolDataChanged(vtArrayIndex As Object, vtArrayValue As Object) Handles objDTool.ToolDataChanged
' Read the change of the Tools data
Dim n As Short, n_tool As Short, n_data As Short, l_value As Long, nt As Short
Dim index() As Object
Dim values() As Object
index = vtArrayIndex
values = vtArrayValue
For n = 0 To index.Length - 1
Try
n_tool = CShort(index(n) \ 10)
n_data = CShort(index(n) Mod 10)
nt = n_tool - n_dTool_range_start
l_value = CLng(values(n))
If (n_tool < n_dTool_range_start Or n_tool > n_dTool_range_stop Or n_data > 7) Then Continue For
Select Case n_data
Case 0 ' Tool type ( Mill / lathe )
If l_value = 0 Then
Tools(nt).type = "M"
Else
Tools(nt).type = "L"
End If
Case 1 ' lenght / X
Tools(nt).lenght = CDbl(l_value) / 1000.0
Case 2 ' radius / Z
Tools(nt).radius = CDbl(l_value) / 1000.0
Case 3 ' Cut radius / Cut tip
Tools(nt).tip = CDbl(l_value) / 1000.0
Case 4 ' D lenght
Tools(nt).D_lenght = CDbl(l_value) / 1000.0
Case 5 ' D_radius
Tools(nt).D_radius = CDbl(l_value) / 1000.0
Case 6 ' nose dir
Tools(nt).nose_dir = "C" & (l_value).ToString
Case 7 ' toolcom
Tools(nt).comp_num = CShort(l_value)
Case Else
End Select
Catch ex As Exception
MsgBox(" Error in objDTool_ToolDataChanged : " & ex.Message)
End Try
Next
b_Tool_data_changed = True
End Sub
'
' ' ------->> FXServer Event DTool ToolDataWritten
'
Private Sub objDTool_ToolDataWritten(l_Handle As Integer, n_error_code As Short) Handles objDTool.ToolDataWritten
If l_Handle <> 1 Or n_error_code <> 0 Then
MessageBox.Show("Error: objDTool_ToolDataWritten handle : " & l_Handle.ToString & " error : " & n_error_code.ToString())
End If
End Sub
'
' ' ------->> FXServer Event DTool DynamicToolDataWritten
'
Private Sub objDTool_DynamicToolDataWritten(l_Handle As Integer, n_error_code As Short) Handles objDTool.DynamicToolDataWritten
If l_Handle <> 2 Or n_error_code <> 0 Then
MessageBox.Show("Error: objDTool_DynamicToolDataWritten handle : " & l_Handle.ToString & " error : " & n_error_code.ToString())
End If
End Sub
#End Region
#Region "-- FXServer -- DNumDirectory EVENTS"
'
' ' ------->> FXServer Event DNumDirectory MemorySize
'
Private Sub objDNumDirectory_MemorySize(vtArrayIndex As Object, vtArrayValue As Object) Handles objDNumDirectory.MemorySize
End Sub
#End Region
#Region "-- FXServer -- DMdiCommand EVENTS"
'
' ------->> FXServer Event DMdiCommand CommandWritten
'
Private Sub objDMdiCommand_CommandWritten(retVal As Short) Handles objDMdiCommand.CommandWritten
'throw new NotImplementedException();
If retVal <> 0 Then
MessageBox.Show("Error CommandWritten :" + " " + retVal.ToString())
End If
sz_ManualDataInput = ""
End Sub
#End Region
#Region "-- FXLog -- ErrorHandler EVENTS"
'
' ' ------->> FXLog Event ErrorHandler ErrorOnCnc .....
'
Private Sub objErrorHandler_ErrorOnCnc(cnc As Short, channel As Short, nset As Short) Handles objErrorHandler.ErrorOnCnc
End Sub
Private Sub objErrorHandler_ErrorOnOtherChannel(status As Short) Handles objErrorHandler.ErrorOnOtherChannel
End Sub
Private Sub objErrorHandler_Exception(status As Short) Handles objErrorHandler.Exception
End Sub
Private Sub objErrorHandler_ErrorFromActiveCnc2 _
(CncNumber As Short, numberOfError As Short, ErrorTyp As Object, ErrorIndex As Object, ErrorNumber As Object, ErrorLine As Object, ErrorMessage As Object, ErrorAdditional As Object) _
Handles objErrorHandler.ErrorFromActiveCnc2
End Sub
#End Region
#Region "-- FXLib -- SystemFunctions EVENTS"
'
' ' ------->> FXLib Event SystemFunctions LanguageData
'
Private Sub objSystemFunctions_LanguageData(index As Short, shortName As String, languageName As String) Handles objSystemFunctions.LanguageData
End Sub
#End Region
#Region "-- FXLib -- CncState EVENTS"
'
' ' ------->> FXLib Event CncState ConfigUpdated ....
'
Private Sub objCncState_ConfigUpdated() Handles objCncState.ConfigUpdated
End Sub
Private Sub objCncState_ValueChanged(nc As Short, Variable As String, value As Integer) Handles objCncState.ValueChanged
End Sub
Private Sub objCncState_NotHomed(nc As Short, value As Integer) Handles objCncState.NotHomed
End Sub
Private Sub objCncState_IndependentChannels(nc As Short, indep As Short) Handles objCncState.IndependentChannels
End Sub
Private Sub objCncState_HMIValueChange(var As String, value As Integer) Handles objCncState.HMIValueChange
End Sub
#End Region
#End Region
#Region " Metodi pubblici"
Public Overrides Sub ReadEls_Add_Parameter(sz_var As String, n_par As Short)
Call objDReadELS.AddParameter(sz_var, n_par)
End Sub
'
'
' call DVariables_WriteVariables("E80000;E80001" , "1;2" )
Public Overrides Sub DVariables_WriteVariables(sz_parameters As String, sz_values As String)
Dim Valus As Object = sz_values
Dim n_ret As Short
n_ret = objDVariables.WriteVariables(objDGroupManager.Handle, sz_parameters, Valus)
End Sub
Public Overrides Sub DVariables_WriteVariables2(sz_parameters As String, sz_values As String)
Dim Valus As Object = sz_values
objDVariables.WriteVariables2(2, objDGroupManager.Handle, sz_parameters, Valus)
End Sub
Public Overrides Sub MDI_command()
Dim n_ret As Int16 = objDMdiCommand.ExecuteCommand(sz_ManualDataInput)
If n_ret <> 0 Then
MessageBox.Show("Error Execute MDI Command :" + " " + n_ret.ToString())
End If
End Sub
'
' Activate program
' returns 0 = OK ; > 0 error
'
Public Overrides Function ActivateProgram(n_part_program As Integer) As Int16
Dim l_glbPartProgramNumber As Long, n_ret As Short
l_glbPartProgramNumber = Convert.ToInt32(n_part_program)
l_glbPartProgramNumber = l_glbPartProgramNumber * 10
n_ret = objDGeneralFunctions.ActivateProgram(l_glbPartProgramNumber, 0)
Return n_ret
End Function
'
' Set DPOsition Mode OP/OM
'
Public Overrides Sub set_OP_OM(n As Short)
objDPosition.ModeOP = n
End Sub
'
' Read Once position
' returns 0 = OK ; > 0 error
'
Public Overrides Function DPOsition_ReadOnce() As Int16
Return objDPosition.ReadOnce(1, objDGroupManager.Handle, objDPosition.ModeOP)
End Function
'
' Set Cycle Start
'
Public Overrides Function DGeneralFunctions_CycleStart() As Int16
objDGeneralFunctions.CncStart()
End Function
'
' Set Feed Hold
'
Public Overrides Function DGeneralFunctions_FeedHold() As Int16
objDGeneralFunctions.CncStop()
End Function
'
' Set NC Reset
'
Public Overrides Function DGeneralFunctions_Reset() As Int16
objDGeneralFunctions.CncReset()
End Function
Public Overrides Function DGeneralFunctions_WriteCncMode(nmode As Short) As Int16
Dim ngroup0 As Short = 0
Call objDGeneralFunctions.WriteCncMode(nmode, ngroup0)
End Function
Public Overrides Function Write_var_1(sz_par As String, lvalue As Long) As Int16
Dim n_ret As Short
n_ret = objDGeneralFunctions.WriteVariable(sz_par, lvalue)
If n_ret <> 0 Then MsgBox("error from objDGeneralFunctions.WriteVariable" & n_ret.ToString)
End Function
'
' da PC a CN
'
Public Overrides Function Download_NC_prog(sz_PC_filename As String, sz_NC_filename As String) As Int16
Dim n_ret As Short
Dim n_FileDelete As Short = 1, n_IgnoreMsgZone As Short = 0
Dim lHandle As Long = 10 ' ??
n_ret = objDFileTransfer.FileDownload2(lHandle, sz_NC_filename, sz_PC_filename, "", n_FileDelete, n_IgnoreMsgZone)
If n_ret <> 0 Then MessageBox.Show("Error: FileDownload2 error : " & n_ret.ToString())
Return n_ret
End Function
'
' da CN a pc
'
Public Overrides Function Upload_NC_prog(sz_PC_filename As String, sz_NC_filename As String) As Int16
Dim n_ret As Short
Dim lHandle As Long = 20 ' ??
n_ret = objDFileTransfer.FileUpload(lHandle, sz_NC_filename, sz_PC_filename, "")
If n_ret <> 0 Then MessageBox.Show("Error: FileUpload error : " & n_ret.ToString())
Return n_ret
End Function
Public Overrides Function Delete_NC_prog(sz_NC_filename As String) As Int16
Dim n_ret As Short
Dim lHandle As Long = 20 ' ??
n_ret = objDFileTransfer.FileDelete(lHandle, sz_NC_filename, "")
If n_ret <> 0 Then MessageBox.Show("Error: FileDelete error : " & n_ret.ToString())
Return n_ret
End Function
Public Overrides Function Start_Transfer_NC_prog() As Int16
Dim n_ret As Short
n_ret = objDFileTransfer.StartTransfer()
If n_ret <> 0 Then MessageBox.Show("Error: StartTransfer error : " & n_ret.ToString())
Return n_ret
End Function
Public Overrides Function DTool_set_read_range(n_start As Short, n_stop As Short) As Short
Dim n_ret As Short
n_dTool_range_start = n_start
n_dTool_range_stop = n_stop
n_ret = objDTool.SetToolRange(n_start, n_stop)
If n_ret <> 0 Then MessageBox.Show("Error: DTool_set_red_range error : " & n_ret.ToString())
Return n_ret
End Function
Public Overrides Function DTool_write_tool(n_tool_number As Short, Length_X As Double, Radius As Double, TipRadius_Z As Double, _
DLength_X As Double, DTipRadius_Z As Double, _
nDirection As Short, nType As Short, nH As Integer) As Short
Dim n_ret As Short, l_handle As Long = 1
n_ret = objDTool.WriteToolCorr2(n_tool_number, (Length_X * 1000.0), (Radius * 1000.0), (TipRadius_Z * 1000.0), (DLength_X * 1000.0), (DTipRadius_Z * 1000.0), _
nDirection, nType, nH, objDTool.Flag, l_handle)
If n_ret <> 0 Then MessageBox.Show("Error: DTool_write_tool error : " & n_ret.ToString())
Return n_ret
End Function
#End Region
End Class
End Namespace