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.
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:
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.
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?
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