Модбас библиотека

Простейшие вопросы в области инженерной разработки
Ответить
AlexOskar
user
user
Сообщения: 95
Зарегистрирован: 05 июл 2016, 21:02
Версия LabVIEW: 12
Контактная информация:

Модбас библиотека

Сообщение AlexOskar »

Сейчас ковыряю Модбас библиотеку для LV. Внутри наткнулся на такой блок (вложение). Что происходит в этом блоке? Информация в него поступает при чтение из порта после запроса.
Вложения
CRC.vi
(10.76 КБ) 103 скачивания
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5461
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

Re: Модбас библиотека

Сообщение IvanLis »

AlexOskar писал(а):Сейчас ковыряю Модбас библиотеку для LV. Внутри наткнулся на такой блок (вложение). Что происходит в этом блоке? Информация в него поступает при чтение из порта после запроса.
Это функция для вычисления CRC (https://ru.wikipedia.org/wiki/%D0%A6%D0 ... 0%BE%D0%B4) хеша из поступившей строки.
Только у Вас в функции все входы и выходы почему-то отключены :crazy:
AlexOskar
user
user
Сообщения: 95
Зарегистрирован: 05 июл 2016, 21:02
Версия LabVIEW: 12
Контактная информация:

Re: Модбас библиотека

Сообщение AlexOskar »

Это подприбор и выходы заканчиваются терминалами. Я бы хотел узнать алгоритм вычислений.
Насколько я понял у входящей строки отсекается адрес слейва и идет проверка целостности данных. Но там 7 итераций, т.е. получается что должен быть стандартный 8-ми байтовый ответ?
Проблема в том, что я сейчас работаю с кастрированной версией Модбаса и ответ состоит из 6-ти байт и в этом блоке происходит ошибка.
Был бы признателен за картинку со стрелками и пояснениями
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Модбас библиотека

Сообщение Blackman »

Если строка ADU (Application Data Unit) принята без ошибок, то ее контрольная сумма (CRC-16) должна быть равна нулю.
Во вложенном VI алгоритм вычисления.
Вложения
MB_RTU_ADU_CheckSum (CRC16).vi
(10.72 КБ) 81 скачивание
golf2109
interested
interested
Сообщения: 3
Зарегистрирован: 23 авг 2016, 13:47
Версия LabVIEW: 2015
Откуда: Ukraine, Kiev
Контактная информация:

Re: Модбас библиотека

Сообщение golf2109 »

AlexOskar писал(а): Проблема в том, что я сейчас работаю с кастрированной версией Модбаса и ответ состоит из 6-ти байт и в этом блоке происходит ошибка.
А в чем "кастрированность" Вашей версии Модбаса?
может она CRC не так считает или не читает его вообще или не посылает его в ответ
AlexOskar
user
user
Сообщения: 95
Зарегистрирован: 05 июл 2016, 21:02
Версия LabVIEW: 12
Контактная информация:

Re: Модбас библиотека

Сообщение AlexOskar »

golf2109 писал(а):
AlexOskar писал(а): Проблема в том, что я сейчас работаю с кастрированной версией Модбаса и ответ состоит из 6-ти байт и в этом блоке происходит ошибка.
А в чем "кастрированность" Вашей версии Модбаса?
может она CRC не так считает или не читает его вообще или не посылает его в ответ
В том что код функции на чтение HoldingRegistr = 08, а не 03. Нет возможности забирать информацию из всех ячеек, а нужно каждую опрашивать. Короче модбас библиотекой не воспользоваться. Это пока основные неудобства
AlexOskar
user
user
Сообщения: 95
Зарегистрирован: 05 июл 2016, 21:02
Версия LabVIEW: 12
Контактная информация:

Re: Модбас библиотека

Сообщение AlexOskar »

Blackman писал(а):Если строка ADU (Application Data Unit) принята без ошибок, то ее контрольная сумма (CRC-16) должна быть равна нулю.
Во вложенном VI алгоритм вычисления.
На выходе представленного мной VI он к исходной строке добавляет 0000. Так и должно быть в таком алгоритме?
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

Re: Модбас библиотека

Сообщение Blackman »

AlexOscar! Вы уверенны, что Ваш девайс соответствует
MODBUS APPLICATION PROTOCOL SPECIFICATION V1.1b3 ?

6.8 08 (0x08) Diagnostics (Serial Line only)
MODBUS function code 08 provides a series of tests for checking the communication system
between a client device and a server, or for checking various internal error conditions within a
server.
The function uses a two–byte sub-function code field in the query to define the type of test to
be performed. The server echoes both the function code and sub-function code in a normal
response. Some of the diagnostics cause data to be returned from the remote device in the
data field of a normal response.
In general, issuing a diagnostic function to a remote device does not affect the running of the
user program in the remote device. User logic, like discrete and registers, is not accessed by
the diagnostics.
Certain functions can optionally reset error counters in the remote device.

A server device can, however, be forced into ‘Listen Only Mode’ in which it will monitor the
messages on the communications system but not respond to them. This can affect the
outcome of your application program if it depends upon any further exchange of data with the
remote device. Generally, the mode is forced to remove a malfunctioning remote device from
the communications system.
AlexOskar
user
user
Сообщения: 95
Зарегистрирован: 05 июл 2016, 21:02
Версия LabVIEW: 12
Контактная информация:

Re: Модбас библиотека

Сообщение AlexOskar »

В том то и проблема, что не соответствует
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»