Aide pilotage équipement

stefinsa - 11 oct. 2012 à 18:30
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 11 oct. 2012 à 20:05
Bonjour à tous je suis vraiment un débutant en programmation.
J'espère que mon message est dans la bonne section. Si ce n'est pas le cas je vous demande de m'excuser.
Je souhaiterais faire communiqué un équipement avec une macro sous excel afin que l'équipement me renvoi les données affichées
dans mon cas, volume et pression. je souhaiterais que les informations soit copier dans une cellule suivant un pas de temps définit qui se comptabiliserais.
J'ai trouver une macro excel qui communique avec l'équipement (affiche les donnée dans une seule cellule et pilote l'équipement en presion ou volume) mais je n'arrive pas à lui faire enregistrer les données qu'il
affiche lors d'un pilotage.
Je vous joint le code d'origine et le bout de code que je souhaite intégrer.

ption Explicit

Private Controller As Object
Private Connection As Object

Private GDSenum% 'Error Number
Private GDSetext$ 'Error Description

Private Sub cmdInitialise_Click()
'Set Controller = New CEntryPoint
Dim GDSenum%
Dim GDSetext$

Set Controller = CreateObject("GDS_STDDPC.CEntryPoint")

Set Connection = CreateObject("GDS_COMMPORT.CEntryPoint")

Controller.setconnection GDSenum, GDSetext, Connection

Connection.DISPLAY GDSenum, GDSetext, 1

End Sub

Private Function ReadChannel(channel As Integer, row As Long, column As Long)
Dim value As Single
Dim GDSenum%
Dim GDSetext$
Controller.READ GDSenum, GDSetext, channel, value
Sheet1.Cells(row, column) = value
End Function

Private Function SetChannel(channel As Integer, row As Long, column As Long)
Dim value As Single
Dim GDSenum%
Dim GDSetext$
value = Sheet1.Cells(row, column)
Controller.SetValue GDSenum, GDSetext, value, channel
End Function

Private Sub cmdReadChannel1_Click()
ReadChannel 1, 12, 3
End Sub

Private Sub cmdReadChannel2_Click()
ReadChannel 2, 14, 3
End Sub

Private Sub cmdSetChannel1_Click()
SetChannel 1, 21, 3
End Sub

Private Sub cmdSetChannel2_Click()
SetChannel 2, 23, 3
End Sub

Private Sub cmdStop_Click()
'Controller.Stop
Dim GDSenum%
Dim GDSetext$
Controller.SETHOLD GDSenum, GDSetext, 1
End Sub

Private Sub cmdTerminate_Click()
Set Controller = Nothing
End Sub

Et voici ce que je pense être juste et que je veux intégrer lors d'une commande setchannel 1 ou 2.

Ech = Sheet1.Cells(22, 5) 'permet d'avoir le temps d'acquisition
T0 = 0 'defini le temps de départ
Sheet2.Cells(1, 1) = "Temps" 'colonne temps
Sheet2.Cells(1, 2) = "Pression" 'colonne pression
Sheet2.Cells(1, 3) = "volume" 'colonne volume
T = Timer + Ech
range0 Sheet2.Cells(2, 1) ActiveCell.Address
ActiveCell.value = T0
ActiveCell.Offset(0, 1).Select
T0 = T0 + Ech
The Range = range0 & ":" & ActiveCell.Address
Controller.READ GDSenum, GDSetext, channel, value = ActiveCell.value
ActiveCell.Offset(0, 1).Select
Controller.READ GDSenum, GDSetext, channel, value = ActiveCell.value
ActiveCell.Offset(1, -2).Select

Merci à vous

4 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
11 oct. 2012 à 19:22
Bonjour,

As-tu essayé de coder un peu en VBA pour savoir comment assigner un texte à une cellule ?
As-tu regardé comment faire un appel à intervalle régulier d'une fonction ?

Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
11 oct. 2012 à 19:37
Bonjour,
As-tu essayé de coder un peu en VBA pour savoir comment assigner un texte à une cellule

La question plus complète serait de savoir s'il a seulement commencé par les bases.
Je ne le crois pas, lorsque je lis (par exemple) :

range0 Sheet2.Cells(2, 1) ActiveCell.Address
.......
The Range = range0 & ":" & ActiveCell.Address 

La toute première de ces deux lignes, déjà ! ainsi, range0 serait une booléenne !
Il concatènerait donc ensuite une booléenne avec ":" et une adresse, le tout dans une variable nommée avec un espace !
Il faut commencer par le commencement et, surtout, connaître la signification de ce que l'on écrit. C'est un minimum et cela s'apprend, en commençant par le tout début.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Bonjour merci pour vos réponses.
j'ai essayé d'assigné le texte à une cellule sur une autre feuille et cela marche.
D'autre part, je me suis servi d'un bout de code que j'ai écris avec un collègue pour communiquer avec une balance.
The Range = range0 & ":" & ActiveCell.Address 


Cette ligne à été codé par mon collègue et il m'a indiqué qu'il fallait cette commande je l'ai donc recopiée puisque la logique de ce que je souhaiterais est identique.
De plus je me suis permis de sauter certaines étapes car mes collègues et supérieurs attendent que cela marche au plus vite pour leurs essais.
Mais je crois que si cela est trop complexe je vais laissé tomber.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
11 oct. 2012 à 20:05
Bonjour,

En soit, ce n'est pas complexe, mais avant de faire un VBA, il faut connaitre un minimum le langage.

Ton chef n'ignore pas, je pense, que tu ne connais pas très bien VBA, donc te demander de réaliser un programme en VBA dans un temps trop court, pour faire un apprentissage de base, est donc inadapté.

Apprends les bases de VBA, enregistres quelques macros et regardes le résultat, inspires-toi des quelques sources présent sur ce site ainsi que du forum.

On ne part pas au front uniquement en caleçon ...

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
Rejoignez-nous