Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Технический флейм »   Перфоратор ленточный ПЛ-80
RSS

Перфоратор ленточный ПЛ-80

<<Назад  Вперед>> Страницы: 1 * 2 3 4 5
Печать
 
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
1Ж24Б написал:
[q]
Возник такой вопрос...
[/q]
Т.к. в Виндовс НТ нет такого понятия, как "реальное время", дело скорее всего в особенности драйвера ТЛГ со стороны Виндовс.
Для подтверждения этого постарайтесть осуществить прямое программирование порта ТЛГ из-под Чисто-ДОС ( 7.1 в помощь ).
Если нет ТО ТЛГ-порта, могу поискать нечто из старинных ТО ИС мультикарты - лично проверял, работает ( при программировании из-под Чисто-ДОСа )..

ИМХО - можно было вообще ограничиться Чисто-ДОС и ЛПТ-портом, без каких-либо вычислительных средств в перфораторе.
1Ж24Б
Advanced Member


Откуда: Kaluga
Всего сообщений: 349
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
7 нояб. 2014
xoiss, делая первые шаги, сделал работу перфоратора циклической. Не так изящно, но был нужен результат.
1) после получения RTS МК ждёт данные, разрешая передачу сигналом CTS;
2) в буфер запоминается 64 байта (обрабатываю флаг приёма в USART), CTS устанавливается после каждого байта. Может ещё это мешает ? По времени МК на один байт тратит менее 10 мкс. Я пробовал модифицировать программу, чтобы просто выводить вместо перфоратора информацию на пару семисегментных индикаторов. Работало до последнего байта;
3) МК обрабатывает 64 байта, отслеживая сигналы синхронизации перфоратора и передавая байт, согласно документации на ПЛ-80;
Если просто записать в МК вывод байтов (реализовано в тестовом режиме) на перфорацию, всё нормально;
4) МК проверяет RTS, и если не сброшен, разрешает передачу и далее к пункту №2. Если RTS уже сброшен, останавливает электродвигатель и ждёт сигнала RTS.
Перфоратор здесь самый медленный аппарат, примерно 0.8 с на вывод 64 байт, и в момент перфорации передача на СОМ порту остановлена. До этого проекта не занимался портами, теперь недоумеваю. Что я забыл прочесть ?

ММ
[q]
ИМХО - можно было вообще ограничиться Чисто-ДОС и ЛПТ-портом, без каких-либо вычислительных средств в перфораторе.
[/q]
В дебрях Интернета лежит архив с программой на Паскале и электрическая схема сопряжения ПЛ-80/ПЛ-150М с LPT. Отзывов, повторивших такой вариант, не нашёл. Решил сделать что-то, годящееся под обычный ПК с 2000/XP. У меня "железный" СОМ порт используется с программатором МК.
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
1Ж24Б написал:
[q]
Что я забыл прочесть ?
[/q]
ФИФО ???


1Ж24Б написал:
[q]
В дебрях Интернета лежит архив с программой на Паскале..
[/q]
Паскаль - это для "изыскивающих обходные пути".
Традиция в СССР - Бейсик. Т.е. Кубасик из комплекта поставки ДОС. В комплект поставки входит инструкция с примерами, на Аглицкомъ языке ( ДОС 6.22 ).
Он ( программа на Кубасике ) неплохо преобразуется в загрузочные модули типа .EXE ( гуглится ).
Главный недостаток - быстродействие Кубасика во всех штатных редациях ограничено ~ 2 млн. команд типа "пересылка в порт".
Предполагаю, это может быть связано с тем, что порты сидят на шине ISA ( не волнуйтесь, она внутренняя и не выведена в слоты, и к тому же без ПДП ). По крайней мере на Сокет 1155.
CodeMaster
Advanced Member
Рыцарь ордена Хламовников

Откуда: Воронеж
Всего сообщений: 1655
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
27 авг. 2010
1Ж24Б написал:
[q]
П.С.: можно и считыватель FS1501 подключить к COM, ... Нужно ли такое вообще ?
[/q]
Да, это было бы интересно.
1Ж24Б
Advanced Member


Откуда: Kaluga
Всего сообщений: 349
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
7 нояб. 2014
Сегодня сравнил набитый тест ЭПМ с эталоном - сходится. Заодно припомнил, почему не хотел на скорости 80 знаков перфорировать. Пружины, подтягивающие якоря электромагнитов, за тридцать лет ослабли и при длительной работе на полной скорости могут появиться ошибки, лишние "1", т.е. отверстия. Замены из ЗиПа для ПЛ-80 нет и не будет.

ММ, я понимаю, что для законченности устройства надо программу для ПК писать, но поставленные задачи в настоящее время перфоратор выполняет.

CodeMaster, может осенью соберу на макетной плате. FS1501 может работать в режиме "старт-стоп", что и реализовано на плате В1. Поставить МК и заставить отсылать всё, что прочиталось на перфоленте, на ПК.

П.С.: http://www.elsikor.ru/free.html здесь можно скачать и посмотреть программу и схему для подключения перфоратора к LPT.
xoiss
Advanced Member


Всего сообщений: 711
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 окт. 2013
(1)
Рекомендую снимать CTS не в момент, когда буфер полностью заполнится, а когда степень его заполнения подойдёт, например, к 70% (т.е. 40 байт, например). Суть в том, что ПиСишка не обязательно отреагирует на снятый CTS мгновенно, даже если управление потоком там выполнено аппаратно (если программно - то тем более). Но даже если она отреагирует и мгновенно, то всё равно в регистре сдвига COM-порта к этому моменту, с некоторой вероятностью, уже может быть новый, 65-ый, байт на передачу, который будет выброшен в линию (даже при снятом сигнале CTS). Если между байтами вставлять задержку (Вы упоминали про 32 мс), то как бы Вы просто снижаете вероятность такой коллизии... Если я вообще правильно понимаю, что и как у Вас там устроено... В общем, лучше снимать CTS заранее.
[upd] ... или Вы в программе на Писишке передаёте файл чанками строго не более, чем по 64 байта??

Устанавливать CTS можно, когда (1) закончили передачу на перфоратор принятых байт, и (2) выждали интервал ещё одной строки на перфораторе, и (3) после этого ещё выждали небольшую паузу на дозарядку конденсаторов в фильтре блока питания. Думаю, 50-100 мс вполне хватит.
// снимать-устанавливать CTS после каждого байта, наверное, смысла не имеет


(2)
Тот факт, что перфорация идёт в период времени, когда данные по COM-порту не передаются (и наоборот) — это хорошо, т.к. от работы перфоратора может идти помеха на линии RS-232. Но, важно понимать, что даже когда контроллер снял сигнал CTS и ПиСишка перестала передавать контроллеру данные, из-за наводок в интерфейсе RS-232 порт контроллера может "принимать" лишние байты (т.е. как бы снятый CTS он ещё не запрещает порту контроллера что-либо принимать, порт в этом плане живёт независимо). Если это никак не контролируется в Вашей программе, то как бы вот — это может сносить ей голову, затирать буфер и пр.

Поэтому желательно не просто снимать CTS, но ещё и:
1) после снятия CTS дизаблить UART на контроллере — и только после этого начинать перфорировать
2) разрешать UART на контроллере после того, как перфорация завершена и выждали все паузы — и после этого только устанавливать CTS

Если есть возможность/желание, то вместо RS-232 лучше использовать "токовую петлю". В общем, это тот же RS-232, но только не "потенциальный", а "токовый". Он намного более устойчив против помех.
Оптическая развязка тоже не помешает.


(3)


1Ж24Б написал:
[q]
Если просто записать в МК вывод байтов (реализовано в тестовом режиме) на перфорацию, всё нормально;
[/q]
1Ж24Б написал:
[q]
Я пробовал модифицировать программу, чтобы просто выводить вместо перфоратора информацию на пару семисегментных индикаторов. Работало до последнего байта;
[/q]
Я правильно понимаю, что проблема возникает ТОЛЬКО тогда, когда
(1) байты в контроллер поступают из COM-порта — AND — (2) байты физически выводятся на перфоратор
Так?

1. Повторю вот этот пункт — его очжелательно сделать:
-- попробуйте посмотреть, что по факту передаётся в канале от ПиСишки на контроллер. Для этого можно использовать любую программу чтения из COM-порта (например, RealTerm). Возможно, что последние байты на самом деле передаются криво или не передаются вообще [udp] или же передаётся больше, чем 64 байта...

2. Предлагаю попробовать ещё вот что:
-- берём Вашу прошивку как есть — т.е. в варианте, когда байты принимаются по COM-порту и отправляются на перфоратор, и когда между байтами вставляется задержка 1 мс
-- но добавляем в неё небольшую процедурку, которая ПЕРЕД тем, как начать тарахтеть перфоратором, скидывает весь массив обратно в COM-порт (разумеется, ПиСишка должна принять эти байты — а у Вас будет возможность сравнить их с тем, что должно было быть передано, и что будет отперфорировано)

Почему я предлагаю именно эти два шага? --- очень просто, сперва необходимо локализовать место возникновения проблемы. Надо понять, виновата ли ПиСишка, которая передаёт "не то"... виноват ли интерфейс между ПиСишкой и контроллером, или же неправильно устроена синхронизация контроллера с перфоратором... или, может, перфоратор наводит помеху на интерфейс RS-232.......



[upd] Как совсем альтернативный вариант, можно ещё xmodem протокол реализовать. Протокол простейший. Имеет встроенный механизм нарезки файла на пакеты фиксированной длины, механизмы проверки контрольной суммы, акноледжмента не-/получения пакета, повторной передачи битого пакета. Когда-то давно использовался для передачи файлов (точнее, бинарных массивов) по модемным линиям. Аппаратное управление потоком не требуется, т.к. протокол на стороне отправителя всегда ожидает акноледжмент от получателя после передачи каждого пакета. На ПиСишке он поддерживается программой HyperTerminal (только там, вроде, размер пакета больше, чем 64 байта... не помню уже).
https://en.wikipedia.org/wiki/XMODEM
1Ж24Б
Advanced Member


Откуда: Kaluga
Всего сообщений: 349
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
7 нояб. 2014
Сделал тестовую программу для МК с сигналом CTS за 10 байт до окончания блока в 64 байта. В итоге, после пробивки первых 64 байтов, процесс дальше не идёт.
[q]
[upd] ... или Вы в программе на Писишке передаёте файл чанками строго не более, чем по 64 байта??
[/q]
Сделал на пробу в МК буфер на 64 байта, чтобы при приёме шло заполнение этого буфера полностью, только потом перфорация. На стороне ПК в программе пробовал блоки в 1, 16 и 64 байта, корректируя программу МК. Считаю, дальше пока смысла разбираться нет - у МК от монтажа/демонтажа уже ножки изогнулись (на плате цанговая панелька). Оставлю пока такой вариант работы с перфоратором. Разберусь с другими проектами, попробую ещё варианты программы. xoiss, спасибо за рекомендации. Изменю эл. монтаж на плате (надо подключать проводами передатчик из состава MAX232 и разводить выход с МК) и попробую передачу принятых байтов.

Ещё фотографии:
- вид со стороны электромагнитов, управляющих движением пуансонов (с противоположной стороны ещё пять штук).
- механизм, формирующий сигналы для синхронизации.
И видео работы. Идёт перфорация теста ПУВВ.
ПЛ-80 - видно как вспыхивает на короткое время верхний светодиод, указывая на разрешение передачи ПК.
xoiss
Advanced Member


Всего сообщений: 711
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 окт. 2013
1Ж24Б написал:
[q]
у МК от монтажа/демонтажа уже ножки изогнулись (на плате цанговая панелька)
[/q]
... его ж ведь можно без вынимания программировать ...
https://habrahabr.ru/post/97703/%E2%80%8E/
http://www.microchip.ru/phorum...mp;t=82679
1Ж24Б
Advanced Member


Откуда: Kaluga
Всего сообщений: 349
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
7 нояб. 2014
Ну так нет места под контакты и перемычки. Надо переделывать половину монтажа.

Итак, скопировал ленты:
ТЕСТ АРИФМЕТИКИ 8.842.006-01 ОТК
ТЕСТ КОМАНД П3 8.842.006-02 ОТК
ТЕСТ ПРЕРЫВАНИЙ 8.842.006-03 ОТК
КОМПАРАТОР 8.842.006-07 ОТК
АБСОЛЮТНЫЙ ЗАГРУЗЧИК 8.842.006-15 ОТК
ТЕСТ ЭПМ 8.842.007-23 ОТК
ТЕСТ ПУВВ 8.842.007-24 ОТК

Считывание лент на GNT 28 и сравнение с исходником не выявило ошибок перфорации :)

Надо как-то либо найти остальные ленты из поставки к "Электроника-60", либо кого-то уговорить считать и выложить в формате *.bin

П.С.: соединил перфоратор со считывателем GNT-28 напрямую кабелем. Ура ! Получилась установка для копирования перфолент. Единственное, надо "допилить" приём информации в буфер перфоратора, чтобы не тормозил, если не заполнил весь буфер. Ленты то разные бывают. Вот вам и копировальщик ленты с отечественным перфоратором...
1Ж24Б
Advanced Member


Откуда: Kaluga
Всего сообщений: 349
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
7 нояб. 2014
Кто знает, что за расширение файлов *.fsu ? Как это в обычный *.bin преобразовать ? Нашёл Бейсик с перфоленты от Андрея Кислова (владелец "Электроника-100/25" из Алма-Аты), а там такое :(
<<Назад  Вперед>> Страницы: 1 * 2 3 4 5
Печать
Полигон-2 »   Технический флейм »   Перфоратор ленточный ПЛ-80
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS