Delphi и Com-порт
|
|
hitman |
Дата: Пн, 14.03.2011, 11:47 | Сообщение # 16 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
14
Замечания:
±
На сайте с 24.05.2010
Статус:
Offline
|
Для начала установите Modbus OPC сервер. Я использую http://www.lectussoft.com/ (это не реклама!). Он в демо версии, но этого хватит чтобы все заработало. Также есть KEPServEx, это тоже ОРС сервер но без поддержки DDE (этот мехенизм нужен для обмена с Office приложениями и т.д.). На сервере создаем переменные, для обмена с микроконтроллером. Прошиваем контроллер, подключаем кабель ну и налаживаем. Листинг с программой и фаил настройки сервера скину позже.
|
|
|
|
QWERTY |
Дата: Пн, 22.08.2011, 00:55 | Сообщение # 17 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
73
Замечания:
±
На сайте с 11.05.2008
Статус:
Offline
|
Можно с примером способ передачи данных от пика в ехель? к примеру: передаем время и температуру(целое число). Нужно заносить в два столбца таблицы. Как это органихзуется програмно? Как создавать и писать файл Exel автоматически?
|
|
|
|
terrarus |
Дата: Пн, 22.08.2011, 10:21 | Сообщение # 18 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
451
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
Quote (hitman) Листинг с программой и фаил настройки сервера скину позже Ну зачем же позже, давайте сразу сейчас. Очень интересно!
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
|
|
|
|
passer_by |
Дата: Сб, 26.05.2012, 19:47 | Сообщение # 19 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
17
Замечания:
±
На сайте с 23.10.2011
Статус:
Offline
|
Доброго времени суток. Может кто подскажет. Не могу разобраться в форматах переменных. Сделал и в Протеусе и в железе на PIC16F877 измерение температуры. Теперь все это нужно вывести на ПК. Программист я не важный, с СОМ портом немного разобрался. Написал на Delphi прием по СОМ порту по байтно в массив. Передаю с PIC_а переменную Float, получаю всего четыре байта. Вроде больше должно быть.... А если это так и есть, то как из них в Delphi собрать переменную? DWord проходит нормально (четыре байта) и из них все просто собрать переменную, а вот с Float ну ни как. Может с передачей чего не так? Код примерно такой: Dim Х As Float Х = -12.34 HSerOut [Х]
Сообщение отредактировал
passer_by - Сб, 26.05.2012, 21:00
|
|
|
|
ADMIN |
Дата: Вс, 27.05.2012, 05:17 | Сообщение # 20 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Я бы рекомендовал писать так:
Dim X As Float TXSTA = %00100100 RCSTA = %10010000 SPBRG = 25 trisb = 0 main: X=-12.34 HSerOut [#X,13] delayms 1000 goto main
|
|
|
|
passer_by |
Дата: Вс, 27.05.2012, 15:10 | Сообщение # 21 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
17
Замечания:
±
На сайте с 23.10.2011
Статус:
Offline
|
Спасибо, не знал, что можно использовать модификатор "#". Посмотрел Help там, оказывается, не на прямую, но говорится, что и Dec то же передает переменную как строковую и в конец, как принято, лепят завершающий "0". Получается, что команды HSerOut и Hserin с модификаторами работают со строковыми переменными. А я мучился, с вылавливанием отдельных байт и лепки переменных. Теперь придется всю логику работы переписывать...
|
|
|
|
ADMIN |
Дата: Вс, 27.05.2012, 16:27 | Сообщение # 22 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Я же прилагал проект как раз по работе с COM-портом через Delphi, там и проект в протоне был. Ага, сейчас попробовал скачать, ошибка в адресе. Сейчас исправил. Вот ссылка
|
|
|
|
passer_by |
Дата: Вс, 27.05.2012, 18:58 | Сообщение # 23 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
17
Замечания:
±
На сайте с 23.10.2011
Статус:
Offline
|
О, большое спасибо! Видел, конечно, ранее ссылку, думал у меня глючит инет. Сижу, разбираюсь. Если можно, такой вопрос: чтение СОМ порта производится в синхронном режиме. По событию OnRxChar. Так нормально можно с PIC_ами работать? Байты не теряются? Просто у меня нет опыта работы с такими вещами. Считал, что нужно организовывать чтение в асинхронном режиме.
Сообщение отредактировал
passer_by - Вс, 27.05.2012, 19:01
|
|
|
|
ADMIN |
Дата: Вс, 03.06.2012, 05:37 | Сообщение # 24 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Ну, а почему нельзя? У меня все работает.
|
|
|
|
passer_by |
Дата: Вт, 05.06.2012, 19:21 | Сообщение # 25 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
17
Замечания:
±
На сайте с 23.10.2011
Статус:
Offline
|
Ну, наверное, так. И похоже команды Протона HSerOut и Hserin как бы заточены под синхронный прием/передачу данных. Но, на всякий случай все таки написал прием в асинхронном режиме (и типа для более полного освоение СОМ порта ). Вроде все работает. Правда, есть неприятный глюк, время от времени появляющеся. Прием данных с компа микроконтроллером написал по вашему примеру(#16) на основе аппаратного прерывания по USART. Так как сам цикл программы довольно большой, много время уходит на измерение температуры в 4 точках и всяких там еще вычислений. В зависимости от принятого кода идет дальнейшие ветвление программы. По этому сама программа обработки прерываний довольно большая. Причем внутри ее используются подпрограммы вида GoSub=> Метка <=Return. ..... И вот иногда происходит следующее: принятая команда с компа штатно отрабатывается и по выходу из ПП прерывания LCD дисплей весь покрывается нулями, основная программа подвисает. Но команды с компа все таки как то отрабатываются. Все это пока моделирую в Протеусе. Вот и думаю, то ли это прерывание происходит в какой то болезненной точке программы, то ли это Протеус накапливает какую то ошибку исполнения кода. Пробовал ставить запрет прерываний на время выполнения измерений температуры, на некоторые вычисления, все равно врем от времени вылетает этот глюк. Ни кто с таким не сталкивался? Может хотя бы направление поиска подскажете? Или все таки это глюк Протеуса? (Извиняюсь за много букв)
Сообщение отредактировал
passer_by - Вт, 05.06.2012, 19:24
|
|
|
|
Zelenanbd |
Дата: Чт, 30.04.2020, 19:40 | Сообщение # 26 |
Группа:
Заблокированные
Ранг:
Новенький
Сообщений:
1
Замечания:
±
На сайте с 22.04.2020
Статус:
Offline
|
Where is admin? It is important. Regards.
клининговая компания окна
|
|
|
|
Antonionwo |
Дата: Вт, 21.06.2022, 23:50 | Сообщение # 27 |
Группа:
Заблокированные
Ранг:
Пытаюсь разобраться
Сообщений:
49
Замечания:
±
На сайте с 31.01.2021
Статус:
Offline
|
Привет дамы и господа! Есть такой интересный сайт https://dengi-do-zarplaty.ru/ Отличные наличные – ведущая компания в сфере микрокредитования, деньги будут у вас на карте через 15 минут. Оформить займ можно круглосуточно, в выходные и праздники.Мы применяем самые передовые технологии, чтобы вы могли за 15 минут получить займ на карту или наличными.Наш сервис доступен везде где есть интернет, получить деньги можно в одном из наших отделений или круглосуточно не выходя из дома.
тонировка окон пвх
|
|
|
|