02-01-2024 08:49 AM
A program controls two different hydraulic motors. Their rotation speed is managed with their own regulators. The hardware is cRIO with RT.
I am thinking about how to structure the program that contains these two regulators. There will also be a need for a while/case which can be called a control loop.
Idea:
I think the regulators will be in their own while loop while the administration program has its own. That means three while loops.
The control loop takes care of parameterizing the regulators before start-up. After starting up the regulators, the control part can monitor the number of rotations and when the correct number is met perform the next sequence.
Is the idea of structure correct? Three parallel while loops where two of them contain a regulator. I should use a Timed Whileloop..
What should I use as the communication channel between these three loops? I must set the PID parameters. Channel writer?
GUI
The process will produce data. I have planned to connect cRIO to the LAN and then use shared variables to exchange data with an external computer where the operator monitors and controls the process. Am I wrong or can this method be used?
Feel free to comment. All comments are appreciated.
02-01-2024 03:58 PM
If you want reliable data transmission between Host and Target in a LabVIEW Real-Time environment, do not use Shared Variables. Recommended alternatives are TCP/IP functions (which @crossrulz prefers) or Network Streams (which I happily use).
Bob Schor
02-01-2024 11:31 PM
Thanks for the input.
cRIO has web server as I recall. I should be able to use it and the external computer handles the process from there and also sees ongoing tests in a graph. External computer starts and stops the process. No time-sensitive commands are sent.
If the operator wants to download log data to the external computer, he clicks the Save button and a TCP/IP connection transfers the data.
What do you think about that?