Dmitrii
Junior Member / Новичок
Участник № / Member № 6880
отправлено / posted
Добрый день. По Modbus в 8 аргументов канала Сall тип вызова chGroupReq получаем значение формата Float64, соответственно значение порезано на 8частей. Подскажите пожалуйста как его собрать в применяемую форму. В FBD есть только блок DHL c ограничением до 32 битов.
Сообщения / Posts 24 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Как Вы запрашиваете 8-байтовое число в 8 аргументах Call.ChGroupReq, не понятно.
Пришлите, пожалуйста, на адрес техподдержки (hotline@adastra.ru) Ваш проект и ясное описание форматов представления и хранения, а также порядка передачи вещественных чисел с двойной точностью из Вашего Modbus-устройства.
Сообщения / Posts 17315 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Dmitrii
Junior Member / Новичок
Участник № / Member № 6880
отправлено / posted
Читаем по Modbus так: Источник/приемник - группа Modbus - компонент Rout_Word(3)#1 он привязан к Call.ChGroupReq в аргументы которого и записываются значения. Я их получаю проблем нет. пример: ARG_000 = 64 (десятичный система счисления) ...... ARG_007 = 58. Если в 16 системе счисления, последовательно начиная с 1-го аргумента записать все значения 408058D2D82DA058 у меня получается нужное значение в десятичном виде 523.103(проверял в конвертере). Вопрос как его собрать в десятичном виде в TRACE MODE.
отправлено / posted
Если Вы действительно без погрешностей получили 8 последовательных байтов из 4-х регистров Modbus, Вам проще получить 2 числа в формате UDINT, а затем в ST-программе реализовать функцию "конвертора" в соответствии с формулой стандартного LREAL-преобразования HEX-представления в десятичное.
Сообщения / Posts 17315 | Из / From: Россия
| IP / IP: IP адрес / IP address |
oasafronov
Junior Member / Новичок
Участник № / Member № 8846
отправлено / posted
Здравствуйте, а можно поподробнее про реализацию функции конвертора, каким образом присваивать к LReal допустим два 4х байтных UDINT, либо 8 байт. Промежуточных целочисленных 8 байтных данных нет, операции сдвига, либо прямой доступ к байтам/словам к типу LReal я применять не могу... Что можно использовать?
Сообщения / Posts 2 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Здравствуйте. Подробный ответ дан почтой. В общем случае, необходимо правильно разложить все биты и собрать из них бит знака, биты порядка и мантиссы (как целочисленные) и математически преобразовать их в вещественное.
Сообщения / Posts 17315 | Из / From: Россия
| IP / IP: IP адрес / IP address |