Le contrôle de communication dans VisualBasic et la méthode de conception de logiciels de communication sous la plateforme Windows sont combinés avec des exemples spécifiques pour donner le programme de communication de base.
En 1992, Crescent Software Inc. a conçu le contrôle de communication utilisateur mscomm.vbx spécifiquement pour VB. Il offre des capacités de communication série pour l'envoi et la réception de données via le port série. Il inclut non seulement les fonctions complétées par les 16 fonctions de communication série de Windows. API et a développé davantage d'attributs d'objet qui facilitent la conception des utilisateurs pour répondre aux besoins de différents utilisateurs et de différentes entreprises. À l'heure actuelle, de nombreux documents VB nationaux impliquent rarement l'introduction de ce contrôle de communication. Cet article présentera en détail les méthodes de contrôle et de programmation de la communication mscomm.vbx et donnera un programme de communication de base basé sur un exemple de travail.
Description du contrôle de communication 1mscomm.vbx
Le contrôle de communication mscomm.vbx peut être directement ajouté au formulaire à partir de la boîte à outils VB et peut être utilisé pour la communication. S'il n'y a pas de contrôle de ce type dans la boîte à outils, utilisez les contrôles personnalisés des outils pour ajouter mscomm.vbx du sous-répertoire système de Windows à la boîte à outils de vb.
1.1 Méthodes de communication
mscomm.vbx propose 2 manières différentes de gérer et de résoudre les problèmes de développement et de conception de divers logiciels de communication
1. Piloté par les événements. Elle est similaire à la fonction de rappel de fenêtre lors de l'écriture de logiciels Windows en C/C et constitue un moyen puissant de résoudre les problèmes. Dans le travail réel, nous devons souvent faire face à de nombreux événements liés à la communication. Par exemple : lorsque les données de ligne arrivent à l'extrémité locale ou que l'état de la ligne cd et de la ligne de signal rts change, nous devons utiliser les événements correspondants pour suivre et traiter. Ce contrôle est utilisé. L'événement oncomm est implémenté, ce qui inclut également la détection et la gestion des erreurs de communication et d'autres problèmes. La valeur commevent renvoie l'événement de communication ou le code numérique d'erreur le plus récent. Des exemples détaillés d’erreurs et d’événements de contrôles de communication incluent :
mscomm-er-break a reçu 1 signal de pause
délai d'attente du signal mscomm-er-cdtocd
…
changements de signal mscomm-ev-cdcd
…
2. Méthode d'enquête. Il est de la responsabilité du programmeur de lire la valeur de commevent et de gérer les erreurs ou événements qui se produisent. La conception d’applications généralement simples peut adopter cette approche.
1.2 Propriétés des contrôles de communication
La clé de l’utilisation des contrôles de communication pour compiler des programmes de communication est de comprendre et de définir avec précision les propriétés des contrôles de communication. mscomm.vbx fournit 27 propriétés sur les contrôles de communication, telles que :
commport : définit ou renvoie le numéro du port de communication.
paramètres : définit ou renvoie le format de communication des données sous la forme d'une chaîne : débit en bauds, parité, bits de données et bits d'arrêt.
portopen : définit ou renvoie l'état du port de communication (y compris l'ouverture et la fermeture d'un port de communication)
…
3. Exemples
L'arrière-plan d'application de ce programme est le logiciel du système de surveillance automatique du précipitateur électrostatique dcc95, qui résout le problème de communication entre 1 ordinateur industriel (station principale) et 32 microcontrôleurs (sous-stations). La structure du réseau de bus entre la station principale et la sous-station adopte la norme de communication RS-485 et effectue la communication de données sous forme de questions et réponses. Étant donné que les 32 sous-stations envoient des commandes de communication (commandes de liaison descendante) à la station maître, la station maître continue d'envoyer des commandes de liaison descendante après avoir reçu les commandes de réponse correspondantes (commandes de liaison montante) renvoyées par les sous-stations. Selon les exigences des fonctions du système, la station maître doit envoyer deux types de commandes : (1) une commande synchrone, qui est déclenchée par une minuterie et est envoyée une fois tous les cycles ls ; (2) une commande apériodique, qui est déclenchée par le ; opérateur Provoqué par le déplacement du bouton de commande correspondant, il est envoyé de manière apériodique. Le logiciel du système de surveillance automatique est installé sur la station principale, et le programme de communication est également installé sur la station principale dans le cadre du logiciel du système de surveillance automatique.
Cet article répertorie uniquement une liste de programmes de démonstration de base à tester lors du débogage des programmes de communication. Pendant le test, un PC a été utilisé comme station principale et un autre PC a simulé le travail de 32 sous-stations. Les deux PC ont utilisé la communication par port série rs232c. Ajoutez 1 contrôle de communication, 2 contrôles de minuterie et 1 contrôle de bouton de commande au formulaire de programme de démonstration de communication (formulaire) de la station principale. Le contrôle de communication (mscomm1) est utilisé pour accéder au port série, envoyer et recevoir des données (contrôle de minuterie périodique). périodique) est utilisé pour contrôler la station principale afin d'envoyer des commandes périodiques à chaque sous-station toutes les secondes ; la commande du bouton de commande (commande non périodique) et la commande de minuterie non périodique (non périodique) sont utilisées pour envoyer des commandes non périodiques. La transmission de données utilise une communication basée sur les événements. L'attribut rtreshlod est défini en fonction de différentes commandes d'envoi, provoquant ainsi la réception de données par l'événement oncomm.
2.1 Procédures d'initialisation de chaque contrôle du formulaire
Définissez les paramètres de fonctionnement du port série de communication, définissez l'intervalle d'interruption de la minuterie périodique sur ls et l'intervalle d'interruption de la minuterie non périodique sur 0,5 s.
sous-formulaire-load()
mscomm1.commport=2'Sélectionnez le port série com2
mscomm1.settings="9600,n8,1"'Débit en bauds 9600, pas de bit de parité, 8 bits de données et 1 bit d'arrêt
mscomm1.inputlen=0'input lira tout le contenu du tampon de réception
mscomm1.inbuffersize=1024'Définit la longueur en octets du tampon de réception
mscomm1.portopen=true'Ouvrez le port de communication
mscomm1.inbuffercount=0'Effacer les données du tampon d'envoi
mscomm1.outbuffercount=0'Effacer les données du tampon de réception
périodique.inteval=100'Définissez l'intervalle de synchronisation ls afin que la commande de télémétrie soit envoyée une fois tous les ls
nonperiodic.inteval=500'Définissez l'intervalle de synchronisation de 0,5 s et demandez si le bouton de commande est activé pour déterminer s'il faut envoyer des commandes périodiques
command-PRessed=false'Le bouton de commande est inactif
pendant-periodic=false'La transmission des données de commande périodique n'a pas encore commencé
pendant-nonpériodique=false'non-périodique, la transmission des données de commande n'a pas encore commencé
fin du sous-titre
2.2 Programme d'envoi de commandes apériodiques
Selon l'état du bouton de commande et l'état de transmission des données de commande périodique, des commandes apériodiques sont envoyées dans le programme d'interruption de la minuterie non périodique.
commande-clic-subnonpériodique()
command-pressed=true'activation du bouton de commande
fin du sous-titre
minuterie subnonpériodique()
ifduring-periodic=trueorcommand-pressed=false
thenexitsub' Si la transmission des données de commande périodique n'est pas terminée ou si le bouton de commande est activé, quittez le programme qui envoie des commandes apériodiques.
command-pressed=false'Le bouton de commande revient à l'état inactif
callenddata(nonperiodic-command)'Envoyer des commandes non périodiques
mscomm1.rthreshold=r-nonperiodic-byte'Après avoir envoyé la commande apériodique, définissez l'attribut rthreshold afin que la station maître déclenche l'événement oncomm après avoir reçu le nombre d'octets défini.
fin du sous-titre
2.3programme de minuterie périodique
Envoyer des commandes périodiques dans le programme d'interruption du temporisateur périodique :
minuterie sous-périodique()
ifduring-nonperiodic=truethenexitsub'Si la transmission des données de commande non périodique n'est pas encore terminée, quittez le programme d'envoi de commandes apériodiques.
pendant-periodic=true' définit l'état de transmission des données de commande périodique sur en cours
callenddata(periodic-command)'envoie des commandes périodiques
mscomm1.rthreshold=r-periodic-byte'Après l'envoi de la commande périodique, la station maître reçoit des octets r-remot-edata-byte, qui peuvent déclencher l'événement oncomm
fin du sous-titre
Programme d'événements 2.4oncomm
Selon la valeur de réglage de l'attribut rthreshold, lorsque le caractère d'octet correspondant est reçu dans le tampon de réception, l'événement oncomm est déclenché et les données sont reçues dans le programme d'interruption.
submscomm1-oncomm()
selectcasemscomm1.commevent'Ici, vous pouvez insérer du code pour gérer diverses erreurs ou événements.
casemscomm-ev-recevoir
chaîne de réception $ = mscomm1.input
selectcasemscomm1.rthreshold
données de réponse caser-periodic-byte'de la commande périodique
calldisposedata(periodic-command)'traite les données reçues
pendantpériodique=false' définit l'état de transmission des données de commande périodique pour qu'il se termine
données de réponse à la commande caser-nonpériodique-byte'non périodique
calldisposedata (commande non périodique) 'traite les données reçues
pendant-nonpériodique=false' définit l'état de transmission des données de commande non périodique pour mettre fin
fin de sélection
fin de sélection
fin du sous-titre
Avec la mise à niveau continue de la version vb, vb deviendra l'outil de développement d'applications le plus rapide, le plus simple à utiliser et le plus puissant, et l'un des outils de premier choix pour le développement de logiciels d'application client/serveur au niveau de l'entreprise. ->