Среда исполнения функциональных диаграмм

Представление функциональной диаграммы

Созданная в среде разработки CannyLab графическая функциональная диаграмма непосредственно перед записью в контроллер автоматически обрабатывается транслятором, который выполняет проверку диаграммы на непротиворечивость, определяет порядок выполнения функциональных блоков и преобразует диаграмму в исполняемый код — последовательность машинных команд АЛУ контроллеров CANNY.

Порядок исполнения

Исполняемый код диаграммы при записи в контроллер, уже содержащий системное программное обеспечение, включается в последовательность машинных команд системного ПО. Таким образом общая последовательность команд контроллера с загруженным системным ПО и функциональной диаграммой будет состоять из: процедуры инициализации, исполняемой однократно после каждого сброса контроллера, и исполняемого кода функциональной диаграммы, обрамленного процедурами управления ресурсами контроллера, и помещенного в бесконечно исполняемый цикл – цикл выполнения диаграммы.

Некоторые драйверы, включенные в состав системного ПО контроллера, например, драйвер CAN, требуют безотлагательной реакции контроллера на возникающие в процессе приема и передачи данных программные события. Программный код таких драйверов обрабатывается контроллером асинхронно, параллельно с основным потоком исполнения. На время обработки асинхронных вызовов драйверов исполнение основного цикла выполнения диаграммы кратковременно приостанавливается.

Порядок исполнения

Доступ к ресурсам контроллера

Все доступные пользователю из функциональной диаграммы ресурсы: системные ресурсы контроллера, подсистема ввода-вывода и дополнительные драйверы, включенные в состав системного ПО, отображаются на защищенное адресное пространство внутренней памяти контроллера. Данное адресное пространство разделено на регистры чтения (контроля) и регистры записи:

  • Регистр чтения может быть использован в качестве источника входных данных практически любого функционального блока на диаграмме. Тем самым пользователь может извлечь и использовать при реализации собственных алгоритмов сведения, полученные контроллером из внешнего мира. Например, информацию об электрическом потенциале на каком-либо контакте контроллера или содержимое пакета данных принятого контроллером по интерфейсу CAN.

  • Регистр записи может быть использован в качестве получателя выходных данных любого функционального блока на диаграмме. Таким образом, пользователь осуществляет управление ресурсами контроллера из функциональной диаграммы, получая возможность воздействовать на объекты внешнего мира. Например, переключить внешнее реле, изменив электрический потенциал на одном из контактов контроллера, к которому подключена его обмотка; включить контрольный светодиод; задать режим работы CAN; отправить пакет данных.

Порядок использования большинства ресурсов контроллера включает в себя задание пользователем необходимых параметров их работы, например, полярности выходных каналов, полярности и чувствительности входных каналов, скорости обмена данными по CAN и т. д.

Задание таких параметров производится в форме записи специальных констант в один или в несколько определенных регистров контроллера, в зависимости от того, конфигурацию какого из ресурсов требуется задать. Например, для контроллера CANNY 7 установкой константы со значением 121 в регистр, расположенный по адресу 2432, задается режим работы канала №0 в качестве выхода положительной полярности.

Запись константы в регистр

В среде CannyLab для удобства пользователя все доступные регистры контроллера именованы, как и все специальные константы, использующиеся при взаимодействии с ресурсами контроллера. Поэтому для пользователя CannyLab данная операция будет выглядеть как установка константы с именем «Стандартный положительный выход» в регистр с именем «Регистр конфигурации канала №0».

Установив как показано в предыдущем примере режим работы канала №0 контроллера CANNY 7, мы можем по появлению значения «1» в регистре расположенном по адресу 2465 («Регистр входного значения канала №0») узнать о приложении положительного электрического потенциала к контакту №1 разъема Х2 контроллера.

Чтение данных из регистра

СМОТРИ ТАКЖЕ