Ghayyas Awan Mahtaab Ответов: 4

Как получить индикатор весовой шкалы в C#


ПРИВЕТ,
Я пытаюсь разработать небольшое программное обеспечение для ведения учета веса в базе данных sql. я использую среду c#. я новичок в c#, но кодирую столько, сколько могу. я закодировал, чтобы получить показания индикатора. но есть некоторые проблемы,,
1. я не могу получить цифры, которые я получаю ? Марк вместо реального чтения.
2. мое значение индикатора-25.07. но взамен я получаю только 1 ? марка.
в гипертерминале я получаю фактические показания, но в моем приложении я получаю проблему.



Рис1
Рис2
Image3
Image4

Что я уже пробовал:

Я через порт RS232. Наименование показателя (Дельта-7 США Инк). руководство пользователя прилагается.

Richard MacCutchan

Вам нужно использовать свой отладчик, чтобы точно увидеть, какие значения возвращаются устройством. Проверьте руководство SDK, чтобы убедиться, что ваши сообщения верны. И, наконец, мы не можем помочь, не видя ваш код.

Ghayyas Awan Mahtaab

Код прилагается ниже...пожалуйста, ознакомьтесь с ним

4 Ответов

Рейтинг:
6

Ghayyas Awan Mahtaab

Код, который я использую, находится здесь.
И результат также прилагается здесь.
этот результат я получил, когда на весах не было нагрузки (0,00 кг).

полученное изображение

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace Test2
{
    public partial class Form1 : Form
    {
        int sec;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            serialPort1.Close();
            serialPort1.PortName = "COM1";
            serialPort1.BaudRate = 9600;
            serialPort1.Parity = Parity.None;
            serialPort1.DataBits = 8;
                serialPort1.StopBits=StopBits.One;
                serialPort1.ReceivedBytesThreshold = 1;
                serialPort1.DtrEnable = true;
                serialPort1.RtsEnable = true;
                serialPort1.Open();
                int reading = serialPort1.ReadByte();
                label1.Text = reading.ToString();
                
            timer1.Interval=1000;
            timer1.Enabled=true;



            sec = 0;

        }
        private void readData()
        {
            label1.Text = serialPort1.ReadExisting();
        
        
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            readData();
        }
    }
}


Richard MacCutchan

Вы читаете один байт и отображаете его как целое число. Правильно ли это в соответствии с документацией к устройству?

Ghayyas Awan Mahtaab

Моя документация по шкале прилагается в моем первом посте. Все строки я закодировал с помощью потоков codeproject. но, как я знаю, каждый индикатор имеет свои различные технические характеристики и нуждается в различных настройках..вот почему мне нужна помощь...потому что коды, доступные в Интернете, не могут полностью удовлетворить мои требования....

Рейтинг:
34

OriginalGriff

Начните с проверки параметров связи с помощью HyperTerminal или аналогичного - когда вы сможете правильно считывать данные с его помощью, перенесите эти параметры (скорость передачи данных, бит на символ, четность, стоп-биты) в свой код и посмотрите, сможете ли вы дублировать то, что показывает hyperterminal. Пока вы не сделаете этого, вы не можете быть уверены, что, черт возьми, происходит!


CPallini

5.

Ghayyas Awan Mahtaab

Я сделал приложение на vb для целей teating...
Я получил некоторые числовые значения в приложении vb...но в обратном порядке format...my нагрузка составляла 2,5 кг, но приложение показывало 005,2 в тексте этикетки...
В vb я был близок к успеху, но не знаю, как я могу получить значение в правильном формате....

OriginalGriff

Так что начните с отладчика и посмотрите, что именно вы получаете!

Ghayyas Awan Mahtaab

Хорошо...Я сделаю это утром...
Результаты я опубликую завтра...
Спасибо всем за то, что были со мной...и уделяли мне драгоценное время...

Ghayyas Awan Mahtaab

Мой основной проект находится в c#...
Могу ли я добавить в него форму vb?...если да, то я хотел бы получить помощь в получении правильных результатов в правильном формате...
Ваше мнение может привести меня к успеху. Спасибо заранее

Рейтинг:
0

Gerry Schmitz

"?" означает, что вам нужно извлечь / разобрать "байт состояния", чтобы получить дополнительную информацию о текущем состоянии шкалы (например, "в движении" и т. д.).


Ghayyas Awan Mahtaab

Весы находятся в стабильном состоянии...
если масштаб внесет какие-либо изменения в чтение ... вывод в приложении мигает...

Gerry Schmitz

Значение имеет вывод "шкалы", а не "приложение".

"Приложение" не интерпретирует реакцию шкалы должным образом.

(Я использовал "в движении" в качестве примера; тот факт, что он "стабилен" сейчас, не означает, что он был стабилен тогда; или была другая проблема; вот на что указывает"?".)

Ghayyas Awan Mahtaab

Серьезно, я не знаю, что делать...и где я делаю неправильно...

Gerry Schmitz

Документация, которую вы показали, предназначена для "отображения"; она бесполезна для "общения" со шкалой.

И чтобы правильно общаться со шкалой, вы посылаете "команду", и она дает "ответ". Тот факт, что вы только "читаете", не имеет смысла.

Gerry Schmitz

Получите соответствующую "техническую документацию" ("API").

Больше ничего не выйдет.

Ghayyas Awan Mahtaab

Джерри!
Я действительно не знаю, что я сделал с кодом..
Есть 2 кода
Читать байты и читать существующие
Я использовал его, копируя некоторые инструкции из интернета...но я не знаю, чем они отличаются друг от друга.

Gerry Schmitz

Это тот тип документации, на который ссылаются "все". Пока вы не найдете эквивалент для своей шкалы, вы напрасно тратите свое время.

https://www.mt.com/dam/P5/labtec/03_Precision_Balances/07_Miscellaneous/OI_Analytical_SICS_EN.pdf

Чтобы создать стабильного "водителя", требуется, по крайней мере, несколько недель; вы находитесь "далеко".

Рейтинг:
0

Ghayyas Awan Mahtaab

эта дискуссия должна быть закрыта. я решил свою проблему, покинув проект c#. в vb.net я получил чтение, как я хочу. спасибо всем друзьям, которые были со мной...


Patrice T

Вопрос "закрывается" принятием полезных решений.
Но кто-то всегда может опубликовать дополнительные решения.

Кстати, это не решение, и его следует удалить, чтобы предотвратить понижение голосов.

Member 13012922

У Меня Те Же Проблемы .Можете ли вы отправить свое решение на мою электронную почту
mohgabar1@gmail.com