Общий план действий примерно следующий:
1. Определяем датчик (датчики) уровня.
Аналоговый - который будет выдавать величину пропорционально уровню воды.
Или дискретные - которые выдают логически "1", если уровень установки датчика достигнут. Количество дискретных датчиков зависит от способа управления уровнем. В самом простом способе управления уровнем количество датчиков =2.
2. Подключаем датчики к контроллеру. Если используем аналоговый датчик, соответственно устанавливаем в стойку контроллера модуль аналогового ввода. Если используем дискретные датчики - модуль дискретного ввода.
3. Определяем способ управления подачей и сливом воды. В самом простом случае слив происходит естесственным образом, а подача осуществляется клапаном. Клапан управляется релейным сигналом "включить", при снятии сигнала клапан автоматически (пружинкой) отключает подачу воды. Эта ситуация, напоминаю, для самого простого варианта.
4. Для управления клапаном устанавливаем в стойку модуль дискретного вывода (релейный)
5 В Hardware определяем адреса модулей ввода и вывода. Здесь можно установить какие запланированы пользователем или оставить все по умолчанию.
6. Далее определяем алгоритм работы установки.
Примерно такой: если уровень воды находится ниже нижней границы - включаем клапан подачи воды, если уровень воды превысил верхнюю границу, подачу воды (клапан) отключаем.
7. Верхняя граница уровня воды определена , например, как 60% заполнения бака
Нижняя граница уровня воды - как 40%
8. Аналоговый датчик, допустим, измеряет уровень воды от0 до 100% (выдает какойто код в контроллер). Соответственно в программе используем преобразование для лучшего восприятия величин. Используем для этого функцию FC105 (см. листинг выше)
При использовании дискретных датчиков устанавливаем их соответсвенно на бак в точки включения (нижний уровень) и отключения (верхний уровень) клапана подачи воды. И в программе используем уже непосредственно входной сигнал.
9. Для формирования выходного сигнала используем RS триггер, выход которого подаем на управление клапана.
10. Тело программы, представленной в предыдущем сообщении, написано в LAD и переведено в STL.