Но тут много способов. Самый простой, который вы и предложили - датчики на валу двигателя.
1. Допустим, что тот редуктор даст 1 угловой градус на 10-15 оборотов двигателя (ну от балды).
2. Контроллер примет на вход от энкодера каждый оборот, а значит сможет вычислять относительное движение (относительно начала работы).
3. Останется только добавить точку "0" (верхняя мёртвая точка
), каким-то любым доступным способом.
Посложнее - энкодер на валу двигателя т.к. всё зависит от возможностей энкодера, но это точно не тот случай, чтобы добиваться n-разрядного кода положения поворотного круга.
А по сути, те-же 2 датчика на валу дадут программе информацию о количестве оборотов, но при каждой остановке нужно записать значение вычисленных градусов в EEPROM (что будет иметь свои нюансы).
Таким образом в EEPROM всегда будет некое значение, однако все нюансы вместе всегда будут давать ошибку и без обратной связи всё равно не обойтись.
В серийных поворотных кругах в качестве обратной связи, как я понял, выступает большое контактное колесо и там (у KATO точно но не могу найти фото этого колеса) есть фиксированное число позиций, которые пляшут от рельсовых адаптеров к мосту поворотного круга (стандарт UNITRACK).
Скорее всего, чтобы не городить огород, нам нужно смириться с тем, что после включения поворотный круг будет ехать с текущего положения Х в положение "0" и там останавливаться, а потом будет спокойно крутиться весь сеанс командами - "на 30 градусов через правое плечо КРУТИСЬ", "на 45 градусов через левое плечо КРУТИСЬ" пока не накопится ошибка.