powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Работа с COM-портом
24 сообщений из 24, страница 1 из 1
Работа с COM-портом
    #33391055
OLga_Tv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запуталась окончательно.
Есть весовой терминал (протокол обмена в прикрепленном файле)
пользуюсь MSComm
какдолжна выглядеть команда
thisform.Olecontrol1.output=???? и thisform.Olecontrol1.input=????
чтобы получить значение массы с терминала.
Заранее большое спасибо!!!
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33393623
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi OLga_Tv!

А сделать то-же самое, но чтобы не надо было глаза ломать никак нельзя? Вам
то проще, имея оригинал, набрать всё в точности в виде простого текста...
А вообще работа с MSCOMM обсуждалась уже столько раз...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33393658
luser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пиши на lexmal@inbox.ru
У него есть самописная FLL-ка, с описанием и функциями асинхронной работы с портами, от СОM до Win Sock.
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33394938
OLga_Tv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вся проблема в том что я никак не могу понять что должна послать и как принять данные с Com-порта. Пробовала с модемом все работает. А с весами нет. Например послав на сомманду 10H вместо веса получаю FF
вопрос как должны выглядеть команды thisform.Olecontrol1.output=???? и thisform.Olecontrol1.input=????
когда я посылаю команду 10h????????
Из документации:
Активозировать ->01H + 4байт номера*
Принять данные с индикатора ->10H; <-9 байт индикатора
принять данные о пассивной клавише->11H;<-1 байт клавиши
сбросит пассивную клавишу ->19H
принять активную клавишу ->14H; <-1 байт клавиши
выдать активную клавишу ->13H; <-1 байт клавиши*
сбросить активную клавишу ->15H;*
выдать данные на индикатор ->12H + 8 байт данных;*
перевести терминат в индикацию веса ->18H*
произвести установку нуля ->0DH*
на команды отмеченные "*" прибор выдает подтверждение кодом #FF
после выдачи в канал активной клавиши необходимо сбросить активную клавишу
прием данных с индикатора: в последовательный каналпослать команду 10h. в ответ на данную команду терминал выдаст строку из 9 байт символьного формата. первый байт символ "=", 2-8 байт соответствует содержимому непосредственно индикатора терминала, последний байт- состояние трех информациооных светодиодов. Пример- '=0.00000$'.
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33396059
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi OLga_Tv!

10H - это предполагается шестнадцатеричное число 10 - которе в фоксе
вяглыдит как 0x10 - т.е. слать в порт надо CHR(0x10). А приём лучше сделать
в обработчике события OnComm - дабы не делать некрасивого цикла ожидания,
пока изменится InBufferCount. При этом собственно приём данных выгдялит как
lcData = MSComm.Input - потом принятые данные надо "разобрать" в
соответствии с описываемым форматом (поскольку он в основном символьный а не
бинарный это не представляет никакого труда - последний символ можно и
отбросить - если не надо анализировать "состояние светодиодов").

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33401173
OLga_Tv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HI Igor Korolyov
То что 10H шестнадцатеричное число я поняла, только эту команду я посылала в порт в след. виде chr(16), на сколько я понимаю это одно и тоже. В результате терминал мигает и больше ни на что не реагирует и событие OnComm не происходит.
Есть люди которые утверждают что с подобными весами работали под DOS-ом в FOXPRO2. команда chr(16) работала прекрасно. Может быть здесь дело в кодировке символов?
Пробовата MSComm с модемом удалось не только установить соединение но кое-что передать, т.е. проблема вся в том как должна выглядеть команда.
К терминалу прилагалась маленькая демонстрационная программка. Она работает без проблем.
Заранее благодарна за любой совет, уже отчаялось что все это когда-нибудь заработает
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33401280
piki_piki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
? ASC(CHR(0x10))
? CPCONVERT(1251,866,CHR(0x16))
Так точно. Именно в кодировке и дело. CPCONVERT - всегда!
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33401281
piki_piki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну понятно, что ошибся:
Код: plaintext
1.
? ASC(CHR(0x10))
? CPCONVERT( 1251 , 866 ,CHR(0x10))
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33401338
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi piki_piki!

Ну ну, поконвертируй код из нижней части ASCII таблицы :) Баловство это и
тут не нужно.
Посмотри сам изменился что-то или нет после твоего шаманства. 0x10 он и в
Африке 0x10 - конечно если бы была речь про символы с кодами > 128, и именно
про символы (русский текст например), а не про десятичные или
шестнадцатеричные коды - тогда другое дело :)

2 OLga_Tv

- Настройки порта не соответствуют тому что надо девайсу
- Или код в OnComm неправильно написан
- Или про RThreshold забыла - от того и не генерируется событие...
- VFP.AutoYield = .F. где-то до начала работы с этим ActiveX-ом также не
забывай.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33401358
luser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор[Ну ну, поконвертируй код из нижней части ASCII таблицы :) Баловство это и
тут не нужно.
Посмотри сам изменился что-то или нет после твоего шаманства. 0x10 он и в
Африке 0x10 - конечно если бы была речь про символы с кодами > 128, и именно
про символы (русский текст например), а не про десятичные или
шестнадцатеричные коды - тогда другое дело

Игорь, уважаемый Игорь, что вы пишете? Вы в запое или как ?
piki_piki - все правильно написал. Ты парень не путай свои амбиции с реальностью. Заибал уже. паяльнок в жопу получишь. Че рубишь правильные ответы? Ты сперва попробуй - потом вякай. И если топик сотрут, у заявлюсь на хост. Все сказал. Иди проспись, пьянь.
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33401390
OLga_Tv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что такое VFP.AutoYield = .F?
Все остальное вроде бы не забыла
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33403091
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя объект методы генерить не будет еслти оно = .f. Это для ActiveX свойство такое...

Насчет кодировки солидарен с Игорем. 0x10 символ не переведется.
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33403158
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А пишется вот так _ VFP.AutoYield = .F.
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33403596
Иван Махно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То luser: Прав - не прав, это еще вопрос. Не понятно ваше хамство. Или Вы думаете, что Вас невозможно найти ? Легко - все сервера ведут логи. Тем более ничего радикального и ущимляющее Ваше самолюбие в посте не прозвучало. Вы меня не перестаете удивлять, "товарищ" luser. Но, понять такие выходки можно только если учесть, что за окном осень и у некотрых индивидов случаются обострения.
С уважением, Иван Махно.
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33404208
Вы пишете что демо программа работает, тогда никаких проблемм.

Значит делаем так:

1. Подключаем в разрыв (между терминалом и основным компом) ещё один комп (ПК2). Подключаем перемычкой COM порт основного с COM1 ПК2, COM2 ПК2 с терминалом.
2. пишем для ПК2 небольшую программу перехвата и перенаправления данных между COM1 и COM2. В окне этого перехватчика нужно поставить 2 TextBox(первый- что принимается, второй- что отправляется).
3. Запускаем на основном компьютере демо программу и видим на ПК2 в TextBox-ах что отправляется и принимается.

Далее анализируем или просто копируем посланные команды из TextBox к себе в программу.
Думаю поможет такой трюк!
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33404618
OLga_Tv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый Петров Андрей!
Если вас не затруднит объясниете еще раз.
То что 0x10 символ не переведется я поняла, значит команду посылаю правильную, остается одна надежда на _VFP.AutoYield. На сколько я понимаю по умолчанию оно равно .t., а мне надо его установить в .f. или нет? Но тогда опять вопрос. Дома в отсутствии весов пробовала с модемом. Все работало. отсюда есть подозрение, что и это свойство установлено правильно. Я в полном отчаянии, похоже весы победили.!!!!!!!
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33404625
OLga_Tv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый Петров Андрей!
Если вас не затруднит объясниете еще раз.
То что 0x10 символ не переведется я поняла, значит команду посылаю правильную, остается одна надежда на _VFP.AutoYield. На сколько я понимаю по умолчанию оно равно .t., а мне надо его установить в .f. или нет? Но тогда опять вопрос. Дома в отсутствии весов пробовала с модемом. Все работало. отсюда есть подозрение, что и это свойство установлено правильно. Я в полном отчаянии, похоже весы победили.!!!!!!!
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33404675
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Владимир!

А зачем всё это нужно, если протокол описан?

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33404691
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi OLga_Tv!

Работа из программы и работа из среды несколько отличаются - особенно в
плене всевозможных "задержек", также могут влиять особенности самого
устройства - одни устройства отвечают на запрос практически сразу, другие -
через довольно заметный промежуток времени (можемы как правило весьма
задумчивы при ответе на некоторые команды). Так что всё-же выставить
_VFP.AutoYield = .F. надо.
Для проверки функционирования устройства можно воспользоваться штатной
программой имеющейся практически в любой версии Windows - "Гипертерминалом"
(aka Hyperterminal) - подключись к СОБСТВЕННО порту (не поддаваясь на
попытку подсунуть тебе "модем" как устройство в диалоге подключения) на
котором висят весы, затем где-нить создай символ с кодом 16 и помести его в
буфер обмена (можно в фоксе через _CLIPTEXT = CHR(16), можно в текстовом
редакторе, или в FAR-е, нажав последовательно 1 и 6 на цифровой клавиатуре,
удерживая при этом кнопку Alt - ну и потом любым доступным способом загнав
этот "непечатный" символ в буфер обмена) - затем в меню Edit терминала
выбери "Paste to host" - ну или как там это по-русски будет. При этом данный
символ будет послан на устройство, и если всё правильно, то устройство
пришлёт ответ.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33404826
Hi Владимир!

А зачем всё это нужно, если протокол описан?

Иногда описания бывают не полными!
Может быть нужно после chr(16) послать ещё chr(13) или например так
"{"+chr(16)+"}" или ещё что нибудь.
Поэтому я иногда не верю тому, что написано.
Тот вариант который я предложил развеит все сомнения по поводу кодировки и команд.
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33404884
foxwizard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Владимир__Вы пишете что демо программа работает, тогда никаких проблемм.

Значит делаем так:

1. Подключаем в разрыв (между терминалом и основным компом) ещё один комп (ПК2). Подключаем перемычкой COM порт основного с COM1 ПК2, COM2 ПК2 с терминалом.
Думаю поможет такой трюк!
Зачем так сложно ?
Есть обычные cниферы для сом портов.
http://www.sysinternals.com/utilities/portmon.html
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33406061
OLga_Tv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Igor Korolyov
Большое срасибо что не бросили начиниющего в беде!
К сожалению смогу попробовать только в пятницу, но теперь хотя бы есть что пробовать.
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33406541
luser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь, уже вторник :) Хватит бухать. Какие терминалы. У человека явный протокол. Ты че тормозишь, брат ?
...
Рейтинг: 0 / 0
Работа с COM-портом
    #33415998
OLga_Tv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все получилось после того как
_VFP.AutoYield = .F.
и к команде добавила chr(13)
Всем большое спасибо
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Работа с COM-портом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]