
adccommunitymod (AutomationDirect) asked a question.
Created Date: March 06,2019
Created By: Phillip1955
**** This post has been imported from our legacy forum. Information in this post may be outdated and links contained in the post may no longer work.****
I remember seeing something on this some years ago but now I can't find the link. I'm trying to place a value from a DL06 V-memory into Modbus address 44098 in a SOLO controller. When the data is displayed on the front panel of the SOLO its leading integer is truncated. The connection is using a MWX box and writing BCD with 4 digits, no decimal - I need to input a temperature up to 1600 deg F for the setpoint. When I read the value in 44098 with a MRX box it shows the leading digit is dropped. I 've tried using BSL, BSR, MUL x 10, BIN, BCD boxes between the LD and the OUT to the register I'm sending via the MWX. Nothing gives me a 4 digit setpoint that matches the value in the V-register. The leading digit is always dropped, not the LSB. So the question is: How is data handled in the SOLO controller, and how can 4 digits be entered from a Modbus connection to properly set the setpoint? Decimals aren't desired/necessary.
Created Date: March 06,2019
Created by: Phillip1955
I remember seeing something on this some years ago but now I can't find the link.
I'm trying to place a value from a DL06 V-memory into Modbus address 44098 in a SOLO controller. When the data is displayed on the front panel of the SOLO its leading integer is truncated. The connection is using a MWX box and writing BCD with 4 digits, no decimal - I need to input a temperature up to 1600 deg F for the setpoint. When I read the value in 44098 with a MRX box it shows the leading digit is dropped.
I 've tried using BSL, BSR, MUL x 10, BIN, BCD boxes between the LD and the OUT to the register I'm sending via the MWX. Nothing gives me a 4 digit setpoint that matches the value in the V-register. The leading digit is always dropped, not the LSB.
So the question is: How is data handled in the SOLO controller, and how can 4 digits be entered from a Modbus connection to properly set the setpoint? Decimals aren't desired/necessary.
Created Date: March 06,2019
Created by: bcarlton
Do you have parameter P2-3 set to zero (no decimal point in display)? Is parameter P3-2 set to Fahrenheit?
Created Date: March 06,2019
Created by: Tinker
I don't think the SOLO uses BCD, . Though it is interesting that you say just the leading digit is dropped, not that the entire value is garbled.
On the other hand I know nothing about Directsoft, perhaps it converts the systems BCD to binary before transmission, since as far as I know Modbus doesn't support BCD per-se, on the other hand 16 bits are just 16 bits, I don't think Modbus cares how you encode them, could be one binary integer, two ASCII characters, 4 BCD digits, half a 32 bit float, etc. (but the SOLO will care)
Created Date: March 06,2019
Created by: Phillip1955
Guys -
I should have waited to post until the cobwebs were cleared from my brain - it's the last digit that's being dropped. A value of 1245 out of the MWX will read 124 on the SOLO, or 124.5 with 1 decimal. I can follow the values in the DirectSoft Data Monitor and everything looks good until it arrives at the SOLO.
Bernie, the decimal is set to 0, if I turn it on with one position enabled I see the last digit as 124.5. The readout is in deg F.
Tinker, there seems to be an assumption by the SOLO that the value coming over will always have a decimal. I thought shifting 4 bits to the left would add a zero but it ignores the extra bits. I can live with the decimal below 999.9, but it won't go higher than that as there are only 4 digits displayed.
I could swear there was an elegant solution posted somewhere on here, but I can't find it now.
Created Date: March 07,2019
Created by: Tinker
If one looks carefully (it took me a couple of tries) it is right there in the SOLO manual: "Unit is 0.1 (°C or °F) " if you want to display 1245, send 12450.
" I thought shifting 4 bits to the left would add a zero " well, since the SOLO is not (as far as I know) not using BCD, a shift of 4 bits would be multiplying by 16 (and wouldn't a simple shift mess up a two's compliment signed int?) seems to me it would be better to just multiply by 10, is multiplication excessively expensive on an 06? even if it is, you shouldn't be doing it too often. I believe that when you modify any parameter it gets written to the flash memory, and said flash has a finite number of times it can be written before the controller is bricked.
Created Date: March 07,2019
Created by: Phillip1955
I tried multiplying by 10 before I sent the data over to the SOLO, seems to me it made no difference. I know that's one of the things I tried but I'll try it again. I haven't seen an explanation of the details of how the SOLO controllers handle their data so trial and error should eventually produce a desired result. Thanks for the update.
Created Date: March 07,2019
Created by: Phillip1955
What I'm trying to do is store multiple Ramp/Soak profiles in the DL06 PLC, then load the profile into the SOLO from a maintenance screen on an HMI, if necessary. At startup, the PLC will read and compare the profiles in the SOLO and show an alert if there's a mismatch. The setpoint is the only parameter I'm having trouble with.
Compared to the Honeywell UDC series of controllers, programming the SOLO is a cakewalk! :D