Форум TRACE MODE: техническая поддержка Послать новую тему / Post New Topic  Послать ответ / Post A Reply
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » Редактор проекта TRACE MODE 6 / » Переменная, содержащая код ошибки ModBus

   
Автор / Author Тема / Topic: Переменная, содержащая код ошибки ModBus
Dmitry G.
Junior Member / Новичок
Участник № / Member № 5438


Icon 1 отправлено / posted      Профиль для / Profile for Dmitry G.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте!

Переменная, содержащая код ошибки ModBus, @e_MODBUS сама не сбрасывается после того, как причина ошибки исчезает.
1) В документации сказано: "Как правило, посылка положительного значения в переменную типа OUTPUT обнуляет значение аналогичной переменной-счетчика типа INPUT." Протестировал - не обнуляет, а в переменную записывается переданное положительное значение. И то - не всегда. Как, все-таки, сбросить код ошибки?
2) Что означает код ошибки 13? В документации ошибка с этим кодом никак не прокомментирована.

[ 01.11.2011, 12:18: Сообщение отредактировал / Message edited by AdAstra Technical Support ]

Сообщения / Posts 20 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
1. "Как правило, ... переменной-счетчика ..."
В данном случае диагностическая переменная - не "переменная-счетчик". Обнуление происходит только при подаче "0". Однако, обнуление происходит, только если ошибочная ситуация устранена. В данном случае, видимо, код ошибки постоянно восстанавливается в процессе обмена.

2. Код ошибки "13" - ERR_RT_CODE (по нашей документации) означает, что получено сообщение об ошибке в кадре ответа от устройства. Для Modbus это может означать, например, ошибка адреса переменной или ошибка в функции обращения к указанной переменной.
Соответствующему каналу обмена при этом выставляется признак аппаратной недостоверности.
Для уточнения кода ошибки, возвращаемой устройством, надо прочитать возвращаемый кадр (например, с помощью перехватчика COM-порта или с помощью отладочных функций Trace Mode 6).
Во втором случае можно поставить этому каналу обмена флажок "Отладка" и задать в файле конфигурирования запуска МРВ ключ DEBUG=2200. Тогда в протоколе профайлера будут сообщения об ошибках обмена с ответными кадрами. Расшифровка кадра ответа - в соответствии с описанием протокола Modbus (протокол открыт в интернете).

Сообщения / Posts 17316 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Dmitry G.
Junior Member / Новичок
Участник № / Member № 5438


Icon 1 отправлено / posted      Профиль для / Profile for Dmitry G.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
1. Специально проверил - при подаче "0" обнуление не происходит. Значение диагностической переменной меняется только при подаче положительного числа. Код ошибки постоянно не восстанавливается, т.к. ошибку я создаю сам однократно в тестовых целях.

2. Хотелось бы, чтобы "ваша" документация попала и в "нашу" тоже.

3. Сегодня встретился с очередными неизвестными кодами ошибок @e_MODBUS - 777 и 778. Каков их смысл?

4. Если по ModBus через разные порты опрашивается несколько устройств, как определить, к какому из них относится код ошибки в переменной @e_MODBUS?

Сообщения / Posts 20 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
1. Как любой другой канал OUT, канал, связанный с диагностической переменной @e_MODBUS_OUT, отрабатывает свою функцию только при изменении своего значения или при взведении в 1 атрибута EXEC (39). Если Вы уверены, что ошибка формируется только однократно и значение канала @e_MODBUS_OUT равно 0, пошлите 1 в его атрибут EXEC (39).

2. Текст ERR_RT_CODE и означает - "от устройства получен код ошибки".

3 и 4. Если Вы работаете в релизе 6.07.7, возвращаемый код ошибки состоит из двух байтов. 0-й байт содержит собственно код ошибки, а 1-й байт - логический номер COM-порта (0 для COM1, 1 для COM2 и т.д.).
Т.о., 777 и 778 соотвутствуют кодам 9 и 10 по COM4.
Номер устройства таким образом определить нельзя.
Следует анализировать недостоверности каналов обмена.

Приносим извинения за неполноту описания.

Сообщения / Posts 17316 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Dmitry G.
Junior Member / Новичок
Участник № / Member № 5438


Icon 1 отправлено / posted      Профиль для / Profile for Dmitry G.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Спасибо!
Сообщения / Posts 20 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Dmitry G.
Junior Member / Новичок
Участник № / Member № 5438


Icon 1 отправлено / posted      Профиль для / Profile for Dmitry G.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Уточните, пожалуйста, что имеется в виду под "каналом OUT, связанным с диагностической переменной @e_MODBUS_OUT"? Правильно ли я понимаю, что необходимо создать канал OUT любого типа и связать его с переменной @e_MODBUS_OUT?
Я поступил таким образом, и для сброса переменной делаю следующее:
записываю 0 в переменную @e_MODBUS_OUT и подаю 1 в атрибут EXEC связанного с ней канала. Однако это не приводит к обнулению диагностической переменной.
Опишите, пожалуйста, пошагово процедуру сброса переменной @e_MODBUS

Сообщения / Posts 20 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
М.б., "записываю 0 атрибут ВХОД и подаю 1 в атрибут EXEC канала OUT, связанного с переменной @e_MODBUS_OUT"?
Так сбрасывать методически правильно, если только код ошибки не восстанавливается из-за постоянного обмена с ошибкой.

Если не работает, присылайте Ваш проект на адрес техподдержки.

Сообщения / Posts 17316 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Dmitry G.
Junior Member / Новичок
Участник № / Member № 5438


Icon 1 отправлено / posted      Профиль для / Profile for Dmitry G.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Выслал проект на адрес hotline@adastra.ru
Сообщения / Posts 20 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Ответ дан по электронной почте.

Для сброса значения нужно было использовать любой числовой канал типа Out. Канал Call не является числовым каналом.

Сообщения / Posts 17316 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Dmitry G.
Junior Member / Новичок
Участник № / Member № 5438


Icon 1 отправлено / posted      Профиль для / Profile for Dmitry G.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Спасибо, все заработало.
Сообщения / Posts 20 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Quick Reply
Сообщение / Message:

HTML код не разрешен. / HTML is not enabled.
UBB код разрешен. / UBB Code is enabled.

Значки Graemlins / Instant Graemlins
   


Послать новую тему / Post New Topic  Послать ответ / Post A Reply Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2