CMT3092X and Julabo

CMT3092X and Julabo
none 0.0 0
  • HMI Model: CMT3092X
    We have a customer that wants to interface a Julabo heating immersion circulator to the CMT3092X.
    communications would be RS232. Terminal interface commands would be used to retrieve values from the heater.

Interface commands allow the device to be remote controlled. Parameters can
be retrieved and the current status can be queried. To do this, the device must
be connected to the master computer via a digital interface. Interface
commands are entered using a terminal program.

Page 86 of the manual. Link below, shows the commands.

here is the link for the device.

would the HMI be able to accomplish this? would the driver be the free Protocol RS232? any information is appreciated.

Hi @SteveV,

I believe that you can accomplish this with the “Free Protocol” driver as this would be similar to using a terminal to send command values to the device:

Hi @Brendon.S

This question/project actually is one that I am working on. We have setup the Free Protocol driver, but I am struggling to understand how to parameterize the file. It seems I keep getting C026 errors when I try to save and compile.

In the Julabo’s manual, it calls out a very specific sequence that must happen for sending values:
A transfer sequence consists of:
• address (RS485 interface only)
• command
• space (⇔; Hex: 20)
• parameter (decimal separation with a period)
• end of file (↵; Hex: 0D)

In the Macro setup on the Easy Builder Pro, I have tried to build this function, example here:

macro_command main()

short x
x = OUT_MODE_05 0x20 1 0x0D

OUTPORT(x, “Julabo Write Free Protocol”, 1)

end macro_command

In this example above, the OUT_MODE_05 gives us the start/stop of the unit. By sending a 0, it stops the unit and sending a 1 starts the unit. Any suggestions on how to build the function?

I did review the video in another question that I felt was similar but I just am missing something I believe.


Hi @jonmarc91,

The syntax within the example you have provided is incorrect:

macro_command main()
short x
x = OUT_MODE_05 0x20 1 0x0D
OUTPORT(x, “Julabo Write Free Protocol”, 1)
end macro_command

x = OUT_MODE_05 0x20 1 0x0D will produce an error because these values cannot be assigned to a short in this format. Here is an example of a macro that may allow you to start this device:

macro_command main()
	char cmd[15] = " OUT_MODE_05   "	
	cmd[0] = 0x1 // unit address
	cmd[12] = 0x20 // space
	cmd[13] = 1 // parameter is set to 1
	cmd[14] = 0xD // end of file

OUTPORT(cmd[0], "Free Protocol", 15) // To start the unit.

end macro_command

Note that elements at index 0, 12, 13, and 14 are set dynamically while the command name or “Parameter Settings” name is set during declaration. When you have time, can you please test this command and advise if this format works?

Hi @Brendon.S,

Working today on this project again, unfortunately not working yet.
We are using RS232, so per the manual, I removed the unit address as that looks to only apply for RS485.

Trying to do a simple read now, instead of writing:
So for example, using " IN_PV_00 "

macro_command main()
char cmd[15] = " IN_PV_00 "
//cmd[0] = 0x1 // unit address
//cmd[12] = 0x20 // space
//cmd[13] = 1 // parameter is set to 1
cmd[14] = 0xD // end of file

OUTPORT(cmd[14], “Free Protocol”, 15) // To read current temperature

end macro_command