Как начать с OPC UA - выборка и сбор данных с устройства PLC?
Предполагается, что я разработаю решение для сбора / обработки образцов с устройства PLC и работы с некоторыми контрольными метками устройства. Пожалуйста, предложите подход. Извините за длинный вопрос. Я разделю это на больше вопросов после изучения, что является меньшими и более разумными предметами / вопросами.
Решение для компании построено практически с нуля. Есть несколько устройств PLC, и есть KEPServerEx (без шлюза IoT). Устройства ПЛК уже используются с помощью стороннего программного обеспечения. Но не существует "более широкой основы" для будущего. С этой точки зрения я могу представить современный дизайн, но бюджет ограничен.
Из того, что я узнал до сих пор, кажется, что KEPServerEx является хорошим выбором для доступа к устройствам ПЛК, но у меня нет практического опыта работы с ним. Мне кажется, что OPC UA должен быть выбором по сравнению со старым OPC (DA). Я также знаю о лестничном способе работы с ПЛК.
Из того, что я узнал о "IoT Gateway" (который не будет использоваться) для KEPServerEx, KepServer может установить частоту дискретизации на уровне тега PLC. А также частота передачи данных может быть установлена шлюзом IoT. Затем шлюз IoT использует внутренний (память) буфер для хранения выборочных значений, и кортежи (tagID, value, quality, timestamp) могут быть считаны и переданы третьей стороне.
Что мне не понятно, так это то, как это сделать без шлюза IoT. Я предполагаю, что это должна быть базовая операция. Является ли (tagID, value, quality, timestamp) универсальным для работы с ПЛК через любой OPC-сервер? Или он универсален только для KEPServerEx, или он особенный для плагина IoT Gateway (необязательно)?
Я узнал, что Фонд OPC недавно добавил механизм публикации / подписки в OPC UA. Требуется ли также более новая версия KEPServerEx? Или его можно использовать с любым более ранним OPC-сервером?
Я довольно опытный в программировании и баз данных. У меня также есть некоторый технический опыт работы с промышленными датчиками, приводами,... Однако я никогда не работал с цифровой автоматизацией в промышленности.
Спасибо и хорошего дня.
3 ответа
В зависимости от ПЛК, с которым вы хотите установить связь, и сети связи, по которой ваши устройства будут передавать данные, вам необходимо приобрести соответствующий пакет драйверов, чтобы KEPServerEX мог с ним связываться.
Например:
Если ваш ПЛК является ПЛК Omron NJ и находится в сети Ethernet с сервером, на котором находится KEPServerEX, вам необходимо будет использовать драйвер "Omron NJ Ethernet" в пакете пакета, который Kepware предлагает под названием "Omron Suite".
Что касается вашего вопроса о IoT Gateway:
Из того, что я узнал о "IoT Gateway" (который не будет использоваться) для KEPServerEx, KepServer может установить частоту дискретизации на уровне тега PLC. А также частота передачи данных может быть установлена шлюзом IoT. Затем шлюз IoT использует внутренний (память) буфер для хранения выборочных значений, и кортежи (tagID, value, quality, timestamp) могут быть считаны и переданы третьей стороне.
Это можно сделать без шлюза IoT, используя соответствующий вышеупомянутый драйвер, а затем с помощью другого пакета драйверов отправлять данные ПЛК в любое место (клиент ODBC, база данных SQL Server и т. Д.). Это зависит от того, что вы хотите сделать с данными, которые вы получаете.
Когда вы разговариваете с конкретным устройством, вам нужно знать протокол, который использует устройство, и эти протоколы могут сильно отличаться.
Иногда производитель устройства предоставляет OPC-сервер, который защищает вас от этого или, как вы упоминаете, может использоваться сторонний сервер подключения, такой как KepServerEx или Matrikon, представляющий интерфейс OPC для вашего клиента.
Я ничего не знаю о KepServerEx или ваших конкретных требованиях, но обычно OPC-сервер имеет кэш, в котором хранятся значения, из которых клиент может прочитать данные, альтернативно считанные непосредственно с аппаратного обеспечения. Подписки могут быть настроены аналогично, например, частота, порог и т. Д.
Протокол от сервера OPC / стороннего производителя к устройству определяет частоту, с которой вы можете выбирать значения. Например, некоторые протоколы требуют опроса устройства на предмет значений, некоторые более сложны.
Если вы создаете OPC-клиент, то вы в значительной степени свободны, к какому типу OPC-сервера вы подключаетесь, независимо от того, является ли он сторонним или OPC-сервером от производителя, и клиент хранит значения, когда элементы в подписке изменяются, довольно тривиально.
Если вы знакомы с Visual Studio, то AdvancedHMI может быть возможным решением. Вы не упомянули какие-либо конкретные ПЛК, но AdvancedHMI включает в себя множество драйверов связи ПЛК как часть бесплатного пакета. Это дает вам возможность писать VB или C# для передачи значений из ПЛК в базу данных. Драйверы не являются OPC-драйверами, но предназначены для того, чтобы их было гораздо проще и эффективнее использовать.