Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 236

/ вопрос открыт /

Здравствуйте, уважаемые Эксперты!

Помогите пожалуйста.

Первый раз столкнулся с такой проблемой...

============
Есть весовой индикатор CI-6000, который подсоединен к компьютеру по RS-232.
Он передает на RS-232 в непрерывном режиме данные о весе.

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

============
Проблема в приеме данных от весового индикатора.

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

у другой библиотеки в описании процедур есть код для языка C.

=====================================================

НО КАК ЭТИ БИБЛИОТЕКИ ПРИКРУТИТЬ К DELPHI?.. НЕЗНАЮ.

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Приложение:
  1.  
  2.  
  3. =================
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12. 1 : COM1;
  13. 2 : COM2;
  14. 3 : COM3;
  15. 4 : COM4;
  16. 5 : COM5;
  17. 6 : COM6;
  18. 7 : COM7;
  19. 8 : COM8;
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27. =========================================
  28. ==========================================
  29. ==========================================
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46. Connect(LONG nCom, LONG Speed)
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60. Update()
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83. Disconnect()
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92. COM_DLL_Ci5or6Lib.Ci5or6Class ci = null;
  93.  
  94. try
  95. {
  96. ci = new COM_DLL_Ci5or6Lib.Ci5or6Class();
  97. ci.Connect(3, 9600);
  98. ci.Update();
  99.  
  100.  
  101. }
  102. catch (Exception ex)
  103. {
  104. MessageBox.Show(ex.ToString());
  105. }
  106. finally
  107. {
  108. ci.Disconnect();
  109. }
  110.  


pepelyaev Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: pepelyaev (статус: Посетитель)
Вопрос отправлен: 27 декабря 2007, 17:09
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: ANBsoft

Здравствуйте, pepsan!
Приходилось работать с 6000 и 5500 индикатором, у них сильно отличается формат команды и ответа.
Я работал с коммандным режимом, но в принципе непрерывный даже проще.
Если память не подводит, то длина ответа у индикатора 22 байта (формат ответа описан в документации на индикатор, но у меня нет его сейчас под рукой, давно дело было), просто считываем с порта 44 байта, находим стартовый байт (описан в документации), отсчитываем от него 22 байта, это и есть ответ индикатора, расшифровываем его и все.
Надеюсь помог, успехов.

Ответ отправил: ANBsoft (статус: Студент)
Время отправки: 27 декабря 2007, 18:00
Оценка за ответ: 5

Комментарий к оценке: Очень приятно, что есть люди которые щупали эти индикаторы...
Спасибо за ответ.

Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 28 декабря 2007, 00:00; участников в обсуждении: 1.
ANBsoft

ANBsoft (статус: Студент), 28 декабря 2007, 00:00 [#1]:

Или второй вариант:
считывает все из буфера, но анализируеа последние 44 байта.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:45
Выполнено за 0.02 сек.