Comment faire pour afficher le poids de la pesée de l'échelle dans une zone de texte via le port série RS-232 ou usb convertisseur?
J'ai été affecté à l'affichage du poids de la pesée de l'échelle (CAS CI-201A) dans une zone de texte à l'aide de C#. Le poids sera envoyé via le port série RS-232 ou USB convertisseur. L'échelle est avec moi, mais je ne sais pas par où commencer. Comment puis-je atteindre mon objectif?
Qu'est-ce que vous causer des problèmes? La RS232 ou partie de la zone de texte de la partie? Qu'avez-vous essayé?
je ne sais pas par où commencer 🙁
J'aimerais commencer par l'ajout d'une référence pour le DDL qui vous donne accès à l'API de l'échelle... Page 73 à partir de semble pertinente.
Essayez de diviser le problème en petits morceaux. Pouvez-vous afficher une zone de texte et d'afficher une valeur en elle? Une fois que vous pouvez le faire, pensez à la façon d'obtenir la valeur de la balance; vous devez d'abord vous connecter à la balance, alors vous devez lire la valeur.
où puis-je trouver le DDL? désolé si mes questions à partir de semble idiot parce que je suis un débutant complet.
je ne sais pas par où commencer 🙁
J'aimerais commencer par l'ajout d'une référence pour le DDL qui vous donne accès à l'API de l'échelle... Page 73 à partir de semble pertinente.
Essayez de diviser le problème en petits morceaux. Pouvez-vous afficher une zone de texte et d'afficher une valeur en elle? Une fois que vous pouvez le faire, pensez à la façon d'obtenir la valeur de la balance; vous devez d'abord vous connecter à la balance, alors vous devez lire la valeur.
où puis-je trouver le DDL? désolé si mes questions à partir de semble idiot parce que je suis un débutant complet.
OriginalL'auteur user1398000 | 2012-05-16
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé quelque chose encore?
Si vous souhaitez utiliser le port série, il convient de donner à l'utilisateur un moyen de sélectionner le port à utiliser. Cela peut être fait facilement, par le remplissage d'une zone de liste déroulante avec tous les ports disponibles.
Ce code utilise un formulaire avec une zone de liste déroulante sur elle, appelé "comboBox1" (par Défaut).
Vous aurez besoin d'ajouter:
à l'aide de directives.
Puis ajouter un bouton (button1) et une zone de texte multiligne (textbox1) à la forme et ajoutez ce code:
Cela implique également d'ajouter:
juste en dessous de l'ouverture des crochets de
Après avoir cliqué sur le bouton, toutes les données reçues à partir de cette communication sera affiché en tant que valeurs hexadécimales dans la zone de texte.
AVERTISSEMENT: Le code ci-dessus ne contient PAS de gestion d'erreur et va générer des erreurs si button1 est cliqué plusieurs fois, en raison du fait que l'instance précédente de "SerialPort" n'est pas fermé correctement. Rappelez-vous ce lors de l'utilisation de cet exemple.
Ce Qui Concerne Nico
Code Complet:
Qui veut probablement dire qu'il n'y a pas de communication entrante sur le port ou vous avez le mauvais port. Veuillez vous assurer que la balance est en fait l'envoi de quelque chose, avant de s'inquiéter à propos de l'écriture d'un logiciel. Khôi a donné quelques suggestions quant à la façon de le faire.
Aussi, a changé le gestionnaire d'événement à l'aide de l'invocation à exécuter dans le thread de l'INTERFACE utilisateur. Cela est nécessaire parce que l'événement et l'INTERFACE utilisateur sont les Mises à jour ne se passe pas dans le même thread. De Plus, j'ai testé le code. Il fonctionne comme prévu. Donc, il est vraiment très probable que vous n'avez aucune communication entrante.
salut.. après avoir joué avec l'échelle, j'ai réussi à obtenir cette sortie [Écouter sur le port COM1... 30 30 33 33 20 49 44 5F 30 30 3A 20 20 20 31 30 2E 36 20 6B 67 20 0D 0A 0D 0A] après avoir appuyé sur le bouton d'impression sur elle.. ce que les moyens de sortie & que faire ensuite?
Eh bien, ces valeurs hexadécimales sont ASCII pour la chaîne suivante: "0033 ID_00: 10.6 kg", Il y a votre poids.
OriginalL'auteur Nicolas
Tout d'abord, avant de commencer à coder quoi que ce soit, je voudrais vérifier si vous utilisez le câble droit. Essayez d'ouvrir un terminal série de votre choix (Hyperterminal, mastic) et vérifiez s'il existe des données à tous.
Assurez-vous de configurer le même débit en bauds, bits d'arrêt parité et sur à la fois l'échelle des poids et votre programme de terminal.
Si vous recevez des données (le programme de terminal devrait au moins afficher des ordures), alors vous pouvez passer au codage. Si non, vérifiez si vous utilisez le câble droit (null modem aka croisés).
Lorsque vous êtes loin, alors vous pouvez utiliser le
SerialPort
classe de C#http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx
OriginalL'auteur Khôi
Sur cette base:
Étant le code ASCII du caractère pour cette:
Vous pouvez obtenir le résultat en découpant la chaîne reçue. En supposant que votre auditeur met les octets dans un tableau
byte[] serialReceived
:Vous pouvez upvote réponses qui ont été utiles et d'accepter une réponse pour les futurs lecteurs de cette question.
Que faire si votre pré données est inférieure à 13 chiffres? et u sont à l'aide de plusieurs scalers avec différents avant de la ligne de données de tailles?
OriginalL'auteur Adam Casey
J'ai été en utilisant Anto sujesh du Code, mais j'ai eu le problème, certaines des valeurs que j'ai reçu de l'échelle ont été corrompues. Je l'ai résolu en mémoire tampon les valeurs dans un fichier de cache.
OriginalL'auteur Sardar Agabejli
basé sur adam suggestion que je me suis converti à la sortie de format lisible par l'homme ( à partir de l'ASCII vers UTF8 )
je met les octets dans un tableau de byte[]
voici tout le code de travail
si vous utilisez Un&D EK V Modèle de Calibration : ET EK-610V. vous avez l'utilisation de BaudRate = 2400; et les bits de données = 7
Remarque : si vous obtenez un résultat comme ceci
vous devez vérifier le Débit en bauds,bits de données (reportez-vous à votre appareil de pesage manuel ) ou vérifier votre câble
OriginalL'auteur Anto sujesh
OriginalL'auteur Minu Haris
OriginalL'auteur Minu Haris