PDA

Просмотр полной версии : Подключение датчика температуры и влажности ПВТ100 к ПР200



Newcomer
20.05.2017, 18:52
В ПР200 надо опрашивать по RS-485 ПВТ100. В РЭ на ПВТ100 приведена таблица. Я так понимаю, что номер первого регистра это и есть адрес регистра, который надо забить в таблицу сетевых переменных в ОЛ. Но в таблицу сетевых переменных невозможно забить регистры с адресами 258 (0х0102) и 259 (0х0103). Адреса 258 и 259 не уживаются друг с другом. По отдельности вводятся, а оба нет. Или я что-то не понимаю.

ASo
20.05.2017, 21:02
Естественно не уживаются, раз Вы читаете float, а должны int.

Newcomer
21.05.2017, 10:01
Естественно не уживаются, раз Вы читаете float, а должны int.

Спасибо, ваш совет помог.

Newcomer
22.05.2017, 20:29
Обнаружил, что целочисленная переменная в ОЛ не может иметь отрицательные значения. Каким тогда образом считывать в ПР200 по RS-485 отрицательные значения температуры из ПВТ100 ?

rovki
22.05.2017, 20:41
Анализировать 15 бит , это для индикации ,а если для вычислений ,то потом преобразовывать во флоат .

Newcomer
22.05.2017, 22:24
Анализировать 15 бит , это для индикации ,а если для вычислений ,то потом преобразовывать во флоат .

Целочисленное в ОЛ имеет диапазон от 0 до 4294967295 или 0 ... FFFFFF. и что там анализировать ? Старший бит не является знаковым.

rovki
22.05.2017, 23:08
INT в пр200 - 0....65535
В ол не является знаковым ,а в устройстве является .

Newcomer
23.05.2017, 11:53
INT в пр200 - 0....65535
В ол не является знаковым ,а в устройстве является .

И как можно переменной INT в ПР200 присвоить отрицательное значение ?

ASo
23.05.2017, 11:55
Никак. Но курите что такое дополнительный код. В ПР именно он.

Newcomer
23.05.2017, 11:58
Пробовал передавать переменную b в панель. В панели тупо показывает 0, а не -1. Что про это скажите ?

Newcomer
23.05.2017, 12:08
INT в пр200 - 0....65535
В ол не является знаковым ,а в устройстве является .

Программировать ПР200 можно только в среде ОЛ. В ОЛ целочисленное является беззнаковым.

Newcomer
23.05.2017, 12:27
Преобразование отрицательного Float в целочисленное и обратное преобразование во Float. Прямое преобразование ОЛ как-то изобразил, а с обратным преобразованием ОЛ облажался. ;)

Newcomer
23.05.2017, 12:30
Никак. Но курите что такое дополнительный код. В ПР именно он.

Вы точно знаете что в ОЛ отрицательные числа представляются в дополнительном коде ?

Newcomer
23.05.2017, 13:29
А нет ли у кого-нибудь макроса, который переводит целое, представленное в дополнительном коде, во Float ?

ОЛ этого делать не может.

Сергей0308
23.05.2017, 15:05
А нет ли у кого-нибудь макроса, который переводит целое, представленное в дополнительном коде, во Float ?

ОЛ этого делать не может.

Вот посмотрите:

31314

Может подойдёт
http://www.owen.ru/forum/showthread.php?t=13106&page=3

Newcomer
23.05.2017, 15:29
Спасибо. попробую.

Newcomer
23.05.2017, 15:39
А функцию FSEL вы где взяли ?

Сергей0308
23.05.2017, 16:01
А функцию FSEL вы где взяли ?

Раньше она была только в виде макроса, сейчас и в ОЛ есть!
В данном случае её можно заменить умножением:

31316

Newcomer
23.05.2017, 16:03
Раньше она была только в виде макроса, сейчас и в ОЛ есть!

У меня в ОП нет. Где этот макрос найти ? А зачем там FSEL нужен, вроде целые числа сравниваются ?

Сергей0308
23.05.2017, 16:21
У меня в ОП нет. Где этот макрос найти ? А зачем там FSEL нужен, вроде целые числа сравниваются ?

Я же ссылку дал, там можно прочитать. что Вы спрашиваете, короче FLOAT нужен чтобы отрицательные числа в ОЛ и в ПР показать!
Вот в ОЛ:

31319

Если у Вас нет, обновите ОЛ!

Newcomer
24.05.2017, 11:25
Что за хрень. Создаю новый проект, открываю папку функции и вижу там функцию FSEL. Начинаю создавать макрос, открываю папку функции и не вижу там функции FSEL. Как это понимать ?

Василий Кашуба
24.05.2017, 11:29
Что за хрень. Создаю новый проект, открываю папку функции и вижу там функцию FSEL. Начинаю создавать макрос, открываю папку функции и не вижу там функции FSEL. Как это понимать ?
На этот баг уже указывали, пообещали исправить в следующем релизе.

Newcomer
24.05.2017, 11:52
На этот баг уже указывали, пообещали исправить в следующем релизе.

Только что обновил ОЛ. Какой еще новый релиз может быть ?

Василий Кашуба
24.05.2017, 11:53
Только что обновил ОЛ. Какой еще новый релиз может быть ?
Который выйдет после этого.

Василий Кашуба
24.05.2017, 11:56
Релизы не так часто обновляют.(Сегодня сообщили о баге, на завтра новый релиз?)

jury_yamal
24.09.2018, 19:28
Добрый вечер!
Если позволите спрошу здесь. У меня похожая ситуация, есть пр200 мастер (1 слот)+ ПВТ100 +ПВТ 10 и СП 307 мастер на (2 слоте ПР слейв). Нужно получить значение с ПВТ обработать в программе и передать в СП307. Так вот вопрос что я увижу в сетевой переменной ОЛ( считанной с ПВТ100 по адресу 0х0102 при температуре -40).число 4000 с взведенным 15 битом или 61536 в дополнительном коде?

petera
25.09.2018, 01:28
Добрый вечер!
Если позволите спрошу здесь. У меня похожая ситуация, есть пр200 мастер (1 слот)+ ПВТ100 +ПВТ 10 и СП 307 мастер на (2 слоте ПР слейв). Нужно получить значение с ПВТ обработать в программе и передать в СП307. Так вот вопрос что я увижу в сетевой переменной ОЛ( считанной с ПВТ100 по адресу 0х0102 при температуре -40).число 4000 с взведенным 15 битом или 61536 в дополнительном коде?
в сетевой переменной ОЛ естественно будет -4000 в дополнительном коде, т.е 61536