Страница: 1 |
Вопрос: HELP! Помогите в работе с COM- портом HELP! | Добавлено: 25.04.04 09:07 |
Автор вопроса: ![]() |
Дано: промышленный контролер для управления станком, подключен в COM-порт. Проблема: Посылаю ему команды он неправильно на них реагирует (Он не сломан). Нужно: узнать какие команды поступают (генерируются родной программой) на COM-порт и какие приходят от контрола в порт. Программа с которой идут команды -родная и как следствие мало функциональная. т.е. задача перехвата сигнлов на COM- порт и с него. ПОМОГИТЕ! Если можете сделайте исходник, и киньте на CLEVER2003@MAIL.RU Буду очень признателен, и при случае помогу и вам. |
Ответы | Всего ответов: 4 |
Номер ответа: 1 Автор ответа: ![]() ![]() ICQ: 275368971 Вопросов: 8 Ответов: 131 |
Профиль | Цитата | #1 | Добавлено: 27.04.04 16:06 |
А ты какие команды ему посылал? (откудова ты их взял) Как посылал? (неплохо бы увидеть кусок кода) Какие параметры порта? |
Номер ответа: 2 Автор ответа: ![]() ![]() ICQ: 275368971 Вопросов: 8 Ответов: 131 |
Профиль | Цитата | #2 | Добавлено: 27.04.04 16:11 |
Да, поймать передаваемые данные скорее всего не получиться, если только аппаратно. |
Номер ответа: 3 Автор ответа: ![]() ![]() Вопросов: 1 Ответов: 1 |
Профиль | Цитата | #3 | Добавлено: 02.05.04 12:49 |
MSCOM.CommPort = 1 Сами команды выглядят как сочетание ANSII-символов. например: MSCOM.Output = "#01" + Chr(13)-опрос температуры или MSCOM.Output = "#03" + Chr(13)-опрос углового положения стола Ответ должен приходить в виде: >026.560 на первый запрос и >!070.830 на второй, а приходит какая-то лажа не описанная в инструкции. (Инструкция на английском языке) Типы команд взяты из инструкции к этим контролерам (контролеры ADAM) Фокус в том, что непосредственно с контролерами приходится работать очень мало. В основном программу пишу дома, а на заводе только проверяю принятые решения. Поэтому и нужна програмка, которая позволила бы перехватывать сообщения на COM-порт и эмулировать(генерировать) сигналы с него. |
Номер ответа: 4 Автор ответа: ![]() ![]() ICQ: 275368971 Вопросов: 8 Ответов: 131 |
Профиль | Цитата | #4 | Добавлено: 05.05.04 14:59 |
А ты с принятые данные как нибудь преобразуешь? Что-то типа того: Dim Nr_Symbol As Integer Dim Input_Str As String 'полученые данные Dim Trans_Data As String 'преобразованные ланные 'получаем данные Input_Str = Comm.Input 'каждый символ - байт
'преобразуем полученую строчку символов в шестнадцатиричный код For Nr_Symbol = 1 To Len(Input_Str) Trans_Data = Trans_Data & Right$("00" & Hex$(Asc(Mid$(Input_Str, Nr_Symbol, 1))), 2) Next
'или просто For Nr_Symbol = 1 To Len(Input_Str) Trans_Data = Trans_Data & Asc(Mid$(Input_Str, Nr_Symbol, 1)) Next
Все зависит от того в каком формате этот контроллер выплевывает тебе данные. |
Страница: 1 |
|