Только дошли руки покопаться с аппаратурой и наконец перевести свое оборудование на использование обновленных прошивок и софта.
До написания калибровальщика пока не добрался, т.к. только начал с этим разбираться и пока есть проблемы с другим. Ну обо всем по-порядку...
1. Начал с доработки железа по рекомендациям к версии софта 0.3.0.1: сделал как рекомендуется общий Reset для всех модулей, т.е. перерезал на каждом модуле дорожку от массы к 4-й ноге разъема и добавил перемычку оттуда на 1-й контакт контроллера.
Небольшое недоумение вызвала схема подключения отсюда:
[сообщение #13606720]Теперь получается, что резисторы R2 каждого модуля встают через крейт параллельно. При десяти установленных на крейт платах суммарное притягивающее шину Reset к шине 5в сопротивление упадет с 10 кОм до 1кОм. А если плат будет еще больше? И еще один момент: может быть на каждый модуль вместо перемычки от контакта 4 до ноги 1 контроллера надо ставить не перемычку, а диод. Тогда модуль можно будет сбрасывать как общим сигналом с шины крейта, так и индивидуально со штырька на плате не перегружая при этом остальные модули установленные на крейт.
Ладно, после аппаратных доработок проверил работоспособность на старых прошивках с моим старым софтом. Ничего не нарушилось, все работает как прежде, идем дальше.
2. Дальше я решил не кидаться в омут с головой, а идти пошагово и для началала собрать своеобразный "hello world моргающий светодиодом". Если быть конкретным, то оставил на крейте только RMS и контактор. И решил в синхронизаторе написать простейший пользовательский скрипт, который в ответ на нажатия клавиш будет включать и выключать контактор. Для RMS в версии 0.3.0.1 прошивка не изменилась, а для контактора залил новую. И тут начались проблемы.
Новая прошивка контактора не хочет работать нигде, хотя lsync видит модуль в списке устройств. Ни со старым синхронизатором и api ни с их новыми версиями. Симптомы одинаковые: при отправке команды vset('r0', 1) контактор щелкает включаясь и тут же отключается. Если в предыдущей версии после этого прочитать vget('r0') то прочитается 1, т.е. как будто контактор включен, хотя физически он выключен. В новой версии читается 0.
При откате прошивки контактора на предыдущую, старый софт начинает работать нормально, а вот новый ведет себя точно так же.
OldBean, я понимаю, что Вы в своей конфигурации отказались от силового контактора, но ведь реле в системе может использоваться и для других целей.
В общем, экспериментировал как напрямую из питоновской сессии руками вызывая функции api, так и через простейший пользовательский скрипт, который нормально сконвертировался и загрузился в синхронизатор. Нормальной работы контактора в новой версии софта пока добиться не удалось. Синхронизатор использовал версии 0.3.0.2, со старым 0.2.0.1 все работает, но только со старой прошивкой
С остальными модулями пока не экспериментировал.