В этой работе показана детальная авторская реализация объединения сред TIA Portal и Simulink для совместного моделирования с обменом данными, работающая при любом, даже самом малом, шаге квантования (моделирования). Этот вариант позволяет также тестировать PLC контроллеры TIA Portal на частотах квантования контроллеров. Синхронизация сред осуществляется без применения таймеров реального времени. Приведен пример построения быстродействующего контура, обеспечивающего управление аналоговым неустойчивым объектом Simulink виртуальным ПЛК среды TIA Portal. Экспериментально определено, что предлагаемое объединение сред не влияет на результаты моделирования.

Состояние проблемы

Интегрированная среда разработки систем автоматизации TIA Portal содержит инструментальные средства для конфигурирования, настройки, тестирования и обслуживания систем. Мощная среда MATLAB/Simulink обеспечивает эффективное моделирование и оптимизацию сложных динамических систем. Совместное моделирование TIA Portal и Simulink повышает качество проектирования систем автоматизации и управления и сокращает сроки проектирования.

Известны примеры связи сред TIA Portal – Simulink через OPC сервер, в которых среды обмениваются пакетами данных с максимальной частотой 10 раз с секунду [1,2,3]. Это ограничение определяет максимальную частоту квантования. Для моделирования и работы быстродействующих систем, которые характеризуются широкой полосой пропускания, требуется высокая частота квантования.

Скорость непосредственной передачи/приема данных через TCP канал в десятки раз выше скорости передачи через OPC сервер. Однако, для TCP связи с контроллерами TIA Portal, которые выступают в роли TCP клиента, необходимо, чтобы модель Simulink работала в режиме сервера, а таких библиотечных средств у Simulink нет.

Поиск готовых авторских вариантов объединения средств TIA Portal и Simulink для моделирования быстродействующих процессов дал отрицательный результат. Например, автор [4] сообщает о применении в Simulink собственной S-функции, которая обеспечивает передачу и прием данных, но он не раскрывает код S-функции, детали механизма взаимодействия и синхронизации сред а также влияние взаимодействия на точность моделирования.

Ниже представлен собственный детальный вариант построения системы для совместного моделирования в средах TIA Portal и Simulink с обменом данными, работающей при любом самом малом шаге квантования (моделирования).

Особенности организации совместного моделирования сред TIA Portal и Simulink

Организация совместного моделирования систем средствами TIA Portal и Simulink с любым шагом моделирования включает следующее.

  1. Среды TIA Portal и Simulink связываются TCP каналом передачи данных.

  2. Модель Simulink обменивается данными с TIA Portal через TCP сервер, разработанный средствами MATLAB.

  3. Сервер обменивается данными на скоростях ниже пропускной способности TCP канала.

  4. TIA Portal обеспечивает однократный запуск программного модуля - участника совместного моделирования, каждый раз в момент приема данных от Simulink сервера.

Пропускная способность TCP

Для совместного моделирования, например, систем управления, необходимо, чтобы на каждом шаге моделирования контроллер среды TIA Portal (или его модель) принимал данные о состоянии Simulink модели и возвращал модели управляющее воздействие. Время совместного моделирования напрямую зависит от пропускной способности канала передачи данных.

Тестирование пропускной способности TCP канала: “клиент ПЛК TIA Portal – виртуальный Ethernet адаптер Siemens – сервер MATLAB” (Рисунок 1) дало следующие результаты.

  • Частота однонаправленной побайтовой передачи данных командами MATLAB fwrite равна 3000 Байт/c.

  • Частота обмена байтами (на каждом такте использовались команды fwrite и fread) составляет примерно 300 приемопередач в cекунду.

  • При обмене данными в формате Double (LReal), когда каждое число состоит из 8 байт и используются команды fwrite и fread, частота практически не отличается от частоты побайтового обмена в 300 приемопередач в cекунду.

Приведенные результаты тестирования показывают, что применение TCP канала позволяет обеспечить совместную работу TIA Portal и MATLAB на максимальной частоте квантования около 300 Гц.

Рисунок 1. Сетевое взаимодействие MATLAB – виртуальный PLC контроллер TIA Portal. Только один клиент может быть подключен к серверу. У каждого объекта сетевой пары (сервер и клиент) должна быть уникальная совпадающая комбинация IP адреса и порта (как показано на рисунке).

Пример построения системы управления для совместного моделирования средствами TIA Portal и Simulink

Для проверки последовательности реализации и качества совместного моделирования были построены два контура управления одинаковыми неустойчивыми аналоговыми объектами второго порядка с одинаковыми дискретными ПИД регуляторами. Первый “образцовый” контур реализован только средствами Simulink. Регулятор второго контура построен на базе ПЛК TIA Portal, а объект управления моделируется средствами Simulink. Прием сигнала рассогласования и передача воздействия, вычисляемого ПЛК, осуществляется через TCP канал.

Подготовка к совместному моделированию выполнена в следующей последовательности.

1. Использование средств MATLAB/Simulink.

1.1  Построен контур управления неустойчивым объектом с дискретным ПИД регулятором (Рисунок 2).

Рисунок 2. Модель Simulink контура управления аналоговым неустойчивым объектом второго порядка (выделен желтым).  

1.2  Методом оптимизации “Tune” (Рисунок 3) для шага моделирования 10 мс найдены оптимальные параметры дискретного ПИД регулятора.

 ПРИМЕЧАНИЕ. Оптимизация ПИД регулятора в MATLAB не нашла устойчивый вариант управления объектом (Рисунок 2) при шаге моделирования 0.1 с - минимальном шаге систем с OPC серверами.

Рисунок 3. Характеристики контура управления (Рисунок 2) при шаге моделирования 10 мс. Верхний ряд: параметры оптимального ПИД-регулятора. Нижний ряд: частотные характеристики объекта и разомкнутого контура (Open-loop) с запасом по амплитуде 16,7 dB и фазе 69 град; реакция контура на ступенчатое воздействие (Reference tracking) с перерегулированием 16.2%.

 1.3  Средствами Simulink PLC coder [5] код регулятора модели (блок PLC_reg, Рисунок 2) переведен в SCL код ПЛК контроллера TIA Portal:

FUNCTION_BLOCK PLC_reg

VAR_INPUT

    ssMethodType: INT;

    in: LREAL;

END_VAR

VAR_OUTPUT

    out: LREAL;

END_VAR

VAR_IN_OUT

END_VAR

VAR

    Filter_DSTATE: LREAL;

    Integrator_DSTATE: LREAL;

    c_rtb_FilterCoeffici: LREAL;

END_VAR

CASE ssMethodType OF

    0: 

        Filter_DSTATE := 0.0;

        Integrator_DSTATE := 0.0;

    1: 

        c_rtb_FilterCoeffici := ((2.91953906295837 * in) - Filter_DSTATE) * 188.820552673467;

        out := ((18.4564752234922 * in) + Integrator_DSTATE) + c_rtb_FilterCoeffici;

        Filter_DSTATE := (0.01 * c_rtb_FilterCoeffici) + Filter_DSTATE;

        Integrator_DSTATE := ((28.4060096566942 * in) * 0.01) + Integrator_DSTATE;

END_CASE;

END_FUNCTION_BLOCK

1.4  Разработан TCP сервер для обмена данными в формате double.

Код MATLAB функции для запуска сервера, передачи/приема данных и остановки сервера:

function PLC_out = TCPserverDouble(PLC_in)
    persistent init_Server; 
    persistent tcpServer;
    persistent PLC_val;
    if (isempty(init_Server)) 
        PLC_val = 0;
        init_Server = 0; 
        if ~isempty(tcpServer)
            fclose(tcpServer);
            delete(tcpServer);
        end
    end 
    if init_Server == 0 
        init_Server = 1;   
        tcpServer = tcpip('192.168.0.1', 2000, 'NetworkRole', 'server');
        fopen(tcpServer);
    end
    if init_Server == 1 
        pause(0.01);        
        fwrite(tcpServer, fliplr(typecast(double(PLC_in),'uint8')));
        if get(tcpServer,'BytesAvailable') > 7
            PLC_val = typecast(uint8(flipud(fread(tcpServer, 8))),'double');
        end 
    end 
    PLC_out = PLC_val;  
end

 1.5  К модели (Рисунок 2) добавлен контур управления однотипным объектом (Рисунок 4) взаимодействующий с ПЛК TIA Portal через TCP сервер. Обмен данными через сервер дает задержку на один такт. Для выравнивания процессов в первый контур также внесена задержка (z-1) на 1 такт. Введенный экстраполятор нулевого порядка (Zero-Order Hold) поддерживает взаимодействие аналоговой и дискретной частей модели такое же, как и в первом контуре.

Рисунок 4. Два однотипных контура управления. Верхний контур (опорный) реализован только средствами Simulink. Нижний контур дает результат при совместной работе ПЛК TIA Portal и Simulink. Описанный выше TCP сервер тактируется блоком “Interpreted MATLAB Function”.

 1.6  Настроены параметры модели на запуск и остановку сервера. Для этого имя функции для работы с сервером TCPserverDouble введено в поле вызова “Property Inspector à Properties à Callbacks à SetupFcn” а команда окончания работы сервера clear TCPserverDouble введена в поле вызова “Property Inspector à Properties à Callbacks à StopFcn”.

2. Использование средств TIA Portal.

2.1.  В свойствах проекта TIA Portal установлен флажок “Support simulation during block compilation”.

2.2.  На базе библиотечных блоков TCON, TDISCON, TSEND и TRCV (Рисунок 5) построен TCP канал передачи-приема LReal данных для ПЛК (PLC1[CPU 1515-2 PN]) клиента с IP адресом 192.168.0.1:2000.

Рисунок 5. Библиотечные блоки TCP канала: TCON, TDISCON, TSEND и TRCV.

2.3.  Построен блок (Рисунок 6) для однократного выполнения SCL программы регулятора (см. код п.1.3). Программа запускается импульсами TRCV_NDR блока TRCV (Рисунок 5), которые формируется каждый раз после успешного приема данных. Выполнение программы заканчивается передачей выходного сигнала регулятора в TCP канал. Инверсный сигнал TCON_Req обеспечивает установку регулятора в исходное состояние (обнуление интегральной составляющей и фильтра дифференциальной составляющей), когда вход Method равен нулю.

Рисунок 6. Блок SCL программы регулятора. Запуск однократного выполнения программы обеспечивается импульсами TRCV_NRD блока TRCV (Рисунок 5) . Сброс регулятора обеспечивается инверсным сигналом TCON_Req когда вход Method равен нулю.

2.4.  Построен блок (Рисунок 7) для перевода формата Bool переменной TCON_Req в Integer. Формируемая переменная Method (Рисунок 6) переключает режимы работы регулятора: модули CASE 0 и CASE 1 программы SCL (см. п. 1.3). Модуль CASE 0 обнуляет фильтр дифференциальной составляющей и интегральную составляющую регулятора. Модуль CASE 1 обеспечивает работу регулятора.

Рисунок 7. Блок преобразования формата переменной.

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

Запуск TIA Portal и Simulink выполняется в следующей последовательности.

1. Запускается симулятор ПЛК S7-PLCSIM Advanced. IP адрес ПЛК симулятора должен быть настроен на IP адрес ПЛК клиента TIA Portal: блок TCON структуры PLC_1[CPU 1515-2 PN] (Рисунок 5).

2. Компилируется программа структуры PLC_1[CPU 1515-2 PN].

3. Программа загружается в Симулятор нажатием на клавишу .

4. Включается мониторинг структуры Main[OB1] .

5. Запускается объект PLC_1[CPU 1515-2 PN]:

6. Запускается Simulink модель . После запуска сервер модели ожидает подключение ПЛК клиента при неизменном положения индикатора:

ПРИМЕЧАНИЕ. Запуск Simulink модели можно выполнить на любом предыдущем этапе.

7. После запуска Simulink модели подключается ПЛК клиента к TCP сети установкой переменной TCON_Req в состояние “1” (TRUE):

8.        Совместное моделирование TIA Portal и Simulink начинает работу. Результаты моделирования, показанные на Рисунок 8, Рисунок 9 и Рисунок 10, отображаются графопостроителями Scope (Рисунок 4). Переключение входного воздействия в процессе работы совместной модели достигается переключением блока Manual Switch (Рисунок 4).

ПРИМЕЧАНИЕ. В ряде случаев, для обеспечения работоспособности TCP соединения, необходимо приостановить защиту компьютера: отключить файервол и/или антивирусную программу.

Результаты тестирования

Демонстрационная система управления была построена с применением средств TIA Portal и Simulink. Задачу ПИД регулятора решал ПЛК среды TIA Portal, неустойчивый объект управления второго порядка реализован средствами Simulink. В процессе совместной работы контроллер принимает от Simulink сигнал рассогласования и возвращает Simulink воздействие, прикладываемое к объекту.

Сравнение результатов совместного моделирования системы управления средствами TIA Portal и Simulink с результатами моделирования такой же системы только средствами Simulink (Рисунок 8, Рисунок 9, ) показывает 100% совпадение. Это означает, что выборочное совместное моделирование быстродействующих систем управления с шагом моделирования 10 мс и 1 мс выполнено без ошибок.

Рисунок 8. 100% совпадение реакции (integrator1, Рисунок 4) самостоятельного контура модели системы управления Simulink и реакции (integrator3, Рисунок 4) совместного моделирования TIA Portal и Simulink системы управления с аналогичной структурой и параметрами (Рисунок 4).

Рисунок 9. 100% совпадение выходов регулятора (слева) и реакций систем управления (в центре) вычисляемых Simulink отдельно и совместно Simulink и TIA Portal c шагом моделирования 10 мс (Рисунок 4). Параметры регуляторов контуров приведены в таблице справа.

Рисунок 10. 100% совпадение выходов регулятора (слева) и реакций систем управления (в центре) вычисляемых Simulink отдельно и совместно Simulink и TIA Portal c шагом моделирования 1 мс (Рисунок 4). Параметры регуляторов контуров приведены в таблице справа.

Диагностика TCP соединения

При установке TCP соединения первым должен подключаться сервер переводом в режим “open”, а затем клиент.

Если при работе соединения клиента переходит в состояние “closed”, то соединение через некоторое время меняет статус “ESTABLISHED” на “CLOSE_WAIT”. При последующей попытке вернуть клиента в режим “open” MATLAB выдает сообщение об ошибке: Unsuccessful open: Connection refused: connect. Такое же сообщение MATLAB выдает при попытке подключения клиента когда сервер отсутствует. В таких случаях, для восстановления TCP соединения необходимо отключить и сервер и клиент (перевести в состояния “closed”), а затем повторить процедуру установки соединения.

Для тестирования сетевых устройств ПК были задействованы следующие команды MATLAB.

  • Распечатка в окне Command Window списка активных реальных и виртуальных сетевых Ethernet адаптеров и их IP адресов:

>> !ipconfig

  • Определение локального адреса компьютера:  

>> [name,address] = resolvehost("localhost")

  • Получение списка активных портов TCP:

>> !netstat -a -n -p TCP

Заключение

  1. Разработанная организация совместного моделирования TIA Portal – Simulink с TCP каналом работает при любом шаге моделирования.

  2. Показанное объединение сред позволяет тестировать PLC контроллеры TIA Portal на частотах квантования контроллеров.

  3. Моделирование систем обеспечивается с неограниченной полосой пропускания, в отличии от вариантов, когда среды моделирования связаны через OPC сервер.

  4. Доработка (изменения) структуры и параметров программных модулей, создаваемых приложением Simulink PLC coder для TIA Portal не требуется.

  5. Результат совместного моделирования сред TIA Portal и Simulink на 100% совпадает с результатами моделирования выполненных для сравнения только средствами Simulink.

  6. Синхронизация сред моделирования не требует применения таймеров реального времени.

  7. Синхронизация сред обеспечивается введением паузы в блок связи с TIA Portal модели Simulink.

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

  9. Увеличение паузы не влияет на результаты моделирования, хотя и приводит к увеличению времени моделирования.

  10. Разработанный метод совместного моделирования TIA Portal – Simulink с применением TCP связи может быть распространен и на взаимодействие других сред с использованием других каналов передачи данных. 

Библиографический список 

1. Siemens Controls. PID16 - Siemens PID06e - OPC UA Client in Matlab - Simulink Exchanges Data with PLC via OPC UA.

2. U. Yavuz, “Real-Time Communication between S7-1200 PLC and Matlab/Simulink and a Fuzzy Logic Temperature Humidity Control Application”, Scientific Journal of Mehmet Akif Ersoy University, Volume 2, Issue 1, pp 7-14, 30 January 2019

3. Dr. Bob Davidov. Подключение PLC контроллеров к MATLAB через TIA Portal OPC сервер. https://portalnp.snauka.ru/2022/08/10938

4. Integration of Simatic S7-1200 with the Matlab Simulink environment Examples.

5. MathWorks. PLC coder: General.

Комментарии (3)


  1. dr_bob_davidov Автор
    22.09.2022 20:38

    Судя по заключению (последний пункт), решение применимо ко всем контроллерам.


  1. lumen_xp
    23.09.2022 14:42

    Работа крайне актуальная. Спасибо за труд. Из рекомендаций, любители ТАУ забывают про насыщение интегральной составляющей регулятора и насыщение выхода регулятора. При управлении объектом нельзя забывать про передаточную функцию исполнительного механизма, его быстродействие и глубину управляющего воздействия. В Вашей интерпретации выход регулятора может стремится к бесконечности, хотя в реальности ограничен кодом ЦАП 0...27648 у Siemens. При внесении настроек насыщения выхода (рисунок 3, вкладка "Насыщение выхода") эффекты могут быть совершенно иные, и идеальный регулятор встретившись с реальностью становится не таким идеальным.


  1. gvtret
    23.09.2022 14:43

    Применительно лишь к контроллерам Сименс. Так что узконаправленная статья получилась. Было бы описано более общее решение - цены бы статье не было!