Коллеги, добрый день.
Недавно начал изучать ОВЕН и системы автоматизации в целом.
Есть идея создать на базе ПЛК100 и доп модулей (МВА8, МДВВ и МВУ8) автоматизацию управления загородным домом (управление отоплением по температуре, контроль уровня жидкостей в системах, простые охранные и противопожарные функции и пр.).
Структура предполагается следующая:
1. ПЛК100 с модулями получает параметры с входов, управляет выходами, работает автономно и независимо по своей программе;
2. Сервер на Linux (Ubuntu, MySQL, Apache, PHP) в сети выполняет функции:
- интерфейса пользователя на web (выводит данные);
- интерфейса администратора на web (позволяет корректировать значения программы, типа требуемой температуры обогрева и пр.);
- уведомления по определенным событиям по e-mail (GSM/GPRS/SMS не требуется ибо телефон с e-mail всегда с собой);
- логирования параметров датчиков и наступления событий (пишет в БД (допустим mysql) данные датчиков каждые 5-10 мин (а то и меньше) либо по изменению), соответственно потом выводим на интерфейс пользователя).
Соединено все обычной локальной сетью вместе с несколькими ПК по Ethernet. Использование сервера на мой взгляд существенно расширяет возможности масштабирования как создаваемой системы, так и интеграции с другими системами. К примеру позже планирую к web-интерфейсу пользователя подсоединить и систему видеонаблюдения.
Соответственно вопросы к "старшим" братьям:
  1. Логичен ли сам подход? Может быть имеет смысл какие-то функции передать другому "прибору" или перераспределить.
  2. Идеальная конечно ситуация, когда бы ПЛК сам бы умел залезть в БД MySQL, прочитать и записать параметры. Это реализовать реально?
  3. Соответственно, если прямое взаимодействие с БД невозможно, нужно ПЛК опрашивать (постоянно) и давать команды (периодически). Нужно решение (вот здесь у меня серьезное затруднение, т.к. с программированием обмена по сети еще не сталкивался). Вариантов несколько:
    • Modbus TCP с OPC сервером стороннего производителя на сервере, но под Linux наработок практически нет: Modpoll и libmodbus (первый просто команда, со вторым пока не получилось до конца разобраться).
    • Написать что-то свое (неподъемная задача для меня).
    • Использовать Web-сервер ПЛК (пример написан в соседней ветке). С помощью простого скрипта на сервере по 80 порту получать параметры с ПЛК и изменять их.

Заранее спасибо за участие и советы. Больше всего хочется услышать положительный ответ на второй вопрос с примером проекта из которого можно понять принцип.