K8055 & k8061 in french!

bonjour à vous.
je pense fabriquer de plus en plus d’automatisme à base de PC avec vos carte VM110 et VM140 ! elles sont performante et fiable (testé et approuvé sous excel et vb.net)
j’aimerais cependant savoir si je peux compter sur votre équipe pour répondre à mes futurs questions en francais :!:

en effet, j’ai bientôt 40ans et j’ai du mal à suivre vos réponses en anglais !
je comprends l’essentiel, mais pas les détails (sorry)

(ce post est un peu hors du commun, je vous l’accorde)
Dans l’espoir d’avoir des francophones avec moi :oops: (je suis biensur pret à aider, voir à proposer mes codes déja fonctionnels !)

amicalement @dn, best regards

— OS = XP — dev sous VBA EXCEL or VB net frame work 2.0 —

Hello.
I’m sorry that I write in English. French is too difficult for me.
Nice to see that you feel that the VM110 (K8055) and the VM140 (K8061) are suitable hardware for your applications.
If there are any problems with those units or applications I would like to help.

thanks a lot vel255 but my english is so bad for explain my futur problem with this cards or application. :oops:
also my question is : is there somebody able to speak french ? :roll:

i saw french post, so i think it’s possible ! no, ? please i’m lost with this…

thank’s for help and best regards. @dn

You can send your question in French. Please describe your problem as detailed as possible.
Sorry, that my reply will be in English.

thanks

bonjour,

Voila j’ai trois cartes VM110 et j’aimerai connaitre la meilleure façon de les gérer !
Bien sur trois adresses différentes ^^
je bosse sur VB2005 (net2.0), suis-je obligé d’utiliser un timer pour scruter les états des IN/OUT ou il y a t’il un moyen plus temps réel de le faire ?
A quoi sers le Do_nothing en boolean ? juste à savoir si la carte X ou Y à fini d’écrire sur le port USB ?
Merci pour vos exemples

cordialement @dn

I hope that I understood your questions right.

  1. Yes, you have to use timer to read the status of the cards.

  2. The boolean DoNothing just prevents the “WriteAllDigital n” to happen when the digital output check boxes are set or reset.
    In the following procedures SetAllDig_Click() and ClearAllDig_Click()when the Check3(i).Value is set it causes the procedure Check3_Click(Index As Integer) to be executed. There DoNothing disables the WriteAllDigital DLL function call.

[code]Private Sub SetAllDig_Click()
Dim i As Long
DoNothing = True
For i = 0 To 7
Check3(i).Value = 1
Next
DoNothing = False
SetAllDigital
End Sub

Private Sub ClearAllDig_Click()
Dim i As Long
DoNothing = True
For i = 0 To 7
Check3(i).Value = 0
Next
DoNothing = False
ClearAllDigital
End Sub

Private Sub Check3_Click(Index As Integer)
Dim i As Long
Dim n As Long
n = 0
For i = 0 To 7
n = n + Check3(i).Value * (2 ^ i)
Next
If Not DoNothing Then WriteAllDigital n
End Sub[/code]

yes you understood my question 8)
thank’s for the answer

but if i write out of card one, and after the out of card two, in the same procédure it’s better no ?

ex :

'--------- ECRITURE DES SORTIES TOUT OU RIEN ----------------- ' prog out1 or 2 ' visualisation et activations des leds de sorties For ii As Integer = 0 To 7 If OUT(ii) = True Then visusortie(ii).BackColor = Color.GreenYellow SetDigitalChannel(ii + 1) ' remplace le writealldigital ^^ Else visusortie(ii).BackColor = Color.DarkGreen ClearDigitalChannel(ii + 1) End If Next

but i don’t understand how i can change the adress of the out :frowning:

must i use the connect/disconnect ? or other ?

ex :

'------------ connection a la carte ------------------------------ Dim h As Integer = OpenDevice(1) If h = 1 Then ' the prog of out1 carte 1 End If If h = -1 Then MsgBox("Connexion avec l'interface USB impossible" & Chr(13) & Chr(10) & "Vérifiez sa connection !!!!") End If Dim h As Integer = OpenDevice(2) If h = 2 Then ' the prog of out2 carte 2 End If If h = -1 Then MsgBox("Connexion avec l'interface USB impossible" & Chr(13) & Chr(10) & "Vérifiez sa connection !!!!") End If

it’s not very beautiful ! is not a better prog for that ?
I try to make a procedure like that :
out (n,i) n=number of the card and i as the number of out
like in k8061, do you anderstand me ?
i continu my shearch, but in inglish is so hard lol…
thank for your help…
@dn

The latest DLL versions 2 and 3 support SetCurrentDevice(card_address) function call.
You may use it to switch the control between the cards.
No need to use OpenDevice any more to switch between the cards.

You’ll find the latest DLL versions from the Velleman downloads.

The description of the new “multi card” functions are at the end of the document MAN_FR_K8055_DLL_V2.pdf.

You’ll find the document and a lot of example programs from the file k8055_dll_2_001.zip.

merci beaucoup ! génial comme nouvelle fonction 8)

Apres essais voici la façon que j’ai trouvé pour connecter/déconnecter deux cartes (ou plus) avec un bouton en VB.NET
Si cela peux servir à d’autre…ou être commenté/optimisé
after test this is the way i found for connect/disconnect two (or more) card whith a button in VB.NET
If someboby need…or comment / perfect the code

placer un bouton sur votre form, faites les déclarations de la DLL puis dans la procédure clic du bouton copier ce code. amicalement @dn
Set a button in your form, do the déclaration of dll and in the click procédure copy/paste this code. regards @dn

[code] Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    If Button1.Text = "déconnecté" Then

        '--------------------- connection a la carte ------------------------------------------------

        Dim h As Integer = OpenDevice(0)
        Dim i As Integer = OpenDevice(1)
        If h = 0 And i = 1 Then
            Button1.Text = "EN LIGNE"
            connect = True
        End If
        If h = -1 Then
            MsgBox("Connexion avec la carte 0 impossible" & Chr(13) & Chr(10) & "Vérifiez sa connection !!!!")
            Button1.Text = "déconnecté"
            connect = False
        End If
        If i = -1 Then
            MsgBox("Connexion avec la carte 1 impossible" & Chr(13) & Chr(10) & "Vérifiez sa connection !!!!")
            Button1.Text = "déconnecté"
           connect = False
        End If
    Else
        Button1.Text = "déconnecté"
        connect = False
        SetCurrentDevice(0)
        ClearAllDigital()
        ClearAllAnalog()
        CloseDevice()
        SetCurrentDevice(1)
        ClearAllDigital()
        ClearAllAnalog()
        CloseDevice()
    End If
End Sub 'connection à la carte USB[/code]

I’dont use the auto found procedure searchdevice for simply code
je n’ai volontairement pas utilisé la procédure searchdevice pour me simplifier la vie.
Mais elle me parait tres utile, reste à faire un bout de code pour mettre en variable les cartes en ligne.
but it’s a good way for found cards, but need more code…

pour vous remercier de votre aide,thank for your help, voici un petit soft qui peux vous être util, pour deux Vm110 :, here my soft for two VM110.

enjoy and comment !

vbfrance.com/codes/REGIE-LUM … 4145.aspx#

This looks great – congratulations!
It seems that you succeeded to drive two VM110 (K8055) cards simultaneously.

yes it’s work fine, but not simultaneously. :frowning:
just one after one, It’s a timer, like that :

[code] SetCurrentDevice(0)
For ii As Integer = 0 To 7
If OUT(ii) = True Then
visusortie(ii).BackColor = couleurON(ii)
SetDigitalChannel(ii + 1) ’ carte une
Else
visusortie(ii).BackColor = couleurOFF(ii)
ClearDigitalChannel(ii + 1)
End If
Next
SetCurrentDevice(1)
For ii As Integer = 0 To 7
If OUT(ii) = True Then
visusortie(ii).BackColor = couleurON(ii)
SetDigitalChannel(ii + 1) ’ carte une
Else
visusortie(ii).BackColor = couleurOFF(ii)
ClearDigitalChannel(ii + 1)
End If
Next

[/code]

but it’s work fine, Except if you don’t have two cards connected !! if you have just one connected it’s work whith pause…I need to make a condition for shunt or read the code of the second cards
(cela marche bien, mais si vous ne branchez qu’une seule carte ses sorties clignotent lors du passage au code de la numéro deux ^^ il faudrait que je rajoute une condition de connection pour lire le code de la numéro deux :p)

Merci pour vos conseils et bonne fétes à tous !!!
thank’s again for help, and have nice & happy new year !!
@dn, best regards…

Happy new Year!!
Thank you for the code snippet.
I think I understand it but… should there be different name for the visusortie

visusortie(ii).BackColor = couleurON(ii) SetDigitalChannel(ii + 1) ' carte une
in the second for loop?

hello,
Yes you are wright ! as this time the same visusortie command the two cards. the name visusortie as a label collection (in VB2005.net) so i make a mistake ^^
so i write a version who detect the number of card connected and active or not the out.
here the good code (this my best code for that :roll: )

bonjours et merci de ton intéret pour mon code…
Tu as raison ya un bug (enfin non) à l’époque et pour les tests j’utilisais les mêmes variables visusortie pour piloter les deux cartes. Je me suis alors rendu compte que les sorties de la carte 1 clignotaient si la carte 2 n’était pas connectée. J’ai donc utilisé deux variables pour detecter la présence des cartes en ligne ! et là cela marche nickel ! j’en ai profité pour scinder la visualisation et l’activation des sorties :wink:

[code] Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

    '---------------------- ECRITURE DES SORTIES TOUT OU RIEN CARTE 1 ----------------------
    ' visualisation et activations des leds de sorties
    For ii As Integer = 0 To 7
        If OUT(ii) = True Then
            visusortie(ii).BackColor = couleurON(ii)
        Else
            visusortie(ii).BackColor = couleurOFF(ii)
        End If
    Next
   
    ' si la carte une est active
    If connect1 Then
        SetCurrentDevice(0)
        OutputAllAnalog(data3, data4)
        For ii As Integer = 0 To 7
            If OUT(ii) = True Then
                SetDigitalChannel(ii + 1)
            Else
                ClearDigitalChannel(ii + 1)
            End If
        Next
    End If

    '---------------------- ECRITURE DES SORTIES TOUT OU RIEN CARTE 2 ----------------------
    ' visualisation et activations des leds de sorties
    For ii As Integer = 8 To 15
        If OUT(ii) = True Then
            visusortie(ii).BackColor = couleurON(ii)
        Else
            visusortie(ii).BackColor = couleurOFF(ii)
        End If
    Next

' si la carte deux est active
    If connect2 Then
        SetCurrentDevice(1)
        OutputAllAnalog(data1, data2)
        For ii As Integer = 0 To 7
            If OUT(ii + 8) = True Then
                SetDigitalChannel(ii + 1) ' carte deux
            Else
                ClearDigitalChannel(ii + 1)
            End If
        Next
    End If[/code]

here dowload the lastest version of my soft ^^

voici la derniére version du programme ^^

the last as this time (la derniére car elle tourne tres bien)

adn56.free.fr/links-ext/regie.zip

enjoy and comment (merci pour vos remarques)

le code est dispo par MP (la fléme de le reposter sur Vbfrance -_-’)

@+++ pour de nouveau projet

hi,

i’m new here my English is very bead, i’m dutch

but

i have a question, is it possible to modify this program to a version for the k8061

does anyone have a suggestion were to start?

Rjant2