Search the Community
Showing results for tags 'mf'.
Hello, I'm have some problems with the conversion of two integers to a floating point value. I have a modbus energy meter (SDM120) who works with 32bit IEEE745 floats values. In visilogic I receive two 16bit integers (MI); MI0 : 15643 MI1: -23069 I converted these integers to bits by the 'num to bit' function block. These are the converted value's : MI0 : 15643 --> 0011 1101 0001 1011 MI1: -23069 --> 1010 0101 1110 0011 If I put the two value's behind eachother I get the following binary code: 0011 1101 0001 1011 1010 0101 1110 0011 (MI0,MI1) When I fill in these binary code on a online binary to IEEE745 converter I get the following result: 0,038 This matches with the amps showing on the energy meter's display. The question is; How can can I make from MI0(15643) and MI1(-23069) a float in Visilogic So, MI0(15643) and MI1(-23069) -------------- some kind of formula -----------> MF0 = 0,038 Annyone who can help? Best regards, Jelmer
Hi, Would someone explain me how can I send correctly variables type REAL (MF`s) over Modbus-TCP? I am working with a PLC V1210 with Internet card V200-19-ET2, it talks to an Anybus X-gateway ( AB7629-F) which is Profibus-Master and Modbus Slave then the Anybus will send the data to a Nachi Robot CFD controller. I already set the comms between all devices and I can send/receive data to each other. My problem starts when I try to send the variable with decimal point (i.e 1.5) to the robot. But let me explain where I have got so far. Before send it to the robot I get the MF0 and copied to a DW0 variable with COPY MEMORY function with the following parameters: COPY MEMORY FUNCTION MF0 = A 0 = B DW0 = C 0 = D 4 = E When I store the value 1 to MF0 my DW0 displays the value 16256 and the Robot gets the same value 16256. However when I start to change the values into MF0 the robot starts receive different values. I have tried many things but I believe I have missed some information in terms how to convert these variables type. Obs: The robot program side gets block of 32 bits and then convert to a DINT variable and after that /100 and store the result into a variable type REAL with decimal point. If there is anyone who could give me a explanation how to deal with this problem would be great. Thanks for now and this is my first topic. I already set the comms between all devices and I can send/receive data to each other.
Hi, May be this is an old topic. I have done my project in 9.3.0 before. For MF values give the min and max values through the HMI tab itself and that doesn't show any compilation errors. After I download and use 9.4.0 I couldn't set the value which causes so many compilation errors. How could I rectify that. (removing all set values and do it by means of ladder...?).