|
|
|
CODESYS + ПЛК МЗТА (МС8.3)16.03.2024, 23:38. Показов 5282. Ответов 41
Привет коллеги.
Впервые в своей практике столкнулся с ПЛК российского производства (ну, как 'российского': на процах Cortex, ага), а именно, ПЛК МЗТА МС8. "Родная" среда разработки этих ПЛК Конграф, скажем так, больше похожа на пособие для изучения программирования для школьников. Как-то не зашла. Поэтому, я задумал вести разработку текущего проекта с этим ПЛК в универсальной среде CODESYS. Тем более, что производитель поддерживает это, выпуская соотв. таргеты. Из всей что я нашел довольно скудной инфы по этому поводу, я предположил, что для разработки достаточно подключить библиотеку, в которой присутствует лишь один тип: "kb.D-2" - это дисплейный модуль на самом деле. Но через него, теоретически, можно взаимодействовать со всей линейкой ПЛК МС серии.Но не это главное. Главный вопрос возник в сопоставлении физических адресов ПЛК, которые изображены на картинке ниже, с адресами, принятыми для системы программирования (типа %IX0.0 / %QX0.0). Понятно дело, что когда я доберусь до реального физического ПЛК МЗТА (или он до меня доберется), то я быстро разберусь где собака порылась. Но, пока этого не произошло, если кто знает, буду признателен за комментарии по этому поводу. Видео ниже, было записано мною для одного моего товарища по прежней работе и фактически является руководством по вхождению в программирование этих ПЛК в среде CODESYS с наглядным примером симуляции. Может быть, оно окажется полезным кому-то еще, поэтому, я решил его выложить и здесь, на форуме.
0
|
|
| 16.03.2024, 23:38 | |
|
Ответы с готовыми решениями:
41
[CoDeSys] Эмуляция и отладка программы - нет связи с ПЛК [CoDeSys] Подключить по Ethernet к ПЛК (slave) вторую панель оператора
|
|
Модератор
|
|
| 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
|
|
|
|
||
| 17.03.2024, 12:53 [ТС] | ||
|
По поводу компилятора: через инет так и остался, но вместе с Конграфом идет бесплатный C51 Keil, который можно выбрать: Вот я пока пристреливаюсь - в какой среде лучше работать. Конграф я конечно же попробовал, но сразу "с места" так сказать получил "Ошибку при компиляции в приборе №1" на абсолютно пустом добавленном ПЛК. Ни объяснений что к чему, ошибка и все тут. Какая? Чего? непонятно. На сколько я понял, приборы имеющие Ethernet на борту могут прошиваться через него, без использования "специального программатора"... Но это не точно. Судя по проектам, панель Weintek у них чуть ли не единственная используется. Пихают ее всюду (видимо их разработчики/проектанты только ее и освоили). И да, у нас она тоже предусмотрена, причем на нее по проекту выводят состояние почти всего объекта, через субмодуль Weblinker MB (очевидно модбас). И тут у меня тоже закрались некоторые сомнения - а хватит ли тегов для всего этого... Короче, много всего не ясного... И пощупать/проверить пока нет возможности.
0
|
||
|
Модератор
|
|
| 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
|
|
|
|
|
| 17.03.2024, 15:47 [ТС] | |
|
Условно говоря, ситуация такая: покупаются уже готовые собранные шкафы у завода-изготовителя, т.е. в них уже находятся все элементы (ПЛК/панель/веблинкеры...). Т.е. можно предположить, что панель будет уже содержать необходимый драйвер...
Сами же ПЛК и панель "пустые", т.е. без функциональных программ. Закладывать туда алгоритмы работы нам нужно будет самостоятельно, т.к. вроде как это выходит "дешевле" в плане тиражирования проектов для нескольких установок. Сама панель одна и находится на "главном" щите управления. По проекту, она общается с ПЛК через Weblinker MB по Ethernet:
0
|
|
|
|
||
| 17.03.2024, 16:06 [ТС] | ||
|
Прошлые версии 3.0.74 / 3.0.35 отсутствуют (не скачать), а версии 2.х видать тоже совсем древние.
0
|
||
|
Модератор
|
|
| 17.03.2024, 17:44 | |
|
Связка КОНГРАФ+КОНСОЛЬ тоже нормально.
Там обычный FBD, есть возможность создавать свои FBD (виртуальные блоки). Почти каждый библиотечный ФБ имеет как видимые входы, так и те, которые инициализируются параметрами из списков. Можно делать их видимыми. Я подключал через коммутатор Ethernet ПЛК, панель и ноутбук - можно было заливать программы без перекоммутации, да и Weintek хороший онлайн эмулятор - без загрузки проверял программу для панели. Из-за нехватки времени не смог тогда разобраться, как лучше программировать панель. При создании проекта панели предлагается два пути - на основе какого-то шаблона (по умолчанию) и без него. Если с шаблоном, то в проект добавляются шаблонные скрипты и переменные, экранные клавиатуры, контроль обрыва связи и многое другое. А без шаблона - нет никаких добавок, клавиатур. Это влияет на способ обновления списков параметров из ПЛК. Если без шаблона, то список переносится напрямую из КОНСОЛи, если с шаблонами, то нужно объединять этот список с шаблонными переменными. Сразу с этим не разобрался, а больше и возможности не было. Так и объединял списки при помощи bat-файла. Добавлено через 7 минут У меня есть незаконченная статья по ПЛК - делал её как памятку. Не закончил, т.к. писал не сразу и что-то не мог проверить. Недавно предлагали вернуться к тем щитам, думал наиграюсь и статью завершу, но судьба распорядилась иначе - заказчика переубедили заменить ПЛК и сделать более глобальную автоматику на весь цех. Посмотрите, может что-то полезное извлечёте https://www.cyberforum.ru/blog... g6263.html
1
|
|
|
|
||
| 18.03.2024, 13:16 [ТС] | ||
|
ФедосеевПавел, я вот эту идею немного не понял:
Т.е. все устройства соединены по KontarBus между собой. Если из одного устройства нужно что-то передать на другое -> надо виртуальные входа/выхода создавать?
0
|
||
|
Модератор
|
|
| 18.03.2024, 13:57 | |
|
Да, виртуальные входы и выходы.
Множество бит для передачи лучше упаковать в целое число и передавать целое. Добавлено через 31 секунду Это для работы.
0
|
|
|
|
|
| 19.03.2024, 14:47 [ТС] | |
|
Сваял небольшой тестовый проектик в Конграфе.
Задача: Master посылает сигналы Пуск/Стоп двум Слэйвам. У каждого слэйва есть "локальный" вход/выход Авария и выход Работа. С последнего ведомого в мастер возвращаются сигналы состояния этих ведомых (Работа/Авария). В симуляторе, на стороне Мастера, все происходило как задумано: состояния и аварии обоих ведомых идентифицировались корректно. А вот у самих ведомых происходило нечто странное - какая-то "генерация" по выходам "Работа"/"Авария". Причем, сразу на обоих, даже если включить Работу/Аварию только на одном из них: Сначала подумал, что возможно симулятор как-то странно интерпретирует "кольцевые" связи, но вроде как по логике в блоках - нет никаких предпосылок для этого. Оказалось дело в не совсем очевидном моменте: сигналы в списках обоих ведомых (имена одинаковые) "давили" друг друга через общий список симуляции. Нужно было добавить им префиксы (сделать уникальными) именно для общего списка симуляции: В результате все стало как надо: Ну и по виртуальным портам "для связи" получается что: необязательно использовать именно аппаратные входы/выходы, например, если они все заняты другими делами. Можно насоздавать дополнительных и прокидывать связь по ним. Для этого теста я добавил в каждый ПЛК по целому II (вход) и IO (выход) для организации "сквозной" связи.
1
|
|
|
Модератор
|
|
| 19.03.2024, 18:45 | |
|
Да, так и есть.
Можно сделать не последовательную, а радиальную связь с каждым из Slave. Многое уже забыл. Помню была проблема при желании просто копировать программу из одного Slave в другой (щиты были однотипные) - нужно было переименовывать параметры или помещать их в другие списки. Могу что-то уже путать..
0
|
|
|
|
||
| 19.03.2024, 19:04 [ТС] | ||
|
Ну, в общем, работать можно, принцип более-менее понятен. Единственно интерфейс конечно убогий. Квадраты блоков нарисовали красивыми цветными, а вот перетягивание мышкой элементов какой-то ужас.
0
|
||
|
Модератор
|
|
| 19.03.2024, 19:05 | |
|
И ещё, операторская панель с драйвером может работать с параметрами в Slave без переноса их в Master.
Т.е. не обязательно концентрировать в Master все параметры настройки всех Slave. Это просто вспомнил...
0
|
|
|
|
|||
| 19.03.2024, 19:07 [ТС] | |||
|
Добавлено через 48 секунд
0
|
|||
|
Модератор
|
|
| 19.03.2024, 19:07 | |
|
0
|
|
|
Модератор
|
|
| 19.03.2024, 19:22 | |
|
По моему, был TON, TP (в терминах привычного CoDeSys или OwenLogic). Другие тогда в программе не требовались, не запомнил.
0
|
|
| 19.03.2024, 19:22 | |
|
Помогаю со студенческими работами здесь
20
ПЛК Schneider electric MODICON TSX Micro vs ПЛК от Allen bradley Контролеры ELMO и ака ПЛК, которые не ПЛК [Siemens s7 314c 2dp] Корректная программа для ПЛК одной версии не записывается в ПЛК другой версии [CoDeSys 3.5] ПЛК SM252MESC: прочитать данные по CAN Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
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-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|