Pause in blend motion routine

I am using a blend motion routine (derived from the example that ships with the board) to blend 3 sets of x-y points on two axes on a PCI-7344. The rountine works great except when I ask for movement in only the x direction or only the y direction. In both cases there can be pauses of 3 seconds or more between blend moves. If I have movement in the x and y direction, then there is never a pause. Why would this occur? For example if I am at 0,0 and the next set of points to belnd through is 100,0, then I will get a pause. However, if I the next point is 100,100, then there will be no pause. The stepper motors are being run closed loop at 10,000 steps/rev with 10,000 counts/rev on the encoders.

With blend factor 0 the axes decelerate to a stop and start the next move immediately after that. With blend factor -1 the acceleration phase of the next move starts as soon as the deceleration phase of the first move begins. In this case the axes don't stop between each move which is the main reason why blending is used. The disadvantage of this method is the fact that corners in the move profiles get rounded. The degree of this rounding depends on the acceleration/deceleration values.
Here is one possible scenario why the wait occurrs:
A short move is executed and during this move you load new trajectory parameters but this process isn't finished by the time you send the new blend command. In this case the move decelerates to a stop. In thi
s case the 7344 tries to reach exactly the target position you have specified for the move. As the resolution of your encoder is very high there is a good chance that the target position isn't reached exactly. Thus the board starts some pull-in moves until the position is reached (by default after three pull-in moves the board gives up). If your program would have been able to send the next blend command fast enough this sequence would have been skipped.
The pull-in moves are only executed when there is a difference between the encoder position and the calculated position. Thus they are only executed in closed loop systems.
Possible solutions:
1. Configure the "Move Complete Criteria" in the axes' trajectory settings in MAX to accept some displacement (deadband parameter)
2. Reduce the velocity for short moves or don't use very short travel ranges at all (this might not be possible).
3. If nothing of this helps or don't use blending at all. Use buffered contouring
instead (please refer to the shipping examples).
Best regards.
Jochen
NI-Germany

Similar Messages

  • Is it possible to pause a contoured motion?

    I'm using the NI-73xx palette to construct a contoured pattern. Everything works fine, but it won't be practical until I can get it to pause and resume exactly where it left off. I tried using the velocity override VI but couldn't get it to work. I think it's because contoured motion calculates the velocity for you, so you can't change it even if you tried to set it. Any ideas? Thanks!
    Attachments:
    WrapperControl.vi ‏108 KB

    I can't think of a way to simply pause any moves in the NI Motion API, but I would recommend looking into doing what I described above. Essentially, if a move gets stopped, programmatically update the buffer going to the contoured move based on the current stopped position. This will generate smooth motion while retaining the desired travel path. Besides a contoured move, there are no other options for "continuous" motion; the other move types are used as finite moves and trajectories.
    Karl G.
    Applications Engineer
    ni.com/support

  • Have an item pause before final motion...

    Is it possible to have an object pause for a bit before it starts it's final motion when using scroll motion?

    There is currently no way to introduce a pause in animation over time during a continuous scroll. However, you can achieve similar effect by using anchor links and navigating to the position using the anchor which stops the scroll (and thus animation) once it has reached a specific point in scroll.
    Hope that helps.
    Cheers,
    Vikas

  • Loading velocity in blended motion

    I have a sequence of blended 2-axis moves and I need to change the velocity continuously, not only between moves.
    I tried by inserting a "Load Velocity in RPM" in the While loop where I'm checking the "Blend complete" status, but it's not working.
    Is it possible to obtain the velocity variation ?
    Thanks, Tom

    No. With the override function you can scale the velocity only between 0 % and 150 %. Negative values are not valid. If you want to reverse the direction, you will need to load a negative velocity value and send the Start Motion command. The result will be the same as scaling the velocity to a negative value.
    The only disadvantage of this method is the fact, that you have to send two sequential commands instead of only one, which will result in a slightly longer execution time of the code.
    I hope this helps,
    Jochen Klier
    National Instruments

  • How do I use NI-Motion tools to directly control a P70360?

    I can currently control a P70360 via modbus commands. I am interested in using NI-Motion routines to do this, if possible. But all the examples and VIs seem to assume there is an intermediary controller card, between the AC Drive and my labview app. I don't need a controller card, I have labview... so, does NI-Motion support direct communication with a P70360?

    Well, never mind. I spoke with NI this morning, and NI-Motion only supports calls to their 73x0 motion controler cards. Silly me for thinking there might have been a ModBus instrument driver deleveloped for the P70360. I'll get back to Dannaher (manufacturer of the AC Drive), and work to tweak my ModBus routines. The problem we're having is it gets out of synch, without sending an error due to stall detection.

  • Slow motion plug in?

    Is there a plug in for final or motion for slow-motion that is better than frame-blending, motion-blur and optical flow?

    How much money have you got?
    ReVision Twixtor comes to mind, US$600.
    http://www.revisionfx.com/products/twixtor/
    Easier to reshoot or shoot properly with enough frames per second to make the task more palatable. Optical flow is similar to pixel vector path estimation technology used in Twixtor.
    bogiesan

  • Can motion 5 down convert 60Fps Footage

    MY cinema tools does not work with new operating system
    i do have Final Cut pro x and im using mpeg stream to turn my contour + footage to ProRes Lt
    but i need something like cinema tools to convert the 60fps to 30fps to get the good smooth slow motion
    any suggestions

    PS - to answer your original quesion:
    in Motion, import your clip and select it. In the Inspector, Properties tab, at the bottom, show Timing. Set the speed to 50% and select your Frame Blending option (Blending, Motion Blur, Optical Flow). Export. Basically the exact same thing in FCPX (although you can do some really cool stuff with Variable Speeds in motion that's a little easier to use than speed changes in FCPX.)

  • Control does not stay in case structure while using motion VIs

    Hi,
    I have a motion control card PCI 7344 connected to my PC. I am able to control the motor at the required speed till the required position using an encoder. Now I have put my motion control VIs in a case structure in such a way that, if Case1 is selected then the motor should to position P at speed S, if case 2 is selected then the motor should move to position Q at speed S and if case3 is selected then the motor should to position R at speed S. I am selecting cases 1,2,3 etc. by scanning a set of numbers seperated by spaces which look like this,
    1 2 5 7 3
    This number scanning is done using a while loop. Now, when the first number is scanned in the above set of numbers. The number 1 is obtained and the control is switched to case1. But before the motor reaches position P, the control switches to case2 and before completing the execution, the program scans case5 and so on. That means that the control does not stay till the move in the case 1 is completed. I'm sure there must be a way to retain the control to a case and stop the next number to be scanned before the functions in the particular are completely executed. I thought of one method, i.e. by using the move complete VI provided in LabVIEW, but I could not implement it. Please help me out with this.
    Regards,
    Giridhar Rajan
    Automation Engineer,
    Cruiser Controls,
    Mumbai, India

    Hi,
    Our motion controllers allow you to preemptively start a move in the middle of a current move.  For example if you are moving from point A to B and based on some logic, you determine you need to immediately start moving to point C.  A preemptive move allows you to just load the new target position and call start.  You do NOT have to first stop the current move and then start the new move.
    In your case, you want the first move to complete before the second move starts.  There are two ways to handle this.  First, wait for the move to complete via a Wait For Move Complete function/VI call, or use the Check For Move Complete function/VI in a loop.  Second, use Blend Start instead of the regular start.  A Blend Start (if blend factor is set to 0) waits for the first move to complete before the second move starts. 
    Check out the help topics for Start Motion and Blend Motion to learn more.
    Thanks,
    Rodger S.

  • How does the blend move work when the constant velocity profile is not reached?

    Hi,
    In my application I have to blend several moves with the same velocity and acceleration on only one axis.
    In the LabView help it is said that  "A blend factor of –1 causes the pending move to start when the existing move finishes its constant velocity segment and starts to decelerate, as shown in the following figure. "
    However, if the trajectory parameters are such that the constant velocity segment is never reached (for instance, because during the acceleration segment the target positon is reached), how does the blend motion vi behave? I have looked everywhere and could not find an answer.
    Can anyone help me on this?
     Thank you in advance,
    João Barata
    Solved!
    Go to Solution.

    Hi,
    the blending starts as soon as the deceleration ramp starts. In the case that the constant  velocity is never reached, the deceleration ramp starts exactly in the middle of the move (assuming that the values for acceleration and deceleration are the same), so you end up with a triangular velocity profile instead of a trpezoidal velocity profile. That means, it could never happen, that the target position is reached during the acceleration ramp.
    I hope that helps,
    Jochen Klier
    National Instruments

  • SMPlayer vs. Mplayer - behaviour after resuming a pause

    For a few weeks I've been experiencing a change in SMPlayer behaviour after resuming a pause of playing a video - motion of the video is jerked for a few seconds. However, I don't experience this with MPlayer. Has anybody else noticed this or does anybody know what could I do to make SMPlayer work normally?

    I've turned an extended log of MPlayer on and so these are logs created during a short play with some pauses (with jerked motions after resuming):
    SMPlayer log (just extract, couldn't copy the whole log, but it doesn't seem to contain something relevant):
    [22:40:33:653] Core::pause
    [22:40:33:653] Core::pause: current state: Playing
    [22:40:33:653] Core::tellmp: 'pause'
    [22:40:33:707] MplayerProcess::parseLine: ''
    [22:40:33:707] MplayerProcess::parseLine: ' ===== PAUSE ====='
    [22:40:33:708] MplayerProcess::parseLine: ''
    [22:40:33:708] MplayerProcess::parseLine: 'ID_PAUSED'
    [22:40:33:708] Core::changePause
    [22:40:33:708] Core::changePause: mplayer reports that it's paused
    [22:40:33:708] BaseGui::displayState: Paused
    [22:40:33:708] BaseGui::togglePlayAction
    [22:40:33:709] BaseGui::checkStayOnTop
    [22:40:35:104] Core::pause
    [22:40:35:104] Core::pause: current state: Paused
    [22:40:35:104] Core::tellmp: 'pause'
    [22:40:35:143] BaseGui::displayState: Playing
    [22:40:35:143] BaseGui::togglePlayAction
    [22:40:35:144] Core::changeCurrentSec: mplayer reports that now it's playing
    [22:40:35:147] BaseGui::checkStayOnTop
    [22:40:38:432] Core::pause
    [22:40:38:432] Core::pause: current state: Playing
    [22:40:38:432] Core::tellmp: 'pause'
    [22:40:38:507] MplayerProcess::parseLine: ''
    [22:40:38:508] MplayerProcess::parseLine: ' ===== PAUSE ====='
    [22:40:38:508] MplayerProcess::parseLine: ''
    [22:40:38:508] MplayerProcess::parseLine: 'ID_PAUSED'
    [22:40:38:508] Core::changePause
    [22:40:38:508] Core::changePause: mplayer reports that it's paused
    [22:40:38:508] BaseGui::displayState: Paused
    [22:40:38:509] BaseGui::togglePlayAction
    [22:40:38:509] BaseGui::checkStayOnTop
    [22:40:42:012] BaseGui::showMplayerLog
    [22:40:56:875] BaseGui::showLog
    MPlayer log (I've cut out a long list of subtitles' lines):
    /usr/bin/mplayer -noquiet -v -nofs -nomouseinput -sub-fuzziness 1 -identify -slave -vo xv:adaptor=0 -ao alsa -nokeepaspect -framedrop -autosync 100 -nodr -nodouble -input nodefault-bindings:conf=/dev/null -stop-xscreensaver -wid 52429143 -monitorpixelaspect 1 -ass -embeddedfonts -ass-line-spacing 0 -ass-font-scale 1 -ass-styles /home/ondra/.config/smplayer/styles.ass -fontconfig -font Arial -subfont-autoscale 0 -subfont-osd-scale 20 -subfont-text-scale 20 -subcp CP1250 -vid 0 -aid 2 -sub /home/ondra/Plocha/Poirot - S12E02 - The Clocks - ENG.srt -subpos 100 -volume 32 -nocache -ss 417 -osdlevel 0 -idx -vf-add ass -vf-add screenshot -slices -channels 2 -af scaletempo,equalizer=0:0:0:0:0:0:0:0:0:0 -softvol -softvol-max 100 /mnt/ubuntu/home/sdilene/Hercule.Poirot.S12E01.Hodiny.DVDRip.XviD.cz.en-iNG.avi
    MPlayer SVN-r32492-4.5.1 (C) 2000-2010 MPlayer Team
    CPU vendor name: GenuineIntel max cpuid level: 2
    CPU: Intel(R) Pentium(R) 4 CPU 2.40GHz (Family: 15, Model: 2, Stepping: 7)
    extended cpuid-level: 4
    Detected cache-line size is 64 bytes
    Testing OS support for SSE... yes.
    Tests of OS support for SSE passed.
    CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNowExt: 0 SSE: 1 SSE2: 1 SSSE3: 0
    Compiled with runtime CPU detection.
    get_path('codecs.conf') -> '/home/ondra/.mplayer/codecs.conf'
    Reading /home/ondra/.mplayer/codecs.conf: Can't open '/home/ondra/.mplayer/codecs.conf': No such file or directory
    Reading /etc/mplayer/codecs.conf: 159 audio & 349 video codecs
    init_freetype
    Using MMX (with tiny bit MMX2) Optimized OnScreenDisplay
    get_path('fonts') -> '/home/ondra/.mplayer/fonts'
    Configuration: --prefix=/usr --enable-runtime-cpudetection --disable-gui --disable-arts --disable-liblzo --disable-speex --disable-openal --disable-fribidi --disable-libdv --disable-musepack --disable-esd --disable-mga --enable-xvmc --language=all --confdir=/etc/mplayer
    CommandLine: '-noquiet' '-v' '-nofs' '-nomouseinput' '-sub-fuzziness' '1' '-identify' '-slave' '-vo' 'xv:adaptor=0' '-ao' 'alsa' '-nokeepaspect' '-framedrop' '-autosync' '100' '-nodr' '-nodouble' '-input' 'nodefault-bindings:conf=/dev/null' '-stop-xscreensaver' '-wid' '52429143' '-monitorpixelaspect' '1' '-ass' '-embeddedfonts' '-ass-line-spacing' '0' '-ass-font-scale' '1' '-ass-styles' '/home/ondra/.config/smplayer/styles.ass' '-fontconfig' '-font' 'Arial' '-subfont-autoscale' '0' '-subfont-osd-scale' '20' '-subfont-text-scale' '20' '-subcp' 'CP1250' '-vid' '0' '-aid' '2' '-sub' '/home/ondra/Plocha/Poirot - S12E02 - The Clocks - ENG.srt' '-subpos' '100' '-volume' '32' '-nocache' '-ss' '417' '-osdlevel' '0' '-idx' '-vf-add' 'ass' '-vf-add' 'screenshot' '-slices' '-channels' '2' '-af' 'scaletempo,equalizer=0:0:0:0:0:0:0:0:0:0' '-softvol' '-softvol-max' '100' '/mnt/ubuntu/home/sdilene/Hercule.Poirot.S12E01.Hodiny.DVDRip.XviD.cz.en-iNG.avi'
    Using nanosleep() timing
    Terminal type `unknown' is not defined.
    Parsing input config file /dev/null
    Input config file /dev/null parsed: 0 binds
    Setting up LIRC support...
    mplayer: could not connect to socket
    mplayer: No such file or directory
    Failed to open LIRC support. You will not be able to use your remote control.
    get_path('Hercule.Poirot.S12E01.Hodiny.DVDRip.XviD.cz.en-iNG.avi.conf') -> '/home/ondra/.mplayer/Hercule.Poirot.S12E01.Hodiny.DVDRip.XviD.cz.en-iNG.avi.conf'
    Playing /mnt/ubuntu/home/sdilene/Hercule.Poirot.S12E01.Hodiny.DVDRip.XviD.cz.en-iNG.avi.
    get_path('sub/') -> '/home/ondra/.mplayer/sub/'
    [file] File size is 821880832 bytes
    STREAM: [file] /mnt/ubuntu/home/sdilene/Hercule.Poirot.S12E01.Hodiny.DVDRip.XviD.cz.en-iNG.avi
    STREAM: Description: File
    STREAM: Author: Albeu
    STREAM: Comment: based on the code from ??? (probably Arpi)
    LAVF_check: AVI format
    AVI file format detected.
    list_end=0x3324
    ======= AVI Header =======
    us/frame: 40000 (fps=25.000)
    max bytes/sec: 0
    padding: 0
    MainAVIHeader.dwFlags: (272) HAS_INDEX IS_INTERLEAVED
    frames total: 133641 initial: 0
    streams: 3
    Suggested BufferSize: 0
    Size: 640 x 368
    ==========================
    list_end=0x10F4
    ==> Found video stream: 0
    ID_VIDEO_ID=0
    [aviheader] Video stream found, -vid 0
    ====== STREAM Header =====
    Type: vids FCC: xvid (64697678)
    Flags: 0
    Priority: 0 Language: 0
    InitialFrames: 0
    Rate: 25/1 = 25.000
    Start: 0 Len: 133641
    Suggested BufferSize: 125416
    Quality 10000
    Sample size: 0
    ==========================
    Found 'bih', 40 bytes of 40
    ======= VIDEO Format ======
    biSize 40
    biWidth 640
    biHeight 368
    biPlanes 1
    biBitCount 24
    biCompression 1145656920='XVID'
    biSizeImage 1413120
    ===========================
    Regenerating keyframe table for MPEG-4 video.
    list_end=0x2186
    ==> Found audio stream: 1
    ID_AUDIO_ID=1
    [aviheader] Audio stream found, -aid 1
    ====== STREAM Header =====
    Type: auds FCC: (0)
    Flags: 0
    Priority: 0 Language: 0
    InitialFrames: 1
    Rate: 16000/384 = 41.667
    Start: 0 Len: 222719
    Suggested BufferSize: 8064
    Quality -1
    Sample size: 384
    ==========================
    Found 'wf', 30 bytes of 18
    ======= WAVE Format =======
    Format Tag: 85 (0x55)
    Channels: 2
    Samplerate: 48000
    avg byte/sec: 16000
    Block align: 384
    bits/sample: 0
    cbSize: 12
    mp3.wID=1
    mp3.fdwFlags=0x2
    mp3.nBlockSize=384
    mp3.nFramesPerBlock=1
    mp3.nCodecDelay=0
    ==========================================================================
    list_end=0x3218
    ==> Found audio stream: 2
    ID_AUDIO_ID=2
    [aviheader] Audio stream found, -aid 2
    ====== STREAM Header =====
    Type: auds FCC: (0)
    Flags: 0
    Priority: 0 Language: 0
    InitialFrames: 1
    Rate: 16000/384 = 41.667
    Start: 0 Len: 222735
    Suggested BufferSize: 8064
    Quality -1
    Sample size: 384
    ==========================
    Found 'wf', 30 bytes of 18
    ======= WAVE Format =======
    Format Tag: 85 (0x55)
    Channels: 2
    Samplerate: 48000
    avg byte/sec: 16000
    Block align: 384
    bits/sample: 0
    cbSize: 12
    mp3.wID=1
    mp3.fdwFlags=0x2
    mp3.nBlockSize=384
    mp3.nFramesPerBlock=1
    mp3.nCodecDelay=0
    ==========================================================================
    list_end=0x3324
    AVI: dmlh found (size=248) (total_frames=133641)
    list_end=0x3364
    hdr=Software size=43
    Software : VirtualDubMod 1.5.4.1 (build 2066/release)
    list_end=0x309B07A2
    Found movie at 0x380C - 0x309B07A2
    Reading INDEX block, 400890 chunks for 133641 frames (fpos=815466410).
    AVI index offset: 0x3808 (movi=0x380C idx0=0x4 idx1=0x1F8C)
    Auto-selected AVI audio ID = 2
    Auto-selected AVI video ID = 0
    AVI: Searching for audio stream (id:2)
    AVI video size=641146236 (133641) audio size=85530240 (222735)
    VIDEO: [XVID] 640x368 24bpp 25.000 fps 959.5 kbps (117.1 kbyte/s)
    Auto-selected AVI audio ID = 2
    [V] filefmt:3 fourcc:0x44495658 size:640x368 fps:25.000 ftime:=0.0400
    Clip info:
    Software: VirtualDubMod 1.5.4.1 (build 2066/release)
    ID_CLIP_INFO_NAME0=Software
    ID_CLIP_INFO_VALUE0=VirtualDubMod 1.5.4.1 (build 2066/release)
    ID_CLIP_INFO_N=1
    File not found: '/home/ondra/Plocha/Poirot - S12E02 - The Clocks - ENG.srt'
    Failed to open /home/ondra/Plocha/Poirot - S12E02 - The Clocks - ENG.srt.
    File not found: '/home/ondra/Plocha/Poirot - S12E02 - The Clocks - ENG.srt'
    Failed to open /home/ondra/Plocha/Poirot - S12E02 - The Clocks - ENG.srt.
    [ass] ass_read_file(/home/ondra/Plocha/Poirot - S12E02 - The Clocks - ENG.srt): fopen failed
    Cannot load subtitles: /home/ondra/Plocha/Poirot - S12E02 - The Clocks - ENG.srt
    get_path('sub/') -> '/home/ondra/.mplayer/sub/'
    [file] File size is 115710 bytes
    STREAM: [file] /mnt/ubuntu/home/sdilene/Hercule.Poirot.S12E01.Hodiny.DVDRip.XviD.cz.en-iNG.srt
    STREAM: Description: File
    STREAM: Author: Albeu
    STREAM: Comment: based on the code from ??? (probably Arpi)
    SUB: Detected subtitle file format: subviewer
    SUB: opened iconv descriptor.
    SUB: closed iconv descriptor.
    SUB: Read 1352 subtitles, 0 bad line(s).
    [file] File size is 115710 bytes
    STREAM: [file] /mnt/ubuntu/home/sdilene/Hercule.Poirot.S12E01.Hodiny.DVDRip.XviD.cz.en-iNG.srt
    STREAM: Description: File
    STREAM: Author: Albeu
    STREAM: Comment: based on the code from ??? (probably Arpi)
    [ass] Opened iconv descriptor
    [ass] Closed iconv descriptor
    [ass] File size: 300
    [ass] Opened iconv descriptor
    [ass] Closed iconv descriptor
    [ass] [0xa6f6ef8] Style: Default,Arial,20,&H00ffffff,&H00000000,&H00000000,0,0,2,1,1,2,20,20,8
    plaintext event at 1000, +3000: Downloaded From www.AllSubs.org
    plaintext event at 35920, +1670: - Good night Annie.\N- Good night Fi.
    plaintext event at 5286120, +3590: - Yes please.\N- Let's start again.
    plaintext event at 5290710, +10000: Downloaded From www.AllSubs.org
    ID_FILE_SUB_ID=0
    ID_FILE_SUB_FILENAME=/mnt/ubuntu/home/sdilene/Hercule.Poirot.S12E01.Hodiny.DVDRip.XviD.cz.en-iNG.srt
    SUB: Added subtitle file (1): /mnt/ubuntu/home/sdilene/Hercule.Poirot.S12E01.Hodiny.DVDRip.XviD.cz.en-iNG.srt
    ID_FILENAME=/mnt/ubuntu/home/sdilene/Hercule.Poirot.S12E01.Hodiny.DVDRip.XviD.cz.en-iNG.avi
    ID_DEMUXER=avi
    ID_VIDEO_FORMAT=XVID
    ID_VIDEO_BITRATE=959504
    ID_VIDEO_WIDTH=640
    ID_VIDEO_HEIGHT=368
    ID_VIDEO_FPS=25.000
    ID_VIDEO_ASPECT=0.0000
    ID_AUDIO_FORMAT=85
    ID_AUDIO_BITRATE=128000
    ID_AUDIO_RATE=0
    ID_AUDIO_NCH=0
    ID_START_TIME=0.00
    ID_LENGTH=5345.64
    ID_SEEKABLE=1
    ID_CHAPTERS=0
    X11 opening display: :0.0
    vo: X11 color mask: FFFFFF (R:FF0000 G:FF00 B:FF)
    vo: X11 running at 1680x1050 with depth 24 and 32 bpp (":0.0" => local display)
    [x11] Current fstype setting doesn't honour any X atoms
    [VO_XV] Using Xv Adapter #0 (NV17 Video Texture)
    [xv common] Drawing no colorkey.
    [xv common] Maximum source image dimensions: 2046x2046
    Opening video filter: [screenshot]
    Opening video filter: [ass]
    [screenshot] query(Planar YV12) -> 3
    [ass] FreeType library version: 2.4.4
    [ass] FreeType headers version: 2.4.3
    [ass] Init
    get_path('fonts') -> '/home/ondra/.mplayer/fonts'
    get_path('subfont.ttf') -> '/home/ondra/.mplayer/subfont.ttf'
    [ass] Updating font cache
    ==========================================================================
    Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
    INFO: libavcodec init OK!
    Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
    ==========================================================================
    ID_VIDEO_CODEC=ffodivx
    ==========================================================================
    Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
    dec_audio: Allocating 4608 + 65536 = 70144 bytes for output buffer.
    mp3lib: using SSE optimized decore!
    MP3lib: init layer2&3 finished, tables done
    MPEG 1.0, Layer III, 48000 Hz 128 kbit Joint-Stereo, BPF: 384
    Channels: 2, copyright: No, original: No, CRC: No, emphasis: 0
    AUDIO: 48000 Hz, 2 ch, s16le, 128.0 kbit/8.33% (ratio: 16000->192000)
    ID_AUDIO_BITRATE=128000
    ID_AUDIO_RATE=48000
    ID_AUDIO_NCH=2
    Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
    ==========================================================================
    Building audio filter chain for 48000Hz/2ch/s16le -> 0Hz/0ch/??...
    [libaf] Adding filter scaletempo
    [libaf] Adding filter equalizer
    [scaletempo] 1.000 speed * 1.000 scale_nominal = 1.000
    [libaf] Adding filter format
    [format] Changing sample format from little-endian 16-bit signed int to little-endian 32-bit float
    [format] Accelerated little-endian 16-bit signed int to little-endian 32-bit float conversion
    [scaletempo] 1.000 speed * 1.000 scale_nominal = 1.000
    [format] Changing sample format from little-endian 16-bit signed int to little-endian 32-bit float
    [format] Accelerated little-endian 16-bit signed int to little-endian 32-bit float conversion
    Trying preferred audio driver 'alsa', options '[none]'
    alsa-init: requested format: 48000 Hz, 2 channels, 1d
    alsa-init: using ALSA 1.0.23
    alsa-init: setup for 1/2 channel(s)
    alsa-init: using device default
    alsa-init: pcm opened in blocking mode
    alsa-init: got buffersize=65536
    alsa-init: got period size 1024
    alsa: 48000 Hz/2 channels/8 bpf/65536 bytes buffer/Float 32 bit Little Endian
    AO: [alsa] 48000Hz 2ch floatle (4 bytes per sample)
    AO: Description: ALSA-0.9.x-1.x audio output
    AO: Author: Alex Beregszaszi, Zsolt Barat <[email protected]>
    AO: Comment: under development
    Building audio filter chain for 48000Hz/2ch/s16le -> 48000Hz/2ch/floatle...
    [scaletempo] 1.000 speed * 1.000 scale_nominal = 1.000
    [format] Changing sample format from little-endian 16-bit signed int to little-endian 32-bit float
    [format] Accelerated little-endian 16-bit signed int to little-endian 32-bit float conversion
    [scaletempo] 1.000 speed * 1.000 scale_nominal = 1.000
    [format] Changing sample format from little-endian 16-bit signed int to little-endian 32-bit float
    [format] Accelerated little-endian 16-bit signed int to little-endian 32-bit float conversion
    ID_AUDIO_CODEC=mp3
    [Mixer] No hardware mixing, inserting volume filter.
    [libaf] Adding filter volume
    [scaletempo] 1.000 speed * 1.000 scale_nominal = 1.000
    [format] Changing sample format from little-endian 16-bit signed int to little-endian 32-bit float
    [format] Accelerated little-endian 16-bit signed int to little-endian 32-bit float conversion
    [scaletempo] 1.000 speed * 1.000 scale_nominal = 1.000
    [format] Changing sample format from little-endian 16-bit signed int to little-endian 32-bit float
    [format] Accelerated little-endian 16-bit signed int to little-endian 32-bit float conversion
    Starting playback...
    SEEK: i=31390 (max:31427) dpos=6703872 (wanted:6703872)
    SEEK: idx=31390 (a:31390 v:31427) v.skip=12 a.skip=0/0.000
    XXX initial v_pts=418.520 a_pos=8064 (0.504)
    [libaf] Reallocating memory in module format, old len = 0, new len = 69637
    Increasing filtered audio buffer size from 0 to 69632
    [mpeg4 @ 0x8a2dc40]Invalid and inefficient vfw-avi packed B frames detected
    [ffmpeg] aspect_ratio: 1.739130
    VDec: vo config request - 640 x 368 (preferred colorspace: Planar YV12)
    Trying filter chain: ass screenshot vo
    VDec: using Planar YV12 as output csp (no 0)
    Movie-Aspect is 1.74:1 - prescaling to correct movie aspect.
    ID_VIDEO_ASPECT=1.7391
    VO Config (640x368->640x368,flags=0,'MPlayer',0x32315659)
    REQ: flags=0x437 req=0x0
    [swscaler @ 0x8ad6520]using unscaled yuv420p -> rgb24 special converter
    REQ: flags=0x437 req=0x0
    VO: [xv] 640x368 => 640x368 Planar YV12
    VO: Description: X11/Xv
    VO: Author: Gerd Knorr <[email protected]> and others
    Xvideo image format: 0x32595559 (YUY2) packed
    Xvideo image format: 0x32315659 (YV12) planar
    Xvideo image format: 0x59565955 (UYVY) packed
    Xvideo image format: 0x30323449 (I420) planar
    using Xvideo port 331 for hw scaling
    *** [ass] Allocating mp_image_t, 640x368x12bpp YUV planar, 353280 bytes
    *** [ass] Allocating mp_image_t, 640x368x12bpp YUV planar, 353280 bytes
    [ass] PlayResX undefined, setting to 384
    *** [vo] Allocating mp_image_t, 640x368x12bpp YUV planar, 353280 bytes
    *** [screenshot] Direct Rendering mp_image_t, 640x368x12bpp YUV planar, 353280 bytes
    Unicode font: 1185 glyphs.
    Unicode font: 1185 glyphs.
    *** [ass] Allocating mp_image_t, 640x368x12bpp YUV planar, 353280 bytes
    ===== PAUSE =====
    ID_PAUSED
    [ass] Font info: family 'Arial', style 'Normal', fullname 'Arial', slant 0, weight 80
    [ass] fontconfig_select: (Arial, 80, 0) -> /usr/share/fonts/TTF/arial.ttf, 0
    ===== PAUSE =====
    ID_PAUSED
    ===== PAUSE =====
    ID_PAUSED
    ===== PAUSE =====
    ID_PAUSED
    So it seems there is no error during the resuming.

  • Dwell During Blend and onboard blending

    I am trying to create a motion profile using blending. Howver I want a dwell (of dfferent times and at different places) during the profile. Is there a way to include dwells/delays in a blended motion profile?
    Also, Does anyone have an example of an onboard blend (with or without a dwell)? I have used a series on individual moves but I get a delay between moves which I think is caused by the wait on condtition VI so want to use a blend.
    Thanks
    Scott

    Hi Scott,
    positive values of the blend factor are interpreted as a delay[ms] between consecutive moves. You can change the blend factor for each blend operation.
    Running a complete motion sequence in an onboard program is not the intended use case of onboard programming and in fact in such a scenario there are no significant advantages compared to a host program in terms of execution speed and jitter. The reason for that is the fact, that onboard programs run on a quite slow controller in a low-priority thread, so this approach is not recommended.
    The most common use case of onboard programming is stopping a move at an event like exceeding a torque limit. Running such a task in an onboard program adds safety, as it runs independently from the (Windows) application.
    If your moves are too short and too fast for blending, you shoudl consider using contouring instead. Contouring provides the ultimate flexibility for defining motion profiles, including strictly timed delays.
    If you need more information, please add some more specific information to your next post (motion control board type, programming environment, motor type, drive,..)
    Kind regards,
    Jochen Klier
    National Instruments

  • How to know if board has already been intialized

    Hello,
       I am trying to automate a microscopy stage.  I need to be able to move the stage in XY with blended motion, and in Z with single axis control.  I have been able to do this but I still have one glaring problem.  The module for the XY stage may be loaded first, or the Z stage may be loaded first.  The one that get loaded first needs to initialize the board, and then the rest need to just run on the board.  I do not know beforehand which one will be first and I have not been able to figure out how to transfer this information between the programs as I have multiple boards that are running from this system and the user may decide to control the stage with one board and the Z focus with a different one.  
    So with all of that, is there a function that will tell you if the board has been initialized.  Here is what I want to do
    Start .dll
    Get properties (Board ID, Axis, blend mode....)
    Check if board is initialized.   If not then flex_initialize_controller (BOARDID,null);
    Set up axis...
    Run program.
    Thanks
    Solved!
    Go to Solution.

    When an NI 73xx motion control board is not initialized (e. g. after a power cycle or a board reset), the board is in Power-Up Reset state. The initialization routine needs to reset this flag to prepare the board for normal operation. You can read the Power-Up Reset flag with flex_read_csr_rtn().
    I hope this helps,
    Jochen Klier
    National Instruments

  • Sychronisation of DAQ on multiple cards

    I am operating with Labview 5.1.1 and Flexmotion on Windows 98 and I am an intermediate user. Using PCI-6023E and PCI-7344 motion controller card, connected by an RTSI cable. Want a process whereby after running a subvi, DAQ begins at the same time on both cards (if the output of the subvi is true). After a set time interval after DAQ begins, I want to send a signal to start motion. The start of motion routine has already been written so I just want to know how to send a signal to initialize it so that it is all synchronised. What is the best way to achieve this and which example/code in the support section is most relevant to my situation?

    Could someoneone please upload these examples as Labview 5.1.1 files for me?
    Thanks.
    Attachments:
    Integration.llb ‏1100 KB
    RTSI_with_DAQ_Modulus_Breakpoint_(on-board_re-enable).vi ‏154 KB

  • Why do I get "transmit buffer full" error message?

    I periodically receive the above error when trying to execute a series of Blend motions. Why does this occur?

    Because the motion board runs it's own onboard processes, comunication between the PC and the board is message bassed. The board has a message queue which it fills up with commands sent by the PC. If commands are issued in too rapid of a sucession it is possible to fill this queue and to return error of the type you are encountering. If you are sending down a number of blended move commands in a loop please make sure to have at least 5ms between each command.
    Hope this helps,
    Amaury

  • Function of the PLAY button versus the ENTER button

    Hello gang,
    I had a quick DVD / DVDSP related question that I've been trying to get a definitive answer for, and I've had great luck and some very helpful responses over in the Final Cut forum so I figured I'd give it a shot.
    Anyways, I'm editing some video and authoring a DVD for a group who intend to make an instructional DVD. It's divided into about five chapters and each one begins with some sort of voiceover and text/graphics. In the opening segment of the DVD, there is a voiceover that explains the way to navigate through the DVD and select chapters, etc. etc. The voiceover has already been written and recorded, but I have some concerns about the power they have designated for the "Play" button. Here is an excerpt:
    "We use the PLAY button in a couple of ways: to select and play an item that is currently highlighted in a list of items on the screen..."
    and also:
    "Almost all DVD remotes have a set of buttons that are arranged like a set of arrows (or triangles) pointing to the top, bottom, right and left of the remote control. These keys are used to move the selection pointer on menus presented on the screen. When an item is selected, it is highlighted to distinguish it from the other items in the list that are not selected. Once you have moved the selection point to the item you want, push the PLAY button to actually select and begin playback on that item."
    Now here is my concern– I was under the impression that the "Enter" button was typically used to select menu items, etc. I decided to test this on some commercial DVDs I had lying around, and it seems that the Play button does in fact work to select items. I had always assumed it was assigned just one specific role, for example playing the main title on a DVD.
    I looked it up in the DVDSP manual and this is all I found:
    "A button is selected when the viewer navigates to
    it. Only one button at a time can be in the selected state. The selected button becomes
    activated when the viewer presses the remote control’s Enter button. Depending on the
    button type, highlights or layers are used to indicate each button’s state."
    I couldn't find anything regarding the function of the Play button. I suppose my question is this: do these instructions sound okay? Are they universal? Can the Play button be used to select menu items on EVERY DVD player? I am only really stressing about this because this DVD is being targeted towards senior citizens, many of whom have extremely limited knowledge of DVD technology. I'd like to come up with the most universal, simple, and solid instructions for navigation through the DVD.
    Okay, thank you in advance. I appreciate any comments or advice you might be able to offer.
    PowerBook G4   Mac OS X (10.4.7)  

    Ah yes, Jake, but which UOP? Surely, you've seen me address this issue of there not being a Play UOP before?
    The project can be set up for Play to be Enter on a very high percentage of players, but it would be good with Christopher’s project to get the announcer to add "and Enter".
    The way it works is make sure that the "Still Off" user Op in DVD Studio Pro's Advanced Playback Controls is unchecked. DVD SP started making this default UOP denial in recent versions, which will mess up the Play remote key on a lot of players, including the Apple DVD player.
    And it would be good to take notes here Jake, since you do some Scenarist authoring. This Play remote key could bite you big time, if you're not careful (I've rescued two good authors who had trouble with what I'm about to describe; luckily, we caught it before it was submitted for replication).
    Still Off, which is what a lot of DVD player manufacturers map their play remote key if they don't directly map it to "Enter", when the DVD player is in infinite pause mode, i.e., the state a cell/program is in when displaying a still menu, causes the menu PGC to execute it's post command area (leave the PGCs still phase).
    A check of DVD SP's abstraction layer will show that navigation out of the post command area of all DVD SP's menu PGCs is determined by the current value of SPRM 8, the last selected/activated button. All of DVD SP's menu domain buttons are "LinkTail PGC" commands, so the effect of Operating Play is identical to activating a button with Enter, in the case of Still Off being the trigger.
    This can be verified by setting a button command in AfterEdit to jump somewhere directly which is different location than it was set in DVD SP. With the Still Off user op enabled, hit Play on the selected button and find that the original command in DVD SP will execute. But hit enter on the same button, and navigation will go to your test location. This is how it works on many players (you can check it out right in the Apple player).
    So it's good for spec based authors to use LinkTail PGC, which most do, on their menu button commands for still menus (in single PGCs), just in case users use Play instead of Enter in those players; or navigation can get pretty wacky! Or, if you don’t use LinkTail for the menus’ button commands, then it would be good to at least provide for code in the PGCs post command area to receive navigation in this case. But LinkTail has lots of other advantages, which is why it's used so much.
    With motion menus, Most players map the play remote key to "Enter", well, except the Apple DVD player. It turns the Play remote key to a Pause key during motion, so Christopher’s viewers would definitely be out of luck there.
    All that said, the play remote key should not be depended on as the primary for bullet-proof navigation, as you said.
    Take care,
    Trai

Maybe you are looking for