760 lines
31 KiB
VB.net
760 lines
31 KiB
VB.net
Imports EgtBEAMWALL.Core.ConstMachComm
|
|
Imports EgtUILib
|
|
Imports EgtWPFLib5
|
|
|
|
Public Class NUMAxiumComm
|
|
|
|
Enum CNMode As Integer
|
|
AUTO = 0
|
|
SINGLE_ = 1
|
|
MDI = 2
|
|
MANUAL = 7
|
|
End Enum
|
|
|
|
Private m_MachManaging As MachManaging
|
|
Friend ReadOnly Property MachManaging As MachManaging
|
|
Get
|
|
Return m_MachManaging
|
|
End Get
|
|
End Property
|
|
|
|
Public ReadOnly Property bIsTransferActive As Boolean
|
|
Get
|
|
Return If(Not IsNothing(objDFileTransfer), objDFileTransfer.IsTransferActive(), False)
|
|
End Get
|
|
End Property
|
|
|
|
'Private objDRunTimeSystem As FXServer.DRunTimeSystem
|
|
Private WithEvents objDGroupManager As APServer.DGroupManager
|
|
Private WithEvents objDGeneralFunction As APServer.DGeneralFunctions
|
|
Private WithEvents objDMainCncData As APServer.DMainCncData
|
|
Private WithEvents objErrorHandler As APLog.ErrorHandler
|
|
Private WithEvents objDReadELS As APServer.DReadELS
|
|
Private WithEvents objDReadPlcVarList As APServer.DReadPlcVarList
|
|
Private WithEvents objDFileTransfer As APServer.DFileTransfer
|
|
Private WithEvents objDPosition As APServer.DPosition
|
|
Private WithEvents objDMdiCommand As APServer.DMdiCommand
|
|
Private WithEvents objDVariables As APServer.DVariables
|
|
Private WithEvents objDCncMode As APServer.DCncMode
|
|
Private WithEvents objDReadOperatorMessage As APServer.DReadOperatorMessage
|
|
|
|
Private m_CNCVersion As String = ""
|
|
Private _PartProgramNumber As Single
|
|
Private _CNCAxisChannelArray As String() = New String() {"Channel 1", "Channel 2"}
|
|
Private m_ChannelList As New List(Of String)
|
|
' Arraylist for read out the messages
|
|
Private m_ReadFXMessages As New List(Of ReadMessages)
|
|
Private m_ReadOperatorMessages As New List(Of ReadMessages)
|
|
' lista variabili in lettura
|
|
Private Shared m_ReadingVars(100) As CommVar
|
|
Private m_BytesTransferedCounter As Integer
|
|
Private m_LinearAxisPrecision As Integer
|
|
|
|
Public Sub New(MachManaging As MachManaging)
|
|
m_MachManaging = MachManaging
|
|
End Sub
|
|
|
|
#Region "METHODS"
|
|
|
|
Friend Sub InitFxServer()
|
|
End Sub
|
|
|
|
Friend Sub InitFxObjects()
|
|
objDGroupManager = CreateObject("APServer.DGroupManager")
|
|
AddHandler objDGroupManager.ErrorHandler, AddressOf objDGroupManager_ErrorHandler
|
|
AddHandler objDGroupManager.AssignmentChanged, AddressOf objDGroupManager_AssignmentChanged
|
|
objDGroupManager.CncNumber = 0
|
|
objDGroupManager.AxisGroup = 0
|
|
|
|
objDMainCncData = CreateObject("APServer.DMainCncData")
|
|
Dim s = objDMainCncData.Init(objDGroupManager.Handle)
|
|
m_LinearAxisPrecision = objDMainCncData.GetLinearPrecision()
|
|
Dim CncFxIdentifier As String = objDMainCncData.GetCncIdentifier()
|
|
EgtOutLog("CncFxIdentifier: " & CncFxIdentifier)
|
|
|
|
m_CNCVersion = objDMainCncData.GetCncVersion()
|
|
|
|
' Initialize for Channel Change
|
|
Dim CncGroupNumber As Integer = objDMainCncData.GetCncGroupNumber()
|
|
Dim PlcGroupNumber As Integer = objDMainCncData.GetPlcGroupNumber()
|
|
|
|
Dim sumChannels As Integer = 0
|
|
sumChannels = PlcGroupNumber + CncGroupNumber
|
|
For i = 1 To sumChannels
|
|
m_ChannelList.Add(i)
|
|
Next
|
|
|
|
objDGeneralFunction = CreateObject("APServer.DGeneralFunctions")
|
|
AddHandler objDGeneralFunction.ProgramActivated, AddressOf objDGeneralFunction_ProgramActivated
|
|
AddHandler objDGeneralFunction.OnCncStart, AddressOf objDGeneralFunction_OnCncStart
|
|
AddHandler objDGeneralFunction.OnCncStop, AddressOf objDGeneralFunction_OnCncStop
|
|
AddHandler objDGeneralFunction.OnCncReset, AddressOf objDGeneralFunction_OnCncReset
|
|
AddHandler objDGeneralFunction.CncModeWritten, AddressOf objDGeneralFunction_CncModeWritten
|
|
AddHandler objDGeneralFunction.VariableWritten, AddressOf objDGeneralFunction_VariableWritten
|
|
Dim l = objDGeneralFunction.Init(objDGroupManager.Handle)
|
|
Dim MaxWaiting As Integer = 100
|
|
Dim WaitingIndex As Integer = 0
|
|
While objDGeneralFunction.ConnectionStatus <> 2 AndAlso WaitingIndex < MaxWaiting
|
|
Threading.Thread.Sleep(100)
|
|
UpdateUI()
|
|
WaitingIndex += 1
|
|
End While
|
|
Dim j = objDGeneralFunction.ConnectionStatus
|
|
Dim oi = objDGeneralFunction.ConnectionString
|
|
' Initialize FXLog Objects
|
|
objErrorHandler = CreateObject("APLog.ErrorHandler")
|
|
'AddHandler objErrorHandler.ErrorFromActiveCnc, AddressOf objErrorHandler_ErrorFromActiveCnc2
|
|
AddHandler objErrorHandler.ErrorOnCnc, AddressOf objErrorHandler_ErrorOnCnc
|
|
AddHandler objErrorHandler.ErrorOnOtherChannel, AddressOf objErrorHandler_ErrorOnOtherChannel
|
|
AddHandler objErrorHandler.Exception, AddressOf objErrorHandler_Exception
|
|
'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 FXServer class DFileTransferv
|
|
objDFileTransfer = CreateObject("APServer.DFileTransfer")
|
|
AddHandler objDFileTransfer.Completed, AddressOf objDFileTransfer_Completed
|
|
AddHandler objDFileTransfer.TransferStarted, AddressOf objDFileTransfer_TransferStarted
|
|
AddHandler objDFileTransfer.Failed, AddressOf objDFileTransfer_Failed
|
|
AddHandler objDFileTransfer.BytesTransfered, AddressOf objDFileTransfer_BytesTransfered
|
|
objDFileTransfer.Init(objDGroupManager.Handle)
|
|
|
|
objDPosition = CreateObject("APServer.DPosition")
|
|
AddHandler objDPosition.PositionChanged, AddressOf objDPosition_PositionChanged
|
|
objDPosition.ModeOP = 1
|
|
objDPosition.Flag = 0
|
|
objDPosition.Init(objDGroupManager.Handle)
|
|
objDPosition.FireValidAxis()
|
|
objDPosition.FireValues()
|
|
|
|
'Initialize FXServer class DMdiCommand
|
|
objDMdiCommand = CreateObject("APServer.DMdiCommand")
|
|
AddHandler objDMdiCommand.CommandWritten, AddressOf objDMdiCommand_CommandWritten
|
|
objDMdiCommand.Init(objDGroupManager.Handle)
|
|
|
|
' Initialize FXServer class DCncMode
|
|
objDCncMode = CreateObject("APServer.DCncMode")
|
|
AddHandler objDCncMode.ValueChanged, AddressOf objDCncMode_ValueChanged
|
|
objDCncMode.Init(objDGroupManager.Handle)
|
|
|
|
' Initialize FXServer class DReadOperatorMessage
|
|
objDReadOperatorMessage = CreateObject("APServer.DReadOperatorMessage")
|
|
AddHandler objDReadOperatorMessage.ValueChanged, AddressOf objDReadOperatorMessage_ValueChanged
|
|
Dim tc = objDReadOperatorMessage.Init(objDGroupManager.Handle)
|
|
If tc <> 0 Then EgtOutLog("Init failed ! return code : " + tc)
|
|
|
|
objDReadPlcVarList = CreateObject("APServer.DReadPlcVarList")
|
|
AddHandler objDReadPlcVarList.ValueChanged, AddressOf objDPlcVariables_ReadPLCVariablesChanged
|
|
|
|
'Initialize FXServer class DVariables
|
|
objDVariables = CreateObject("APServer.DVariables")
|
|
AddHandler objDVariables.VariableWritten, AddressOf objDVariables_VariableWritten
|
|
AddHandler objDVariables.ValueChanged, AddressOf objDPlcVariables_ReadVariablesChanged
|
|
|
|
' attivo programma main
|
|
Map.refMachManaging.Num_Axium_APServer.ActivateProg(9000)
|
|
|
|
End Sub
|
|
|
|
Friend Sub CloseFxObjects()
|
|
If Not IsNothing(objDReadOperatorMessage) Then
|
|
objDReadOperatorMessage.Close()
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDReadOperatorMessage)
|
|
objDReadOperatorMessage = Nothing
|
|
End If
|
|
If Not IsNothing(objDCncMode) Then
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDCncMode)
|
|
objDCncMode = Nothing
|
|
End If
|
|
If Not IsNothing(objDReadPlcVarList) Then
|
|
objDReadPlcVarList.Close()
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDReadPlcVarList)
|
|
objDReadPlcVarList = Nothing
|
|
End If
|
|
If Not IsNothing(objDVariables) Then
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDVariables)
|
|
objDVariables = Nothing
|
|
End If
|
|
If Not IsNothing(objDMdiCommand) Then
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDMdiCommand)
|
|
objDMdiCommand = Nothing
|
|
End If
|
|
If Not IsNothing(objDPosition) Then
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDPosition)
|
|
objDPosition = Nothing
|
|
End If
|
|
If Not IsNothing(objDFileTransfer) Then
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDFileTransfer)
|
|
objDFileTransfer = Nothing
|
|
End If
|
|
If Not IsNothing(objDReadELS) Then
|
|
objDReadELS.Close()
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDReadELS)
|
|
objDReadELS = Nothing
|
|
End If
|
|
If Not IsNothing(objErrorHandler) Then
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objErrorHandler)
|
|
objErrorHandler = Nothing
|
|
End If
|
|
If Not IsNothing(objDGeneralFunction) Then
|
|
objDGeneralFunction.Connect(0)
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDGeneralFunction)
|
|
objDGeneralFunction = Nothing
|
|
End If
|
|
If Not IsNothing(objDMainCncData) Then
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDMainCncData)
|
|
objDMainCncData = Nothing
|
|
End If
|
|
If Not IsNothing(objDGroupManager) Then
|
|
System.Runtime.InteropServices.Marshal.ReleaseComObject(objDGroupManager)
|
|
objDGroupManager = Nothing
|
|
End If
|
|
Dim ServerProcList As Process() = Process.GetProcessesByName("APServer")
|
|
Dim LogProcList As Process() = Process.GetProcessesByName("APLog")
|
|
For Each ServerProc In ServerProcList
|
|
ServerProc.Kill()
|
|
Next
|
|
For Each LogProc In LogProcList
|
|
LogProc.Kill()
|
|
Next
|
|
End Sub
|
|
|
|
Friend Sub GetGeneralFunctions()
|
|
Dim _GetConnectState As Int16 = 0
|
|
Dim MaxWaiting As Integer = 100
|
|
Dim WaitingIndex As Integer = 0
|
|
While _GetConnectState <> 2 AndAlso WaitingIndex < MaxWaiting
|
|
_GetConnectState = objDGeneralFunction.ConnectionStatus
|
|
Threading.Thread.Sleep(100)
|
|
UpdateUI()
|
|
WaitingIndex += 1
|
|
End While
|
|
|
|
Select Case _GetConnectState
|
|
Case 0
|
|
' Not connected
|
|
m_MachManaging.SetConnected(False)
|
|
m_ResultCallbackDlg(CommandTypes.CONNECT, CommandStates.NULL, ResultTypes.RESULT, "")
|
|
Case 1
|
|
' Connection error
|
|
m_MachManaging.SetConnected(False)
|
|
m_ResultCallbackDlg(CommandTypes.CONNECT, CommandStates.ERROR_, ResultTypes.RESULT, "")
|
|
Case 2
|
|
' Connected
|
|
m_MachManaging.SetConnected(True)
|
|
m_ResultCallbackDlg(CommandTypes.CONNECT, CommandStates.OK, ResultTypes.RESULT, "")
|
|
' avvio lettura variabili
|
|
StartReadList()
|
|
StartReadPLCList()
|
|
Case Else
|
|
End Select
|
|
End Sub
|
|
|
|
Friend Sub Start()
|
|
objDGeneralFunction.CncStart()
|
|
End Sub
|
|
|
|
Friend Sub Stop_()
|
|
objDGeneralFunction.CncStop()
|
|
End Sub
|
|
|
|
Friend Sub Reset()
|
|
objDGeneralFunction.CncReset()
|
|
End Sub
|
|
|
|
Friend Sub SetMode(value As CNMode)
|
|
objDGeneralFunction.WriteCncMode(value, 0)
|
|
End Sub
|
|
|
|
Friend Sub SetChannel(value As Integer)
|
|
ChangeChannel(CShort(value))
|
|
End Sub
|
|
|
|
Friend Sub ActivateProg(PartProgramNumberActivate As Integer)
|
|
' attivo programma main
|
|
Dim _FXReturn As Int16 = objDGeneralFunction.ActivateProgram(PartProgramNumberActivate * 10, 0)
|
|
If _FXReturn <> 0 Then
|
|
EgtOutLog("Error Activate Program:" & " " & _FXReturn.ToString())
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub ChangeChannel(Channel As Short)
|
|
objErrorHandler.SetChannel(1, Channel)
|
|
End Sub
|
|
|
|
Friend Sub StartReadList()
|
|
Dim nPLCVarIndex As Integer = 0
|
|
Dim PlcVariablesList As New ArrayList
|
|
Dim sPLCVariableList = ""
|
|
For VarIndex = 0 To m_ReadingVars.Length - 1
|
|
Dim CommVar As CommVar = m_ReadingVars(VarIndex)
|
|
If Not IsNothing(CommVar) AndAlso CommVar.Paragraph = CommVar.Paragraphs.MAIN AndAlso CommVar.nType = CommVar.Types.CN Then
|
|
PlcVariablesList.Add(CommVar.sAddress)
|
|
If Not String.IsNullOrWhiteSpace(sPLCVariableList) Then
|
|
sPLCVariableList &= ","
|
|
End If
|
|
sPLCVariableList &= """" & CommVar.sAddress & """"
|
|
CommVar.Index = nPLCVarIndex
|
|
nPLCVarIndex += 1
|
|
End If
|
|
Next
|
|
Dim _FXReturn As Short = objDVariables.Init(objDGroupManager.Handle, sPLCVariableList, 1) 'PlcVariablesList.ToArray().ToString())
|
|
End Sub
|
|
|
|
Friend Sub StartReadPLCList()
|
|
Dim nPLCVarIndex As Integer = 0
|
|
Dim PlcVariablesList As New ArrayList
|
|
Dim sPLCVariableList = ""
|
|
For VarIndex = 0 To m_ReadingVars.Length - 1
|
|
Dim CommVar As CommVar = m_ReadingVars(VarIndex)
|
|
If Not IsNothing(CommVar) AndAlso CommVar.nType = CommVar.Types.PLC AndAlso
|
|
CommVar.Paragraph = CommVar.Paragraphs.MAIN Then
|
|
PlcVariablesList.Add(CommVar.sAddress)
|
|
If Not String.IsNullOrWhiteSpace(sPLCVariableList) Then
|
|
sPLCVariableList &= ","
|
|
End If
|
|
sPLCVariableList &= CommVar.sAddress
|
|
CommVar.Index = nPLCVarIndex
|
|
nPLCVarIndex += 1
|
|
End If
|
|
Next
|
|
objDReadPlcVarList.Argument = sPLCVariableList ' "%M5.L,%M5.B"
|
|
Dim h = objDReadPlcVarList.Init(objDGroupManager.Handle)
|
|
End Sub
|
|
|
|
Friend Sub CloseReadList()
|
|
End Sub
|
|
|
|
Private Sub ReadVariablesOnce(Address As String)
|
|
End Sub
|
|
|
|
Friend Sub WritePlcVariables(Address As String, value As String)
|
|
End Sub
|
|
|
|
Public Shared Function InitVar(Variable As CommVar) As CommVar
|
|
Dim Index As Integer = Array.IndexOf(m_ReadingVars, Nothing)
|
|
m_ReadingVars(Index) = Variable
|
|
Return m_ReadingVars(Index)
|
|
End Function
|
|
|
|
Friend Sub StartReadELS()
|
|
For Index = 0 To m_ReadingVars.Length - 1
|
|
If IsNothing(m_ReadingVars(Index)) Then Continue For 'OrElse m_ReadingVars(Index).nType <> CommVar.Types.CN Then Continue For
|
|
Dim rc As Short = objDReadELS.AddParameter(m_ReadingVars(Index).sAddress, Index + 1)
|
|
If rc <> 0 Then EgtOutLog(" Error AddParameter2 : " & rc & " on Variable : " & m_ReadingVars(Index).sAddress)
|
|
Next
|
|
End Sub
|
|
|
|
Friend Sub CloseReadELS()
|
|
End Sub
|
|
|
|
#Region "File transfer"
|
|
|
|
Friend Sub FileDownload(sFileType As String, sFilePath As String)
|
|
Dim _Return_Download As Short
|
|
|
|
_Return_Download = objDFileTransfer.FileDownload(10, sFileType, sFilePath, "", 1)
|
|
|
|
If _Return_Download <> 0 Then
|
|
EgtOutLog("Error: File not stored to the job list:" & " " & _Return_Download.ToString())
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub FileUpload(sFileType As String, sFilePath As String)
|
|
Dim _Return_Upload As Short
|
|
_Return_Upload = objDFileTransfer.FileUpload(20, sFileType, sFilePath, "")
|
|
|
|
If _Return_Upload <> 0 Then
|
|
EgtOutLog("Error: File not stored to the job list:" & " " & _Return_Upload.ToString())
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub FileDelete(sFileType As String, sFilePath As String)
|
|
Dim _ReturnFileDelete As Short
|
|
_ReturnFileDelete = objDFileTransfer.FileDelete(20, sFileType, "")
|
|
|
|
If _ReturnFileDelete <> 0 Then
|
|
EgtOutLog("Error: File not deleted:" & " " & _ReturnFileDelete.ToString())
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub StartTransfer()
|
|
Dim _Return_StartTransfer As Short
|
|
_Return_StartTransfer = objDFileTransfer.StartTransfer()
|
|
|
|
If _Return_StartTransfer <> 0 Then
|
|
EgtOutLog("Error: Start transfer not executed:" & " " & _Return_StartTransfer.ToString())
|
|
Else
|
|
m_BytesTransferedCounter = 0
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' File transfer
|
|
|
|
#Region "MDI"
|
|
|
|
Friend Sub MDI_Execute(sCommand As String)
|
|
Dim nRet As Int16 = objDMdiCommand.ExecuteCommand(sCommand)
|
|
If nRet <> 0 Then
|
|
EgtOutLog("Error ExecuteCommand :" & " " & nRet.ToString())
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' MDI
|
|
|
|
#Region "Variables"
|
|
|
|
Friend Sub WriteNCVariables(Address As String, value As String)
|
|
Try
|
|
Dim dValue As Double = 0
|
|
StringToDoubleAdv(value, dValue)
|
|
Dim rc As Short = objDVariables.WriteVariables(objDGroupManager.Handle, Address, value)
|
|
Catch ex As Exception
|
|
EgtOutLog(" objDVariables.WriteVariables2() Exception : " & ex.Message)
|
|
End Try
|
|
End Sub
|
|
|
|
#End Region ' Variables
|
|
|
|
#End Region ' METHODS
|
|
|
|
#Region "EVENTS"
|
|
|
|
Private Sub objDRunTimeSystem_ServerInitializationFinished()
|
|
InitFxObjects()
|
|
GetGeneralFunctions()
|
|
End Sub
|
|
|
|
Private Sub objDRunTimeSystem_ServerReinitializationStarted()
|
|
CloseFxObjects()
|
|
End Sub
|
|
|
|
Private Sub objDGeneralFunction_ProgramActivated(ByVal nerrorCode As Short)
|
|
EgtOutLog("Part program activated:" & " " & nerrorCode)
|
|
' scrivo evento programma attivato
|
|
DbControllers.m_LogMachineController.Create(LogEvent.CreateMachCommandLog(LogEvent.MachineCommands.PROGRAM_ACTIVATION, "", nerrorCode, DbControllers.SupervisorId))
|
|
End Sub
|
|
|
|
Private Sub objDGeneralFunction_OnCncStart(ByVal errorCode As Short)
|
|
Dim bOk As Boolean = (errorCode = 0)
|
|
m_MachManaging.SetStartPending(bOk)
|
|
m_ResultCallbackDlg(CommandTypes.START, If(bOk, CommandStates.OK, CommandStates.ERROR_), ResultTypes.EXECUTED, If(bOk, "", "Error CNC Start: " & errorCode.ToString()))
|
|
End Sub
|
|
|
|
Private Sub objDGeneralFunction_OnCncStop(ByVal errorCode As Short)
|
|
Dim bOk As Boolean = (errorCode = 0)
|
|
m_ResultCallbackDlg(CommandTypes.STOP_, If(bOk, CommandStates.OK, CommandStates.ERROR_), ResultTypes.EXECUTED, If(bOk, "", "Error Feed Hold: " & errorCode.ToString()))
|
|
End Sub
|
|
|
|
Private Sub objDGeneralFunction_OnCncReset(ByVal errorCode As Short)
|
|
Dim bOk As Boolean = (errorCode = 0)
|
|
m_ResultCallbackDlg(CommandTypes.RESET, If(bOk, CommandStates.OK, CommandStates.ERROR_), ResultTypes.EXECUTED, If(bOk, "", "Error CNC Reset: " & errorCode.ToString()))
|
|
End Sub
|
|
|
|
Private Sub objDGeneralFunction_CncModeWritten(ByVal errorCode As Short)
|
|
If errorCode <> 0 Then EgtOutLog("Error CNC Mode selection completed:" & " " & errorCode.ToString())
|
|
End Sub
|
|
|
|
Private Sub objDGroupManager_ErrorHandler(ByVal sError As String, ByVal nTextNumber As Short)
|
|
EgtOutLog("ErrorHandler message:" & " " & sError & " " & "ErrorHandler number:" & " " & nTextNumber.ToString())
|
|
End Sub
|
|
|
|
Private Sub objDGroupManager_AssignmentChanged(ByVal CncNumber As Short, ByVal AxisGroup As Short)
|
|
m_ChannelCallbackDlg(AxisGroup)
|
|
End Sub
|
|
|
|
Private Sub _comboCncAxisChannel_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
|
|
End Sub
|
|
|
|
Private Sub objDGeneralFunction_VariableWritten(ByVal errorCode As Short)
|
|
If errorCode <> 0 Then
|
|
MessageBox.Show("Error from VariableWritten:" & " " & errorCode.ToString())
|
|
Else
|
|
MessageBox.Show("VariableWritten successfully")
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub objErrorHandler_ErrorOnCnc(ByVal cnc As Short, ByVal channel As Short, ByVal [set] As Short)
|
|
End Sub
|
|
|
|
Private Sub objErrorHandler_ErrorOnOtherChannel(ByVal status As Short)
|
|
End Sub
|
|
|
|
Private Sub objErrorHandler_Exception(ByVal status As Short)
|
|
End Sub
|
|
|
|
Friend Sub objErrorHandler_ErrorFromActiveCnc2(ErrorNumber As List(Of Integer))
|
|
' resetto stati bFound
|
|
For Each Message In m_ReadFXMessages
|
|
Message.bFound = False
|
|
Next
|
|
|
|
For index As Integer = 0 To ErrorNumber.Count - 1
|
|
Dim nIndex As Integer = index
|
|
Dim NewMessageInList As ReadMessages = m_ReadFXMessages.FirstOrDefault(Function(x) x.CMsgCncNumber = 0.ToString() AndAlso
|
|
x.CMsgErrorType = 6.ToString() AndAlso
|
|
x.CMsgErrorIndex = "" AndAlso
|
|
x.CMsgErrorNumber = ErrorNumber(nIndex).ToString() AndAlso
|
|
x.CMsgErrorLine = "" AndAlso
|
|
x.CMsgErrorMessage = "")
|
|
' se il messaggio e' gia' in lista
|
|
If Not IsNothing(NewMessageInList) Then
|
|
' lo segno come trovato
|
|
NewMessageInList.bFound = True
|
|
Else
|
|
' lo aggiungo
|
|
Dim NewMessage As ReadMessages = New ReadMessages(0.ToString(),
|
|
6.ToString(),
|
|
"",
|
|
ErrorNumber(index).ToString(),
|
|
"",
|
|
"",
|
|
"")
|
|
NewMessage.bFound = True
|
|
m_ReadFXMessages.Add(NewMessage)
|
|
m_NUMAlarmCallbackDlg(0, 0, 6.ToString(), "", ErrorNumber(index).ToString(), "", "", "")
|
|
End If
|
|
Next
|
|
|
|
' cancello messaggi non trovati
|
|
For Index = m_ReadFXMessages.Count - 1 To 0 Step -1
|
|
Dim Message As ReadMessages = m_ReadFXMessages(Index)
|
|
If Not Message.bFound Then
|
|
m_NUMAlarmCallbackDlg(Message.CMsgCncNumber, 1, Message.CMsgErrorType, Message.CMsgErrorIndex, Message.CMsgErrorNumber, Message.CMsgErrorLine, Message.CMsgErrorMessage, Message.CMsgErrorAdditional)
|
|
m_ReadFXMessages.RemoveAt(Index)
|
|
End If
|
|
Next
|
|
|
|
End Sub
|
|
|
|
#Region "PLC Variables"
|
|
|
|
Private Sub objDPlcVariables_ReadVariablesChanged(ByVal index As Object, ByVal value As Object)
|
|
Dim _ObjIndex As Object() = CType(index, Object())
|
|
Dim _ObjValue As Object() = CType(value, Object())
|
|
|
|
For index = 0 To _ObjIndex.Length - 1
|
|
Dim nObjIndex As Integer = Integer.Parse(_ObjIndex(index).ToString())
|
|
Dim CommVar As CommVar = m_ReadingVars.FirstOrDefault(Function(x) Not IsNothing(x) AndAlso
|
|
x.Paragraph = CommVar.Paragraphs.MAIN AndAlso
|
|
x.nType = CommVar.Types.CN AndAlso
|
|
x.Index = nObjIndex)
|
|
If Not IsNothing(CommVar) Then
|
|
CommVar.SetValue(_ObjValue(index).ToString())
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
Private Sub objDPlcVariables_ReadPLCVariablesChanged(ByVal index As Object, ByVal value As Object)
|
|
Dim _ObjIndex As Object() = CType(index, Object())
|
|
Dim _ObjValue As Object() = CType(value, Object())
|
|
|
|
For index = 0 To _ObjIndex.Length - 1
|
|
Dim nObjIndex As Integer = Integer.Parse(_ObjIndex(index).ToString())
|
|
Dim CommVar As CommVar = m_ReadingVars.FirstOrDefault(Function(x) Not IsNothing(x) AndAlso
|
|
x.Paragraph = CommVar.Paragraphs.MAIN AndAlso
|
|
x.nType = CommVar.Types.PLC AndAlso
|
|
x.Index = nObjIndex)
|
|
If Not IsNothing(CommVar) Then
|
|
CommVar.SetValue(_ObjValue(index).ToString())
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
Private Sub objDPlcVariables_InvalidReadList(ByVal errorCode As Short)
|
|
EgtOutLog("InvalidReadList - ErrorCode: " & errorCode)
|
|
End Sub
|
|
|
|
Private Sub objDPlcVariables_AbortReadVariables()
|
|
EgtOutLog("InvalidReadList - ErrorCode: ")
|
|
End Sub
|
|
|
|
Private Sub objDPlcVariables_ReadOnceVariablesChanged(ByVal lHandle As Integer, ByVal value As Object)
|
|
End Sub
|
|
|
|
Private Sub objDPlcVariables_VariablesWritten2(ByVal lHandle As Integer, ByVal errorCode As Integer)
|
|
Dim bOk As Boolean = (errorCode <> 0)
|
|
m_ResultCallbackDlg(CommandTypes.WRITE, If(bOk, CommandStates.OK, CommandStates.ERROR_), ResultTypes.RESULT, If(bOk, "", "Error VariablesWritten2 :" & " " & errorCode.ToString()))
|
|
End Sub
|
|
|
|
#End Region ' PLC Variables
|
|
|
|
#Region "ReadELS"
|
|
|
|
Private Sub objDReadELS_ValueChanged(ByVal nHandle As Short, ByVal dValue As Double, ByVal nerrorCode As Short)
|
|
If nHandle < 1 OrElse nHandle > m_ReadingVars.Count - 1 Then Return
|
|
If nerrorCode <> 0 Then EgtOutLog(" Error in Validchanged2 : " & nerrorCode & " Handle : " & nHandle)
|
|
|
|
Try
|
|
m_ReadingVars(nHandle - 1).SetValue(dValue.ToString("F04"))
|
|
Catch Ex As Exception
|
|
EgtOutLog(Ex.Message)
|
|
End Try
|
|
End Sub
|
|
|
|
#End Region ' ReadELS
|
|
|
|
#Region "File transfer"
|
|
|
|
Private Sub objDFileTransfer_Completed(ByVal lHandle As Integer)
|
|
If lHandle = 10 OrElse lHandle = 20 Then
|
|
'resetto contatore di trasferimento
|
|
m_BytesTransferedCounter = 0
|
|
EgtOutLog("Up- or Download successful completed:" & " " & lHandle.ToString())
|
|
' aggiorno variabili del MAIN
|
|
Dim ISONumVariable As Variable = Map.refMachCommandMessagePanelVM.MainVariablesList.FirstOrDefault(Function(x) x.sName = ISO_NUM)
|
|
Dim ISOSentVariable As Variable = Map.refMachCommandMessagePanelVM.MainVariablesList.FirstOrDefault(Function(x) x.sName = ISO_SENT)
|
|
Dim SentMachGroup As MyMachGroupVM = Map.refSupervisorMachGroupPanelVM.MachGroupVMList.FirstOrDefault(Function(x As MyMachGroupVM) x.bSendingToMachine)
|
|
If Not IsNothing(SentMachGroup) Then
|
|
ISONumVariable.sValue = SentMachGroup.Name
|
|
ISOSentVariable.sValue = 0
|
|
SentMachGroup.SetSentToMachine(True)
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub objDFileTransfer_TransferStarted(ByVal lHandle As Integer)
|
|
EgtOutLog("Transfer has been started !")
|
|
End Sub
|
|
|
|
Private Sub objDFileTransfer_Failed(ByVal lHandle As Integer, ByVal nSeq As Short, ByVal nReason As Short)
|
|
EgtOutLog("Sequence:" & " " & nSeq.ToString() & " " & "Reason:" & " " & nReason.ToString())
|
|
End Sub
|
|
|
|
Private Sub objDFileTransfer_BytesTransfered(ByVal lHandle As Integer, ByVal lBytes As Integer)
|
|
m_BytesTransferedCounter += lBytes
|
|
End Sub
|
|
|
|
#End Region ' File transfer
|
|
|
|
#Region "Position"
|
|
|
|
Private Sub objDPosition_PositionChanged(ByVal vtArrayIndex As Object, ByVal vtArrayValues As Object)
|
|
Dim _indexArray As Object() = CType(vtArrayIndex, Object())
|
|
Dim _valueArray As Object() = CType(vtArrayValues, Object())
|
|
|
|
For _index As Integer = 0 To _indexArray.Length - 1
|
|
|
|
Dim _index1 As Int16 = CType(_indexArray.GetValue(_index), Int16)
|
|
Dim _axisPosValue As Int32 = CType(_valueArray.GetValue(_index), Int32)
|
|
Dim _axisRefPosValue As Single = CSng(_axisPosValue) / m_LinearAxisPrecision
|
|
m_AxisCoordinatesCallbackDlg(_axisPosValue, _index1)
|
|
|
|
Next
|
|
End Sub
|
|
|
|
#End Region ' Position
|
|
|
|
#Region "MDI"
|
|
|
|
Private Sub objDMdiCommand_CommandWritten(ByVal retVal As Short)
|
|
If retVal <> 0 Then
|
|
EgtOutLog("Error CommandWritten :" & " " & retVal.ToString())
|
|
End If
|
|
Map.refMDIPageVM.SendMDIResult(retVal)
|
|
End Sub
|
|
|
|
#End Region ' MDI
|
|
|
|
#Region "Variables"
|
|
|
|
Private Sub objDVariables_VariableWritten2(ByVal lHandle As Integer, ByVal errorCode As Short)
|
|
If lHandle <> 2 OrElse errorCode <> 0 Then
|
|
EgtOutLog(" Error on objDVariables_VariableWritten2 : handle " & lHandle.ToString() & " errorCode : " & errorCode.ToString())
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub objDVariables_VariableWritten(ByVal errorCode As Short)
|
|
If errorCode <> 0 Then
|
|
EgtOutLog(" Error on objDVariables_VariableWritten errorCode : " & errorCode.ToString())
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub objDVariables_ValueChanged(ByVal vtArrayIndex As Object, ByVal vtArrayValues As Object)
|
|
Dim AplArrayIndex As Object() = CType(vtArrayIndex, Object())
|
|
Dim AplArrayValue As Object() = CType(vtArrayValues, Object())
|
|
|
|
For index As Integer = 0 To AplArrayIndex.Length - 1
|
|
Dim nHandle As Integer = CType(AplArrayIndex.GetValue(index), Int16)
|
|
If nHandle < 1 OrElse nHandle > m_ReadingVars.Count - 1 Then Return
|
|
Dim dValue As Double = CDbl(AplArrayValue.GetValue(index))
|
|
Try
|
|
m_ReadingVars(nHandle - 1).SetValue(dValue.ToString("F04"))
|
|
Catch Ex As Exception
|
|
EgtOutLog(Ex.Message)
|
|
End Try
|
|
Next
|
|
End Sub
|
|
|
|
#End Region ' Variables
|
|
|
|
#Region "CNCMode"
|
|
|
|
Private Sub objDCncMode_ValueChanged(ByVal mode As Short, ByVal preselected As Short)
|
|
m_OpModeCallbackDlg(mode)
|
|
End Sub
|
|
|
|
#End Region ' CNCMode
|
|
|
|
#Region "ReadOperatorMessage"
|
|
|
|
Private Sub objDReadOperatorMessage_ValueChanged(ByVal line As Object)
|
|
' resetto stati bFound
|
|
For Each Message In m_ReadOperatorMessages
|
|
Message.bFound = False
|
|
Next
|
|
Dim objLine As String = TryCast(line, String)
|
|
Dim OpMsgErrType As Integer = 30
|
|
Dim NewMessageInList As ReadMessages = m_ReadOperatorMessages.FirstOrDefault(Function(x) x.CMsgCncNumber = 0 AndAlso
|
|
x.CMsgErrorType = OpMsgErrType.ToString() AndAlso
|
|
x.CMsgErrorIndex = "" AndAlso
|
|
x.CMsgErrorNumber = "" AndAlso
|
|
x.CMsgErrorLine = "" AndAlso
|
|
x.CMsgErrorMessage = objLine AndAlso
|
|
x.CMsgErrorAdditional = "")
|
|
' se il messaggio e' gia' in lista
|
|
If Not IsNothing(NewMessageInList) Then
|
|
' lo segno come trovato
|
|
NewMessageInList.bFound = True
|
|
Else
|
|
' se e' diverso da stringa vuota
|
|
If Not String.IsNullOrWhiteSpace(objLine.ToString()) Then
|
|
' lo aggiungo
|
|
Dim NewMessage As ReadMessages = New ReadMessages(0,
|
|
OpMsgErrType.ToString(),
|
|
"",
|
|
"",
|
|
"",
|
|
objLine,
|
|
"")
|
|
NewMessage.bFound = True
|
|
m_ReadOperatorMessages.Add(NewMessage)
|
|
m_NUMAlarmCallbackDlg(0, 0, OpMsgErrType.ToString(), "", "", "", objLine, "")
|
|
End If
|
|
End If
|
|
|
|
' cancello messaggi non trovati
|
|
If m_ReadOperatorMessages.Count > 0 Then
|
|
For Index = m_ReadOperatorMessages.Count - 1 To 0 Step -1
|
|
Dim Message As ReadMessages = m_ReadOperatorMessages(Index)
|
|
If Not Message.bFound Then
|
|
m_NUMAlarmCallbackDlg(Message.CMsgCncNumber, 1, Message.CMsgErrorType, Message.CMsgErrorIndex, Message.CMsgErrorNumber, Message.CMsgErrorLine, Message.CMsgErrorMessage, Message.CMsgErrorAdditional)
|
|
m_ReadOperatorMessages.RemoveAt(Index)
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
End Sub
|
|
|
|
#End Region ' ReadOperatorMessage
|
|
|
|
#End Region ' EVENTS
|
|
|
|
End Class
|