Память ПЛК Omron по FINS прямо в чате
Подключите ПЛК Omron по FINS к ИИ-агенту: области DM, CIO и рабочие биты через шлюз на объекте. Агент сведёт смену по часам и посчитает циклы и простои.
Как агент работает с Omron FINS
Данные читает шлюз: программа, которая ставится службой на компьютер или сервер в сети объекта и ходит к ПЛК по FINS/TCP или FINS/UDP, порт 9600. В подключении указываются адрес ПЛК со схемой tcp:// или udp:// и карта тегов: по строке на тег путь, адрес CX-Programmer и тип, например D100 real или CIO10.03 bool. Наружу шлюз отправляет данные только исходящим соединением.
По TCP узлы FINS шлюз и ПЛК согласуют рукопожатием, по UDP их задают поля подключения. Теги одной области, стоящие не дальше 8 слов друг от друга, читаются одним запросом, до 253 слов: это ниже предела любого найденного ПЛК и ниже порога, после которого CP1L делит ответ на два кадра и ждёт 200 мс. Широкие значения Omron хранит младшим словом вперёд, а первый символ строки в старшем байте слова; для одной строки карты порядок можно переопределить.
Драйвер только читает: из команд FINS он посылает одно чтение области памяти. Сам протокол режима только для чтения не имеет: порт FINS принимает запись в память и остановку ЦП от любого, кто до него достаёт, поэтому чтение через шлюз не закрывает порт. Тег, чей диапазон ПЛК отказался читать, помечается плохим с кодом завершения, остальные читаются дальше.
Текущий банк EM не читается: его смысл меняется вместе с программой, поэтому банк называется явно, например E0_100. Таймер и счётчик читаются двумя способами: флаг завершения как bool и текущее значение в кодировке, которую задаёт ПЛК. Если связь с облаком рвётся, данные копятся на диске шлюза и приходят после восстановления.
Сценарии интеграции
Что сейчас на линии
Агент найдёт теги по пути, например line1/oven, и покажет текущие значения из DM, CIO и рабочих областей со временем отсчёта и пометкой, свежие ли они.
Сводка за смену
Агент возьмёт историю температуры или давления за смену и по часам покажет минимум, максимум, среднее и последнее значение.
Циклы и простои
Агент заберёт сырые отсчёты бита работы, например CIO10.03, за неделю и посчитает число циклов, время работы и простоя.
Задача на выход за порог
Агент заведёт задачу, которая запустится, когда значение тега выйдет за порог и продержится заданное время, а не на каждый отсчёт за порогом.
Теги, которые ПЛК не читает
Агент назовёт теги с отказом ПЛК и кодом завершения FINS, например 1103 (адрес за концом области) или 1101 (нет такой области).
Пропуски в данных
Агент покажет промежутки истории без отсчётов и скажет, на связи ли шлюз объекта сейчас.
Примеры: Omron FINS
412 циклов, работа 61 ч, простой 23 ч.
- Меньше всего циклов в четверг: 38 против 60 в среднем
- Самый длинный простой: 4 ч 20 мин в ночь на пятницу
Считаю по биту работы CIO10.03 из ПЛК, каждый фронт включения как один цикл.
Как подключить
Перед подключением
- ПЛК Omron CS, CJ, CP, NJ или NX с Ethernet и включённым FINS
- Порт 9600 по TCP или UDP открыт между ПЛК и компьютером шлюза
- Для UDP: номера узлов FINS шлюза и ПЛК
- Для NJ/NX: переменные размещены в памяти CJ AT-спецификацией
- Компьютер в сети объекта для службы шлюза
- Адреса тегов из CX-Programmer или Sysmac Studio
- Сервер пускает только известные адреса? Разрешите подключения с 158.160.205.91 и 87.228.27.163.
- 1
На NJ/NX задайте переменным AT
Переменные NJ/NX по FINS недоступны. В Sysmac Studio разместите каждую в памяти CJ AT-спецификацией, например %W0.00, и читайте по этому адресу.
- 2
На NX включите FINS в Sysmac Studio
Если FINS отмечен как не используемый или включён Packet Filter, ПЛК не отвечает вовсе, и шлюз видит только таймаут. NX1P2 отвечает только по UDP.
- 3
Для UDP запишите узлы FINS
Узел ПЛК обязателен, узел шлюза обычно последний октет его адреса. Если ПЛК отвечает только на порт FINS (статическая таблица узлов), задайте локальный порт 9600.
- 4
Разрешите адрес шлюза в защите IP
Если в Ethernet-модуле включена защита по IP-адресу, добавьте адрес компьютера шлюза. Без этого рукопожатие FINS/TCP отклоняется с ошибкой 0x22.
- 5
Пропустите порт 9600 до шлюза
FINS работает по TCP или UDP на порту 9600. Сеть между компьютером шлюза и ПЛК должна пропускать выбранный транспорт.
Частые вопросы
Заведите шлюз во вкладке «Шлюзы» и поставьте его службой на компьютер в сети объекта. В подключении укажите адрес ПЛК, например tcp://10.0.12.5:9600, и карту тегов: по строке путь, адрес CX-Programmer и тип. Для udp:// задайте ещё узлы FINS шлюза и ПЛК. Подключение назначается шлюзу, и он начинает опрос.
Теги из карты: области CIO, рабочая, удерживаемая, вспомогательная, DM, банки EM, таймеры и счётчики. Для каждого тега агент читает текущее значение со временем отсчёта, историю интервалами и сырые отсчёты.
Нет. Из команд FINS драйвер посылает только чтение области памяти, записи и управления режимом ЦП в нём нет. Учтите, что сам порт FINS запись не запрещает: её не посылает только шлюз.
По TCP узлы назначаются рукопожатием, и узел шлюза можно не задавать. UDP нужен, когда ПЛК TCP не принимает, например NX1P2: тогда узел ПЛК и узел шлюза обязательны, а при статической таблице узлов ещё и локальный порт 9600. Если рукопожатие TCP отклонено, шлюз называет код и что проверить: занятые соединения, повтор узла или защиту по IP.