Мастерскада 4D. Опыт работы

Описываю начальный опыт освоения Мастерскада 4D. Постараюсь быть объективным и как можно корректнее охарактеризовать продукт при условии применения на контроллерах ОВЕН ПЛК110 4D.

Цель не опорочить продукт, а указать на достоинства и недостатки, помочь потенциальным покупателям делать покупки осознанно с пониманием того с чем именно они столкнутся при разработке программ.

Так как я подошёл к продукту Мастерскада 4D как программист промышленных контроллеров, то вынужден сравнивать его с такими средами разработки (IDE), как TIA PORTAL, UNITY PRO XL, CODESYS. Все эти программы предназначены для программирования контроллеров (ПЛК)

Знакомство с ПЛК110 4D началось с того, что мне в руки как интегратору, попал проект, где нужно было перепрограммировать 11 термостатических камер при условии, что и на Codesys задача также не покажется самой легкой.

Сам процесс зависит от выбираемого рецепта, есть скорости нагрева и охлаждения. Заказчик наотрез отказался менять ПЛК110 4D на подобные ПЛК110 с Codesys, пришлось браться, несмотря на предчувствия какой-то «беды».

Сразу стоит заметить, что от создания SCADA-приложения на продукте Мастерскада 4D я отказался, аргументируя наличием опыта работы с Мастерскада 3.12 и отсутствием опыта с 4D. Этот вариант был принят и процесс пошел.

Внешний вид программного кода Codesys

Предварительно была создана и отлажена программа, написанная на Codesys, создан, согласован и проверен интерфейс с Мастерскада 3.12


Внешний вид программного кода Мастерскада 4Д

Так выглядит аналогичная программа, написанная на Мастерскада 4D, после переноса

Какие плюсы или достоинства очевидны:
1. Программа Мастерскада 4D предназначена для программирования, как контроллеров, так и SCADA приложений. Что при наличии опыта обеспечивает гибкость при расчете и создании коммерческих предложений. Экономия на лицензировании.
2. Позволяет создавать достаточно быстро WEB интерфейс в рамках ПЛК110, используя его для управления объектом по сети. Удобно, если это локальный уровень автоматизации и при несложной технологии можно практически все сделать без квалифицированного программиста
3. Можно не программировать обмен по протоколу Modbus TCP, контроллер можно сразу опрашивать по протоколу OPC UA.


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

2. Переменные привязывается только методом перетаскивания с места на место. Это больше похоже не на программирование, а на плетение паутины. Данный неудобный принцип был унаследован от Мастерскады 3. При разработке больших проектов это огромная трудоемкость. Невозможно применить тот наработанный подход программирования, который заложен в языках стандарта МЭК аналогично Siemens, Schneider Electric, Овен, хотя в целом стандарт языков выполнен.

3.  Нет такого понятия как, глобальные переменные, которые можно использовать внутри программного кода и они автоматически привязываться, как это происходит, например в Codesys.

Мастерскада 4D

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

Мастерскада 4D

5. В целом, считаю, что интерфейс сделан очень неудачно и неудобно. Предполагаю, что за идеологию интерфейса Мастерскада 4D был принят TIA PORTAL, так как за основу взят серый цвет, очень похоже расположение полей и их псевдо скрываемые нависающие с разных мест меню. Всё это годится и подходит только для очень крупных мониторов, которые редко бывают при проведении пусконаладочных работ. Обычно у вас есть небольшой монитор, очень мало места вокруг и нет стола. Оптимизация интерфейса по использованию пространства – недостаточно качественно.

6. Бывали такие случаи, когда переменные были привязаны в одном месте и вроде бы должны были принимать значение выхода, а этого не происходило. То есть видно, что переменная привязана, а на деле она не привязана. Приходилось привязывать повторно, что не могло не расстраивать. Никто не любит делать одну и ту же работу дважды.

7. Заметил, что корректировать связи переменных возможно в онлайн режиме, но это на самом деле иллюзия так как по факту ничего не меняется в контроллере до загрузили программного кода. Может вводить пользователя изначально в заблуждение.

Мастерскада 4D

8. Отладка кода ST в привычном режиме, когда видны значения переменных внутри кода – невозможна, так как ни одного значения переменных вы не увидите. Чтоб увидеть значения переменных придется выносить переменные на выходы функциональных блоков (клеммники) и уже только там смотреть, как они отрабатывают, а это занимает больше времени. Как как отладка кода со значениями внутри экземляра невозможна, то приходится выносить все переменные в отдельную программу чтобы там отладить и только потом возвращать обратно в библиотеку и в функциональный блок

Мастерскада 4D

9. Меню открытия/закрытия и сохранения проектов не продуманно достаточно хорошо. Открытый проект нигде не подписан и разработчик может не знать в какой конкретной версии прикладного ПО он находится. Предполагаю, что могут быть серьезные сложности, если с подобным проектом работает пара человек.

10. На языке FB невозможно привязать константу в виде числа, допускается вставка только переменных типа констант. Опять нужно совершить дополнительные действия и всё это съедает пространство.

11. Отсутствие возможности использования Cross Referense (Просмотр связей). Невозможно быстро найти кто именно и где пишет в переменную, кликнув на связь.

Это мнение одного знакомого программиста:

Первое знакомство с MasterSCADA 4D у меня получилось более года назад и было совсем поверхностным.
Теперь же удалось сделать небольшой проект. Все возможности MS4D в этом проекте были не нужны, но нужно было как-то пристроить давно купленный ОВЕН ПЛК110-MS4.

Сразу бросилось в глаза улучшение интерфейса в v1.2, по сравнению с v1.1. И дело даже не столько в модной сейчас «темной» теме, мне он показался более развитым, более продуманным. Но вот ориентация на не просто большие, а на огромные мониторы, несколько усложнило мне работу на моем 19” мониторе.
Приходилось постоянно сворачивать и разворачивать окна. Это если программировать на языке ST. Для функциональных блоков просто нет места. Поэтому, приходилось постоянно сворачивать списки входных и выходных переменных и минимизировать нижнее окно с палитрой. Но, думаю на больших мониторах это не проблема.

Другой раздражающей меня проблемой в интерфейсе был список ошибок при отладке (на скриншоте вверху видна фраза «Сообщений нет. Для проверки...»).
Даже если у вас всего одна синтаксическая ошибка, то компилятор все-равно сгенерирует гору ошибок, и нужная строка ни разу не оказалась первой.
Как развернуть это окно с ошибками, я не понял, там лишь кнопка «скопировать в буфер». Поэтому приходилось копировать из буфера в текстовый редактор и уже там разбираться.

В версии MS4D, которую я использовал, а именно 1.2.7, по сравнению с 1.1. уже более тесно разработчики ОВЕН интегрировались, стало возможным уже прямо из среды разработки обновить исполнительную часть PLC движка SCADA. В v1.1 «движок» нужно было обновлять отдельно, подключаясь к ПЛК через Debug. Кстати, у меня все-равно произошел сбой при обновлении прошивки и с помощью тех.поддежки ОВЕН пришлось заливать ее вручную. Сам процесс не сложный, но вот чтобы понять, что именно в прошивке проблема, пришлось потратить довольно много времени, MS4D ругалась на невозможность соединиться с ПЛК (ни USB, ни Ethernet), хотя я в терминале по SSH туда заходил, и все нужные файлы были на месте.

К пожеланиям в интерфейсе я бы добавил просьбу уменьшить расстояние между строками и «ветвистость» дерева проекта.
Иногда совершенно не понятно зачем были добавлены подветки, а каждый раз их разворачивать — это время, да и надо помнить где это спрятано.
В оправдание разработчики добавили возможность у любой ветки «оставаться всегда развернутой», но это полумера меня не спасала.

Ну и главный недостаток, это практически отсутствие описания и скудный help.
Если бы не подробное руководство по установке интерфейса RS-485 на ПЛК в режим Slave, скачанное с сайта ОВЕН, то пришлось бы потратить гораздо больше времени на это. Так же долго экспериментировал с энергонезависимыми переменными, пока не убедился что это работает. Казалось бы, как это делается в большинстве сред разработки, например в Codesys, просто объяви переменную Retain. Я так и поступил, но потом необходимо провести «синхронизацию с деревом», после чего можно получить «сюрприз» в виде слетевших элементов массива.
Конечно, это все можно поправить и не такая уж проблема, зато легко создавать переменные с помощь мастера, а при перетаскивании переменных из дерева, они автоматически объявляются.
Для начинающих это очень удобно. Вообще, не смотря на все перечисленные недочеты, MasterSCADA4D очень перспективная среда и ее объектно-ориентированный подход во многих проектах может стать большим плюсом за счет масштабируемости и скорости разработки.

Никита Зайченко прокомментировал:
1. Относительно подгрузки небольших изменений
Это настоящая боль, т.к. загрузка останавливает Runtime.
2.Перетаскивание связей - манипулятором типа "мышь"
Это тоже боль, так как зачастую места откуда нужно перетягивать и куда не помещаются на одном экране. Приходится выделять элемент тот с которым необходимо установить связь и связывать его свойства с другим элементом (например, самое банальное – переписать значение из сетевой переменной в переменную объекта или установить связь  в его  «начальное значение»)
3.Нет глобальных переменных
Ну тут типа подход, что любой программный компонент должен связываться с другими программными компонентами или каналами через так называемые «клеммники». Тоже считаю, что необходимо добавить возможность создания именованных списков глобальных переменных. А также было бы неплохо добавить возможность создавать Data-блоки как у семена
4.Про инверсию
согласен
5.Пропадали привязки переменных
Надо смотреть свойства привязки, т.к. можно было перепутать и не с переменной на выход писать, а наоборот. Жутко тупая вещь, которая иногда подводит
6.Отладка кода ST
Не совсем понял о чем речь, так как значения входных и выходных переменных отображаются на «клеммниках» блока, а значения локальных переменных отображаются во вкладке «Локальные».
7.Подписи проектов
Подписан в верху окна MS4D. у Вас на скрине надпись «MasterSCADA 4D 1.2 : ПЛК_АРМ».Также всегда можно зайти в свойства проекта
8.Привязка констант
Можно просто задать значение на входе POU. Выбрав вход, выставить значение в графе «Начальное значение»

Юрий Горелов прокомментировал:
1. Подгружать в ПЛК небольшие изменения программного кода невозможно. Просто не заложена такая функция, можно только загрузить весь исходный код полностью. Не видел пока ни одного ПЛК который бы при изменении кода не грузил бы код полностью, ну потому что в 99% случаев ПЛК они бинарно пишут программу внутрь. Сименс, они по разному в разных версиях реализуют данную возможность в какой то версии и частично подгружают код, но это очень нелогично, и достаточно странно. Редко так делал, не сразу сообразил о чем речь. да, Мастерскада 4D так не умеет, ну потому что она архитектурно другая)
3. Привязывание по имени программы имеется ввиду? Чисто технически в Мастерскада 4D каждый элемент имеет свой ID и по нему можно через точку привязываться. Однако сам не пробовал, потому что мышкой проще и более наглядно сразу видно как, я не понимаю как иначе. Тянем мышкой из одной части в другу - из двух таблиц по-моему эффективно. Да хоть два объекта. в каждом n переменных. правой кнопкой по второму объекту -выбираем " открыть в панели веток. и они получаются рядом, это проще. Так удобнее привязывать. Вот при такой организации рабочего пространства гораздо проще привязывать мышкой одно к другому, чем в таблице искать по названию)
4.Глобальные переменные это наверно к предыдущему пункту - удобству привязки. В каждой связи тут видно, куда она идёт и какая она - входящая или исходящая
5. Такой уж он дан. Кому что нравиться, хотя есть какие то темы к мастерскаде, но не помню где переключаются в каждой связи тут видно куда она идёт и какая она - входящая или исходящая
6. Да, без загрузки проекта логика работы не поменяется)
7. На входных и выходных клеммниках видны состояния и значения
8. задачи есть ,их можно делать в дереве системы и привязывать объекты на конкретные задачи, более того, можно назначать их в отдельные Узлы- ПЛК. Когда проект состоит из нескольких ПЛК и АРМ-ов

#Мастерскада 4D, #Опыт работы, #ПЛК110, #Отзыв, #Достоинства, #Недостатки

Array
(
    [ID] => 455
    [IBLOCK_ID] => 8
    [NAME] => Мастерскада 4D для ПЛК110
    [IBLOCK_SECTION_ID] => 
    [IBLOCK] => Array
        (
            [ID] => 8
            [~ID] => 8
            [TIMESTAMP_X] => 25.03.2021 17:23:33
            [~TIMESTAMP_X] => 25.03.2021 17:23:33
            [IBLOCK_TYPE_ID] => rus
            [~IBLOCK_TYPE_ID] => rus
            [LID] => s1
            [~LID] => s1
            [CODE] => articals
            [~CODE] => articals
            [API_CODE] => 
            [~API_CODE] => 
            [NAME] => Статьи
            [~NAME] => Статьи
            [ACTIVE] => Y
            [~ACTIVE] => Y
            [SORT] => 10
            [~SORT] => 10
            [LIST_PAGE_URL] => /articals/
            [~LIST_PAGE_URL] => /articals/
            [DETAIL_PAGE_URL] => /articals/#ELEMENT_CODE#.html
            [~DETAIL_PAGE_URL] => /articals/#ELEMENT_CODE#.html
            [SECTION_PAGE_URL] => 
            [~SECTION_PAGE_URL] => 
            [CANONICAL_PAGE_URL] => https://lapshinvr.ru/articals/articals.html
            [~CANONICAL_PAGE_URL] => https://lapshinvr.ru/articals/articals.html
            [PICTURE] => 1131
            [~PICTURE] => 1131
            [DESCRIPTION] => 
            [~DESCRIPTION] => 
            [DESCRIPTION_TYPE] => html
            [~DESCRIPTION_TYPE] => html
            [RSS_TTL] => 24
            [~RSS_TTL] => 24
            [RSS_ACTIVE] => Y
            [~RSS_ACTIVE] => Y
            [RSS_FILE_ACTIVE] => N
            [~RSS_FILE_ACTIVE] => N
            [RSS_FILE_LIMIT] => 
            [~RSS_FILE_LIMIT] => 
            [RSS_FILE_DAYS] => 
            [~RSS_FILE_DAYS] => 
            [RSS_YANDEX_ACTIVE] => N
            [~RSS_YANDEX_ACTIVE] => N
            [XML_ID] => 
            [~XML_ID] => 
            [TMP_ID] => 
            [~TMP_ID] => 
            [INDEX_ELEMENT] => Y
            [~INDEX_ELEMENT] => Y
            [INDEX_SECTION] => N
            [~INDEX_SECTION] => N
            [WORKFLOW] => N
            [~WORKFLOW] => N
            [BIZPROC] => N
            [~BIZPROC] => N
            [SECTION_CHOOSER] => L
            [~SECTION_CHOOSER] => L
            [LIST_MODE] => 
            [~LIST_MODE] => 
            [RIGHTS_MODE] => S
            [~RIGHTS_MODE] => S
            [SECTION_PROPERTY] => N
            [~SECTION_PROPERTY] => N
            [PROPERTY_INDEX] => N
            [~PROPERTY_INDEX] => N
            [VERSION] => 1
            [~VERSION] => 1
            [LAST_CONV_ELEMENT] => 0
            [~LAST_CONV_ELEMENT] => 0
            [SOCNET_GROUP_ID] => 
            [~SOCNET_GROUP_ID] => 
            [EDIT_FILE_BEFORE] => 
            [~EDIT_FILE_BEFORE] => 
            [EDIT_FILE_AFTER] => 
            [~EDIT_FILE_AFTER] => 
            [SECTIONS_NAME] => 
            [~SECTIONS_NAME] => 
            [SECTION_NAME] => 
            [~SECTION_NAME] => 
            [ELEMENTS_NAME] => Элементы
            [~ELEMENTS_NAME] => Элементы
            [ELEMENT_NAME] => Элемент
            [~ELEMENT_NAME] => Элемент
            [REST_ON] => N
            [~REST_ON] => N
            [EXTERNAL_ID] => 
            [~EXTERNAL_ID] => 
            [LANG_DIR] => /
            [~LANG_DIR] => /
            [SERVER_NAME] => lapshinvr.ru
            [~SERVER_NAME] => lapshinvr.ru
        )

    [LIST_PAGE_URL] => /articals/
    [~LIST_PAGE_URL] => /articals/
    [SECTION_URL] => 
    [CANONICAL_PAGE_URL] => https://lapshinvr.ru/articals/masterskada-4d-dlya-plk110.html
    [SECTION] => Array
        (
            [PATH] => Array
                (
                )

        )

    [IPROPERTY_VALUES] => Array
        (
            [SECTION_META_TITLE] => Статьи по автоматизации
            [SECTION_META_KEYWORDS] => Статьи, автоматизация
            [SECTION_META_DESCRIPTION] => Встречал при производстве работ что-то достойное внимания. Сложно самому оценить необходимость размещения той или иной статьи, старался очевидный мусор убирать
            [SECTION_PAGE_TITLE] => Здесь опубликовал статьи, которые могут кому-то пригодиться при производстве работ
            [ELEMENT_META_TITLE] => Программирование ПЛК110 4D. Отзыв
            [ELEMENT_META_KEYWORDS] => Мастерскада 4D, Опыт работы, ПЛК110, Отзыв, Достоинства, Недостатки
            [ELEMENT_META_DESCRIPTION] => Целью статьи является описание опыта работы с Мастерскада 4D
            [ELEMENT_PAGE_TITLE] => Мастерскада 4D. Опыт работы
        )

    [TIMESTAMP_X] => 03.07.2021 20:27:13
    [META_TAGS] => Array
        (
            [TITLE] => Мастерскада 4D. Опыт работы
            [BROWSER_TITLE] => Мастерскада 4D для ПЛК110
            [KEYWORDS] => Мастерскада 4D, Опыт работы, ПЛК110, Отзыв, Достоинства, Недостатки
            [DESCRIPTION] => Целью статьи является описание опыта работы с Мастерскада 4D
        )

    [PREVIEW_TEXT] => Описал в статье первый опыт взаимодействия с программой Мастерскада 4D для программирования контроллеров. Высказал свое личное мнение по достоинствам и недостаткам
    [PREVIEW_PICTURE] => Array
        (
            [ID] => 1449
            [TIMESTAMP_X] => Bitrix\Main\Type\DateTime Object
                (
                    [value:protected] => DateTime Object
                        (
                            [date] => 2021-07-03 20:27:13.000000
                            [timezone_type] => 3
                            [timezone] => Europe/Moscow
                        )

                )

            [MODULE_ID] => iblock
            [HEIGHT] => 459
            [WIDTH] => 496
            [FILE_SIZE] => 64258
            [CONTENT_TYPE] => image/jpeg
            [SUBDIR] => iblock/e08
            [FILE_NAME] => s8gxo0qubp69r5nxy4b4x9yvhx0ucroc.jpeg
            [ORIGINAL_NAME] => ansjlu45b9hfwu5py12n5rv0d0i51c7a.jpeg
            [DESCRIPTION] => ПЛК110 4D
            [HANDLER_ID] => 
            [EXTERNAL_ID] => 48a8f809947374b4dd6bd9eecb0f412f
            [~src] => 
            [SRC] => /upload/iblock/e08/s8gxo0qubp69r5nxy4b4x9yvhx0ucroc.jpeg
            [UNSAFE_SRC] => /upload/iblock/e08/s8gxo0qubp69r5nxy4b4x9yvhx0ucroc.jpeg
            [SAFE_SRC] => /upload/iblock/e08/s8gxo0qubp69r5nxy4b4x9yvhx0ucroc.jpeg
            [ALT] => Мастерскада 4D для ПЛК110
            [TITLE] => Мастерскада 4D для ПЛК110
        )

    [DETAIL_PAGE_URL] => /articals/masterskada-4d-dlya-plk110.html
)

02.07.2021

ммм. ну по каждому пункту можно сразу оспорить, потому что многое совсем подругому
Ваш комментарий добавлен

Возврат к списку