Cоединение отсутствует...

Научно-Производственное Объединение «Каскад-ГРУП»

428000, Россия, Чувашская Республика, г. Чебоксары, пр. Машиностроителей, д. 1 КГ

Телефон: (8352) 22-34-32,
Факс: (8352) 63-48-38

E-mail: abc@kaskad-asu.com

Порядок настройки опроса контроллеров Контраст КР500 в KLogic

В статье описывается порядок настройки конфигурации KLogic для опроса контроллера Контраст и передачи параметров на верхний уровень по протоколу БК-500К.

Общие сведения

Система программирования контроллеров (СПК) KLogic является инструментом технологического программирования контроллеров в составе автоматизированных систем управления технологическими процессами, оперативно-диспетчерского управления, систем коммерческого и технического учета ресурсов.

KLogic состоит из исполнительной системы (ИС), выполняющейся в контроллере, и инструментальной среды разработки (KLogic IDE), функционирующей на платформе Win32. Исполнительная система KLogic совместно с конфигурацией, создаваемой инструментальной средой, представляет собой целевую задачу, записываемую в контроллер. В конфигурацию входят технологические программы пользователя и параметры функционирования всех задач. Создание технологических программ, загрузка конфигурации в контроллер, отладка и мониторинг производятся из инструментальной среды разработки.

KLogic IDE предоставляет пользователю удобный и интуитивно понятный интерфейс для настройки контроллера, работающего под управлением исполнительной системы (ИС) KLogic. Среда позволяет настраивать список подключенного к контроллеру набора устройств и модулей, а также разрабатывать технологическую программу для контроллера с использованием функциональных блоков. Кроме набора предопределенных алгоритмов имеется возможность реализовывать собственные алгоритмы на двух языках программирования, максимально приближенных по синтаксису к языкам Pascal, C. Помимо этого, при помощи инструментальной системы, можно изменить коммуникационные настройки и время контроллера, выполнить сервисные функции (удаление конфигурации, перезагрузка контроллера и прочее).

Взаимодействие инструментальной и исполнительной системы KLogic осуществляется по каналам последовательной связи (COM-порт) и Ethernet с помощью специализированного набора функций, основанных на коммуникационном протоколе Modbus. Возможность интеграции контроллеров KLogic в другие системы верхнего уровня обеспечивает поставляющийся в комплекте OPC-сервер.

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

Задача: Организовать взаимодействие KLogic с контроллером Контраст через протокол БК-500К.

 

Создание CSV файла для конфигурации контроллера

CSV (Comma-Separated Values) — это простой текстовый формат файлов для хранения табличных данных. 

Пример CSV файла

1.  ID (krSource)
Уникальный идентификатор переменной. Присваивается разработчиком технологической программы контроллера для удобства группировки переменных по типу, назначению, объектному ориентированию и т.п.
Необходимость заполнения: да.
Тип поля: числовой. 
Максимальная длина: 128 символов.

2. Поз. по проекту/Группа (krCipher1)
Наименование объекта автоматизации (группы), к которому относится переменная, например, проектное обозначение. Данная часть наименования переменной служит для группировки переменных, относящихся к одному объекту автоматизации. В последующем наименование является именем группы в сервере доступа к данным (СДД) и паспортах. Подобная группировка переменных одного объекта позволяет применение шаблонных привязок в визуализации, для быстрой массовой привязки однотипных объектов, таких как датчик, задвижка, насос, станция и т.п. 
Необходимость заполнения: да.
Тип поля: символьный, числовой, символьно-числовой. 
Допустимые символы: A-Z, 0-9, «_». Кириллица не поддерживается, формируется ошибка наименования.
Максимальная длина: 128 символов.

3. Параметр (krCipher2)    
Наименование переменной, характеристика (свойство) объекта автоматизации. Любое принятое наименование переменной, может полностью совпадать с наименованием переменной в программе контроллера. Данная часть наименования переменной отображается внутри группы СДД и паспортов, наименование которой обозначено в «krCipher1». Для применения шаблонов визуализации данная часть наименования переменной должна быть одинаковой для однотипных объектов автоматизации.
Необходимость заполнения: да.
Тип поля: символьный, числовой, символьно-числовой. 
Допустимые символы: A-Z, 0-9, «_». Кириллица не поддерживается, формируется ошибка наименования.
Максимальная длина: 128 символов.

4. Описание (krDescription)
Описание переменной. Любой текст/комментарий, описывающий переменную.
Необходимость заполнения: нет.
Тип поля: символьный, числовой, символьно-числовой. 
Допустимые символы: нет ограничений.
Максимальная длина: 255 символов.

5. Тип (krType)
Тип переменной. Для корректной работы должен полностью совпадать с типом переменной, обозначенным в программе «ПроТекст» и/или «ФАБЛ».
Необходимость заполнения: да.
Тип поля: символьный. 
Допустимые значения поля: ЦК, ЦС, ЦД, ВЩ, ДП.

6. Ед.изм (krMeasure)
Единица измерения для переменной, при наличии.
Необходимость заполнения: нет.
Тип поля: символьный, числовой, символьно-числовой. 
Допустимые символы: нет ограничений.
Максимальная длина: 128 символов.

7. Признак чтения (krFlagRead)
Область памяти контроллера КР-500(М) из которой производится чтение переменной.
Необходимость заполнения: да.
Тип поля: символьный. 
Допустимые значения поля: 
 «F» – Переменная алгоритма ИНР/ИПВ ФАБЛ;
 «I» – Переменная входа алгоблока ФАБЛ (в перспективе);
 «O» – Переменная выхода алгоблока ФАБЛ (в перспективе);
 «P» – числовая переменная ПроТекст (в перспективе);
 «D» – дискретная переменная ПроТекст (в перспективе).

8. Адрес № ИНР (krNumINR)
Номер ИНР/ИПВ блока ФАБЛ (не путать с порядковым номером блока) в случае если поле krFlagRead = «F».
Необходимость заполнения: да.
Тип поля: цифровой. 
Допустимый диапазон: 1-32.

9. Адрес № входа ИНР (krNumInINR)
Номер входа блока ФАБЛ, в случае если поле krFlagRead = «F».
Необходимость заполнения: да.
Тип поля: цифровой. 
Допустимый диапазон: 1-128.

10. Адрес № бита входа ИНР (krNumBitInINR)
Номер бита. Применимо только для дискретных переменных (ДП), если чтение бита производится из упакованного значения ДС или ДД, в случае если krFlagRead = «F».
Необходимость заполнения: только для упакованных дискретных переменных.
Тип поля: цифровой. 
Допустимый диапазон: 1-32.

11. Признак записи (krFlagWrite)
Признак записи переменной. Область памяти контроллера КР-500(М) в которую производится запись измененного со SCADA-уровня значения переменной.
Необходимость заполнения: нет.
Тип поля: символьный. 
Допустимые значения поля: 
 «» – Переменная только на чтение;
 «F» – Переменная алгоритма ИНР/ИПВ ФАБЛ;
 «P» – числовая переменная ПроТекст;
 «D» – дискретная переменная ПроТекст.

12. Адрес 1-1 (krAdr11)
Первая часть адреса для записи переменной.
Порядковый номер ИНР/ИПВ блока ФАБЛ, в случае если поле krFlagWrite = «F».
Тип числовой переменной ПроТекст: «ЦК», «ЦС», «ЦД», «ВЩ», в случае если поле krFlagWrite = «P».
krAdr11 = «ДП», в случае если поле krFlagWrite = «D».
Необходимость заполнения: да, если поле krFlagWrite имеет значение.
Тип поля: зависит от значения поля krFlagWrite.

13. Адрес 1-2 (krAdr12)
Вторая часть адреса для записи переменной.
Номер входа алгоблока, в случае если поле krFlagWrite = «F».
Номер (адрес) переменной ПроТекст, в случае если поле krFlagWrite = «P» или krFlagWrite = «D».
Необходимость заполнения: да, если поле krFlagWrite имеет значение.
Тип поля: цифровой.

Добавление контроллера, настройка связи с ним

Открыть инструментальную систему KLogic можно либо отдельно — через проводник (или другой файловый менеджер), запустив на выполнение файл KLogic.exe, либо из проекта — через Конфигуратор (пункт Настройка контроллеров на вкладке Настройка проекта).

В любом случае открывается главное окно KLogic IDE, которое имеет следующий вид:

Главное окно KLogic IDE

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

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

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

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

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

Добавление контроллера

После добавления контроллера необходимо его настроить. Для этого предназначена панель свойств, которая появляется в правой части экрана при выделении контроллера в дереве проекта. На панели свойств есть две вкладки: «Связь с контроллером» и «Контроллер».

Вкладка «Связь с контроллером» содержит несколько панелей, которые позволяют изменить общие настройки контроллера, а также настройки связи с ним.

В панели «Общие настройки контроллера» для удобства работы с конфигурацией можно задать имя контроллера.

Далее необходимо настроить связь с контроллером (панель «Настройка связи»). Для этого необходимо выбрать тип связи, в данном случае Ethernet и задать IP-адрес контроллера, который в нашем случае является 127.0.0.1 для опроса через службу виртуального контроллера. 

Теперь можно сохранить проект с помощью кнопки на панели инструментов, пункта меню Файл/Сохранить, или сочетания клавиш Ctrl+S. Необходимо иметь в виду, что конфигурация KLogic состоит из нескольких файлов: общего файла проекта Имя_проекта.KLD и файлов конфигурации контроллеров {GUID}.xml, где GUID – уникальный идентификатор контроллера.

На этом первый этап закончен.

Настройка службы виртуального контроллера

Опрос контроллера Siemens ET 200SP будет происходить через службу виртуального контроллера. Для этого необходимо в Конфигураторе выбрать раздел Утилиты и выбрать пункт Управление виртуальными контроллерами.

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

Окно управления службами Виртуального контроллера KLogicPLC

Рассмотрим настройки:

  • Тип запуска – Автоматически, вручную и отключена.
  • UDP-порт - сетевой идентификатор, используемый для организации обмена данными между исполнительной системой KLogic и виртуальным контроллером.
  • IEC 104 порт - сетевой идентификатор, используемый для организации обмена данными между исполнительной системой KLogic и оборудованием верхнего уровня (АРМ диспетчера, SCADA-системой) в соответствии со стандартом МЭК 60870-5-104.
  • Приоритет процесса – реального времени, высокий, выше среднего, обычный, ниже среднего и низкий.

Для связи контроллера, который мы настроили в KLogic необходимо выставить соответствующий порт. Поскольку по умолчанию порт у контроллера 0x7653 (в шестнадцатеричной системе), поэтому выставляем UDP-порт 30291. Запускаем службу через соответствующую кнопку "Запустить".

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

 

Добавление протокола опроса Контроллер Контраст и его настройка

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

Протоколы разделяются на две категории:

  • протокол опроса внутренних модулей
  • протокол опроса внешних модулей

Добавляем протокол из группы специальных протоколов. Для этого используем контекстное меню строки "Каналы ввода-вывода" в дереве конфигурации либо кнопку на панели инструментов конфигурации.

Добавление протокола

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

1. Общие настройки

  • Имя объекта – Логическое имя данного устройства в проекте. Используется для удобства оператора и программиста.
  • Комментарий – Поле для дополнительных заметок (например, физическое расположение, назначение).
  • ID протокола 65 – Уникальный идентификатор, который говорит программному обеспечению, какой именно драйвер связи использовать для обмена с этим типом контроллеров. "65" - это внутренний код для протокола "Контраст (Волмаг)".

2. Свойства объекта

  • Период выполнения задачи – Это цикл опроса контроллера. Значение 5000 означает, что программа будет пытаться читать и записывать данные в контроллер каждые 5 секунд (5000 миллисекунд).
  • Тип коммуникационной связи: 0 – COM порт, 1 - Ethernet. В зависимости от выбора настраиваются остальные свойства протокола.
  • Номер COM порта – Номер COM порта для связи с устройствами, если тип коммуникационной связи выбран COM порт (если выбран Ethernet, то строка игнорируется)
  • Скорость обмена, бит/c – Количество передаваемых битов в секунду 6 - 9600 бит/c, 7 – 19200 бит/с (по умолчанию уже задана верная скорость 9 – 57600 бит/с в нашем примере).
  • Множитель – стандартный межбайтовый интервал для указанной скорости обмена увеличивается путем умножения на указанный множитель.

3. Настройки сети (Ethernet)

  • IP адрес: 192.168.1.103 – Сетевой адрес контроллера в сети. Это основной параметр, по которому программа находит устройство в сети. Убедитесь, что контроллер имеет именно этот IP-адрес и что ПК с этой программой находится в той же подсети (например, 192.168.1.xxx).
  • Номер порта: 7000 – Сетевой порт. Аналогично тому, как веб-серверы используют порт 80, контроллеры используют свои специфичные порты. 7000 – порт для TCP, 7001 – порт для UDP.
  • Тип сокета TCP/UDP – При использовании Ethernet необходимо выбрать 0 – TCP или 1 - UDP.
  • Тайм-аут по присоединению – Время (в секундах), в течение которого программа будет ждать установления TCP-соединения с контроллером по Ethernet. 
  • Тайм-аут по обмену: 1000 – Время (в миллисекундах), в течение которого программа ждет ответа от контроллера после отправки запроса. Если ответ не пришел за 1 секунду (1000 мс), транзакция считается неудачной.
  • Закрывать сокет – Закрытие сокета после каждого цикла опроса при связи по Ethernet.

4. Настройки обработки ошибок

  • Число повторных транзакций – Количество попыток повторно отправить запрос, если предыдущий завершился ошибкой (например, сработал тайм-аут). В данном случае при ошибке будет сделана одна дополнительная попытка.

Среди всех перечисленных настроек в нашем случае мы меняем только тип коммуникационной связи на единицу и задаем IP-адрес.

Свойства объекта

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

Поиск контроллеров Контраст

Окно успешного создания файла

Теперь вы можете добавить универсальный модуль через правую кнопку мыши на протокол Контроллер Контраст и выбрать Добавить модуль УСО – Контроллер Контраст – Наименование вашего io файла. Если вашего io файла в списке нет, то необходимо перезайти в KLogic и попробовать еще раз добавить модуль.

Добавление универсального модуля

Теперь следует определить свойства модуля (контроллера):

  1. Сетевой номер – Номер контроллера в сети Магистр, если она сформирована. Каждый контроллер в сети Магистр должен иметь свой уникальный номер. По умолчанию он равен 1. 
  2. Тайм-аут между транзакциями – Время в миллисекундах задержки между транзакциями (запрос-ответ). По умолчанию 20 мс.
  3. Синхронизация времени – Установка этого флага предполагает синхронизацию времени контроллера и системных часов сервера, если рассогласование между ними составляет от 5 секунд до 5 минут.
  4. Пароль – Используется при обмене с контроллером по порту Ethernet, если этот пароль установлен в контроллере. Длина пароля не может превышать 16 символов. Остальные настройки модуля (контроллера) относятся к резервированных комплектам контроллеров и линий связи по каналам Ethernet.
  5. Резервирование – Флаг резервированного комплекта («горячее» резервирование контроллера). Создание резервированного комплекса описано в документе «РЭ Технические арактеристики.pdf» от производителя оборудования.
  6. Режим работы – Протокол может работать в трех режимах: 0 – резервирование, то есть опрашивается один из контроллеров, который на данный момент времени является «активным» или «управляющим». 1 – опрашивается только основной контроллер, 2 – запрос параметров только у резервного контроллера. Далее необходимо указать параметры соединений в случае резервирования контроллеров или линий связи по портам Ethernet:
  7. IP адрес Eth1р – IP адрес резервного контроллера.
  8. Порт Eth1р – номер порта резервного контроллера.
  9. Тип сокета TCP/UDP Eth1р – тип сокета резервного контроллера: 0 – TCP, 1 – UDP.  Если контроллеры имеют два порта Ethernet, и они используются для обмена с протоколом, то необходимо выставить флаг использования второго канала Ethernet и указать параметры этих портов для организации резервирования каналов связи:
  10. Второй Ethernet – флаг наличия второго канала и его использования.
  11. IP адрес Eth2 - IP адрес второго канала Ethernet основного контроллера.
  12. Порт Eth2 - порт второго канала Ethernet основного контроллера.
  13. Тип сокета TCP/UDP Eth2 - тип сокета второго канала Ethernet основного контроллера.
  14. IP адрес Eth2р - IP адрес второго канала Ethernet резервного контроллера.
  15. Порт Eth2р - порт второго канала Ethernet резервного контроллера.
  16. Тип сокета TCP/UDP Eth2р - тип сокета второго канала Ethernet резервного контроллера.

Когда определены все настройки протокола и контроллера, можно вызвать кнопкой «Добавить/Удалить каналы» окно с деревом тегов, доступных для чтения и записи. Теги сформированы ранее при запросе конфигурации контроллера в io файле. Отмечаем нужные теги и добавляем их в конфигурацию KLogic. Полученную конфигурацию загружаем в контроллер (ИС) и начинаем опрос значений тегов.

С помощью протокола Контраст можно получить значения следующих сигналов контроллера КР-500М:

  • Код типа контроллера, по этому коду тип контроллера лучше запросить у производителя.
  • Таймер календарь, т.е. дату и время с точностью до секунды, установленных в контроллере, и их разницу со временем в ИС KLogic.
  • Режим работы контроллера, где определены сигналы, показывающие, в каком состоянии находится контроллер.
  • Конфигурация, где определена общая структура и состав конфигурации, а именно «Число алгоблоков» количество занятых алгоблоков в ФАБЛ программе, «Алгоритмы ОКР» битовые признаки наличия алгоритмов ОКР, «Алгоритмы ИНР» битовые признаки наличия алгоритмов ИНР и ИПВ, заказ переменных Протекстпрограммы.
  • Неисправности контроллера. Вычитывается буфер ошибок, в зависимости от типа контроллера он может содержать от 9 до 16 последних неисправностей. На данный момент сконфигурировано первые 6, но можно показать весь буфер. Поддерживается функция очистки буфера. Каждая неисправность выводится с ее номером, типом (ошибка или отказ), уточнением места неисправности, временем ее возникновения и пропажи. Получить буфер неисправностей с другого контроллера через сеть Магистр не представляется возможным.
  • Контура регулирования. Запрашиваются сигналы контуров регулирования с возможностью ими управлять.
  • Параметры ИНР/ИПВ. В каждом алгоритме ИНР/ИПВ может находиться до 126 сигналов, каждый из которых может содержать до 32 дискретных сигналов, или 4х однобайтных сигналов, или двух двухбайтных сигналов, или одного 4х байтного. Все сигналы каждого ИНР/ИПВ считываются с контроллера одной транзакцией в каждом цикле работы контроллера. Следует отметить, что считывание сигналов алгоритмов ИНР/ИПВ через сеть Магистр у другого контроллера ограничивает число получаемых сигналов значением 30.
  • Программный задатчик. Запрашиваются сигналы алгоритма Программный Задатчик с возможностью некоторыми управлять.
  • Параметры алгоблоков. Для каждого алгоблока есть возможность запросить его входа (параметры настройки) и его выхода. Параметры настройки, в зависимости от их типа, можно изменять, т.е. записывать в любой момент времени.
  • Числовые и групповые переменные. Эти сигналы относятся к переменным программы Протекст. Сюда входят целые (короткие, стандартные, длинные), вещественные, временные и групповые дискретные с возможностью изменения их значений.
  • Дискретные переменные и ключи. Данные сигналы относятся к дискретным переменным, ключам таймеров, секций и блоков Протекст программы. В эти сигналы также можно записывать новые значения.

В нашем случае настройки остаются по умолчанию. После настройки необходимо добавить каналы в модуль в правой части окна нажатием на кнопку Добавить/удалить каналы. Далее выбираем какие группы необходимо добавить и нажимаем "ОК".

Добавление/удаление каналов

После добавления каналы появляются в дереве конфигурации. Теперь необходимо сохранить (Ctrl + S) и запустить опрос (Ctrl+F10). 

Запуск опроса

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

Окно опроса контроллера

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

Опрос БК-500К

На этом настройка опроса контроллеров Контраст в KLogic на примере Контроллера Контраст БК-500К завершена. Благодарим за внимание и надеемся, что представленные материалы позволят сделать работу с системой KLogic максимально эффективной и комфортной.

Читайте также