Сообщение от
Gi0
Спасибо, действительно помогло записать в свой макрос и запустить ф. областью.
Теперь могу считать и вывести в цифровом дисплее значение PSW[300].
Чтобы производить математические операции со значением сопротивления в регистре PSW[300] я так понимаю должен перевести в float? затем выполнить математические операции по моей формуле, а затем конвертировать снова в dword и записать в новый регистр, который и хочу вывести на дисплей?
Например вот так:
float fT1; // задаю переменные
float fT11;
Read(NET_0, 1, MODBUS_TCP_REG_4X, 4000, 0, TYPE_DWORD, &PSW[300]); // считываю дворд в 200 регистр внутренней памяти
fT1=(*(float*)&(PSW[300])); //конвертирую дворд в число с плавающей точкой
fT11=fT1+555; //математические вычисления с числами
PSW[400]=(*(DWORD*)&(fT11)); //обратно конвертирую число с плавающей точкой в дворд
На графическом дисплее создаю цифровой дисплей и вывожу PSW[400] с отображением значения в формате float.
В результате на цифровом дисплее "0".
Код:
float fT1, fT11;
Read(NET_0, 1, MODBUS_TCP_REG_4X, 4000, 0, TYPE_DWORD, &fT1); //Читаем сразу в переменную
//Уж если хочется увидить на экране
*(float*)(PSW+300) = fT1; //то делаем так
//естественно, что для дисплея в настройках Регистра нужен Dword PSW300
// Захват-1.png
//и формат данных - float
//Захват-2.png
fT11=fT1+555; //математические вычисления с числами
*(float*)(PSW+400) = fT11; // результат на экран. НАСТРОЙКИ дисплея - аналогичные