Введение

Рис. 1. Lectus Modbus OPC/DDE сервер

Lectus Modbus OPC/DDE сервер предназначен для получения данных из Modbus сети и предоставления их OPC или DDE клиентам. OPC клиентом может выступать любая SCADA система: Intouch, Genesis, TraceMode и др. Любой ОРС-клиент может обмениваться данными с любым ОРС сервером вне зависимости от специфики устройства, для которого разрабатывался конкретный ОРС сервер. DDE клиентом может выступать любая программа поддерживающая обмен через DDE. Например, Microsoft Excel и др.

Стандарт ОРС разрабатывает независимая организация - ОРС Foundation ОРС Foundation, среди членов которой все известные компании-производители SCADA-систем и оборудования для систем промышленной автоматизации. В мире насчитывается уже несколько тысяч ОРС серверов.

Данная версия ОРС сервера поддерживает стандарт OPC Data Access Custom 2.05A и OPC Historical Data Access 1.20. OPC сервер может работать в режиме "Master" и "Slave". Поддерживается работа в режиме как локального, так и удаленного сервера. Это означает, что приложения-клиенты могут обращаться к серверу расположенному, как на том же компьютере, так и на других компьютерах сети.


Описание

Lectus Modbus OPC/DDE сервер обладает следующими характеристиками:
  • реализация функциональности OPC DA 2.05A, OPC HDA 1.20 и DDE сервера;
  • связь с Modbus RTU/ASCII сетью по выделенной линии, используя последовательный интерфейс RS-232C или RS-485;
  • связь через TCP/IP (Modbus TCP или Modbus RTU/ASCII через TCP);
  • связь через коммутируемые телефонные линии;
  • работа в режиме "Master" и "Slave";
  • чтение текущих данных (функции: 1,2,3,4,5,6,15,16);
  • чтение истории (функция 20);
  • формирование любого Modbus запроса;
  • использование встроенного SQL сервера (Firebird Embedded);
  • использование любого SQL сервера (через ADO);
  • получение данных с других OPC DA серверов;
  • получение данных из реестра;
  • фильтрация данных от Modbus устройства для выделения Modbus пакета;
  • ограничение максимальной длины Modbus пакета;
  • конфигурирование адресного пространства доступных серверу переменных;
  • доступные типы данных: byte, word, double word, short integer, small integer, integer, single float, double float, currency, date, boolean, BCD;
  • вычисление значения переменной по заданной формуле;
  • масштабирование значения переменной аналогового типа;
  • экспортирование данных истории в Excel или любой SQL сервер;
  • динамическое чтение/запись свойств опрашиваемых переменных;
  • симулирование значения переменной (константа, случайное, счетчик);
  • мониторинг значений переменных;
  • удаленный доступ к серверу;
  • конфигурирование с наследованием настроек;
  • мониторинг качества связи;
  • определение приоритета опроса;
  • определение перечислений;
  • вывод диагностических сообщений.

Требования к конфигурации компьютера

Совместимость: Windows2000, WindowsXP, Windows 2003, Windows Vista.

Минимальные программно-аппаратные ресурсы:

  • Операционная система: Windows2000;
  • Процессор: Celeron 300 Mhz;
  • Оперативная память: 64 Mb.

Рекомендуемые программно-аппаратные ресурсы:

  • Операционная система: WindowsXP;
  • Процессор: Celeron 600 Mhz;
  • Оперативная память:128 Mb.

Для удаленного доступа на компьютерах должен быть установлен Microsoft DCOM (входит в комплект всех последних версий Windows).


Быстрый старт

Приведем пример работы с Lectus Modbus OPC/DDE сервером.

Задача: отследить состояние двигателя. К двигателю подключен управляющий контроллер связь с которым осуществляется по выделенной линии RS-232C при помощи протокола Modbus RTU. Адрес контроллера равен 1. Связь осуществляется через порт COM1.

Параметры работы двигателя:

  • напряжение по фазе А - адрес 010A(hex), чтение - функция 4;
  • ток по фазе А - адрес 0501(hex), чтение - функция 4;
  • уставка перегруза - адрес 0412(hex), чтение - функция 3, запись - функция 16.
  • состояние двигателя(0-ОСТАНОВ/1-РАБОТА) - адрес 0201(hex), чтение - функция 1, запись - функция 5;

Порядок работы:

  1. Запускаем программу Lectus Modbus OPC/DDE сервер;
  2. Удаляем ненужные узлы и добавляем узел:
    • Имя узла - Motor;
    • Описание - Двигатель.
  3. В узел "Motor" добавляем узел:
    • Имя узла - Tek;
    • Описание - Текущие параметры;
    • Подключение - прямое подключение, COM1;
    • Адрес устройства - 1;
    • Функция чтения - 4.
  4. В узел "Motor" добавляем узел:
    • Имя узла - Ust;
    • Описание - Уставки;
    • Подключение - прямое подключение, COM1;
    • Адрес устройства - 1;
    • Функция чтения - 3;
    • Функция записи - 16.
  5. В узел "Motor" добавляем узел:
    • Имя узла - Control;
    • Описание - Управление;
    • Подключение - прямое подключение, COM1;
    • Адрес устройства - 1;
    • Функция чтения - 1;
    • Функция записи - 5.
  6. В узел "Tek" добавляем типизированную переменную:
    • Имя переменной - Ua;
    • Описание - Напряжение по фазе А;
    • Тип данных - Word;
    • Адрес переменной - 10A;
  7. В узел "Tek" добавляем типизированную переменную:
    • Имя переменной - Ia;
    • Описание - Ток по фазе А;
    • Тип данных - Word;
    • Адрес переменной - 501;
  8. В узел "Ust" добавляем типизированную переменную:
    • Имя переменной - HighI;
    • Описание - Перегруз;
    • Тип данных - Word;
    • Адрес переменной - 412;
  9. В узел "Control" добавляем типизированную переменную:
    • Имя переменной - State;
    • Описание - Состояние;
    • Тип данных - Word;
    • Адрес переменной - 201;
  10. Устанавливаем параметры COM порта;
  11. Сохраняем текущую конфигурацию как "Example.cfg"

    12. В результате получаем:

    Рис. 2. Пример конфигурации

  12. Подключаемся любым OPC клиентом (например, любой SCADA-системой) и читаем значения переменных: Motor.Tek.Ua, Motor.Tek.Ia, Motor.Ust.HighI, Motor.Control.State;

    13.

    Рис. 3. Пример работы

    Можно менять уставку перегруза двигателя записывая ее значение в переменную Motor.Ust.HighI. Для запуска двигателя необходимо записать 1 в переменную Motor.Control.State.


Обзор технологии OPC

Назначение OPC

Технология связывания и внедрения объектов для систем промышленной автоматизации OPC (OLE for Process Control) предназначена для обеспечения универсального механизма обмена данными между датчиками, исполнительными механизмами, контроллерами, устройствами связи с объектом и системами представления технологической информации, оперативного диспетчерского управления, а также системами управления базами данных. Производители аппартных средств, пользуясь спецификацией OPC, имеют возможность разрабатывать OPC-сервер для обеспечения единственного и наиболее общего способа организации доступа к данным и передачи в адрес приложений-клиентов различных производителей программного обеспечения для промышленной автоматизации.

OPC основана на модели распределенных компонентных объектов Microsoft DCOM и устанавливает требования к классам объектов доступа к данным и их специализированным (custom) интерфейсам для использования разработчиками клиентских и серверных приложений. Для обмена данными с приложениями-клиентами, разработка которых ведется на языках типа MS Visual Basic, а также с популярными приложениями типа Excel, спецификация OPC содержит дополнительные (но необязательные для реализации) требования к интерфейсу OLE-автоматизации (OLE-Automation).

Структура взаимодействия между приложениями-клиентами и серверами OPC различных производителей показана на рисунке:.

Рис. 4. Взаимодействия между приложениями-клиентами и OPC-серверами

Опираясь на объектную технологию COM/DCOM, стандарт OPC фиксирует определенную модель взаимодействия между клиентом и сервером.

Базовым понятием этой модели является элемент данных (Item). Каждый элемент данных имееет значение, время последнего обновления (timestamp) и признак качества, определяющий степень достоверности значения. Значение может быть практически любого скалярного типа - булево, целое, плавающее с точкой и т.п. - или строкой (так называемый OLEVARIANT). Время представляется со 100-наносекундной точностью (FILETIME Win32 API). Реальная точность измерения времени обычно бывает хуже и, в общем случае, зависит от реализации сервера и аппаратуры. Качество - это код содержащий в себе грубую оценку - UNCERTAIN, GOOD и BAD (не определено, хорошее и плохое), а на случай плохой - еще и расшифровку, например QUAL_SENSOR_FAILURE - неисправность датчика.

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

Элементы в группе, таким образом, - это своего рода клиентские ссылки на некие реальные переменные (тэги), находящиеся на сервере или в физическом устройстве. Понятие тэга спецификацией OPC не определяется, но подразумевается неявно. Элементы в группу клиент добавляет по имени, и эти имена являются именами соответствующих тэгов. Клиент может либо знать нужные имена заранее, либо запросить список имен тэгов у сервера. Для запроса имен тэгов служит интерфейс IOPCBrowseServerAddressSpace, с помощью которого сервер описывает клиенту свое "пространство имен", организованное в общем случае иерархически. Пример полного имени тэга: Устройство1.Модуль5.АналоговыйВход3. При добавлении элемента в группу клиент всегда указывает это полное имя. Заметим, что группы, создаваемые клиентом, не обязаны совпадать (и, как правило, не совпадают) с подразделами пространства имен сервера, элементы в группу добавляются в "разнобой". Единственное, что их объединяет - это общая частота обновления и синхронность отправки клиенту.

Наконец, на верхней ступеньке иерархии понятий находится сам OPC-сервер. Из всех перечисленных (OPC-группа, OPC-элемент) он единственный является COM-объектом, все остальные объекты доступны через его интерфейсы, которые он предоставляет клиенту.

Установление соединения между клиентом и сервером на одном компьютере

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

Установление соединения между клиентом и удаленным сервером

Для работы в сети (клиент и сервер на разных компьютерах) необходимо присутствие в сети хотя бы одной станции с установленной Windows NT (Server или Workstation). Станция с Windows NT используется в качестве сервера авторизации и аутентификации, при этом сам OPC-сервер может располагаться как на ней, так и на другой сетевой станции. Перед установлением соединения между приложением-клиентом и удаленным сервером следует произвести настройку системных компонентов DCOM.


Режим работы

Lectus Modbus OPC/DDE сервер может работать в разных режимах работы. Программа может работать и как Master, и как Slave. Причем может быть одновременно и Master-ом и Slave-ом. Lectus Modbus OPC/DDE сервер опрашивает Modbus контроллеры используя протоколы Modbus RTU, Modbus ASCII, Modbus TCP. OPC клиенты и SCADA системы могут подключаться к серверу как локально, так и удаленно через DCOM. Ниже перечислены возможные режимы работы сервера.

  1. Режим Master

    Рис. 5. Режим Master

    В режиме Master сервер самостоятельно опрашивает Modbus контроллеры по протоколам Modbus RTU, Modbus ASCII, Modbus TCP.

  2. Режим Slave

    Рис. 6. Режим Slave

    В режиме Slave сервер отвечает на Modbus запросы от Master-ов по протоколам Modbus RTU, Modbus ASCII, Modbus TCP.

  3. Режим Master&Slave

    Рис. 7. Режим Master&Slave

    В режиме Master&Slave сервер может как опрашивать Modbus контроллеры по протоколам Modbus RTU, Modbus ASCII, Modbus TCP, так и отвечать на Modbus запросы от Master-ов.

  4. Режим удаленного подключения Master&Slave

    Рис. 8. Режим Master&Slave

    В режиме удаленного подключения Master&Slave один сервер работает в режиме Master&Slave, а второй сервер осуществляет удаленное подключение к первому с помощью Modbus TCP или модемного подключения. Данный режим можно использовать для получения данных с удаленных точек доступа.


Главное окно программы

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

Рис. 9. Главное окно

Главное окно программы состоит из следующих частей:
1. меню
2. панель инструментов
3. дерево элементов конфигурации. В ней в виде дерева отображаются узлы и переменные входящие в конфигурацию.При каждом подключении клиента создается экземпляр сервера обслуживающего данного клиента. Экземпляр сервера в дереве идентифицируется как "OPC DA сервер", "OPC HDA сервер" или "DDE сервер" (см. рис.).
4. отображение списка переменных принадлежащих выбранному в левой части узлу дерева конфигурации или группе подключенного клиента. При выборе группы отображается: полное имя переменной, состояние переменной (активна/не активна), значение, время обновления, качество переменной, качество связи, описание. Качество связи определяет процентное соотношение верных и не верных запросов для данной переменной (100% - OK). Список доступых параметров редактируется через пункт меню "Настройка" -> "Настройка колонок".

Рис. 10. Лог приема/передачи

5. лог приема/передачи.


Панель инструментов

Панель инструментов используется для получения быстрого доступа к функциям главного меню программы:

- открытие файла конфигурации.

- сохранение текущей конфигурации.

- добавление нового узла.

- удаление выбранного узла.

- добавление новой переменной.

- удаление выбранной переменной.

- изменить свойства выбранного узла или переменной.

- остановить/запустить работу сервера.

- остановить/запустить опрос.

- рабочий режим.

- режим симуляции.

- опросить переменную или группу переменных.

- записать значение в переменную.

- изменить настройки СОМ портов.

- изменить параметры работы сервера.

- вызов справки по ОРС серверу.


Узлы

Дерево переменных имеет иерархичекую структуру. Узел [image] в дереве переменных хранит описание множества переменных, сгруппированных по некому признаку. Это может быть группа устройств, устройство, группа параметров устройства и т.д.

Дерево переменных имеет две ветки: "Текущие данные" и "Исторические данные". В ветке "Текущие данные" расположены узлы и переменные которые будут доступны OPC DA клиенту. В ветке "Исторические данные" расположены узлы и переменные которые будут доступны OPC HDA клиенту.


Modbus узел

Modbus узел является контейнером для Modbus переменных, с помощью которых происходит опрос Modbus устройств. Для добавления нового Modbus узла необходимо выделить узел-родитель в ветке «Текущие переменные». Затем либо правой кнопкой мыши вызвав контекстное меню выбрать пункт «Добавить узел», либо на панели управления нажать кнопку [image]. Каждый узел внутри своей ветви должен иметь уникальное имя.

Рис. 11. Добавление Modbus узла

В появившемся окне «Добавить узел» выбрать вкладку «Modbus» и заполнить поля значениями:

  • «Имя узла» – имя узла;
  • «Описание» – описание узла;
  • «Подключение» – тип подключения для работы в Master режиме. Может быть прямое, модемное или TCP подключение. После выбора типа подключения можно настроить настройки подключения нажав кнопку "Настройка";
  • «Тип данных» – тип получаемых данных от Modbus устройства. Могут быть текущие или исторические данные. Текущие данные - это данные получаемые при помощи функций 1,2,3,4,5,6,15,16. Исторические данные - это данные получаемые при помощи функции 20. При изменении свойств узла тип данных изменить нельзя. Тип данных можно задавать только при добавлении узла;;
  • «Период опроса» – период опроса устройства;
  • «Начальная фаза» – начальная фаза опроса устройства;
  • «Протокол» – тип используемого протокола. Может быть Modbus RTU или Modbus ASCII. Modbus RTU – стандартный бинарный протокол Modbus RTU. Modbus ASCII - стандартный текстовый протокол Modbus ASCII;
  • «Адрес устройства» – определяет MODBUS адрес устройства, с которым осуществляется связь (в десятичном виде);
  • «Функция чтения» – номер Modbus функции чтения (в десятичном виде);
  • «Функция записи» – номер Modbus функции записи (в десятичном виде);
  • «Групповой запрос» – установка пункта дает возможность отправки запроса на чтение/запись группы переменных. Сброс - предполагает чтение/запись каждой переменной в отдельном запросе.
  • «Дополнительно» – дополнительные параметры;

Параметры «Период опроса» и «Начальная фаза» определяют опрос устройства. Например «Период опроса» - 30 сек, «Начальная фаза» - 4 сек. Тогда время опроса: 00:00:04, 00:00:34, 00:01:04, 00:01:34 и т.д. В случае установки «Период опроса» - 0 сек, опрос не будет производиться.

Для добавления узла необходимо нажать кнопку «Добавить».

Для тиражирования узла необходимо нажать кнопку «Тиражировать». При этом нужно будет задать:

  • «Начальный номер» - начальный номер узла, используемый при нумерации тиражируемых узлов. Номер узла присоединяется к текущему имени узла;
  • «Кол-во» - количество тиражируемых узлов;
  • «Адрес устройства. Шаг» - шаг изменения Modbus адреса устройства при тиражировании узла.

Настройка подключения

Кнопка «Настройка ...» группы «Подключение» предназначена редактирования настроек выбраного типа подключения.

Для прямого подключения необходимо задать номер COM порта к которому подключено Modbus устройства через интерфейс RS-232C или RS-485.

Рис. 12. Настройка прямого подключения

Для модемного подключения необходимо задать номер COM порта к которому подключен модем, дополнительные команды инициализации и номер телефона.

Рис. 13. Настройка модемного подключения

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

Примеры команд инициализации:

  • ATP
  • AT&D0S0=1S9=40S10=240*N8

Номер телефона определяет последовательность набора номера, включая модификаторы набора определенные для данного модема. Например:

  • Т - тоновый набор,
  • P - импульсный набор,
  • W - ждать наборного тона,
  • @ - ждать ответной паузы,
  • ! - ожидание,
  • R - возобновить режим ответа,
  • S - набрать хранимый номер,
  • / - ждать 0,125 секунды,
  • ; - вернуться в командный режим,
  • , - ждать S8 секунд.
Примеры номера телефона:
  • +4951234567
  • (495)123-45-67
  • T9WP8W4951234567

Для TCP подключения необходимо задать протокол, IP адрес (или DNS имя) и номер TCP порта для подключения к удаленному Modbus устройству.

Рис. 14. Настройка TCP подключения

Протокол может быть следующих видов:

  • «Modbus TCP» - стандартный протокол Modbus TCP. Описан в спецификации Modbus;
  • «Modbus через TCP» - передача через TCP по стандартному протоколу Modbus RTU/ASCII.

История

Для чтения исторических данных с помощью стандартной 20-ой Modbus функции, необходимо выбрать «Тип данных» - «История».

Рис. 15. Добавление исторического Modbus узла

Кнопка «Параметры ...» поля «Формат данных» предназначена для определения формата исторических данных.

Рис. 16. Формат исторических данных

Группа параметров «Параметры» предназначены для настройки чтения массива исторических данных:

  • «Размер физической записи истории» - размер одной исторической записи (Record) при чтении истории с помощью 20-ой функции;
  • «Номер файла (по умолчанию)» - номер файла (File number), который используется по умолчанию. Номер файла можно менять используя системную историческую переменную HISTORY_FILE_NUMBER;
  • «Номер первой записи (по умолчанию)» - номер первой записи, который используется по умолчанию. Номер первой записи можно менять используя системную историческую переменную HISTORY_FIRST_RECORD;
  • «Номер последней записи (по умолчанию)» - номер последней записи, который используется по умолчанию. Номер последней записи можно менять используя системную историческую переменную HISTORY_LAST_RECORD;

После добавления исторического Modbus узла в него автоматически добавляются системные исторические переменные, которые позволяют вручную управлять чтением истории:

  • HISTORY_FILE_NUMBER - номер файла;
  • HISTORY_FIRST_RECORD - номер первой записи;
  • HISTORY_LAST_RECORD - номер последней записи;
  • HISTORY_CURRENT_RECORD - номер текущей записи.

Группа параметров «Формат данных» предназначены для настройки формата исторических данных. Формат «Универсальный» - формат данных с фиксированной длиной записи. Данные в записи имеют строго определенный тип, размер и положение в записи. Например: тип - Word, размер - 2 байта, положение - сдвиг от начала записи 3 байта. Параметры формата «Универсальный»:

  • «Размер логической записи истории» - размер одной логической записи, т.е. записи хранящей список сгруппированых значений (обычно привязанных к одной временной метке);
  • «Использовать номер файла» - использовать номер файла (рекомендуется использовать). Если номер файла не используется, то в 20-ой команде номер первой записи может принимать более широкий диапазон значений (номер будет занимать 4 байта, вместо 2 байт).

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

Обращайтесь к разработчику и ваш формат истории будет добавлен в список поддерживаемых форматов.

Кнопка «Параметры ...» поля «Сохранение» формы добавления исторического Modbus узла, предназначена для определения параметров сохранения истории. Формат сохранения истории может быть следующих видов:

  • «Excel» - сохранение данных в Microsoft Excel. При этом Excel должен быть инсталлирован. Для сохранения в Excel нужно задать каталог хранения, способ именования файлов Excel и вставлять или нет признакм начала и конца чтения;
  • «База данных» - сохранение данных в любой базе данных (через ADO). Необходимо добавить в данный узел SQL переменную, в которой определить скрипт чтения. В скрипте чтения необходимо использовать исторические переменные, содержащиеся в данном узле.

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

Дополнительные параметры

Кнопка «Параметры ...» группы «Дополнительно» формы добавления Modbus узла предназначена для редактирования дополнительных параметров узла.

Рис. 17. Настройка дополнительных параметров

Дополнительные параметры:

  • «Slave подключение» - тип подключения для работы в Slave режиме. Может быть прямое, модемное или TCP подключение. После выбора типа подключения можно настроить настройки подключения нажав кнопку "Настройка";
  • «Порядок байт. Старшим байтом вперед» - определяет порядок данных в Modbus регистре. В стандарте Modbus - старшим байтом вперед;
  • «Порядок байт. Старшим регистром вперед» - определяет порядок данных в случае, если значение переменной разнесено на несколько регистров. Например, переменная типа float(4 байта) хранится в двух регистрах;
  • «Приоритет» - приоритет опроса переменных данного узла;
  • «Опрос при старте» - определяет опрашивать или нет переменные узла при добавлении в опрос. В дальнейшем, опрос производится в соответствии с параметрами опроса («Период опроса», «Начальная фаза»);
  • «Ретрансляция» - список промежуточных Modbus адресов при ретрансляции. Ретрансляция используется в том случае если Modbus команда перед достижением конечного адресата - устройства, проходит через ряд промежуточных устройств. Промежуточные устройства, которые осуществляют ретрансляция команды, имеют свой Modbus адрес. При получении команды на свой адрес они убирают из нее свой адрес и контрольную сумму. После этого команда передается далее. По умолчанию ретрансляция не используется.


OPC узел

OPC узел является контейнером для OPC переменных, с помощью которых происходит опрос сторонних OPC серверов. Для добавления нового OPC узла необходимо выделить узел-родитель в ветке "Текущие переменные". Затем либо правой кнопкой мыши вызвав контекстное меню выбрать пункт «Добавить узел», либо на панели управления нажать кнопку [image]. Каждый узел внутри своей ветви должен иметь уникальное имя.

Рис. 18. Добавление OPC узла

В появившемся окне «Добавить узел» выбрать вкладку «OPC» и заполнить поля значениями:

  • «Имя узла» – имя узла;
  • «Описание» – описание узла;
  • «Период опроса» – период опроса стороннего OPC сервера;
  • «Начальная фаза» – начальная фаза опроса стороннего OPC сервера;
  • «Имя компьютера» – имя компьютера в сети. Заполняется в том случае, если используется подключение к удаленному OPC серверу через DCOM;
  • «Имя OPC сервера» – имя стороннего OPC сервера;
  • «Изменение по подписке» – подписка на изменившиеся значения. Т.е. при изменеии значения переменной на стороннем OPC сервере, это значение немедленно высылается клиенту;
  • «Периодический опрос» – определяет тип опроса по периоду указанному выше. Может быть синхронным (из кэша), асинхронным;
  • «Минимальный период обновления» – минимальный период обновления данных. Задается для того чтобы при получении данных клиент не захлебывался, если идет передача большого количества данных. В случае установки 0 - период не учитывается;

Параметры «Период опроса» и «Начальная фаза» определяют опрос стороннего OPC сервера. Например «Период опроса» - 30 сек, «Начальная фаза» - 4 сек. Тогда время опроса: 12:00:04, 12:00:34, 12:01:04, 12:01:34 и т.д. В случае установки «Период опроса» - 0 сек, опрос не будет производиться.

Для добавления узла необходимо нажать кнопку «Добавить».


Реестр узел

Реестр узел является контейнером для реестр переменных, с помощью которых можно опрашивать данные из реестра. Для добавления нового реестр узла необходимо выделить узел-родитель в ветке «Текущие переменные». Затем либо правой кнопкой мыши вызвав контекстное меню выбрать пункт «Добавить узел», либо на панели управления нажать кнопку [image]. Каждый узел внутри своей ветви должен иметь уникальное имя.

Рис. 19. Добавление реестр узла

В появившемся окне «Добавить узел» выбрать вкладку «Реестр» и заполнить поля значениями:

  • «Имя узла» – имя узла;
  • «Описание» – описание узла;
  • «Период опроса» – период опроса реестра;
  • «Начальная фаза» – начальная фаза опроса реестра;
  • «Корневой узел реестра» – корневой узел реестра. Например: HKEY_LOCAL_MACHINE;
  • «Имя ключа реестра» – имя ключа реестра. Например: SOFTWARE\Lectus\Data

Параметры «Период опроса» и «Начальная фаза» определяют опрос реестра. Например «Период опроса» - 30 сек, «Начальная фаза» - 4 сек. Тогда время опроса: 12:00:04, 12:00:34, 12:01:04, 12:01:34 и т.д. В случае установки «Период опроса» - 0 сек, опрос не будет производиться.

Для добавления узла необходимо нажать кнопку «Добавить».


Базовый узел

Базовый узел является контейнером для переменных не относящихся к Modbus устройству, стороннему OPC серверу или реестру. Например переменные симулирования, исторические HDA переменные, SQL переменные или высокоуровневый узел содержащий другие узлы. Для добавления нового базового узла необходимо выделить узел-родитель. Затем либо правой кнопкой мыши вызвав контекстное меню выбрать пункт «Добавить узел», либо на панели управления нажать кнопку [image]. Каждый узел внутри своей ветви должен иметь уникальное имя.

Рис. 20. Добавление базового узла

В появившемся окне «Добавить узел» выбрать вкладку «Базовый» и заполнить поля значениями:

  • Имя узла – имя узла;
  • Описание – описание узла;
  • Период опроса – период опроса;
  • Начальная фаза – начальная фаза;

Параметры «Период опроса» и «Начальная фаза» определяют параметры опроса. Например «Период опроса» - 30 сек, «Начальная фаза» - 4 сек. Тогда время опроса: 12:00:04, 12:00:34, 12:01:04, 12:01:34 и т.д. В случае установки «Период опроса» - 0 сек, опрос не будет производиться.

Для добавления узла необходимо нажать кнопку «Добавить».

Для тиражирования узла необходимо нажать кнопку «Тиражировать». При этом нужно будет задать:

  • «Начальный номер» - начальный номер узла, используемый при нумерации тиражируемых узлов. Номер узла присоединяется к текущему имени узла;
  • «Кол-во» - количество тиражируемых узлов;


Удаление узла

Для удаления узла выделите мышью удаляемый узел. Затем либо правой кнопкой мыши вызвать контекстное меню и выбрать пункт «Удалить узел», либо на панели управления нажать кнопку [image]. Появится окно подтверждения удаления. Если к серверу нет подключенных клиентов, то удаление узла произойдет при утвердительном ответе, в противном случае необходимо завершить работу с клиентом и только потом удалить узел.


Изменение свойств узла

Параметры узла можно изменить. Для этого либо правой кнопкой мыши вызвать контекстное меню, выбрать пункт «Свойства», либо на панели управления нажать кнопку [image]. В появившемся окне внести изменения. Нажать кнопку «Изменить».


Копирование/перемещение узла

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


Переменные

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

Дерево переменных имеет две ветки: "Текущие данные" и "Исторические данные". В ветке "Текущие данные" расположены переменные которые будут доступны OPC DA клиенту. В ветке "Исторические данные" расположены переменные которые будут доступны OPC HDA клиенту.


Modbus переменные

Modbus переменные предназначены для получения данных из Modbus устройства. Для добавления новой Modbus переменной необходимо выделить Modbus узел (см. «Modbus узел») в ветке «Текущие переменные». Затем либо правой кнопкой мыши вызвав контекстное меню выбрать пункт «Добавить переменную», либо на панели управления нажать кнопку [image]. В окне добавления переменной выбрать вкладку "Modbus". Каждая переменная узла должна иметь уникальное имя.

Тип Modbus переменной выбирается в группе «Тип переменной» (см. Рис. 5). Modbus переменные подразделяются на следующие виды: типизированные, стандартные, регистр, перечисление, произвольные.

Типизированная переменная

Типизированные переменные предназначены для получение данных в формате стандартных типов: byte, word, double word, short integer, small integer, integer, single float, double float, currency, date, boolean, string, BCD.

Рис. 21. Типизированная переменная

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

  • «Имя переменной» – имя переменной;
  • «Описание» – описание переменной (комментарий);
  • «Права доступа» – определение разрешений на чтение и запись;
  • «Период опроса» – период опроса переменной;
  • «Тип данных» - стандартный тип переменной;
  • «Адрес переменной» – Modbus адрес данной переменной в адресном пространстве устройства;

Стандартная переменная

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

Рис. 22. Стандартная переменная

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

Существует четыре области памяти:

Область памяти | Адрес элемента | Доступ
Дискретные выходы | 00001...09999 | чтение - функция 1, запись - функция 15
Дискретные входы | 10001...19999 | чтение - функция 2
Выходные регистры | 30001...39999 | чтение - функция 4
Входные регистры | 40001...49999 | чтение - функция 3, запись - функция 16

Определение MODBUS адреса переменной: Из имени переменной убираем первую цифру и вычитаем один. Пример: 40013 -> адрес 12 (0Ch).

Переменная - регистр

Переменная - регистр предназначена для получения данных, занимающих часть Modbus регистра.

Рис. 23. Переменная - регистр

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

  • «Имя переменной» – имя переменной;
  • «Описание» – описание переменной (комментарий);
  • «Права доступа» – определение разрешений на чтение и запись;
  • «Период опроса» – период опроса переменной;
  • «Адрес переменной» – Modbus адрес данной переменной в адресном пространстве устройства;
  • «Значимые биты» - младший и старший значимые биты данных.

Переменная перечислимого типа

Переменная перечислимого типа предназначена для задания соответствия значения некоторой строке. Например: значение 0 соответствует причине отключения двигателя "Кнопка СТОП", значение 1 соответствует причине отключения "Недогруз" и т.д.

Рис. 24. Переменная перечислимого типа

  • «Имя переменной» – имя переменной;
  • «Описание» – описание переменной (комментарий);
  • «Права доступа» – определение разрешений на чтение и запись;
  • «Период опроса» – период опроса переменной;
  • «Адрес переменной» – Modbus адрес данной переменной в адресном пространстве устройства;
  • «Значимые биты» - младший и старший значимые биты данных;
  • «Строки перечисления» - список строк.

Для переменных перечислимого типа необходимо указать соответствие дискретного значения определенной строке. Для добавления строки необходимо нажать кнопку "Добавить..." и ввести строку. Для удаления строки предназначена кнопка "Удалить". Клиент будет получать данные в соответствии с OPC спецификацией, т.е. значением переменной является дискретное значение (0,1,2,...), а среди свойств содержиться перечисление соответствующих строк.

Произвольная переменная

Произвольная переменная предназначена для формирования Modbus запроса произвольного вида.

Рис. 25. Произвольная переменная

Формат данных задается на вкладке "Формат":

  • "Тип" - тип значения. Для строкового типа и массива байт можно задать длину значения;
  • "Использовать диапазон" - признак использования битового диапазона;
  • "Значимые биты" - значимые биты битового диапазона;
  • "Формат возвращаемой строки" - формат возвращаемой строки для переменнной строкового типа;
  • "Разделитель" - разделитель символов возвращаемой строки для переменной строкового типа.

На вкладке "Чтение" задаются параметры команды посылаемой при чтении значения переменной:

  • "Команда чтения" - Modbus команда (без CRC);
  • "Сдвиг значения в ответе" - сдвиг значения переменной в ответе.

На вкладке "Запись" задаются параметры команды посылаемой при записи значения переменной:

  • "Команда записи" - Modbus команда (без CRC);
  • "Записывать значение" - признак записи значения в команду записи;
  • "Сдвиг значения в команде записи" - сдвиг для записываемого значения в команде записи.

Пример:
Тип значения: Word;
Команда чтения: "01 03 00 00 00 01";
Сдвиг значения в ответе: 3;

Запрос: 01 03 00 00 00 01 84 0A
Ответ: 01 03 02 00 04 B9 87

В результате значение переменной будет равно 4.

Для добавления переменной необходимо нажать кнопку «Добавить».

Для тиражирования переменной необходимо нажать кнопку «Тиражировать». При этом нужно будет задать:

  • «Начальный номер» - начальный номер переменной, используемый при нумерации тиражируемых переменных. Номер переменной присоединяется к текущему имени переменной;
  • «Кол-во» - количество тиражируемых переменных;
  • «Адрес переменной. Шаг» - шаг изменения Modbus адреса переменной при тиражировании переменной.


OPC переменные

OPC переменные предназначены для получения данных из других OPC DA серверов. Для создания OPC переменной необходимо выделить OPC узел (см. «OPC узел»). Затем либо правой кнопкой мыши вызвать контекстное меню и выбрать пункт «Добавить переменную», либо на панели инструментов нажать кнопку [image]. После этого перейти на вкладку «OPC».

Рис. 26. Добавление OPC переменной

OPC переменная содержит следующие поля:

  • «Имя переменной» – имя переменной;
  • «Описание» – описание переменной (комментарий);
  • «Имя OPC переменной» – полное имя OPC переменной (ItemID) другого OPC DA сервера;
  • «Тип данных» – тип данных. Устанавливается автоматически при выборе имени OPC переменной (исходя из свойств выбранной переменной). Можно менять вручную (не рекомендуется);
  • «Права доступа» - определение разрешений на чтение и запись. Устанавливаются автоматически при выборе имени OPC переменной (исходя из свойств выбранной переменной). Можно менять вручную (не рекомендуется).

Для добавления переменной необходимо нажать кнопку «Добавить».


Реестр переменные

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

Рис. 27. Добавление предопределенной переменной

Реестр переменная содержит следующие поля:

  • «Имя переменной» – имя переменной;
  • «Описание» – описание переменной (комментарий);
  • «Параметр для чтения значения» - параметр реестра который хранит значение переменной. Данный параметр должен иметь строковый тип (REG_SZ). Формат значения описывается в поле «Формат данных»;
  • «Параметр для чтения времени» - параметр реестра который хранит время переменной в формате yyyy.mm.dd hh:nn:ss, где yyyy-год, mm-месяц, dd-день, hh-часы, nn-минуты, ss-секунды. Например: 2009.01.01 08:54:12. Данное поле можно оставить пустым. В этом случае время будет текущим;;
  • «Параметр для записи значения» - параметр реестра в который происходит запись значения переменной. Данное поле можно оставить пустым. В этом случае запись будет происходить в параметр для чтения значения переменной;
  • «Права доступа» - определение разрешений на чтение и запись;
  • «Тип данных» - тип значения;
  • «Формат данных» - описание формата значения.

Для добавления переменной необходимо нажать кнопку «Добавить».

Для тиражирования переменной необходимо нажать кнопку «Тиражировать». При этом нужно будет задать:

  • «Начальный номер» - начальный номер переменной, используемый при нумерации тиражируемых переменных. Номер переменной присоединяется к текущему имени переменной;
  • «Кол-во» - количество тиражируемых переменных.


Составные переменные

Составная переменная предназначена для получения значения по заданной формуле.

Для создания составной переменной необходимо выделить мышью узел. Затем либо правой кнопкой мыши вызвать контекстное меню и выбрать пункт «Добавить переменную», либо на панели инструментов нажать кнопку [image]. В окне добавления переменной выбрать вкладку «Составная».

Рис. 28. Добавление составной переменной

Параметры составной переменной:

  • «Имя переменной» – имя переменной;
  • «Описание» – описание переменной (комментарий);
  • «Период опроса» – период опроса переменной;
  • «Тип переменной» - стандартный тип переменной;
  • «Чтение» - скрипт исполняемый при чтении данной переменной;
  • «Запись» - скрипт исполняемый при записи данной переменной;

Скрипт

Скрипт предназначен для вычисления значения составной переменной. При вычислении можно использовать значения других переменных. Синтаксис - Item(Item1), где Item1 - имя переменной находящейся в том же узле, что и данная составная переменная. Также можно использовать полное имя переменной для доступа к переменным других узлов. Например - Item(Node1.Item2). В скрипте также можно изменять значения других переменных.

Пример для переменной U:
Item(U)=Sqrt(Item(Ua)*Item(Ub)/10+5*Item(Uc))
где Ua, Ub, Uc - переменные того же узла, что и вычисляемая составная переменная.

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

Рис. 29. Редактирование скрипта составной переменной

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

  • – сохранить скрипт. При сохранении скрипт проверяется на достоверность;
  • – проверить скрипт на достоверность;
  • – пример скрипта;
  • – помошь.

Синтаксис скрипта

    При редактировании скрипта можно использовать следующие операции и функции:
  • Базовые операции
    • числовые: x + y , x - y , x * y, x / y, x ^ y
    • битовые: x & y, x | y, x >> y, x << y
    • сравнение: x > y, x < y, x >= y, x <= y, x = y, x <> y
    • ansi сравнение: s > t, s < t, s >= t, s <= t, s = t, s <> t
    • логические (1/0): a AND b, a OR b, NOT(a)
    • логические (1/0): x in [...] // пример: 12 in [22,12,3]
    • установка переменной : x:=формула (или значение) ;
    • освобождение переменной: FreeVar(s); // s=имя переменной
    • логические: ExistVar(s) // s=имя переменной
  • Математические функции
    • Abs(x), Frac(x), Trunc(x), Heaviside(x) or H(x), Sign(x), Sqrt(x), Ln(x), Exp(x)
    • Cos(x), CTg(x), Ch(x), CTh(x), Sin(x), Sh(x), Tg(x), Th(x), ArcSin(x), ArcCos(x), ArcTg(x), ArcCtg(x)
    • MaxVal(x [,y, ...]), MinVal(x [,y, ...]), SumVal(x [,y,...]), AvgVal(x [,y, ...])
  • Математические операции
    • numeric (integer): x Div y, x Mod y
  • Ключевые слова интерпритатора
    • IF ... THEN { ... } [ELSE { ...}]
    • WHILE ... DO { ... }
    • PROCEDURE { ... }
    • EXEC
    • BREAK
    • CONTINUE
    • EXIT
    • BEEP
    • END. //конец программы
  • Конвертирование типов
    • boolean (1/0): Logic(x)
    • numeric: Numeric(s)
    • string: String(x)
    • char: Char(x)
    • integer: Ascii(s)
    • все типы: Eval(f) // где f строка это формула в [...]
    • string : NumBase(x,base) // система исчисления <2..16>
    • integer: BaseNum(s,base) // система исчисления <2..16>
  • Строковые переменные
    • s || t
    • s Like t // (%,_)
    • s Wildcard t // (*,?)
  • Строковые функции
    • integer: Length(s), Pos(t,s)
    • string:  Trim(s), TrimLeft(s), TrimRight(s), Upper(s), Lower(s),
       Copy(s,x,[y]), CopyTo(s,x,[y]), Delete(s,x,[y]), Insert(s,t,x),
       Replace(s,t,v,[1/0=ReplaceAll,[1/0=IgnoreCase]] ),
       IFF(a,s,t);    //IF a>=1 then Result:=s else Result:=t
    • numeric: Eval(s)
  • Функции даты и времени
    • integer: Year(s), Month(s), Day(s), WeekDay(s), Hour(s), Minute(s), Sec(s)
    • numeric: StrToStamp(d)
    • string: StampToStr(x), StampToDateStr(x), StampToTimeStr(x)


SQL переменные

SQL переменные предназначены для работы со встроенным или внешним SQL сервером.

Для создания SQL переменной необходимо выделить мышью узел. Затем либо правой кнопкой мыши вызвать контекстное меню и выбрать пункт «Добавить переменную», либо на панели инструментов нажать кнопку [image]. После этого перейти на вкладку "SQL".

Рис. 29. Добавление SQL переменной

Параметры SQL переменной:

  • «Имя переменной» – имя переменной;
  • «Описание» – описание переменной (комментарий);
  • «Период опроса» – период опроса переменной;
  • «Тип переменной» - стандартный тип переменной;
  • «Скрипт» - скрипт исполняемый при чтении/записи данной переменной;
  • «Файл» - файл содержащий скрипт исполняемый при чтении/записи данной переменной;
  • «Переменная» - значение выбраной переменной сохраняемое во встроенной базе данных. Для того чтобы состояние переменной сохранялось во встроенной базе данных, нужно установить признак в дополнительных параметрах переменной (см. «Дополнительные параметры переменной»).

Доступ к SQL серверу выполняется на основе параметров конфигурации (через меню «Настройка» -> «Параметры» -> «Разные» -> «Подключение к базе данных»).

SQL скрипт выполняется при чтении или записи переменной. В скрипте могут содержаться значения переменных данного узла, в формате Item(Item1), где Item1 - переменная даного узла. Также можно использовать полное имя переменной для доступа к переменным других узлов. Например: Item(Node1.Item2). Для разделения скрипта на отдельные пакеты необходимо использовать ключевое слово GO на отдельной строке.

Пример скрипта:
INSERT INTO Northwind.dbo.Orders (CustomerID,OrderDate) VALUES (Item(Item1), getdate())

Для редактирования SQL скрипта необходимо нажать кнопку «Скрипт ...».

Рис. 30. Редактирование SQL скрипта

Панель инструментов редактора SQL скрипта содержит следующие элементы:

  • – сохранить SQL скрипт. При сохранении скрипт проверяется на достоверность;
  • – проверить SQL скрипт на достоверность;
  • – выполнить SQL скрипт. По завершении выполнения выводится результат выполнения SQL скрипта;
  • – пример SQL скрипта;
  • – помошь.


Системные переменные

Системные переменные предназначены для служебных целей.

Для создания системной переменной необходимо выделить мышью узел. Затем либо правой кнопкой мыши вызвать контекстное меню и выбрать пункт «Добавить переменную», либо на панели инструментов нажать кнопку [image]. После этого перейти на вкладку «Системная».

Рис. 31. Добавление системной переменной

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

  • «ITEMCOUNT» - предназначена для определения в текущей OPC группе кол-ва переменных, которые располагаются в том же узле что и данная переменная. Разрешено только чтение.;
  • «ERRORCOUNT» - предназначена для определения в текущей OPC группе кол-ва неудачно прочитанных или записаных переменных, которые располагаются в том же узле что и данная переменная. Разрешено только чтение;
  • «POLL» - предназначена для принудительного опроса переменных группы, которые располагаются в том же узле что и данная переменная. Разрешено чтение и запись. Для принудительного опроса необходимо записать значение 1. По окончании чтения переменных группы, значение переменной устанавливается в 0;
  • «LINKQUALITY» - предназначена для определения качества связи группы. Качество связи выражается в процентном значении: 100% - удачно отработаны все запросы, 0% - все запросы не отработаны;
  • «SERVERSTOPPED» - предназначена для чтения и установки состояния сервера. Чтобы остановить сервер необходимо записать значение 1. Чтобы запустить сервер необходимо записать значение 0;
  • «READCOMPLETE» - предназначена для определения состояния операции чтения переменной. По окончании чтения значение устанавливается в 1, если все операции завершены успешно, или устанавливается в -1, если хотя бы одна операция завершена с ошибкой. Далее состояние READCOMPLETE можно сбросить записав в нее 0;
  • «WRITECOMPLETE» - предназначена для определения состояния операции записи переменной. По окончании записи значение устанавливается в 1, если все операции завершены успешно, или устанавливается в -1, если хотя бы одна операция завершена с ошибкой. Далее состояние WRITECOMPLETE можно сбросить записав в нее 0;
  • «PRIORITY» - предназначена для задания приоритета выполнения операций текущей OPC группы. Для задания приоритета необходимо записать 0 - для нормального(по умолчанию) приоритета, 1 - для высокого приоритета;
  • «CURRENTTIME» - предназначена для чтения текущего времени сервера. Разрешено только чтение.


Переменные симулирования

Переменная симулирования предназначена для симулирования значения переменной.

Для создания переменной симулирования необходимо выделить мышью узел. Затем либо правой кнопкой мыши вызвать контекстное меню и выбрать пункт «Добавить переменную», либо на панели инструментов нажать кнопку [image]. После этого перейти на вкладку "Симуляция". Реализуется симуляция константы, случайного или счетчика.

Симулирование константы

Переменные симуляции константы предназначены для симуляции постоянного значения. Значение может быть следующих типов: word, byte, double word, short integer, small integer, integer, single float, double float, currency, date, boolean, string, byte (bits), word (bits). Последние два типа предназначены для побитового представления числа типа byte или word. Заданное значение можно менять на лету, во время работы сервера. При побитовом представлении можно менять отдельные биты.

Рис. 32. Переменная симуляции константы

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

  • Имя переменной – имя переменной;
  • Описание – описание переменной (комментарий);
  • Период опроса – период опроса переменной;
  • Тип данных - определяет тип переменной;
  • Значение - определяет значение переменной.

Симулирование случайного значения

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

Рис. 33. Переменная симуляции случайного значения

Переменная симулирования случайного значения содержит следующие поля:

  • Имя переменной – имя переменной;
  • Описание – описание переменной (комментарий);
  • Период опроса – период опроса переменной;
  • Диапазон/Список значений - определяет симуляцию случайного числа из заданного диапазона или списка значений;
  • Минимум - определяет минимальную границу диапазона;
  • Максимум - определяет максимальную границу диапазона;
  • Добавить - кнопка для добавления в список значений;
  • Удалить - кнопка для удаления из списка значений.

Симулирование счетчика

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

Рис. 34. Переменная симуляции счетчика

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

  • Имя переменной – имя переменной;
  • Описание – описание переменной (комментарий);
  • Период опроса – период опроса переменной;
  • Диапазон/Список значений - определяет симуляцию счетчика из заданного диапазона или списка значений;
  • Минимум - определяет минимальную границу диапазона;
  • Максимум - определяет максимальную границу диапазона;
  • Добавить - кнопка для добавления в список значений;
  • Удалить - кнопка для удаления из списка значений.

Для добавления переменной необходимо нажать кнопку «Добавить».

Для тиражирования переменной необходимо нажать кнопку «Тиражировать». При этом нужно будет задать:

  • «Начальный номер» - начальный номер переменной, используемый при нумерации тиражируемых переменных. Номер переменной присоединяется к текущему имени переменной;
  • «Кол-во» - количество тиражируемых переменных.


Свойство-переменные

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

Для создания свойство-переменной необходимо выделить мышью узел. Затем либо правой кнопкой мыши вызвать контекстное меню и выбрать пункт «Добавить переменную», либо на панели инструментов нажать кнопку [image]. После этого перейти на вкладку "Свойство".

Рис. 35. Добавление свойство-переменной

Параметры свойство-переменной:

  • «Имя переменной» – имя переменной;
  • «Описание» – описание переменной (комментарий);
  • «Период опроса» – период опроса переменной;
  • «Переменная или узел» - переменная или узел к свойству которого привязывается свойство-переменная;
  • «Идентификатор свойства» – идентификатор свойства;
  • «Описание свойства» – описание свойства;
  • «Тип значения свойства» – тип значения свойства;
  • «Права доступа к свойству» – права доступа к свойству;
  • «Значение свойства» – текущее значение свойства.

ПРЕДУПРЕЖДЕНИЕ: При использовании данной переменной необходимо с осторожностью подходить к изменению значения свойства. Потому что формат значения свойства может быть специфичным и его изменение может привести к некорретной работе сервера.

Для добавления переменной необходимо нажать кнопку «Добавить».


Исторические переменные

Исторические переменные предназначены для чтения истории с помощью 20-ой Modbus функции. Для создания исторической переменной необходимо выделить исторический Modbus узел (см. «Modbus узел»). Затем либо правой кнопкой мыши вызвать контекстное меню и выбрать пункт «Добавить переменную», либо на панели инструментов нажать кнопку [image]. После этого перейти на вкладку «Modbus».

Рис. 36. Добавление исторической переменной

OPC переменная содержит следующие поля:

  • «Имя переменной» – имя переменной;
  • «Описание» – описание переменной (комментарий);
  • «Тип данных» – тип значения;
  • «Сдвиг данных в записи истории» - сдвиг значения в логической записи истории (в байтах).
  • «Заголовок» – заголовок столбца при сохранении значения в Excel;
  • «Еденица измерения» – еденица измерения значения.

Для добавления переменной необходимо нажать кнопку «Добавить».


Дополнительные параметры переменной

Дополнительные параметры переменной доступны в свойствах любой переменной. Для доступа к дополнительным параметрам нужно в нижней части формы свойств переменной нажать кнопку [image].

Рис. 37. Нижняя часть формы свойств переменной

Рис. 38. Панель дополнительных параметров переменной

После этого необходимо нажать кнопку «Настройка».

Рис. 39. Дополнительные параметры переменной

Дополнительные параметры переменной:

  • «Сохранять состояние во встроенной базе данных» – сохранять состояние во встроенной базе данных;
  • «Дублировать значение в переменную» – дублировать значение в переменную. При дублировании значения переменной, значение текущей переменной устанавливается также в дублируемой переменной. Если значение не нужно дублировать, то поле оставить пустым;
  • «Переменная симулировани (для режима симуляции)» – переменная симулирования сопоставленная текущей переменной, которая определяет ее значение в режиме симулирования. Режим симулирования включается при выборе через меню «Выполнить» -> «Режим симулирования». Для возврата в режим работы с устройством необходимо выбрать через меню «Выполнить» -> «Рабочий режим». Если значение не нужно симулировать, то поле оставить пустым;
  • «Формировать качество на основе значения переменной» - переменная значение которой будет являться качеством текущей переменной;
  • «Еденица измерения» – еденица измерения значения;
  • «Использовать масштабирование» – использовать масштабирование значения переменной;
  • «Минимум (реальное значение)» – минимальное реальное значение;
  • «Максимум (реальное значение)» – максимальное реальное значение;
  • «Минимум (значение из устройства)» – минимальное значение из устройства;
  • «Максимум (значение из устройства)» – максимальное значение из устройства.

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

Например:
Dmin = 0 - минимальное значение из устройства, Dmax = 10 - максимальное значение из устройства, Rmin = 0 - минимальное реальное значение, Rmax - 100 - максимальное реальное значение.
В этом случае при чтение из утройства значения D = 3, клиенту будет передано значение R = 30. И наоборот, при записи клиентом значения R = 40, устройству будет передано значение D = 4.

Для добавления переменной необходимо нажать кнопку «Добавить».


Удаление переменной

Для удаления переменной выделите мышью удаляемую переменную. Затем либо правой кнопкой мыши вызвать контекстное меню и выбрать пункт «Удалить переменную», либо на панели управления нажать кнопку [image]. Появится окно подтверждения удаления, если к серверу нет подключенных клиентов, то удаление переменной произойдет при утвердительном ответе, в противном случае необходимо завершить работу с клиентом и только потом удалить переменную.


Изменение свойств переменной

Параметры переменной можно изменить. Для этого либо правой кнопкой мыши вызвать контекстное меню, выбрать пункт «Свойства», либо на панели управления нажать кнопку [image]. В появившемся окне внести изменения. Нажать кнопку «Изменить».


Копирование/перемещение переменных

Для копирования/перемещения переменных необходимо выделить необходимые переменные (используя Shift или Ctrl). Правой кнопкой мыши вызвать контекстное меню и выбрать пункт «Копировать…»/«Перенести…» или перенести с помощью мыши выделенные переменные в необходимый узел дерева переменных и в появившемся контекстном меню выбрать «Копировать»/«Перенести». Если узел назначения копирования уже содержит переменную с таким же именем то, будет выдано предупреждение о необходимости переименования исходной переменной. При утвердительном ответе на вопрос «Переименовать переменную?» появится окно для ввода нового имени дублируемой переменной.


Настройка портов

Данные на OPC-сервер могут одновременно поступать с нескольких портов, отправляться, соответственно, также с нескольких портов. Доступ к настройке коммуникационных портов возможен либо с панели инструментов – значок [image], либо из основного меню «Настройка»->«COM порт».

Рис. 40. Настройка СОМ портов

В появившемся окне выбрать нужный Com порт из предложенного списка и заполнить поля значениями параметров обмена:

  • «Скорость» – определяет скорость обмена данными с устройством;
  • «Данные» – определяет количество информационных разрядов в кадре;
  • «Паритет» – определяет параметры настройки четности;
  • «Стоп биты» – определяет количество стоповых битов в кадре;
  • «Дополнительно ...» – дополнительные параметры.

Дополнительные параметры:

  • "DTR" - аппаратное управление линией DTR (data transmit ready);
  • "RTS" - аппаратное управление линией RTS (request to send). Для поддержки RS-485 необходимо установить - TOOGLE. В результате линия RTS будет устанавливаться перед посылкой данных и сбрасываться после посылки данных. Ручной режим (MANUAL) позволяет определять задержки:
    • "Задержка между установкой RTS и отсылкой данных";
    • "Задержка после посылки данных, перед сбросом RTS";
  • "CTS" - аппаратное управление CTS (clear to send);
  • "DSR" - аппаратное управление DSR (data set ready);
  • «Программное управление» – управление потоком данных программным путем (XON/XOFF);
  • «Межсимвольный интервал чтения» - определяет максимальное время между приходами двух байтов на коммуникационной линии COM порта. Задается в миллисекундах.

Для сохранения настроек данного Com порта необходимо нажать кнопку «Сохранить».


Параметры

Доступ к параметрам возможен с панели инструментов - значок [image], либо из основного меню «Настройка»->«Параметры».

Рис. 41. Параметры Modbus

Конфигурирование параметров Modbus

В появившемся окне «Параметры» заполнить поля значениями:

  • «Время ожидания ответа» – значение, заданное в секундах, определяет время ожидания ответа на команду сервера;
  • «Кол-во попыток связи» – количество попыток связи, которое осуществляет сервер, если не смог установить связь с устройством за промежуток времени определённый в предыдущем поле;
  • «Время возобновления опроса» - значение, заданное в секундах, определяет временной интервал, по истечению которого опрос устройства возобновится;
  • «Время ожидания соединения» - время ожидания для команды дозвона для телефонного подключения;
  • «Время простоя до разъединения» - время простоя до разъединения телефонного или TCP/IP подключения;
  • «Асинхронный опрос» - асинхронный опрос устройства для TCP/IP подключения, т.е. посылка следующего пакета без ожидания ответа на предыдущий пакет;
  • «Настройка прокси» - настройка TCP/IP подключения через прокси сервер;
  • «Протокол TCP сервера» - тип протокола для TCP сервера. Используется для Slave TCP/IP подключения. Возможные типы:
    • «Modbus TCP» - стандартный протокол Modbus TCP;
    • «Modbus через TCP» - передача через TCP по стандартному протоколу Modbus RTU/ASCII.
  • «Порт TCP сервера» - порт TCP сервера. Используется для Slave TCP/IP подключения;
  • «Параметры...» - дополнительные параметры.

Дополнительные параметры:

  • «Максимальный размер пакета» - определяет максимальный размер пакета. В случае, если пакет превышает заданное значение, то он разбивается на более мелкие;
  • «Максимальное кол-во промежуточных (неинформативных) регистров при формировании группового запроса» - максимальный размер блока неиспользуемых регистров при формировании группового опроса данных. Используется в том случае, если нужно оптимизировать опрос, т.е. уменьшить кол-во запросов. Например, в случае опроса регистров 1 и 4 будет сформировано два запроса. Если данный параметр будет равен 2 или больше, то будет сформирован один запрос, который прочитает регистры 1,2,3,4;
  • «Макс. интервал между символами пакета в ASCII режиме» - определяет максимальный интервал между символами пакета в ASCII режиме;
  • «Размер регистра» - определяет размер регистра. В стандарте Modbus предусматривается значение - 2 байта. В случае использования своей модификации протокола можно задавать свое значение регистра;
  • «Фильтровать пакеты данных» - выделять Modbus пакет из потока принятых данных, основываясь на косвенных данных, в том числе на основе контрольной суммы (CRC). Данная функция полезна в том случае, если от Modbus устройства приходит не чистый Modbus пакет и нужно отбросить часть данных сначала или в конце.

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

Алгоритм опроса

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

Конфигурирование параметров программы

На вкладке «Разные» расположены различные параметры конфигурации программы.

Рис. 42. Параметры

Параметры конфигурации:

  • «Опрос при старте» - определяет опрашивать или нет устройства сразу при подключении OPC клиента вне зависимости от заданных значений периода опроса и начальной фазы опроса в свойствах узла;
  • «Прочитать переменную сразу после записи» - определяет опрашивать или нет переменную сразу после записи, для определения изменившегося значения;
  • «Использовать лог» - определяет использовать или нет лог работы программы;
  • «Размер лога» - общий максимальный размер лога работы программы, который располагается в папке "Log" программы;
  • «Настройка» - настройка подключения к базе данных;
  • «Сворачивать в трей» - определяет возможность программы сворачиваться в трей;
  • «Сворачивать при старте» - определяет возможность программы сворачиваться при старте;
  • «Шифровать конфигурацию» - определяет возможность шифрования конфигурации;
  • «Пароль конфигурации» - определение пароля на изменение конфигурации;
  • «Параметры» - дополнительные параметры конфигурации;
  • «Комментарии к конфигурации» - в этом поле можно хранить различную текстовую информацию идентифицирующую данную конфигурацию.

Настройка подключения к базе данных

Для настройки подключения к базе данных нужно нажать кнопку «Настройка» в окне настройки параметров конфигурации. Можно использовать два типа базы данных:

  • «Встроенная» - Firebird Embedded. Поставляется с программой;
  • «Внешняя» - любая установленная в операционной системе база данных.

Рис. 43. Настройка подключения к базе данных

При работе с внешней базой данных используется ADO. Поэтому при выборе поставщика (провайдера) данных необходимо выбирать поставщика типа OLE DB.

Например:

  • Microsoft OLE DB Provider for SQL Server
  • Microsoft OLE DB for Oracle
  • Mocrosoft Jet 4.0 OLE DB Provider
  • и т.д.

Дополнительные параметры

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

Рис. 44. Дополнительные параметры

Дополнительные параметры:

  • «Синхронное чтение всегда из кэша» - при синхронном чтении всегда читать данные и кэша (не из устройства);
  • «Таймаут ожидания пакета COM порта» - таймаут по завершении которого пакет принятый через COM порт считается принятым. Для Modbus пакетов при принятии данных по COM порту также проверяется контрольная сумма CRC. Если она корректная, то пакет считается принятым и этот таймаут не используется;
  • «Разделитель при экспорте/импорте csv файла» - символ разделителя при экспорте/импорте csv файла. Рекомендуется использлвать ";" или ",";
  • «Кол-во значений для HDA переменной» - кол-во значений при симуляции HDA переменной;
  • «Хранить данные во встроенной базе данных, дней» - кол-во дней хранения данных во встроенной базе данных. Данные сохраняются во встроенную базу данных, если установлена соответствующая опция в дополнительных параметрах переменной;
  • «Параметризированный SQL скрипт» - использовать параметризацию при выполнении SQL скрипта SQL переменной. Если данный признак сброшен, то используемые значения переменных подставляются в SQL скрипт и он выполняется без параметризации;
  • «Поведение при изменении значения переменной» - определяет поведение при изменении значения переменной в SQL скрипте SQL переменной или скрипте составной переменной. Поведение может быть следующим:
    • «Изменить значение» - изменить значение переменной без отработки операции записи в переменную;
    • «Отработать запись» - отработать операцию записи в переменную. Например при записи в Modbus переменную будет сформирована соответствующая Modbus команда.
    ;
  • «Подтверждение на закрытие сервера при подключенных клиентах» - определяет выдавать или нет подтверждение на закрытие сервера, если программа закрывается и есть подключенные клиенты;
  • «Отключить мониторинг качества для клиента» - всегда передавать клиенту хорошее качество переменной. В этом случае, за качеством переменной можно следить с помощью переменной-свойства;
  • «Кол-во последних запросов определяющих качество связи» - определение кол-ва последних запрос к устройству, по которым определяется процентное значение качества связи ля группы переменных (см. предопределенную переменную LINKQUALITY);
  • «Приоритет выполнения сервера» - приоритет сервера. Нужно с осторожностью подходить к изменению приоритета выполнения сервера. Например, в том случае когда используются виртуальные COM порты работающие с нормальным приоритетом и сервер имеет высокий приоритет выполнения, может быть зависание сервера, т.к. внутренние операции виртуального COM порта не успевают выполняться;
  • «Производительность» - процентное значение определяющее соотношение низкой загрузки процессора и высокопроизводительной работы сервера. Чем меньше значение, тем меньше загрузка процессора. Чем больше значение, тем производительнее работа сервера. Данный параметр становится значимым при обработке большого кол-ва переменных;
  • «DDE» - тип используемого DDE. Тип может быть следующим:
    • «Стандартный DDE (текстовый формат)» - стандартный текстовый формат DDE;
    • «Стандартный DDE (Fast Table)» - стандартный DDE типа Fast Table. Данный тип имеет смысл применять при работе с Microsoft Excel, который поддерживает данный формат;
    • «DDE для XBS (Honeywell)» - узкоспециализированный формат DDE. Используется при работе с графической станцией XBS (Excel Building Supervisor) фирмы Honeywell.

ПРЕДУПРЕЖДЕНИЕ: Отключение мониторинга качества переменной для клиента может завести клиента в заблуждение, т.к. при ошибке получения данных, качество переменной все равно будет хорошим.


Настройка колонок

Для более удобного восприятия можно конфигурировать список отображаемых колонок в таблице отображающей список переменных. Конфигурирование производится в окне "Конфигурирование колонок таблицы переменных" доступном через меню «Настройка»->«Настройка колонок».

Рис. 45. Настройка колонок

Таблица отображающая список переменных может быть в двух режимах: конфигурирования и выполнения. В режиме конфигурирования таблица находится при просмотре переменных иерархического адресного пространства сервера (узел «Переменные»). В режиме выполнения таблица находится при просмотре переменных группы добавленных OPC или DDE клиентами (узел «OPC сервер» или «DDE сервер»).

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


Настройка DCOM

Настройка DCOM для Windows XP SP2, Windows 2003 SP1

Внимание! В ОС Windows XP / 2003 может быть включен "Брандмауэр Windows" ("Windows Firewall"). Для работы по DCOM его необходимо выключить или настроить для работы с соответствующим сервером оборудования. Описание настройки брандмауэра выходит за рамки данной документации.

  1. Из меню "Пуск" ("Start") выбрать "Выполнить" ("Run").

  2. Ввести "dcomcnfg" и нажать "OK".

  3. Выбрать "Корень консоли"\"Службы компонентов\Компьютеры\Мой компьютер\Настройка DCOM" ("Consol Root"\"Component Services\Computers\My Computer\DCOM config"), нажать правую кнопку мыши и выбрать "Свойства" ("Properties") так как показано на рисунке:

  4. Выбрать закладку "Свойства по умолчанию" ("Default Properties") и установить параметры, указанные на рисунке:

  5. Выбрать закладку "Безопасность COM" ("COM Security"). В группе "Права доступа" ("Access Permissions") нажать кнопку "Изменить ограничения" ("Edit Limits"):

  6. Разрешить "Локальный доступ" ("Local Access"), "Удаленный доступ" ("Remote Access") для пользователей: "Анонимный вход" ("Anonymous Logon"), "Все" ("Everyone"), "Интерактивные" ("Interactive"), "Сеть" ("Network") и "System":

  7. В группе "Права доступа" ("Access Permissions") нажать кнопку "Изменить настройки по умолчанию" ("Edit Default"):

  8. Разрешить "Локальный доступ" ("Local Access"), "Удаленный доступ" ("Remote Access") для пользователей: "Анонимный вход" ("Anonymous Logon"), "Все" ("Everyone"), "Интерактивные" ("Interactive"), "Сеть" ("Network") и "System":

  9. В группе "Разрешение на запуск и активацию" ("Launch and Activation Permissions") нажать кнопку "Изменить ограничения" ("Edit Limits"):

  10. Разрешить "Локальный запуск" ("Local Launch"), "Удаленный запуск" ("Remote Launch"), "Локальная активация" ("Local Activation"), "Удаленная активация" ("Remote Activation") для пользователей: "Анонимный вход" ("Anonymous Logon"), "Все" ("Everyone"), "Интерактивные" ("Interactive"), "Сеть" ("Network") и "System":

  11. В группе "Разрешение на запуск и активацию" ("Launch and Activation Permissions") нажать кнопку "Изменить настройки по умолчанию" ("Edit Default"):

  12. Разрешить "Локальный запуск" ("Local Launch"), "Удаленный запуск" ("Remote Launch"), "Локальная активация" ("Local Activation"), "Удаленная активация" ("Remote Activation") для пользователей: "Анонимный вход" ("Anonymous Logon"), "Все" ("Everyone"), "Интерактивные" ("Interactive"), "Сеть" ("Network") и "System":

  13. На дереве "Корень консоли" ("Consol Root") выделить OPC сервер "Службы компонентов\Компьютеры\Мой компьютер\Настройка DCOM\Lectus Modbus OPC/DDE server" ("Component Services\Computers\My Computer\DCOM config\Lectus Modbus OPC/DDE server"), нажать правую кнопку мыши и выбрать "Свойства" ("Properties") так как показано на рисунке:

  14. Выбрать закладку "Общие" ("General") и установить параметры, указанные на рисунке:

  15. Перейти на закладку "Безопасность" ("Security"). В группе "Разрешения на запуск и активацию" ("Launch and Activation Permissions") нажать кнопку "Изменить" ("Edit").

  16. Разрешить "Локальный запуск" ("Local Launch"), "Удаленный запуск" ("Remote Launch"), "Локальная активация" ("Local Activation"), "Удаленная активация" ("Remote Activation") для пользователей: "Все" ("Everyone"), "Интерактивные" ("Interactive"), "Сеть" ("Network") и "System":

  17. В группе "Права доступа" ("Access Permissions") нажать кнопку "Изменить" ("Edit").

  18. Разрешить "Локальный доступ" ("Local Access"), "Удаленный доступ" ("Remote Access") для пользователей: "Все" ("Everyone"), "Интерактивные" ("Interactive"), "Сеть" ("Network") и "System":

  19. Перейти на закладку "Удостоверение" ("Identity"). Установить запуск сервера от имени "Текущий пользователь" ("The interactive user") или, если он запускается как сервис, "Системная учетная запись" ("The system account").

  20. На дереве "Корень консоли" ("Consol Root") выделить "OpcEnum" "Службы компонентов\Компьютеры\Мой компьютер\Настройка DCOM\Lectus Modbus OPC/DDE server" ("Component Services\Computers\My Computer\DCOM config\OpcEnum"), нажать правую кнопку мыши и выбрать "Свойства" ("Properties") так как показано на рисунке:

  21. Настроить свойства "OpcEnum" аналогично свойствам OPC сервера.

Настройка предотвращения выполнения данных (Data Execution Prevention)

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

  1. Из меню "Пуск" ("Start") выбрать "Мой компьютер" ("My computer"), нажать правую кнопку мыши и выбрать "Свойства" ("Properties") так как показано на рисунке:

  2. Перейти на закладку "Дополнительно" ("Advanced"). В группе "Быстродействие" ("Performance") нажать кнопку "Параметры" ("Settings").

  3. Выбрать закладку "Предотвращение выполнения данных" ("Data Execution Prevention") и установить параметры, указанные на рисунке:

Настройка локальной политики безопасности (Local Security Policy)

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

  1. Из меню "Пуск" ("Start") выбрать "Панель управления" ("Control panel").

  2. Выбрать "Администрирование" ("Administrative Tools").

  3. Выбрать "Локальная политика безопасности" ("Local Security Policy").

  4. Выбрать "Параметры безопасности"\"Локальные политики"\"Параметры безопасности" ("Security Settings"\"Local Policies"\"Security Options"). Нажать правую кнопку мыши на "DCOM: Ограничения компьютера на доступ в синтаксисе SDDL" ("DCOM: Machine Access Restrictions…") и выбрать "Свойства" ("Properties")

  5. Нажать кнопку "Изменить безопасность" ("Edit Security").

  6. Разрешить "Локальный доступ" ("Local Access"), "Удаленный доступ" ("Remote Access") для пользователей: "Все" ("Everyone"), "Интерактивные" ("Interactive"), "Сеть" ("Network") и "System":

  7. Нажать правую кнопку мыши на "DCOM: Ограничения компьютера на запуск в синтаксисе SDDL" ("DCOM: Machine Launch Restrictions…") и выбрать "Свойства" ("Properties")

  8. Нажать кнопку "Изменить безопасность" ("Edit Security").

  9. Разрешить "Локальный запуск" ("Local Launch"), "Удаленный запуск" ("Remote Launch"), "Локальная активация" ("Local Activation"), "Удаленная активация" ("Remote Activation") для пользователей: "Все" ("Everyone"), "Интерактивные" ("Interactive"), "Сеть" ("Network") и "System":

  10. Нажать правую кнопку мыши на "Сетевой доступ: разрешить применение разрешений для всех к анонимным пользователям" ("Network access: Let Everyone permissions apply to anonymous users") и выбрать "Свойства" ("Properties")

  11. Выбрать "Включить" ("Enabled").

  12. Нажать правую кнопку мыши на "Сетевой доступ: модель совместного доступа и безопасности для локальных учетных записей" ("Network access: Sharing and security model for local accounts") и выбрать "Свойства" ("Properties")

  13. Выбрать "Обычная - локальные пользователи удостоверяются как они сами" ("Classic – local users authenticate as themselves").

Теперь компьютер настроен для взаимодействия через DCOM.

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


Конфигурация

Для сохранения текущей конфигурации (узлы,переменные,параметры Com портов и параметры обмена) необходимо нажать кнопку [image] на панели инструментов или выбрать пункт главного меню "Конфигурация"->"Сохранить". Для сохранения конфигурации под определенным именем необходимо выбрать пункт главного меню "Конфигурация"->"Сохранить как ...". Текущее имя файла конфигурации отображается в заголовке главного окна программы. Файлы конфигурации имеют расширение CFG.

При старте Lectus Modbus OPC/DDE сервера загружается последняя используемая конфигурация. Для загрузки другой конфигурации необходимо нажать кнопку [image] на панели инструментов или выбрать пункт главного меню "Конфигурация"->"Открыть", а затем выбрать требуемую конфигурацию. Загрузить конфигурацию можно только, если нет подключенных клиентов.

Экспорт конфигурации

Текущую конфигурацию можно экспортировать в формат CSV. Для этого необходимо выбрать пункт меню "Конфигурация"->"Экспорт". После этого нужно выбрать экспортируемый узел и нажать кнопку "OK". Если выбрать самый верхний узел "Переменные", то будет экспортирована вся конфигурация.

Импорт конфигурации

В текущую конфигурацию можно импортировать конфигурацию в формате CSV. Для этого необходимо выбрать пункт меню "Конфигурация"->"Импорт". Послу этого нужно выбрать узел в который будет импортирована конфигурация и нажать кнопку "OK".


DDE сервер

Программа Lectus Modbus OPC/DDE сервер кроме OPC являтся также DDE сервером. Для обращения к нему необходимо указать три параметра для связи:

  • Имя приложения (Application name) - ServOPC;
  • Тема (DDE topic) - имя узла в котором расположена опрашиваемая переменная;
  • Переменная (DDE item) - имя переменной.

Использование Microsoft Excel

В качестве DDE клиента можно использовать программу Microsoft Excel.

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

=SERVOPC|NODE!ITEM

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

Sub WriteItem()
    mychannel = DDEInitiate("SERVOPC", "NODE")
    Call DDEPoke(mychannel, "ITEM", Cells(2, 3))
    DDETerminate mychannel
End Sub

где NODE - имя узла где расположена переменная, ITEM - имя переменной.

В каталоге "Sample" программы Lectus Modbus OPC/DDE сервер, расположены файлы для демонстрирования работы Microsoft Excel в качестве DDE клиента.


Устранение неполадок

Если качество опрашиваемой переменной не равняется "Хорошее" (см. "Пример работы"), значит при опросе произошла ошибка. Ниже представлены действия по исправлению:

  1. Качество "Ошибка инициализации COM порта" - ошибка при открытии коммуникационного порта:
    • В свойствах узла, которому принадлежит переменная, установить COM порт существующий в системе;
    • Закрыть другие программы использующие данный COM порт.

  2. Качество "Неопределенное" - переменная еще не опрашивалась:
    • Команда на опрос поставлена в очередь. Необходимо подождать пока подойдет очередь;
    • Установите свойство "Опрашивать" для узла, которой принадлежит переменная;
    • OPC клиентом должна быть установлена активность переменной и группы которой принадлежит данная переменная.

  3. Качество "Ошибка таймаута, устройство не отвечает" - устройство не ответило на запрос:
    • Подключите линию связи с устройством к тому COM порту, который указан в свойствах узла, которому принадлежит переменная;
    • Установите конфигурацию COM порта в соответствие с характеристиками устройства;
    • В свойствах узла, которому принадлежит переменная, установите верный Modbus адрес устройства;
    • Проверьте чтобы устройство правильно отрабатывало Modbus запросы.

  4. Качество "Ошибка CRC" - в полученном ответе не совпадает CRC:
    • Устраните помехи на линии связи.

  5. Качество "Ошибка конфигурации" - переменная не верно сконфигурирована:
    • Выполянется операция чтения и не задана Modbus функция чтения. Задайте номер функции чтения;
    • Выполянется операция записи и не задана Modbus функция записи. Задайте номер функции записи;
    • Записываемое значение выходит за пределы значимых битов (например: записываем 65536 в переменную с 16-тью(0-15) значимыми битами). Записывайте значение не выходящее за пределы значимых битов;
    • Для идентификации ошибки смотри лог.

  6. Качество "Ошибка соединения" - устройство не может отработать данный запрос:
    • Поверьте чтобы устройство отрабатывало запрос без ошибок, т.е. в возвращаемом номере функции старший бит не должен быть установлен;
    • Для идентификации ошибки смотри лог.

  7. Качество "Ошибка: неизвестный формат ответа" - ответ от устройства не является Modbus командой:
    • Проверьте чтобы устройство правильно отрабатывало Modbus запросы.

  8. Качество "Плохое" - неопределенная ошибка при опросе переменной:
    • Для идентификации ошибки смотри лог.

В случае если возникли вопросы по функционированию программы, обращайтесь к разработчику (см. "Контакты"). При этом желательно выслать также: используемую конфигурацию *.cfg, лог работы ("c:\Program Files\Lectus Modbus OPC and DDE server\Log\*.log") и описать последовательность действий для эмуляции рассматриваемой ситуации.


Контакты

Copyright © 2004-2009 LectusSoft

  • Сайт: www.lectussoft.com
  • Почта: support@lectussoft.com
  • Телефон: +7(499)502-08-36
  • ICQ: 259-040-327


Режим симуляции

Lectus Modbus OPC/DDE сервер может работать в двух режимах: рабочий режим и режим симуляции. В рабочем режиме происходит штатный опрос переменных. В режиме симуляции вместо опроса переменной происходит опрос переменной (например переменной симулирования) сопоставленной текущей переменной. Переключение режимов работы осуществляется через панель управления с помощью кнопки [image] или через меню "Выполнить" -> "Режим симулирования", "Выполнить" -> "Рабочий режим". Таким образом можно переключаться между реальных опросом устройств и симуляцией нажатием одной кнопки.

На следующем рисунке Modbus переменной "Ua" сопоставлена переменная "Node.Simul.Ua" в режиме симуляции.

Рис. 15. Modbus переменной "Ua" сопоставлена переменная "Node.Simul_Ua"

Если переменной не сопоставлена никакая переменная (поле пустое), то переключение режимов никак не скажется на опросе переменной.