PDA

Просмотр полной версии : Float+float



CFC-ST
07.08.2019, 13:10
Добрый день! вот такая задача:
в панели СП307
в PSW340 и PSW341 лежит число a (float)
в PSW350 и PSW351 лежит число b (float)
нужно в PSW360 и PSW361 положить число с (float)
по такой формуле с= (а*0,85)-b

при условии, что в PSW340, PSW350 лежит старший регистр.


Просьба подсказать/написать текст макроса
и еще как написать такой макрос, если
в PSW340, PSW350 лежит младший регистр.
(из руководства пользователя не удалось самому написать)

petera
07.08.2019, 13:47
Добрый день! вот такая задача:
в панели СП307
в PSW340 и PSW341 лежит число a (float)
в PSW350 и PSW351 лежит число b (float)
нужно в PSW360 и PSW361 положить число с (float)
по такой формуле с= (а*0,85)-b

при условии, что в PSW340, PSW350 лежит старший регистр.


Просьба подсказать/написать текст макроса
и еще как написать такой макрос, если
в PSW340, PSW350 лежит младший регистр.
(из руководства пользователя не удалось самому написать)

Не нарушайте порядок вещей, старший и младший регистр для float всегда должны лежать так
43948 43949 43950

43947

float a = *(float*)(PSW+340);
float b = *(float*)(PSW+350);
float c;
c= (a * 0.85) - b;
*(float*)(PSW+360) = c;

CFC-ST
07.08.2019, 15:20
спасибо.
у меня СП307 мастер, а slave сторонее устройство (не ОВЕН)
и при этом в настройках проекта стоит галочка "изменить порядок регистров".
Так вот получаю с помощью макроса данные я меняю порядок регистров (иначе данные нормально не индицируются на панели)
поэтому мне и надо было из чисел "задом на перед" получать сумму.
теперь я эти числа разверну и сложу так как вы рекомендовали
спасибо

petera
07.08.2019, 15:27
спасибо.
у меня СП307 мастер, а slave сторонее устройство (не ОВЕН)
и при этом в настройках проекта стоит галочка "изменить порядок регистров".
Так вот получаю с помощью макроса данные я меняю порядок регистров (иначе данные нормально не индицируются на панели)
поэтому мне и надо было из чисел "задом на перед" получать сумму.
теперь я эти числа разверну и сложу так как вы рекомендовали
спасибо

А не проще ли убрать галочку "изменить порядок регистров", чтобы числа были не задом на перёд ?

CFC-ST
07.08.2019, 15:33
я так пробовал, НО
у меня еще обмен с ПР200 и вот
для ПР200 надо чтобы галочка была
иначе правильно числа с плавающей запятой из/в ПР200 в/из СП307 не передаются ( у меня) :(