Форум 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 / Algorithm Programming Languages » преобразование Float64 из Modbus

   
Автор / Author Тема / Topic: преобразование Float64 из Modbus
Dmitrii
Junior Member / Новичок
Участник № / Member № 6880


Icon 1 отправлено / posted      Профиль для / Profile for Dmitrii           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Добрый день.
По Modbus в 8 аргументов канала Сall тип вызова chGroupReq получаем значение формата Float64, соответственно значение порезано на 8частей.
Подскажите пожалуйста как его собрать в применяемую форму. В FBD есть только блок DHL c ограничением до 32 битов.

Сообщения / Posts 24 | Из / 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 
Как Вы запрашиваете 8-байтовое число в 8 аргументах Call.ChGroupReq, не понятно.

Пришлите, пожалуйста, на адрес техподдержки (hotline@adastra.ru) Ваш проект и ясное описание форматов представления и хранения, а также порядка передачи вещественных чисел с двойной точностью из Вашего Modbus-устройства.

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


Icon 1 отправлено / posted      Профиль для / Profile for Dmitrii           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Читаем по Modbus так:
Источник/приемник - группа Modbus - компонент Rout_Word(3)#1
он привязан к Call.ChGroupReq в аргументы которого и записываются значения. Я их получаю проблем нет.
пример: ARG_000 = 64 (десятичный система счисления) ...... ARG_007 = 58.
Если в 16 системе счисления, последовательно начиная с 1-го аргумента записать все значения 408058D2D82DA058 у меня получается нужное значение в десятичном виде 523.103(проверял в конвертере). Вопрос как его собрать в десятичном виде в TRACE MODE.

По Modbus из устройства передается 4 регистра, тип данных Float64

Сообщения / Posts 24 | Из / 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 
Если Вы действительно без погрешностей получили 8 последовательных байтов из 4-х регистров Modbus, Вам проще получить 2 числа в формате UDINT, а затем в ST-программе реализовать функцию "конвертора" в соответствии с формулой стандартного LREAL-преобразования HEX-представления в десятичное.
Сообщения / Posts 17082 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
oasafronov
Junior Member / Новичок
Участник № / Member № 8846


Icon 1 отправлено / posted      Профиль для / Profile for oasafronov           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте, а можно поподробнее про реализацию функции конвертора, каким образом присваивать к LReal допустим два 4х байтных UDINT, либо 8 байт. Промежуточных целочисленных 8 байтных данных нет, операции сдвига, либо прямой доступ к байтам/словам к типу LReal я применять не могу... Что можно использовать?
Сообщения / Posts 2 | Из / 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 
Здравствуйте.
Подробный ответ дан почтой.
В общем случае, необходимо правильно разложить все биты и собрать из них бит знака, биты порядка и мантиссы (как целочисленные) и математически преобразовать их в вещественное.

Сообщения / Posts 17082 | Из / 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