Exécuter programme dans un timer
Fermé
Bonjour,
Je souhaite réaliser une mise à jour des données en temps réel.
je m'explique:
excel communique à un autre logiciel via une liaison DDE pour récupérer des données. Mon code fonctionne (logiciel de récupération de données et timer). Or mon problème c'est que je voudrai rafraîchir les données toutes les deux secondes et générer une impulsion sur la liaison RS232.
mon problème est que je n'arrive pas générer une impulsion d'une période de deux secondes car j'ai l'impression que mon code s'exécute à la fin de mon timer alors que je voudrai qu'il s'exécute à l'intérieur. en clair, j'ai une impulsion toute les 2,2 secondes (temps timer + temps exécution code) alors que je voudrai une impulsion toute les 2 secondes et que le temps d'exécution du code soit inclu dans l'écoulement du timer?
Je souhaite réaliser une mise à jour des données en temps réel.
je m'explique:
excel communique à un autre logiciel via une liaison DDE pour récupérer des données. Mon code fonctionne (logiciel de récupération de données et timer). Or mon problème c'est que je voudrai rafraîchir les données toutes les deux secondes et générer une impulsion sur la liaison RS232.
mon problème est que je n'arrive pas générer une impulsion d'une période de deux secondes car j'ai l'impression que mon code s'exécute à la fin de mon timer alors que je voudrai qu'il s'exécute à l'intérieur. en clair, j'ai une impulsion toute les 2,2 secondes (temps timer + temps exécution code) alors que je voudrai une impulsion toute les 2 secondes et que le temps d'exécution du code soit inclu dans l'écoulement du timer?
A voir également:
- Exécuter programme dans un timer
- Programme demarrage windows 10 - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Mettre en veille un programme - Guide
- Forcer la fermeture d'un programme - Guide
- Executer un programme au demarrage - Guide
4 réponses
Nico#
Messages postés
323
Date d'inscription
vendredi 4 janvier 2008
Statut
Membre
Dernière intervention
28 août 2013
102
23 août 2010 à 22:21
23 août 2010 à 22:21
Salut,
Sans donner le langage de programmation et ton code on ne risque pas de bcp t'aider
Sans donner le langage de programmation et ton code on ne risque pas de bcp t'aider
Sub LancerTimer()
On Error Resume Next
'Interval = 2 ' temps de cycle configuré dans fichier texte
Application.OnTime Now + TimeSerial(0, 0, Interval), "ExecutionTimer"
End Sub
Sub ArretTimer()
On Error Resume Next
Application.OnTime Lheure, "ExecutionTimer", , False
tt = iserialmclctrl(intf, I_SERIAL_RTS, 0) ' RTS = 0
Call iclose(intf)
End Sub
Sub ExecutionTimer()
On Error Resume Next
If attente_60s = 30 Then ' tempo de 30 secondes
Premiere_R_I ' cette fontion doit être effectuée toute les 2 seconde
Else
attente_60s = attente_60s + 1 'icément tant que les 30s ne se sont pas écoulées
End If
Lheure = Now + TimeSerial(0, 0, Interval)
Application.OnTime Lheure, "ExecutionTimer"
End Sub
la fonction Premiere_R_I génère une impulsion sur rts de la liaison série (rs232) or à l'oscilloscope l'impulsion est générée toute les 2.2s (les 2s viennent du timer et les 0.2 de la fonction).
moi je souhaite que la fonction soit réalisé dans le timer et non après ainsi avoir une impulsion toute les 2s.
d'avance merci
On Error Resume Next
'Interval = 2 ' temps de cycle configuré dans fichier texte
Application.OnTime Now + TimeSerial(0, 0, Interval), "ExecutionTimer"
End Sub
Sub ArretTimer()
On Error Resume Next
Application.OnTime Lheure, "ExecutionTimer", , False
tt = iserialmclctrl(intf, I_SERIAL_RTS, 0) ' RTS = 0
Call iclose(intf)
End Sub
Sub ExecutionTimer()
On Error Resume Next
If attente_60s = 30 Then ' tempo de 30 secondes
Premiere_R_I ' cette fontion doit être effectuée toute les 2 seconde
Else
attente_60s = attente_60s + 1 'icément tant que les 30s ne se sont pas écoulées
End If
Lheure = Now + TimeSerial(0, 0, Interval)
Application.OnTime Lheure, "ExecutionTimer"
End Sub
la fonction Premiere_R_I génère une impulsion sur rts de la liaison série (rs232) or à l'oscilloscope l'impulsion est générée toute les 2.2s (les 2s viennent du timer et les 0.2 de la fonction).
moi je souhaite que la fonction soit réalisé dans le timer et non après ainsi avoir une impulsion toute les 2s.
d'avance merci