From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
12-13-2016 04:53 PM
Good Afternoon everyone,
I've just started working with labview in order to control a 70/10 controller while reading transducer data from a NIDAQ.
My goal is to read position and current data from the controller and sync it with the NIDAQ data through labview.
I'm able to read from the DAQ no problem, but the controller has a limited buffer size, so it only gives me 0.1s of data before it runs out. Is there a way to bypass the buffer and stream position and current straight back to labview? Or will I have to send multiple packets of data over time (and if so, how would i do this?).
Thanks
12-14-2016 02:47 PM
Hi SeanPO,
I am a bit confused on your setup. The buffer is on the 70/10 controller and you are reading position and current in LabVIEW from the controller’s buffer? If so, you should be able to change how fast you read it in LabVIEW. Or are you sending information to the controller from LabVIEW? Where exactly are you running into problems and are you getting any specific errors?
12-14-2016 04:37 PM
Hi Nolan,
I'm sending position and current data from the controller, to Labview, while also sending commands from Labview, to the controller. However, given the intermediate memory of the controller, it's not possible to collect all the data I'm looking for with useful resolution, with the recorder function as it normally does. I haven't gotten any errors, I just simply run out of recording time long before my test is over.
-Sean
12-15-2016 03:13 PM
Hi Sean,
My thoughts are if you read the current and position data into LabVIEW faster, the buffer should not run out of memory. I am not especially familiar with any special function palettes for this controller so I would have to see your code to really understand what is going on. You may want to look at these forums if you haven’t already:
http://forums.ni.com/t5/LabVIEW/controlling-a-maxon-motor-with-labview/td-p/3401065
https://forums.ni.com/t5/LabVIEW/Maxon-motor-control-with-LabView/td-p/2390106
12-15-2016 03:58 PM
@SeanPO wrote:
Good Afternoon everyone,
I've just started working with labview in order to control a 70/10 controller while reading transducer data from a NIDAQ.
My goal is to read position and current data from the controller and sync it with the NIDAQ data through labview.
I'm able to read from the DAQ no problem, but the controller has a limited buffer size, so it only gives me 0.1s of data before it runs out. Is there a way to bypass the buffer and stream position and current straight back to labview? Or will I have to send multiple packets of data over time (and if so, how would i do this?).
Thanks
You can try polling the VCS Get Object_UINT32.vi and VCS Get Object_INT16.vi (for incr encoder 1 and avg data resp). These vi are located in the MAXON EPOS ->Configure VIs -> Low Level palette. You can find the object index and subindex value in the firmware specification document but you probably already know that if you used the data recorder.
Ben64
12-15-2016 05:43 PM - edited 12-15-2016 05:45 PM
Call Get Axis Info.vi in a loop until your motion stops (or whatever exit condition)
12-16-2016 08:39 AM
In trigger mode the data recorder will sample the objects values until the buffer is full and will then stop. Another thing you can try is to set the EPOS trigger configuration to Continuous Acquisition mode to record continuously. You can find the EPOS Data Recording application note here. (of course it will be more difficult to sync the results with the daq acquisition)
Ben64
12-20-2016 07:17 PM
Thanks Guys,
So i've gotten it to record the way I wanted, i had to make my own continuous aquisition mode, since its not a VI feature. So I used Ben64's suggestion of looping based on axis info to force it to keep reading and recording in segments.
This leads to my next issue. now that I have things working the way I want, I'd like to add a current limit so it will end the entire process if it reaches a certain current limit. My first thought was to put everything in a while loop that would end after the target was reached or when the current hit a set value, using VCS Get Current, unfortunately it doesn't work correctly. This may have been talked about elsewhere, but does anyone have suggestions?
12-20-2016 09:15 PM
SeanPO a écrit :
Thanks Guys,
This leads to my next issue. now that I have things working the way I want, I'd like to add a current limit so it will end the entire process if it reaches a certain current limit. My first thought was to put everything in a while loop that would end after the target was reached or when the current hit a set value, using VCS Get Current, unfortunately it doesn't work correctly. This may have been talked about elsewhere, but does anyone have suggestions?
Can you be more specific about how it doesn't work correctly?
Ben64
12-21-2016 10:08 AM
When I try to run that command, i dont get any usable information and the VI outputs an error stating that it isn't recognized.