Форум программистов, компьютерный форум, киберфорум
Delphi: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.74/46: Рейтинг темы: голосов - 46, средняя оценка - 4.74
0 / 0 / 0
Регистрация: 11.11.2019
Сообщений: 2
Delphi 6-7

Полноценное управление LPT портом в Delphi, как лучше реализовать?

11.11.2019, 19:49. Показов 12079. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Большая просьба помочь разобраться в вопросе, как лучше управлять из Delphi LPT портом, так чтобы программа была универсальна и работала под системами от Windows 98 до Windows 7. Очень давно интересуюсь этой темой, но однозначного решения так и не нашел. Есть вариант использовать драйвер inpout32.dll. Он вроде универсальный и работает под всеми вариантами Виндовс, даже 64-битными. Он только пишет в порты и читает из них, но не использует прерывания.
Как получить доступ к прерываниям LPT-порта? Можно это делать как-то через WinAPI? Если да, то как? Был такой компонент под Delphi, но он коммерческий и работает только под ХР. Может какой-то бесплатный драйвер прерываний есть с примерами под Delphi?
Можно ли через WinAPI полноценно работать с портом во всех режимах передачи данных: ECP, SPP, EPP? Я не силен в особенностях WinAPI, может есть готовые примеры, как это делать во всех режимах и как оно работает. Весь русскоязычный Интернет перерыл, нигде ничего нет, только краткие куски кода, но где-то встречал, что через API можно всё делать без сторонних драйверов и программа будет универсальной. Буду очень благодарен за любую помощь в этом вопросе.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.11.2019, 19:49
Ответы с готовыми решениями:

Управление LPT портом
Хочу управлять портом LPT через уже установленный стандартный драйвер, отправляя ему управляющие IOCTRL. Как это сделать ? Где достать...

Управление Lpt портом
Подскажите, как управлять пинами lpt порта? Все, что нашел в интернете либо не работает, либо не компилится. Доп настроек на компьютере...

Управление LPT портом
Нужно управлять LPT портом в BORLAND C++ 3.1 Подскажите каким образом осуществлять ввод и запись в порт информации.

47
Модератор
4156 / 2365 / 814
Регистрация: 15.11.2015
Сообщений: 9,504
03.02.2023, 11:28
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Rasool Посмотреть сообщение
у него большая скорость обмена данными
Надо попробовать контроллер подключить, как адаптер USB-COM. Он в системе появляется, как COM-порт, и скорость тоже должна быть высокая.
0
-132 / 412 / 4
Регистрация: 02.04.2009
Сообщений: 1,235
03.02.2023, 11:32
Цитата Сообщение от Rius Посмотреть сообщение
У USB 3 - до 650 МБ/с.
Все его хорошие особенности канули в прошлое. И простой доступ, и высокая по тем временам скорость, и распространённость на компьютерах.
Сделаете вы это устройство, а подключить его будет некуда. Тогда можно будет просто взять и выкинуть.
Мы уже заказали плату контроллера управления шаговыми двигателями через LPT-порт (у китайского поставщика). Аналог на USB так и не удалось запустить. Других аналогов контроллеров управления шаговыми двигателями на USB не удалось найти.
0
Эксперт .NET
 Аватар для Rius
13829 / 7901 / 1708
Регистрация: 25.05.2015
Сообщений: 23,997
Записей в блоге: 14
03.02.2023, 11:47
Зря... Надо не аналог искать и запускать, а пересмотреть подход.
Новый продукт на основе заведомо устаревшей и проблемной технологии - обречён.

Добавлено через 10 минут

Не по теме:

Мы тоже пытались что-то на LPT сделать году этак в 2007. Не помню даже, что именно.
И USB-LPT пробовали, и PCMCIA-LPT. К счастью, ничего не вышло, всё не работало.
С тех пор используем USB-UART, просто USB, RS485, и автономные железки на микроконтроллерах.
LPT порты исчезли с ПК. PCMCIA исчезли с ноутбуков. А устройства до сих пор работают.

1
-132 / 412 / 4
Регистрация: 02.04.2009
Сообщений: 1,235
03.02.2023, 12:14
Цитата Сообщение от AzAtom Посмотреть сообщение
Надо попробовать контроллер подключить, как адаптер USB-COM. Он в системе появляется, как COM-порт, и скорость тоже должна быть высокая.
Цитата Сообщение от Rius Посмотреть сообщение
С тех пор используем USB-UART, просто USB, RS485, и автономные железки на микроконтроллерах.
Какие контроллеры шаговых двигателей вы использовали, если не секрет?
0
Эксперт .NET
 Аватар для Rius
13829 / 7901 / 1708
Регистрация: 25.05.2015
Сообщений: 23,997
Записей в блоге: 14
03.02.2023, 12:58
Rasool, микроконтроллер STM32, подключённый к драйверу шаговика 324041.

Добавлено через 38 минут
Вероятно, правильно он называется TB6560 stepper driver.
0
-132 / 412 / 4
Регистрация: 02.04.2009
Сообщений: 1,235
03.02.2023, 19:58
Цитата Сообщение от Rius Посмотреть сообщение
микроконтроллер STM32
А Вы не можете написать модель микроконтроллера STM32 поподробнее, а то Гугл выдает большое количество моделей?
0
Эксперт .NET
 Аватар для Rius
13829 / 7901 / 1708
Регистрация: 25.05.2015
Сообщений: 23,997
Записей в блоге: 14
03.02.2023, 20:07
Вообще - любой МК.
От него задача была - нащёлкать нужное количество импульсов для поворачивания шаговика.
А STM32 потому, что было в наличии.
Там управление банальное:
0
Эксперт .NET
 Аватар для Rius
13829 / 7901 / 1708
Регистрация: 25.05.2015
Сообщений: 23,997
Записей в блоге: 14
03.02.2023, 20:18
Вот с этой платки вроде бы: https://www.rlocman.ru/op/tova... -STM32F103
Не смотрите, что она стоит 208 тысяч рублей. В те времена сам МК стоил порядка 100 рублей (не тысяч).
0
-132 / 412 / 4
Регистрация: 02.04.2009
Сообщений: 1,235
04.02.2023, 14:31
Цитата Сообщение от Rius Посмотреть сообщение
Вообще - любой МК.
У нас еще стоит задача - иметь возможность снимать данные с линейного датчика перемещения в любой момент времени с задержкой не более 1 мс.
0
Эксперт .NET
 Аватар для Rius
13829 / 7901 / 1708
Регистрация: 25.05.2015
Сообщений: 23,997
Записей в блоге: 14
04.02.2023, 14:35
Rasool, винда не является rtos, поэтому сразу мимо.
Устройство может вернуть данные с датчика с временными отсчётами. Вот это решаемо.
0
-132 / 412 / 4
Регистрация: 02.04.2009
Сообщений: 1,235
04.02.2023, 16:26
Цитата Сообщение от Rius Посмотреть сообщение
Устройство может вернуть данные с датчика с временными отсчётами. Вот это решаемо.
Нам нужно получать данные с линейного датчика синхронно с еще одним датчиком, который измеряет одну физическую величину. То есть нам нужно получить таблицу из пар величин типа: 1) пройденное расстояние, 2) физическая величина, измеренная на этом расстоянии. Как вариант, можно получать значение расстояния по синхроимпульсу, идущему с датчика, измеряющему физическую величину.
0
Эксперт .NET
 Аватар для Rius
13829 / 7901 / 1708
Регистрация: 25.05.2015
Сообщений: 23,997
Записей в блоге: 14
04.02.2023, 16:31
Если датчик имеет простой выход, а не что-то накрученное через мегабайты проприетарных драйверов под винду, то это решаемо.
0
-132 / 412 / 4
Регистрация: 02.04.2009
Сообщений: 1,235
05.02.2023, 12:06
Цитата Сообщение от Rasool Посмотреть сообщение
Мы уже заказали плату контроллера управления шаговыми двигателями через LPT-порт (у китайского поставщика).
Дело в том, что шеф в директивном порядке приказал найти способ управлять следующим контроллером шагового двигателя по LPT:
Контроллер шаговых двигателей 4х осевой TB6560HQ Blue
0
Эксперт .NET
 Аватар для Rius
13829 / 7901 / 1708
Регистрация: 25.05.2015
Сообщений: 23,997
Записей в блоге: 14
05.02.2023, 12:18
Единичный экземпляр для внутренних нужд? Или для продажи?
Для работы с поставляемым вами промышленным пк с LPT портом? Или покупатель сам будет искать, куда подключить?
Операционную систему он не указал?
0
-132 / 412 / 4
Регистрация: 02.04.2009
Сообщений: 1,235
05.02.2023, 13:04
Мы заказали единичный экземпляр для освоения. В будущем планируем поставлять системы с этим контроллером на продажу. В состав системы входит промышленный ПК платой расширения с LPT-портом. Операционная система: Windows XP, Windows 7, возможно, Windows 10.
0
Эксперт .NET
 Аватар для Rius
13829 / 7901 / 1708
Регистрация: 25.05.2015
Сообщений: 23,997
Записей в блоге: 14
05.02.2023, 13:18
Плата расширения может пропасть из продажи. И не факт, что вы потом найдёте рабочую замену.
Недальновидно.

Добавлено через 10 минут
Можете распечатать эту тему и повесить на стену в рамочку.
Когда всё будет гореть, над головой шефа висеть судебный иск о неисполнении договора поставки оборудования, над вашей головой висеть шеф изрыгающий проклятия по поводу почему вы не можете "просто взять и переделать" на другой адаптер...
Сможете указать на эту тему и сказать: "а нас N лет назад предупреждали!"
Делу это не поможет, но на душе станет легче.
1
274 / 206 / 30
Регистрация: 26.11.2022
Сообщений: 909
05.02.2023, 14:28
Далал я как-то управление чпу станком на шаговиках по LPT порту.
Поставили на linuxcnc и забыли об этом вопросе.
А с виндой куча заморочек. Напрямую по LPT работать будет очень хроново

У нас еще стоит задача - иметь возможность снимать данные с линейного датчика перемещения в любой момент времени с задержкой не более 1 мс.
А вот тут уже никакой LPT порт не поможет - только отдельный микроконтроллер. И лучше бы его сажать не на LPT порт а на на COM. Правда так у вас получится контроллер CNC. https://github.com/grbl/grbl

Дело в том, что шеф в директивном порядке приказал найти способ управлять следующим контроллером шагового двигателя по LPT:
Нууу. будет очередная довольно противная отечественная поделка.

Начнём с того что порт LPT в виде платы расширений по нашему опыту иногда сбоит - а вот распаенный на материнской плате работает стабильно.
Использование одной платы опторазвязки и драйверов ШД - это очень ограниченное решение - как по используемым моторам так и по ремонтопригодности.
Мы делали на отдельный платах - соответственно любой мотор на любое напряжение и если драйвер выгорает ( а такое было и не раз) - то легко поменять и починить.
1
-132 / 412 / 4
Регистрация: 02.04.2009
Сообщений: 1,235
05.02.2023, 16:30
Цитата Сообщение от Rius Посмотреть сообщение
Не смотрите, что она стоит 208 тысяч рублей. В те времена сам МК стоил порядка 100 рублей (не тысяч).
208 тысяч для нас слишком дорого.
0
Эксперт .NET
 Аватар для Rius
13829 / 7901 / 1708
Регистрация: 25.05.2015
Сообщений: 23,997
Записей в блоге: 14
05.02.2023, 16:32
Я ж вроде сказал, на цену там не смотреть.
На aliexpress МК такого класса стоят 50-500 рублей /шт.
0
274 / 206 / 30
Регистрация: 26.11.2022
Сообщений: 909
05.02.2023, 19:21
готовое решение - контроллер с usb интерфейсом https://cnc-tehnologi.ru/chpu-... nr-usb-2-0
можете сделать реверс инжиниринг или залить внутрь grbl

драйвер https://cnc-tehnologi.ru/odnok... elej-dm556
от 2тыщь.

кстати было бы интересно узнать а сколько бюджет всего устройства - там же не и компьютер и контроллер и драйверы двигателей и блок питания силовой, может ещё и дополнительный блок питания и ещё сами двигатели и ещё механика к ним
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.02.2023, 19:21

Управление LPT портом из Windows XP
Помогите решить проблему. Нужно чтобы например на рабочем столе было два значка один из которых включает 5 вольт на любом из выводов LPT, а...

Управление LPT портом под FreeBSD
Здравствуйте! Пытаюсь откомпилировать следующий код под FreeBSD: #include <stdio.h> #include <fcntl.h> #include...

Управление LPT портом, что нужно для работы
Как можно управлять LPT какие дрова нужны как ими пользоваться очень много перерыл ничего не работает хочу сделать программу которая будет...

Управление lpt портом, используя библиотеку inpout32.dll
Здравствуйте! Использую inpout32.dll Подскажите пожалуйста что писать в: PortAccess.Output(); что бы вывести в контакт 2-5 (выходы...

Как работать с портом LPT?
Народ подскажите как в VB .net работать с LPT plz...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru