06-05-2017 01:57 PM
I have a test that I'm creating that will have 8 separate power supplies to provide a specified wattage to parts attached to the outputs. I have the vi's that will control the power supplies and a PID vi that will calculate all of the wattage based on the DUT demand. During the PID control loop there are other things that will be going on in the main test sequence so it need to continue while the PID loops and controls the wattage/voltage applied to the DUT's.
The main sequence will be in batch mode process for the 8 DUT's that are testing and will need to let the Power supply PID loop to start when ready to start the power application.
As always there are many ways I'm sure to do this but I would like to ask the experts for the best way. How would you suggest doing this?
Thank you
06-06-2017 03:10 AM
If I well understand what you want to do, you have 8 DUT and you use a vi to control the power supply of one DUT, and you have a PID vi which control all power supplies
So, in batch mode, you will do a sequence which provide the power supply and do the test. For the PID, you can use a Batch Synchronization steps with the type One Thread only (use one step to enter the section of batch synchronization and another to exit). In the section, insert a sequence call step with the Use New Thread Only execution options. In the calling sequence, execute your PID vi. So, the PID.vi will be lauch once and will be executed in a thread during the test of you DUTs.
A the end of the test, use again Batch synchronization to wait for the end of the PID thread
You can use variables to synchronize the PID thread and the 8 test sequences, For example, you can have a boolean variable which is set to true when PID is active (which mean you can start the test) and another variable to stop the PID thread when all your test are over
Regards
06-06-2017 06:49 AM - edited 06-06-2017 06:54 AM
I think I may have confused you a little. I'm using the batch model to control each of the DUT's separately but in the Main sequence there are some steps that only operate once for all for example wait times. Each power supply must have its own PID control loop to control the power delivered to each DUT. This loop has to clone for each DUT and there for each power supply (batch model). See diagram attached.
the COM port addressing of the Power supplies are setup based to the runtime socket number. COM1-8 where the "COM" string is concatenated to the runtime socket number +1. This works well in batch but I need to now constantly control the power supplies with a PID constantly control the proper power delivered to the DUT. The power has to be a specific wattage not a constant voltage so this has to be constantly monitored and updated based on the part heating etc.
06-06-2017 08:57 AM
Ok
So you have 8 DUT and each one has its PID control which run in a separate thread. Use what I said beford without batch synchronization
For steps that operate once (like wait), you can use batch synchronization as I said in my previous message
Best Regards