Симуляция контроллера нужна, если самого контроллера в наличие нет, или ещё нет. А писать программу уже надо! Или необходимо проимитировать работу программы существующего объекта.
Сразу возникает вопрос: а как же имитировать входные-выходные сигналы? А если входной сигнал имеет сложный закон изменения во времени? Именно для этого и создан IO Switchboard.
Итак, попробуем, как оно работает:
Создаём новый проект в Automation Studio. В примере использована версия AS4.2
Как обычно, задаём имя проекта
Добавляем в проект контроллер X20CP1585. Галочки «Use automation runtime simulation» и «Activate simulation» я не ставил.
Нажав на кнопку с изображением светофора активируем симуляцию.
В статусной строке (внизу справа) проверим, запустился ли процесс симуляции. В нашем случае — «RUN» — всё нормально.
Добавим к нашему контроллеру пару модулей: X20AI4622 — модуль аналоговых входов и X20AO2622 — модуль аналоговых выходов
Нажав кнопочку «Transfer» загрузим проект в контроллер
К интерфейсу ETH добавим специальное устройство SimDevice
Для нашей программы определим массив типа INT
Далее, настроим наши модули. Кликнув правой кнопкой мыши по модулю вызовем конфигурацию (Configuration). В поле Simulation device выберем устройство SimDevice (его мы добавили ранее, см рис. 9)
Привяжем к каналам входов-выходов модулей (IO Mapping) переменные. К тем каналам ввода-вывода, которые мы будем симулировать, нужно применить симуляцию — поставить галочку в столбике Simulate.
То же (добавить SimDevice и привязать переменные) нужно сделать и со вторым модулем.
Примечание: можно симулировать каналы ввода-вывода выборочно. И даже на реальном контроллере. Таким образом, даже на работающем оборудовании, не имея, к примеру какого-либо датчика, или для того, чтобы проверить выходные сигналы имитацией, можно пользоваться этим механизмом.
Теперь добавим и напишем такую нехитрую программу (в примере Automation Basic). Смысл такой: со входа buffer[0] к сигналу прибавляем 5 и кладём на выход buffer[8]
Заливаем проект в контроллер
Запускаем утилиту имитации ввода-вывода IO Switchboard
Нажав на кнопку Run программа io switchboard свяжется с виртуальным контроллером и считает из него имитируемые вводы-выводы
Перетягиваем канал AnalogInput01 в поле Board1 (к этому каналу в нашем проекте привязана переменная buffer[0])
Теперь нужно немного настроить поле отображения:
- минимум-максимум канала
- добавить graph
- минимум-максимум graph
- signal (здесь задаём файл-источник сигнала. Какой файл — см. ниже)
В этом файле в виде xml-таблицы описываем закон изменения сигнала. Х — это время, Y — значения сигнала.
Точно так же перетягиваем и настраиваем поле отображения канала вывода AnalogOutput01
Нажав на кнопку с изображением синей стрелки запускаем циклическое выполнение симуляции
Результат! IO Switchboard по закону изменения сигнала из файла имитирует входной сигнал. Этот входной сигнал обрабатывается программой виртуального (симулированного) контроллера и обработанное значение выводится на аналоговый выход модуля (тоже симулированный). Программа IO Switchboard рисует график выходного сигнала.