Уроки из проблем симуляции ПЛК: Практическое руководство
Это громоздкое утверждение из диссертации Роланда Шульца 2002 года очень точно подводит итог всему.
Коротко: «Попытки и тестирование помогают находить ошибки».
Здесь речь не о симуляции целых производственных цехов, а о принципе, примененном к отдельным единицам (компонентам), таким как программы автоматизации или пользовательские проекты.
Раньше, как молодой сотрудник Phoenix Contact, я также учился программированию и был бы рад симуляции контроллера. Просто чтобы узнать больше о работе и функции блоков или программ методом «проб и ошибок». К сожалению, тогда её не существовало, а последувшая симуляция ПЛК была очень ограниченной. Код IEC 61131-3 можно было симулировать хорошо, но не хватало поддержки специальных устройств или просто различного поведения кода между системами на базе Intel, ARM или Motorola.

С этими мыслями и воспоминаниями о проблемах с «классической» симуляцией ПЛК мы начали поиск решения с реальной добавленной стоимостью, не создавая огромных усилий — ни в разработке симуляции, ни в последующем её использовании.
Как пользователь, я хочу иметь возможность отправить свой проект на ПЛК или в симуляцию, в идеале — одним кликом мыши. Я не хочу обращать внимание на архитектуры процессоров, и уж точно не хочу быть вынужденным скрывать или, что еще хуже, удалять функции в своем коде, которые не поддерживаются симуляцией.
Чего более очевидно, чем использовать настоящую прошивку в симуляции, которая также используется на реальном аппаратном обеспечении контроллера? Именно это и было сделано.
В наши дни существуют полноценные системные эмуляции, которые не только позволяют запускать различные операционные системы под Windows. Они также позволяют эмулировать различные архитектуры процессоров и их особенности.
Не секрет, что наши контроллеры основаны на Linux. Но для разработки кода важно, что здесь также используются разные архитектуры процессоров.
В инженерном ПО, в нашем случае PLCnext Engineer, клиент должен иметь возможность выбрать между IP-адресом контроллера или симуляцией — одним кликом мыши, не беспокоясь о дальнейших адаптациях кода или совместимости бинарного кода.
Что получилось в результате?
Мы нашли системную эмуляцию QEMU и используем её для симуляции наших контроллеров. QEMU — это «open source machine emulation» и предлагает именно то, что мы искали.
«Просто» запустить прошивку в ней, и QEMU эмулирует полную Linux-систему PLCnext Technology, включая архитектуру ARM процессоров некоторых контроллеров PLCnext — и так родилась симуляция PLCnext. Признаемся, мы добавили несколько незначительных ограничений. PROFINET-коммуникация или другие протоколы коммуникации отключены. Но, например, OPC UA-сервер не затрагивается.
Тем не менее, все особенности PLCnext Technology могли быть сохранены. Так я могу также отправлять свои программы и компоненты на C/C++, C# или Matlab Simulink в симуляцию. Также приложения (APPs), которые можно найти для определенных приложений в Store, можно запустить в симуляции.
Некоторые дополнительные ограничения очевидны — детерминизм не ожидается от такой смоделированной системы. И в зависимости от загрузки моей Windows-системы может возникнуть одна или другая ошибка watchdog в симуляции PLCnext. Но в таких случаях я всегда могу дать процессу симуляции более высокий приоритет в системе Windows, и тогда ошибки watchdog быстро устраняются.
И теперь у меня наконец есть симуляция, или, возможно, в зависимости от определения, эмуляция моего контроллера. К сожалению, мне пришлось учиться программированию без неё, а теперь я уже не так много программирую.
Промышленные технологии
- Освоение моделирования электрических цепей в SPICE: практическое руководство для проектировщиков и студентов
- Высокоразрешающие симуляции мозга раскрывают, как инфекционные семена распространяются в нейродегенератив…
- Мастерство задач отображения в Verilog: эффективная отладка и логирование
- Оптимизация проектирования экскаватора: проверенный рабочий процесс моделирования
- PLC vs DCS: выбор правильной системы автоматизации
- Промышленные ПЛК управляют приводами переменной скорости
- Теорема Теллегена: полное руководство с решенными примерами и симуляциями в MATLAB
- Инструмент Fe³ NASA Ames: продвинутая симуляция низковысотного воздушного трафика
- Искреннее прощание: мой 40-летний путь в издательстве
- Раскройте экономичный производственный контроль с ПЛК и промышленным Ethernet в реальном времени