03-03-2021 06:04 PM
Hello,
I will receive soon a PZ900 from RKC Japan. It is a temperature controller similar to Eurotherm models.
I downloaded the manuals, drivers, softwares. But the drivers are not for Labview, but for RS422 communication from a software and the PZ900.
I would like to develop my own labview driver for controlling this instrument, and basically, I just need SET T and READ T commands. That's all I need.
Can someone explain me what should I learn to make this driver ?
I will appreciate any advices. I already search, get manuals, etc... I do not request to get a driver already made, I just want to learn the good way to tackle this new problem.
(I have Labview Core 2, I developed a labview program that is already controlling 12 instruments, but this PZ900 is totally different than DMM, lock-in, SMU, etc... so I need to go one more step beyond with labview learning, specifically to this type of instrument PZ900. I guess it is a question of MODBUS or something like this. I am not familiar with that, I probably need a few example to understand what kind of work I should do with the PZ900 to create my driver)
03-04-2021 01:04 AM
Hi arienai,
@arienai wrote:
I downloaded the manuals, drivers, softwares. But the drivers are not for Labview, but for RS422 communication from a software and the PZ900.
I would like to develop my own labview driver for controlling this instrument, and basically, I just need SET T and READ T commands. That's all I need.
(I have Labview Core 2, I developed a labview program that is already controlling 12 instruments, but this PZ900 is totally different than DMM, lock-in, SMU, etc... so I need to go one more step beyond with labview learning, specifically to this type of instrument PZ900. I guess it is a question of MODBUS or something like this. I am not familiar with that, I probably need a few example to understand what kind of work I should do with the PZ900 to create my driver)
Unfortunately you forgot to attach the manual to your message…
In which way is this PZ900 "totally different" to a DMM? For both devices you send a command and then you receive an answer/response!
So you need to open a communication using VISA, send commands and receive the answers. Upon exiting your program you close the VISA reference. You can use any "DMM"-type device driver for inspiration, like those for Keithley2000 devices…
(How does MODBUS come into play?)
03-07-2021 10:55 PM - edited 03-07-2021 10:55 PM
Dear GerdW,
here are the links :
https://www.rkcinst.co.jp/english/downlaods/8918/imr03b07e1/
https://www.rkcinst.co.jp/english/wp-content/uploads/sites/2/2019/06/imr03b05e1.pdf
This instrument will not be on localhost with TCP. It will be plugged to the computer by USB connection. (through the maker module COM-K1 , to convert RS422 to USB).
Today, I downloaded and installed Modbus library on my Labview 2019 (Win 10, 64 bit). I found an example based on TCP. I need to convert this example to SERIAL.
In the manual, section 6.4 of the document imr03b06e1.pdf, it deals with single word data. I found item 1 related to "measured value (PV)", related to "Register address 0", and also "Set Value (SV) monitor", related to "Register address 1".
Looks quite simple. I will try during this week. The machine is arriving tomorrow.
Yours
03-08-2021 04:10 AM
Hi arienai,
@arienai wrote:
This instrument will not be on localhost with TCP. It will be plugged to the computer by USB connection. (through the maker module COM-K1 , to convert RS422 to USB).
Today, I downloaded and installed Modbus library on my Labview 2019 (Win 10, 64 bit). I found an example based on TCP. I need to convert this example to SERIAL.
In the manual, section 6.4 of the document imr03b06e1.pdf, it deals with single word data. I found item 1 related to "measured value (PV)", related to "Register address 0", and also "Set Value (SV) monitor", related to "Register address 1".
Which Modbus library did you download and install? Most often they provide examples for serial communication (Modbus/RTU) as well…
Did you configure your device to use Modbus communication as described in the manual?
You did not provide a link to "imr03b06e1" so I can't tell about setting SV or reading PV data…
03-08-2021 04:28 AM
Sorry, I though it could be reached through the links I mentioned.
I attached those documents in a ZIP file.
So far this is what I have, but I am not so familiar with the content ...
I will see when the PZ900 will arrive in the lab tomorrow .
I will connect it to a desktop through USB.
Once again, thank you for taking time to help me, or simply to read those docs, cause the content is a little bit complicated. But maybe it is not that difficult by using modbus toolbox.
03-22-2021 06:52 AM
I received COM-K2 module to plug the PZ900 (Modulus/RTU) to a PC via USB cable.
The PZ900 can be controller by an available software PRO-TEM from RKC. To use it, I have installed the drivers of the com module COM-K2, then run PRO-TEM, and I could send commands to set temperature, and read temperature. However, I have no idea about the structure of the instruction.
The attached programming guide, is helpful to understand.
The PZ900 is detected as COM10 on device manager (Win10 - 64bit).
However, I could not send command with VISA like I used to do for DMM or other instruments that are "Labview compatible" (with LV drivers ).
So I guess I have to send hexadecimal instructions to be able to communicate with this PZ900.
I will try to do it. But if you have a small example of labview vi that could do that, I will be very grateful.
03-22-2021 07:31 AM
03-22-2021 04:16 PM - edited 03-22-2021 04:33 PM
Thank you GerdW, I attached the host com manual.
I have to read it, but if I understand the principle of creating 1 instruction, then I can (maybe?) do similarly for all commands and create a driver for PZ900.
A short example of write/read/query will be more than appreciated. I hope I will be able to send 1 command to PZ900 using this Modbus protocol.
Example 1 : set temperature 239.5 (degree C), infinite time duration
Example 2: ramp temperature from initial Ti to final Tf in 10min
Example 3 : read temperature like 573.2 (deg C) after conversion from hexadecimal to decimal and the decimal point is not recognized...
This is almost what I need for the moment. Next, I will have to define PID ... which is maybe more complicated.
Yours
03-23-2021 01:45 AM
Hi arienai,
your device supports two different type of protocols: the "RKC" one and a standard Modbus protocol.
You may implement the RKC-type protocol as described in chapter 4, but I suggest to use Modbus with one of the available libraries. All you need to learn is to use the correct Modbus registers and the correct data encoding - as described in chapter 5 & 6…
03-23-2021 03:20 AM - edited 03-23-2021 03:28 AM
Dear GerdW
MODBUS order of data transfer is set from "high-order word to low-order word".
Actually, the settings are for input data type = DOUBLE WORD.
The number of measured value digits is 5.
(The com data type can be checked in Modbus double word by : 013EH, 013FH )
Could you just tell me the difference between programming with "high-order to low order" and "low order to high order" ?
What is the difference between programming in "double word" and "single word" ?
The master is the PC.
The slave address (PZ900) is 01
The parameter ADD (device address) has been set to 1 in order the master to communicate with the slave.
I noticed the slave address is 1, but it is 2bits, so it should become 01.
In MODBUS, the message format is :
slave address : 01
function code : 03H (to get temperature )
data
error check (CRC-16)
Based on page 6-3-1, double word, could you confirm that the correct sequence of instruction should be :
- measure value (PV) : 01 03H 00H 00H 00H 04H 44H 3AH --> is it correct ?
- set value (SV) monitor : ??
Actually, I am interested in FIX set mode control : set temperature T.
But also by a RAMP in temperature until Temp T, followed by a plateau at T with infinite duration (until setting another temperature).
The reason of the RAMP is that I can control the amount of power to prevent damages on the hot plate (hardware)
As mentioned in 5-13, there is a warning for the decimal numbers, as MODBUS does not recognize data with decimal point.
Then, I cannot understand how PZ900 can understand a set value 298.5 for example. There is 5 digits and 4 bytes data, so it is OK, but how PZ900 can interpret the decimal part ?
So here is back to orignal question about the difference between programming in single word rather than double word : is single word prevent decimal settings ?
Further, ... the MODBUS data mapping will break my brain ... for sure !