0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 2
1

Com port

20.01.2014, 13:20. Показов 1125. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!!! У меня такая проблема, есть некое устройство которое работает по протоколу MODBUS RTU(к компъютеру подключено через comport), на него подается команда на считывание информации, оно в ответ передает даныные(ток, напряжение, состояние входов). Команду на считывание я подал, устройство ответило, но в ответе вместо 11 байт приходит 22.
Ответ который я получаю:
01 00 03 00 06 00 03 00 20 04 03 00 22 20 00 00 00 00 40 04 4C 04
Нужный ответ:
01 03 06 03 D0 03 97 00 00 51 3C

Код:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
' Кнопка "Запрос"
Private Sub Command3_Click()
Dim Buffer() As Byte
Dim voltage As Integer
Dim Current As Integer
TextI = ""
If MSComm1.PortOpen = False Then
    Text1.Text = "ERROR SEND"
End If
If MSComm1.PortOpen = True Then
    MSComm1.Output = Chr(&H1) & Chr(&H3) & Chr(&H0) & Chr(&H5) & Chr(&H0) & Chr(&H3) & Chr(&H15) & Chr(&HCA)
    Buffer = MSComm1.Input
    Debug.Print "=== BOF ==="
For i = LBound(Buffer) To UBound(Buffer)
Debug.Print Right("0" & Hex(Buffer(i)), 2) & " ";
voltage = 256 * Buffer(6) + Buffer(8)
Text2.Text = voltage & "B"
Current = 256 * Buffer(10) + Buffer(12)
Text3.Text = Current & "A"
Text1.Text = Buffer(10) & " " & Buffer(11) & " " & Buffer(12) & " " & Buffer(13)
 
Next i
Debug.Print
Debug.Print "=== EOF ==="
 
End If
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.01.2014, 13:20
Ответы с готовыми решениями:

Serial Port (RS232)
Пишу небольшую программулину, и запенился на паре маментов. Первый вопрос: Мне надо выставить...

Как работать с модемом через RS232 (COM-port) и AT командами
Добрый день, скажите плиз, какие библиотеки необходимы для работы с модемом через последовательный...

Работа с UDP протоколом за роутером (Port Restricted Cone NAT и в добавок Random port )
Посылая сообщение на внешний ip Nat роутера меняет порт.... и при попытки отправить ответ и...

Работа Scilab Serial Port Library (COM port)
Как работает Scilab Serial Port Library ? (может кто то встречал описание подробное, поделитесь...

3
 Аватар для vodav
572 / 141 / 37
Регистрация: 12.03.2012
Сообщений: 403
20.01.2014, 16:35 2
Свойство MSComm.Input имеет тип String, попробуйте работать с ним как со строкой.
Еще:
1. Очищайте порт перед каждым обращением к нему.
2. После запроса в порт установите паузу на несколько ms (решите другую задачу или организуйте пустой цикл)
3. Лучше применить MODBUS ASCII, он не критичен к временным параметрам передачи.
0
0 / 0 / 0
Регистрация: 20.01.2014
Сообщений: 2
20.01.2014, 17:39  [ТС] 3
vodav, нужен именно MODBUS RTU.
0
 Аватар для vodav
572 / 141 / 37
Регистрация: 12.03.2012
Сообщений: 403
20.01.2014, 18:59 4
Цитата Сообщение от livtaras Посмотреть сообщение
нужен именно MODBUS RTU
А я что? Я -пожалуйста, я, вообще, за любой кипишь, кроме голодовки. Только вот часть описания алгоритма RTU: "Если интервал тишины продолжительностью 1.5 [символа] возник во время передачи фрейма, принимающее устройство заканчивает прием сообщения и следующий байт будет воспринят как начало следующего сообщения."
Заставить винды работать с соблюдением этого условия -для Вас это будет хорошей школой.
0
20.01.2014, 18:59
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.01.2014, 18:59
Помогаю со студенческими работами здесь

Com port
Здравствуйте, столкнулся с некой проблемкой, имеется вот такой код procedure...

Com port
Добрый день! Уважаемые форумчане! Помогите разобраться с кадрами ком порта. Отправляю запрос на...

ip:port
data:=Tstringlist.create; data.Add('user='+Login); data.Add('password='+Password); ...

COM Port
Была тут тема про ком-порт. Но там линк был на статью, где какая-то лабуда с файлами. А есть ли...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Преобразование полей (элементов управления содержимым) в обычный текст
РоΜа 23.01.2025
Возникла необходимость преобразовать поля в текст (те, что на вкладке разработчик добавляются) . Помучившись родил следующее: Sub ПоляВТекст() Преобразует все поля в текст (даты, текст,. . .
Как проверить существование директории в скрипте Bash
bt_guru 23.01.2025
При разработке скриптов Bash одной из ключевых задач является корректная работа с файловой системой, где особое место занимает проверка существования директорий. Эта операция становится критически. . .
Как работают срезы (slice) в Python
bytestream 23.01.2025
Python предоставляет разработчикам мощный и гибкий инструмент для работы с последовательностями данных - срезы (slices). Эта функциональность позволяет извлекать, модифицировать и управлять. . .
Как удалить подмодуль (submodule) в Git
bytestream 23.01.2025
При работе с крупными проектами в системе контроля версий Git разработчики часто сталкиваются с необходимостью управления зависимостями и внешними компонентами. Подмодули (submodules) представляют. . .
В чем разница между @staticmethod и @classmethod в Python. Декораторы методов
bytestream 23.01.2025
В Python декораторы методов представляют собой мощный инструмент, позволяющий модифицировать поведение функций и методов без изменения их исходного кода. Эта возможность является одной из. . .
Как преобразовать InputStream в String в Java
bytestream 23.01.2025
В мире Java-разработки работа с потоками данных является одной из ключевых операций при создании современных приложений. InputStream, как фундаментальный класс для обработки входных потоков данных,. . .
Как обновить форк (ответвление) репозитория в Git
bytestream 23.01.2025
Одним из наиболее мощных инструментов Git для организации совместной работы является механизм форкинга репозиториев, который позволяет создавать независимые копии проектов для дальнейшей разработки. . . .
Как работает async/await в C#. Асинхронное программировани­е в .NET
bytestream 23.01.2025
Введение в асинхронное программирование Асинхронное программирование представляет собой важнейшую концепцию современной разработки программного обеспечения, особенно в контексте создания. . .
КуМир: полное руководство
bytestream 23.01.2025
Введение в КуМир: история создания и назначение КуМир (Комплект Учебных МИров) представляет собой образовательную среду программирования, которая была создана для обучения основам алгоритмизации и. . .
Что такое OLAP. Где и как использовать многомерный анализ данных
bytestream 23.01.2025
Введение в OLAP-технологии В современном мире бизнес-аналитика и обработка больших массивов данных играют ключевую роль в принятии стратегических решений. Организации накапливают огромные объемы. . .
MongoDB: что это, для чего нужна и как использовать
bytestream 23.01.2025
Введение в MongoDB: современная документоориентированная СУБД В современном мире разработки программного обеспечения выбор правильной системы управления базами данных является критически важным. . .
Как использовать закрытый ключ шифрования в Git. Шифрование в Git
bytestream 23.01.2025
Установка и настройка закрытых ключей в Git предоставляет дополнительный уровень безопасности для работы с репозиториями. Для начала необходимо создать пару ключей, обычно это осуществляется с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru