В этой теме хочу поделиться опытом создания системы управления конвейером. Итак, это система должна управлять (вкл.\выкл) 11-ю двигателями. По трассе катаются x поездов длиной n кареток каждый. К каждой каретке прицеплена корзина для продукции. Система должна работать в составе линии.
Все началось примерно год назад, когда старая система начала давать сбой. Тогда и было принято решение создавать на модулях ввода-вывода по интерфейсу RS232\485 с управлением от главного компьютера. Накидали примерный рисунок того, как это должно работать, посчитали на пальцах, что по времени должно все укладываться, начертили начальную схему, начали считать стоимость - получили, что система на импортном оборудовании примерно в 2 раза дороже. Поэтому остановились на МДВВ ОВЕНа (хотя уже тогда знали, что будет трудновато). Заказали оборудование - подождали - получили - посмотрели. Первая проблема, с которой столкнулись: операционная система. У нас стоит Linux, а конфигуратор сделан под Windows. Делать нечего, совместно с нашим сисадмином-программистом, пришлось написать конфигуратор МДВВ под Linux и изучить протокол ОВЕН. Потратили на это два месяца, но результатом стала оперативная прошивка модулей, установленных на линии. От использования в системе протокола ОВЕН пришлось отказаться сразу: много преобразований (к примеру: байтовые символы, целые в формат float32), кодирование ASCII в тетраду и т.п. Использовали протокол Модбас (тем более есть бесплатная библиотека для этого протокола). Дальше началась самая длинная фаза - монтаж (в шкафах я старался расположить цепи управления отдельно от силовых (по крайней мере подальше), а затем пробный пуск и отладка. Сначала решили провести проверку работы протокола. В течении недель наверное двух гоняли данные, а потом решили включать и выключать выходы МДВВ. Через несколько часов начали отказывать блоки. Большое спасибо форуму, сказали напаять резистор. Напаяли на четырех блоках из шести. Пока работают все. Следующая проблема возникла из-за неправильного подбора волнового сопротивления и неправильной разводки провода UTP-5E. Пришлось вскрыть блоки, чтобы убедиться что там нет согласующего волнового сопротивления. Следующая проблема возникла при подключении датчиков. Входы блоков МДВВ - сухой контакт, общий минус. А выход датчиков - 24Vdc. Для согласования пришлось ставить оптронную развязку. Тут же появилась проблема: наводки от силового оборудования (несмотря на заземление) на выходы с датчиков, в следствии чего входы МДВВ подсвечивались (точнее приоткрывались оптроны). Только в одном случае пришлось поставить реле, в остальных обошлись RC цепочкой.
При написании программы также возникли некоторые трудности, которые нам удалось обойти. Пришлось ставить принудительную задержку между запросами. Думаю, это связано с длиной трассы (около 130м). Хотя на столе все работало без задержек.
Итак, спустя почти год система наконец-то заработала. На момент написания данной темы она уже отработала без сбоев 4 дня. По прежнему возникают ошибки при подключении силового оборудования (по программе это происходит один раз при подаче питания), но думаю блоки БСФ помогут.