Модбас библиотека
-
- user
- Сообщения: 95
- Зарегистрирован: 05 июл 2016, 21:02
- Версия LabVIEW: 12
- Контактная информация:
Модбас библиотека
Сейчас ковыряю Модбас библиотеку для LV. Внутри наткнулся на такой блок (вложение). Что происходит в этом блоке? Информация в него поступает при чтение из порта после запроса.
- Вложения
-
- CRC.vi
- (10.76 КБ) 103 скачивания
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 88 раз
Re: Модбас библиотека
Это функция для вычисления CRC (https://ru.wikipedia.org/wiki/%D0%A6%D0 ... 0%BE%D0%B4) хеша из поступившей строки.AlexOskar писал(а):Сейчас ковыряю Модбас библиотеку для LV. Внутри наткнулся на такой блок (вложение). Что происходит в этом блоке? Информация в него поступает при чтение из порта после запроса.
Только у Вас в функции все входы и выходы почему-то отключены
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- user
- Сообщения: 95
- Зарегистрирован: 05 июл 2016, 21:02
- Версия LabVIEW: 12
- Контактная информация:
Re: Модбас библиотека
Это подприбор и выходы заканчиваются терминалами. Я бы хотел узнать алгоритм вычислений.
Насколько я понял у входящей строки отсекается адрес слейва и идет проверка целостности данных. Но там 7 итераций, т.е. получается что должен быть стандартный 8-ми байтовый ответ?
Проблема в том, что я сейчас работаю с кастрированной версией Модбаса и ответ состоит из 6-ти байт и в этом блоке происходит ошибка.
Был бы признателен за картинку со стрелками и пояснениями
Насколько я понял у входящей строки отсекается адрес слейва и идет проверка целостности данных. Но там 7 итераций, т.е. получается что должен быть стандартный 8-ми байтовый ответ?
Проблема в том, что я сейчас работаю с кастрированной версией Модбаса и ответ состоит из 6-ти байт и в этом блоке происходит ошибка.
Был бы признателен за картинку со стрелками и пояснениями
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Модбас библиотека
Если строка ADU (Application Data Unit) принята без ошибок, то ее контрольная сумма (CRC-16) должна быть равна нулю.
Во вложенном VI алгоритм вычисления.
Во вложенном VI алгоритм вычисления.
- Вложения
-
- MB_RTU_ADU_CheckSum (CRC16).vi
- (10.72 КБ) 81 скачивание
-
- interested
- Сообщения: 3
- Зарегистрирован: 23 авг 2016, 13:47
- Версия LabVIEW: 2015
- Откуда: Ukraine, Kiev
- Контактная информация:
Re: Модбас библиотека
А в чем "кастрированность" Вашей версии Модбаса?AlexOskar писал(а): Проблема в том, что я сейчас работаю с кастрированной версией Модбаса и ответ состоит из 6-ти байт и в этом блоке происходит ошибка.
может она CRC не так считает или не читает его вообще или не посылает его в ответ
-
- user
- Сообщения: 95
- Зарегистрирован: 05 июл 2016, 21:02
- Версия LabVIEW: 12
- Контактная информация:
Re: Модбас библиотека
В том что код функции на чтение HoldingRegistr = 08, а не 03. Нет возможности забирать информацию из всех ячеек, а нужно каждую опрашивать. Короче модбас библиотекой не воспользоваться. Это пока основные неудобстваgolf2109 писал(а):А в чем "кастрированность" Вашей версии Модбаса?AlexOskar писал(а): Проблема в том, что я сейчас работаю с кастрированной версией Модбаса и ответ состоит из 6-ти байт и в этом блоке происходит ошибка.
может она CRC не так считает или не читает его вообще или не посылает его в ответ
-
- user
- Сообщения: 95
- Зарегистрирован: 05 июл 2016, 21:02
- Версия LabVIEW: 12
- Контактная информация:
Re: Модбас библиотека
На выходе представленного мной VI он к исходной строке добавляет 0000. Так и должно быть в таком алгоритме?Blackman писал(а):Если строка ADU (Application Data Unit) принята без ошибок, то ее контрольная сумма (CRC-16) должна быть равна нулю.
Во вложенном VI алгоритм вычисления.
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Модбас библиотека
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.
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.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение