Битик, битик - вроде малость
Но возьмите выньте-ка
В мире всё б давно сломалось
Без него, без битика
В оригинале эта песенка звучит чуть по-другому
(пятничного всем настроения, да)
Работа инженера-автоматчика в равной степени связана и с битиками, и с винтиками.
О пропавших винтиках, шариках от подшипника и прочих делах слесарных - надеюсь, я еще расскажу.
А сегодня - пятничная "сага о пропавшем битике".
Итак, небольшая мебельная фабрика, "первая эпоха импортозамещения" (1999. Или 2000)....
Помимо всякого ручного и электрического столярно-плотницкого инструмента, на фабрике с давних пор имелся фрезерный станок с ЧПУ.
(да-да! в советские времена делались станки с ЧПУ для мебельного производства!)
Применялся он для выпиливания всяких филенок и прочих мебельных "украшулек".
Фото его сделать я тогда как-то не догадался. Примерно так это выглядело:
![domashnii_chpu_stanok_upravljaemyi_kompyuterom_soft_bmp-net-ua[1].jpg domashnii_chpu_stanok_upravljaemyi_kompyuterom_soft_bmp-net-ua[1].jpg](https://ic.pics.livejournal.com/fixik_papus/75163700/11506/11506_original.jpg)
Ныне такой станок любой желающий может сделать в гараже. Например, вот тут написано, как (оттуда и фото).
Но судьба нашего станка гораздо интереснее, и заслуживает чуть более подробного рассказа.
Сделан станок был в первой половине 80х годов (точно никто не помнил, но работяги утверждали, что "до Горбачева") неким аспирантом из местного политеха, которому требовался акт о внедрении. В чем там была "научная новизна" - БМП (без малейшего понятия), но вот "практическая ценность" какая-никакая - явно присутствовала.
С материалами и их обработков будущему "кандидату в доктора" явно помогали студенты-заочники с местных предприятий. В результате чего механика была сделана куда лучше, чем на фото выше (редукторы с шариковыми гайками, направляющие "ласточкин хвост" и прочая.). Несмотря на неказистый вид - оно работало.
А вот с системой управления все было несколько печальнее. Это сейчас можно купить в гараж любой б/у ноутбук и написать для него программулину. В те времена даже для шаговых движков все было несколько сложнее.
Контроллер станка выглядел как-то так

На самом деле, на фото никакой не контроллер ЧПУ, а самопальный компьютер Радио-86РК. Я такой тоже в радиокружке паял, правда, не так аккуратно вышло.
Тем не менее, все весьма похоже, и даже большинство чипов те же. Серия КР580 была единственной, хоть как-то доступной в те времена для творчества. И качество изготовления примерно такое же. С разрезанными дорожками и перемычечками кое-где.
Никакого графического экрана у станка, конечно, не было, а были несколько групп газоразрядных цифровых индикаторов. Средство ввода - опять же, кроме перфоленты, вариантов не было.
Несмотря на всю кустарность - станок вполне сносно проработал лет 15.
А потом - стал глючить.
Глючил он так: если заданная в кадре координата Y была больше двух с половиной сантиметров - вместо движения в нужное место инструмент ехал куда ему захочется. Обычно ему хотелось уехать (кто бы сомневался) за пределы рабочего поля, до наезда на концевик.
Поскольку никакой документацией своего творчества аспирант себя не утруждал (не барское это дело, схемы рисовать) - схемы и программы отсутствовали в принципе.
Попал я на этот заводик, среди прочих, во время поиска объектов для внедрения флэш-памяти собственного изготовления.
Тут ситуация была несколько необычной. "Да, есть у нас станочек самопальный с перфолентой, только он глючит, и никто не знает, что с ним делать. Наверно, на чермет порежем".
Мое предложение "попробовать посмотреть, не получится - так не получится, чермет дешевле не станет" возражений не вызвало.
После беглого ознакомления со станком я отметил два момента:
- один шаг шаговых приводов X и Y - 0.1 мм (в пересчете на линейное перемещение после редуктора)
- глюки начинаются ровно с координаты 25.6 мм по оси Y.
Не сообразили еще? А знаете, когда отмечается день программиста? 256 день в году. Потому что 2 в восьмой степени.
Между прочим, инженер-автоматчик и тогда, а ныне и подавно, обязан быть и программистом.
Очевидно, проблема происходит где-то при пересчете старшего байта координат.
Но откуда она могла взяться, если раньше все работало?
Тут уж пришлось посмотреть на плату ЧПУ.
Программа в нем хранилась в микросхемах К573РФ1. Емкостью 1 кбит*8. В количестве 2 шт.
Вот они:
![micro_72[1].jpg micro_72[1].jpg](https://ic.pics.livejournal.com/fixik_papus/75163700/11693/11693_600.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. Ну и флешки свои на эту мебельную фабрику я тоже успешно продал, конечно.
Но возьмите выньте-ка
В мире всё б давно сломалось
Без него, без битика
В оригинале эта песенка звучит чуть по-другому
(пятничного всем настроения, да)
Работа инженера-автоматчика в равной степени связана и с битиками, и с винтиками.
О пропавших винтиках, шариках от подшипника и прочих делах слесарных - надеюсь, я еще расскажу.
А сегодня - пятничная "сага о пропавшем битике".
Итак, небольшая мебельная фабрика, "первая эпоха импортозамещения" (1999. Или 2000)....
Помимо всякого ручного и электрического столярно-плотницкого инструмента, на фабрике с давних пор имелся фрезерный станок с ЧПУ.
(да-да! в советские времена делались станки с ЧПУ для мебельного производства!)
Применялся он для выпиливания всяких филенок и прочих мебельных "украшулек".
Фото его сделать я тогда как-то не догадался. Примерно так это выглядело:
![domashnii_chpu_stanok_upravljaemyi_kompyuterom_soft_bmp-net-ua[1].jpg domashnii_chpu_stanok_upravljaemyi_kompyuterom_soft_bmp-net-ua[1].jpg](https://ic.pics.livejournal.com/fixik_papus/75163700/11506/11506_original.jpg)
Ныне такой станок любой желающий может сделать в гараже. Например, вот тут написано, как (оттуда и фото).
Но судьба нашего станка гораздо интереснее, и заслуживает чуть более подробного рассказа.
Сделан станок был в первой половине 80х годов (точно никто не помнил, но работяги утверждали, что "до Горбачева") неким аспирантом из местного политеха, которому требовался акт о внедрении. В чем там была "научная новизна" - БМП (без малейшего понятия), но вот "практическая ценность" какая-никакая - явно присутствовала.
С материалами и их обработков будущему "кандидату в доктора" явно помогали студенты-заочники с местных предприятий. В результате чего механика была сделана куда лучше, чем на фото выше (редукторы с шариковыми гайками, направляющие "ласточкин хвост" и прочая.). Несмотря на неказистый вид - оно работало.
А вот с системой управления все было несколько печальнее. Это сейчас можно купить в гараж любой б/у ноутбук и написать для него программулину. В те времена даже для шаговых движков все было несколько сложнее.
Контроллер станка выглядел как-то так

На самом деле, на фото никакой не контроллер ЧПУ, а самопальный компьютер Радио-86РК. Я такой тоже в радиокружке паял, правда, не так аккуратно вышло.
Тем не менее, все весьма похоже, и даже большинство чипов те же. Серия КР580 была единственной, хоть как-то доступной в те времена для творчества. И качество изготовления примерно такое же. С разрезанными дорожками и перемычечками кое-где.
Никакого графического экрана у станка, конечно, не было, а были несколько групп газоразрядных цифровых индикаторов. Средство ввода - опять же, кроме перфоленты, вариантов не было.
Несмотря на всю кустарность - станок вполне сносно проработал лет 15.
А потом - стал глючить.
Глючил он так: если заданная в кадре координата Y была больше двух с половиной сантиметров - вместо движения в нужное место инструмент ехал куда ему захочется. Обычно ему хотелось уехать (кто бы сомневался) за пределы рабочего поля, до наезда на концевик.
Поскольку никакой документацией своего творчества аспирант себя не утруждал (не барское это дело, схемы рисовать) - схемы и программы отсутствовали в принципе.
Попал я на этот заводик, среди прочих, во время поиска объектов для внедрения флэш-памяти собственного изготовления.
Тут ситуация была несколько необычной. "Да, есть у нас станочек самопальный с перфолентой, только он глючит, и никто не знает, что с ним делать. Наверно, на чермет порежем".
Мое предложение "попробовать посмотреть, не получится - так не получится, чермет дешевле не станет" возражений не вызвало.
После беглого ознакомления со станком я отметил два момента:
- один шаг шаговых приводов X и Y - 0.1 мм (в пересчете на линейное перемещение после редуктора)
- глюки начинаются ровно с координаты 25.6 мм по оси Y.
Не сообразили еще? А знаете, когда отмечается день программиста? 256 день в году. Потому что 2 в восьмой степени.
Между прочим, инженер-автоматчик и тогда, а ныне и подавно, обязан быть и программистом.
Очевидно, проблема происходит где-то при пересчете старшего байта координат.
Но откуда она могла взяться, если раньше все работало?
Тут уж пришлось посмотреть на плату ЧПУ.
Программа в нем хранилась в микросхемах К573РФ1. Емкостью 1 кбит*8. В количестве 2 шт.
Вот они:
![micro_72[1].jpg micro_72[1].jpg](https://ic.pics.livejournal.com/fixik_papus/75163700/11693/11693_600.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. Ну и флешки свои на эту мебельную фабрику я тоже успешно продал, конечно.
Tags:
no subject
no subject
Лично держал в руках в 2007 индустриальную ЖК-панель (пассивный STN 320x240 еще, никаких TFT), дак внутри был какой-то потомок Z80: можно было заливать туда свой код и оффлоадить графику, или слушать чего там присылают по шине и рисовать это на экране.
Помню только то, что методология программирования всего этого была абсолютно ублюдочной. Какой-то недоделанный компилятор, убогая среда разработки, почти полное отсутствие документации — вот это все...
(no subject)
From:(no subject)
From:(no subject)
From:no subject
На самом деле главное свойство Спектрума и иже с ними - возможность самому делать все, что захочется.
Ныне мелкие простые процессоры для компьютеров, конечно, малоприменимы.
А вот для разнообразных встроенных систем - очень даже!
(no subject)
From:(no subject)
From:no subject
no subject
но за прошедшие 16 (17?) лет мир изменился, но несильно
Вот прям сейчас восстанавливаю программу от одной технологической установки, которую подрядчики, делавшие ее - умудрились ПОТЕРЯТЬ, вследствие чего сами не могут исправить свои же ошибки :)
1 февраля кончилась гарантия - и вот теперь у меня есть официальное разрешение навести порядок
no subject
no subject
no subject
> Это сейчас можно купить в гараж любой б/у ноутбук и написать для него программулину.
Ардуины для управления хватит. Хотя компьютер тоже понадобится.
no subject
Все остались довольны и счастливы. Win-Win.
А сейчас знаете какой главный лимитирующий фактор?
Не поверите. Не деньги. И не гараж.
ВРЕМЯ.
(no subject)
From:(no subject)
From:no subject
no subject
no subject
Байка конечно зачетная, но с фига ли аспирант поставил дефицитные РФ заместо дешевых однократных РТ - неясно. :)
upd. Дешевые РТ-2 текли только в путь, в кассетной деке ВЕГА я их перепрошивал раза два.
no subject
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
no subject
А вот если он такой на свете один - то лучше не надо :)
(no subject)
From:no subject
респектище
no subject
no subject
no subject
(no subject)
From:(no subject)
From:no subject
Думаю кстати что именно в этом контроллере и содержалась ноучная ценность и инновация коня дедада. Типа вместо релюшек и шкафа жесткой логики всего одна плата с камнями, при внедрении в масштабах мебельной промышленности ссср даст экономию 100500 миллионов рублей блаблабла.
no subject
Даже в начале 90х я наблюдал серийно выпускаемые (!) ЧПУ на базе Логики-Т.
Это такая коробочка размером с пачку сигарет. Одна коробочка - один логический элемент.
И да, ей нужно ТРИ напряжения питания...
no subject
no subject
(no subject)
From:no subject
no subject
(no subject)
From:(no subject)
From:no subject
С одной стороны мне страшно, а с другой стороны это сделать таки нужно, тогда меньше бензина будет потребляться....
Программатор и уф-стиралка на работе есть. Правда тут проблема - сколько перезаписей выдержит микруха и собственно как перевести данные из неё в человекочитаемые таблицы....
no subject
28С256, 29С256, 28F256 - тысячи их...
Ставятся на то же место без изменений схемы обычно (но даташиты все ж сверить нужно)
Число перезаписей от 10К до 1М, уф-стиралка не понадобится
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Импортное ЧПУ на предприятии ВПК, деталь стоила как чугунный мост :) Несколько деталей загубили, пока разобрались.
no subject
странно что ни кто из комментаторов не вспомнил про починку еще одного мебельного станка.
https://geektimes.ru/post/257932/
no subject
no subject
http://goo.gl/PqsBIl
no subject
no subject
no subject
Ну, а восстанавливать электросхемы и чертежи в мой объем работ не входило.
no subject
что то типа своего gcode ?
no subject
Что там да как - не знаю.