Simple-Scada forum
Simple-Scada 2 => OPC UA/DA сервер arOPC => Тема начата: Альмир от 28 Марта 2025, 09:59:17
-
arOPC выдает ошибку при подключении к ПЛК Siemens. Уже все перепробовал из форумов.
1. Настроил канал связи с ПЛК Siemens c адресом 192.168.0.222. (Фото_каналы связи). С устройством связь есть, сеть пингуется.
2. Как видно из фото (Фото_теги) связь с устройством есть, но в столбце качество выдает ошибку "Bad device failure limit ok".
Попытки менять параметры каналы связи не дали результатов:
- увеличивал период соединения
- увеличивал и уменьшал таймаут
- менял межбайтовый интервал
- оставил 1 устройство и 1 тег для опроса
В чем может быть причина и что посоветуете для решения проблемы?
Прикладываю фото диагностики и файл с ошибками
-
Добрый день.
Прибор отвечает кодом ошибки, он не понимает чего от хотят.
Попробуйте убрать начальную цифру 4 в адресах.
Айрат
-
Спасибо, проблема решена
-
Добрый день,
я новичок в подключении устройств по протоколу MODBUS. Необходимо получить данные от контроллера Logik33 S. Сервер arOPC выдает "Bad device failure limit ok", в логах Несовпадение количества регистров в ответе.., Несовпадение команд в запросе и ответе!. Все ответы разной длины. логи прилагаю. Таймаут менял от 80 - 1000, непомогает. межбитный интервал тоже менял от 4-50. Подскажите пожалуйста как исправить ошибки. Тэги пробовал и другие, ошибки теже.
-
Добрый день.
Прибор, который вы опрашиваете, отвечает с большой задержкой.
Попробуйте поставить таймаут в одну минуту (60000).
Айрат
-
Добрый день,
Исправил таймаут 60000, интервал 5.
тоже самое, но медленно.
-
Что то странное на линии происходит.
Судя по логам, в ответ на запрос приходит не то, что с прибора запрашивается.
Приложил скрин с выделенными местами, это явно неправильно.
Что представляет собой система? Что за прибор?
Айрат
-
Судя по логам ответ приходит через 300 мс, но полная чушь.
На скорости 19200 критична длина кабеля и согласующие терминаторы на концах.
Проверьте скорость передачи прибора, при возможности снизьте ее на 9600 (в двух местах).
Таймаута хватит 1000 мс, а межбайтовый увеличь до 20 мс. (про задержку не знаю).
Так же чушь бывает если перепутать полярность подключения.
И еще, нет ли на линии другого прибора с тем же адресом?
-
Добрый день,
Прибор винтового компрессора (Logika Control )- Logik 33S, двигатель с частотным управлением. Подключен через преобразователь МОХА 5150, порт работает, проверил. Сигнал запроса возращается. Но при родключении МОХИ к Logik33S, светодиод передачи данных(МОХИ) начинает периодически моргать, даже при выключенном arOPC сервере...? В контроллере есть порт RS 485, RS 232, везде такаяже картна со светодиодом.
-
Добрый день.
Такое ощущение что по этому же кабелю идёт посторонний обмен.
Если посмотреть в логах, на запрос arOPC в ответ приходит несколько склеенных пакетов.
Причем некоторые из них явно запросы.
Айрат
-
Добрый день,
По RS 485 идут запросы и команды управления между блоком Logik33S и инвертором. Я пробовал подключаться как к РС 485, так и к РС 232 портам. Вот лог с RS 232
-
Для Modbus протокола, мастер может быть только один.
Если вы пытаетесь опрос вести, по одной линии, одновременно с другим мастером, то ничего не получится.
В приложенном логе поведение похоже, что и в предыдущих.
Айрат
-
Добрый день,
Это значит контроллер Logik33s стоит МАСТЕРом и arOPC дял опроса не подойдет. Я правильно понял. Нужен ОРС сервер в режиме Slave?
-
Slave тоже не подойдет.
Для этого надо карту Modbus синхронизировать с контроллером и и ещё уметь отделять запросы от ответов.
Даже не знаю, есть ли такое ПО.
Айрат
-
Судя по описанию от ООО "ТЕХНОСЕРВИС М"
https://tehnoservice-m.ru › logik-33s
У контроллера есть два порта для работы: M15 RS-232, M16 RS-485 и один для связи к компом M3 RS-485.
Ты случайно разъемы не перепутал?
-
Добрый день,
Наблюдаю странное поведение устройств в arOPC сервере. Иногда появляются какие-то значения, пишет Good Limit ok и опять теряется. Эти значения какието относительные, требуют пересчета в реальные единицы или это ошибочные... В логах все по старому.
-
Я действительно подключал к М15 и М16, М3 не пробовал. Вроде это для группового подключения нескольких компрессоров?
-
Добрый день.
Наблюдаю странное поведение устройств в arOPC сервере. Иногда появляются какие-то значения, пишет Good Limit ok и опять теряется. Эти значения какието относительные, требуют пересчета в реальные единицы или это ошибочные... В логах все по старому.
Пока наблюдается такая свистопляска, ничего нельзя сказать о получаемых данных. Сначала вам необходимо добиться того, что бы OPC сервер был один на линии мастером.
Как только будет стабильность, можно будет говорить о расшифровке данных.
Айрат
-
Добрый день Айрат,
У меня получилось! Подключился ко второму порту RS 485 М3 (там нет данных от инвертора). На стандартных настройках скорости соединения и таймаутов все заработало.
Спасибо за помощь. У меня вопрос по извлечению данных из регистра. Когда на 1 адресе одна переменная все понятно, а когда на одном адресе 7 переменных (0х0001 in1, 0,0002 in2, 0,0003 in3 .... ). Как их извлечь? А особенно когда необходимо отдавать команду пуск\стоп (с записью в ячейки).
-
Добрый день.
Если я правильно понимаю, у вас в одном регистре упакован несколько дискретных переменных.
Если так, то заводите переменную типа Bool, выбираете команду чтения 0x03, указываете адрес регистра и через точку номер бита, т.е. 0.0, 0.1, 0.2 и т.д.
Если в эти же биты нужна запись, OPC сервер будет менять значения только того бита, который меняется.
Айрат
-
А если в регистрах переменные не True, False, а меняющиеся значения (скорости, частоты, тока..)
-
Странная какая то упаковка, для аналоговых параметров.
Это получается в 16 битах 4 параметра сразу отображается.
Что то не то.
Айрат
-
Так и дискретные значения тут упаковываются в Word..
-
Дискретные понятно, один бит - одно значение.
Но для аналоговых мало будет 4 бита на один параметр. К примеру, частота может иметь всего 16 вариантов значений.
Не знаю какой, в вашем случае, диапазон, но если брать от 0 до 50, то получается, у вас измерения частоты будут проходить с дискретностью, примерно, 3 Гц.
Это действительно так?
Айрат
-
Обычно частота стоит около 72 Гц
-
Да вроде все понятно...
Регистр 0404 Word (16 бит) и расписано какой бит за что отвечает.
Регистр 0548 int (32 бит) для аналогово значения.
В нем может быть только одно значение, а какое задается в регистре 0547.
т.е. сначала нужно в регистр 0547 записать 1 (для Freq), а затем считать из регистра 0548 целое число частоту в герцах.
Модбас в регистрах хранит целые числа, поэтому нужно число поделить на 10 указанное количество раз в регистре 0549.
Аналогично и для остальных параметров 2,3,4
-
Регистр 0548 точно 32 разрядный?
По табличке непонятно.
Если это так, то у контроллера получается нестандартный Modbus, потому что в обычном Modbus, подсчет регистров был бы через 2, а в вашем случае, номера подряд идут.
Что то вроде Enron. Такой Modbus OPC сервером не поддерживается.
Айрат
-
Я конечно не могу гарантировать это, но я еще ни разу не встречал 2х байтных int.
Для стандарта модбас нумерация регистров идет по два байта (word).
Значения, занимающие два регистра (int), нумеруются через один.
Однако я встречал один прибор у которого была нумерация в подряд для int.
Чтение двух регистров с 0548 даст значение одного int.
В этом случае параметры могут читаться только по одному, групповой запрос запрещен.
Это было указано в руководстве на прибор, а как в данном случае я не знаю.
Получить int значение из 0548 можно запросом 2х регистров
аналогично и для 0549 если только ОРС не объединит запрос в один.
Собственно 0549 можно и не читать, а жестко задать деление на нужное количество 10 знаков.
-
В регистре 0547 задаёте параметр, в 0548 - читаете его.
Колонка 4 скорее всего имеет заглавие что-то типа - кол-во байт.
-
Заголовок таблицы такой. По ячейкам 547 и 548 ответы такие...
-
Integer читает ДВА регистра.
-
Добрый день.
Если size=2, значит для параметров, значения которых могут быть только положительными, выставляете Word, для тех у кого знак меняется, тип SmallInt.
Айрат
-
Значит все таки 2х байтные...
Ставь тип: SmallInt
1310720 - 140000h
0065556 - 010014h
Значит:
547 - 0000 - disable (не выбран параметр)
548 - 0014 - 20 (в десятичке)
549 - 0001 - умножить на 10 (или поделить)
Реальные значения там будут когда запишешь в 547 номер параметра (1,2,3,4)
-
Поставил 1 в 547, но 548 не изменился, там 20!
-
Ты бы вывел чуток побольше регистров (547,548,549,54a).
Описания у нас ведь нет (только догадки).
Может значение в 54a (V01).
Да еще чему равна частота (чтоб сравнить).
-
Добавил тегов по соседним адресам 547 - 54D
-
А если в регистрах переменные не True, False, а меняющиеся значения (скорости, частоты, тока..)
Смущает индекс RW (read write). Может эти индексы используются для управления? Или для чтения аналоговых входов?
Должна ещё быть группа 10 DriveData и в группе 4 чтение температур и давлений (параметры 0406 и далее).
-
Скиньте полное описание, пожалуйста.
По тем обрезкам, что вы приводите, ориентироваться невозможно.
Айрат
-
Вот
-
Если не ошибаюсь.
Вы работает с данными из группы №5 (настройки).
Попробуйте почитать данные из группы №10 (Drive data)
Айрат
-
Спасибо огромное! заработало!
Действительно данные на других адресах, только непонятно значение Word (13), если в настройках можно выбрать только 1 и 2. но я поставил 2.
-
word[13] - массив из 13 элементов word. Можете сразу 13 адресов считать, можете по одному.
-
Добрый день. Я в этом деле совершенно новичок, прошу помощи, не могу разобраться как мне реализовать запуск стоп на станции управления Лукойл СУВД, как понять (0000h - останов FF00h - запуск)? Заранее благодарен.
-
Добрый день.
Не уверен, но судя по изображению, вы пытаетесь это дело реализовать с помощью тегов start и stop.
Для управления необходим один тег, типа Word.
При останове пишите в него 0000h, при старте FF00h.
Айрат
-
Спасибо. Какую команду чтения использовать для данного типа данных?
-
Если чтение и запись, обычно 0x03.
Айрат
-
(При останове пишите в него 0000h, при старте FF00h) Это получается со scada отправляется? или как в него команду написать?
-
Да, Со скады надо в этот тег, выдать одно из этих чисел.
OPC сервер понятия не имеет как устройство работает.
Он просто или читает или передаёт, в устройство, информацию.
Айрат.