07-20-2022 04:15 AM
I am looking to control up to 4 motors via a PLC from a PC. I would like to have a UI that manually controls the motors, but I would also like to have the capacity to move them automatically to a number of coordinates as specified by a model file. Does anyone have any recommendations as to best practice architectures for this kind of application? I am thinking of having a UI loop for manual commands, a motor control loop (for automated control commands) and individual loops to drive each of the motor axes - is this overkill?
07-20-2022 05:20 AM - edited 07-20-2022 05:21 AM
Hi Simon,
Yes, it sounds like you are in the right direction. Only nuance might be in how you intend to send commands to the PLC, for ex. modbus, RS-232 commands, etc. Back in my LabVIEW days I wrote a 3D printer LabVIEW control program similar to what you're describing. The motion coordinates are defined by the Gcode file, where then LabVIEW parses it, and then tells the motion controller to move the motors accordingly. This code was implemented with NI Softmotion hardware, although these products have been discontinued, you can easily modify the code to fit your PLC command methods.
https://github.com/johnwu130/LabVIEW-GCode-Parser
By the way, if controlling the PLC from LabVIEW is too slow/cumbersome, you should look for a motion controller that's compatible with LabVIEW. That will give you the most freedom and flexibility in your movements. For example, you can check out: https://geco-lv.com/geco-motion.html
07-20-2022 05:31 AM
Thanks for the reply. We intend to use OPC Tags / Datasocket to communicate between the PC and the PLC. No experience of motion controllers and anyway the system has already been assembled with 4 motors and individual kinetix drivers! I will download your code and take a look. Thank you so much for the link.
Regards
Simon