Немного другой оффтоп - при расширении IO начинает не хватать возможности задания своей логики работы IO. Элементарных вещей, приблизительно как "синхронная работа", но внутри одной ERD, и желательно с "и/или/не". Ведь это как раз и есть суть ПЛК. При этом сохраняя возможность "синхронной работы"
Скажем, использовать один из выходов для общего сигнала "авария". Вида "DO5 = DI1 or DI2 or noWDI" (выдать сигнал на DIO5, если сработал DI1 или DI2, или вырубился датчик фазы). С возможностью расширения - появляется мысль о сигналах "авария" и "критическая авария". Еще параллельно дублируя эти сигналы на удалённую ERD через "синхронную работу".
Еще на мой взгляд - сигналы должны изменяться только когда изменилось состояние входов (если не было ребута ERD естественно). Т.е. чтобы можно было по SNMP сбросить "аварию" до разрешения, или наоборот выдать. Хотя тут появляется вопрос - а что если скажем (по примеру DO5 = DI1 or DI2 or noWDI) сработали DI1 и DI2, удаленно аварию сбросили, затем DI2 выключился. По идее, если будет завязано на изменение, DO5 опять включится.
Сюда же вопрос - что будет, если при такой логике отвалится один из расширителей, на который завязана логика.
Принято.