Hello everyone,
I have a Rika brand sensor, RK520-11 with RS485 output, using the following program I can read data but not the data I should.
Public BattV
Public PTemp_C
Public Temp, Moisture, EC, pH
Public ResultCode(5)
Units BattV=Volts
Units PTemp_C=Deg C
DataTable(minutal,True,-1)
DataInterval(0,60,Sec,10)
Minimum(1,BattV,FP2,False,False)
EndTable
BeginProg
SerialOpen(Com2,9600,3,0,50000,4)
Scan(10,Sec,1,0)
Battery(BattV)
PanelTemp(PTemp_C,60)
ModbusMaster(ResultCode(1),Com2,9600,1,3,Temp,1,1,2,100,1)
ModbusMaster(ResultCode(2),Com2,9600,1,3,Moisture,2,1,2,100,3)
ModbusMaster(ResultCode(3),Com2,9600,1,3,EC,3,1,2,100,3)
ModbusMaster(ResultCode(4),Com2,9600,1,3,pH,4,1,2,100,3)
Delay (0,500,mSec)
CallTable minutal
NextScan
EndProg
What do I mean by not real data, that the result of the data is extremely small, for example: 2.176568e-38, etc.
When I read the sensor data via modbus poll, I see integers (successful reading).What I have realized is that if in modbus poll, I view the data with the 32 bit float big-endian format, I see the same value that the datalogger gives me: 2.176568e-38. (but if I view the data as "signed" in modbus poll, I see an integer: 221) Finally, the value that I want to record in the datalogger is "221" and not "2.176568e-38".
How could I save the data that way? I was looking at the MoveBytes instruction but I can't do it.
Any help would be greatly appreciated.
Greetings!