PDA

Просмотр полной версии : Сетевой обмен данными с плавающей точкой



LamSer
12.08.2014, 09:33
Необходимо передать дробное число с блока "Цифровой ввод" сп270 на сетевой вход пр114. При создании сетевой переменной с плв. точкой занимается два регистра.14032
Какой регистр надо указать в "Цифровом вводе", какой тип данных выбрать и какой формат указать? 1403314034.
Заранее спасибо.

melky
12.08.2014, 09:50
В Панеле ставить float. Тип данных либо Real либо DWORD (точно не скажу, так как с сп270 не работал) переменная занимает 2 регистра, 4 байта.

Павел Братковский
12.08.2014, 09:52
есть такая брошюра "пр вводный курс" там все подробно описано скачивал с форума здесь прикрепить не получается

могу на почту скинуть

LamSer
12.08.2014, 10:03
А в регистр какой указывать?

LamSer
12.08.2014, 10:03
Брошюру читал. Про сетевой обмен написано в 7ой главе. Там приведен пример только с целочисленной сетевой переменной, про переменную с пл точкой там нет.

melky
12.08.2014, 10:09
LamSer для панели переменная с плавающей точкой это float, единственное, на одном из скринов у вас стоит WORD, а float (он же REAL) занимает 4 байта (2 регистра)
Единственное, вам может придется менять регистры местами и даже может быть байты в регистре местами, или что-то одно из этого. Зависит как панель и ПР с ними работает.
Ну так 0х205 это и есть в десятичном 517

LamSer
12.08.2014, 10:13
Ну так я и задал вопрос - какой тип данных выбрать. На выбор Word b DWord. видимо надо выбирать DWord ?

melky
12.08.2014, 10:14
Да, так как это двойное слово, то есть 4 байта.
У вас же в ПР указано сколько битов на один регистр идет 0х2050-0х205F -то есть 16 бит, а вся переменная занимает 32 бита.

petera
12.08.2014, 10:43
Необходимо передать дробное число с блока "Цифровой ввод" сп270 на сетевой вход пр114. При создании сетевой переменной с плв. точкой занимается два регистра.14032
Какой регистр надо указать в "Цифровом вводе", какой тип данных выбрать и какой формат указать? 1403314034.
Заранее спасибо.
Посмотрите здесь http://www.owen.ru/forum/showthread.php?t=4044&p=112922&viewfull=1#post112922
В вашем случае адреса для дисплеев д.б 517 и 519

Don_Omar
15.08.2014, 15:07
При создании сетевой переменной с плв. точкой занимается два регистра.14032
Переменная Float должна занимать 2 регистра. В OWEN Logic глюк небольшой, после добавления сетевой переменной она занимает 4 регистра, как на вашем скриншоте. После перезапуска проекта все встает на свои места. Отсюда у вас наверное и возникли проблемы. Из-за этого глюка невозможно никак использовать последнюю сетевую переменную, и в общем доставляет это все неудобства. Нужно добавлять переменную, перезапускать проект, добавлять следующую переменную, и т.д. чтобы потом не получилось промежутков, в который уже не засунешь переменную...Прошу разработчиков ПО обратить на это внимание, если, конечно, уже не обратили.
Соответственно это будет переменная Float, для переменной b6 0х0205 в десятичном 517.

melky
15.08.2014, 15:38
Don_Omar там две переменных, b6 и b7

Don_Omar
15.08.2014, 16:12
Don_Omar там две переменных, b6 и b7
После того как проект для ПР114 перезапустит и каждая переменная станет на свое место (займет 2 регистра), в данном случае b7 будет 0х0207 или 519. А переменная по адресу 0х0206 окажется пустой.

melky
18.08.2014, 09:52
Don_Omar да с какого перепуга 0х206 останется пустой если это составляющая переменной b6, была, есть и останется ????????????????????????
а b7 как была по адресу 0х207 так на своем месте и будет...

Сергей-Ростов
10.03.2017, 14:44
Пробовал все, о чем пишут, не помогло ничего!
Взял ввод данных, поставил как базу данных и все пошло!
Смысл в том, что DWORD это значение положительное от 0 до 32т, в то время в ПР FLOAT это значение от -16т до 16т.
Значение FLOAT - Для панели и ПР разное, понятие другие.