Не могу опросить регистр тепловычислителя ТВ7

Avatar
  • обновлен
  • На рассмотрении

Здраствуйте. Не могу опросить регистр тепловычислителя ТВ7 - параметр имеет длину 8 байт, порядок LE 2143. В свойствах канала какой тип данных выбрать? В описании протокола ТВ7 написано, что параметр например объем итоговый имеет адрес 7563 и занимает 4 регистра. Техподдержка термотроника пока отморозилась. 

Avatar
Максим

Спасибо попробую завтра.У нас время +4 часа от москвы

Avatar
Цитата от Максим

Если я считываю тип данных float32 - без проблем (Это и есть считывание 2ух последовательно расположенных регистров). Может считывать два канала float32?

И еще вопрос : чем тогда отличается float32 от dword&

Нужно прочитать два DWORD. (1 DWORD 2 регистра или 4 байта)

Avatar
Максим

Если я считываю тип данных float32 - без проблем (Это и есть считывание 2ух последовательно расположенных регистров). Может считывать два канала float32?

И еще вопрос : чем тогда отличается float32 от dword&

Avatar
Максим

Для чтения и записи регистров в стандарте «Modbus» предусмотрены специальные функции,
которые оперируют содержимым шестнадцатиразрядных регистров. Эти функции предполагают,
что прибор хранит данные только типа шестнадцатиразрядное беззнаковое целое и ничего не
«знают» о тех типах данных, которыми действительно представлены параметры прибора. Таким
образом, получается, что в приборе данные хранятся в некоем исходном формате, а передаются по
сети в виде набора шестнадцатиразрядных регистров. При передаче данных, чей размер в
исходном формате превышает 16 бит (long, float, double и т.д.), используются несколько
последовательных регистров. При этом младшие слова передаются в первую очередь, старшие - в
последнюю.

Avatar
Цитата от Максим

Сам я такой срипт не осилю. Пока только блоки разбираюсь. Помогите, если это не трудно.

Я выше уже написал - попробуйте для начала вычитать получается 2 DWORD - и уже от этого будем дальше отталкиваться.

Avatar
Максим

Сам я такой срипт не осилю. Пока только блоки разбираюсь. Помогите, если это не трудно.

Avatar
Цитата от Максим

Вот выдержка из описания протокола ТВ7

Image 1909

С целым числом фокус со склейкой прошел бы, с Double боюсь что может не получится.

Avatar
Цитата от Максим

Я правильно понял: 

- Есть параметр в приборе (итоговый рахсод в ТВ7 например), так как параметр имеет тип double, то он занимает 4 последовательно расположенных регистра по 16 бит каждый, соответтсвенно 16 бит*4=8байт и занимает регистры 7563, 7564, 7565, 7566.

- скада должна опросить одним физ.каналом регистры 7563 и 7564 (Dword), а вторым физ.каналом регистры 7565 и 7566 (Dword).

- далее в виртуальном канале посредством скрипта складывается значение двух физ.каналов и результат сложения уже используется .

В общих чертах - да. Только в скрипте не простое сложение двух значений, а побитно надо будет их "склеить"

Avatar
Максим

Вот выдержка из описания протокола ТВ7

Image 1909

Avatar
Максим

Я правильно понял: 

- Есть параметр в приборе (итоговый рахсод в ТВ7 например), так как параметр имеет тип double, то он занимает 4 последовательно расположенных регистра по 16 бит каждый, соответтсвенно 16 бит*4=8байт и занимает регистры 7563, 7564, 7565, 7566.

- скада должна опросить одним физ.каналом регистры 7563 и 7564 (Dword), а вторым физ.каналом регистры 7565 и 7566 (Dword).

- далее в виртуальном канале посредством скрипта складывается значение двух физ.каналов и результат сложения уже используется .