Страницы: 1
RSS
Работа с виртуальным СОМ-портом из VBA
 
Всем привет!
У кого есть опыт работы по считыванию данных с СОМ-порта?
Суть проблемы: на удалённом объекте есть некое оборудование. По радиоканалу получаем от него данные, специализированное ПО считывает эти данные и обрабатывает, но мне нужно в Excel сделать свою обработку. Задача - считать эти данные. Поиском кое-что нашлось, но смущает команда MSComm1.PortOpen = True - порт ведь уже открыт и, если я правильно понимаю, не даст "присосаться" другому потребителю ))Такой вывод делаю из того, что на работе пробовал к уже открытому порту подключить другую программу. Точнее - из той другой программы пытался открыть этот порт и получал ошибку.
 
Юрий!
На старом форуме Володя (ZVI) приводил пример обращения к COM порту id=24140
Еще был макрос id=40051
На сайте http://www.kernelchip.ru/pcports/PS058.php есть программы, только на СИ
Может что-то будет полезным.
 
Цитата
Юрий М написал:
что на работе пробовал к уже открытому порту подключить другую программу
Все верно Юра , может только одна прога с портом работать в этом случае.
Возможный выход.
Есть специальная прога, название не помню , она создает виртуальный компорт и связывает с нужным портом.
В таком случае можно подключится для съема данных паралельно.
Изменено: Doober - 12.03.2016 02:26:40
 
Kuzmich, спасибо! По ссылке почитал, а пример от ZVI пока не нашёл.
Серёж, так у меня и так при помощи nPort созданы эти самые виртуальные порты.
 
Юра, будет возможность.стучись,подключусь через тимвивер и посмотрим что к чему.
У меня есть чем работать с компортом.
 
Добрый день. Нужна помощь. Необходимо "опросить" (получить данные) оборудование,  отправив  (команду "0d 84 58 00 00 00 00 01 01 02 00 b7 0e") в COM порт в hex формате. Когда отправляю ниже приведенным кодом, данные уходят как String, соответственно оборудование не отвечает. пробовал разные варианты, но не получилось. Помогите допилить.
Скрытый текст
Изменено: Виктор Степанович Семенчук - 04.11.2016 11:02:40
 
Виктор Степанович Семенчук, попробуйте
Код
Const CMD = "0d 84 58 00 00 00 00 01 01 02 00 b7 0e"
Dim aCmd$(), i&
  aCmd = Split(CMD)
  ReDim b(0 To UBound(aCmd)) As Byte
  For i = 0 To UBound(b)
    b(i) = "&h" & aCmd(i)
  Next
  MSComm1.Output = b
  MSComm1.Output = CVar(b) 'или так, если предыдущаа строка не сработает
 
Вообще-то вопрос другой и следовало создать отдельную тему
 
Все работает. Спасибо.
Страницы: 1
Наверх