fixik_papus: (Default)
[personal profile] fixik_papus
Битик, битик - вроде малость
Но возьмите выньте-ка
В мире всё б давно сломалось
Без него, без битика


В оригинале эта песенка звучит чуть по-другому
(пятничного всем настроения, да)



Работа инженера-автоматчика в равной степени связана и с битиками, и с винтиками.
О пропавших винтиках, шариках от подшипника и прочих делах слесарных - надеюсь, я еще расскажу.
А сегодня - пятничная "сага о пропавшем битике".

Итак, небольшая мебельная фабрика, "первая эпоха импортозамещения" (1999. Или 2000)....
Помимо всякого ручного и электрического столярно-плотницкого инструмента, на фабрике с давних пор имелся фрезерный станок с ЧПУ.
(да-да! в советские времена делались станки с ЧПУ для мебельного производства!)
Применялся он для выпиливания всяких филенок и прочих мебельных "украшулек".

Фото его сделать я тогда как-то не догадался. Примерно так это выглядело:

domashnii_chpu_stanok_upravljaemyi_kompyuterom_soft_bmp-net-ua[1].jpg

Ныне такой станок любой желающий может сделать в гараже. Например, вот тут написано, как (оттуда и фото).
Но судьба нашего станка гораздо интереснее, и заслуживает чуть более подробного рассказа.

Сделан станок был в первой половине 80х годов (точно никто не помнил, но работяги утверждали, что "до Горбачева") неким аспирантом из местного политеха, которому требовался акт о внедрении. В чем там была "научная новизна" - БМП (без малейшего понятия), но вот "практическая ценность" какая-никакая - явно присутствовала.
С материалами и их обработков будущему "кандидату в доктора" явно помогали студенты-заочники с местных предприятий. В результате чего механика была сделана куда лучше, чем на фото выше (редукторы с шариковыми гайками, направляющие "ласточкин хвост" и прочая.). Несмотря на неказистый вид - оно работало.

А вот с системой управления все было несколько печальнее. Это сейчас можно купить в гараж любой б/у ноутбук и написать для него программулину. В те времена даже для шаговых движков все было несколько сложнее.

Контроллер станка выглядел как-то так



На самом деле, на фото никакой не контроллер ЧПУ, а самопальный компьютер Радио-86РК. Я такой тоже в радиокружке паял, правда, не так аккуратно вышло.
Тем не менее, все весьма похоже, и даже большинство чипов те же. Серия КР580 была единственной, хоть как-то доступной в те времена для творчества. И качество изготовления примерно такое же. С разрезанными дорожками и перемычечками кое-где.

Никакого графического экрана у станка, конечно, не было, а были несколько групп газоразрядных цифровых индикаторов. Средство ввода - опять же, кроме перфоленты, вариантов не было.

Несмотря на всю кустарность - станок вполне сносно проработал лет 15.
А потом - стал глючить.

Глючил он так: если заданная в кадре координата Y была больше двух с половиной сантиметров - вместо движения в нужное место инструмент ехал куда ему захочется. Обычно ему хотелось уехать (кто бы сомневался) за пределы рабочего поля, до наезда на концевик.

Поскольку никакой документацией своего творчества аспирант себя не утруждал (не барское это дело, схемы рисовать) - схемы и программы отсутствовали в принципе.

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

После беглого ознакомления со станком я отметил два момента:
- один шаг шаговых приводов X и Y - 0.1 мм (в пересчете на линейное перемещение после редуктора)
- глюки начинаются ровно с координаты 25.6 мм по оси Y.

Не сообразили еще? А знаете, когда отмечается день программиста? 256 день в году. Потому что 2 в восьмой степени.
Между прочим, инженер-автоматчик и тогда, а ныне и подавно, обязан быть и программистом.

Очевидно, проблема происходит где-то при пересчете старшего байта координат.
Но откуда она могла взяться, если раньше все работало?
Тут уж пришлось посмотреть на плату ЧПУ.

Программа в нем хранилась в микросхемах К573РФ1. Емкостью 1 кбит*8. В количестве 2 шт.
Вот они:

micro_72[1].jpg

Это микросхема энергонезависимой памяти с ультрафиолетовым стиранием. Для стирания на ее спине имеется стеклянное окошечко. Самые первые, освоенные в производстве в СССР.
В исходном состоянии (или после стирания) все ее битики = 1, при программировании в нужные записывается нолик).

Я выковырял обе микросхемы из панелек, и отправился на поиски программатора - вытащить прошивку.
Это было само по себе увлекательным и непростым мероприятием. Потому что этому самому первому в СССР чипу - требовались 3 (ТРИ) напряжения питания +5, -5 и +12В, причем -5 нужно подавать первым, а снимать последним. А если эти чипы спалить - станок точно поедет в чермет. Ибо делать программу заново - явно нерентабельное мероприятие.
-5В умели выдавать далеко не все программаторы. А один попавшийся экземпляр, который когда-то умел - сломался, а чинить ненужную давным-давно никому цепь -5В никто не собирался (а то и вовсе не знал, что она неисправна). Хорошо, догадался померить, перед тем как чипы уникальные совать.

После чего - программу пришлось дизассемблировать. И разобраться, что там к чему и как.
Но на этот раз мне повезло. (так обычно и бывает, если долго и упорно что-то делаешь). Выловить источник проблемы оказалось несложно.

Кусочек таблицы команд процессора КР580ВМ80А, он же КР580ИК80А, а в девичестве - Intel i8080.



В процедуре интерполятора, после завершения расчетов координат очередного перемещения, была обнаружена бессмысленная команда MOV A,A.
Откуда она там взялась? Изначально была осмысленная команда MOV M,A (М - это ячейка памяти по адресу, указанному в регистровой паре HL).
Отличаются они одним битиком в машинном коде.

И вот этот самый битик - потерялся. Точнее, стал единичкой (вспоминаем, что стертое состояние ПЗУ - все единички).
Результат - старший байт координаты Y терялся, и вместо него для управления перемещением брался "мусор".

Почему убежал битик - узнать невозможно.
То ли в чипе эта ячейка изначально была дефектная, с большой утечкой заряда с плавающего затвора.
То ли просто срок хранения данных к концу подходил (гарантия на срок хранения данных 10 лет, типичное значение 25 лет, прошло где-то 15).
То ли программатор при записи этого адреса сглючил.
То ли коварная альфа-частица из космоса пролетела через атмосферу, проникла на мебельную фабрику, попала точно в чип ПЗУ и организовала утечку заряда...

А вот вернуть его на место - очень даже возможно.
Конечно, не было никакого смысла разыскивать именно К573РФ1. В конце 90х были доступны и недороги любые чипы ПЗУ. Я залил программу в копеечный чип 2716, и воткнул вместо обоих старых. (на плате при этом чуть добавилось перемычек и разрезанных дорожек. Потому что если подать -5В на 2716 - чип сгорит нафих).
И еще меньше смысла - пытаться восстановить-перепрошить заглючивший старый чип.
Они оба - отправились, куда им и положено по окончании срока службы - в драгмет. Не пропадать же целым 0,0339699г золота и 0,0485637г серебра! :)

Станок заработал, как ему и положено. И еще не один год работал.
А я заслужил у местных звание "почетного колдуна с отличием" :)

P.S. Ну и флешки свои на эту мебельную фабрику я тоже успешно продал, конечно.
Page 1 of 3 << [1] [2] [3] >>
Date: 5 Feb 2016 20:36 (UTC)

From: [identity profile] zloi-vicik.livejournal.com
Слышал мнение, что Z80 настолько были удачны по архитектуре, что до сих пор их не переплюнули по "затраты-отдача". Помню в 90х зашел к брату друга, а у него "Спектрум". Ну да, у брата своего на работе я уже на 286й тогда игрался, у которой даже были 5и дюймовые дисководы, а тут в спектруме, два дисковода, с которых он стартует, и работает. И (!) музыка в формате .stm! Это было так феерично и офигенно, особенно через усилок Радиотехника на S90! Блин, пытался это все как то жене объяснить, нифига прикола не поняла... Эх, молодежжж...
Date: 5 Feb 2016 20:45 (UTC)

From: [identity profile] ocean-trader.livejournal.com
Экий Вы умелец.
Date: 5 Feb 2016 20:45 (UTC)

From: [identity profile] olezhas.livejournal.com
читаю такое с завистью :-)
Date: 5 Feb 2016 20:45 (UTC)

From: [identity profile] reedcat1965.livejournal.com
Класс. Завод хоть как-то отблагодарил в материальной форме?

> Это сейчас можно купить в гараж любой б/у ноутбук и написать для него программулину.
Ардуины для управления хватит. Хотя компьютер тоже понадобится.
Date: 5 Feb 2016 20:48 (UTC)

From: [identity profile] Михаил Богданов (from livejournal.com)
Спасибо за День программиста -поздравлю зятя ! Читаю Ваши рассказы с показами с удовольствием плюс комменты..
Date: 5 Feb 2016 20:54 (UTC)

From: [identity profile] gray-bird.livejournal.com
ГМ.
Байка конечно зачетная, но с фига ли аспирант поставил дефицитные РФ заместо дешевых однократных РТ - неясно. :)
upd. Дешевые РТ-2 текли только в путь, в кассетной деке ВЕГА я их перепрошивал раза два.
Edited Date: 5 Feb 2016 21:02 (UTC)
Date: 5 Feb 2016 21:34 (UTC)

From: [identity profile] 1500py470.livejournal.com
Можно в условиях войны подавать вместо -5В — 0, а вместо +12В — +5В как правило до месяца скорее проработает, а потом в утиль. А вот без ноля или минус пяти вольт за секунды уже не жильцы. Можно не успеть считать.
Date: 5 Feb 2016 21:39 (UTC)

From: [identity profile] 1500py470.livejournal.com
Если Н556РТ2 использовать, то вполне надёжно, но из самоделкиных тогда мало кто шаг 1.25 любил.
Date: 5 Feb 2016 21:44 (UTC)

From: [identity profile] vory-tatarstana.livejournal.com
ну, вы блин и монстр!
респектище
Date: 5 Feb 2016 21:51 (UTC)

From: [identity profile] vaquero1978.livejournal.com
круто!
Date: 5 Feb 2016 22:07 (UTC)

From: [personal profile] ex0_planet
Скорее дело в наличии толп программистов, освоивших систему команд i8080 и её производные.

Лично держал в руках в 2007 индустриальную ЖК-панель (пассивный STN 320x240 еще, никаких TFT), дак внутри был какой-то потомок Z80: можно было заливать туда свой код и оффлоадить графику, или слушать чего там присылают по шине и рисовать это на экране.

Помню только то, что методология программирования всего этого была абсолютно ублюдочной. Какой-то недоделанный компилятор, убогая среда разработки, почти полное отсутствие документации — вот это все...
Edited Date: 5 Feb 2016 22:08 (UTC)
Date: 5 Feb 2016 22:25 (UTC)

From: [identity profile] tilibomkin.livejournal.com
Пост замечательный. Но видео - шо это за адский ужос? Откуда это, шо это такое?
Date: 5 Feb 2016 22:32 (UTC)

From: [identity profile] antontsau.livejournal.com
Нуу, в кило кода 8080 разобраться еще можно. А вот когда его там кил 30, да еще компилированного со всяких сей если не паскалей...

Думаю кстати что именно в этом контроллере и содержалась ноучная ценность и инновация коня дедада. Типа вместо релюшек и шкафа жесткой логики всего одна плата с камнями, при внедрении в масштабах мебельной промышленности ссср даст экономию 100500 миллионов рублей блаблабла.
Date: 5 Feb 2016 22:34 (UTC)

From: [identity profile] antontsau.livejournal.com
Зилоги в промисполнении до сих пор лепятся во всякие охранки-пожарки.
Date: 5 Feb 2016 22:37 (UTC)

From: [identity profile] virginian.livejournal.com
Это какое же терпение надо иметь, респект!
Date: 5 Feb 2016 22:50 (UTC)

From: [identity profile] zloi-vicik.livejournal.com
В 2005м этот брат друга начал заниматься ремонтом полиграфмашин. Оригинальную сенсорную панель за 1000 евро он дома мутил с расходами в 100... Ну да, разрешение немного не то, но сцуко, по отзывам пользователей какая хер разница, что у тебя иконка на мониторе потеряла немного в контрасте - так эта вся хрень шустрее на порядок работать начала, и можно рукой в перчатке даже юзать! И все довольны! Я еще лет 5 назад зарулил к нему, на рюмку чая и понял, что 775 сокет, который реально у меня в компе стоит и посейчас он уже пилит в девайсы, которые управляют машинами, которым по 20 лет! Э... Недавно таки за 10 лет накрылся у меня блок питания в компе. Причем 1го января, взял тестер, принудиловкой его запустил, перемерял все напряжения - все ОК, а комп не стартует. Короче 4го вышел на работу, выдрал с металолома блок, поставил - работает. Звоню брату друга - а он тупо отдавал безвозмездно такой же комп как у меня, объяснил ситуевину. На вопрос "а ты напряжения под нагрузкой осцилографом померял?" я как бы вспомнил, что такое осцилогаф и осознал, что "крути свои гайки, Витек, и скажи спасибо, что ты хоть 24+4 разьем знаешь куда в матери пихать"...
Date: 6 Feb 2016 03:52 (UTC)

From: [identity profile] aviaangel.livejournal.com
Не совсем понятна связь пересечения границы 256 и бессмысленной команды
Date: 6 Feb 2016 05:35 (UTC)

From: [identity profile] dmarck.livejournal.com
видимо, в тот фрагмент выполнение попадало после какого-нибудь cmp/jc
Date: 6 Feb 2016 05:48 (UTC)

From: [identity profile] fixik-papus.livejournal.com
"дефицитные РФ заместо дешевых однократных РТ "
А отлаживать программу как?
Это ж сколько РТ уйдет?
Date: 6 Feb 2016 05:59 (UTC)

From: [identity profile] fixik-papus.livejournal.com
Смею Вас заверить, что архитектура x51, AVR и STM32 ничуть не хуже.

На самом деле главное свойство Спектрума и иже с ними - возможность самому делать все, что захочется.

Ныне мелкие простые процессоры для компьютеров, конечно, малоприменимы.
А вот для разнообразных встроенных систем - очень даже!

Date: 6 Feb 2016 06:00 (UTC)

From: [identity profile] fixik-papus.livejournal.com
Конечно.
Все остались довольны и счастливы. Win-Win.

А сейчас знаете какой главный лимитирующий фактор?
Не поверите. Не деньги. И не гараж.
ВРЕМЯ.


Date: 6 Feb 2016 06:04 (UTC)

From: [identity profile] fixik-papus.livejournal.com
спасибо!
Date: 6 Feb 2016 06:05 (UTC)

From: [identity profile] fixik-papus.livejournal.com
Это уже военка. Ее раздобыть куда сложнее было :)
Date: 6 Feb 2016 06:05 (UTC)

From: [identity profile] fixik-papus.livejournal.com
Это хорошо экспериментировать, когда чипов одинаковых много.
А вот если он такой на свете один - то лучше не надо :)
Date: 6 Feb 2016 06:06 (UTC)

From: [identity profile] fixik-papus.livejournal.com
Из мультика же :)
Page 1 of 3 << [1] [2] [3] >>

Profile

fixik_papus: (Default)
fixik_papus

January 2023

M T W T F S S
      1
2345678
9101112131415
16171819202122
232425262728 29
3031     

Style Credit

Expand Cut Tags

No cut tags
Page generated 5 Mar 2026 00:33
Powered by Dreamwidth Studios