1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lishilei0523-h-opc

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Библиотека Opc и командная строка для упрощения работы с OPC-операциями и обеспечения прозрачности между различными протоколами.

В настоящее время поддерживается синхронная работа по протоколам UA и DA.

Содержание

  • Использование.
  • Документация:
    • Изучение узлов.
    • Чтение узла.
    • Запись в узел.
    • Мониторинг тега.
    • Переход к асинхронному режиму.
  • Командная строка.
  • Сборка и вклад.
    • Модульное тестирование:
      • UA.
      • DA.
  • Отказ от ответственности.
  • План развития.

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

Доступен пакет nuget для библиотеки. Чтобы установить H.Opc, выполните следующую команду в консоли диспетчера пакетов:

PM> Install-Package H.Opc

Примечание: пакет был перемещён на NuGet.org из Hylasoft.Opc в H.Opc из-за проблем с учётной записью NuGet.

Чтобы установить интерфейс командной строки, перейдите в раздел релизов (https://github.com/hylasoft-usa/h-opc/releases).

Документация

Для использования клиента UA просто...

using (var client = new UaClient(new Uri("opc.tcp://host-url")))
{
  client.Connect();
  // Используйте здесь `client`
}

или с параметрами...

var options = new UaClientOptions {
  UserIdentity = new Opc.Ua.UserIdentity("<your-username>", "<your-password>")
};
using (var client = new UaClient(new Uri("opc.tcp://host-url")), options)
{
  client.Connect();
  // Используйте здесь `client`
}

Вместо этого можно использовать клиент DA:

using (var client = new DaClient(new Uri("opcda://host-url")))
{
  client.Connect();
  // Используйте `client` здесь
}

Изучение узлов

Вы можете получить ссылку на узел с помощью...

var node = client.FindNode("path.to.my.node");

Это даст вам ссылку на узел node в папке path.to.my.

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

Node parentNode = node.Parent;
IEnumerable<Node> children = client.ExploreFolder(node.Tag);
IENumerable<Node> grandChildren = children.SelectMany(m => client.ExploreFolder(m.Tag));

Чтение узла

Чтение переменной? Так же просто, как...

var myString = client.Read<string>("path.to.string").Value;
var myInt = client.Read<int>("path.to.num").Value;

Приведённый выше пример будет читать строку из тегов string и num в папке path.to.

Запись в узел

Чтобы записать значение, просто...

client.Write("path.to.string", "My new value");
client.Write("path.to.num", 42);

Мониторинг тега

Простой мониторинг:

client.Monitor<string>("path.to.string", (readEvent, unsubscribe) =>
{
  DoSomethingWithYourValue(readEvent.Value);
  if(ThatsEnough == true)
    unsubscribe();
});

Второй параметр — это Action<T, Action>, который имеет два параметра:

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

Важно, чтобы вы либо заключили клиент в оператор using, либо вызвали Dispose(), когда закончите, чтобы отменить подписку на все отслеживаемые элементы и завершить соединение!

Переход к асинхронному режиму

Каждый метод имеет асинхронный аналог, который можно использовать с синтаксисом async/await. Асинхронный синтаксис рекомендуется по сравнению с синхронным (возможно, синхронный однажды будет устаревшим).

Командная строка

Также можно использовать проект интерфейса командной строки для быстрого тестирования.

Комментарии ( 0 )

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

Введение

Клиент OPC стал проще для UA и DA, а также сервер OPC UA. Ответвление от hylasoft-usa на github. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/lishilei0523-h-opc.git
git@gitlife.ru:oschina-mirror/lishilei0523-h-opc.git
oschina-mirror
lishilei0523-h-opc
lishilei0523-h-opc
master