Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3419 / 2738 / 575
Регистрация: 04.09.2018
Сообщений: 8,598
Записей в блоге: 3

CODESYS + ПЛК МЗТА (МС8.3)

16.03.2024, 23:38. Показов 5282. Ответов 41

Студворк — интернет-сервис помощи студентам
Привет коллеги.
Впервые в своей практике столкнулся с ПЛК российского производства (ну, как 'российского': на процах Cortex, ага), а именно, ПЛК МЗТА МС8.
"Родная" среда разработки этих ПЛК Конграф, скажем так, больше похожа на пособие для изучения программирования для школьников. Как-то не зашла. Поэтому, я задумал вести разработку текущего проекта с этим ПЛК в универсальной среде CODESYS. Тем более, что производитель поддерживает это, выпуская соотв. таргеты.

Из всей что я нашел довольно скудной инфы по этому поводу, я предположил, что для разработки достаточно подключить библиотеку, в которой присутствует лишь один тип: "kb.D-2" - это дисплейный модуль на самом деле. Но через него, теоретически, можно взаимодействовать со всей линейкой ПЛК МС серии.
Но не это главное.
Главный вопрос возник в сопоставлении физических адресов ПЛК, которые изображены на картинке ниже, с адресами, принятыми для системы программирования (типа %IX0.0 / %QX0.0).
МС8.3

Понятно дело, что когда я доберусь до реального физического ПЛК МЗТА (или он до меня доберется), то я быстро разберусь где собака порылась. Но, пока этого не произошло, если кто знает, буду признателен за комментарии по этому поводу.

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

0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.03.2024, 23:38
Ответы с готовыми решениями:

[CoDeSys] Эмуляция и отладка программы - нет связи с ПЛК
Добрый день. Подскажите плиз начинающему. Установил Codesys 2.3 При попытке виртуального подключения к контроллеру выдает ошибку...

[CoDeSys] Подключить по Ethernet к ПЛК (slave) вторую панель оператора
Здравствуйте! Есть контроллер Wago 750-871, связанный с панелью weintek по Ethernet. Нужно подключить еще одну такую панель. Контроллер...

Написать кастомный драйвер для ПЛК (OpenPLC или CoDeSys) собранном на микроконтроллере
Добрый день, интересует такой вопрос как написать кастомный драйвер для конфигурирования кастомного плк под язык ST чтобы кастомный плк...

41
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8662 / 4498 / 1670
Регистрация: 01.02.2015
Сообщений: 13,914
Записей в блоге: 12
17.03.2024, 10:43
Доводилось работать с МЗТА МС8.3.

Сложилось впечатление, что процессор в них семейства Intel 8051.

У ПЛК несколько необычных свойств:
- есть энергонезависимые переменные объёмом 128 байт
- есть энергонезависимые параметры (значительный объём)
- программирование производится в среде КОНГРАФ
- компиляция программы производится через Internet (альтернатива - покупка дорогого компилятора IAR)
- загрузка программы производится через специальный программатор, который потом можно использовать для подключения панели к ПЛК
- загрузка программы осуществляется из отдельной программы КОНСОЛЬ
- связь с панелью возможна через Modbus, но удобнее по какому-то собственному протоколу - самое удобное решение - использовать панели, перечисленные, как рекомендованные. В рекомендованные панели за отдельные деньги покупается программа драйвер-связи и становятся доступны переменные-параметры. В моём случае - использовалась панель Weintek.
- связь с панелью по Modbus плохое решение из-за ничтожного числа энергонезависимых переменных - даже на 2 ПИД не хватит.


Может, работа в CoDeSys и возможна, но она будет "кривой". Вот эти разделения на видимые входы у ФБ, их невидимые, но доступные из КОНСОЛЬ или панели с драйвером параметры, собственные библиотеки элементов - мне кажется, лучше освоить КОНГРАФ.

КОНГРАФ в меру удобен.

Добавлено через 36 секунд
В смысле, я бы постарался освоить КОНГРАФ+КОНСОЛЬ

Добавлено через 23 минуты
Посмотрел на официальном сайте - сильно изменилось за 6 лет - добавилась поддержка CODESYS 3.5.
Может, есть смысл попробовать новое. Тем более, что КОНГРАФ не обновлялся с 2015, а КОНСОЛЬ с 2018.

Добавлено через 11 минут
Всё же, не увидел поддержку в CODESYS именно ПЛК МС8...

Добавлено через 5 минут
Лучше уточнить у производителя - у них была хорошая и отзывчивая техподдержка - поддерживается ли КОНТАР МС8 в CODESYS.
В описании МС8 только КОНГРАФ и КОНСОЛЬ.

Лично у меня сложилось впечатление, что - нет, не поддерживается.
1
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3419 / 2738 / 575
Регистрация: 04.09.2018
Сообщений: 8,598
Записей в блоге: 3
17.03.2024, 12:53  [ТС]
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
что процессор в них семейства Intel 8051
Ну, может быть когда то и были 8051, но сейчас на всех модулях, включая простые модули расширения смотрю стоят исключительно кортексы:
Кликните здесь для просмотра всего текста

По поводу компилятора: через инет так и остался, но вместе с Конграфом идет бесплатный C51 Keil, который можно выбрать:
Кликните здесь для просмотра всего текста


Вот я пока пристреливаюсь - в какой среде лучше работать. Конграф я конечно же попробовал, но сразу "с места" так сказать получил "Ошибку при компиляции в приборе №1" на абсолютно пустом добавленном ПЛК. Ни объяснений что к чему, ошибка и все тут. Какая? Чего? непонятно.

На сколько я понял, приборы имеющие Ethernet на борту могут прошиваться через него, без использования "специального программатора"... Но это не точно.

Судя по проектам, панель Weintek у них чуть ли не единственная используется. Пихают ее всюду (видимо их разработчики/проектанты только ее и освоили). И да, у нас она тоже предусмотрена, причем на нее по проекту выводят состояние почти всего объекта, через субмодуль Weblinker MB (очевидно модбас). И тут у меня тоже закрались некоторые сомнения - а хватит ли тегов для всего этого...

Короче, много всего не ясного... И пощупать/проверить пока нет возможности.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3419 / 2738 / 575
Регистрация: 04.09.2018
Сообщений: 8,598
Записей в блоге: 3
17.03.2024, 13:26  [ТС]
UPD: а вот онлайн-компилятор никаких ошибок не пишет. Что-то этому С51 не хватает... Странно это все.
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8662 / 4498 / 1670
Регистрация: 01.02.2015
Сообщений: 13,914
Записей в блоге: 12
17.03.2024, 15:38
Keil C51 - это покупной компилятор. Он не поставлялся с КОНГРАФОМ, по крайней мере в 2018 году.

Панель Weintek для нормальной работы с ПЛК МС8 требует покупного драйвера - если панель покупалась у МЗТА, то драйвер, вероятно, уже установлен, иначе - его нужно покупать. Наличие драйвера проверяется по счёту-фактуре на покупку.
Драйвер нужен для связи панели с параметрами ПЛК по внутреннему протоколу.

Добавлено через 5 минут
У меня был ПЛК МС8.301 без Ethernet. Для программирования использовал Weblinker с Ethernet и USB - он вставлялся в корпус ПЛК.

Добавлено через 1 минуту
И ещё заметил, что сейчас ПЛК называют МС8(к) - какая-то другая модификация.

Добавлено через 9 минут
Ещё раз посмотрел на сайте МЗТА.

kB.M - это ПЛК линейки КОМЕГА.
МС8.301 - ПЛК линейки КОНТАР.

Раньше КОНТАР программировались только из КОНГРАФ (не обновлялась с 2015 года). Сейчас вижу возможность программирования ещё из свежей (2024 года) kStudio.

Лучше - уточнить у техподдержки.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3419 / 2738 / 575
Регистрация: 04.09.2018
Сообщений: 8,598
Записей в блоге: 3
17.03.2024, 15:47  [ТС]
Условно говоря, ситуация такая: покупаются уже готовые собранные шкафы у завода-изготовителя, т.е. в них уже находятся все элементы (ПЛК/панель/веблинкеры...). Т.е. можно предположить, что панель будет уже содержать необходимый драйвер...
Сами же ПЛК и панель "пустые", т.е. без функциональных программ. Закладывать туда алгоритмы работы нам нужно будет самостоятельно, т.к. вроде как это выходит "дешевле" в плане тиражирования проектов для нескольких установок.

Сама панель одна и находится на "главном" щите управления. По проекту, она общается с ПЛК через Weblinker MB по Ethernet:
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3419 / 2738 / 575
Регистрация: 04.09.2018
Сообщений: 8,598
Записей в блоге: 3
17.03.2024, 16:06  [ТС]
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
Сейчас вижу возможность программирования ещё из свежей (2024 года) kStudio.
Да, я тоже сперва купился на это, но почитав справку к ней обнаружилось, что редактор разработки алгоритмов к ПЛК "не доступен в этой версии".
Прошлые версии 3.0.74 / 3.0.35 отсутствуют (не скачать), а версии 2.х видать тоже совсем древние.
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8662 / 4498 / 1670
Регистрация: 01.02.2015
Сообщений: 13,914
Записей в блоге: 12
17.03.2024, 17:44
Связка КОНГРАФ+КОНСОЛЬ тоже нормально.
Там обычный FBD, есть возможность создавать свои FBD (виртуальные блоки).
Почти каждый библиотечный ФБ имеет как видимые входы, так и те, которые инициализируются параметрами из списков. Можно делать их видимыми.

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

Из-за нехватки времени не смог тогда разобраться, как лучше программировать панель.
При создании проекта панели предлагается два пути - на основе какого-то шаблона (по умолчанию) и без него.
Если с шаблоном, то в проект добавляются шаблонные скрипты и переменные, экранные клавиатуры, контроль обрыва связи и многое другое.
А без шаблона - нет никаких добавок, клавиатур.
Это влияет на способ обновления списков параметров из ПЛК. Если без шаблона, то список переносится напрямую из КОНСОЛи, если с шаблонами, то нужно объединять этот список с шаблонными переменными.

Сразу с этим не разобрался, а больше и возможности не было. Так и объединял списки при помощи bat-файла.

Добавлено через 7 минут
У меня есть незаконченная статья по ПЛК - делал её как памятку.
Не закончил, т.к. писал не сразу и что-то не мог проверить.
Недавно предлагали вернуться к тем щитам, думал наиграюсь и статью завершу, но судьба распорядилась иначе - заказчика переубедили заменить ПЛК и сделать более глобальную автоматику на весь цех.

Посмотрите, может что-то полезное извлечёте
https://www.cyberforum.ru/blog... g6263.html
1
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3419 / 2738 / 575
Регистрация: 04.09.2018
Сообщений: 8,598
Записей в блоге: 3
18.03.2024, 13:16  [ТС]
ФедосеевПавел, я вот эту идею немного не понял:
Т.е., в общем случае, для передачи значения от одного ПЛК к другому, для каждого передаваемого значения (переменной) требуется создать отдельный выход на одном ПЛК и отдельный вход на другом.
Это требуется для симулятора или вообще для связи?
Т.е. все устройства соединены по KontarBus между собой. Если из одного устройства нужно что-то передать на другое -> надо виртуальные входа/выхода создавать?
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8662 / 4498 / 1670
Регистрация: 01.02.2015
Сообщений: 13,914
Записей в блоге: 12
18.03.2024, 13:57
Да, виртуальные входы и выходы.

Множество бит для передачи лучше упаковать в целое число и передавать целое.

Добавлено через 31 секунду
Это для работы.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3419 / 2738 / 575
Регистрация: 04.09.2018
Сообщений: 8,598
Записей в блоге: 3
18.03.2024, 14:01  [ТС]
Ок, попробуем...
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
лучше упаковать в целое число
Ну это закон жанра ). Флаги пачкой всегда лучше передавать.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3419 / 2738 / 575
Регистрация: 04.09.2018
Сообщений: 8,598
Записей в блоге: 3
19.03.2024, 14:47  [ТС]
Сваял небольшой тестовый проектик в Конграфе.
Задача: Master посылает сигналы Пуск/Стоп двум Слэйвам. У каждого слэйва есть "локальный" вход/выход Авария и выход Работа. С последнего ведомого в мастер возвращаются сигналы состояния этих ведомых (Работа/Авария).
Структура сети из ПЛК

Master

Slave 1

Slave 2

В симуляторе, на стороне Мастера, все происходило как задумано: состояния и аварии обоих ведомых идентифицировались корректно. А вот у самих ведомых происходило нечто странное - какая-то "генерация" по выходам "Работа"/"Авария". Причем, сразу на обоих, даже если включить Работу/Аварию только на одном из них:
Кликните здесь для просмотра всего текста

Кликните здесь для просмотра всего текста

Сначала подумал, что возможно симулятор как-то странно интерпретирует "кольцевые" связи, но вроде как по логике в блоках - нет никаких предпосылок для этого.
Оказалось дело в не совсем очевидном моменте: сигналы в списках обоих ведомых (имена одинаковые) "давили" друг друга через общий список симуляции. Нужно было добавить им префиксы (сделать уникальными) именно для общего списка симуляции:
Кликните здесь для просмотра всего текста

В результате все стало как надо:
Кликните здесь для просмотра всего текста

Ну и по виртуальным портам "для связи" получается что: необязательно использовать именно аппаратные входы/выходы, например, если они все заняты другими делами. Можно насоздавать дополнительных и прокидывать связь по ним.
Для этого теста я добавил в каждый ПЛК по целому II (вход) и IO (выход) для организации "сквозной" связи.
Миниатюры
CODESYS + ПЛК МЗТА (МС8.3)  
1
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8662 / 4498 / 1670
Регистрация: 01.02.2015
Сообщений: 13,914
Записей в блоге: 12
19.03.2024, 18:45
Да, так и есть.

Можно сделать не последовательную, а радиальную связь с каждым из Slave.

Многое уже забыл. Помню была проблема при желании просто копировать программу из одного Slave в другой (щиты были однотипные) - нужно было переименовывать параметры или помещать их в другие списки. Могу что-то уже путать..
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3419 / 2738 / 575
Регистрация: 04.09.2018
Сообщений: 8,598
Записей в блоге: 3
19.03.2024, 19:04  [ТС]
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
Можно сделать не последовательную, а радиальную связь с каждым из Slave.
Да, просто идея заключалась в том, чтобы сигнал от мастера прошел через все обработки последовательно, в каждом ПЛК и вернулся назад. На графиках видно, что ведомые отрабатывают команду почти моментально, а вот "ответка" в мастер приходит с небольшой задержкой. Прям как "по настоящему".
Ну, в общем, работать можно, принцип более-менее понятен. Единственно интерфейс конечно убогий. Квадраты блоков нарисовали красивыми цветными, а вот перетягивание мышкой элементов какой-то ужас.
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8662 / 4498 / 1670
Регистрация: 01.02.2015
Сообщений: 13,914
Записей в блоге: 12
19.03.2024, 19:05
И ещё, операторская панель с драйвером может работать с параметрами в Slave без переноса их в Master.
Т.е. не обязательно концентрировать в Master все параметры настройки всех Slave.

Это просто вспомнил...
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3419 / 2738 / 575
Регистрация: 04.09.2018
Сообщений: 8,598
Записей в блоге: 3
19.03.2024, 19:07  [ТС]
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
нужно было переименовывать параметры или помещать их в другие списки.
при таких конфликтах выскакивает окно с предложением это сделать. Что радует, не нужно в ручную искать где косяк...

Добавлено через 48 секунд
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
Т.е. не обязательно концентрировать в Master все параметры настройки всех Slave.
Ммм, учтем...
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8662 / 4498 / 1670
Регистрация: 01.02.2015
Сообщений: 13,914
Записей в блоге: 12
19.03.2024, 19:07
Цитата Сообщение от wizard41 Посмотреть сообщение
вот перетягивание мышкой элементов какой-то ужас.
И ещё таймер TOF отсутствует - нужно самостоятельно сделать

Экзотичный ПЛК.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3419 / 2738 / 575
Регистрация: 04.09.2018
Сообщений: 8,598
Записей в блоге: 3
19.03.2024, 19:10  [ТС]
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
таймер TOF отсутствует
TOF из TON'а делается за 5 секунд )
Кстати, не обратил внимание на таймеры там. Какой вообще есть.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3419 / 2738 / 575
Регистрация: 04.09.2018
Сообщений: 8,598
Записей в блоге: 3
19.03.2024, 19:19  [ТС]
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
TOF отсутствует
В принципе, чем не TOF?
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8662 / 4498 / 1670
Регистрация: 01.02.2015
Сообщений: 13,914
Записей в блоге: 12
19.03.2024, 19:22
По моему, был TON, TP (в терминах привычного CoDeSys или OwenLogic). Другие тогда в программе не требовались, не запомнил.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.03.2024, 19:22
Помогаю со студенческими работами здесь

Обмен данными c ПЛК Moeller-SC-CPU-201 (CodeSys) по Modbus-протоколу в сети RS-485
Добрый день! Прошу помощи, уже отчаялся искать в чем проблема: Есть ПЛК moeller-xc-cpu-201, программируемый через codesys....

ПЛК Schneider electric MODICON TSX Micro vs ПЛК от Allen bradley
День добрый, народ подскажите,пожалуйста, плохо ещё разбираюсь в этом, у меня есть контроллер Shneider electric MODICON TSX Micro, мне...

Контролеры ELMO и ака ПЛК, которые не ПЛК
Ребят... А кто что-нибудь может рассказать про контроллеры Elmo. Вот про них: http://www.elmomc.com/products/motion-controllers.htm ...

[Siemens s7 314c 2dp] Корректная программа для ПЛК одной версии не записывается в ПЛК другой версии
Здравствуйте! Прошу совета как быть. Ситуация следующая: Siemens s7 314c 2dp. ПЛК версии 1.0 вышел из строя. Слетела прошивка....

[CoDeSys 3.5] ПЛК SM252MESC: прочитать данные по CAN
Здравствуйте. Имею дело с контролером от system electric SM252MESC. ПЛК программируется в CODESYS 3.5. Пытаюсь настроить общение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru