Пишу программу для панели оператора под WindowsCE 6.0 .NET 3.5 C# + программу для ПЛК160. Использую библиотеку NModbus. Может кто сталкивался с этим. Вот код С#:
Код:
            
            float f1 = -10;
            int f2 = -10;
            byte[] bytes = BitConverter.GetBytes(f1);
            ushort[] us = new ushort[2];
            us[0] = BitConverter.ToUInt16(bytes, 0);
            us[1] = BitConverter.ToUInt16(bytes, 2);
           

                    mb.WriteMultipleRegisters(1, 2, us);
Вот код CoDeSys:
Код:
Par3:= DWORD_TO_INT(%QD7.2.0);
Par4:=DWORD_TO_DINT(%QD7.2.0);
Par5:=DWORD_TO_REAL(%QD7.2.0);
Так вот когда я отправляю f2 тоесть INT то все ок, Par3 и Par4 и Par5 = -10. Если же я использую f1 тоесть Float то приходят какие-то непонятные цифры