Форум программистов, компьютерный форум, киберфорум
ФедосеевПавел
Войти
Регистрация
Восстановить пароль

Owen Logic: методика разработки проекта

Запись от ФедосеевПавел размещена 11.10.2025 в 14:58. Обновил(-а) ФедосеевПавел 11.10.2025 в 12:33
Показов 2718 Комментарии 0
Метки owen, owenlogic

Owen Logic: методика разработки проекта



Введение



Проект из статьи является иллюстративным и никогда не проверялся на практике, поэтому нисколько не удивлюсь, если на реальном объекте он не заработает без исправления ошибок в алгоритме, если вообще скомпилируется

Для эмуляции проекта потребуются изменения:
  • разорвать привязку переменной nRtcSeconds от аппаратной части;
  • подключить переменную nRtcSeconds к выходу счётчика в самом конце программы.

Блог ограничивает количество вложений, поэтому иллюстраций будет мало, а архивы будут содержать по несколько файлов, демонстрирующих их эволюцию.

По мере выполнения небольших проектов для малой автоматизации на основе программируемых реле производства ОВЕН модели ПР205 в среде Owen Logic выработал методику, сокращающую время разработки и сводящую значительную часть работы к механическим действиям.

Для представления о применимости метода приведу характеристики выполненных проектов:
  • DI - 10-12 шт.;
  • AI - 2-6 шт.;
  • DO - 1-3 шт. (сигнальные лампы);
  • AO - 0 шт.;
  • Modbus - 1-4 Slave по 4-8 регистра;
  • количество обрабатываемых неисправностей 10-40 шт.;
  • параметры настройки 40-50 шт.;
  • управление исполнительными механизмами (ПЧВ) по Modbus, поэтому DO и AO отсутствуют (кроме пары сигнальных ламп).

Основной критерий для выбора предлагаемого метода — количество обрабатываемых неисправностей достаточно велико и неисправности неравномерно влияют на работоспособность отдельных компонентов всей системы.
Если от программы не требуется обработка ошибок, не предполагается доработка функционала и нужно, чтобы программа просто работала, то эта методика будет только мешать творческому подходу.

Достоинства применения этой методики, на мой взгляд:
  • сокращение сроков выполнения работ;
  • сокращение числа ошибок до ПНР;
  • выход на ПНР с готовыми защитами, которые остановят работу в нештатной ситуации даже при ошибках в алгоритме.
Стоит отметить и значительную роль повторного использования кода — накопление с опытом библиотечных элементов.

Используемые сокращения



FBD — (Function Block Diagram) графический язык программирования стандарта МЭК 61131-3.
ST — (Structured Text) язык программирования стандарта IEC 61131-3.
ПР — программируемое реле.
ФБ — функциональный блок в языке программирования FBD.

Краткое обоснование принятых решений



Язык разработки — FBD
Среда разработки Owen Logic предлагает работу почти исключительно на языке FBD с возможностью применения ещё и языка ST в разработанных макросах (аналогах ФБ) и функциях. Язык ST в Owen Logic реализован со значительными ограничениями и играет вспомогательную роль. Поэтому на данный момент использование ST имеет смысл только в тех макросах, которые излишне сложно реализуются средствами языка FBD.
Значит основным языком разработки является FBD, а ST будет (или не будет) применяться эпизодически.
Отмечу, в связи с развитием возможностей различных ИИ-помощников, появилась возможность генерации кода на ST, поэтому предполагаю улучшение положения ST в Owen Logic, что приведёт к пересмотру тезиса о выборе.

Именованные связи между элементами
Язык FBD позволяет организовать связи между элементами двумя способами — непосредственно соединительными линиями и при помощи именованных связей (переменных). Каждый имеет достоинства и недостатки.
По моему мнению следует отказаться от соединительных линий, т.к. большинство сигналов используются неоднократно (например, измеренная температура участвует и в регулировании и в защитах), что превратит холст в невнятную паутину.
Значит основным способом связи элементов выбирается — именованные связи. Использование именованных связей потребует описания множества переменных.

Структура программы
Выбор языка FBD и организации связей приводит к идеи декомпозиции программы на разделы, каждый из которых состоит из однотипных ФБ (т.е. требуется реализация соответствующих ФБ). А также некоторой группировке переменных по признаку выхода из одного раздела для группового применения в каком-то другом (других) разделах.

С учётом некоторого опыта, мне видится создание разделов:
  1. инициализация — задерживается включение, чтобы успели начать работать все внешние приборы, неиспользуемые выходы отключаются (или переводятся в безопасное состояние),
  2. обработка аналоговых входов — масштабирование измерений, формирование сигналов неисправности датчиков,
  3. обработка дискретных входов — формирование сигналов состояний, сброса сигнализации,
  4. предупредительная сигнализация — формирование сигналов предупредительной сигнализации на основе входных сигналов, обобщающих сигналов для каждой подсистемы,
  5. защитные блокировки — формирование сигналов защитных блокировок на основе сигналов предупредительной сигнализации, обобщающих сигналов для каждой подсистемы,
  6. обмен с вышестоящей системой — упаковка булевских сигналов состояния, предупредительной сигнализации, защитных блокировок в слова состояния (сетевые переменные), распаковка командного слова на сигналы отдельных команд и обнуление командного слова, для возможности повторения команд,
  7. обработка команд — обработка команд, приходящих из нескольких источников (локальная панель, вышестоящая система), формирование итоговых состояний переключения режимов (например, переключение РУЧН-АВТО),
  8. вспомогательные переменные, используемые в управлении и выводе на экран — формируются сигналы вспомогательных переменных (например, готовности к работе в автоматическом режиме),
  9. рабочие алгоритмы — реализация управляющих алгоритмов.
Очевидно, раздел рабочие алгоритмы в свою очередь может состоять из нескольких подразделов.

Несколько упрощённо структура показана на рисунке.
Нажмите на изображение для увеличения
Название: Структура программы.png
Просмотров: 122
Размер:	21.7 Кб
ID:	11255

Функциональное назначение переменных разных классов
Среда разработки Owen Logic имеет три класса переменных:
  • стандартные — переменные, область видимости которых ограничивается программой,
  • сетевые, Slave — переменные, область видимости которых составляет программа и сетевые устройства, опрашивающие ПР в режиме Modbus Slave устройства,
  • сетевые, Master — переменные, область видимости которых ограничивается программой, и служащие для обмена ПР с Modbus Slave устройством.

На мой взгляд, удобно распределить функциональное назначение переменных в программе следующим образом:
  • стандартные — переменные линий связи, вспомогательные переменные,
  • сетевые, Slave — переменные текущего состояния (измеренные значения, регистры флагов состояний, текущих режимов работы), параметры настройки (диапазоны измерений, уставки сигнализаций и блокировок, параметры регулирования),
  • сетевые, Master — по необходимости опроса сетевых устройств.
Предлагаемое использование сетевых переменных обусловлено тем, что для программы они являются такими же, как и стандартные, но при неожиданном добавлении в проект панели оператора или требования подключения к облачному сервису изменений проекта не потребуется. Ещё одним доводом является возможность для некоторых линеек ПР при помощи утилиты Owen Configurator считывать, модифицировать, сохранять в файле и восстанавливать из файла настройки в сетевых переменных.

При выбранной структуре программы, стандартные переменные, связывающие перечисленные разделы группируются следующим образом:
  • входы
  • выходы
  • предупредительная сигнализация
  • защитные блокировки
  • состояние
  • команды от вышестоящей системы
  • команды от местного пульта
  • привязки к аппаратной части ПР
Т.к. систему автоматики можно разделить на подсистемы, то внутри каждой группы переменные образуют подгруппы, принадлежащие каждой из подсистем.
Например, для насосной станции из двух насосов можно выделить три подсистемы — первый насос, второй насос, общие для обоих насосов. Каждая из подсистем имеет состояния, сигнализации и блокировки, полученные команды. При этом, при неисправности одного из насосов, оставшийся исправным может продолжить работу, а при неисправности в общей части независимо от состояния самих насосов — работа невозможна.

Сетевые Slave переменные группируются по критериям принадлежности к той или иной функции управления или регулирования. Удобно лишь в самом начале разместить переменные текущего состояния, которые не требуют энергонезависимости, т.к. количество таких переменных почти не будет изменяться в ходе возможных доработок алгоритма.

Краткое описание методики



Последовательность разработки:
  1. Описание стандартных переменных:
    • получение образца файла экспорта переменных из Owen Logic
    • редактирование файла экспорта в Exel для получения описания необходимых переменных
    • импорт полученного файла в Owen Logic
  2. Создание разделов программы с пропуском и резервированием места на холсте для переменных состояния или параметров настройки.
  3. С учётом полученных при создании программы сведений о списке переменных состояния и параметров настройки создаются сетевые Slave переменные:
    • получение образца файла экспорта переменных из Owen Logic
    • редактирование файла экспорта в Exel для получения описания необходимых переменных
    • импорт полученного файла в Owen Logic
  4. формирование файла импорта сетевых переменных в вышестоящую систему (панель оператора)
  5. формирование файла импорта сетевых переменных в вышестоящую систему (облачный сервис)

При описании стандартных переменных в части состояния, сигнализации, блокировок и команд необходимо разделение их между общими для всей системы и индивидуальными для отдельных подсистем. Т.к. влияние срабатывания блокировки различно — на всю систему или только на отдельную подсистему.

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

Каждый из разделов программы создаётся почти машинально — сигналы одного назначения однообразно обрабатываются, а их группировка в дереве переменных (полученная при импорте) только упрощает однообразные действия. Единственное исключение — раздел формирования предупредительной сигнализации.

Пример применения методики



Объект автоматизации — насосная станция из двух насосов, работающих на одну магистраль поочерёдно

Описание объекта автоматизации и технического задания
Этот алгоритм неоднократно реализован в настраиваемых приборах множества производителей:
  • ОВЕН САУ-У (алгоритмы 11 и 15),
  • ОВЕН СУНА-121 (алгоритм 06.00),
  • ОВЕН САУ-МП (САУ-МП-Х.11, САУ-МП-Х.15),
  • Контур-У (алгоритмы 05.01 и 05.02).

Для демонстрации подходов сформулируем некоторую модификацию этого алгоритма:
  • Алгоритм предназначен для управления двумя работающими поочередно насосами, имеющими индивидуальные датчики «сухого хода» и перепада давления (наличия потока).
  • Алгоритм предусматривает чередование насосов через заданный промежуток времени.
  • Если работающий насос признан неисправным, то он выключается и включается оставшийся насос.
  • Индивидуальные для каждого насоса переключатели РУЧН-АВТО позволяют исключить из управления алгоритмом отдельный насос. Если одновременно исключены оба насоса должна светиться лампа обобщённой неисправности.
  • По датчику давления после насосов блокируется работа по превышению или снижению по сравнению с уставками.

Схема автоматизации показана на рисунке
Нажмите на изображение для увеличения
Название: P_ID.png
Просмотров: 48
Размер:	12.1 Кб
ID:	11075
На функциональной схеме автоматизации обозначены:
Входные сигналы:
  • LSA1, LSA2 — датчики «сухого хода» перед каждым насосом,
  • PDSA1, PDSA2 — датчики-реле перепада давления на каждом насосе,
  • PIA1 — аналоговый датчик давления в магистрали после насосов,
  • TIA1, TIA2 — аналоговые датчики температур обмоток моторов для каждого насоса,
  • KV1 — реле контроля фаз (сигнал нормального состояния электропитания от реле контроля фаз),
  • QF1, QF2 — наличие электропитание для каждого из насосов,
  • SW1 — запрос работы установки СТОП-СТАРТ (переключатель на два положения),
  • SW2, SW3 — переключатели режима работы для каждого насоса РУЧН-АВТО,
  • SB1 — кнопка с фиксацией СТОП,
  • SB2 — кнопка без фиксации СБРОС СИГНАЛИЗАЦИИ.
  • Выходные сигналы:
  • KM1, KM2 — пускатель каждого насоса,
  • HL1 — лампа обобщённой неисправности,
  • HL2, HL3 — лампы отказов каждого насоса.

Защитные блокировки насосов:
  • «сухой ход»,
  • отсутствие перепада давления работающего насоса,
  • перегрев мотора,
  • неисправность датчика температуры обмоток мотора насоса,
  • отключено электропитание насоса.

Защитные блокировки общие для всей насосной станции:
  • высокое давление воды в магистрали после насосов,
  • низкое давление воды в магистрали после насосов,
  • неисправность датчика давления воды в магистрали после насосов,
  • ошибка от реле контроля фаз,
  • ошибка соединения с модулем расширения входов и выходов или неисправность самого модуля.

Технологическая сигнализация:
  • разряжена батарейка, поддерживающая часы реального времени и энергонезависимые переменные

Т.е. система содержит независимые защитные блокировки (для каждого из насосов), а также общие для всей системы Кроме того, присутствуют сигналы, не вызывающие блокировку установки, но требующие вмешательства оперативного или обслуживающего персонала.


Стиль оформления проекта
Стиль оформления проекта

Именование переменных



По разным причинам принял для себя правила именования переменных.
Префикс переменной обозначает источник или приёмник сигнала, тип данных:
  • x — дискретный входной сигнал
  • b — дискретный сигнал в пределах алгоритма
  • y — дискретный выходной сигнал
  • a — аналоговый входной сигнал от АЦП до масштабирования
  • r — аналоговый сигнал после масштабирования или переменная типа real=float=float32=single
  • o — аналоговый выходной сигнал в безразмерных единицах ЦАП
  • n — целочисленная переменная без знака
  • w — целочисленная переменная без знака размером 16 бит, используемая как набор бит (флагов)
Префикс может дополняться несколькими символами, обозначающими источник данных:
  • MS — переменная получена от вышестоящей системы по цифровому интерфейсу Modbus, для которой контроллер является Slave устройством
  • SCR — переменная используется для взаимодействия с экраном местной панели контроллера, при использовании на экране приобретает дополнительное опциональное свойство «запись в конце цикла», востребованное в алгоритме
  • HW — переменная, «привязанная» к аппаратным переменным контроллера
Например, nHW_Rtc_Seconds — целочисленная переменная, привязанная к аппаратной части ПР — секундам часов реального времени.

Оформление макросов (функциональных блоков, функций)



В самом верху программы или макроса размещён текстовый комментарий, содержащий краткое описание кода, автора, имя группы, которой принадлежит макрос, дату последней редакции.
Нажмите на изображение для увеличения
Название: 1_Описание_программы.png
Просмотров: 62
Размер:	25.5 Кб
ID:	11083
Нажмите на изображение для увеличения
Название: 1_Описание_макроса.png
Просмотров: 72
Размер:	23.6 Кб
ID:	11084
Стиль соединительных линий произвольный, т.к., обычно, макрос это небольшой фрагмент кода, не отличающийся высокой сложностью ни алгоритма ни связей между элементами.


Описание стандартных переменных
Описание стандартных переменных
Переменные можно описывать штатным способом — по одной в окне ввода переменных.
Но можно гораздо быстрее, при помощи импорта описаний переменных из подготовленного файла.
Формат файла значительно отличается от версии к версии Owen Logic, а также для различных моделей ПР в рамках одной версии. При этом тип файла csv удобно редактируется в Exel (или в Calc из LibreOffice) — заполнение «протягиванием», копированием и заменой в выделенном фрагменте и пр.

Не по теме:

Для Exel существует удобная надстройка, позволяющая быстро выполнять групповую обработку ячеек — Ёxel, доступная по ссылке https://www.e-xcel.ru/index.php/joxcel
Для Calc (LibOo) о подобном расширении не знаю, но в окне Поиск-Замена возможно использовать регулярные выражения, что хоть и сложнее, но всё равно заметно быстрее поэлементного изменения.



Для этого нужно получить образец файла импорта — объявить три переменные разных типов (целочисленная, булевская, с плавающей запятой) и выполнить экспорт переменных — получить csv файл с описанием.
Для Owen Logic 2.11.368.0 и ПР205 (для других версий и моделей будут отличия) пробный экспорт приведён в файле
«1_1_Экспорт_переменных_для_заготовки.csv»
Нажмите на изображение для увеличения
Название: 1_1_Скрин_экспорта_переменных.png
Просмотров: 42
Размер:	10.5 Кб
ID:	11132

Каждая из подсистем насосной станции (общая, первый насос и второй насос) имеет однотипные наборы данных — переменных:
  • состояния (например, включено, отключено, отказ, выполняется инициализация и т.п.)
  • предупредительная сигнализация (начался отсчёт таймера срабатывания защитной блокировки) по отдельным параметрам
  • защитная блокировка и сигнализация по отдельным параметрам
  • команды, принимаемые из вышестоящей системы (панель оператора, SCADA, облако OwenCloud)

Полученный csv файл открыть в Exel (или в Calc из LibreOffice) и на основе образцов объявить требуемые переменные, пока без привязки к объекту управления (просто нумерованные состояния, сигнализации и пр.).
На этапе получения заготовки описаний переменных для подсистем удобно описать их с запасом. Предпочитаю резервировать переменные в количестве кратном 16 — по числу бит в одном регистре Modbus. Данная система не очень сложная, состояний не много, достаточно будет по 16 переменных.

Результат предварительного определения переменных с разделением на функциональные группы показан в файле
«1_2_Заготовка_для описания_переменных.csv»
Нажмите на изображение для увеличения
Название: 1_2_Скрин_заготовки_.png
Просмотров: 49
Размер:	164.2 Кб
ID:	11133

Далее, нужно последовательно уточнить описания, ведь алгоритм определён ещё на этапе ТЗ.
Получаем окончательный файл импорта переменных. Он окончательный не только потому, что так захотелось или переоцениваю силы — повторный импорт невозможен (он не обновляет существующие переменные, а создаёт повторно с генерацией ошибок одинакового имени), так уж устроена среда разработки.
Результат окончательного определения стандартных переменных показан в файле
«1_3_Импорт_переменных.csv»
Именно из этого файла и выполняется импорт стандартных переменных в программу.

Архив содержит все три csv файла для примера — экспорт из Owen Logic, заготовка для уточнения переменных и итог обработки в Exel.
1_Импорт_Стандартных переменных.7z


Создание разделов программы (кроме рабочего алгоритма) с пропуском и резервированием места на холсте для переменных состояния или параметров настройки, которые будут добавлены после описания сетевых переменных Slave
Кликните здесь для просмотра всего текста
Следующий этап — набрать основную часть программы без алгоритмов работы. Также будут пропускаться обращения к переменным, которые относятся к настройкам и результатам измерения, т.к. это сетевые переменные и их ещё предстоит создать и импортировать.
Создаются разделы:
  1. инициализация — задерживается включение, чтобы успели начать работать все внешние приборы, неиспользуемые выходы отключаются,
  2. обработка аналоговых входов — масштабирование измерений, формирование сигналов неисправности датчиков,
  3. обработка дискретных входов — формирование сигналов состояний, сброса сигнализации,
  4. предупредительная сигнализация — формирование сигналов предупредительной сигнализации на основе входных сигналов, обобщающих сигналов для каждой подсистемы,
  5. защитные блокировки — формирование сигналов защитных блокировок на основе сигналов предупредительной сигнализации, обобщающих сигналов для каждой подсистемы,
  6. обмен с вышестоящей системой — упаковка булевских сигналов состояния, предупредительной сигнализации, защитных блокировок в слова состояния (сетевые переменные), распаковка командного слова на сигналы команд и обнуление командного слова, для возможности повторения команд,
  7. формирование сигналов готовности к работе — формируются сигналы состояния исправности и готовности к работе в автоматическом режиме.

На скрине показаны разделы инициализации и обработки аналоговых выходов без части переменных, которые будут получены импортом сетевых переменных.
Нажмите на изображение для увеличения
Название: 2_1_Программа.png
Просмотров: 67
Размер:	83.1 Кб
ID:	11136


Дополнение программы разделом рабочего алгоритма с пропуском и резервированием места на холсте для переменных состояния или параметров настройки, которые будут добавлены после описания сетевых переменных Slave
Кликните здесь для просмотра всего текста

На этом этапе реализуются алгоритмы работы. Эти алгоритмы индивидуальны для каждого проекта и не поддаются формализации.
Остаётся только требование — по возможности, не объявлять новые переменные состояния, а использовать незадействованные из состава слов состояния подсистемы (в данном случае первого или второго насоса, общей части). Требование нацелено на обработку в вышестоящей системе для отображения на мнемосхеме. Если его не соблюдать, то придётся копировать вновьобъявленные биты в уже существующие биты состояний.

Получаем программу без сетевых Slave переменных
Нажмите на изображение для увеличения
Название: 2_2_Добавление_рабочих_алгоритмов.png
Просмотров: 57
Размер:	48.9 Кб
ID:	11137


Добавление сетевых Slave переменных
Кликните здесь для просмотра всего текста

Последовательность получения файла импорта можно проследить по файлам из архива
3_Импорт_переменных_Сетевых_Slave.7z

По аналогии со стандартными переменными, следует получить образец файла экспорта сетевых Slave переменных.
«3_1_Экспорт_переменных_для заготовки_Сетевые, Slave.csv»

По мере создания программы дополнять переменные в этот список переменных, заполняя лишь уникальные поля — имя переменной, тип, комментарий, начальное значение, диапазон изменения.
В файле «3_2_Импорт_переменных_Сетевые_заготовка, Slave.csv» из архива видно, что часть полей (например, адрес) заполнена некорректно.

Когда программа уже будет завершена и потребуются сетевые Slave переменные, то в файле экспорта останется расставить строки по группам, дать имена группам, при помощи формул с условием пересчитать адреса, копированием заполнить имена путей, дополнительное описание, энергонезависимость.
Эту работу очень удобно выполнять в Exel, а не в редакторе переменных Owen Logic, поэтому её выполнение займёт очень мало времени.
В файле «3_3_Импорт_переменных_Сетевые_итоговый, Slave.csv» видно, что заполнены все поля и они не содержат ошибок.


Завершение программы, эмуляция, исправление ошибок в алгоритмах и макросах
Кликните здесь для просмотра всего текста
После импорта сетевых переменных, остаётся завершить программу — расставить пропущенные переменные.
Проверка эмуляцией позволяет выявить и устранить ошибки, поэтому в исправленных макросах уточняются даты создания.

Получаем итоговый проект
2_Программа.7z
Примечание. Архив содержит поэтапное развитие программы от основных разделов, добавления рабочих алгоритмов и завершения после импорта сетевых переменных.


Формирование файла импорта сетевых переменных в вышестоящую систему (панель оператора)
Кликните здесь для просмотра всего текста
Большое количество переменных, передаваемых в вышестояющую систему (панель оператора) есть смысл не описывать по одной, а по аналогии с другими случаями импортировать.
Форматы файлов импорта в среде разработки проекта панели оператора не совпадают с форматом экспорта Owen Logic. Решение состоит в конвертации файла экспорта в формат файла импорта.

Пример для панели Weintek ранее рассматривал в статье
OwenLogic: перенос сетевых переменных в панель Weintek (EasyBuilder Pro)


Формирование файла импорта сетевых переменных в вышестоящую систему (облачный сервис)
Кликните здесь для просмотра всего текста
Приборы производства ОВЕН часто подключают к облачному сервису OwenCloud.
На данный момент формат файла импорта для переменных является json.
Среда разработки Owen Logic позволяет выполнить экспорт переменных для OwenCloud, но заполнение полей в json получается неполным и не вполне адекватным, что после импорта дополняется невозможностью редактирования некоторых полей.

Пользователи разработали утилиту для конвертации csv файла экспорта сетевых переменных в формат json импорта параметров для облачного сервиса.
Скачать её и ознакомиться с описанием можно по ссылке
https://owen.ru/forum/showthre... post466460

В утилите требуется выбрать номера позиций в csv и выполнить конвертацию.
Скрин показывает заполнение этих номеров для Owen Logic 2.11.368.0 и ПР205
Нажмите на изображение для увеличения
Название: 5_Конвертация_для_OwenCloud.png
Просмотров: 53
Размер:	84.2 Кб
ID:	11140


Выводы и рекомендации



Приведено описание методики разработки проекта и приведён пример её применения.

Суть методики заключается в формализации части программы, которая создаётся почти механистически.
Негативным побочным эффектом такого подхода является резкое увеличение количества переменных.
Решением для ускорения описания переменных является импорт файла описаний, который редактируется в Exel.
Всё вместе — и формализация и импорт переменных — приводят к сокращению сроков реализации работы.

Полученные навыки в дальнейшем приводят к решениям по сокращениям сроков разработки для других компонент автоматизации — панелей оператора и облачных сервисов.

Для оценки, приведу длительность разработки с чистого холста и использованием уже готовых макросов (без учёта проведения ПНР):
  • проект насосной станции из 3 насосов (АВР, чередование, каскадирование): 5 дней по 3 часа после работы и один полный выходной — наверное, можно оценить в 3 рабочих дня
  • проект насосной станции из 2 насосов (АВР, чередование) для этой статьи: 3 рабочих дня
Метки owen, owenlogic
Размещено в АСУ ТП, ОВЕН ПР (OwenLogic)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
PowerShell и онлайн сервисы. Валюта (floatrates.com руб.)
iNNOKENTIY21 11.11.2025
PowerShell функция floatrates-rub Примеры вызова: # Указанная валюта 'EUR' floatrates-rub -Code 'EUR' # Список имеющихся кодов валют floatrates-rub -Available function floatrates-rub {
PowerShell и онлайн сервисы. Погода (RP5.ru)
iNNOKENTIY21 11.11.2025
PowerShell функция Get-WeatherRP5rss для получения погоды с сервиса RP5 Примеры вызова Get-WeatherRP5rss с указанием id 5484 — Москва (восток, Измайлово) и переносом строки:. . .
PowerShell и онлайн сервисы. Погода (wttr)
iNNOKENTIY21 11.11.2025
PowerShell Функция для получения погоды с сервиса wttr Примеры вызова: Погода в городе Омск с прогнозом на день, можно изменить прогноз на более дней, для этого надо поменять запрос:. . .
PowerShell и онлайн сервисы. Валюта (ЦБР)
iNNOKENTIY21 11.11.2025
# Получение курса валют function cbr (] $Valutes = @('USD', 'EUR', 'CNY')) { $url = 'https:/ / www. cbr-xml-daily. ru/ daily_json. js' $data = Invoke-RestMethod -Uri $url $esc = 27 . . .
И решил я переделать этот ноут в машину для распределенных вычислений
Programma_Boinc 09.11.2025
И решил я переделать этот ноут в машину для распределенных вычислений Всем привет. А вот мой компьютер, переделанный из ноутбука. Был у меня ноут асус 2011 года. Со временем корпус превратился. . .
Мысли в слух
kumehtar 07.11.2025
Заметил среди людей, что по-настоящему верная дружба бывает между теми, с кем нечего делить.
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца: Хочу еще Симбу взять, очень нравится. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru