PDA

Просмотр полной версии : CoDeSys + ModBus



progress
15.05.2009, 13:33
Здравствуйте.
Рассматриваю ПЛК100 как очень привлекательную альтернативу. Останавливает только незнание практических аспектов среды программирования и самого контроллера.
Стоит следующая задача:
- организовать в контроллере пять недельных расписаний (с хранением в ПЗУ) и работу дискретных выходов по ним
- предоставить возможность изменять по протоколу ModBusRTU параметры недельного расписания.
Т.е. за каждые сутки такие парметры (ЧЧ:ММ, действие (ВКЛ/ВЫКЛ), ЧЧ:ММ, действие (ВКЛ/ВЫКЛ)) - выходит 8 переменных. За неделю 7*8=56 переменных. В пяти недельных расписаниях - 56*5=280 переменных.
Понятно, что для компактности можно кое-что запаковать, но, т.к. требуется еще передавать состояние входов-выходов, синхронизировать время, то будем для простоты полагать, что будет 280 перменных ModBus.

Вопросов два:
- потянет ли контроллер обмен данных в описанном объеме
- сложна ли реализация такого расписания (может макросы уже готовые есть)

Спасибо.

magirus
15.05.2009, 13:53
альтернатива чему?
плк стакой задачей справится без труда...
реализация сложной не выглядит...
(макросов нет, по крайней мере у меня.)
опишите задачу подробнее, может будет проще помочь...

progress
15.05.2009, 14:39
ПЛК100 как альтернатива SMH для решения именно этой задачи.
SMH, например, 8 вышеописанных расписаний не потянет по ModBus.

Задача вроде бы описана достаточно подробно (для ответа на мои вопросы). Трехдиапазонный суточный таймер по которому идет управление дискретным выходом. Таких таймеров в контроллере должно быть пять.

Беспокоит именно возможность передавать такое кол-во переменных.

Николаев Андрей
17.05.2009, 12:56
Не вижу никаких трудностей, тем более что не все 280 переменных необходимо записывать в ПЛК, я полагаю...
Это не задача для ПЛК, и он с ней легко справится.
Макросов нет. Вам необходимо освоить работу с библиотекой SysLibTime, которая получает системное время с часов реального времени в контроллере. Ну и дальше в программе просто сравнивать полученное время с Вашими графиками.
НИКАКИХ сложностей реализации я не вижу.
Пример определения рабочий\дежурный (в Вашем случае может быть включить\выключить) во вложении.
Время включения и выключения в данном случае были записаны по умолчанию и менялись с ИП320

Филоненко Владислав
17.05.2009, 21:15
Библиотека называется SysLibTime

progress
18.05.2009, 12:47
Не вижу никаких трудностей, тем более что не все 280 переменных необходимо записывать в ПЛК, я полагаю...
Это не задача для ПЛК, и он с ней легко справится...


Так вот как раз все эти 280 переменных и необходимо хранить в энергонезависимой памяти контроллера. Чтобы в автономном режиме (без связи с диспетчерской, например) он включался-выключался согласно недельному графику работы. Т.е. по каждому дню недели для одного релейного выхода ПЛК такие перменные: ЧЧ (1- часы), ММ (2 - минуты), ВКЛ/ВЫКЛ (3 - действие), ЧЧ (4 - часы), ММ (5 - минуты), ВКЛ/ВЫКЛ (6 - действие).
Таких дней недели 7, таких релейных выходов 5. Итого 210 Modbus переменных с запоминанием в контроллере.
Кроме того в SCADA необходимо передавать фактическое состояние I|O контроллера, системное время и дату для чтения-изменения по Modbus.

Чувствую, что - не попробуешь, не узнаешь :)

В любом случае благодарю ВСЕХ за участие в обсуждении

Игорь Петров
18.05.2009, 13:35
Все достаточно просто.
См. статью и примеры "Программируем временные сложности" тут (http://www.prolog-plc.ru/tmpl.php?content=info3.htm).
Плюс в биб-ке OSCAT (http://www.oscat.de/) есть такие блоки.

Зачем тут вообще Модбас? Нужно обязательно с панели расписание менять?
Альтернатива нарисовать визуализацию для управления расписанием прямо в CoDeSys (либо использовать CoDeSys HMI) – без Модбаса и без SCADA. Тогда эта задача решается минут за 20-30.