Форум 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 » Преобразование типов данных

   
Автор / Author Тема / Topic: Преобразование типов данных
Nicolay B.
Junior Member / Новичок
Участник № / Member № 4338


Icon 1 отправлено / posted      Профиль для / Profile for Nicolay B.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Здравствуйте! Не подскажите как реализовать преобразование типов в FBD программе после блока DHL который мне выдал DINT. В свою очередь мне надо этот результат преобразовать в Real.
Сообщения / Posts 30 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Свяжите выход блока DHL с выходным аргументом программы, который имеет тип данных REAL или LREAL. В этом аргументе программы Вы получите число в вещественном формате.
Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nicolay B.
Junior Member / Новичок
Участник № / Member № 4338


Icon 1 отправлено / posted      Профиль для / Profile for Nicolay B.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
А такую функцию можно реализовать

psingle(@i)^

Сообщения / Posts 30 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Откуда Вы получаете 4-байтовый массив?
Если по протоколу Modbus, то надо запросить его встроенной в наш Modbus-драйвер функцией Rin_Float(4) или Rout_Float(3).

Если в драйвере протокола такое преобразование не предусмотрено, надо реализовывать преобразование в ST-программе по формуле, соответствующей стандарту представления числа FLOAT.

Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nicolay B.
Junior Member / Новичок
Участник № / Member № 4338


Icon 1 отправлено / posted      Профиль для / Profile for Nicolay B.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Да это протокол ModBus. Делаю запрос на получение структуры данных. Использую ChGroupReq с 8 двух байтовыми аргументами, далее их преобразую в программе.
Сообщения / Posts 30 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Значит, надо использовать тот же механизм группового запроса через ChGroupReq с 4 аргументами с типом данных REAL, только выбрать одну из указанных функций выше Modbus-функций.
В аргументах канала Вы получите нужные Вам переменные в формате FLOAT.
Необходимо только (при необходимости) обеспечить адаптацию к порядку передаваемых регистров. Об этом написано в HELP в описании обмена по протоколу Modbus.

Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nicolay B.
Junior Member / Новичок
Участник № / Member № 4338


Icon 1 отправлено / posted      Профиль для / Profile for Nicolay B.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Данной решение не совсем подходит так как лицензия на 128 каналов, а расширять не собираемся. И у меня осталось 5 каналов и 5 приборов и все они по такому сценарию.
Сообщения / Posts 30 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nicolay B.
Junior Member / Новичок
Участник № / Member № 4338


Icon 1 отправлено / posted      Профиль для / Profile for Nicolay B.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Вариант с ...
quote:
реализовывать преобразование в ST-программе по формуле, соответствующей стандарту представления числа FLOAT.
мне бы подошел.
Сообщения / Posts 30 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Вы писали:
"Делаю запрос на получение структуры данных. Использую ChGroupReq с 8 двух байтовыми аргументами, далее их преобразую в программе. "

Как Вы "преобразуете" полученные 2-байтовые переменные и как далее используете преобразованные данные?

Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nicolay B.
Junior Member / Новичок
Участник № / Member № 4338


Icon 1 отправлено / posted      Профиль для / Profile for Nicolay B.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
В FBD программе блоком DHL, далее я делаю преобразование в Real путем присвоения выходному аргументу типа Real.
Сообщения / Posts 30 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Как дальше используются полученные в программе данные?
Отображение на экране, архивирование, сообщения в ОТ, документирование?

Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nicolay B.
Junior Member / Новичок
Участник № / Member № 4338


Icon 1 отправлено / posted      Профиль для / Profile for Nicolay B.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Отображение на экране.
Сообщения / Posts 30 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


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

Цитирую более ранний пост:
"Значит, надо использовать тот же механизм группового запроса через ChGroupReq с 4 аргументами с типом данных REAL, только выбрать одну из указанных функций выше Modbus-функций (Rin_Float(4) или Rout_Float(3)).
В аргументах канала Вы получите нужные Вам переменные в формате FLOAT.
Необходимо только (при необходимости) обеспечить адаптацию к порядку передаваемых регистров. Об этом написано в HELP в описании обмена по протоколу Modbus. "

Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nicolay B.
Junior Member / Новичок
Участник № / Member № 4338


Icon 1 отправлено / posted      Профиль для / Profile for Nicolay B.           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Это не совсем возможно так как искомое значение лежит не в начальных переменных группового запроса.
Также в этом запросе присутствуют данные и Real и Word и DWord.

Сообщения / Posts 30 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
В этой ситуации Вам придется выбрать 1 из трех вариантов:
- увеличивать количество запросов (по форматам переменных),
- самостоятельно программировать преобразование форматов,
- приспособить групповой запрос с привязкой CALL.ChGroupReq к Modbus-переменной R_FIFO_Queue с ПАРАМЕТР <> 0 (см.документацию).

Сообщения / Posts 15120 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Игорь Моисеев
Active Forum Member / Активный участник форума
Участник № / Member № 6355


Icon 1 отправлено / posted      Профиль для / Profile for Игорь Моисеев           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
неужели так тяжело написать функции преобразования данных и добавить их в библиотеки Техно Trace Mode? Так сделано во всех языках программирования АСУ ТП.
Сообщения / Posts 61 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post   Вставить в ответ текст исходного сообщения  / Reply With Quote 
Мы будем иметь в виду Ваше предложение.
Сообщения / Posts 15120 | Из / From: Russia  |  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

Rambler's Top100 Rambler's Top100



Powered by Infopop Corporation
UBB.classic™ 6.7.2