Поддержка

Контроллеры

Список поддерживаемых контроллеров с кратким описанием функционала:

Системные требования

Для работы с программой необходимо следующее программное обеспечение (ПО):

  • ОС Microsoft® Windows™ 7 / 8 / 10 или Ubuntu;

Минимальные требования к компьютеру должны соответствовать требованию установленной операционной системы.

Установка, удаление, обновление (Windows)

Установка

Установка программы производится из удаленного репозитория. Для установки необходимо скачать и запустить файл setup.exe:

Указать путь для установки программы и нажать Далее >:

Загрузка файлов с сервера и установка в локальную директорию.

Программа инсталляции создаст группу Zentec в меню Программы.

 

Обновление

Обновление происходит в автоматическом режиме при открытии программы. Выходит окно запроса обновления:

Нажимаем OK :

Удаление

Удаление программы производится через панель установки и удаления программ.

Установка, удаление, обновление (Ubuntu)

Установка

sudo snap install zworkbench

Программа установлена:

Нажимаем на иконку zWorkbench и происходит открытие программы:

Просмотр информации

snap info zworkbench

Обновление

sudo snap refresh

Удаление

sudo snap remove zworkbench

Основные термины и обозначения

Все наименования элементов экранного интерфейса пользователя – названия кнопок, окон, групп элементов, полей таблицы, пунктов меню и т.д. специально оформлены. Например, форма Панель навигацииПанель навигации.

На цветном фоне написаны предупреждения и замечания, имеющие принципиальное значение для работы программы. На них обязательно следует обратить внимание. Например:

Не закрывайте программу, пока идет прошивка контроллера!

Для удобства работы с документом вводятся следующие сокращения:

  • FBD — язык функциональных блоков Function Block Diagram;
  • ПЗУ — Постоянное запоминающее устройство;
  • ЛКМ — левая кнопка мыши;
  • ПКМ — правая кнопка мыши.

Программирование системы управления автоматическим шлагбаумом

Начнем с постановки задачи. Будем выполнять работу небольшими и легкими в реализации частями. В зависимости от темпа работы, создание проекта с нуля займет от 30 до 60 минут.

Постановка задачи: Стрела шлагбаума имеет два конечных положения – полностью поднята (открыта) и полностью закрыта. Концевым датчикам соответствуют входы контроллера, которые мы поименуем как BarrierOpen и BarrierClosed.

Выходы контроллера BarrierUp и BarrierDown управляют двигателем подъема и опускания стрелы шлагбаума соответственно. Пользователь открывает, либо закрывает шлагбаум одной кнопкой (вход Action). Стрела либо поднимается, либо опускается, в зависимости от текущего положения. Нажатие кнопки при движении стрелы должно вызывать ее незамедлительную остановку.

Необходимо предусмотреть защиту. Движение должно быть остановлено при возникновении перегрузки привода (вход DriveOverload), например, при механическом заклинивании. Повторным нажатием кнопки управления пользователь также должен экстренно останавливать движение.

Контрольная лампа движения стрелы (Lamp) должна автоматически включаться в момент начала движения и выключаться через некоторое время после окончания движения. Должен вырабатываться флаг ошибки по перегрузке привода, а также, если процесс движения занимает недопустимо длительное время.

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

Создание проекта

Запускаем редактор. Для начала, необходимо сориентироваться в среде программирования:

В верхней части окна расположена панель переключения режимов программы. Она состоит из четырех вкладок:

  • Начало
  • Проекты
  • Редактор
  • Диспетчер

И две кнопки:

  • Справка
  • Настройки

При старте программы по умолчанию открывается вкладка Начало, в которой находится лента с последними новостями, последними видеоуроками и список недавно открытых проектов.

Все проекты по умолчанию хранятся в папке текущего пользователя. Для начала создадим новый проект. Для этого перейдем на вкладку Проекты и выберем команду Новый проект:

В появившемся окне свойств проекта укажем его имя, разработчика (при необходимости),описание проекта и нажмем кнопку ОК. Новый проект появится в списке, и автоматически откроется вкладка Редактор :

В режиме редактирования проекта присутствует панель Обозреватель проекта. В ней в виде дерева отображается вся структура открытого проекта. В ветке Программы вызываем контекстное меню и выбираем команду Добавить... :

В появившемся окне выбираем тип контроллера, который мы хотим использовать для работы. Для этого проекта выберем контроллер Z400 и нажмем кнопку Добавить.

В ветке Программы появился новый контроллер. У этого контроллера присутствует подчиненный объект — FBD-программа. Именно в ней и происходит создание алгоритма работы. Для редактирования FBD-программы делаем на ней двойной клик или выбираем команду Открыть в контекстном меню:

Объявление переменных

Теперь пора объявить входные и выходные переменные. Список переменных располагается в нижней части схемы в виде таблицы:

Для добавления новой переменной нажмем кнопку + на панели инструментов, после чего откроется диалог редактирования свойств переменной:

Нам необходимы входные переменные BarrierOpenBarrierClosedDriveOverload для датчиков состояния шлагбаума и Action для кнопки управления шлагбаума. В качестве выходных переменных нам потребуются BarrierUp и BarrierDown для перемещения стрелы и Lamp для сигнальной лампы движения. Все эти переменные являются логическими.

Программирование привода стрелы шлагбаума

Начнем с программирования той части проекта, которая поднимает стрелу. Для этого применим стандартный функциональный блок триггер. Он имеет два устойчивых положения: включен или выключен. Переключение происходит по входам установки и сброса.

Для начала просто вставим блок, затем нарастим соответствующую логику управления. Выберем на панели Блоки функциональный блок RS-триггер и перетащим его на схему:

Если необходимо добавить на схему несколько одинаковых блоков, то перетаскивать с панели блок необходимо с помощью правой кнопки мыши или удерживая одновременно кнопку Shift. В этом случае выбранный блок как бы «повиснет» на указатели мыши, и его можно вставлять неограниченное количество раз простым щелчком мыши на схеме. Для выхода из режима вставки блока надо нажать Esc или кнопку Режим выделения на панели рисования.

Дважды щелкнем по вставленному блоку и откроем редактор свойств. Установим имя блока RSBarrierUp , поставим галочку в окне Вывод заголовка, чтобы показывать название и нажмем кнопку ОК :

Начнем добавлять логику управления. Переменную Action подадим на вход S. Для этого надо выделить её в списке переменных и «перетащить» на схему. На схеме добавится блок для управления переменной.

Логическая переменная Action имеет значение 1, если управляющая кнопка шлагбаума нажата и удерживается. Все действия в нашей программе должны происходить четко при нажатии кнопки, то есть по переднему фронту сигнала. Чтобы детектировать его, используем соответствующий блок Передний фронт. Находим его в панели блоков (группа Битовые операции) и вытаскиваем на схему. Далее соединяем соответствующие выходы связями. Для создания простой связи достаточно выделить нужный вход или выход блока и протянуть связь до нужного выхода или входа. Соединение выходов с выходами и входов с входами не допускается. После создания связей схема будет выглядеть следующим образом:

Поскольку одной и той же кнопкой стрела и поднимается и опускается, то нужно как-то различать текущее положение и что делать дальше. Введем вспомогательную логическую переменную NextUp. Если она имеет значение 1, то стрела будет открываться. Объединим ее по логике И (AND) с переменной Action. Выберем в панели блоков элемент И группы Битовые операции и перетащим его на схему. Соединим элементы связями, как показано на рисунке:

Следующим шагом мы подключим переменную BarrierUp привода стрелы к выходу Q блока RS. Для этого вытаскиваем нужную переменную на схему и так-как эта переменная должна записываться, меняем тип блока переменной на Запись. Для этого надо двойным щелчком мыши вызвать окно редактирования свойств блока и выбрать нужный параметр:

В нашей задаче определены три возможных причины останова процесса открытия стрелы. Поставим оператор ИЛИ (OR) с тремя входами, перед входом R блока RS. Этот оператор соберет все три причины на свои входы: Датчик BarrierOpen сообщает о достижении стрелы шлагбаума верхнего положения. Эта переменная уже объявлена и может быть подключена к одному из входов оператора OR, так как мы уже делали ранее. Пользователем нажата кнопка управления во время работы привода BarrierUp. Эта логика будет реализована блоком И (AND) с двумя входами: переменной кнопки Action, детектором переднего фронта и переменной BarrierUp.

Ошибка движения. Она должна генерироваться при перегрузке привода стрелы, либо если процесс открытия/закрытия недопустимо затянулся. Переменная ошибки будет иметь название Error.

Наша первая цепь готова:

Вторая цепь будет отвечать за процесс закрытия ворот. Она будет сходна с первой. Давайте скопируем ее. Выделим ее, в меню редактирования выберем команду Копировать (или клавиши Ctrl`+ :guilabel:`C), затем команду Вставить (или клавиши Ctrl`+ :guilabel:`V). Вторая цепь появилась ниже первой. Переместим ее ниже первой и заменим переменные, отвечающие за открытие на переменные, отвечающие за закрытие. Замена переменных в блоках управления переменных делается в окне их свойств:

Обратите внимание на то, в этой цепи нужно применить инверсное значение переменной NextUp. Добавим инверсию. Для этого выделим нужный вход, откроем его свойства и установим флажок Инверсия. Инверсный вход будет отображаться с кружочком.

Третья цепь нужна для установки вспомогательной переменной NextUp, отображающей направление движения. Новую цепь вставим ниже существующих. Затем вставим уже знакомый нам RS и назовем его RSNextDirection. Подключим переменную NextUp на выход этого блока. Направление предстоящего движения может быть предсказано по предыдущему движению. Так, если переменная BarrierOpen, отвечающая за поднятие стрелы, имеет задний фронт (перепад сигнала с 1 в 0), мы знаем, что процесс открытия успешно завершен. Следовательно, в дальнейшем стрела будет опускаться. В свою очередь, этот процесс завершится задним фронтом переменной BarrierDown. Эти переменные надо подать на входы блока RS через детекторы фронтов Задний фронт:

Это все, что нам потребуется для управления шлагбаумом. Теперь осталось сделать управление лампой и контроль аварийных ситуаций.

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

В начале работы мы объявили переменную Error. Она призвана показывать ошибку работы шлагбаума и вызывать немедленный останов любого движения. Запрограммируем данную логику.

Основной причиной ошибки может быть перегрузка, о чем скажет вход DriveOverload. Второй причиной будем считать недопустимо долгое движение стрелы, продолжающееся более 20 секунд.

Для реализации такого алгоритма вставим новый блок ИЛИ ( OR ). Его выход должен только устанавливать (но не сбрасывать) Error. Чтобы получить такой эффект «залипания», используем RS триггер. Заводим сигнал с выхода блока ИЛИ на вход триггера S. Пользователь обязан увидеть сигнал ошибки и подтвердить это нажатием кнопки Action. Только тогда ошибка сбрасывается. Для этого значение переменной Action заводим на вход RS триггера — R. На первый вход блока OR подадим переменную от датчика DriveOverload. На второй вход нужно подать сигнал о превышении времени. Для этого создадим Макрос, который реализует задержку (или возьмем готовый вариант). Для создания макроса нужно щелкнуть на ветке FBD-программа, выбрать команду Добавить:

Введем название и описание макросхемы. Открываем схему макроса двойным щелчком мыши в обозревателе проекта и приступаем к её редактированию:

В отличие от основной схемы, на схему макроса можно поместить блоки входов/выходов макроса (на рисунке они отрисованы зеленым цветом). Эти блоки задают количество входов и выходов и их тип данных. Тип данных входа PT нужно поставить Беззнак. целый 2-байт, так как далее поставим константное значение 20000. Название этих блоков, после вставки макроса на схему будут соответствовать названиям его ножек.

Кроме этих блоков добавлен новый блок Timer. Этот блок реализует выдачу сигналов на своем выходе с заданным периодом времени. Значение периода устанавливается на входе interval в миллисекундах. Сигнал разрешения работы таймера выставляется на вход en. В нашем случае в таймере выставлен дополнительный параметр – Однократное срабатывание. То есть таймер начинает отчет времени по приходу сигнала на ножку en. По истечении времени, заданного на входе interval, таймер выдает сигнал на выход и останавливается. Логическая единица 1, поданная на вход IN, пройдет на выход Q через интервал времени, заданный на входе PT. Если вход IN перейдет обратно в 0 раньше, то Q так и останется в 0.

Вставляем созданный макрос в основную схему. Для этого активируем окно программы контроллера и перетаскиваем макрос из Обозревателя проекта на схему:

Вставленный макрос будет иметь вид, представленный на рисунке. Вводим в свойства блока имя Monitor. Имя конкретного экземпляра макроса отображается над блоком. Имя схемы, которую он реализует, отображается внутри блока. На вход PT установим константное значение 20000 (20 сек). Для этого откроем окно свойств входа, выбрав команду Свойства в контекстном меню входа или двойным кликом мыши на нем.

Как только шлагбаум начнёт открываться или закрываться (эти действия управляются переменными BarrierUp/BarrierDown) блок Monitor начнет отсчет времени. При исправной работе один из двух датчиков BarrierOpen или BarrierClosed сработает до истечения 20 секунд. В случае неисправности, сработает аварийная защита по времени. Итак, если процесс движения ворот займет больше 20 секунд, то выход Q установится в 1, что будет означать наличие ошибки. Таймер мониторинга времени должен запускаться обоими переменным привода. Поэтому объединим их по логике ИЛИ оператором OR до входа IN блока Monitor :

Последняя цепь нашего приложения будет отвечать за лампу. Как описано выше, лампа должна гореть, когда шлагбаум открывается/закрывается, и затем через заданный промежуток времени (допустим, 10 сек.) выключаться. Это значит, что нужен еще один блок задержки. Поскольку мы хотим, чтобы логический сигнал отключался через заданный промежуток времени, то нам понадобится новый макрос (с задержкой выключения). Создадим новый макрос, так как это было описано выше и нарисуем в нем схему, приведенную ниже на рисунке:

Эта схема реализует следующий алгоритм: Если IN равен 1, то выход Q равен 1. Как только IN переходит в 0, начинается отсчет времени (в миллисекундах). При достижении заданной длительности отсчет останавливается. Выход Q равен 0, если IN равен 0, иначе — 1. Таким образом, выход Q сбрасывается с задержкой PT от спада входа IN.

Вставляем этот макрос в основную схему и добавляем логику управления лампой. Для отработки аварийного режима вставим еще один оператор OR перед переменной Lamp. Это позволит ввести еще одну ветвь цепи, которая будет выполняться в случае возникновения ошибки. Другая ветвь будет нужна при нормальной работе.

Теперь на каждый вход этого оператора OR добавим по оператору AND. Первый оператор AND просто вставляется в уже существующую ветвь, которая отвечает за работу лампы в нормальном режиме. На второй вход этого AND подадим инвертированную переменную Error. В итоге, вся эта ветвь сможет повлиять на переменную Lamp, только при отсутствии признака ошибки. На вход оператора AND «ошибочной» ветви снова подадим Error, но без инверсии. Эта ветвь сможет повлиять на переменную Lamp, только при наличии ошибки. Другой вход этого оператора AND будет отвечать за мигание лампы. Полученная цепь показана на рисунке:

Здесь появляется новая переменная, которая задает период мерцание лампы. Реализация цепи для управления этой переменной показана на рисунке. Частота мерцания установлена константой на входе таймера:

Программирование логики управление завершено. Теперь необходимо привязать внутренние переменные к реальным физическим входам и выходам контроллера. Для этого выбираем в Обозревателе проекта контроллер. В нижней части обозревателя расположен Навигатор, который отображает внутреннюю структуру выделенного в дереве проекта объекта. Для Контроллера это будет список физических входов, выходов и служебных переменных.

Вытаскиваем необходимые нам элементы: Дискретные входы и Дискретные выходы :

На этом программирование нашего приложения полностью завершено.

Проверка и отладка программы

Для проверки программы необходимо выполнить команду Проверка из панели команд. Если при выполнении этой команды будет активно окно макросхемы, то проверка будет производиться только для этой схемы. Если будет активно окно FBD-программы контроллера, то проверка будет производиться для всего контроллера в целом.

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

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

Для этого создадим виртуальную карту сети, где расположим контроллер. Нажмем правой кнопкой мыши на группе Сети в Обозревателе проекта и выберем пункт Добавить:

Далее необходимо выбрать объект Карта сети, ввести имя и нажать Добавить.

Добавить уже существующий контроллер на карту сети можно перетащив его из панели обозревателя непосредственно на схему Карта сети:

Теперь, щелкнув по контроллеру на Карте сети правой кнопкой мыши, в контекстном меню выберем пункт Симулятор. Редактор перейдет в режим симуляции. В этом режиме запрещено любое редактирование схемы и переменных. Управление режимом симуляции осуществляется с помощью команд СтопЗапуститьШагПауза :

Команда Стоп немедленно останавливает симуляцию и переводит программу в режим редактирования. Команда Запустить стартует симуляцию. В процессе работы симулятора на экране отображаются значения входов и выходов блоков.

Назначение программы zWorkbench

Программный комплекс zWorkbench предназначен для проектирования распределенных систем управления технологическим оборудованием.

zWorkbench построен по модульной архитектуре, что дает возможность наращивать функционал системы со временем. В настоящий момент реализованы следующие модули:

  • Менеджер проектов;
  • Подсистема управления шаблонами программного обеспечения контроллеров;
  • Система программирования контроллеров — zetFBD;
  • Подсистема управления сетевой инфраструктурой;
  • Система хранения документации внутри проекта;
  • Модуль построения виртуальных приборов;
  • Система многооконной отладки.

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

Особенности zWorkbench:

1. Различные режимы работы

Программа предусматривает различные режимы работы с проектами.

На данный момент это создание дерева всех Ваших проектов, в котором Вы сможете хранить и переключаться между Вашими наработками, а также экспортировать и импортировать любые проекты извне. В режиме Редактирование осуществляется разработка FBD программ, их отладка и запись в устройство. Подробнее Вы можете ознакомиться с этим режимом в разделе Язык программирования FBD. Режим Диспетчер позволяет Вам контролировать выполняемые операции, такие как поиск устройств, их программирование и отладка в них программ.

2. Вся работа над проектами,а также доступ к ним возможен в одной программе

zWorkbench – это менеджер проектов. Теперь все Ваши проекты будут храниться в одном месте, отображаться в одном окне в привычной древовидной структуре создаваемых Вами каталогов проектов. Теперь достаточно создать папку для проектов zWorkbench в «облаке» или на переносном хранителе информации, и Вы всегда будете иметь доступ ко всем своим проектам из любого места. Вся документация, необходимая для разработки Вашего проекта теперь привязывается к проекту zWorkBench прямо в программе. Теперь Вы имеете простой и быстрый доступ к чертежам, техническим заданиям и другой документации, без нудного поиска данной информации в многочисленных папках и вложениях. Достаточно только один раз привязать нужные файлы к Вашему проекту, и Вы уже не будете тратить свое время на поиск необходимой информации по проекту.

3. Простое создание MODBUS сети

Совершенно другой подход к работе с сетью и к созданию сетевой структуры.

Во-первых, теперь Ваши программы не настраиваются под определенные параметры контроллеров в создаваемой сети. Теперь это шаблоны, которые привязываются к тому или иному контроллеру при её конфигурировании. То есть, Вы создаете сетевую структуру, в которой каждому устройству присваиваете тот или иной шаблон, а затем производите их запись во все устройства одновременно! При этом все шаблоны отображаются в дереве проекта, и Вы легко переключаетесь между ними, редактируете их, импортируете ранее созданные, в том числе и из zetFBD. Это особенно удобно, если в сети несколько устройств с одной и той же программой. Если Вы обнаружили ошибку в процессе отладки, Вам достаточно исправить ее в шаблоне, а zWorkbench запишет изменения во все устройства. Во-вторых, Вы имеете мощный и удобный инструмент по созданию сети любой конфигурации и любой сложности. Теперь достаточно связать все контроллеры между собой в необходимой последовательности, подключить Master-устройство к компьютеру, и Вы спокойно имеете доступ ко всем контроллерам в сети, можете их конфигурировать, программировать и отлаживать через Master-контроллер, переводя его в режим моста. Таким образом, создание и отладка сети любой сложности теперь является весьма простой для разработчика задачей, что является огромным преимуществом zWorkbench.

4. Создание инструментария, для разработки виртуальных устройств

Как Вы понимаете, данный инструмент позволит совершенно по-другому взглянуть на off-line отладку разработанной Вами программы. Теперь Вы можете строить виртуальные приборы любой сложности, которые позволят максимально точно имитировать работу реального объекта управления, и, таким образом, максимально точно отлаживать созданную программу, что существенно снизит затраты по времени и приведет к меньшему числу ошибок при пуско-наладочных работах.

Режимы программы zWorkbench

Программа имеет три основных режима работы:

  • режим работы с проектами — «Проекты».
  • режим работы с выбранным проектом «Редактор».
  • режим вывода информации о работе программы — «Диспетчер».

Активный режим выделяется подчеркиванием. Переход между режимами осуществляется нажатием ЛКМ на названии режима.

  • Начало (стартовая страница программы, на ней отображаются последние проекты, над которыми велась работа, последние новости и видеоуроки);
  • Проекты (управление проектами, их создание, удаление и сортировка по каталогам);
  • Редактор (разработка FBD программ, их отладка и запись в устройство);
  • Диспетчер (контроль выполняемых операций).

В правой части располагаются две кнопки:

  • Справка
  • Настройки программы

Настройка программы zWorkbench

Настройка осуществляется посредством нажатия на кнопку Настройки (со значком шестеренки) в верхнем правом углу, после чего открывается окно с настройками программы:

В боковом меню по умолчанию доступны шесть разделов:

  • FBD
  • Библиотеки
  • Обновление
  • Основные
  • Помощь
  • Расширения

Количество разделов может меняться в зависимости от установленных плагинов (см. «Расширения»).

Раздел FBD программы zWorkbench

В данном разделе настроек находятся две вкладки:

  • Редактор
  • Цветовые схемы

Редактор

Создание именованных связей: выбор способа создания именованных связей. Для быстрого создания именованных связей рекомендуется выбрать параметр кликом мыши на ножку.

Изменение типа связи: тип выделенной связи можно изменить между обычной и именованной (например, клавишами F5/F6, установленными по умолчанию). Это изменение, в зависимости от настройки, затронет либо только выделенную связь, либо все связи, подключенные к этому выходу.

Изменяется тип только выбранной связи:

Изменяется тип всех связей, подключенных к выходу:

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

Цветовые схемы

Здесь задаются цветовые отображения объектов сцены. Существует две стандартных настройки, которые не поддаются трансформации. Чтобы создать собственную цветовую схему, необходимо создать копию одного из стандартных наборов, и уже в копии изменять графические свойства Редактора.

Обозначение цветных элементов на некоторых элементах:

Обозначение элементов блока:

Обозначение элементов входов/выходов:

Цвета типов данных настраиваются в пунктах Тип данных: X, где X — название типа данных.

Библиотеки программы zWorkbench

В данном разделе можно добавлять или удалять пользовательские библиотеки (макросов, графических объектов) в программу. Чтобы добавить библиотеку, нажмите кнопку Добавить и выберите файл.

В данном разделе можно добавлять или удалять пользовательские библиотеки (макросов, графических объектов) в программу. Чтобы добавить библиотеку, нажмите кнопку Добавить и выберите файл.

Обновление программы zWorkbench

В этом разделе настроек находятся следующие вкладки:

  • Сеть
  • Регистрация
  • Персонализация

Сеть

На этой странице производится настройка прокси сервера для доступа в интернет и настройка сервера обновлений ПО контроллеров.

Для настройки прокси сервера доступны три варианта:

  • без прокси
  • использовать системные настройки
  • ручная настройка прокси

Обновление ПО для контроллеров располагается на двух серверах — стабильные и предварительные обновления. На сервере с предварительными обновлениями выложены версии, которые еще проходят тестирование и поэтому не могут использоваться в рабочих проектах. Для подключения к этому серверу необходимо установить флаг подключаться к серверу с предварительными версиями ПО.

Регистрация

На этой странице устанавливается регистрационный ключ клиента, который используется для регистрации ядер контроллеров. Ключ выдается производителем, на каждый ключ установлено фиксированное количество контроллеров, которое можно зарегистрировать.

Основные настройки программы zWorkbench

В данном разделе настроек находятся четыре вкладки:

  • Управление проектами
  • Внешние программы
  • Среда
  • Клавиатура

Управление проектами

Открывать последний проект при запуске приложения: при запуске приложения, оно может автоматически открывать последний проект, с которым работал пользователь. Если будет отмечена галочка Создавать пустой проект, если последний отсутствует, при отсутствии последнего проекта будет создан пустой.

Место хранилища проектов: каталог по умолчанию, где хранятся проекты пользователя. Каталог можно изменить, нажав на кнопку Обзор… и выбрав новый каталог для хранения. При этом программа предложит скопировать уже существующие проекты в новый каталог.

Автосохранение: при установленном флаге Автосохранение, проект будет автоматически сохраняться через определенные промежутки времени. (Внимание! Автосохранение больших проектов может занимать достаточное время, вследствие чего может наблюдаться временное зависание программы).

Внешние программы

Здесь задается путь к программам, которые будут открывать соответствующий формат документов (в разделе проекта Документы), которые будут привязываться к проекту.

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

Чтобы выбрать программу для открытия, сделайте двойной клик мышью по нужной строке в колонке Расширение и выберите исполняемый файл нужной для открытия программы:

Также можно вписать путь к исполняемому файлу нужной для открытия программы в колонке Путь к программе:

Среда

Здесь задается язык программы, а так же параметры, влияющие на поведение панели вывода сообщений:

Клавиатура

Здесь назначаются горячие клавиши. Помимо этого, в этом разделе можно сохранять конфигурацию горячих клавиш, экспортируя их и затем импортируя на новом компьютере:

Горячие клавиши по умолчанию отображены в таблицах ниже:

Помощь в программе zWorkbench

В данном разделе можно добавлять и удалять файлы документации для программы. Изначально в программу встроена Система помощи zWorkbench, файл которой находится по пути «/doc/ztools.qch» относительно директории программы (например, для Windows: «C:Program Files (x86)ZWorkbenchdocztools.qch»).

Расширения программы zWorkbench

В данном разделе происходит управление плагинами (расширениями). Некоторые из них необходимы для поддержки определенных типов контроллеров. Некоторые из них добавляют программе дополнительный функционал.

Для того, чтобы активировать или деактивировать расширения, нужно поставить или убрать галочку в соответствующих строках и перезагрузить программу:

Если плагин отмечен зеленой галочкой, то он исправен. Если название имеет серый цвет, значит плагин невозможно отключить.

Если плагин отмечен желтым треугольником, то его версия является несовместимой с версией программы.

Язык программирования FBD

Редактор в zWorkbench предназначен для визуального построения сложных разветвлённых алгоритмов на языке функциональных блоков (Function Block Diagram, далее — FBD).

FBD — это графический язык программирования стандарта МЭК 61131-3, который предназначен для программирования микропроцессорных контроллеров (в частном случае — контроллеров Zentec). При программировании используются наборы библиотечных блоков и макросы (собственные блоки, также написанные на FBD). Любой FBD блок — это подпрограмма, функция или функциональный блок (И, ИЛИ, НЕ, триггеры, таймеры, математические операции и др.).

Общий принцип работы FBD

FBD-программа — это программа для контроллера, создаваемая в FBD-редакторе.Программа, написанная на языке FBD представляет собой выражение, составленное графически из отдельных элементов. К выходу блока подключается следующий блок, образуя цепь. Внутри цепи блоки выполняются строго в порядке их соединения. Результат вычисления цепи записывается во внутреннюю переменную, либо подается на выход ПЛК.

Программа, написанная на языке FBD представляет собой выражение, составленное графически из отдельных элементов. К выходу блока подключается следующий блок, образуя цепь. Внутри цепи блоки выполняются строго в порядке их соединения. Результат вычисления цепи записывается во внутреннюю переменную, либо подается на выход ПЛК.

Пример программы в Редакторе:

Пример программы: значение переменной Var1 умножить на значение переменной Var2; к произведению прибавить значение переменной Var3; полученный результат записать в переменную result.

Основные функции редактора

Редактор в zWorkbench предоставляет разработчику FBD программ обширный набор библиотек, инструментов и интерактивных систем, которые в совокупности обеспечивают выполнение следующих функций:

  1. Визуальное проектирование программы для контроллеров Zentec:
    • выбор и установка на сцену функциональных блоков;
    • изменение свойств блоков и свойств входов-выходов;
    • трассировка связей между блоками;
    • ручное и автоматическое распределение переменных в памяти контроллера;
    • рисование на поле программы примитивов (эллипс, линия, прямоугольник);
    • вставка текстовых комментариев.
  2. Симуляция и отладка FBD программы:
    • проверка программы на содержание ошибок с выдачей результатов проверки в окно Сообщения;
    • симуляция на ПК без подключенного контроллера;
    • отладка сетей, виртуализация реальных сетей с неограниченным количеством узлов;
    • смешанная отладка — подключение к симулятору реальных приборов, реальных и виртуальных сетей в любых сочетаниях;
    • отладка в симуляторе и контроллере по шагам;
    • отладка в симуляторе и контроллере по точкам остановки и событиям;
    • установка констант на входы блоков «на лету».
  3. Поиск и диагностика:
    • поиск и подключение к сети контроллеров, даже при наличие мастера сети;
    • остановка мастера сети и подключение к нему;
    • идентификация контроллера: номер в сети, модель контроллера, версия программного обеспечения контроллера;
    • обновление и восстановление программного обеспечения контроллера.
  4. Сервисные функции:
    • копирование, вставка, отмена/повтор действий, масштабирование сцены;
    • навигатор проекта;
    • проектирование штампов и рамок, их вставка в печатные формы, автоматическая нумерация листов проекта;
    • печать всего проекта или его части;
    • создание цветовых схем;
    • отладка и проектирование в многооконном режиме;
    • экспорт переменных в XML формат.

Порядок выполнения блоков

Программа, создаваемая пользователем, представляет собой набор схем. В самом простом случае это одна схема. Схема указывает, каким образом выходы устройства зависят от внешних и внутренних данных. Каждая схема состоит из блоков и связей между блоками, а также имеет набор переменных величин, читаемых и записываемых схемой. Блоки выполняют функции взаимодействия между своими входами и выходами: от элементарных логических И, ИЛИ, НЕ до очень сложных. Некоторые виды блоков, кроме вычисления значений выходов, выполняют специальные задачи, например, блок Запись в переменную изменяет значение переменной, присваивая ей значение, полученное на входе. Выполнение блоков происходит последовательно, в порядке следования связей от выходов к входам, т.е. любой блок получает на входы обновленные значения, предварительно рассчитанные соответствующими блоками.

От визуального расположения блоков на схеме их выполнение не зависит, т.е. пользователь может располагать блоки так, как ему удобнее их видеть:

Диаграмма 1 и Диаграмма 2 будут исполняться абсолютно одинаково:

  • сначала будет обработан Счетчик;
  • затем Детектор фронта;
  • и последним будет обработан RS триггер.

Циклические связи

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

Циклические связи не допускаются, т.к. они приводят к возможности неоднократного изменения значений входов-выходов блоков, т.е. гарантированное завершение выполнения схемы с обновлением значений входов-выходов невозможно.

На диаграмме 1 показана циклическая связь:

Такие связи недопустимы.

Правило запрета циклических связей имеет исключение: есть блоки (например, Счетчики), внутри которых выходы не имеют прямой связи с входами. Такие блоки, если они включены в циклическую связь, разрывают ее внутри себя, поэтому такая связь разрешена:

На Диаграмме 1 и 2 показаны блоки с псевдоциклическими связями.

Главный цикл, статическая и временная память

Шаги схемы выполняются в бесконечном цикле – главном цикле программы устройства.

Данные от последних (в последовательности выполнения) блоков могут быть прочитаны первыми блоками, если эти данные будут записаны в переменные схемы. Переменные, создаваемые пользователем, и специальные переменные устройства являются памятью, хранимой в течение всего времени работы устройства. Далее эту память будем называть «статической».

Для значений входов и выходов блоков, память устройства выделяется и освобождается по мере необходимости, — это «временная» память. Выполнение схемы в целом с точки зрения внешних систем является неделимым шагом, т.е. невозможно прочитать из устройства или увидеть на его выходах данные, обновленные частично. Если какие-либо блоки прерывают выполнение схемы, это прерывание гарантированно выполняется до записи в статическую память.

Операции обновления значений физических входов-выходов устройства и обмена данными по каналам связи выполняются между шагами выполнения схемы:

На Диаграмме 1 показан полный цикл исполнения программы на примере кнопки-защелки: каждое нажатие кнопки DIN1 меняет состояние выхода DOUT1. Блоки пронумерованы в порядке их исполнения.

Рассмотрим полный цикл работы примера по шагам:

  • опрос состояния DIN1. Передача результата с выхода DIN1 на вход D блока Raise;
  • операция в блоке Raise. Передача результата с выхода F на вход C блока D-trigger. Так же чтение блока D (переменная). Передача результата с выхода блока D на вход D блока D-trigger;
  • операция в блоке D-trigger. Чтение выходов Q и ~Q;
  • запись результата в блок DOUT1 и переменную D.

Таким образом, переменная D «разрывает» циклическую связь.

Если рассмотреть пошаговую работу схемы в симуляторе, то при «включении питания» (начало симуляции) в первом шаге в переменной D записано значение 0:

Во втором шаге значение переменной меняется:

Другими словами, с момента команды записи до момента изменения переменной проходит один цикл программы, то есть происходит задержка на один цикл.

Цикл программы и Базовый таймер

Шаги схемы выполняются гарантированно, т.е. значения выходов гарантированно поступают на соответствующие входы; блоки гарантированно выполняют расчеты. В отличие от электронных схем, где каждый элемент имеет временные задержки в работе и может пропустить значения входов, схема FBD работает в общем дискретном времени, где каждый шаг полного расчета схемы соответствует одной единице дискретного времени. А каждая единица дискретного времени схемы соответствует какому-то интервалу физического времени.

Длительность этого интервала зависит только от скорости работы устройства, настройка такого соотношения в системе Редактора отсутствует. Устройство выполняет шаги с максимально возможной скоростью.

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

Гарантия срабатывания блоков в каждом шаге позволяет использовать следующую особенность: многие логические значения выходов, сигнализирующие о возникновении события, работают по принципу «одиночного срабатывания». Это значит, что такой выход выдает 0 в течение большинства шагов выполнения схемы. Только при возникновении события он выдает 1, в течение только одного шага выполнения схемы, а на следующих шагах снова выдается 0. Такая одиночная 1 только в течение одного шага (в течение одной единицы дискретного времени) обязательно будет обработана соответствующими блоками. Само собой разумеется, что если такой выход подключить к физическому дискретному выходу устройства – он будет включаться на время 1 шага схемы, который может длиться от 100 мксек до 1000 мсек, что неправильно, т.к. внешние системы не должны быть зависимы от времени выполнения шага устройства. Поведение таких выходов удобно тем, что для них передний фронт и уровень – одно и то же, при необходимости иметь передний фронт можно просто использовать этот выход, без анализа фронта.

Для синхронизации с реальным временем используется блок Таймер, работа которого определяется Базовым таймером системы. Любое количество блоков Таймер используют один аппаратный Базовый таймер устройства, настраиваемый на определенный постоянный интервал срабатывания. Базовый таймер — это интервал времени, за который гарантированно успевает выполниться вся программа контроллера без учета оптимизации.

Важно понимать:

  • цикл системы всегда динамический. Система внутренней оптимизации будет стремиться выполнить программу за минимальное время;
  • базовый таймер задает интервал времени, которому кратны все пользовательские таймеры;
  • если время динамического цикла выполнения программы будет больше времени базового таймера, то устройство выдаст ошибку.

Работа системы внутренней оптимизации

Работа системы внутренней оптимизации основана на динамическом предоставлении ресурсов для выполнения задачи.

Следующий пример поясняет работу этой системы.

Например, необходимо однократно считать данные из подчиненного устройства.

На Диаграмме 1 представлена реализация этой задачи:

Блок чтения сетевой переменной 0h производит чтение, так как локальная переменная rdy имеет значение по умолчанию 1. После успешного чтения на выходе rdy блока чтения появляется уровень лог. 1, который записывает в локальную переменную rdy уровень лог. 0 (константу 0 на входе переменной). В следующем цикле переменная rdy запрещает работу блока чтения переменной 0h. Это состояние будет до следующего включения питания контроллера.

Очевидно, что данный пример работает несколько циклов после включения питания, а далее состояние блоков не меняется вплоть до сброса питания контроллера. Система внутренней оптимизации анализирует состояние входов и выходов этой программы и, после считывания переменной 0h исключает всю цепь из цикла программы. Остается только значение переменной SET, которое было получено при считывании переменной 0h.

Типы данных. Преобразование данных

Пользователю предоставляется возможность оперировать со следующими типами данных:

Тип данныхРазмер, бит

min

значение

max

значение

Цветовая маркировка

по-умолчанию

1Логический (bool)101красный
2Без знака целый 1 байт (Uint8)80255синий
3Без знака целый 2 байт (Uint16)16065535синий
4Без знака целый 4 байт (Uint32)3204294967295синий
5Со знаком целый 1 байт (Sint8)8-128+127зеленый
6Со знаком целый 2 байт (Sint16)16-32768+32767зеленый
7Со знаком целый 4 байт (Sint32)32-2147483648+2147483647зеленый
8Дробный 4 байт (float)32любое рациональное числожелтый

Типы данных выбираются в свойствах блоков, входов/выходов макросов и переменных:

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

Макросы

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

В таком случае в проекте имеется несколько схем, одна из которых является главной. Главная схема выполняется, выполняя другие (макросные) схемы при наличии в главной схеме соответствующих (макросных) блоков, ссылающихся на макросные схемы. Макросные схемы также могут содержать макросные блоки, т.е. макросы могут быть вложены. Однако вложение схемы в саму себя (рекурсия), прямая или косвенная, не допускается. Макросная схема также может содержать переменные, хранимые постоянно (постоянную память макроса). Если макросная схема использована в проекте неоднократно (имеется несколько блоков, использующих ее), каждый макросный блок имеет независимый от других блоков набор переменных. Логика работы устройства не изменится, если какие-либо блоки схемы перенести в макросную схему, и заменить их в главной схеме на макросный блок, или наоборот – заменить макросный блок на блоки, содержащиеся в макросной схеме. От такой замены может незначительно измениться только скорость работы схемы и количество использованной памяти устройства, из-за различно выполняемой оптимизации схемы.

Работа с постоянной памятью контроллера (ППЗУ)

Все переменные проекта располагаются в области оперативной памяти (ОЗУ) и имеют свойство Сохранение в ПЗУ. Физически, при активном свойстве, данные из ОЗУ копируется (записывается) в ПЗУ.

Запись переменных в энергонезависимую память выполняется устройством между шагами расчета схемы. Если переменная в ОЗУ изменяется с высокой частотой, а устройство будет производить запись безусловно, то из-за ограниченного количества циклов перезаписи, ППЗУ будет испорчено через некоторое время работы.

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

На данной диаграмме показан способ записи значения из ОЗУ в ПЗУ. Когда в переменную Set_temp мастер сети произведет запись, на выходе rdy появится фронт, который будет подан на вход en блока EEPROM. Этот сигнал произведет инициализацию записи всей памяти устройства.

Пользователь должен рассчитать максимальную частоту записи переменных, исходя из количества циклов перезаписи ППЗУ. Событие записи изменившегося значения переменной не должно происходить с большей частотой.

Перед записью переменной ее значение считывается из ППЗУзапись выполняется только при неравенстве значений в ОЗУ и ППЗУ.

FBD-программа

FBD-программа, кроме набора схем, содержит опции, управляющие ее выполнением и работой контроллера в целом. Для просмотра и изменения опций нужно нажать правую кнопку мыши на соответствующем элементе дерева проекта и выбрать пункт Свойства в выпадающем меню.

Имеются следующие опции:

Группа опций «Сохранение переменных в ПЗУ»

Сохранение переменных в ПЗУ (Постоянное Запоминающее Устройство, электрически стираемая энергонезависимая память) используется для хранения измененных значений переменных при выключенном питании контроллера. В связи с тем, что количество циклов перезаписи ПЗУ ограничено (обычно от 10^6. до 10^12 раз), и что в течение записи происходит пауза в выполнении программы, запись нельзя выполнять постоянно. Если запись выполнять несвоевременно, то при неожиданном выключении питания контроллера последние изменения значений переменных будут утеряны. Поэтому пользователь должен создать в FBD-схеме блок Запись переменных и подать на него логический сигнал о команде выполнения записи. Другой вариант — установка опций автоматического выполнения записи при определенных событиях.

Флажок «Периодически:» и соответствующее ему количество секунд

При установке этого флажка FBD-программа будет автоматически выполнять запись в ПЗУ всех переменных, у которых включена опция Сохранение в ПЗУ, периодически с указанным периодом. Таким образом гарантируется, что при выключении питания контроллера будут сохранены значения на какой-то момент времени, и этот момент был не больше, чем указанное время до выключения питания. При создании новой программы этот флажок включен, период записи установлен 10 секунд.

Флажок «Периодически:» и соответствующее ему количество секунд

При установке этого флажка FBD-программа будет автоматически выполнять запись в ПЗУ всех переменных, у которых включена опция Сохранение в ПЗУ, периодически с указанным периодом. Таким образом гарантируется, что при выключении питания контроллера будут сохранены значения на какой-то момент времени, и этот момент был не больше, чем указанное время до выключения питания. При создании новой программы этот флажок включен, период записи установлен 10 секунд.

Флажок «По команде записи по сети»

При установке этого флажка FBD-программа будет автоматически выполнять запись в ПЗУ всех переменных, у которых включена опция Сохранение в ПЗУ, непосредственно после записи любой из таких переменных через сетевой интерфейс контроллера. Эта опция позволяет сохранять значения переменных, если они изменяются только через сетевой интерфейс. Изменения переменных, вызванные непосредственно из FBD-программы контроллера, с помощью этой опции могут быть записаны только случайно, при команде записи по сети другой переменной. Внимание! Включение этого флажка может привести к ошибке выполнения программы, если через сетевой интерфейс будут поступать команды записи переменных с высокой частотой. При создании новой программы этот флажок включен.

Связи FBD

Связи используются для подключения входов и выходов блоков.

В программе существует 2 вида связей:

обычная связь — обозначается линией между элементами:

именованная связь – обозначается флажками с именем связи напротив выхода и входов:

На ножку выхода можно добавить неограниченное количество связей. Связи, выходящие из одного выхода, имеют одинаковое имя. Ответвления линий этих связей друг от друга обозначаются точками. Ко входу можно подключить только одну связь. Связь не может существовать без соединения с блоками (т.е. не может висеть в воздухе).

Создание обычной связи

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

Создание именованной связи

Для создания именованной связи кликните левой кнопкой мыши на выход, одновременно удерживая кнопку Shift на клавиатуре. Программа перейдет в режим создания именованной связи, на что будет указывать специфический вид курсора. После этого можно можно, кликая на входы, создавать последовательно несколько именованных связей, идущих из одного выхода. Для отмены режима создания именованной связи нажмите кнопку Esc или кликните правой кнопкой мыши в любом месте схемы. Начать построение именованной связи можно только с выхода.

Редактирование связи

Переключение вида связей производится командами «Простая связь» и «Именованная связь». Для быстрого поиска начала и конца связи, в случае когда они удалены на большое расстояние друг от друга, можно использовать команды В конец и В начало. Команда В начало выделяет выход, от которого начинается связь и помещает его, по возможности, в центр экрана. Команда В конец выделяет вход, к которому подключена связь, и помещает его так-же в центр экрана. Если на схеме выделены несколько связей, начинающиеся от одного выхода, то команда В конец будет по циклу перебирать все входы, к которым подключены эти связи.

Расположение линий обычной связи можно изменять с помощью мыши. Для этого подведите указатель мыши к горизонтальной или вертикальной линии связи и, когда он примет характерный вид, можно перемещать участки линий по горизонтали или вертикали. Линии, прилегающие непосредственно ко входу и выходу не перемещаются. В обычной связи можно добавлять сегменты (дополнительные изгибы) путем выбора команды Добавить сегмент в контекстном меню связи. Имя связи можно изменить в редакторе свойств. Эта команда действует для всех связей, подключенных к одному выходу. Для закрепления/снятия закрепления связи надо вызвать контекстное меню связи (правой кнопкой мыши) и нажать закрепить/освободить

На панели управления «Связи» можно включить и выключить трассировку именованных связей, для этого выделить связь и нажать на кнопку показать трассировку.

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

Осциллограф FBD

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

Щупы

Для начала работы необходимо на выбранном выходе установить щуп.

Выход блока, на котором установлен щуп, будет выделен утолщенной линией синего цвета.

Список всех щупов можно увидеть в плавающей панели Осциллограф.

Удалить щуп можно с помощью команды Удалить щуп в контекстном меню выхода или в списке щупов в панели.

Внимание: Необходимо иметь ввиду, что щупы не копируются вместе с блоками, после их удаления невозможно выполнить отмену.

Щуп можно устанавливать на выход блока любой FBD-схемы, за исключением схемы, принадлежащей экрану.

Каждый раз при запуске симуляции или отладки в устройстве создается новая сессия осциллографа. Для каждого щупа создается отдельный график.

При повторном запуске симуляции или отладки создается новая сессия, старые сессии доступны для просмотра.

Для просмотра сессий необходимо открыть главное окно осциллографа, нажав на кнопку в панели инструментов:

Главное окно осциллографа состоит из двух частей: список сессий (слева) и графическое отображение (справа) выбранной сессии:

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

Если запускалась симуляция шаблона, то будет открыта программа шаблона. Если запускалась симуляция или отладка из карты сети, то произойдет переход к экземпляру контроллера.

Внимание: Сессии и данные в них не сохраняются при закрытии проекта!!!

Графическое отображение данных

Каждый щуп в окне осциллографа представлен в виде одного или нескольких графиков. Если щуп находится в макросе, а сам макрос включен в схему несколько раз, то для каждого экземпляра макроса создается отдельный график. Такие графики расположены в одной строке.

Горизонтальная ось отображает такты работы FBD программы, начинается всегда с 0, она одна для всех графиков. Вертикальная ось отображает значения выхода, к которому подключен щуп. Начальный диапазон вертикальной оси от 0 до 1. По мере поступления данных диапазон шкалы будет расширяться в нужную сторону.

Порядок и расположение графиков можно поменять в любой момент времени. Для этого необходимо выделить вертикальную ось, кликнуть по ней правой кнопкой мыши и выбрать в контекстном меню соответствующую команду.

Контекстное меню вертикальной оси графика:

  • Свойства — вызов диспетчера свойств. То же выполняется при двойном клике на вертикальной оси.
  • Удалить график — удаление графика, команда доступна только в завершенной сессии.
  • Перейти — переход к FBD-программе, на которой расположен щуп. При переходе в рабочем режиме будет открыт соответствующий макрос, к которому относиться этот экземпляр графика.
  • Переместить вверх — перемещает выделенный график вверх на одну строку.
  • Объединить с верхним — объединяет выделенный график с соседним верхним.
  • Объединить с нижним — объединяет выделенный график с соседним нижним.
  • Переместить вниз — перемещает выделенный график вниз на одну строку.

Внимание: Объединение графиков с логическим (булевым) типом данных и других (числовых) типов данных не поддерживается.

В свойствах графика можно установить имя и цвет. Первоначально имя графика соответствует имени щупа, цвет генерируется автоматически.

Перемещение и масштабирование графиков производится с помощью мыши. Для масштабирования используется колесико мыши с нажатой кнопкой Ctrl. Для ускоренной перемотки можно использовать кнопки, расположенные под горизонтальной осью.

Кнопки << и >> перемещают в начало и в конец оси. Кнопки < и > прокручивают на одну страницу влево или вправо.

Для анализа значений, полученных в один момент времени, можно использовать маркер на горизонтальной оси. Числовые значения графиков на выбранный момент времени отображаются на вертикальных осях.

Установить его можно кликнув в нужное место горизонтальной оси. Также можно ввести номер такта в контекстном меню Номер такта маркера горизонтальной оси.

Контекстное меню горизонтальной оси тактов:

  • Показать/Спрятать маркер позволяет включить/отключить отображение маркера
  • Номер такта маркера установка значения такта для маркера
  • Автопрокрутка — включает режим автопрокрутки графиков до последнего известного значения

Табличное отображение данных

Нажатие на кнопку Таблица откроет окно с табличными данными. Первые две колонки — Такт и Время, далее идут колонки данных. Такты, в которых нет изменений ни на одном графике, в табличном виде отсутствуют.

Для экспорта таблицы в текстовый формат CSV нажмите кнопку Экспорт… и укажите имя файла.

Отладка в устройстве

Работа осциллографа в режиме отладки в устройстве практически ничем не отличается от режима симуляции. Единственное отличие состоит в том, что, в случае медленного канала связи, физически невозможно читать все имеющиеся данные из устройства. В этом случае на графике будут появляться области, выделенные красным цветом. В этих областях значения на выходах не достоверны, поэтому отобразить их невозможно. Для ускорения связи в настройке последовательного порта можно увеличить скорость передачи (baud rate), а также уменьшить задержки (таймауты).

Внимание: Работа устройства при отладке с включенным осциллографом немного отличается от работы при выключенном осциллографе — для уменьшения потерь данных при чтении из устройства выполняется снижение частоты (скорости) выполнения программы. Однако, логика работы программы и скорость обработки данных в таком случае, как правило, не меняется, за некоторыми редкими исключениями (см. ниже). При выключенном осциллографе скорость выполнения программы ограничена только аппаратными возможностями устройства, а при включенном — ограничена максимум 3 тактами за 1 интервал времени базового таймера (см. соотв. настройку FBD-программы). Следует понимать, что при отсутствии такого ограничения контроллеры не имеют достаточного объема ОЗУ для накопления данных, а используемые каналы связи не способны передать все имеющиеся данные, даже в самом лучшем случае.

Замедление скорости работы программы может влиять на логику работы только в случае, если в проекте измерение времени специально сделано от счетчика тактов, т.е. реальное время перепутано со скоростью выполнения программы. В любом случае, использование счетчика тактов — грубая ошибка проектирования! Всю логику работы нужно делать основанной только на объективные события, например срабатывание таймера!

 

 

Отладка в режиме симуляции FBD

Возможности симуляции и отладки FBD программы:

  • проверка программы на содержание ошибок с выдачей результатов проверки в окно «Сообщения»;
  • симуляция на ПК без подключенного контроллера;
  • отладка в симуляторе по шагам;
  • отладка в симуляторе в режиме реального времени.

Для перехода в режим симуляции контроллер должен находиться на карте сети и ему должен быть присвоен шаблон программы (подробнее: Загрузка программ в контроллер и создание сети, режим моста).

Переход в режим симуляции:

Это интерактивный инструмент, позволяющий быстро и наглядно отлаживать программу на имитированном контроллере, на входы которого можно подавать соответствующие значения. Для запуска симуляции необходимо иметь скомпилированную корректную программу, поэтому при запуске симуляции первым делом запускается компиляция. А в случае успешной компиляции вы переходите в режим симуляции.

Имитация работы реального контроллера:

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

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

На этой вкладке производится настройка параметров загрузки и отладки:

Установка точек отладки на все выходы — опция оптимизации отладочных программ. Во время отладки, при установленном признаке на все выходы по всей схеме устанавливаются отладочные точки — специализированные сетевые переменные. В связи с этим резко возрастает объем памяти программ контроллера в режиме отладки.

Некоторые контроллеры Zentec обладают небольшим объемом памяти. Может случиться так, что объем памяти, занимаемый отладочной программой будет превышен. В этом случае можно снять признак Установка точек отладки на все выходы и расставить отладочные точки вручную на необходимые для отладки блоки в схеме. Для этого выбираем требуемый выход, который мы хотим наблюдать в отладке и нажимаем F9. В этом случае отладка пройдет в несколько этапов, но тем не менее данный подход дает возможность использовать почти 100% памяти программ и ОЗУ.

Включение и отключение симуляции входов и выходов производится в свойствах блока входа или выхода на сцене. Этим управляет параметр Симуляция. Это свойство позволяет отключать физические входы или выходы контроллера и управлять ими через панель симулятора:

Все созданные вручную точки отладки появляются в специальной панели Точки отладки.

Чтобы показать панель Точки отладки, необходимо нажать правой кнопкой мыши на заголовок панели Обозреватель проекта и отметить пункт Точки отладки. При этом, активным окном должно быть окно FBD-программы:

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

Точки отладки можно удалить, временно деактивировать или перейти в выходу на схеме, который соответствует данной точке, нажав на соответствующие кнопки в панели Точки отладки.

Проверка и компиляция проекта FBD

Это мощный интерактивный инструмент, обеспечивающий 100% корректности создаваемой программы. Другими словами, можно написать любую программную абстракцию, но благодаря этому инструменту она гарантированно и корректно будет исполняться на контроллере или в симуляторе. Проверку на ошибки можно запускать вручную (кнопка Проверка). Так же проверка всегда производится перед симуляцией/компиляцией/загрузкой программы в контроллер.

В ручном режиме проверка выполняется для активной сцены/окна (например, если будет активно окно макросхемы, то проверка будет производиться только для этой схемы). Если будет активно окно главной схемы, то проверка будет производиться для всего проекта:

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

Компилятор останавливает работу при первой найденной ошибке, поэтому после исправления этой ошибки, необходимо повторно запускать компиляцию, пока компиляция не пройдет успешно.

Навигатор по проекту FBD

Навигатор по проекту служит для быстрого поиска элементов, используемых в проекте.

Навигатор состоит из:

  • списка элементов проекта;
  • строки и кнопки поиска;
  • кнопки фильтра;
  • кнопок управления списком.

Для фильтрования отображаемых элементов нажать на кнопку фильтр и выбрать элементы для отображения в списке элементов навигатора. В навигаторе отображаются только те блоки и элементы, которые включены в основную схему непосредственно или косвенно через макросы.

Макросхемы, которые присутствуют в проекте, но не включены в главную схему напрямую или косвенно не отображаются.

Навигатор по проекту и фильтр поиска:

Для поиска элементов необходимо ввести название элемента в строку поиска и нажать на кнопку Найти. Также, найденные элементы подсвечиваются светло-желтым цветом непосредственно во время набора. Если несколько элементов соответствующих критерию поиска, то переключение между ними осуществляется с нажатием кнопки поиска. При этом в окне искомый объект будет подсвечиваться желтым цветом. Поэтому рекомендуется присваивать названия блокам осознанно, дабы упростить поиск искомых объектов в последствии.

Переменные MODBUS

Элемент Переменные modbus в шаблоне контроллера, работающего в режиме главного устройства, позволяет упрощенно обращаться к переменным подчиненного контроллера.

Для каждого экземпляра подчиненного контроллера нужно добавить отдельный пункт Переменные modbus:

Редактирование списка переменных доступно вручную. Возможен импорт переменных из файла с расширением mbm. Этот файл можно получить, экспортируя сетевые переменные из любого шаблона программы.

Кроме того, при перетаскивании мышью шаблона подчиненного устройства в окно списка в список добавляются все сетевые переменные подчиненного устройства. Предполагается, что для каждого подчиненного контроллера в главном будет создаваться отдельно один или несколько списков переменных, поэтому настройки адреса подчиненного и другие его опции относятся к списку в целом.

Список переменных MODBUS:

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

Кроме основных свойств, аналогичных глобальным переменным, у переменных Modbus есть параметр Период. Этот параметр задается в миллисекундах и определяет частоту, с которой будет опрашиваться переменная.

Синхронизация выполняется 3 возможными способами, в зависимости от настройки Режим работы:

  1. Только запись — переменная никогда не читается из подчиненного, первоначально и при изменении значения подчиненному отправляется команда записи. При отсутствии изменений команды записи быстро прекращаются, настройка Период игнорируется.
  2. Только чтение — переменная читается из подчиненного, первоначально и далее с указанным периодом, запись в подчиненного не выполняется. Для уменьшения вероятности ошибок проектирования запрещено создавать блоки записи для переменных с этим режимом.
  3. Чтение, синхронизация изменений — переменная читается из подчиненного, так же, как в режиме «только чтение». Однако, если переменная изменяется по любой причине, кроме чтения из подчиненного, включается команда записи. Во время записи команды чтения не выполняются. В случае повторного изменения переменной, даже в процессе выполнения первоначальной записи, выполняется повторная запись, поэтому переменная может меняться с произвольной частотой. Следует понимать, что нет гарантии того, что все изменения будут успешно синхронизированы — даже при идеальном качестве связи могут встречаться противоречивые команды изменения переменной из различных программ!

Если требуется хранение переменной при выключенном питании, то для режимов 2 и 3 это должен реализовать подчиненный контроллер, а для 1 режима — главный.

Для включения/выключения и повтора команд чтения-записи в программе скрыто создаются соответствующие логические переменные, управляющие состоянием синхронизации. Собственно команды чтения-записи создаются как блоки Чтение (slave) и Запись (slave), с соответствующими логическими блоками, связанными между собой.

В случае ошибок связи с подчиненным контроллером все состояния синхронизации сбрасываются в исходное состояние — в 1 режиме включается запись, иначе включается чтение. Как следствие, при восстановлении связи переменные с 3 режимом получат значения из подчиненного, т.е. последние не записанные изменения будут потеряны.

!!!Внимание Если все переменные имеют 1 режим и меняются редко, возможна ситуация, когда в подчиненный контроллер долгое время никакие команды не отправляются. В результате, если подчиненный будет внезапно перезагружен, его переменные будут иметь ошибочные значения. Поэтому для проверки наличия связи с подчиненным рекомендуется иметь как минимум одну читаемую переменную, даже если ее значение не нужно. Тогда при ошибке чтения все переменные в режиме Только запись будут повторно записываться.

Переменные при создании команд чтения-записи автоматически группируются при наличии такой возможности при совпадении кодов команд и при последовательном расположении регистров/коилов. При группировке учитывается максимальный размер буфера приема-передачи в главном и подчиненном устройствах. Таким образом, при последовательном расположении регистров и небольшом количестве переменных может быть единственная команда чтения и единственная команда записи. В текущей версии такую группировку полностью отменить невозможно, а можно только разделить один элемент Переменные modbus на несколько, при этом объединение переменных выполняется отдельно в каждом списке.

Функции modbus в командах чтения выбираются в соответствии с настройкой «Тип функции чтения» и типа данных переменной. При настройке Чтение памяти, выбираются функции modbus 1 и 3, иначе 2 и 4, для логического и прочих типов данных, соответственно.

Для записи используются функции 5, 6, 15, 16, в зависимости от типа данных и количества записываемых регистров/коилов.

Для доступа к переменным из FBD-программы необходимо выделить элемент Переменные modbus, а затем перетащить переменную из панели Навигатор в окно FBD-программы. При этом появится блок, аналогичный показанному на рисунке ниже, позволяющий читать или записывать переменную, полностью аналогично блокам чтения-записи локальных и глобальных переменных.

При перетаскивании мышью элемента Переменные Modbus в FBD-программу появляется блок c таким же названием, предоставляющий доступ к управлению синхронизацией. Этот блок не обязателен, он позволяет дополнительно управлять синхронизацией при необходимости, и просматривать ее состояние.

Входы блока управления:

  • dev — адрес подчиненного устройства. Если не подключен — используется константа Адрес устройства, указанная в настройках;
  • en_read — признак разрешения команд чтения, для временного запрета команд. Если не подключен — используется 1;
  • en_write — признак разрешения команд записи, для временного запрета команд. Если не подключен — используется 1;
  • start_read — команда принудительного начала чтения всех читаемых переменных из подчиненного, дополнительно к указанным выше условиям;
  • start_write — команда принудительного начала записи всех записываемых переменных из подчиненного, дополнительно к указанным выше условиям;

Выходы блока управления:

  • reading — признак необходимости выполнения в данный момент чтения какой-либо переменной;
  • writing — признак необходимости выполнения в данный момент записи какой-либо переменной;
  • is_err — признак получения ошибки связи в подчиненным в данном такте;
  • err — код ошибки, полученный в данном такте;

Глобальные переменные FBD

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

В верхней части окна расположена панель инструментов со следующими кнопками:

  • Добавить — добавление новой переменной (если выделена группа, новая переменная будет добавлена в нее);
  • Добавить группу — добавление группы переменных для удобства представления или хранения данных в виде структуры:
  • Удалить — удаляет переменную, если выбрана переменная, или группу со всеми переменными, входящими в нее;
  • Переименовать — команда устанавливает имя группе переменных по определенному шаблону, заданному в диалоговом окне (см. описание ниже);
  • Свойства — открытие диспетчера свойств для одной или нескольких выделенных переменных;
  • Кнопка со стрелками — служит для быстрого сворачивания/разворачивания групп.
  • Импорт — импорт переменных;
  • Экспорт — экспорт всех переменных;

Экспорт переменных производится в двух форматах: xml и csv. При экспорте в XML создается файл специального формата, который потом можно импортировать в список глобальных переменных другого шаблона. При таком импорте все переменные, хранящиеся в импортируемом файле будут добавлены к существующим переменным. При экспорте в формате csv создается тестовый файл, в котором в табличном виде представлены все переменные и свойства. Просмотр этого файла возможен в любом тестовом редакторе или в Excel. Импорт из формата csv невозможен.

Двойным щелчком мыши по строке с переменной (или группой) открывается окно Свойств переменной, где можно задать ее название, тип и т.д.:

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

Для добавления глобальной переменной на сцену FBD-программы необходимо выделить элемент проекта Глобальные переменные, затем перетащить нужную переменную из области в нижней части Обозревателя проекта в нужное место на сцене:

Свойства блока для глобальной переменной аналогичны свойствам блока локальной переменной, за исключением одного параметра — Показывать полный путь. Если этот флаг установлен, то к названию переменной внутри блока будет дописано имя группы, в которой она находится.

Если глобальная переменная имеет размер массива 1, то блок чтения/записи будет таким же, как и для локальной переменной. Если установить значение размера массива больше единицы (или если переменная находится в группе со значением размера массива больше единицы), то у блока появляется набор входов, для выбора индекса. Эти входы обозначаются с0с1 и т.д.

Многомерный массив возникает в том случае, если и у переменной и у группы, к которой эта переменная принадлежит, свойство Размер массива больше единицы. Вход c0 относится к индексу переменной, вход с1 — индекс группы.

Массивы и группы нужны для упрощения создания переменных для однотипных объектов. Возьмем, к примеру, несколько одинаковых контроллеров, у которых есть набор переменных: температура, влажность, содержание CO2. Контроллер, который является мастером для них должен собирать эту информацию и затем отображать на индикаторе или хранить для дальнейшего использования. С помощью групп и массивов это можно сделать следующим образом:

1. Создаем группу глобальных переменных;

2. Устанавливаем группе размер массива (например, 5):

3. Создаем схему для чтения данных из устройства и записи значений в глобальные переменные:

Переменная Address содержит адрес устройства. Этот адрес подается на блок чтения Modbus и на индексный вход блока записи переменной.

4. Теперь можно читать данные из этих переменных с помощью блока чтения, подавая на вход индекса константу или динамическое значение:

Переменные FBD

В любую схему можно добавить локальные переменные (или глобальные). Область видимости этих переменных ограничена текущей схемой. На рисунке показан внешний вид окна локальных переменных. В верхней части находится панель для управления и редактирования переменных:

Для создания переменной нажать на кнопку +. Переменная будет добавлена в список и откроется Редактор свойств переменной:

В данном пункте устанавливаются требуемые параметры переменной — название, тип данных, константность, значение по умолчанию, доступность по modbus (права доступа, адрес) сохранение в ПЗУ (адрес в ПЗУ). Название переменной – текстовый идентификатор переменной, который отображается на схеме в блоках чтения и записей переменных. Рекомендуется использовать в именах только латинские символы или цифры.

Тип данных – тип данных переменной. Выбирается из следующего списка:

  • Логический;
  • Беззнаковый целый 1-байт;
  • Беззнаковый целый 2-байт;
  • Беззнаковый целый 4-байт;
  • Знаковый целый 1-байт;
  • Знаковый целый 2-байт;
  • Знаковый целый 4-байт;
  • Дробный 4-байт.

Начальное значение – начальное значение переменной.

Константа – этот флаг означает, что переменная является константой.

Запись в ПЗУ – этот флаг указывает, что переменная должна сохранять свое значение в ПЗУ и восстанавливать его после включения контроллера. Адрес ячейки ПЗУ, по которому сохраняется переменная, устанавливаются в соответствующем списке.

Сетевой доступ – настройка доступа к переменной по сети. Доступны три варианта этого параметра:

  • Нет: Переменная не доступна по сети;
  • Чтение: Переменная доступна только для чтения по сети;
  • Чтение/Запись: Переменная доступна для чтения и записи по сети.

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

Для фильтрации переменных по параметру нужно выделить ячейку таблицы, и нажать на кнопку. На таблицу будет наложен фильтр с текущим значением, которое было в выделенной ячейки. Например, если выбрать ячейку таблицы Modbus, в которой стоит отмеченный флажок, то при фильтрации будут отображаться только те переменные, у которых стоит флаг доступа по Modbus.

Фильтр может использоваться многократно (с наложением). Для удаления фильтров необходимо нажать кнопку «Удалить фильтр»

Для удаления переменной используется кнопка delete на клавиатуре или команда Удалить.

Для использования переменной в проекте нужно на схеме поместить блок работы с переменной. Для этого нужно перетащить переменную левой кнопкой мыши в окно схемы.

Блок чтения переменной:

Блок записи переменной:

Блок условной записи переменной:

Блок записи переменной по Modbus:

По умолчанию создается блок Чтения переменной. В любой момент можно изменить привязку блока на другую переменную, выбрав нужную из списка. Существует четыре вида блоков переменной:

  • Чтение – значение переменной считывается;
  • Запись – значение, поданное на вход блока, записывается в переменную;
  • Условная запись — значение, поданное на вход блока, записывается в переменную, если на входе en установлена 1;
  • Запись по Modbus — этот блок позволяет, в режиме подчиненного устройства Modbus, обработать команду записи, полученную от главного. На выходе val появляется (на время одного цикла) значение, полученное в команде записи, а на выходе rdy — признак получения команды записи. При отсутствии команды на этих выходах всегда присутствует 0. Значения выходов блока зависят только от главного устройства! Для записи пришедшего значения необходимо осуществить преобразования как на рисунке внизу. Т.е. по сути, это та же условная запись переменной.

Блок записи по Modbus:

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

По сути, это та же условная запись переменной. Но! Данный блок объединяет в себе три операции: блок чтения (если выход VAL получает значение в режиме подчиненного устройства Modbus, то на выходе RDY устанавливается логическое значение 1, признак получения команды записи), блок условной записи (на вход VAL записывается обработанное значение, при условии, что вход EN получил логическое значение 1) и блок вывода ошибки ER.

Обработка значения переменной выполняется согласно поставленной задаче.

Пример: записать в переменную VAR4 значение X, если на выход VAL получено X < 20. Во-первых, сравниваем X с числом 20 (блок сравнения), во-вторых, чтобы запись значения произошла, нужно, чтобы на входе EN была установлена 1. Для этого выход блока сравнения и выход RDY объединим блоком AND, а выход блока AND соединим со входом EN, значение на выходе VAL соединим со входом VAL:

Итак, если два условия истинны, то в переменную VAR4 будет записано значение, полученное на выходе VAL. Но есть еще блок вывода ошибки ER. Если значение, поданное на выход VAL не удовлетворяет условию блока сравнения, то на выходе блока AND установится 0, и вход EN получит 0, а вход ER должен выдать номер ошибки, почему не произведена запись в переменную. Ошибка 03 – неверные данные запроса:

При получении на вход IF 1 блок Условие подаст на вход ER 0, в противном случае вход ER получит номер ошибки3.

Внимание! Не следует путать значение, полученное в команде записи, со значением переменной! Выход «val» не выдает значение переменной.

Изменить тип блока, если к нему подключена хоть одна связь невозможно. Если переменную перетащить на ножку блока или макроса, то связь образуется автоматически и блок принимает нужны тип, в зависимости от того, на вход или выход перетаскивали переменную.

Еще одной важной особенностью блоков записи в переменную является приоритет записи, устанавливаемый в свойствах блока. Данное свойство позволяет писать значения в одну и ту же переменную при разных условиях и из разных мест в программе. Чем выше значение, тем выше приоритет, т.е. блок записи с приоритетом 100 имеет больший приоритет записи в переменную чем блок записи со значением 10. Это значит, что если одновременно придет сигнал записи новых значений в данные блоки, то в переменную запишется значение из блока записи с приоритетом 100.

Настройка сети WiFi

В этом разделе описаны способы настройки беспроводного подключения для контроллеров, которые его поддерживают.

Подключение панели в домашнюю сеть WiFi можно выполнить двумя способами: с помощью браузера или используя мобильное приложение.

Настройка с помощью браузера

Рассмотрим первый способ — с использованием смартфона. Все процедуры, описанные ниже, можно производить в любом браузере на ноутбуке, планшете или стационарном компьютере, имеющем WiFi-адаптер. Если компьютер подключен только к проводной сети и не имеет WiFi-адаптера, этот способ не подходит.

Если контроллер ни разу не был включен в сеть WiFi или не нашел ранее настроенную сеть, то он переключается в режим точки доступа WiFi. Это происходит через 1-3 минуты после включения питания контроллера, если в его системном меню не включить режим Быстрая настройка WiFi-сети (в т.ч. если ничего не нажимать на клавиатуре контроллера). Имя этой точки доступа имеет следующий вид – Zentec MMMM xxxxxxxxxxxxxxx, где xxxxxxxxxxxxxxx – 15 символов, уникальные для каждого экземпляра панели, MMMM — тип контроллера. Например для панели Z031 имя сети может выглядит следующим образом — Zentec Z031 240FC44569АА58B. Для начала работы необходимо подключиться к контроллеру как к точке доступа.

Для этого на смартфоне нужно зайти в настройки WiFi сетей и выбрать нужную сеть

Для подключения к сети контроллера потребуется ввести пароль — 12345678. Этот пароль одинаков для всех контроллеров.

После подключения к сети контроллера можно получить доступ к странице настройки контроллера по адресу 192.168.1.1 из любого браузера.

Логин всегда admin, пароль — это код сопряжения. Для получения этого кода открываем любой браузер и в строке подключения набираем адрес 192.168.1.1/pairing.

В случае успешного выполнения команды будет отображена страница, показанная ниже. А на экране контроллера будет выведен мастер пароль из нескольких цифр.

После успешного входа отобразится главная страница настроек контроллера

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

На странице настроек сети находятся следующие основные параметры:

  • Имя сети – имя сети к которой будет подключаться панель;
  • Пароль – пароль для этой сети;
  • Сетевой идентификатор – имя контроллера в сети;
  • Пароль для подключения к панели – мастер-пароль, с помощью которого происходит доступ к текущим настройкам;

Для подключения контроллера к своей сети WiFi нужно ввести ее имя и пароль, и нажать кнопку Сохранить в правом верхнем углу. После применения параметров контроллер перезагрузится и подключится к указанной WiFi-сети. Если при вводе имени сети или пароля была допущена ошибка или сеть с таким именем недоступна, контроллер опять станет точкой доступа.

!!!!Внимание!!!. При установки нового пароля для подключения необходимо иметь ввиду, что у некоторых контроллеров есть ограничение по длине при его выводе на индикатор. Например панель Z031 не может отобразить пароль больше чем 4 цифры. Поэтому при вводе пароля больше чем 4 цифры он не будет целиком показан на дисплее. В этом случае необходимо запомнить новый пароль в надежном месте.

Настройка с помощью мобильного приложения

Настройку с помощью мобильного приложения рассмотрим на примере программы zTunes, которая доступна в магазине GooglePlay.

На стартовой странице приложения доступны три варианта подключения к контроллеру:

  • Контроллер в текущей сети — поиск контроллера производится в сети WiFi, к которой подключен смартфон.
  • Контроллер в режиме точки доступа — поиск контроллеров, которые находятся в режиме точки доступа.
  • Подключение контроллера к текущей сети — подключение контроллера в текущую сеть смартфона в упрощенном режиме.

Первый вариант подключения является самым простым, при его выборе происходит сканирование сети WiFi, к которой подключен смартфон в настоящий момент.

Второй вариант подключения похож на вариант, описанный в предыдущем разделе. При выборе этого режима программа выдаст список всех обнаруженных контроллеров, которые находятся в режиме точки доступа.

Выбираем требуемый контроллер и нажимаем кнопку Далее>>>, после чего смартфон начнет подключение к этому контроллеру. Обратите внимание, что после подключения может быть недоступен интернет, так как не все телефоны могут поддерживать одновременно подключение по WiFi и мобильному интернету. На рисунке ниже показан вариант подключения. Однако надо иметь ввиду, что не все смартфоны корректно поддерживают такой режим работы. В зависимости от версии ОС Android, порядок подключения и сообщений может меняться.

В случае успешного подключения откроется страница настроек.

Для подключения контроллера к сети WiFi нужно задать имя сети и ее пароль — в группе WiFi — пункт SSID нажать кнопку Изменить и выбрать сеть из списка предложенных. Если сети нет в данный момент – нажать кнопку Другая сеть и ввести имя сети вручную.

После того, как имя сети было установлено, нажать кнопку Далее>>> для записи изменений в контроллер.

При сохранении параметров контроллер будет перезагружен. В случае успешного сохранения и правильного ввода параметров контроллер подключится к этой сети.

Подключение контроллера к текущей сети

Этот вариант настройки сети контроллера позволяет произвести ее без непосредственного подключения к контроллеру и изменения его настроек.

Перед тем как производить подключение, необходимо перевести контроллер в специальный режим работы Быстрая настройка WiFi-сети.

После включения указанного режима контроллер будет в этом режиме не менее 5 минут.

Затем, выбрать Подключение контроллера к текущей сети в приложении zTunes. Подключение контроллера будет производится к той сети, к которой в данный момент подключен смартфон. Поэтому имя сети вводить не нужно, необходимо ввести только пароль сети.

После ввода пароля нажать кнопку Далее>>> и ожидать окончания подключения.

Процесс настройки займет около минуты.

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

Остались вопросы?

Мы всегда готовы помочь и ответить на все ваши вопросы
Связаться

Свяжитесь с нами

Позвоните нам или задайте вопрос, а мы постараемся ответить на него в течение 24 часов в рабочие дни.