нужно взять данные с com-порта

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

нужно взять данные с com-порта

Сообщение Костя111 » 04.03.2005 (Пт) 15:19

Желательно конечно бы узнать как принимать и отправлять данные через порт.
На com порт данные постумают в виде ASCII кода, хотелось бы получить их и обработать их.
Если есть какие идейки - подскажите а если VB не может справиться с этой задачей то скажите тож...не обижусь :lol:

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 04.03.2005 (Пт) 15:27

mscomm.ocx

MSComm.CommPort = 1
MSComm.PortOpen = True

для приема данных событие OnComm

для отправки MSComm.Output "my string"
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 04.03.2005 (Пт) 15:48

to kif...
Спасиб....ща попробую....если что еще раз обращусь

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 04.03.2005 (Пт) 16:15

этот фай, как я понял нужно сначала установить... ну да ладно с этим я разберусь... а вот поточнее можешь сказать как объяснить бейсику что используется именно этот файл да вообще если тебе не сложно чиркни какую нить примитивную прогу которая будет выкидывать в text.box все что придет на com - порт....
буду оччень признателен.....я ведь только начинаю и мне еще многому придется научиться так что не суди строго

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 04.03.2005 (Пт) 17:14

Код: Выделить всё
Private Sub Form_Load()
  MSComm1.CommPort = 1
  MSComm1.PortOpen = True '
  With MSComm1
    .CommPort = 1
    .Settings = "9600,N,8,1"
    .InputLen = 0
    .PortOpen = True
    .DTREnable = True ' ВЫСТАВИТЬ ГОТОВНОСТЬ ТЕРМИНАЛА
    .RThreshold = 1 ' отрабатывать при получении 1 байта
    .Handshaking = comRTS
  End With
End Sub

Private Sub MSComm1_OnComm()
  Text1.Text = Text1.Text & MSComm1.Input
End Sub
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 05.03.2005 (Сб) 11:08

сразу гасит :
MSComm1.CommPort = 1

ошибка номер 424 ахелп мне не посмотреть... пишет что MSDN коряво встал....

а файл как я понял просто нужно переписать в Windows/system и все.... мож я чего опять накосячил.... по ходу дела придется мне читать про ActivX.....пойду ударюсь в чтение
....resp

Moron
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 02.03.2005 (Ср) 12:28
Откуда: Сами мы местные...

Сообщение Moron » 05.03.2005 (Сб) 11:30

:)
При установке студии поставь галочку AcviveХ в списке устанавливаемых компонентов, MSComm среди них уже есть. OCX-ы кладутся в
<папка винды>\system32 для 2000 и ХР
<папка винды>\system для 98
и требуют регистрации в системе при помощи команды
regsvr32 <имя файла>
После этого в в бейсике в разделе добавления компонент появится этот контрол.

Кстати, часто выгоднее вместо события OnComm использовать таймер и по таймеру проверять
MSComm1.InBufferCount (количество символов во входном буфере).
Не успел глаза продрать - руки уже к клаве тянутся...

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 15.03.2005 (Вт) 15:20

так то оно так....вроде все пашет вот только тест никак не проходит..
подключаю я хомяка к com-порту (из старых запасов) и ... ничего..... tex1.text так и остается text`ом..... у же весь лоб разбил об клаву... объясню суть всего:
Есть у меня контроллер который на выход подает 16 цифр в виде ASCII кода... периодичность примерно 20 сек *(minimum), быть может дело в том что провод связывающий комп и контроллер держиться всего на трех проводах: отправка, прием и общий. Быть может com порт ждет сигнала о готовности но вроде строкой
.Handshaking = comNone киляю всякое управление на фих.
Если кто занимался такой же ерундой подскажите
Moron дай пример твоего кода

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 15.03.2005 (Вт) 15:56

тут все просто, может дело в контроллере?
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 15.03.2005 (Вт) 20:26

сразу гасит :
MSComm1.CommPort = 1


У меня - тоже, ругается, что порт уже открыт :pig: :puker:

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 15.03.2005 (Вт) 21:07

в коде два раза открытие порта - закоментарьте первые две строчки, что вы как маленькие, сами что-ли не можете отладить

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 16.03.2005 (Ср) 10:46

пардон :oops:
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 16.03.2005 (Ср) 19:50

Разбираться - лень :D

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 17.03.2005 (Чт) 9:28

Сделал так что бы порт открывался и закрывался а толку никакого - в текстбоксе как было написано TEXT1 так и остается а я точно знаю что данные идут(на контроллере дисплей есть)
kif писал(а):тут все просто, может дело в контроллере?

если да же дело в нем то какого HyperTerminal все принимает....тут неясность какая то. Причем HT работает только когда отключено управление.....касяк :cry:

Костя
Обычный пользователь
Обычный пользователь
 
Сообщения: 93
Зарегистрирован: 14.02.2005 (Пн) 6:45
Откуда: Новосибирск

Сообщение Костя » 17.03.2005 (Чт) 11:41

А может порт занят другим приложением?
Всё бывает!

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 17.03.2005 (Чт) 13:53

Нет....порт стопудово свободен........тут дело в чем то другом..... ведь HP все нармально принимает а када енту прогу запускаю HT сразу начинает ныть....мол порт занят другим приложением

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 20.03.2005 (Вс) 16:21

kif писал(а):mscomm.ocx

MSComm.CommPort = 1
MSComm.PortOpen = True

для приема данных событие OnComm

для отправки MSComm.Output "my string"


Жутко тормозит или ругается при MSComm.Output "my string"
На это не смотрите! Это не подпись!!!!!!

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 21.03.2005 (Пн) 8:03

Alexander N. Samarin
но у тебя принимает?

Костя
Обычный пользователь
Обычный пользователь
 
Сообщения: 93
Зарегистрирован: 14.02.2005 (Пн) 6:45
Откуда: Новосибирск

Сообщение Костя » 21.03.2005 (Пн) 10:04

А может порт как раз HT и занят?
Всё бывает!

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 21.03.2005 (Пн) 13:13

Ну это уж врядли...я его даж не открываю....самое интересное что кпрога занимает порт, потомучто када я ее запускаю то HT уже не может подключиться.....вот такие пироги

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 21.03.2005 (Пн) 13:18

Костя111 писал(а):Alexander N. Samarin
но у тебя принимает?

Принимает, при отправке ругается, что неправильное использование свойства
На это не смотрите! Это не подпись!!!!!!

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 22.03.2005 (Вт) 8:40

Если ты код не менял (или даж поменял) скинь исходник..... сдается у меня просто лэптоп мозги ебет.....он предназначен для програмирования контроллеров Siemens а com-порт в довесок посадили....так быть может он не корректно работает. А на счет отправки, так меня это не очень интересует, ибо мне нужно только принимать данные

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 22.03.2005 (Вт) 20:47

Самое интересное - в отправке данных. Так почему он ругается? :D
На это не смотрите! Это не подпись!!!!!!

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 23.03.2005 (Ср) 8:40

ХЗ........у меня даж не принимает.....так что ты не у того спрашиваешь...мне интересно - этой проблемой хоть кто нить занимался?Я идиот! Убейте меня, кто-нибудь!??......ты прогу то свою дашь????я себя попробую....
Кстати HT тож не отправляет данные и не воспринимает никакие команды када подключается через com-порт......быть может трабла в самом железе?Я идиот! Убейте меня, кто-нибудь! ты как счиитаешь?

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 23.03.2005 (Ср) 15:42

Прикрепляю весь проект
ОС = Windows 2000

Иногда не ругается, но не отсылает. Жутко тормозит
Вложения
ComTest.zip
(1.58 Кб) Скачиваний: 67
На это не смотрите! Это не подпись!!!!!!

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 25.03.2005 (Пт) 12:28

Сенкс........када попробую то дам знать как у меня работает

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 28.03.2005 (Пн) 8:13

2 Александер:
лять......на компе все работает - лучше не ридумаешь, но када я это дело я пробую лябо на програматоре либо на Book`е опять никуя не происходит. Ну на счет Book`а я еще могу согласиться тк у него нет своего com-порта и я использовал адаптер с USB, но нисмотря на это он све равно определялся как com4. А на нормальном компе работал хоть на com1 хоть com2. Вот ведь терь какая запара, чтоб каждый раз мне придется тащить свой офисный комп к контроллеру......барада и все равно спасибо..терь я хоть убедился что mscomm работает, а то уже было засомневался :lol:

Inferno
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 179
Зарегистрирован: 26.01.2005 (Ср) 1:06

Сообщение Inferno » 29.03.2005 (Вт) 19:08

На каком-то буржуйском сайте когда-то встретил следующее
Код: Выделить всё
.....
Public Declare Function GetCommState Lib "coredll" (hFile As Long, lpDCB As String) As Boolean

PHandle= CreateFile("COM1: ", GENERIC_READ + GENERIC_WRITE, FILE_SHARE_READ + FILE_SHARE_WRITE, vbNullPtr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)
....


Насколько это имеет право на жизнь не знаю, но проверить стоит.

Костя111
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.03.2005 (Пт) 14:59

Сообщение Костя111 » 31.03.2005 (Чт) 11:20

:lol: Если в прошлом коде я хоть че то понимал то в этом ничего!!!!
Выяснилась одна веЩь, Все нормально принимаетяс только на PC прочие ЭВМ по всей видимости используют какие нить другие инструкции и mscomm с ними не контачит, хотя и не конфликтует тож, поэтому я все таки остановлюсь на mscomm`е и буду дальше работать с ним. Большое спасибо тем кто меня терпел все это время :wink:

learnet
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 18.04.2005 (Пн) 8:12

Сообщение learnet » 19.04.2005 (Вт) 18:49

Alexander N. Samarin писал(а):Прикрепляю весь проект
ОС = Windows 2000

Иногда не ругается, но не отсылает. Жутко тормозит


Код: Выделить всё
Private Sub btnSend_Click()
    MSComm1.Output = txtOutput.Text + Chr(13)
End Sub


Здесь просто необходим Enter, у меня тока так заработало

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 77

    TopList