Сообщение от
petera
А разве так не работает?
float Value = 123.4;
int Adr =701;
Write(HMI_LOCAL_MCH, 0, TYPE_PFW, Adr, 0, TYPE_DWORD, Value);
Так не работает
А так работает
Код:
float Value = 123.4;
int Adr =700;
Write(HMI_LOCAL_MCH, 0, TYPE_PFW, Adr, 0, TYPE_DWORD, Float_2_DWord(Value));
Еще пример, рабочий
Код:
float a, b, result[4];
Reads(HMI_LOCAL_MCH, 0, TYPE_PFW, 300, 2, &a); //Читать из PFW300 значение "a" (Float)
Reads(HMI_LOCAL_MCH, 0, TYPE_PFW, 302, 2, &b); //Читать из PFW302 значение "b" (Float)
/* Или вариант с функцией READ()
Read(HMI_LOCAL_MCH, 0, TYPE_PFW, 300, 0, TYPE_DWORD, &a);
Read(HMI_LOCAL_MCH, 0, TYPE_PFW, 302, 0, TYPE_DWORD, &b);
*/
result[0]=a+b;
result[1]=a-b;
result[2]=a*b;
if(b!=0)
result[3]=a/b;
Writes(HMI_LOCAL_MCH, 0, TYPE_PFW, 304, 8, result); //Записать в PFW304, PFW306, PFW308, PFW310 результаты вычислений в формате Float
По этому такая конструкция тоже работает
Код:
float Value[1] = {567.8};
int Adr =700;
Writes(HMI_LOCAL_MCH, 0, TYPE_PFW, Adr, 2, Value);