03-09-2020 10:19 AM
I am trying to get and set temperature using this device using LabVIEW. I am able to communicate with the controller and it is responding to my write message. But when I try to say set a temperature of 28C, it sets it as 2.8C instead. Write command used is ":02064701001C94" to set 28C. Can anyone please tell me what am doing wrong? (code & manual (pg 17 attached)
http://www.dwyer-inst.com/PDF_files/E_90_CPC_rev4.pdf
Solved! Go to Solution.
03-09-2020 11:10 AM
Try to send the command:
02064701011894
If this works then it would be because the controller is set to use one decimal. You need to send it a value that you can add a decimal to. It should be that easy. If you change the decimal setting in the controller it would change what you need to send the controller. This is what I have seen in the past.
I don't have that controller to prove what I believe is going on. To make your program flexible you will need to read out the decimal position and send the commands using that info.
Tim
03-09-2020 11:20 AM
Hello Tim,
Thanks a lot! It saved my day.
Since you are familiar with this controller, could you also see if am doing anything wrong in the get vi? I am always getting a value of 51.2C when it is reading a temperature around 24C. Read string: "02032F020001C9", where "0200" is the value in hexadecimal which when converted to decimal and divided by 10 gives me 51.2C. Any ideas?
03-09-2020 11:39 AM
OK first I think you are reading the wrong part of the response.
"02032F020001C9"
If I am reading the info you attached correctly you should be looking at "0001" section of the response:
"02032F020001C9"
Now the problem here is that I see the value of 1 when I do that. I am not sure what you are doing here. I have not used this exact controller before. I have used a controller from a different company that seems to act a lot like this one.
03-09-2020 11:54 AM
In the get vi, am writing a command to the controller ":020347000002B2" to read the temperature displayed on the temperature controller. Then am reading back from the temperature controller which gives back a command string "02032F0020001C9". If you refer pg 16 of the instruction manual attached, you will see "0200" is the "Content of start address 4700H". This is why I came to the conclusion that this is the part which contains the data. Let me know if you have any more ideas. (see you tomorrow)
03-09-2020 11:54 AM
It looks like to me that you need to send this value:
020347000002B3
If you send this what do you see as a response? Also what is the temp when you ask for this?
03-09-2020 11:57 AM
Also try to send this and give me the values you are seeing and the temp:
020347000003B3
03-09-2020 12:20 PM
You commanded 2.8 C and got 2.8 C. The units (p.16) say .1C Multiply your hex number by 10. . . .
03-09-2020 12:29 PM
OK here is a vi that will calculate the command to the device. I would try to read 2 words and three words. This might be what the problem is. You are only reading two words at the moment. I would try to read three and see what we see.
I realize there is an easier way to do this I just wanted you to see what I did to get to this value. It matches the document that you attached as reference.
03-09-2020 02:04 PM
OK I made a command generator using a ring. You can set the values and it will generate a command for each parameter. I also added an interpret vi. I don't have enough data to know if what I am doing is correct.
I would try to read the PV with one word.then 2 then three. This way we can try to see what the system is really sending since what you set me does not match to what they tell us to expect.