г. Москва, ул. Азовская, 14
+7 (495) 310-97-15
Пн-пт: с 9.00 до 18.00
Заказать звонок
Обратный звонок
Ваше имя *
Ваш телефон *
Ваш Email *
Перезвоните мне
Мастерскада 4D. Делимся опытом работы с данным молодым продуктом

MASTERSCADA 4D

Описываю начальный опыт освоения Masterscada 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

Мастерскада 3.12

Ниже продемонстрирован экран Мастерскады 4D, в которой программируется контроллер

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

11. Так как пришлось постоянно перепрошивать контроллеры, то нужно заметить, что процесс перепрошивки не продуман так хорошо, как у обычных ПЛК110. Ну неужели сложно было сделать более простой и понятный алгоритм прошивки? Ну пусть бы он как-то пищал, если удачно и молчал если не удачно. В итоге один контроллер мы загубили, он перестал отвечать вовсе. Пару раз были фокусы, когда контроллер работал, а релейные выхода не работали, решалось только перепрошивкой, которая состояла из трех! файлов.

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

Первое знакомство с 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. задачи есть ,их можно делать в дереве системы и привязывать объекты на конкретные задачи, более того, можно назначать их в отдельные Узлы- ПЛК. Когда проект состоит из нескольких ПЛК и АРМ-ов

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

10

31.01.2023

Спасибо, статья хорошая. Объективная. Первые впечатления совпали с теми, что указаны в статье. Я сегодня плевался, пока пытался разобраться на ноуте в 15" с тем как там все устроено. + Дарк тема не много напрягала. Я на основании вашей статьи и своего эксперимента сегодняшнего буду писать письмо, что это не дружелюбно

08.11.2022

Например, на одной из версий не работает групповая запись по Modbus RTU, написал в саппорт 26 октября - до сих пор ни ответа, ни привета. На мой взгляд, вместо того, чтобы исправить ошибки и допилить базовые вещи, разработчики сего продукта занимаются какой-то ху*ней с добавлением бесполезных модулей и переписыванием лицензионной политики. В общем как-то так. Многое наверно упустил из виду, всего щас и не вспомнишь. Сейчас сижу на 1.2.16, каких-то критических косяков не, поэтому решил больше ее не обновлять, ибо смысла в этом никакого нету, только новые косяки и все более тормознутый редактор проектов, который они не в состоянии переписать и довести до ума.

08.11.2022

Был такой косяк, что она раз в двое суток зависала и перегружалась. Графики стали еще хуже, были какие-то ущербные привязки к точкам значений, из-за которых просматривать тренды было невозможно. Ну и плюс они тормозили жутко. По журналам осталось также, куча сообщений со всех объектов, фильтры не работают. Делал свои фильтры, так и они не срабатывали, при выборе фильтра просто визуализация зависала. И вот такая хрень продолжалась где-то год, если не больше. Ошибки они тогда по полгода (а иногла и год) не могли исправить, потому что сами не понимали причину их возникновения. Приходилось писать им официальные письма, чтобы сказали сроки исправления ошибок. Сейчас все гораздо лучше, чем 2-3 года назад, но по сути мало что изменилось. Куча косяков в базовых вещах.

06.10.2022

делал проект на MasterSCADA 4D в 2021 году: 1. тренды по электричеству не работали, возможно скада не могла потянуть большой объем данных при отображении - три тока и три напряжения, частотой 1 сек - тренд открывался, при перетаскивании(сдвиге) - белый экран. Исправляли почти полгода, исправили. 2. к концу года по этому же тренду было замечено - время обновления - почти 10 сек, проверил по запросам Modbus - оказалось дело не в отображении - скада опрашивала прибор с такой частотой. Техподдержка посоветовала установить обновление(через год оно платное) - установили. После этого в программах на ST параметры INOUT стали просто OUT. Сначала техподдержка сказала что это сделано намеренно, потом сказали - "баг, пофиксим". Кажется до сих пор не пофиксили. Пришлось исправлять привязку - штук 100 блоков. 3. перетаскивания - это ОЧЕНЬ неудобно, тем более при жесткой структуре папок - "Параметры-Ресурсы-Программы-Параметры-Локальные" что-то в этом роде, каждую папку тычком мыши открой(можно клавиатурой, то тоже так себе ускорение). Могли бы сделать какой-нибудь импорт/эскпорт в Excel/CVS хотя бы некоторые параметры - нет, "это вам не надо". в общем как всегда - задумка хорошая, реализация подвела
Ваш комментарий добавлен