1315 lines
42 KiB
VB.net
1315 lines
42 KiB
VB.net
'
|
|
' libreria : VBlib
|
|
' file : ComCNOsaiOpen_Series.vb
|
|
'
|
|
' funzioni : connessione con CN OSAI open come classe - override metodi per nuovo CN
|
|
'
|
|
' copyright 2008-2018 C.Viviani v1.1a
|
|
'
|
|
Imports System.Collections
|
|
Imports System.Collections.Generic
|
|
Imports System.Data
|
|
Imports System.Diagnostics
|
|
Imports System.Runtime.InteropServices
|
|
|
|
Public Class Open_Series
|
|
Inherits ComCNOsai
|
|
|
|
Dim OsaiServer As OpenControl.OPENcontrolPortTypeClient
|
|
|
|
Public Const L_CODE As Integer = 145
|
|
|
|
Private Const NO_ERROR As UShort = 1
|
|
|
|
Private PhaseCN As Integer
|
|
Private ProcessCN As Integer
|
|
|
|
#Region "COSTRUTTORE"
|
|
|
|
Public Sub New(ByVal szAddress As String, ByVal bIsDebug As Boolean, Optional ByVal sVersion As Short = 2)
|
|
|
|
MyBase.New(szAddress, bIsDebug, sVersion)
|
|
|
|
End Sub
|
|
|
|
|
|
#End Region
|
|
|
|
#Region "METODI"
|
|
|
|
|
|
#Region "METODI - Open/close connection"
|
|
|
|
' ------------------------------
|
|
' Apertura sessione con CN Osai
|
|
' ------------------------------
|
|
' Public Overrides Function OpenSession(ByVal szNomeCn As String) As ULong
|
|
Public Overrides Function OpenSession() As Boolean
|
|
|
|
Connected = False
|
|
|
|
|
|
OsaiServer = New OpenControl.OPENcontrolPortTypeClient("OPENcontrol", "http://" & NomeCn & ":8080")
|
|
|
|
If OsaiServer.State = ServiceModel.CommunicationState.Created Then
|
|
Try
|
|
O_BootPhaseEnquiry(PhaseCN, ErrClass, ErrNum)
|
|
|
|
Catch ex As Exception
|
|
'MsgBox("Controllo non connesso !!!" & vbCrLf & ex.Message) '!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
'Me.ErrMsg = "Open NC not connected !!!" & vbCrLf & ex.Message
|
|
End Try
|
|
' Lettura processo CN
|
|
If PhaseCN = SYSTEM_UP_PHASE Then
|
|
Connected = True
|
|
Else
|
|
'MsgBox("Boot phase " & ErrNum)
|
|
'Me.ErrMsg = "Open NC Boot phase error : " & ErrNum
|
|
End If
|
|
|
|
End If
|
|
|
|
Return Connected
|
|
|
|
|
|
End Function
|
|
|
|
Private Function O_BootPhaseEnquiry(ByRef Phase As Integer, ByRef nErrClass As UShort, ByRef nErrNum As UShort) As Integer
|
|
Dim oBootPhaseInquiry As New OpenControl.BootPhaseEnquiry
|
|
Dim retBootPhaseInquiry As OpenControl.BootPhaseEnquiryR
|
|
|
|
retBootPhaseInquiry = OsaiServer.BootPhaseEnquiry(oBootPhaseInquiry)
|
|
|
|
nErrClass = retBootPhaseInquiry.ErrClass
|
|
nErrNum = retBootPhaseInquiry.ErrNum
|
|
Phase = retBootPhaseInquiry.Phase
|
|
|
|
O_BootPhaseEnquiry = retBootPhaseInquiry.retval
|
|
|
|
End Function
|
|
|
|
Public Overrides Function CloseSession() As Boolean
|
|
|
|
Try
|
|
|
|
OsaiServer.Close()
|
|
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
|
|
End Function
|
|
|
|
|
|
#End Region
|
|
|
|
#Region "METODI - Lettura/scrittura variabili CN"
|
|
|
|
'------------------------------
|
|
' Lettura / scittura variabili SC su Cn
|
|
'------------------------------
|
|
Public Overrides Function ReadSCVar(ByVal nIndex As Integer, ByVal nNumChar As Integer, Optional ByVal nProcess As Integer = 1) As String
|
|
|
|
Dim InputStruct As New OpenControl.ReadVarText
|
|
Dim RetVal As OpenControl.ReadVarTextR
|
|
|
|
If (Not (Debug)) Then ' se macchina collegata e non in debug
|
|
|
|
InputStruct.Code = CndexLinkDotNet.Cndex.SC_CODE ' 50
|
|
InputStruct.Index = nIndex
|
|
InputStruct.Size = nNumChar
|
|
InputStruct.Process = nProcess
|
|
|
|
RetVal = OsaiServer.ReadVarText(InputStruct)
|
|
If (RetVal.retval > 0) Then
|
|
Return RetVal.Text
|
|
Else
|
|
ErrClass = RetVal.ErrClass
|
|
ErrNum = RetVal.ErrNum
|
|
ErrMsg = "Error on reading string variable " & InputStruct.Index.ToString & vbCrLf & what_happened()
|
|
Return "?????????????????????"
|
|
End If
|
|
' se sono in debug
|
|
Else
|
|
Return "OK"
|
|
End If ' Endif gestione macchina collegata
|
|
|
|
End Function
|
|
|
|
Public Overrides Function WriteSCVar(ByVal nIndex As Integer, ByVal nNumChar As Integer, ByVal szText As String, Optional ByVal nProcess As Integer = 1) As Boolean
|
|
|
|
Dim InputStruct As New OpenControl.WriteVarText
|
|
Dim RetVal As OpenControl.WriteVarTextR
|
|
|
|
|
|
If (Not (Debug)) Then ' se macchina collegata e non in debug
|
|
|
|
InputStruct.Code = CndexLinkDotNet.Cndex.SC_CODE ' 50
|
|
InputStruct.Index = nIndex
|
|
InputStruct.Len = nNumChar
|
|
InputStruct.Process = nProcess
|
|
InputStruct.Text = szText
|
|
|
|
RetVal = OsaiServer.WriteVarText(InputStruct)
|
|
|
|
If (RetVal.retval > 0) Then
|
|
Return True
|
|
Else
|
|
ErrClass = RetVal.ErrClass
|
|
ErrNum = RetVal.ErrNum
|
|
ErrMsg = "Error on writing SC variable " & InputStruct.Index.ToString & vbCrLf & what_happened()
|
|
Return False
|
|
End If
|
|
' se sono in debug
|
|
Else
|
|
Return True
|
|
End If ' Endif gestione macchina collegata
|
|
|
|
End Function
|
|
|
|
'------------------------------
|
|
' Lettura variabile Bool su Cn
|
|
'------------------------------
|
|
Public Overrides Function ReadBoolVar(ByVal szVar As stVAR, Optional ByVal nProcess As Integer = 1) As Short
|
|
Dim InputStruct As New OpenControl.ReadVarWord
|
|
Dim RetVal As OpenControl.ReadVarWordR
|
|
Dim nValues(0) As Short ' Array (lo vuole la libreria Osai) che conterrà il valore letto
|
|
|
|
InputStruct.NumVar = 1
|
|
InputStruct.Process = nProcess
|
|
InputStruct.Code = CndexLinkDotNet.Cndex.GW_CODE ' 21
|
|
InputStruct.Index = szVar.nAddress
|
|
|
|
RetVal = OsaiServer.ReadVarWord(InputStruct)
|
|
If (RetVal.retval > 0) Then
|
|
nValues(0) = RetVal.Value(0)
|
|
If ((nValues(0) And (2 ^ szVar.nBit)) <> 0) Then ' Maschera per controllare solo il bit che mi interessa
|
|
nValues(0) = 1
|
|
Else
|
|
nValues(0) = 0
|
|
End If
|
|
|
|
' return con il valore letto
|
|
Return nValues(0)
|
|
|
|
Else
|
|
ErrClass = RetVal.ErrClass
|
|
ErrNum = RetVal.ErrNum
|
|
ErrMsg = "Error on reading G bool variable " & InputStruct.Index.ToString & vbCrLf & what_happened()
|
|
Return CShort(ERRORVALUE) ' In uscita setto variabile a ERRORVALUE errore
|
|
|
|
End If
|
|
|
|
End Function
|
|
|
|
'------------------------------
|
|
' Lettura variabile G Short su Cn
|
|
'------------------------------
|
|
Public Overrides Function ReadShortVar(ByVal szVar As stVAR, Optional ByVal nProcess As Integer = 1) As Short
|
|
Dim nValue(0) As Short
|
|
|
|
Dim nNumVar As UShort = 1
|
|
Dim nIndex As UShort = 1
|
|
Dim sValue() As UShort = {}
|
|
Dim InputStruct As New OpenControl.ReadVarWord
|
|
Dim RetVal As OpenControl.ReadVarWordR
|
|
|
|
InputStruct.Code = CndexLinkDotNet.Cndex.GW_CODE ' 21
|
|
InputStruct.Index = szVar.nAddress
|
|
InputStruct.NumVar = 1
|
|
InputStruct.Process = nProcess
|
|
|
|
Try
|
|
|
|
RetVal = OsaiServer.ReadVarWord(InputStruct)
|
|
If (RetVal.retval > 0) Then
|
|
Return UShortToShort(RetVal.Value(0))
|
|
Else
|
|
ErrClass = RetVal.ErrClass
|
|
ErrNum = RetVal.ErrNum
|
|
ErrMsg = "Error on reading short variable " & InputStruct.Index.ToString & vbCrLf & what_happened()
|
|
Return CShort(ERRORVALUE) ' In uscita setto variabile a ERRORVALUE errore
|
|
End If
|
|
Catch ex As Exception
|
|
|
|
Me.ErrMsg = ex.Message
|
|
Return CShort(CRASHVALUE) ' In uscita setto variabile a CRASHVALUE errore
|
|
|
|
End Try
|
|
|
|
End Function
|
|
|
|
'------------------------------
|
|
' Lettura variabile G Double su Cn
|
|
'------------------------------
|
|
Public Overrides Function ReadDoubleVar(ByVal szVar As stVAR, Optional ByVal nProcess As Integer = 1) As Double
|
|
'Dim nValue(0) As Short
|
|
|
|
Dim nNumVar As UShort = 1
|
|
Dim nIndex As UShort = 1
|
|
Dim dResult As Double = 0.0
|
|
Dim InputStruct As New OpenControl.ReadVarDouble
|
|
Dim RetVal As OpenControl.ReadVarDoubleR
|
|
|
|
InputStruct.Code = CndexLinkDotNet.Cndex.GD_CODE ' 41
|
|
InputStruct.Index = szVar.nAddress
|
|
InputStruct.NumVar = 1
|
|
InputStruct.Process = nProcess
|
|
|
|
RetVal = OsaiServer.ReadVarDouble(InputStruct)
|
|
If (RetVal.retval > 0) Then
|
|
dResult = RetVal.Value(0)
|
|
Return dResult
|
|
Else
|
|
ErrClass = RetVal.ErrClass
|
|
ErrNum = RetVal.ErrNum
|
|
ErrMsg = "Error on reading G double variable " & InputStruct.Index.ToString & vbCrLf & what_happened()
|
|
Return CShort(ERRORVALUE) ' In uscita setto variabile a ERRORVALUE errore
|
|
End If
|
|
|
|
End Function
|
|
|
|
'------------------------------
|
|
' Lettura variabile E ( double ) su Cn
|
|
'------------------------------
|
|
Public Overrides Function ReadVarE(ByVal szVar As stVAR, Optional ByVal nProcess As Integer = 1) As Double
|
|
|
|
Dim nValue(0) As Short
|
|
Dim nNumVar As UShort = 1
|
|
Dim InputStruct As New OpenControl.ReadVarDouble
|
|
Dim RetVal As OpenControl.ReadVarDoubleR
|
|
|
|
InputStruct.Code = CndexLinkDotNet.Cndex.E_CODE ' 46
|
|
|
|
InputStruct.Index = szVar.nAddress
|
|
InputStruct.NumVar = 1
|
|
InputStruct.Process = nProcess
|
|
|
|
RetVal = OsaiServer.ReadVarDouble(InputStruct)
|
|
If (RetVal.retval > 0) Then
|
|
Return RetVal.Value(0)
|
|
Else
|
|
ErrClass = RetVal.ErrClass
|
|
ErrNum = RetVal.ErrNum
|
|
ErrMsg = "Error on reading E variable " & InputStruct.Index.ToString & vbCrLf & what_happened()
|
|
Return CDbl(ERRORVALUE) ' In uscita setto variabile a ERRORVALUE errore
|
|
End If
|
|
|
|
End Function
|
|
|
|
'------------------------------
|
|
' Lettura variabile L ( double ) su Cn
|
|
'------------------------------
|
|
Public Overrides Function ReadVarL(ByVal szVar As stVAR, Optional ByVal nProcess As Integer = 1) As Double
|
|
|
|
Dim nValue(0) As Short
|
|
Dim nNumVar As UShort = 1
|
|
Dim InputStruct As New OpenControl.ReadVarDouble
|
|
Dim RetVal As OpenControl.ReadVarDoubleR
|
|
|
|
InputStruct.Code = L_CODE ' 145
|
|
|
|
InputStruct.Index = szVar.nAddress
|
|
InputStruct.NumVar = 1
|
|
InputStruct.Process = nProcess
|
|
|
|
RetVal = OsaiServer.ReadVarDouble(InputStruct)
|
|
If (RetVal.retval > 0) Then
|
|
Return RetVal.Value(0)
|
|
|
|
Else
|
|
ErrClass = RetVal.ErrClass
|
|
ErrNum = RetVal.ErrNum
|
|
ErrMsg = "Error on reading L variable " & InputStruct.Index.ToString & vbCrLf & what_happened()
|
|
Return CDbl(ERRORVALUE) ' In uscita setto variabile a ERRORVALUE errore
|
|
End If
|
|
|
|
End Function
|
|
|
|
'------------------------------
|
|
' Lettura variabile MW su Cn
|
|
'------------------------------
|
|
Public Overrides Function ReadVarMW(ByVal szVar As stVAR, Optional ByVal nProcess As Integer = 1) As UShort
|
|
|
|
Dim nNumVar As UShort = 1
|
|
Dim InputStruct As New OpenControl.ReadVarWord
|
|
Dim RetVal As OpenControl.ReadVarWordR
|
|
|
|
InputStruct.Code = CndexLinkDotNet.Cndex.MW_CODE ' 20
|
|
InputStruct.Index = szVar.nAddress
|
|
InputStruct.NumVar = 1
|
|
InputStruct.Process = nProcess
|
|
|
|
RetVal = OsaiServer.ReadVarWord(InputStruct)
|
|
If (RetVal.retval > 0) Then
|
|
|
|
Return (RetVal.Value(0))
|
|
Else
|
|
ErrClass = RetVal.ErrClass
|
|
ErrNum = RetVal.ErrNum
|
|
ErrMsg = "Error on reading MW variable " & InputStruct.Index.ToString & vbCrLf & what_happened()
|
|
|
|
Return CUShort(-ERRORVALUE) ' In uscita setto variabile a ERRORVALUE errore
|
|
End If
|
|
|
|
End Function
|
|
|
|
' -------------------------------
|
|
' Scrittura variabile bool su Cn
|
|
'---------------------------------
|
|
Public Overrides Function WriteBoolVar(ByVal szVar As stVAR, ByVal nValue As Short, Optional ByVal nProcess As Integer = 1) As Boolean
|
|
|
|
Dim nValues(0) As Short ' Array (lo vuole la libreria Osai) che conterrà il valore letto
|
|
Dim nNumVarToBeWrited As Integer = 1 ' Numero di variabili da leggere (fisso a 1)
|
|
Dim nResult As Integer = -1
|
|
Dim InputStruct As New OpenControl.WriteVarWordBit
|
|
Dim RetVal As OpenControl.WriteVarWordBitR
|
|
|
|
nValues(0) = nValue
|
|
|
|
' se macchina collegata e non in debug
|
|
If (Not (Debug)) Then
|
|
|
|
InputStruct.Code = CndexLinkDotNet.Cndex.GW_CODE ' 21
|
|
InputStruct.Process = nProcess
|
|
InputStruct.Index = szVar.nAddress
|
|
InputStruct.BitIndex = szVar.nBit
|
|
InputStruct.BitValue = nValue
|
|
RetVal = OsaiServer.WriteVarWordBit(InputStruct)
|
|
|
|
If (RetVal.retval <= 0) Then
|
|
ErrClass = RetVal.ErrClass
|
|
ErrNum = RetVal.ErrNum
|
|
ErrMsg = "Error on writing bool variable " & InputStruct.Index.ToString & vbCrLf & what_happened()
|
|
Return False '
|
|
Else
|
|
Return True
|
|
End If
|
|
|
|
' se sono in debug
|
|
Else
|
|
Return True
|
|
End If ' Endif gestione macchina collegata
|
|
|
|
End Function
|
|
|
|
' -------------------------------
|
|
' Scrittura variabile G Short su Cn
|
|
'---------------------------------
|
|
Public Overrides Function WriteShortVar(ByVal szVar As stVAR, ByVal nValue As Short, Optional ByVal nProcess As Integer = 1) As Boolean
|
|
|
|
Dim nValues(0) As Short ' Array (lo vuole la libreria Osai) che conterrà il valore letto
|
|
Dim nNumVarToBeWrited As Integer = 1 ' Numero di variabili da leggere (fisso a 1)
|
|
Dim nResult As Integer = -1
|
|
Dim InputStruct As New OpenControl.WriteVarWord
|
|
Dim RetVal As OpenControl.WriteVarWordR
|
|
|
|
nValues(0) = nValue
|
|
|
|
' se macchina collegata e non in debug
|
|
If (Not (Debug)) Then
|
|
|
|
InputStruct.Code = CndexLinkDotNet.Cndex.GW_CODE ' 21
|
|
InputStruct.NumVar = 1
|
|
InputStruct.Process = nProcess
|
|
InputStruct.Index = szVar.nAddress
|
|
ReDim InputStruct.Value(0)
|
|
InputStruct.Value(0) = ShortToUShort(nValues(0))
|
|
|
|
RetVal = OsaiServer.WriteVarWord(InputStruct)
|
|
|
|
If (RetVal.retval <= 0) Then
|
|
ErrClass = RetVal.ErrClass
|
|
ErrNum = RetVal.ErrNum
|
|
ErrMsg = "Error on writing short variable " & InputStruct.Index.ToString & vbCrLf & what_happened()
|
|
Return False ' In uscita setto variabile a ERRORVALUE errore
|
|
Else
|
|
|
|
Return True
|
|
|
|
End If
|
|
|
|
' se sono in debug
|
|
Else
|
|
|
|
Return True
|
|
|
|
End If ' Endif gestione macchina collegata
|
|
|
|
End Function
|
|
|
|
' -------------------------------
|
|
' Scrittura variabile G Double su Cn
|
|
'---------------------------------
|
|
Public Overrides Function WriteDoubleVar(ByVal szVar As stVAR, ByVal dValue As Double, Optional ByVal nProcess As Integer = 1) As Boolean
|
|
|
|
Dim dValues(0) As Double ' Array (lo vuole la libreria Osai) che conterrà il valore letto
|
|
Dim nNumVarToBeWrited As Integer = 1 ' Numero di variabili da leggere (fisso a 1)
|
|
Dim nResult As Integer = -1
|
|
Dim InputStruct As New OpenControl.WriteVarWord
|
|
Dim RetVal As OpenControl.WriteVarWordR
|
|
|
|
dValues(0) = dValue
|
|
|
|
' se macchina collegata e non in debug
|
|
If (Not (Debug)) Then
|
|
|
|
InputStruct.Code = CndexLinkDotNet.Cndex.GD_CODE ' 41
|
|
InputStruct.NumVar = 1
|
|
InputStruct.Process = nProcess
|
|
InputStruct.Index = szVar.nAddress
|
|
ReDim InputStruct.Value(0)
|
|
InputStruct.Value(0) = dValues(0)
|
|
|
|
RetVal = OsaiServer.WriteVarWord(InputStruct)
|
|
|
|
If (RetVal.retval <= 0) Then
|
|
ErrClass = RetVal.ErrClass
|
|
ErrNum = RetVal.ErrNum
|
|
ErrMsg = "Error on writing G DoubleVar " & InputStruct.Index.ToString & vbCrLf & what_happened()
|
|
Return False ' In uscita setto variabile a ERRORVALUE errore
|
|
Else
|
|
|
|
Return True
|
|
|
|
End If
|
|
|
|
' se sono in debug
|
|
Else
|
|
|
|
Return True
|
|
|
|
End If ' Endif gestione macchina collegata
|
|
|
|
End Function
|
|
|
|
' -------------------------------
|
|
' Scrittura variabile E su Cn
|
|
'---------------------------------
|
|
Public Overrides Function WriteVarE(ByVal szVar As stVAR, ByVal nValue As Double, Optional ByVal nProcess As Integer = 1) As Boolean
|
|
|
|
Dim nValues(0) As Double ' Array (lo vuole la libreria Osai) che conterrà il valore letto
|
|
Dim nNumVarToBeWrited As Integer = 1 ' Numero di variabili da leggere (fisso a 1)
|
|
Dim nResult As Integer = -1
|
|
Dim InputStruct As New OpenControl.WriteVarDouble
|
|
Dim RetVal As OpenControl.WriteVarDoubleR
|
|
|
|
nValues(0) = nValue
|
|
|
|
If (Not (Debug)) Then ' se macchina collegata e non in debug
|
|
|
|
InputStruct.Code = CndexLinkDotNet.Cndex.E_CODE ' 46
|
|
InputStruct.NumVar = 1
|
|
InputStruct.Process = nProcess
|
|
InputStruct.Index = szVar.nAddress
|
|
ReDim InputStruct.Value(0)
|
|
InputStruct.Value(0) = nValues(0)
|
|
|
|
RetVal = OsaiServer.WriteVarDouble(InputStruct)
|
|
|
|
If (RetVal.retval <= 0) Then
|
|
ErrClass = RetVal.ErrClass
|
|
ErrNum = RetVal.ErrNum
|
|
ErrMsg = "Error on writing Write E DoubleVar variable " & InputStruct.Index.ToString & vbCrLf & what_happened()
|
|
Return False ' In uscita setto variabile a ERRORVALUE errore
|
|
Else
|
|
Return True
|
|
End If
|
|
|
|
' se sono in debug
|
|
Else
|
|
Return True
|
|
End If ' Endif gestione macchina collegata
|
|
|
|
End Function
|
|
' -------------------------------
|
|
' Scrittura variabile L su Cn
|
|
'---------------------------------
|
|
Public Overrides Function WriteVarL(ByVal szVar As stVAR, ByVal nValue As Double, Optional ByVal nProcess As Integer = 1) As Boolean
|
|
|
|
Dim nValues(0) As Double ' Array (lo vuole la libreria Osai) che conterrà il valore letto
|
|
Dim nNumVarToBeWrited As Integer = 1 ' Numero di variabili da leggere (fisso a 1)
|
|
Dim nResult As Integer = -1
|
|
Dim InputStruct As New OpenControl.WriteVarDouble
|
|
Dim RetVal As OpenControl.WriteVarDoubleR
|
|
|
|
nValues(0) = nValue
|
|
|
|
If (Not (Debug)) Then ' se macchina collegata e non in debug
|
|
|
|
InputStruct.Code = L_CODE ' 145
|
|
InputStruct.NumVar = 1
|
|
InputStruct.Process = nProcess
|
|
InputStruct.Index = szVar.nAddress
|
|
ReDim InputStruct.Value(0)
|
|
InputStruct.Value(0) = nValues(0)
|
|
|
|
RetVal = OsaiServer.WriteVarDouble(InputStruct)
|
|
|
|
If (RetVal.retval <= 0) Then
|
|
ErrClass = RetVal.ErrClass
|
|
ErrNum = RetVal.ErrNum
|
|
ErrMsg = "Error on writing Write L DoubleVar variable " & InputStruct.Index.ToString & vbCrLf & what_happened()
|
|
Return False ' In uscita setto variabile a ERRORVALUE errore
|
|
Else
|
|
Return True
|
|
End If
|
|
|
|
' se sono in debug
|
|
Else
|
|
Return True
|
|
End If ' Endif gestione macchina collegata
|
|
|
|
End Function
|
|
|
|
'------------------------------
|
|
' Lettura variabile SN Double su Cn
|
|
'------------------------------
|
|
Public Overrides Function ReadVarSN(ByVal nVar As Short, Optional ByVal nProcess As Integer = 1) As Double
|
|
'Dim nValue(0) As Short
|
|
|
|
Dim nNumVar As UShort = 1
|
|
Dim nIndex As UShort = 1
|
|
Dim dResult As Double = 0.0
|
|
Dim InputStruct As New OpenControl.ReadVarDouble
|
|
Dim RetVal As OpenControl.ReadVarDoubleR
|
|
|
|
InputStruct.Code = CndexLinkDotNet.Cndex.SN_CODE ' 47
|
|
InputStruct.Index = nVar
|
|
InputStruct.NumVar = 1
|
|
InputStruct.Process = nProcess
|
|
|
|
RetVal = OsaiServer.ReadVarDouble(InputStruct)
|
|
If (RetVal.retval > 0) Then
|
|
dResult = RetVal.Value(0)
|
|
Return dResult
|
|
Else
|
|
ErrClass = RetVal.ErrClass
|
|
ErrNum = RetVal.ErrNum
|
|
ErrMsg = "Error on reading SN variable " & InputStruct.Index.ToString & vbCrLf & what_happened()
|
|
Return CShort(ERRORVALUE) ' In uscita setto variabile a ERRORVALUE errore
|
|
End If
|
|
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
#Region "METODI - Modo CN / PP"
|
|
|
|
' ---------------------------------------------------------------
|
|
' Attivazione del modo Auto
|
|
'----------------------------------------------------------------
|
|
Public Overrides Function SetAutoMode(Optional ByVal nProcess As Integer = 1) As Boolean
|
|
Dim RetVal As New OpenControl.SetProcessModeR
|
|
Dim Mode As New OpenControl.SetProcessMode
|
|
|
|
Mode.Mode = 2
|
|
Mode.ProcNum = nProcess
|
|
|
|
RetVal = OsaiServer.SetProcessMode(Mode)
|
|
If RetVal.retval > 0 Then
|
|
Return RetVal.retval
|
|
|
|
Else
|
|
'MsgBox("Error on activating Auto mode " & vbCrLf & "Class: " & Str(ErrClass) & " Number: 0x" & Hex(ErrNum))
|
|
Return RetVal.retval
|
|
End If
|
|
End Function
|
|
|
|
' ---------------------------------------------------------------
|
|
' Lettura modalità selezionata su processo passato per parametro
|
|
'----------------------------------------------------------------
|
|
Public Overrides Function GetModeSelected(Optional ByVal nProcess As Integer = 1) As Byte
|
|
Dim InputStruct As New OpenControl.GetNcInfo1
|
|
Dim RetVal As OpenControl.GetNcInfo1R
|
|
|
|
InputStruct.ProcNum = nProcess
|
|
RetVal = OsaiServer.GetNcInfo1(InputStruct)
|
|
|
|
If RetVal.retval > 0 Then
|
|
Return RetVal.GetInfo.modeselect
|
|
|
|
Else
|
|
'MsgBox("Error on reading Mode Selected" & vbCrLf & "Class: " & Str(ErrClass) & " Number: 0x" & Hex(ErrNum))
|
|
Return 0
|
|
End If
|
|
|
|
End Function
|
|
|
|
' ---------------------------------------------------------------
|
|
' Attivazione del pp passato per parametro
|
|
'----------------------------------------------------------------
|
|
Public Overrides Function ActivatePP(ByVal szPartPrg As String, Optional ByVal nProcess As UShort = 1) As Short
|
|
Dim RetVal As New OpenControl.SelectPartProgramFromDriveR
|
|
Dim InputStruct As New OpenControl.SelectPartProgramFromDrive
|
|
|
|
InputStruct.PPName = szPartPrg
|
|
InputStruct.ProcNum = nProcess
|
|
|
|
RetVal = OsaiServer.SelectPartProgramFromDrive(InputStruct)
|
|
If RetVal.retval > 0 Then ' > 0 ok
|
|
Return RetVal.retval
|
|
|
|
Else ' = 0 errore
|
|
mErrMsg = "Error on activating part-program "
|
|
mErrClass = RetVal.ErrClass
|
|
mErrNum = RetVal.ErrNum
|
|
Return RetVal.retval
|
|
|
|
End If
|
|
End Function
|
|
|
|
' ---------------------------------
|
|
' Lettura Programma corrente
|
|
'----------------------------------
|
|
Public Function GetActivePP(ByVal nProcess As Integer) As String
|
|
Dim InputStruct As New OpenControl.GetActivePartProgram
|
|
Dim RetVal As OpenControl.GetActivePartProgramR
|
|
|
|
InputStruct.ProcNum = nProcess
|
|
RetVal = OsaiServer.GetActivePartProgram(InputStruct)
|
|
|
|
If RetVal.retval > 0 Then
|
|
Return RetVal.Main
|
|
|
|
Else
|
|
mErrMsg = "Error on reading Active Program "
|
|
mErrClass = RetVal.ErrClass
|
|
mErrNum = RetVal.ErrNum
|
|
Return CShort(ERRORVALUE) ' In uscita setto variabile a ERRORVALUE errore
|
|
End If
|
|
|
|
End Function
|
|
|
|
' ---------------------------------------------------------------
|
|
' Lettura informazioni CN
|
|
'----------------------------------------------------------------
|
|
Public Function NcInfo1Open(ByRef ncInfo As OpenControl.GetNcInfo1R, Optional ByVal nProcess As Integer = 1) As OpenControl.GetNcInfo1R
|
|
Dim InputStruct As New OpenControl.GetNcInfo1
|
|
Dim RetVal As OpenControl.GetNcInfo1R
|
|
|
|
InputStruct.ProcNum = nProcess
|
|
RetVal = OsaiServer.GetNcInfo1(InputStruct)
|
|
|
|
If RetVal.retval > 0 Then
|
|
Return RetVal
|
|
|
|
Else
|
|
mErrMsg = "Error on reading NcInfo "
|
|
mErrClass = RetVal.ErrClass
|
|
mErrNum = RetVal.ErrNum
|
|
Return RetVal
|
|
End If
|
|
End Function
|
|
|
|
' ---------------------------------
|
|
' Lettura info CN 1
|
|
'----------------------------------
|
|
Public Overrides Function NcInfo1(ByRef ncInfo As CndexLinkDotNet.Cndex.GETINFO1DATA, Optional ByVal nProcess As Integer = 1) As Boolean
|
|
|
|
Dim InputStruct As New OpenControl.GetNcInfo1
|
|
Dim RetVal As OpenControl.GetNcInfo1R
|
|
|
|
|
|
InputStruct.ProcNum = nProcess
|
|
RetVal = OsaiServer.GetNcInfo1(InputStruct)
|
|
|
|
If RetVal.retval > 0 Then
|
|
|
|
' ncInfo = RetVal.GetInfo
|
|
' Assegno 1:1 variabili...
|
|
|
|
ncInfo.actual_tool = RetVal.GetInfo.actualtool
|
|
ncInfo.actual_tool_off = RetVal.GetInfo.actualtooloff
|
|
ncInfo.auto_jog_ret = RetVal.GetInfo.autojogret
|
|
ncInfo.ax_sel = RetVal.GetInfo.axsel
|
|
|
|
ncInfo.block_retrace = RetVal.GetInfo.blockretrace
|
|
|
|
ncInfo.disable_slashed_blk = RetVal.GetInfo.disableslashedblk
|
|
ncInfo.dry_run = RetVal.GetInfo.dryrun
|
|
|
|
ncInfo.feed_mis_unit = RetVal.GetInfo.feedmisunit
|
|
ncInfo.feed_ov = RetVal.GetInfo.feedov
|
|
ncInfo.force_rapid_feed = RetVal.GetInfo.forcerapidfeed
|
|
|
|
ncInfo.jog_dir = RetVal.GetInfo.jogdir
|
|
ncInfo.jog_incr = RetVal.GetInfo.jogincr
|
|
|
|
ncInfo.last_nc_error = RetVal.GetInfo.lastncerror
|
|
|
|
ncInfo.main_progr_name = System.Text.Encoding.ASCII.GetBytes(RetVal.GetInfo.mainprogrname)
|
|
|
|
ncInfo.man_feed_ov = RetVal.GetInfo.manfeedov
|
|
ncInfo.mode_select = RetVal.GetInfo.modeselect
|
|
|
|
ncInfo.num_ax_sel = RetVal.GetInfo.numaxsel
|
|
|
|
ncInfo.optional_stop = RetVal.GetInfo.optionalstop
|
|
|
|
ncInfo.progr_feed = RetVal.GetInfo.progrfeed
|
|
ncInfo.progr_speed = RetVal.GetInfo.progrspeed
|
|
ncInfo.progr_tool = RetVal.GetInfo.progrtool
|
|
ncInfo.progr_tool_off = RetVal.GetInfo.progrtooloff
|
|
|
|
ncInfo.rapid_feed = RetVal.GetInfo.rapidfeed
|
|
ncInfo.rapid_override = RetVal.GetInfo.rapidoverride
|
|
ncInfo.rap_feed_ov = RetVal.GetInfo.rapfeedov
|
|
ncInfo.real_feed = RetVal.GetInfo.realfeed
|
|
ncInfo.real_speed = RetVal.GetInfo.realspeed
|
|
|
|
ncInfo.speed_ov = RetVal.GetInfo.speedov
|
|
ncInfo.status = RetVal.GetInfo.status
|
|
ncInfo.substatus = RetVal.GetInfo.substatus
|
|
|
|
Return True
|
|
|
|
Else
|
|
mErrMsg = "Error on reading NcInfo "
|
|
mErrClass = RetVal.ErrClass
|
|
mErrNum = RetVal.ErrNum
|
|
Return False
|
|
End If
|
|
|
|
End Function
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
' ---------------------------------------------------------------
|
|
' Ritorna True se lo stato del CN è IDLE
|
|
'----------------------------------------------------------------
|
|
Public Overrides Function IsResetStatus(Optional ByVal nProcess As Integer = 1) As Boolean
|
|
Dim InputStruct As New OpenControl.GetNcInfo1
|
|
Dim RetVal As OpenControl.GetNcInfo1R
|
|
|
|
InputStruct.ProcNum = nProcess
|
|
RetVal = OsaiServer.GetNcInfo1(InputStruct)
|
|
|
|
If RetVal.retval > 0 Then
|
|
|
|
If RetVal.GetInfo.modeselect = 0 Then
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
|
|
Else
|
|
mErrMsg = "Error in IsResetStatus"
|
|
mErrClass = RetVal.ErrClass
|
|
mErrNum = RetVal.ErrNum
|
|
|
|
Return False
|
|
End If
|
|
|
|
End Function
|
|
|
|
' -------------------------------------------------
|
|
' Lettura stato macchina su processo passato per parametro
|
|
'--------------------------------------------------
|
|
Public Overrides Function GetMachineStatus(Optional ByVal nProcess As Integer = 1) As Byte
|
|
Dim InputStruct As New OpenControl.GetNcInfo1
|
|
Dim RetVal As OpenControl.GetNcInfo1R
|
|
|
|
InputStruct.ProcNum = nProcess
|
|
RetVal = OsaiServer.GetNcInfo1(InputStruct)
|
|
If RetVal.retval > 0 Then
|
|
Return RetVal.GetInfo.status
|
|
|
|
Else
|
|
mErrMsg = "Error on reading Machine Status"
|
|
mErrClass = RetVal.ErrClass
|
|
mErrNum = RetVal.ErrNum
|
|
Return 0
|
|
End If
|
|
|
|
End Function
|
|
|
|
|
|
#End Region
|
|
|
|
#Region "METODI - Utensili / correttori"
|
|
|
|
' ---------------------------------------------------------------
|
|
' Lettura utensile corrente su processo passato per parametro
|
|
'----------------------------------------------------------------
|
|
Public Overrides Function GetActualTool(Optional ByVal nProcess As Integer = 1) As Double
|
|
Dim InputStruct As New OpenControl.GetNcInfo1
|
|
Dim RetVal As OpenControl.GetNcInfo1R
|
|
|
|
InputStruct.ProcNum = nProcess
|
|
RetVal = OsaiServer.GetNcInfo1(InputStruct)
|
|
|
|
If RetVal.retval > 0 Then
|
|
Return RetVal.GetInfo.progrtool
|
|
|
|
Else
|
|
'MsgBox("Error on reading Mode Selected" & vbCrLf & "Class: " & Str(ErrClass) & " Number: 0x" & Hex(ErrNum))
|
|
Return 0
|
|
End If
|
|
|
|
End Function
|
|
|
|
' ---------------------------------------------------------------
|
|
' Lettura correttore corrente su processo passato per parametro
|
|
'----------------------------------------------------------------
|
|
Public Overrides Function GetActualCorr(Optional ByVal nProcess As Integer = 1) As UShort
|
|
Dim InputStruct As New OpenControl.GetNcInfo1
|
|
Dim RetVal As OpenControl.GetNcInfo1R
|
|
|
|
InputStruct.ProcNum = nProcess
|
|
RetVal = OsaiServer.GetNcInfo1(InputStruct)
|
|
|
|
If RetVal.retval > 0 Then
|
|
Return RetVal.GetInfo.actualtooloff
|
|
|
|
Else
|
|
'MsgBox("Error on reading Mode Selected" & vbCrLf & "Class: " & Str(ErrClass) & " Number: 0x" & Hex(ErrNum))
|
|
Return 0
|
|
End If
|
|
|
|
End Function
|
|
|
|
' ---------------------------------------------------------------
|
|
' Lettura lunghezza correttore corrente su processo passato per parametro
|
|
'----------------------------------------------------------------
|
|
Public Overrides Function GetActualToolLen(ByVal nRecord As UInteger) As Double
|
|
Dim InputStruct As New OpenControl.GetOffsetTabRecordII
|
|
Dim RetVal As OpenControl.GetOffsetTabRecordIIR
|
|
Dim Len() As OpenControl.OFFSETVALII
|
|
|
|
InputStruct.RecordNum = nRecord
|
|
RetVal = OsaiServer.GetOffsetTabRecordII(InputStruct)
|
|
|
|
If RetVal.retval > 0 Then
|
|
Len = RetVal.RecordBuff.LenVal
|
|
Return Len(0).ValOrig
|
|
|
|
Else
|
|
'MsgBox("Error on reading actual tool length" & vbCrLf & "Class: " & Str(ErrClass) & " Number: 0x" & Hex(ErrNum))
|
|
Return 0
|
|
End If
|
|
|
|
End Function
|
|
|
|
' ---------------------------------------------------------------
|
|
' Lettura Diametro correttore corrente su processo passato per parametro
|
|
'----------------------------------------------------------------
|
|
Public Overrides Function GetActualToolDiam(ByVal nRecord As UInteger) As Double
|
|
Dim InputStruct As New OpenControl.GetOffsetTabRecordII
|
|
Dim RetVal As OpenControl.GetOffsetTabRecordIIR
|
|
Dim Len() As OpenControl.OFFSETVALII
|
|
|
|
InputStruct.RecordNum = nRecord
|
|
RetVal = OsaiServer.GetOffsetTabRecordII(InputStruct)
|
|
|
|
If RetVal.retval > 0 Then
|
|
Len = RetVal.RecordBuff.DiaVal
|
|
Return Len(0).ValOrig
|
|
|
|
Else
|
|
'MsgBox("Error on reading actual tool diameter" & vbCrLf & "Class: " & Str(ErrClass) & " Number: 0x" & Hex(ErrNum))
|
|
Return 0
|
|
End If
|
|
|
|
End Function
|
|
' ---------------------------------------------------------------
|
|
' Lettura Diametro correttore corrente 2 su processo passato per parametro
|
|
'----------------------------------------------------------------
|
|
Public Overrides Function GetActualToolDiam2(ByVal nRecord As UInteger) As Double
|
|
Dim InputStruct As New OpenControl.GetOffsetTabRecordII
|
|
Dim RetVal As OpenControl.GetOffsetTabRecordIIR
|
|
Dim Len() As OpenControl.OFFSETVALII
|
|
|
|
InputStruct.RecordNum = nRecord
|
|
RetVal = OsaiServer.GetOffsetTabRecordII(InputStruct)
|
|
|
|
If RetVal.retval > 0 Then
|
|
Len = RetVal.RecordBuff.DiaVal
|
|
|
|
Return Len(0).ActChangeVal
|
|
|
|
Else
|
|
'MsgBox("Error on reading actual tool diameter2" & vbCrLf & "Class: " & Str(ErrClass) & " Number: 0x" & Hex(ErrNum))
|
|
Return 0
|
|
End If
|
|
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
#Region "METODI - Feed / Speed"
|
|
|
|
' ---------------------------------------------------------------
|
|
' Lettura Feed Override su processo passato per parametro
|
|
'----------------------------------------------------------------
|
|
Public Overrides Function GetFeedOverride(Optional ByVal nProcess As Integer = 1) As UShort
|
|
Dim InputStruct As New OpenControl.GetNcInfo1
|
|
Dim RetVal As OpenControl.GetNcInfo1R
|
|
|
|
InputStruct.ProcNum = nProcess
|
|
RetVal = OsaiServer.GetNcInfo1(InputStruct)
|
|
|
|
If RetVal.retval > 0 Then
|
|
Return RetVal.GetInfo.feedov / 100
|
|
|
|
Else
|
|
' MsgBox("Error on reading Feed Override" & vbCrLf & "Class: " & Str(ErrClass) & " Number: 0x" & Hex(ErrNum))
|
|
Return 0
|
|
End If
|
|
|
|
End Function
|
|
|
|
' ---------------------------------------------------------------
|
|
' Lettura Rapid Override su processo passato per parametro
|
|
'----------------------------------------------------------------
|
|
Public Overrides Function GetRapidOverride(Optional ByVal nProcess As Integer = 1) As UShort
|
|
Dim InputStruct As New OpenControl.GetNcInfo1
|
|
Dim RetVal As OpenControl.GetNcInfo1R
|
|
|
|
InputStruct.ProcNum = nProcess
|
|
RetVal = OsaiServer.GetNcInfo1(InputStruct)
|
|
|
|
If RetVal.retval > 0 Then
|
|
Return RetVal.GetInfo.rapfeedov / 100
|
|
|
|
Else
|
|
'MsgBox("Error on reading Rapid Override" & vbCrLf & "Class: " & Str(ErrClass) & " Number: 0x" & Hex(ErrNum))
|
|
Return 0
|
|
End If
|
|
|
|
End Function
|
|
|
|
' ---------------------------------------------------------------
|
|
' Lettura Speed Override su processo passato per parametro
|
|
'----------------------------------------------------------------
|
|
Public Overrides Function GetSpeedOverride(Optional ByVal nProcess As Integer = 1) As UShort
|
|
Dim InputStruct As New OpenControl.GetNcInfo1
|
|
Dim RetVal As OpenControl.GetNcInfo1R
|
|
|
|
InputStruct.ProcNum = nProcess
|
|
RetVal = OsaiServer.GetNcInfo1(InputStruct)
|
|
|
|
If RetVal.retval > 0 Then
|
|
Return RetVal.GetInfo.speedov / 100
|
|
|
|
Else
|
|
'MsgBox("Error on reading Speed Override" & vbCrLf & "Class: " & Str(ErrClass) & " Number: 0x" & Hex(ErrNum))
|
|
Return 0
|
|
End If
|
|
End Function
|
|
|
|
' ---------------------------------------------------------------
|
|
' Lettura velocità rapido programmata su processo passato per parametro
|
|
'----------------------------------------------------------------
|
|
Public Overrides Function GetProgrammedRapid(Optional ByVal nProcess As Integer = 1) As Double
|
|
Dim InputStruct As New OpenControl.GetNcInfo1
|
|
Dim RetVal As OpenControl.GetNcInfo1R
|
|
|
|
InputStruct.ProcNum = nProcess
|
|
RetVal = OsaiServer.GetNcInfo1(InputStruct)
|
|
|
|
If RetVal.retval > 0 Then
|
|
Return RetVal.GetInfo.rapidfeed
|
|
|
|
Else
|
|
'MsgBox("Error on reading Programmed Rapid " & vbCrLf & "Class: " & Str(ErrClass) & " Number: 0x" & Hex(ErrNum))
|
|
Return 0
|
|
End If
|
|
End Function
|
|
|
|
' ---------------------------------------------------------------
|
|
' Lettura Feed programmata su processo passato per parametro
|
|
'----------------------------------------------------------------
|
|
Public Overrides Function GetProgrammedFeed(Optional ByVal nProcess As Integer = 1) As Double
|
|
Dim InputStruct As New OpenControl.GetNcInfo1
|
|
Dim RetVal As OpenControl.GetNcInfo1R
|
|
|
|
InputStruct.ProcNum = nProcess
|
|
RetVal = OsaiServer.GetNcInfo1(InputStruct)
|
|
|
|
If RetVal.retval > 0 Then
|
|
Return RetVal.GetInfo.progrfeed
|
|
|
|
Else
|
|
'MsgBox("Error on reading Programmed Feed " & vbCrLf & "Class: " & Str(ErrClass) & " Number: 0x" & Hex(ErrNum))
|
|
Return 0
|
|
End If
|
|
End Function
|
|
|
|
' ---------------------------------------------------------------
|
|
' Lettura Speed programmata su processo passato per parametro
|
|
'----------------------------------------------------------------
|
|
Public Overrides Function GetProgrammedSpeed(Optional ByVal nProcess As Integer = 1) As Double
|
|
Dim InputStruct As New OpenControl.GetNcInfo1
|
|
Dim RetVal As OpenControl.GetNcInfo1R
|
|
|
|
InputStruct.ProcNum = nProcess
|
|
RetVal = OsaiServer.GetNcInfo1(InputStruct)
|
|
|
|
If RetVal.retval > 0 Then
|
|
Return RetVal.GetInfo.progrspeed
|
|
|
|
Else
|
|
'MsgBox("Error on reading Programmed Feed " & vbCrLf & "Class: " & Str(ErrClass) & " Number: 0x" & Hex(ErrNum))
|
|
Return ErrMsg
|
|
End If
|
|
End Function
|
|
|
|
' ---------------------------------------------------------------
|
|
' Lettura Feed reale su processo passato per parametro
|
|
'----------------------------------------------------------------
|
|
Public Overrides Function GetActualFeed(Optional ByVal nProcess As Integer = 1) As Double
|
|
Dim InputStruct As New OpenControl.GetNcInfo1
|
|
Dim RetVal As OpenControl.GetNcInfo1R
|
|
|
|
InputStruct.ProcNum = nProcess
|
|
RetVal = OsaiServer.GetNcInfo1(InputStruct)
|
|
|
|
If RetVal.retval > 0 Then
|
|
Return RetVal.GetInfo.realfeed
|
|
|
|
Else
|
|
'MsgBox("Error on reading Actual Feed " & vbCrLf & "Class: " & Str(ErrClass) & " Number: 0x" & Hex(ErrNum))
|
|
Return 0
|
|
End If
|
|
End Function
|
|
|
|
' ---------------------------------------------------------------
|
|
' Lettura Speed reale su processo passato per parametro
|
|
'----------------------------------------------------------------
|
|
Public Overrides Function GetActualSpeed(Optional ByVal nProcess As Integer = 1) As Double
|
|
Dim InputStruct As New OpenControl.GetNcInfo1
|
|
Dim RetVal As OpenControl.GetNcInfo1R
|
|
|
|
InputStruct.ProcNum = nProcess
|
|
RetVal = OsaiServer.GetNcInfo1(InputStruct)
|
|
|
|
If RetVal.retval > 0 Then
|
|
Return RetVal.GetInfo.realspeed
|
|
|
|
Else
|
|
'MsgBox("Error on reading Actual Speed " & vbCrLf & "Class: " & Str(ErrClass) & " Number: 0x" & Hex(ErrNum))
|
|
Return 0
|
|
End If
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
#Region "METODI - copia files"
|
|
|
|
Public Overrides Function CopyFileToNC(ByVal sz_logical_drive As String,
|
|
ByVal sz_source_filename As String,
|
|
ByVal sz_dest_filename As String) As Short
|
|
|
|
Return PutFile(sz_source_filename, "PROGRAMS" & "\\" & sz_dest_filename, ErrClass, ErrNum, 0)
|
|
|
|
End Function
|
|
|
|
|
|
'utilizzabile per la copia di file verso cnc
|
|
|
|
Public Overrides Function PutFile(ByRef szPathFile As String, ByVal szTargetPath As String, ByRef nErrClass As UInteger, ByRef nErrNum As UInteger, ByRef FileSize As Integer) As Integer
|
|
Dim oPutFile As New OpenControl.PutFile
|
|
Dim retPutFile As New OpenControl.PutFileR
|
|
Dim szData As String
|
|
|
|
oPutFile.PathName = szTargetPath
|
|
|
|
szData = ""
|
|
|
|
'apro il file in szPathFile
|
|
szData = My.Computer.FileSystem.ReadAllText(szPathFile, System.Text.Encoding.UTF8)
|
|
|
|
oPutFile.Data = szData
|
|
oPutFile.Size = FileSize
|
|
|
|
'calcolo la dimensione in byte e la metto in oPutFile.Size
|
|
oPutFile.Size = szData.Length
|
|
|
|
retPutFile = OsaiServer.PutFile(oPutFile)
|
|
|
|
nErrClass = retPutFile.ErrClass
|
|
nErrNum = retPutFile.ErrNum
|
|
|
|
PutFile = retPutFile.retval
|
|
|
|
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
' ----------------------------------------------------------------------------------------------------------------------------
|
|
' Lettura Errori CN
|
|
' ----------------------------------------------------------------------------------------------------------------------------
|
|
'Public Function ReadCurrentErrorMsg(ByVal nProcess As Integer, ByRef MessaggioErr() As String, ByRef nErrClass As UInteger, ByRef nErrNum As UInteger) As Integer
|
|
|
|
' Dim oReadCurrentErrorMsg As New OpenControl.ReadCurrentErrorMsg
|
|
' Dim retReadCurrentErrorMsg As New OpenControl.ReadCurrentErrorMsgR
|
|
|
|
' oReadCurrentErrorMsg.Process = nProcess
|
|
' retReadCurrentErrorMsg = OsaiServer.ReadCurrentErrorMsg(oReadCurrentErrorMsg)
|
|
' 'SOAP function call
|
|
' Dim datoErr As New CndexLinkDotNet.Cndex.MSG_ERROR
|
|
|
|
' Try
|
|
' datoErr.BootID = CUInt(retReadCurrentErrorMsg.Data.BootID)
|
|
' datoErr.UnIdSeq = CUInt(retReadCurrentErrorMsg.Data.UnIdSeq)
|
|
' datoErr.Code_Err = CUInt(retReadCurrentErrorMsg.Data.CodeErr)
|
|
' datoErr.Comando = CByte(retReadCurrentErrorMsg.Data.Comando)
|
|
' datoErr.FormatTxt = retReadCurrentErrorMsg.Data.FormatTxt
|
|
' datoErr.Process = retReadCurrentErrorMsg.Data.Process
|
|
' datoErr.SubCom = CByte(retReadCurrentErrorMsg.Data.SubCom)
|
|
|
|
' Dim text2 As MESSAGE_TEXT
|
|
' text2.Line1 = ""
|
|
' text2.Line2 = ""
|
|
' text2.Line3 = ""
|
|
' text2.Line4 = ""
|
|
|
|
' 'Invoke native function TranslateErrorMsg() in library OSAI_ErrorMgr.dll
|
|
' TranslateErrorMsg(datoErr, text2)
|
|
|
|
' ReDim MessaggioErr(4)
|
|
|
|
' 'Display error message text
|
|
' MessaggioErr(1) = text2.Line1
|
|
' MessaggioErr(2) = text2.Line2
|
|
' MessaggioErr(3) = text2.Line3
|
|
' MessaggioErr(4) = text2.Line4
|
|
' Catch ex As Exception
|
|
|
|
' Return 0
|
|
' 'Dim text2 As MESSAGE_TEXT
|
|
' 'text2.Line1 = ""
|
|
' 'text2.Line2 = ""
|
|
' 'text2.Line3 = ""
|
|
' 'text2.Line4 = ""
|
|
|
|
' ''Invoke native function TranslateErrorMsg() in library OSAI_ErrorMgr.dll
|
|
' 'TranslateErrorMsg(datoErr, text2)
|
|
|
|
' 'ReDim MessaggioErr(4)
|
|
|
|
' ''Display error message text
|
|
' 'MessaggioErr(1) = text2.Line1
|
|
' 'MessaggioErr(2) = text2.Line2
|
|
' 'MessaggioErr(3) = text2.Line3
|
|
' 'MessaggioErr(4) = text2.Line4
|
|
' End Try
|
|
|
|
|
|
' ReadCurrentErrorMsg = retReadCurrentErrorMsg.retval
|
|
|
|
'End Function
|
|
|
|
'------------------------------
|
|
' Lettura messaggio DIS
|
|
'------------------------------
|
|
|
|
Public Overrides Function ReadDisMsg(Optional ByVal nProcess As Integer = 1, Optional ByVal nMac As Integer = 1) As String
|
|
Dim InputStruct As New OpenControl.ReadPartProgramMsg
|
|
Dim RetVal As OpenControl.ReadPartProgramMsgR
|
|
|
|
InputStruct.ProcNum = nProcess
|
|
RetVal = OsaiServer.ReadPartProgramMsg(InputStruct)
|
|
|
|
If RetVal.retval > 0 Then
|
|
Return RetVal.PartProgramMsg
|
|
|
|
Else
|
|
mErrMsg = "Error on reading DIS messages"
|
|
mErrClass = RetVal.ErrClass
|
|
mErrNum = RetVal.ErrNum
|
|
Return ""
|
|
End If
|
|
|
|
End Function
|
|
|
|
' -------------------------------------------------
|
|
' Lettura Linee programma corrente
|
|
'--------------------------------------------------
|
|
Public Overrides Function ReadPPLines(ByVal nProcess As Integer, ByRef EightLines() As String, ByRef nErrClass As UInteger, ByRef nErrNum As UInteger) As Boolean
|
|
Dim InputStruct As New OpenControl.GetPartProgramLines
|
|
Dim RetVal As OpenControl.GetPartProgramLinesR
|
|
|
|
InputStruct.ProcNum = nProcess
|
|
RetVal = OsaiServer.GetPartProgramLines(InputStruct)
|
|
|
|
If RetVal.retval > 0 Then
|
|
EightLines(0) = RetVal.PPLine1
|
|
EightLines(1) = RetVal.PPLine2
|
|
EightLines(2) = RetVal.PPLine3
|
|
EightLines(3) = RetVal.PPLine4
|
|
EightLines(4) = RetVal.PPLine5
|
|
EightLines(5) = RetVal.PPLine6
|
|
EightLines(6) = RetVal.PPLine7
|
|
EightLines(7) = RetVal.PPLine8
|
|
|
|
Return True
|
|
|
|
Else
|
|
mErrMsg = "Error on reading PP Lines"
|
|
mErrClass = RetVal.ErrClass
|
|
mErrNum = RetVal.ErrNum
|
|
|
|
Return False
|
|
End If
|
|
End Function
|
|
|
|
#Region "METODI - funz. aux ( short <> ushort), ..."
|
|
|
|
' ----------------------------------------
|
|
' Trasforma un Unsigned Short in un Short
|
|
' ----------------------------------------
|
|
Public Function UShortToShort(ByVal usValue As UShort) As Short
|
|
Dim dValue As Double
|
|
Dim numBit As Byte
|
|
|
|
'numero bit tipo di dato (short -> 16 bit, integer -> 32 bit, long -> 64bit)
|
|
numBit = 16
|
|
|
|
If usValue > (2 ^ (numBit - 1) - 1) Then
|
|
dValue = CDbl(usValue)
|
|
dValue = dValue - CDbl(2 ^ numBit)
|
|
UShortToShort = CShort(dValue)
|
|
Else
|
|
UShortToShort = CShort(usValue)
|
|
End If
|
|
|
|
Return UShortToShort
|
|
End Function
|
|
|
|
' ----------------------------------------
|
|
' Trasforma uno Short in un UnisignedShort
|
|
' ----------------------------------------
|
|
Public Function ShortToUShort(ByVal sValue As Short) As UShort
|
|
Dim dValue As Double
|
|
Dim numBit As Byte
|
|
|
|
'numero bit tipo di dato (short -> 16 bit, integer -> 32 bit, long -> 64bit)
|
|
numBit = 16
|
|
|
|
If sValue < 0 Then
|
|
dValue = CDbl(sValue)
|
|
dValue = dValue + CDbl(2 ^ numBit)
|
|
ShortToUShort = CUShort(dValue)
|
|
Else
|
|
ShortToUShort = CUShort(sValue)
|
|
End If
|
|
|
|
Return ShortToUShort
|
|
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
#End Region
|
|
|
|
End Class
|