1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
'ajoutez une instruction Imports en haut du
'code de la classe du formulaire de départ :
Imports System.Runtime.InteropServices
Public Class SupervisorModbus
'Cette declaration de ta fonction M_Connect a pour but justement d'eclaircir le mode de transmission des
'parametres en Vb.Net;
'-par valeur => ByVal
'-par reference(adresse)=>ByRef
'(VBnet :ByRef maVariable as Type<=>C: Type *maVariable)
'-Convention d'appel : CallingConvention.Cdecl pour C.
'-nom du fichier .dll qui contient notre fonction(exemple:Connect.dll)
'
<DllImport("Connect.dll", _
CallingConvention:=CallingConvention.Cdecl)> _
Private Shared Function M_Connect( _
ByRef pcRemoteIP As String, _
ByVal usPort As UShort, ByVal ucSlaveAddr As Byte, ByRef piCId As Integer) _
As Integer
' Leave the body of the function empty.
End Function
Private Sub SupervisorModbus_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim psIPAddress As String
'à virer inutile
'Dim pcIPAddress As Char()
Dim nStatus As Integer
Dim usPort As Short
Dim ucSlaveAddr As Byte
'à virer
'Dim s_iCId(1) As Integer
Dim s_iCId As Integer 'comme dans CVI.
' Récupération des paramètres de la connection TCP/IP '
' Adresse IP : TxtIPAddress = TextBox
'psIPAddress = TxtIPAddress.Text
' remplacer directement par:
psIPAddress = TxtIPAddress.Text
' Numéro de port : NumPort = NumericUpDown
usPort = NumPort.Value
' Slave adresse : NumSlaveId = NumericUpDown
ucSlaveAddr = NumSlaveId.Value
' Ouverture d'une communication avec le TPLC '
'nStatus = M_Connect(pcIPAddress(0), usPort, ucSlaveAddr, s_iCId(0))
' remplacer par:
nStatus = M_Connect(psIPAddress, usPort, ucSlaveAddr, s_iCId)
End Sub
End Class |
Partager