Является ли C# жизнеспособным для управления осями станка?
В настоящее время мы разрабатываем новый способ управления осями одной из наших машин. В настоящее время у нас довольно старая система (~30 лет), которую необходимо заменить.
Оси самой машины управляются Simatic S5, который сам по себе управляется старой системой через цифровой ввод / вывод. Старая система считывает положение осей с помощью инкрементальных энкодеров и интерфейса энкодера. В зависимости от положения старая система устанавливает цифровые выходы для управления осями. Теперь мы думаем об использовании C# с цифровой картой ввода-вывода, а также с интерфейсом инкрементного кодера.
Теперь вопрос в том, является ли C# жизнеспособным решением для чтения интерфейса кодировщика, или тайм-ауты, вызванные сборщиком мусора, являются слишком большой нагрузкой для управления.
Сама программа будет довольно маленькой.
1 ответ
Основная проблема заключается в том, что приложение C# не является детерминированным, поэтому есть большая вероятность, что оно не будет читать все данные в данный момент времени из-за каких-либо зависаний / задержек и т. Д. (Например, установить цикл для чтения кодировщика каждые 10 мс, вы можете ' на 100% уверен, что это случилось)
Лучше всего использовать приложение ПЛК, которое позволяет ВСЕГДА считывать данные за заданное время. Данные можно буферизовать, а затем показать в приложении C#.