Страница 1 из 1

Пользовательский скрипт на S7-300

Добавлено: 07 ноя 2018, 10:32
Rusmir
Видел такую систему в скаде пользователь (технолог) набивает примитивный скрипт по одной-двум командам в строке типа IF THEN ELSE GOTO присвоения значений аналоговых, дискретных, задержки. В качестве аргументов используются ресурсы ПЛК входы выходы переменные уставки и т.п. Потом контроллер это дело выполняет по шагам. Причем после "компиляции" комп уже только отображает шаги, сценарий в контроллере крутится. Такой себе самопальный batch control. Загорелся реализовать на S7-300 архитектуре без кучи монструозного софта от Сименс типа PCS, установка небольшая экспериментальная. Пока идея такая в цикле крутится блок, который проверяет все возможные шаги, например 255 шагов. Активный и пройденный шаг смотреть и отображать массивом булей. В активном шаге вызываются данные шага (теги в которых закодирован скрипт текущего шага) дальше разбор, выполнение и переход на следующий шаг. Куча косвенной адресации)). Но вот проблема что громоздко получается и сама реализация на STL видится туманно. Может кто что подскажет? Нет ли инструментов генерировать код блока динамически со скады (было бы интересно)? Уже подмывает написать все на каком нибудь сишарпе и поставить промышленный комп, но нравится идея с ПЛК надежность стандарты и все такое...

Re: Пользовательский скрипт на S7-300

Добавлено: 07 ноя 2018, 11:22
Михайло
Кажется речь идёт про рецепты (recipes). Изучайте эту тему.

Обычно на ПЛК не очень много места для рецептов, выгоднее тот же функционал реализовывать на панелях оператора или в SCADA. В любой из этих систем есть свои рецепты.

Re: Пользовательский скрипт на S7-300

Добавлено: 15 ноя 2018, 09:35
Rusmir
Ну рецепты это наборы данных, для колы сахара 50 воды 100 кислоты 30 для живчика 40 110 20 для пепси 50 90 25 и т.д. Я же спрашивал про составление гибкой функциональности по поведению. Например программа для колы нагреть до 120 градусов помешать 20 минут подождать 40 мин и если рН > 4 и прозрачность 20 добавить кислоты по формуле объем*прозрачность*коэффициент охладить до 10 гр и т.п. Тоесть скрипт. И набирает его технолог ))

Re: Пользовательский скрипт на S7-300

Добавлено: 15 ноя 2018, 09:42
Михайло
Ну технолог запросто отправит ПЛК в СТОП )))

Re: Пользовательский скрипт на S7-300

Добавлено: 16 ноя 2018, 07:04
petr2off
Рецепты это не наборы данных. В стандарте МЭК это язык SFC. У Сименсов он как то менее известный, потому как продается за отдельные деньги - т.е. самостоятельный продукт. Так есть своя нотация, суть ее в том, что есть шаги и переходы. И циклически выполняется текущий шаг, до тех пор - пока не будет выполнено условие перехода. Применяется для протяженных во времени алгоритмов. Например, в свое время я сделал на SFC программку запуска насоса.
1 Шаг - закрыть выходную задвижку, открыть входную. Условие перехода - задвижвки открыты
2 Шаг - Запустить насос. Условие перехода - насос запустился и набрал 300 оборотов
3 Шаг - уровнять давления на выходной задвижки. Условия перехода разница давлений на выходе насоса и входном коллекторе меньше 0.1 бар или число оборотов >=1100
4 Шаг - открытие выходной задвижки. Условие перехода - задвижка открыта
5 Шаг - включить PID регулятор

Это все конечно очень поверхностно. Но суть в том, что оператор только цепочку запускает - а дальше она выполняется сама, причем цепочки могут быть сложными, иметь несколько ветвей, разветвятся, сливаться.

Re: Пользовательский скрипт на S7-300

Добавлено: 16 ноя 2018, 07:41
Михайло
Технолог не сможет работать с ПЛК, ему нужна песочница.

Re: Пользовательский скрипт на S7-300

Добавлено: 16 ноя 2018, 10:03
petr2off
Понятное дело, программа работает в контроллере, а управляется с АРМа, где в скаде есть различные кнопки. Скажем у меня это была кнопка ФГУ (функционально-групповое управление). Там две команды было ПУСК НАСОСА и ОСТАНОВ НАСОСА. И подкоманды: приостановить, продолжить, прекратить. И два вида индикации. Короткая (в WINCC есть такой элемент ) - 5 полосок. белая - шаг еще не выполнялся, зеленая выполнился, красная - ошибка. И подробная, с указанием конкретно выполняемого шага, расшифровкой ошибки(если есть). И.т.д. Оператора ни в коем случае к PLC допускать нельзя.