Урок 3. ПУСК и смена

Пока линия запускается сама, как только включили питание, и выпускает детали без конца. Для опыта нужно другое: смена — одинаковое число деталей на входе, запуск по команде и остановка сама собой. В этом уроке появятся тумблер ПУСК и две микросхемы, которые решают, пропустить ли очередной импульс генератора к источнику.


3.1. Идея: когда выпускать деталь

Источник выпускает деталь по фронту RELEASE. Сейчас туда идёт генератор CK напрямую. Нам нужно, чтобы импульс проходил, только когда:

  • тумблер ПУСК включён — RUN = 1;
  • смена ещё не кончилась — выпущено меньше 128.

Это «И» трёх условий: такт, ПУСК и «не конец смены».

3.2. Идея: конец смены — один бит

Почему 128, а не 100? Потому что 128 в двоичном виде — 1000 0000: это первое число, у которого загорается старший бит R7 счётчика «выпущено». Пока выпущено 0…127, R7 = 0; как только стало 128 — R7 = 1. Значит, «смена ещё идёт» — это просто НЕ R7. Ни сравнений, ни лишних микросхем: конец смены нам сообщает сам счётчик.

RUNCKR7RELвыпущено01…127128128 = 1000 0000: R7 стал 1 — выпуск встал сам
Смена: ПУСК открывает выпуск, 128-я деталь поднимает R7 — и импульсы REL больше не проходят. Середина смены пропущена.

3.3. Формула

CKRUNR7REL
такт0—0 — стоим
такт10такт — идём
такт110 — смена
  • NDONE = НЕ R7 — одна инверсия на CD4069;
  • CKR = CK И RUN — первый вентиль И на CD4081;
  • REL = CKR И NDONE — второй вентиль И той же CD4081.

Источник теперь слушает REL, а не голый CK: в уроке нога RELEASE перецепляется на новую метку.

R7CD4069NDONECKRUNCD4081 · JCKRKисточникRELEASERELREL = CK · RUN · НЕ R7
Выпуск: такт проходит к источнику, пока включён ПУСК и смена не кончилась. Конец смены — старший бит счётчика «выпущено».

3.4. Идея: что внутри у CD4069 и CD4081

У CD4069 шесть инверторов: вход A → выход G, B → H и так далее. Нам нужен один: A = R7, G = NDONE. Свободные входы B…F — на GND: у КМОП-микросхемы вход нельзя оставлять «в воздухе».

У CD4081 четыре вентиля И: A, B → J; C, D → K; E, F → L; G, H → M. Два первых соединены цепочкой: выход J (CKR) идёт на вход C. Свободные E…H — на GND.

3.5. Сборка

Вставь урок через Cmd+I поверх урока 2 (текст — в конце урока). Появятся:

  • на площадке — тумблер ПУСК (метка RUN);
  • снаружи — CD4069 и CD4081;
  • нога RELEASE источника перецепится с CK на REL.

3.6. Проверка

  1. Выключи и включи питание: ленты пустые, станки пустые, линия стоит.
  2. Нажми R — оба табло 0.
  3. Включи ПУСК — пошла смена: детали выходят раз в секунду.
  4. Через 128 секунд левое табло встанет на 128, выпуск остановится сам.
  5. Линия доработает то, что внутри, и правое табло тоже дойдёт до 128.
Что смотришьЧто видно
ПУСК выключенгенератор идёт, детали не выходят
левое табловстаёт на 128 и больше не растёт
правое таблодогоняет до 128
источник и стокпо 128

Вставка урока 3 (Cmd+I)

# Lesson 3 — START and the shift. Release = CK · RUN · NOT(R7): the switch starts it, and when "released"# reaches 128 its top bit R7 becomes 1 and closes the gate — the shift is over by itself.# Insert on top of lesson 2. The source now listens to REL instead of the bare clock.input run(RUN)at(run, B, 40, 300)"TI CD4069UB"(A=R7, G=NDONE, B=GND, C=GND, D=GND, E=GND, F=GND)"TI CD4081B"(A=CK, B=RUN, J=CKR, C=CKR, D=NDONE, K=REL, E=GND, F=GND, G=GND, H=GND)reconnect(src.RELEASE = REL)

Не получается? Что-то не работает →