Bonjour à tous
Je suis débutant en programmation Windev. Je suis actuellement entrain de dévelpper un programme sous Windev permettant la communication entre un automate Unitronics V350 et un PC. Pour ce faire le fabricant d’automate met à disposition sur son site www.unitronics.com un fichier dll (UnCmDrv1.dll) ainsi qu’un exemple écrit sous VBA Excel.
Voici un bout du programme écrit sous Excel (ce programme permet l’ouverture du port série COM1):
Private Function prvOpenPort() As Boolean
Dim eComParam As tPC_CommSettings
'Create new instance of the Comm Driver Dll.
Set mComDriver = New UnCmDrv1.clsCommDriver
'Configure the connection parameters.
With eComParam
.Baudrate = eBR_38400
.DataBits = eDB_8
.Parity = eP_None
.StopBits = eSB_1
.TimeOut = 500
.Retries = 3
End With
mComDriver.Comm_Autodetect = True
mComDriver.ShowCommMessages = True
'Opens the com.
prvOpenPort = mComDriver.Comm_Open(Cells(5, 4), eComParam) ‘******Cells(5,4) = 1 numéro du port******
End Function
Voici le programme sous Windev que j’ai écrit ( ou devrais je dire un exemple de la multitude de programme que j’ai déjà essayé sans succés)
(copier/coller d'un fichier texte)
AutomationParamètre(apIndiceBaseTableau = 1)
enBaudRate est une structure
eBR_4800 est un Variant
eBR_9600 est un Variant
FIN
enDataBits est une structure
eDB_7 est un Variant
eDB_8 est un Variant
FIN
enParity est une structure
eP_None est un Variant
eP_Odd est un Variant
FIN
enStopBits est une structure
eSB_1 est un Variant
eSB_2 est un Variant
FIN
tPC_CommSettings est composée de
Baurate est enBaudRate
DataBits est un enDataBits
Parity est un enParity
Retries est un Variant = 3
StopBits est un enStopBits
TimeOut est un Variant = 500
FIN
eComparam est un tableau de 0 Variants
eComparam = [tPC_CommSettings.Baurate.eBR_9600,tPC_CommSettings.DataBits.eDB_8,tPC_CommSettings.Parity.eP_None,tPC_CommSettings.Retries,tPC_CommSettings.StopBits.eSB_1,tPC_CommSettings.TimeOut]
OuvertCom est un booléen
mComDriver est un objet Automation "UnCmDrv1.clsCommDriver"
mComDriver>>Comm_Autodetect = Vrai
mComDriver>>ShowCommMessages = Vrai
OuvertCom = mComDriver>>Comm_Open(1,eComparam)
SI OuvertCom = Vrai ALORS Info("Port Com Ouvert") SINON Info("Ouverture Port COM échouée")
Avec ce programme l’activeX renvoi une erreur : 80020005 type incorrect pour le paramètre 2 ( a savoir eComparam)
Si je déclare le type tPC_CommSetting comme structure c’ est Windev qui me renvoi une erreur du genre : Variable incompatible avec l’objet automation
J’ai essayé différentes combinaisons avec des tableaux, des structures, des variables composées mais sans succés.
Je joins à ce message l’exemple sous VBA, pour le fichier dll (UnCmDrv1.dll) vous pouver le télécharger sur http://www.unitronics.com/Content.aspx?page=Downloads. Voir COM Object ActiveX .dll
Si vous avez une idée pour résoudre mon problème ?
Merci de votre considération et de votre temps
A bientôt
Sonny BORSOI
Partager