Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Работа с библиотекой UNM

  1. #1

    По умолчанию Работа с библиотекой UNM

    Всем привет!
    Т.к. вопрос из предыдущей моей игнорируется, то открою новую ветку.
    Работаю с UNM. При приеме и передаче байта переставляются старший и младший полубайт. При приеме данный косяк обошел (использую правленный POU из примера Read_Holding_Registers) - при передаче из буфера на выход POU просто меняю местами старший и младший полубайт.
    А вот с записью проблема. Прикладываю скриншоты того что в буфере отправки через UNM и того что получили на том конце (там второй ПЛК 100 с "аппаратным" Modbus Slave).
    Так же с данной библиотекой не удалось прочитать счетчики Меркурий из примера в "полезностях" - не проходит авторизацию, хотя пароль правильный и через конфигуратор в Меркурий попадаю.
    1. Есть ли в природе нормальный модуль UNM? Скачал тут с форума и с сайта все что нашел - у всех дата и размер совпадают.
    2. Может есть модуль без пароля? Этот просмотреть не дает.
    3. Если вообще отправляется ерунда, то как вообще люди работают с Меркурием?
    Изображения Изображения
    • Тип файла: gif out.gif (3.1 Кб, Просмотров: 101)
    • Тип файла: gif in.gif (3.1 Кб, Просмотров: 77)

  2. #2

    По умолчанию

    Здравствуйте.
    1)UNM не имеет других версий, она одна - единственная.
    2)О каком модуле речь? Что простотреть и кому не дает.
    3)Ерунда не отправляется. Непосредственно я писал данную библиотеку. Тестировал ее сам и другие сотрудники нашей компании.

    Для начала. Давайте начнем понемногу разбираться:
    1) Какой ПЛК(полная маркировка).
    2) Какая у ПЛК прошивка. (Либо в ПЛК-браузере посмотрите, либо лог гипертерминалом снимите)
    3) Какая версия таргет файла? ( Открыть файл блокнотом C:\CoDeSys\Targets\PLCХХХ.Х_Х\IOModules\hardware.c fg. Версия Target будет указана в верхней строке)
    4) Какой непосредственно счетчик?
    5) Попробуйте установить стандартный пароль (помоему 111111 или 222222 в зависимости от уровня доступа)
    6) Какая версия Codesys?(полностью, смотрите в справке)
    7) Перед загрузкой в ПЛК проекта делайте полную перекомпиляцию. (Проект - очистить все; Проект - компилировать все)
    8) На всякий случай после загрузки проекта ПЛК перегрузите меркурий.
    9) Какое время цикла у контролера? Уверены, что его хватает? Модуль Статистика смотрели?

    Теперь, что касается передачи данных между ПЛК. Да, подтверждаю перестановка данных имеет место. Но это ведь не проблема, данные можно переворачивать как и на стороне мастера, так и на стороне слейва. Только зачем вам такая передача данных? Стандартными модбас мастером и слейвом нельзя данные передавать?

    P.S. рекомендую при реализации подобных проектов использовать снифер. Сразу все по местам встанет.
    http://technet.microsoft.com/en-us/s.../bb896644.aspx

  3. #3

    По умолчанию

    С одной ошибкой разобрался - в пакете не передавалось число регистров в байтах.
    Но функцию write holding registers я делал на основе все той же Read_Holding_Registers из примера использования библиотеки UNM и операции группового чтения MVA8 - там тоже не передается число в байтах.
    Ну и при приеме-передаче сам переставляю байты как надо... Но все равно как-то не красиво.
    Так что вопрос про чтение Меркуриев в силе...

  4. #4

    По умолчанию

    А)
    1)Ясно. А есть ли эта библиотека с возможностью редактирования?
    2)UNM - не открывает в режиме редактирования. Хотел в нем сам покопаться...
    3)Уже ответил выше - не поставил длину регистров в байтах. Описание МБ смотрел в вики, делал как в ней же. Нашел другое - там есть поле счетчика отдельно.

    Б)
    1) ПЛК 100-24 РМ.
    2) VERSION 2.12.7.
    3) Таргеты 2.10.
    4) Меркурий 230 АРТ-03 PQRSIDN
    5) Пароли стандарные же и стоят. С ними заходил через конфигуратор, ПЛК с ними же не заходит. Уровень доступа тоже пробовал менять.
    6) Версия кодесис 2.3.9.39
    7) Перекомпилировал и перезагружал с очисткой не однократно.
    8) Меркурий перезагрузить не получится - он уже установлен на оборудовании. Был бы "на столе" - уже давно бы разобрался.
    9) Статистику естественно ставил. Времени остается навалом, цпу не перегружается. Тем более по возможности старался оптимизировать работу программы.

    И насчет стандартных модбас мастер и слейв - не получается передать несколько групп регистров. Начинаются разные варианты "недоставки" пакетов, т.к. определить точно что произошла доставка стандартными средствами не получается. Поэтому решил полностью перейти на UNM - пока нравится больше.
    Кстати не совсем понятен смысл перестановки байтов в UNM. А если я не модбас передаю? Зачем их переворачивать? Я буфер сам составлю как мне надо!

  5. #5
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,246

    По умолчанию

    в модбасе переворачивается, хотите чтоб прямо все передавал, переверните их до отправки в буфер, библиотека их вернет на место и потребитель получит желаемое

    И второй раз спрошу, почему бы со стандартным модбасом не работать с modbus.lib

  6. #6

    По умолчанию

    UNM вы не откроете, как ни старайтесь. Дело в том, что библиотека реализована в прошивке ПЛК, а в самой библиотеке лишь заголовок(вызов библиотеки).
    Библиотека эта рабочая. Тут я могу вас заверить. Дело в том, что я сам с помощью нее реализовал уже около десятка примеров, которые в данный момент успешно функционируют. А что касается Меркурия, то на базе моего примера функционирует целая коттеджная "деревня" в несколько сотен домов. Пока ни кто на пример не жаловался.

    Я не спорю, ошибки могут быть, от них ни кто не застрахован.
    Надо тогда нам с Вами понять, где узкое место.
    Попробуйте подключиться снифером. И скиньте мне лог. Можете еще сравить лог ПЛК с тем, какие команды шлет конфигуратор с ПК.

    И еще вопрос. Вы какой пример используете с меркурием? Дело в том, что я где-то в январе его полностью переписал и перевыложил на сайт. Может у вас старая версия?

    Сравните с тем, что лежит тут:
    http://kipshop.ru/Primeri/DevicesOth...ry_230_ART.zip

    P.S. внимательно проверьте параметры связи!!!

  7. #7

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    И второй раз спрошу, почему бы со стандартным модбасом не работать с modbus.lib
    Он работает через SysLibCom.lib
    Т.е. каждый раз надо будет занимать и освобождать порт для смены модбас-меркурий. Смысла нет и потеря времени.
    Байты сам перевернул - все работает. Да и Modbus не сложный протокол - реализовать можно на чем угодно. Недавно групповое чтение вообще на акцессе делал. Правда написал только поддержку ASCII - читал ПЛК100.

    Цитата Сообщение от Александр Приходько
    И еще вопрос. Вы какой пример используете с меркурием? Дело в том, что я где-то в январе его полностью переписал и перевыложил на сайт. Может у вас старая версия?
    Точно такая же. Параметры связи проверил раз стописят.

    Насчет сниффера это мысль, но к сожалению счетчик от меня далекоооо...
    Пока и без него есть что делать в программе, так что этот момент будет отлаживаться в самую последнюю очередь. Там еще не известно как поведет себя четвертый контроллер, в который буду пихать несколько блоков данных...

    По UNM вопросов в принципе больше нет - остальное просмотрю сниффером что и как он там вертит.

  8. #8
    Пользователь
    Регистрация
    22.03.2011
    Адрес
    Ивановская обл, Родники
    Сообщений
    145

    По умолчанию

    Вопрос Супер Модератору - где найти описание библиотеки UNM на руском языке? подскажите.

  9. #9

    По умолчанию

    На диске к прибору. Раздел описание библиотек ОВЕН.

  10. #10

    По умолчанию

    Здравствуйте.
    Есть проблема с библиотекой UNM, а именно получение данных с электросчетчика Меркурий 230 ART.
    Проблема в том, что контроллер получает данные, но через некоторое время появляется сбой, и все переменные, читаемые с электросчетчика, принимают одно значение, но с разным положением десятичной точки.
    Сбой проявляется через произвольное время, может проявиться через неделю после запуска, может через месяц.

    Для начала:
    1) ПЛК 100 Р-М .
    2) Прошивка 2.14.
    3) версия таргет-файла 2.10.
    4) Электросчетчик Меркурий 230 ART PQRS.
    5) Используется стандартный пароль администратора счетчика 222222, конфигуратор электросчетчика с этим паролем подключается.
    6) Версия CoDeSys 2.3.9.36
    7) Перед загрузкой в ПЛК полную перекомпиляцию делал неоднократно (Проект - очистить все; Проект - компилировать все).
    8) "На всякий случай после загрузки проекта ПЛК перегрузите меркурий" - делал.
    9) Согласно модулю статистики контроллер не перегружен, хотя время цикла изначально было 5 мсек. По совету инженера техподдержки Овен, ответственного за ПЛК, увеличил время до 20 мсек, не помогло.

    Ситуация:
    1. Шкаф на скважине наружного исполнения, в составе: ПЧ INVT, ПЛК, электросчетчик Меркурий, GSM/GPRS маршрутизатор, обогрев.
    2. Всего 6 скважин, контроллеры разные: ПЛК 150 А-М, ПЛК 100 Р-М, ПЛК 110.30 Р-М v2. Сбой наблюдается на всех ПЛК. Костяк программы одинаковый, различия в ПО обоснованы лишь различием в ПЛК (просто не было у поставщика в наличии требуемого количества одинаковых ПЛК).
    3. Программу при необходимости могу расписать более подробно, но вкратце: SCADA передает на ПЛК заданное давление и команды ВКЛ/ВЫКЛ, забирает данные, которые ПЛК получил от ПЧ и электросчетчика.
    4. Есть возможность подключиться к ПЛК и мониторить программу в CoDeSys.

    Что делал:
    1. Блок работы с электросчетчиком целиком взял с примера форума, добавил лишь опрос каждые 15 сек (а не постоянно как в примере) и понизил скорость обмена до 1200.
    2. Схемотехника интерфейсов в порядке, проверял осциллографом, наводок нет.
    3. По совету местного специалиста по ПЛК Овен, написал тестовую программу, полностью исключив использование библиотеки Oscat. У специалиста были подозрения, что функциональные блоки этой библиотеки как-то некорректно используют системное время и это вызывает сбой. Не помогло.
    4. Изначально минимальное время цикла программы было 5 мсек, но перегрузки контроллера не было. Увеличил до 20 мсек. Не помогло.
    5. Были предположения, что частое считывание значений электросчетчика как-то нагружает сам электросчетчик. Увеличивал период чтения с 15 сек до 1 минуты. Сбой стал проявляться через большее время, только и всего.
    6. Подозрения на возможный брак ПЛК либо электросчетчика не подтвердились. Было сделано несколько перестановок оборудования из шкафа в шкаф.

    Очень нужна помощь, у меня уже закончились идеи.

    В архиве программа и скриншот скады.
    Вложения Вложения

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Проблема с библиотекой modbus
    от Evgenn в разделе ПЛК1хх
    Ответов: 13
    Последнее сообщение: 26.07.2011, 07:11
  2. работа с библиотекой owen_io.dll на VB
    от Valentin в разделе Помощь Разработчикам
    Ответов: 24
    Последнее сообщение: 18.04.2011, 12:38
  3. Работа с библиотекой SysLibTime
    от жекон в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 17.07.2010, 22:41
  4. Работа с библиотекой PID_Regulators
    от mp3moto в разделе ПЛК1хх
    Ответов: 20
    Последнее сообщение: 06.11.2009, 10:32

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •