Симулятор CannyLab
- Общее описание
- Включение режима симуляции
- Непрерывное исполнение диаграммы
- Приостановка и сброс
- Приостановка по условию
- Принудительное изменение значений
- Изменение системы счисления отображаемых значений
- Особенности работы с составными функциональными блоками в режиме симуляции
Общее описание
Работая в режиме симулятора, CannyLab выполняет с данными диаграммы действия, эквивалентные тем, которые будут выполнены с ними вычислительным ядром контроллера при запуске диаграммы на нем, что позволяет моделировать работу контроллера на ПК.
Пользователь имеет возможность запустить симуляцию выполнения функциональной диаграммы для отладки и тестирования на любом этапе ее создания. В режиме симулятора возможно циклическое и пошаговое выполнение диаграммы, задание условий приостановки выполнения, принудительная установка значений входов и выходов функциональных блоков, контроль промежуточных значений.
Примечание: В текущей версии симулятора CannyLab отсутствует поддержка аппаратных ресурсов контроллера, поэтому результаты чтения из регистра и записи в регистр в симуляторе могут отличаться от результатов полученных при выполнении диаграммы контроллером.
Включение режима симуляции
Включение и выключение режима симуляции производится выбором соответствующего пункта в разделе «Симуляция» главного меню программы, или нажатием кнопки с изображением «жука» на панели инструментов.
В режиме симуляции внешний вид главного окна программы и диаграммы изменяется — убираются недоступные в этом режиме элементы диалога, на диаграмму добавляется отладочная информация.
При включении режима симуляции, будет выполнена проверка диаграммы на непротиворечивость и подсчет оперативной памяти (RAM) и памяти программ (ROM) которая потребуется контроллеру для ее запуска. В случае обнаружения проблем пользователь будет о них предупрежден.
Также, при включении режима симуляции будет автоматически определен и отображен порядок исполнения блоков диаграммы. Все промежуточные значения входов и выходов функциональных блоков, внутренняя память блоков и значения всех сетей будут сброшены в 0, указатель следующего блока в очереди выполнения будет установлен на первый блок диаграммы, установлена привязка часов симулятора к реальному времени.
В режиме симуляции, пользователь может свободно перемещаться по диаграмме и изменять масштаб ее отображения, однако редактирование элементов диаграммы в этом режиме работы CannyLab запрещено.
Непрерывное исполнение диаграммы
Запуск непрерывного исполнения диаграммы симулятором производится выбором пункта «Симулятор» → «Запуск» главного меню программы или нажатием кнопки панели инструментов:
которая при этом принимает следующий вид:
Примечание: Пункты «Запуск» и «Пауза» главного меню «Симулятор», а также вышеуказанные кнопки запуска и приостановки симуляции панели инструментов совмещены и активируются в зависимости от текущего состояния симулятора.
Привязка часов симулятора к реальному времени осуществляется включением кнопки «В реальном времени»:
Данная кнопка в режиме симуляции по умолчанию включена, часы симулятора начинают отсчет времени циклического выполнения диаграммы со скоростью системных часов ПК. Если эту привязку отключить, то внутренние часы симулятора начнут идти с максимально возможной скоростью, определяемой производительностью ПК.
Масштаб времени диаграммы задается установкой значения в поле «Длительность программного цикла»:
Установленное значение задает приращение, которое будет добавляться к показаниям часов симулятора после каждого прохода диаграммы. Данный параметр можно рассматривать как время, затрачиваемое контроллером на однократное полное исполнение пользовательской диаграммы.
Примечание: Для отладки больших пользовательских диаграмм, реализующих алгоритмы критичные к времени исполнения, для ПЛК CANNY 7 масштаб времени рекомендуется устанавливать из расчета 1 мс на каждые 30 функциональных блоков.
При изменении значений входов и выходов функциональных блоков в процессе исполнения диаграммы их новые значения будут отображены на диаграмме непосредственно рядом с ними. Для наглядности сети, связанные с выходами блоков имеющими значение отличное от нуля, будут выделены цветом.
При присоединении к функциональному блоку «Регистра чтения» или «Регистра записи» на расстоянии равном двум шагам сетки рабочей области редактора, отображение значений в симуляторе изменится следующим образом:
Аналогичным образом отображаются значения для «Внешнего входа» и «Внешнего выхода» составного блока:
Приостановка и сброс
Исполнение диаграммы симулятором можно приостановить, выбрав пункт «Симулятор» → «Пауза» главного меню программы или нажатием кнопки «Пауза» панели инструментов:
После нажатия на кнопку«Пауза» она переключится в режим кнопки «Запуск» и примет следующий вид:
Функциональный блок, на котором исполнение диаграммы было приостановлено, будет выделен желтым цветом. Сети с изменившимися на последнем шаге значениями так же будут выделены, часы симулятора будут приостановлены.
Примечание: Пункты «Запуск» и «Пауза» главного меню «Симулятор», а также вышеуказанные кнопки запуска и приостановки симуляции панели инструментов совмещены и активируются в зависимости от текущего состояния симулятора.
Начиная с CannyLab версии 2 и выше при запуске симуляции диаграммы, отображение элементов в рабочей области будет автоматически смещено таким образом, чтобы в рабочую область попал функциональный блок, на котором выполнение было приостановлено.
Продолжение непрерывного исполнения диаграммы с момента, на котором оно было прервано, производится выбором пункта «Симулятор» → «Запуск» главного меню программы или нажатием на панели инструментов кнопки:
Полная остановка процесса исполнения диаграммы и сброс симулятора в начальное состояние производится выбором пункта «Симулятор» → «Сброс» главного меню программы или нажатием на панели инструментов кнопки:
Приостановка по условию
В симуляторе предусмотрена возможность автоматической приостановки исполнения диаграммы по следующим условиям:
- при изменении значения конкретной сети на диаграмме;
- после исполнения очередного функционального блока диаграммы (пошаговый режим);
- перед исполнением конкретного функционального блока на диаграмме;
- по завершению полного цикла диаграммы;
Команды выполнения диаграммы с приостановкой
Исполнение очередного функционального блока с последующей приостановкой исполнения диаграммы с заходом внутрь составного блока производится выбором пункта «Симулятор» → «Шаг в» главного меню программы или нажатием кнопки «Шаг в» панели инструментов:
Исполнение очередного функционального блока с последующей приостановкой исполнения диаграммы без захода внутрь составного блока производится выбором пункта «Симулятор» → «Шаг через» главного меню программы или нажатием кнопки «Шаг через» панели инструментов:
Выполнение одного полного цикла диаграммы с приостановкой исполнения на текущем функциональном блоке производится выбором пункта «Симулятор» → «Цикл» главного меню программы или нажатием кнопки «Цикл» панели инструментов:
Точки останова
Установка и снятие точки останова на конкретном функциональном блоке диаграммы производится выбором соответствующего пункта контекстного меню, доступного по нажатию правой кнопки мыши на блоке. Фон заголовка функционального блока объявленного точкой останова, в режиме симулятора будет выделен красным цветом.
Установить или снять точку останова на сети или функциональном блоке можно также при помощи двойного нажатия левой клавиши мыши с зажатой клавишей «Ctrl» на функциональном блоке.
При наличии на диаграмме функциональных блоков, объявленных точками останова, исполнение диаграммы будет приостановлено перед каждым исполнением каждого такого блока.
Снятие всех ранее установленных точек останова исполнения диаграммы может быть осуществлено путем нажатия правой кнопки мыши на свободной от каких-либо элементов диаграммы месте рабочей области симулятора и выбора соответствующего пункта контекстного меню.
Примечание: При выходе из симулятора точки останова, активные в данной сессии симуляции, сохраняются и будут доступны при следующем запуске симулятора.
Контрольные точки
В отличии от точки останова, контрольная точка устанавливается на сети функциональной диаграммы.
Установка и снятие контрольной точки на конкретной сети диаграммы производится выбором соответствующего пункта контекстного меню, доступного по нажатию правой кнопки мыши на любом сегменте сети. Цвет всех сегментов сети объявленной точкой останова, в режиме симулятора будет изменен на красный.
При наличии на диаграмме сетей объявленных точками останова, исполнение диаграммы будет приостановлено при каждом изменении значения каждой такой сети.
Установить или снять контрольную точку на сети или функциональном блоке можно также при помощи двойного нажатия левой клавиши мыши на этом элементе сети.
Контрольная точка может быть также установлена на регистр записи. В этом случае приостановка исполнения диаграммы произойдет при изменении значения данного регистра.
Снятие всех ранее установленных контрольных точек исполнения диаграммы может быть осуществлено путем нажатия правой кнопки мыши на свободной от каких-либо элементов диаграммы месте рабочей области симулятора и выбора соответствующего пункта контекстного меню.
Примечание: При выходе из симулятора контрольные точки, активные в данной сессии симуляции, сохраняются и будут доступны при следующем запуске симулятора.
Принудительное изменение значений
Для имитации внешних воздействий на диаграмму во время симуляции, в симуляторе предусмотрена возможность ручного принудительного изменения текущего значения сетей.
Принудительное изменение значения сети производится выбором пункта контекстного меню «Установить значение» доступного по нажатию правой кнопки мыши на любом сегменте сети или регистре чтения.
В открывшемся после выбора этого пункта диалоговом окне вводится устанавливаемое принудительно значение.
Значение, принудительно установленное для сети, отображается в виде надписи на черном фоне.
Установленное принудительно значение сети будет использоваться функциональными блоками, соединенными с данной сетью вместо её реального значения до тех пор, пока не будет освобождено вручную, либо пока не будет осуществлен выход их режима симуляции.
Примечание: При выходе из симулятора значения, установленные принудительно в данной сессии симуляции, не сохраняются.
Возврат сети к получению значения определяемому работой диаграммы производится выбором пункта контекстного меню «Освободить значение» доступного по нажатию правой кнопки мыши на любом сегменте сети с принудительно установленным значением.
Пользователю доступна возможность освободить все ранее установленные фиксированные значения сетей с помощью команды «Освободить все значение» контекстного меню, вызываемого нажатием правой кнопкой мыши в рабочей области симулятора CannyLab.
Быстро принудительно установить значение какой-либо сети равное единице, или быстро освободить значение сети можно также при помощи двойного нажатия левой клавиши мыши на данной сети, удерживая нажатой клавишу «Ctrl».
Изменение системы счисления отображаемых значений
По умолчанию, все значения отображаются в симуляторе в десятичном виде. Однако, систему счисления отображаемых значений можно в любой момент изменить, например на шестнадцатеричную, выбрав соответствующий пункт подменю «Симулятор» → «Формат значений» главного меню программы.
Особенности работы с составными функциональными блоками в режиме симуляции
В процессе непрерывного выполнения симуляции пользователю доступна возможность наблюдения за процессом выполнения функциональных диаграмм различных уровней вложенности.
Перемещение между верхним уровнем функциональной диаграммой и функциональными диаграммами составных блоков различного уровня производится аналогично режиму редактирования составных блоков.
Рассмотрим пример пошагового перехода в режиме симуляции от пространства функциональной диаграммы вложенного составного блока к пространству верхнего уровня функциональной диаграммы:
Перейдем на один уровень выше в составной блок, являющийся родительским по отношению к «Вложенному составному блоку»:
Перейдем на верхний уровень функциональной диаграммы в режиме симуляции: