Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: arOPC+ПЛК 160(owen)  (Прочитано 6176 раз)

niyaz

  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
arOPC+ПЛК 160(owen)
« : 11 Февраля 2020, 11:48:21 »
Здравствуйте.
На arOPC создал канал связи:  указал IP ПЛК, в codesys ПЛК работает по порту 1200 его и поставил
Создал устройство modbus: выбрал созданный канал связи, установил галочку "РТУ через ТСП"
При старте пишется что нет связи с устройством.
Диагностике приложения:
Код
11.02.2020 11:47:42.855 - Запуск потока опроса устройств
11.02.2020 11:47:42.831 - Соединение по каналу "Канал №1 (10.0.6.10:1200)" успешно установлено
11.02.2020 11:47:42.791 - Запуск потока управления TCP каналами
11.02.2020 11:47:42.787 - Запуск опроса устройств
11.02.2020 11:47:30.211 - Проверка обновлений
11.02.2020 11:47:30.083 - Конфигурация загружена
11.02.2020 11:47:30.047 - Загрузка конфигурации из файла: C:\Users\Нияз\Documents\OPC_server\конфигурация1.cfx
11.02.2020 11:47:30.043 - 64-разрядная операционная система
11.02.2020 11:47:30.043 - Windows 10, сборка: 6.2.9200,
11.02.2020 11:47:30.043 - Запуск arOPC (1.70.153.1672)

arOPC

  • Модератор
  • *****
  • Сообщений: 154
  • За словом дело, за делом результат
    • Просмотр профиля
    • ardsoft
Re: arOPC+ПЛК 160(owen)
« Ответ #1 : 11 Февраля 2020, 12:04:32 »
Здравствуйте.

По порту 1200 работает CodeSys и этот порт нельзя использовать для организации связи между arOPC и контроллером.
Связь между arOPC и контроллером возможна только по протоколам Modbus TCP или Modbus RTU, для этого необходимо добавить в проект CodeSys модуль Modbus slave и настроить его работу.
Подробно как это делается можно прочитать в руководстве по программированию логических контроллеров ПЛК 110 и ПЛК 160 (https://ftp.owen.ru/CoDeSys23/06_Documentation/Plc110_160_rp_v1.9.pdf), страница 90.

Айрат

niyaz

  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Re: arOPC+ПЛК 160(owen)
« Ответ #2 : 11 Февраля 2020, 13:41:00 »
Спасибо за быстрый ответ.
Добавил Modbus(slave) настройки оставил по умолчанию, затем в Modbus[Fix]  добавил TCP[VAR], настройки также оставил по умолчанию.
В arOPC добавил канал связи указал IP ПЛК и порт 502.  Создал устройство modbus: выбрал созданный канал связи, установил галочку "РТУ через ТСП"
При старте связь не появилась, что я упускаю, подскажите пожалуйста.

arOPC

  • Модератор
  • *****
  • Сообщений: 154
  • За словом дело, за делом результат
    • Просмотр профиля
    • ardsoft
Re: arOPC+ПЛК 160(owen)
« Ответ #3 : 11 Февраля 2020, 13:52:09 »
Если вы работаете используя Ethernet соединение, то галочку "РТУ через ТСП" ставить не надо.
Опишите конкретнее что происходить. TCP соединение с контроллером устанавливается? По каналу связи идут запросы к устройству? Это можно посмотреть в меню "Диагностика - Каналы связи".

Айрат

niyaz

  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Re: arOPC+ПЛК 160(owen)
« Ответ #4 : 11 Февраля 2020, 14:15:31 »
Убрал галочку, так как использую Ethernet соединение. Связь появилась, то есть появилась надпись "Есть связь с устройством". Как я полагаю по каналу связи идет запрос к устройству:
Код
11.02.2020 14:09:50.581 - (REC - 9): 12 00 00 00 00 03 01 83 02
11.02.2020 14:09:50.574 - (SEND - 12): 12 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:50.569 - (REC - 9): 12 00 00 00 00 03 01 83 02
11.02.2020 14:09:50.565 - (SEND - 12): 12 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:50.559 - (REC - 9): 12 00 00 00 00 03 01 83 02
11.02.2020 14:09:50.553 - (SEND - 12): 12 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:50.549 - (REC - 9): 12 00 00 00 00 03 01 83 02
11.02.2020 14:09:50.543 - (SEND - 12): 12 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:40.532 - (REC - 9): 11 00 00 00 00 03 01 83 02
11.02.2020 14:09:40.528 - (SEND - 12): 11 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:40.522 - (REC - 9): 11 00 00 00 00 03 01 83 02
11.02.2020 14:09:40.518 - (SEND - 12): 11 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:40.510 - (REC - 9): 11 00 00 00 00 03 01 83 02
11.02.2020 14:09:40.506 - (SEND - 12): 11 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:40.502 - (REC - 9): 11 00 00 00 00 03 01 83 02
11.02.2020 14:09:40.496 - (SEND - 12): 11 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:30.492 - (REC - 9): 10 00 00 00 00 03 01 83 02
11.02.2020 14:09:30.486 - (SEND - 12): 10 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:30.482 - (REC - 9): 10 00 00 00 00 03 01 83 02
11.02.2020 14:09:30.476 - (SEND - 12): 10 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:30.472 - (REC - 9): 10 00 00 00 00 03 01 83 02
11.02.2020 14:09:30.466 - (SEND - 12): 10 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:30.458 - (REC - 9): 10 00 00 00 00 03 01 83 02
11.02.2020 14:09:30.454 - (SEND - 12): 10 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:20.451 - (REC - 9): 0F 00 00 00 00 03 01 83 02
11.02.2020 14:09:20.445 - (SEND - 12): 0F 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:20.439 - (REC - 9): 0F 00 00 00 00 03 01 83 02
11.02.2020 14:09:20.435 - (SEND - 12): 0F 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:20.427 - (REC - 9): 0F 00 00 00 00 03 01 83 02
11.02.2020 14:09:20.423 - (SEND - 12): 0F 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:20.417 - (REC - 9): 0F 00 00 00 00 03 01 83 02
11.02.2020 14:09:20.411 - (SEND - 12): 0F 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:10.382 - (REC - 9): 0E 00 00 00 00 03 01 83 02
11.02.2020 14:09:10.376 - (SEND - 12): 0E 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:10.370 - (REC - 9): 0E 00 00 00 00 03 01 83 02
11.02.2020 14:09:10.364 - (SEND - 12): 0E 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:10.360 - (REC - 9): 0E 00 00 00 00 03 01 83 02
11.02.2020 14:09:10.354 - (SEND - 12): 0E 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:10.348 - (REC - 9): 0E 00 00 00 00 03 01 83 02
11.02.2020 14:09:10.342 - (SEND - 12): 0E 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:00.329 - (REC - 9): 0D 00 00 00 00 03 01 83 02
11.02.2020 14:09:00.325 - (SEND - 12): 0D 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:00.319 - (REC - 9): 0D 00 00 00 00 03 01 83 02
11.02.2020 14:09:00.315 - (SEND - 12): 0D 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:00.307 - (REC - 9): 0D 00 00 00 00 03 01 83 02
11.02.2020 14:09:00.303 - (SEND - 12): 0D 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:09:00.299 - (REC - 9): 0D 00 00 00 00 03 01 83 02
11.02.2020 14:09:00.293 - (SEND - 12): 0D 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:50.285 - (REC - 9): 0C 00 00 00 00 03 01 83 02
11.02.2020 14:08:50.281 - (SEND - 12): 0C 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:50.275 - (REC - 9): 0C 00 00 00 00 03 01 83 02
11.02.2020 14:08:50.271 - (SEND - 12): 0C 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:50.263 - (REC - 9): 0C 00 00 00 00 03 01 83 02
11.02.2020 14:08:50.259 - (SEND - 12): 0C 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:50.253 - (REC - 9): 0C 00 00 00 00 03 01 83 02
11.02.2020 14:08:50.249 - (SEND - 12): 0C 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:40.250 - (REC - 9): 0B 00 00 00 00 03 01 83 02
11.02.2020 14:08:40.244 - (SEND - 12): 0B 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:40.240 - (REC - 9): 0B 00 00 00 00 03 01 83 02
11.02.2020 14:08:40.234 - (SEND - 12): 0B 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:40.228 - (REC - 9): 0B 00 00 00 00 03 01 83 02
11.02.2020 14:08:40.222 - (SEND - 12): 0B 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:40.219 - (REC - 9): 0B 00 00 00 00 03 01 83 02
11.02.2020 14:08:40.213 - (SEND - 12): 0B 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:30.202 - (REC - 9): 0A 00 00 00 00 03 01 83 02
11.02.2020 14:08:30.198 - (SEND - 12): 0A 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:30.190 - (REC - 9): 0A 00 00 00 00 03 01 83 02
11.02.2020 14:08:30.186 - (SEND - 12): 0A 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:30.180 - (REC - 9): 0A 00 00 00 00 03 01 83 02
11.02.2020 14:08:30.176 - (SEND - 12): 0A 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:30.168 - (REC - 9): 0A 00 00 00 00 03 01 83 02
11.02.2020 14:08:30.164 - (SEND - 12): 0A 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:20.160 - (REC - 9): 09 00 00 00 00 03 01 83 02
11.02.2020 14:08:20.156 - (SEND - 12): 09 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:20.148 - (REC - 9): 09 00 00 00 00 03 01 83 02
11.02.2020 14:08:20.144 - (SEND - 12): 09 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:20.138 - (REC - 9): 09 00 00 00 00 03 01 83 02
11.02.2020 14:08:20.134 - (SEND - 12): 09 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:20.126 - (REC - 9): 09 00 00 00 00 03 01 83 02
11.02.2020 14:08:20.122 - (SEND - 12): 09 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:10.126 - (REC - 9): 08 00 00 00 00 03 01 83 02
11.02.2020 14:08:10.120 - (SEND - 12): 08 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:10.114 - (REC - 9): 08 00 00 00 00 03 01 83 02
11.02.2020 14:08:10.108 - (SEND - 12): 08 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:10.104 - (REC - 9): 08 00 00 00 00 03 01 83 02
11.02.2020 14:08:10.098 - (SEND - 12): 08 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:10.092 - (REC - 9): 08 00 00 00 00 03 01 83 02
11.02.2020 14:08:10.086 - (SEND - 12): 08 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:00.080 - (REC - 9): 07 00 00 00 00 03 01 83 02
11.02.2020 14:08:00.075 - (SEND - 12): 07 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:00.069 - (REC - 9): 07 00 00 00 00 03 01 83 02
11.02.2020 14:08:00.063 - (SEND - 12): 07 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:00.059 - (REC - 9): 07 00 00 00 00 03 01 83 02
11.02.2020 14:08:00.053 - (SEND - 12): 07 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:08:00.047 - (REC - 9): 07 00 00 00 00 03 01 83 02
11.02.2020 14:08:00.041 - (SEND - 12): 07 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:07:50.046 - (REC - 9): 06 00 00 00 00 03 01 83 02
11.02.2020 14:07:50.042 - (SEND - 12): 06 00 00 00 00 06 01 03 00 00 00 01
11.02.2020 14:07:50.036 - (REC - 9): 06 00 00 00 00 03 01 83 02
11.02.2020 14:07:50.032 - (SEND - 12): 06 00 00 00 00 06 01 03 00 00 00 01
Но тег закрашен красным, скорее всего я неправильно написал сам тег.
Как я могу достать значения например из первого дискретного входа и записать его в переменную arOPC. Спасибо.

arOPC

  • Модератор
  • *****
  • Сообщений: 154
  • За словом дело, за делом результат
    • Просмотр профиля
    • ardsoft
Re: arOPC+ПЛК 160(owen)
« Ответ #5 : 11 Февраля 2020, 14:24:41 »
Да, опрос устройства пошёл.
Но вы не настроили ПЛК, соответственно, он не понимает чего от него хотят и отвечает кодом ошибки.

Цитировать
Запрос от arOPC: 12 00 00 00 00 06 01 03 00 00 00 01
Ответ от контроллера: 12 00 00 00 00 03 01 83 02

Надо читать инструкцию на контроллер, пункт 7.4.2.2 "Настройка входов и выходов подмодуля"

Айрат

niyaz

  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Re: arOPC+ПЛК 160(owen)
« Ответ #6 : 11 Февраля 2020, 16:26:30 »
Цитировать
Но вы не настроили ПЛК, соответственно, он не понимает чего от него хотят и отвечает кодом ошибки.
Но совсем понял, что вы имели ввиду. Я неправильно настроил modbus(slave) или не таг прописал тег в arOPC? Спасибо.

arOPC

  • Модератор
  • *****
  • Сообщений: 154
  • За словом дело, за делом результат
    • Просмотр профиля
    • ardsoft
Re: arOPC+ПЛК 160(owen)
« Ответ #7 : 11 Февраля 2020, 17:12:04 »
Судя по логам, в OPC сервере вы завели один тег с адресом 0 и предположительно тип Word.
В ПЛК, в настройках Modbus, заведена ячейка с таким же адресом? Пока она не будет в ПЛК настроена, ПЛК будет выдавать ответ с кодом ошибки.
Настройки OPC сервера для опроса устройства и настройки Modbus slave в ПЛК должны быть одинаковы.

Айрат

niyaz

  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Re: arOPC+ПЛК 160(owen)
« Ответ #8 : 11 Февраля 2020, 19:04:32 »
Как я понял необходимо добавить переменную в modbus(slave), но адрес добавленных переменных не будут отображаться и нам необходимо этот адрес вычислить, затем вбить эти адреса в arOPC. Такие выводы я сделал прочитав пункт 7.4.2.2 "Настройка входов и выходов подмодуля".Поправьте меня если я что-то неправильно понял, пожалуйста. Спасибо.

arOPC

  • Модератор
  • *****
  • Сообщений: 154
  • За словом дело, за делом результат
    • Просмотр профиля
    • ardsoft
Re: arOPC+ПЛК 160(owen)
« Ответ #9 : 11 Февраля 2020, 23:09:37 »
Да, всё верно.
Для проверки добавьте одну переменную с типом Word (16 бит), запишите в неё любое число. Она должна будет иметь адрес 0.
По этому адресу OPC сервер прочитает значение этой переменной.

Айрат

niyaz

  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Re: arOPC+ПЛК 160(owen)
« Ответ #10 : 14 Февраля 2020, 19:45:43 »
Здравствуйте.
Добавил переменную типа Float, так как не нашел Word(16 бит) в Codesys, записал число в нее, все работает в обе стороны, то есть при изменении через codesys меняется в arOPC и наоборот. Но не понятно как вычислять адреса, нет ли приложений для того чтобы узнавать адреса?
Или как их лучше вычислять?

arOPC

  • Модератор
  • *****
  • Сообщений: 154
  • За словом дело, за делом результат
    • Просмотр профиля
    • ardsoft
Re: arOPC+ПЛК 160(owen)
« Ответ #11 : 14 Февраля 2020, 21:35:31 »
Здравствуйте.

Word (16 бит) это канал 2 byte.
Судя по руководству, адреса вычисляются по порядку. Завели первый параметр с типом 2 byte у него адрес 0. Затем завели второй параметр с типом Float, у него адрес будет 1.
У следующего адрес будет 3, т.к. тип данных Float занимает 2 регистра. Ну и т.д. по порядку с учётом типа данных параметра.
Программу, делающие такие расчёты, не встречал. Попробуйте в поддержку Овен обратиться.

Айрат