01-21-2025 06:22 AM
Hello LV Experts,
I am a student, and your guidance is invaluable to my studies. I am working with a Kikusui Electronic Load PLZ205W and have installed the kiplz5w instrument driver in LabVIEW for controlling the device. I have successfully established a connection with the load and can operate it in constant current mode, as well as enable and disable the load.
However, I need to implement a ramp function because the driver does not have a built-in function for this.
I understand that this involves incrementing the current in small steps over time, but I need advice on the best way to achieve this using LabVIEW's programming structures (e.g., loops, delays, etc.) and the driver commands.
Any guidance, tips, or example implementations would be greatly appreciated. Thank you for contributing to my learning journey!
01-21-2025 01:35 PM
It might be hard to get a true ramp if that is not a built in function of the load. You can step the current by setting it in a loop but again you will be limited by the response time of the load. Perhaps you can empirically determine the step time delta that approximates a ramp.
01-23-2025 03:47 AM
Hi Jay,
Thank you for your reply. Can you please elaborate on how to determine the step time delta?. I am confused on how to implement the loop. Thanks in advance :')
01-23-2025 10:40 AM
Here is an example of how to set current values in a timed loop. Replace the VISA VIs with your KIKUSUI driver VIs (I don't have that driver)
01-31-2025 07:21 AM
Hi Jay,
Inserting each ramp value to the array is very time consuming. Is there any other simpler way?. Also I didn't understand the use of that flat sequence. Thanks for helping :')
01-31-2025 07:33 AM - edited 01-31-2025 07:35 AM
Hi Varghese,
@Varghese89 wrote:
Inserting each ramp value to the array is very time consuming. Is there any other simpler way?
LabVIEW has a Ramp function: open QuickDrop, type "ramp"…
@Varghese89 wrote:
Also I didn't understand the use of that flat sequence.
The sequence frame enforces DATAFLOW, so it makes sure the wait is executed AFTER VISAWrite and BEFORE VISARead.
You can use the Stall.vim in your recent LabVIEW version instead.
Or you can get rid of that wait at all when your driver VIs implement a proper communication scheme with your device! (In this case any "message read" in the driver will wait for correct responses without needing additional waits.)
01-31-2025 08:08 AM
Hi GerdW,
Thank you for the clarification. I can't find the LabVIEW ramp function. I see a ramp function for IviACPPwr Driver but I am using kiplz5w Driver (when I try to use, it is showing "Wire class conflict" : refnums are different) .
01-31-2025 09:02 AM
GerdW is probably talking about this signal processing function. I don't know why it would not show up in your quick-drop, but I think you do need the Advanced Signal Processing toolkit.
LabVIEW Advanced Signal Processing Toolkit Download - NI
01-31-2025 09:07 AM
Don't let the Ramp Pattern.vi stop you though. Creating a simple loop to build an array of steps with inputs of start, stop and #steps should be a simple task. Try it and let us know if you get stuck...
01-31-2025 11:28 AM
I have a VI that does basically what you want. Instead of ramping from a rate of 0.2 A/s. How about: " I need to Ramp from 3A to 5A in 2 seconds". Convert if necessary. My VI rebuilds the ramp if the inputs change. But you could probably write something simpler
In the screenshot below I have a ramp function with feedback nodes for sudo state machine. You VI needs to keep track of.