Sample Encoder with BNC2120 & PCI 6122

I have an angle encoder and I am trying to sample the output TTL signal (0-5V). I want to count the steps, considering that after every step (0.1 deg) the signal switches from high to low or viceversa.
The encoder cabling is correct.
1) Where should I put the wire on the BNC 2120? On the counter pin CTR? If yes, I have different CTR counter pins: gate, source, output (if I am not wrong). On which one I have to connect it?
2) How should I set the DAQ-MX express VI for acquiring the signal?
Thank you very much for your answers, consider that I am not very expert with electronic and programming.

Hi,
you have to connect the ttl signal to the source of CTR  (PFI8).
Take a look to the example at the link
http://zone.ni.com/devzone/cda/epd/p/id/2641.
Hope this helps.
Clara
AE Manager
NI Italy

Similar Messages

  • Registers for PCI-6122

    Hi,
    I would like to use comedi with the PCI-6122 board.  I know a driver has been written for the PCI-6143 and I was wondering if anyone know if the registers were the same or if it would be possible to get a listing of the registers so I can write the driver?
    Cheers

    Hello,
    There are some differences between the 6122 and the 6143.  Because of these differences we do not have any RLP documentation ready for the public.
    Is there a specific feature of the PCI-6122 that you are using that makes the other boards unusable for our application?  If not you could use one of the boards that are fully documented in the DDK or one that is supported by comedi.
    Thanks,
    Steven T.

  • Simultaneous sampling with a PCI-MIO-16XE-10 board

    Hello,
    I am using LabView with a PCI-MIO-16XE-10 board. I would like to make simultaneous sampling in multi channels. How can I do?
    Thank you for your help.

    Your question should be posted under "Measurement Devices >> Multifunction I/O" instead of "Real-Time DAQ" because the PCI-MIO-16XE-10 board is not a real-time device. The category "Real-Time DAQ" is reserved for 7030 real-time devices.
    The PCI-MIO-16XE-10 multiplexes channels across one amp and one A/D converter; therefore, it cannot perform true simultaneous sampling. Consider using the SC-2040 accessory, which has 8 simultaneously sampling differential amplifiers. Alternately, you can purchase a different board like the PCI-6110, which can perform true simultaneous sampling because it has individual A/D converters and amps for each channel.

  • Quadrature encoder interface to PCI-6229

    Using PCI-6229 with LV7.1.
    I need to connect an incremental quadrature encoder ( A,B and Z )
    signals directly to the card and use the CTR0 to give me the angular
    position information. Encoder is a 2500ppr type.
    As per the specification summary of the PCI-6229 card, this is
    possible. If so which terminals to use ? ( I have also posted  a
    similiar query in the other hardware forum )
    can someone help me out in this ?
    Thanks
    Raghunathan
    Raghunathan
    LV2012 to Automate Hydraulic Test rigs.

    Dear David,
    the search terms that you gave helped a lot also. I could get sample code for checkout of an encoder with LV7.1. Good.
    I am not sur eif you have actually worked with the encoder + LV
    combination. Normally any optical encoder  will produce  high
    frequency jitter if it happens to stop just at the point of transition
    of either the A or B channel . I do suppose that the DAQmx  VI
    will handle this and not produce spurious counts - or do I need to
    configure a filter for the relevant PFI lines ?
    Thanks
    Raghunathan
    Raghunathan
    LV2012 to Automate Hydraulic Test rigs.

  • How to do a single channel DAQ using NI-DAQ driver software with a PCI-MIO-16XE-10 card

    Hi,
    I would like to find out how I could do a simple one channel Data Acquisition from a signal generator using the NI-DAQ driver software with a PCI-MIO-16XE-10 card.
    I have written some test problem but even when the signal generator is turned on/off I get back some weird values.
    Here is my code.
    CString sFunctionName("");
    double volt[OUTPUT_POINTS*2];
    double out[OUTPUT_POINTS*2];
    short timebase, ready, code, stopped;
    unsigned short sampleInterval;
    int i, status, count=0;
    unsigned long update, points;
    short* ai_buffer;
    short output_ch_vector[16];
    int local_ITERATIONS = 2;
    SAFEARRAYBOUND bound[1];
    double dataItem = 9.9;
    long j;
    long k;
    double* pTheValues;
    LPTSTR lpsz_ErrMsg;
    // Initialise device
    status = Init_DA_Brds (deviceNumber, deviceNumberCode)
    Initializes the hardware and software states of a National Instruments
    DAQ device to its default state and returns a numeric device code that
    corresponds to the type of device initialized
    Init_DA_Brds(DEVICE, &code);
    // Check return code from Init_DA_Brds
    Code return should be 204: PCI-MIO-16XE-10.
    if (code < 0)
    CString sError;
    sError.Format("Code error: %d", code);
    if (code == -1)
    sError = sError + ": No device found";
    LPTSTR lpsz = new TCHAR[sError.GetLength()+1];
    _tcscpy(lpsz, sError);
    AfxMessageBox(lpsz);
    delete lpsz;
    return S_FALSE;
    // Allocate memory for analog output and input arrays
    //ao_buffer = new short[OUTPUT_POINTS*2];
    ai_buffer = new short[OUTPUT_POINTS];
    // Set double-buffering
    status = DAQ_DB_Config (deviceNumber, DBmode)
    Enables or disables double-buffered DAQ operations.
    status = DAQ_DB_Config(DEVICE, 1);
    if (status < 0 )
    sFunctionName = "DAQ_DB_Config";
    goto TidyUp;
    // Get the rate parameters
    status = DAQ_Rate (rate, units, timebase, sampleInterval)
    Converts a DAQ rate into the timebase and sample-interval
    values needed to produce the rate you want.
    status = DAQ_Rate(RATE, 0, &timebase, &sampleInterval);
    if (status < 0 )
    sFunctionName = "DAQ_Rate";
    goto TidyUp;
    // Setup scan
    status = SCAN_Setup (deviceNumber, numChans, chanVector, gainVector)
    Initializes circuitry for a scanned data acquisition operation.
    Initialization includes storing a table of the channel sequence
    and gain setting for each channel to be digitized
    status = SCAN_Setup(DEVICE, 1, ai_channels, gain);
    if (status < 0 )
    sFunctionName = "SCAN_Setup";
    goto TidyUp;
    status = SCAN_Start (deviceNumber, buffer, count, sampTimebase,
    sampInterval, scanTimebase, scanInterval)
    Initiates a multiple-channel scanned data acquisition operation,
    with or without interval scanning, and stores its input in an array
    status = SCAN_Start(DEVICE, ai_buffer, OUTPUT_POINTS, timebase, sampleInterval, timebase, 1000);
    if (status < 0 )
    sFunctionName = "SCAN_Start";
    goto TidyUp;
    while(count < local_ITERATIONS)
    // Check whether we are ready to input another half-buffer
    status = DAQ_DB_HalfReady(DEVICE, &ready, &stopped);
    if (status < 0 )
    sFunctionName = "DAQ_DB_HalfReady";
    goto TidyUp;
    if (ready == 1)
    status = DAQ_DB_Transfer(DEVICE, ai_buffer, &points, &stopped);
    if (status < 0 )
    sFunctionName = "DAQ_DB_Transfer";
    goto TidyUp;
    count++;
    // Clear the analog input
    status = DAQ_Clear (deviceNumber)
    Cancels the current DAQ operation
    (both single-channel and multiple-channel scanned) and reinitializes the DAQ circuitry.
    status = DAQ_Clear(DEVICE);
    if (status < 0 )
    sFunctionName = "DAQ_Clear";
    goto TidyUp;
    status = SCAN_Demux (buffer, count, numChans, numMuxBrds)
    Rearranges, or demultiplexes, data acquired by a SCAN operation
    into row-major order, that is, each row of the array holding the
    data corresponds to a scanned channel
    status = SCAN_Demux(ai_buffer, OUTPUT_POINTS * 2, 2, 0);
    if (status < 0 )
    sFunctionName = "SCAN_Demux";
    goto TidyUp;
    //Convert binary values to voltages (Doesn't actually take a reading from board)
    status = DAQ_VScale (deviceNumber, chan, gain, gainAdjust, offset, count, binArray, voltArray)
    Converts the values of an array of acquired binary data and the gain setting for that data
    to actual input voltages measured.
    status = DAQ_VScale (1, 0, 1, 1.0, 0.0, OUTPUT_POINTS , ai_buffer, volt);
    if (status < 0 )
    sFunctionName = "DAQ_VScale";
    goto TidyUp;

    Hello,
    Please take a look at lots of examples available at :
    1. www.ni.com >> NI Developer Zone >> Development Library >> Measurement Hardware
    2. C:\program files\national instruments\ni-daq\examples\visualc
    Sincerely,
    Sastry V.
    Applications Engineer
    National Instruments

  • Using an internal sample clock with a digital input

    I am using an encoder to measure angle and velocity. The example that I have started with is here. https://decibel.ni.com/content/docs/DOC-6834. The problem I am having is with the Sample clock, I get a timeout at the DAQmx read. If I remove the sample clock the VI runs fine, but I have no idea of my sample rate. Below is the the problem setup with the Sample clock inline.
    Attachments:
    encoder with timer.JPG ‏50 KB

    Hi there, a couple suggestions: first , this is a post that it is suppose to be on the DAQ board. Second, you are not being clear about the error, try to include the error code, description and its location, is it coming out of the channel node or the timing VI? Also what hardware are you using?
    Now, If you open the example called "Measure Angular Position.vi" from the NI example finder, drill the DAQmx Create Channel, you will see that you are missing a couple terminals for the task configuration, I wonder if this is part of the error.
    Alejandro | Academic Program Engineer | National Instruments

  • Reading simulated encoder with 6602

    Hello!
    I'm trying to read quadrature encoder (to be more specific this is an output of the pulse train generator that simulates the encoder).
    In the attached picture you can see how the signal that i'm trying to read.
    I need an advise about the correct filter settings.
    Please also see the attached vi.
    Usefull data:
    Labview 8.2.1
    Capturing device PXI-6602.
    The Encoder is 16384 pulses. (If the reading is x4, i should get 2^16 - 65536 ticks).
    The Encoder has differential outputs, but i've connected only A,B and Z.
    The rotating speed is up to 5000 rpm. You can see in on the picture. (16384*(5000/60)=1,365,333MHz).
    There is no problem to read the encoder with another devices, i have a motion analyzer from Control&Robotics solution and it works great.
    Thank you.
    Elman Izia.
    001.jpg (78 kb)
    Position capture.vi (171 kb)

    Hi Elman,
    The filter clock is used to make sure that your signal has
    integrity and eliminates glitches.  In
    order for signal to be counted, it must remain high for two consecutive periods
    of your filter clock.  There are five
    time bases (5us, 1us, 500ns, 100ns and programmed) that can be used as your
    filter clock.  The programmed clock can
    be created by another counter and this setting will let a signal be counted if
    it is at least twice times the filter period.
    This is a great method to help eliminate errors that can be
    introduced by noise, crosstalk or transmission line effects.
    The TimebaseSrc property is going to select a clock to be
    used as the source.  In your example that
    property is correct, you would want to use the 80MHz clock.  The TimebaseRate property is going to be used
    to divide the clock down to specific frequency. 
    It will divide the master clock down by an integer value and round it to
    get a rate that is as close to the value entered.  I would recommend leaving this number as
    80MHz. 
    The MinPulseWidth property is going to determine the clock
    of the filter clock.  This property is
    going to use the TimebaseRate property to create the predefined filter clock
    settings.  If your signal stays high for
    two consecutive periods of the minimum pulse width, then it will be counted. 
    You need to determine the minimum pulse width that is
    acceptable for your application.  Since
    your signal has a pulse width of about 360ns, you might want to use the
    predefined filter clock of 100ns.
    In short, you are creating a digital filter that will only allow
    a signal to be recognized if it remains high for two consecutive pulses.
    For further explanation, refer to the PCI/PXI–6602 User
    Manual page 3-20.
    http://www.ni.com/pdf/manuals/322137a.pdf
    Respectfully,
    Rob F
    Test Engineer
    Condition Measurements
    National Instruments

  • Payload type of wav files encoded with gms codec

    Hello everybody,
    I have an application which receives and plays alaw formated wav files using JMF(with the help of some additional libraries) . I want to use lower bandwidth for my application. A quick google search indicated that i can do this by using gsm format.
    I have 2 questions:
    1-) what are the differences between .gsm files and .wav files which are encoded with gsm codecs? Which one's quality is better? which one's compression ratio is better?
    2-) which payload type should i use for wav files which are encoded with gsm codecs?
    In [Rtp Payload list|http://www.iana.org/assignments/rtp-parameters] page, there is a gsm entry whose payload is 3. I suppose that is for files with gsm extension. I tried it but it didn't work with my wav sample (as u can guess it was encoded with gsm 6.10 codec)
    Any suggestion is appreciated. If you have a comment about the main problem (which is using lower bandwidth for sending audio data) i would also like to hear it
    Thanks in advance
    btw i also tried this [gsm sample|http://www.nch.com.au/acm/sample.gsm] with payload 3.At first it worked but then strangely it played just static. In Sun's page it says gsm format is supported. I played both ulaw and alaw succesfully so i wonder what i am doing wrong. Do we need to tell the player that it is going to receive data in gsm format? I didnt do such a thing for u-law and a-law formats...
    Edited by: Bugra.Hasbek on Nov 10, 2008 1:18 AM

    Bugra.Hasbek wrote:
    Hello everybody,
    I have an application which receives and plays alaw formated wav files using JMF(with the help of some additional libraries) . I want to use lower bandwidth for my application. A quick google search indicated that i can do this by using gsm format.
    I have 2 questions:
    1-) what are the differences between .gsm files and .wav files which are encoded with gsm codecs? Which one's quality is better? which one's compression ratio is better?I would imagine they are the same...
    2-) which payload type should i use for wav files which are encoded with gsm codecs?I would imagine 3...
    In [Rtp Payload list|http://www.iana.org/assignments/rtp-parameters] page, there is a gsm entry whose payload is 3. I suppose that is for files with gsm extension. I tried it but it didn't work with my wav sample (as u can guess it was encoded with gsm 6.10 codec)
    Any suggestion is appreciated. If you have a comment about the main problem (which is using lower bandwidth for sending audio data) i would also like to hear itMy suggestion would be not to worry about so much stuff. JMF does all of this for you automaticlly.
    On the sender side, make your processor take in whatever kind of supported file you want. Set the processor to output your GSM mono, and then you can just use a Player to play it on the other side. It's really not very different than the examples...
    [http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/solutions/AVTransmit.html]
    When you're programming the tracks, and you're calling "setFormat" on them, just set their format to be gsm.
    [http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/solutions/AVReceive.html] should be able to play this out of the box...

  • Jerky encoding with UscreenCapture

    I have Abobie Flash Encoder 2 and have jerky video on all
    encoding. I use UscreenCapture as a capture device. I can run up
    the stream to 1000kbps and still have jerks on pans. This renders
    all videos unusable.
    This may be a problem with UscreenCapture but I have smoth
    playback on the output window.
    I have changed settings to best framerate.
    MAchine Windows Xp 3.2 ghz with 1 gig ram nvidia 7300
    sample here www.whatsignal.com/flash/flvplayer.html
    I don't know how to fix it unless maybe I need a different
    screen capture utility.

    Well I find this filter is quite good in 'masking' block artifact that codec like xvid, or other low compression codec have. I only apply it if I find the block artifact is too much and I find this filter is less offending to my eyes than the block artifact.
    In manual it said that if you have noisy video and want to lower the size then you can use this filter. It also blur the video a bit. But I suspect it is more than blur as I try gaussian blur in time line and the result is not as good. You can see the result as well. There is the tab between source and target and you can compare the result by togling between source and target tab.
    BTW, anyone with 1 core, dual, or quad core, can you tried to encode with it? Just cancel it after few minutes as I want to see what is your processor utilization with this filter on. Also you can see how long does it take to process this video from the 'estimation time left'.

  • How do I import files encoded with FFV1 into Premier CS5?

    Sorry if I get things a little mixed up here, but I'm still a relative editing newbie and some terms are confusing to me, but here goes!
    I've been given a bunch of short video clips that I need to import into Premier CS5. Trouble is, they have been (I am told) encoded with the FFV1 codec, and when I import them into Premier all I can see is the audio track and no video. Other than asking my friend to re-encode the files (over 200) in a different way, is there some workaround to get these files working in Premier?
    Thanks for reading.

    Thanks for all the useful info everyone. Here is the info that Mediainfo generated:
    General
    Complete name                    : F:\rufus.avi
    Format                           : AVI
    Format/Info                      : Audio Video Interleave
    File size                        : 194 MiB
    Duration                         : 55s 798ms
    Overall bit rate                 : 29.2 Mbps
    Writing application              : Lavf52.23.1
    Video
    ID                               : 0
    Format                           : FFV1
    Codec ID                         : FFV1
    Duration                         : 55s 680ms
    Bit rate                         : 29.1 Mbps
    Width                            : 384 pixels
    Height                           : 272 pixels
    Display aspect ratio             : 1.412
    Frame rate                       : 50.000 fps
    Compression mode                 : Lossless
    Bits/(Pixel*Frame)               : 5.580
    Stream size                      : 193 MiB (99%)
    Audio
    ID                               : 1
    Format                           : MPEG Audio
    Format version                   : Version 1
    Format profile                   : Layer 3
    Codec ID                         : 55
    Codec ID/Hint                    : MP3
    Duration                         : 55s 798ms
    Bit rate mode                    : Constant
    Bit rate                         : 128 Kbps
    Channel(s)                       : 1 channel
    Sampling rate                    : 44.1 KHz
    Compression mode                 : Lossy
    Stream size                      : 871 KiB (0%)
    Alignment                        : Aligned on interleaves
    Interleave, duration             : 26 ms (1.30 video frame)

  • Max. sample frequency with "Modulus Breakpoint (on-board re-enable).vi"

    Hi all,
    I'm using the PCI-7344 board and I'd like to trigger an external device. The trigger frequency should be very high (> 4 kHz).
    Is it possible to realize such a sample rate with breakpoints and an onboard program like: "Modulus Breakpoint (on-board re-enable).vi".
    I don't need a visual indicator and so I don't need the 10 ms delay in the second part.
    What is the timeout in the first part for?
    Thanks in advance for your help.
    Best regards
    Attachments:
    Modulus_Breakpoint_(on-board_re-enable).vi ‏114 KB

    Depending on the movement of a xy - stage (controlled by the motion controller) I'd like to trigger a pulsed laser. Maybe every 2 µm I need a short TTL pulse to release a laser pulse.
    I tried a software based solution as well as a on-board solution. Both ways are working well but unfortunately the software based solution is limited to 20 Hz and the on-bord solution is limited to 50 Hz.
    Because of that I have to decrease Vmax in my application to 100µm/s.
    Well , it would be much easier to trigger the laser with an adjusted frequency. The problem is the acceleration and deceleration of the stage. Because of that the pulses will overlap much more at the edges and that's the fact I wanna avoid.
    Thanks for your help. Best regards

  • Sample Project with ni hardware using NI-DAQmx Driver

    hi, i need a Sample Project with NIi hardware using NI-DAQmx Driver

    Please stick to one thread. You've created several that are asking the same thing and the answer remains the same - Help> Find Examples if using LabVIEW. Other programming languages come with their own set of examples.

  • File encoded with x264 takes forever to load in Encore CS 5.5

    I use Encore mostly because it takes h.264 video encoded with the x264 compressor, which provides much higher quality than any other compressor. The problem is that these files take forever to load. For example, right now I'm trying to load a video that is about 1 hour and 20 minutes long, encoded at 38 Mbps, and the file is 20.9 GBytes. Now it's 3 PM and I imported this file along with the AC3 file over an hour ago. The Encore process shows as not responding, but when I open the Windows 7 Resource Monitor, in the disk tab it shows that it's reading the video file at a rate of about 45 MB/s, so I didn't kill the Encore process. I know eventually it's going to stop and load the file, but I don't understand why it takes so long. The encoding parameters that I used in x264 are these:
    x264 --level 4.1 --bluray-compat --preset slow --bitrate 38000 --keyint 30 --min-keyint 2 --open-gop --weightp 0 --slices 4 --vbv-bufsize 30000 --vbv-maxrate 40000 --rc-lookahead 40 --tff --output "output" "input"
    This comes from a family video that is 1080 59.94i. This time these two parameters appeared because I selected Blu-ray as the target:  --bluray-compat and --open-gop, which I don't normally use, but still, even when I don't use them, video encoded with x264 takes forever to load. Does anybody here know what could be the problem?

    What's weird is last year I encoded a file that was almost two hours long and Encore took it without trouble, although it was CS5, not 5.5. Since I had kept the avs and bat files, and also the x264.exe from that encode, I brought them into the current working folder and I just modified the file names in the avs and bat files to point to the new avi and encode to the new h264 file. So I encoded this file, I imported it into Encore, and it still hangs. Maybe it was a change from CS5 to 5.1 that introduced a problem. x264 has been certified to be Blu-ray compliant since over a year ago, and I already put this file to a Blu-ray with TSMuxer, since it was a family video and I didn't really need menus, and it plays perfectly fine in my Blu-ray player.
    But I'm sure there must be something, one or two parameters that would make it compatible. For example, after encoding the file again the last time, now I can import it into Encore, and it doesn't stay frozen forever, but it doesn't show me the video and as soon as I try to move the timeline cursor it freezes and doesn't let me do anything for several minutes. So still it's not usable. But it's a change from the first encode where the progress dialog would be there for several hours and do nothing at all.

  • Need sample code with RV_INVOICE_CREATE used

    Hi everybody!
    I need sample code with RV_INVOICE_CREATE or similar FMs used.
    The thing is that I do not know how to populate parametres of this and other invoicing FMs....
    For example, there are some tables to be passed to RV_INVOICE_CREATE
         TABLES
              XKOMFK     = XKOMFK
              XKOMV       = XKOMV
              XTHEAD      = XTHEAD
              XVBFS        = XVBFS
              XVBPA        = XVBPA
              XVBRK        = XVBRK
              XVBRP        = XVBRP
              XVBSS        = XVBSS
    How to populate them? I mean how to fill them with needed values?
    Useful answers will be awarded.
    Kind regards, M.

    RV_INVOICE_CREATE is the function module to create invoice based on delivery .
    when you pass delivery number ,it will create invoice ,see the invoice number in vf02,vf03 transaction. and also see the data vbrk,vbrp tables
    I have done this development and i have cancelled invoice,reverse goods issue,updated the delivery and again i am createing invoice..see the below progrm to get better understanding.
    REPORT ZWM_OVERWEIGHT_FIX  no standard page heading
                               message-id zwm.
    ======================================================================
    Program Name : ZWM_OVERWEIGHT_FIX                                    *
    Description  : Tool to fix Overweight in delivery line item,         *
                   Used All Function module to cancel invoice ,          *
                   Reverse the goods issue  ,Update Delivery qty,Create  *
                   invoice                                               *
    Author       : Seshu                                                 *
    Date         : 05/08/2007                                            *
    MODIFICATION HISTORY                                                 *
    DATE    | AUTHOR   | CHANGE #   | DESCRIPTION OF MODIFICATION        *
    --|||--
    05/08/07| Seshu    | DEVK921979 | Initial                            *
    D A T A - D E C L A R A T I O N     *******************
    Tables
    Tables : vbak,
             vbap,
             vbfa,
             likp,
             lips,
             vbrk,
             vbrp.
    Internal Tables
    data : i_lips like lips occurs 0 with header line,
           i_vbap like vbap occurs 0 with header line.
    Variables
    data : v_deliv like vbfa-vbelv,
           v_invoic like vbfa-vbelv.
    Data Declaration Part for Post Goods Issue
    DATA: l_vbeln LIKE likp-vbeln,
          l_vbkok LIKE vbkok,
          i_prot LIKE prott OCCURS 0 WITH HEADER LINE,
          ef_error_any_0 TYPE c,
          ef_error_in_item_deletion_0 TYPE c,
          ef_error_in_pod_update_0 TYPE c,
          ef_error_in_interface_0 TYPE c,
          ef_error_in_goods_issue_0 TYPE c,
          ef_error_in_final_check_0 TYPE c,
          d_return   LIKE bapireturn1.
    Internal tables for BAPI Function Module
    data : i_cret like BAPIRETURN1 occurs 0 with header line,
           i_csucess like BAPIVBRKSUCcESS occurs 0 with header line,
           i_ret2 like bapiret2 ,
           flag type c,
           i_mesg like mesg occurs 0 with header line.
    Data Declaration for Invoice Creation
    DATA: VBSK_I     LIKE  VBSK.
    data: d_success  type  c.
    DATA: XKOMFK LIKE      KOMFK   OCCURS 0 WITH HEADER LINE,
          XKOMV  LIKE      KOMV    OCCURS 0 WITH HEADER LINE,
          XTHEAD LIKE      THEADVB OCCURS 0 WITH HEADER LINE,
          XVBFS  LIKE      VBFS    OCCURS 0 WITH HEADER LINE,
          XVBPA  LIKE      VBPAVB  OCCURS 0 WITH HEADER LINE,
          XVBRK  LIKE      VBRKVB  OCCURS 0 WITH HEADER LINE,
          XVBRP  LIKE      VBRPVB  OCCURS 0 WITH HEADER LINE,
          XVBSS  LIKE      VBSS    OCCURS 0 WITH HEADER LINE,
          XKOMFKGN LIKE    KOMFKGN OCCURS 0 WITH HEADER LINE.
    S E L E C T I O N  -  S C R E E N   ******************
    Selection-screen
    Selection-screen : begin of block blk with frame title text-001.
    parameters : p_vbeln like vbak-vbeln obligatory.
    selection-screen : end of block blk.
    A T -  S E L E C T I O N  - S C R E E N ***************
    Validation on Sales order
    at selection-screen on p_vbeln.
    Check the data on VBAK Table
      select single vbeln from vbak into vbak-vbeln
                                where vbeln = p_vbeln.
      if sy-subrc ne 0.
        message e006 with p_vbeln.
      endif.
    S T A R T  - O F - S E L E C T I O N *******************
    Start-of-selection.
      break sreddy.
    Get the Invoice Number corresponding Sales Order Number
      perform get_invoice.
    Step 1.
    Cancel the Invoice  - Transaction VF11
      perform cancel_invoice.
    Reverse the goods issue
      perform reverse_goodsissue.
    Get the Order and Delivery Items
      perform get_sales_deliv.
    Delivery Change
      perform Delivery_change.
    Create Invoice document
      perform invoice_create.
    E N D  -  O F -  S E L E C T I O N  *******************
    end-of-selection.
    if flag = 'X'.
    message i012 with p_vbeln.
    endif.
    *&      Form  get_invoice
          Get Invoice Number
    FORM get_invoice.
    Clear Variables
      clear : v_deliv,
              v_invoic,
              flag.
    Get the Delivery Number First
      select single vbeln from vbfa into v_deliv
                               where vbelv = p_vbeln
                               and   vbtyp_n = 'J'.
      if sy-subrc ne 0.
        message i004 with p_vbeln.
        stop.
      endif.
    Get the Invoice Number
      select single vbeln from vbfa into v_invoic
                               where vbelv = p_vbeln
                               and   vbtyp_n = 'M'.
      if sy-subrc ne 0.
        message i003 with p_vbeln.
        stop.
      endif.
    ENDFORM.                    " get_invoice
    *&      Form  cancel_invoice
          Cancel the Invoice
    FORM cancel_invoice.
      clear : i_ret2,
              i_cret,
              i_csucess.
      refresh : i_cret,
                i_csucess.
      CALL FUNCTION 'BAPI_BILLINGDOC_CANCEL1'
        EXPORTING
          BILLINGDOCUMENT       = v_invoic
      TESTRUN               =
      NO_COMMIT             =
      BILLINGDATE           =
        TABLES
          RETURN                = i_cret
          SUCCESS               = i_csucess
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
           EXPORTING
                WAIT   = space
           IMPORTING
                RETURN = i_ret2.
    read table i_cret with key type = 'E'.
      if sy-subrc ne 0.
        message i005 with v_invoic.
        stop.
      endif.
    ENDFORM.                    " cancel_invoice
    *&      Form  reverse_goodsissue
          Reverse the goods Issue
    FORM reverse_goodsissue.
    Local Variable
      data : lv_vbtyp like likp-vbtyp.
      clear : i_mesg,
              lv_vbtyp.
      refresh : i_mesg.
      select single vbtyp from likp into lv_vbtyp
                               where vbeln = v_deliv.
      CALL FUNCTION 'WS_REVERSE_GOODS_ISSUE'
        EXPORTING
          I_VBELN                         = v_deliv
          I_BUDAT                         = sy-datum
        I_COUNT                         =
        I_MBLNR                         =
        I_TCODE                         =
          I_VBTYP                         = lv_vbtyp
        TABLES
          T_MESG                          = i_mesg
       EXCEPTIONS
         ERROR_REVERSE_GOODS_ISSUE       = 1
         OTHERS                          = 2
      if sy-subrc ne 0.
        message i007 with v_deliv.
      endif.
    ENDFORM.                    " reverse_goodsissue
    *&      Form  get_sales_deliv
          Get the Sales order and Deliv Items
    FORM get_sales_deliv.
    Local Variables
      data : lv_kwmeng like vbap-kwmeng.
      clear : i_lips,
              i_vbap.
      refresh : i_lips,
                i_vbap.
    Select the data from LIPS
      select * from lips into table i_lips
                         where vbeln = v_deliv.
      if sy-subrc ne 0.
        message i008 with v_deliv.
        stop.
      endif.
      sort i_lips by vbeln posnr.
      Get the Sales order Item Data.
      select * from vbap into table i_vbap
                              where vbeln = p_vbeln.
      if sy-subrc ne 0.
        message i006 with p_vbeln.
        stop.
      endif.
      sort i_vbap by vbeln posnr.
    Compare delivery Item and Order Items
      loop at i_lips.
        clear lv_kwmeng.
        read table i_vbap with key posnr = i_lips-posnr.
        if sy-subrc eq 0.
          lv_kwmeng = i_vbap-kwmeng * 2.
          if lv_kwmeng >= i_lips-lfimg.
            i_lips-lfimg = i_vbap-kwmeng.
            modify i_lips.
          endif.
        endif.
      endloop.
    ENDFORM.                    " get_sales_deliv
    *&      Form  Delivery_change
          Delivery Update
    FORM Delivery_change.
      Clear : i_prot.
      refresh : i_prot.
    Delivery Update
      CALL FUNCTION 'LE_MOB_DELIVERY_UPDATE'
           EXPORTING
                do_commit                = 'X'
           TABLES
                t_delivery_items         = i_lips
                prot                     = i_prot
           EXCEPTIONS
                conversion_overflow      = 1
                essential_data_missing   = 2
                error                    = 3
                nothing_to_update        = 4
                lock_after_update_failed = 5
                error_in_delivery_update = 6
                OTHERS                   = 7.
      COMMIT WORK.
      IF sy-subrc <> 0.
        MESSAGE i009 with v_deliv.
      endif.
    Post Goods Issue
      CLEAR:    d_return,
                i_prot,
                l_vbeln,
                l_vbkok.
      REFRESH i_prot.
      CLEAR:  ef_error_in_item_deletion_0    ,
              ef_error_in_pod_update_0       ,
              ef_error_in_interface_0        ,
              ef_error_in_goods_issue_0      ,
              ef_error_in_final_check_0      .
    carry out goods issue
      l_vbeln          = v_deliv.
      l_vbkok-vbeln_vl = l_vbeln.
      l_vbkok-wabuc    = 'X'.
    carry out goods issue
      l_vbeln          = v_deliv.
      l_vbkok-vbeln_vl = l_vbeln.
      l_vbkok-wabuc    = 'X'.
    SET UPDATE TASK LOCAL.
      CALL FUNCTION 'WS_DELIVERY_UPDATE'
           EXPORTING
                vbkok_wa                    = l_vbkok
                synchron                    = 'X'
                no_messages_update          = ' '
                update_picking              = 'X'
                commit                      = 'X'
                delivery                    = l_vbeln
                nicht_sperren               = 'X'
                if_error_messages_send_0    = space
           IMPORTING
                ef_error_any_0              = ef_error_any_0
                ef_error_in_item_deletion_0 = ef_error_in_item_deletion_0
                ef_error_in_pod_update_0    = ef_error_in_pod_update_0
                ef_error_in_interface_0     = ef_error_in_interface_0
                ef_error_in_goods_issue_0   = ef_error_in_goods_issue_0
                ef_error_in_final_check_0   = ef_error_in_final_check_0
           TABLES
                prot                        = i_prot
           EXCEPTIONS
                error_message               = 1
                OTHERS                      = 2.
      if sy-subrc ne 0.
        message i010 with v_deliv.
      else.
        COMMIT WORK .
      endif.
    ENDFORM.                    " Delivery_change
    *&      Form  invoice_create
          Invoice Creation
    FORM invoice_create.
      refresh: XKOMFK, XKOMV,
               XTHEAD, XVBFS,
               XVBPA,  XVBRK,
               XVBRP,  XVBSS.
      clear  : XKOMFK, XKOMV,
               XTHEAD, XVBFS,
               XVBPA,  XVBRK,
               XVBRP,  XVBSS,
               VBSK_I.
      VBSK_I-SMART = 'F'.
      XKOMFK-VBELN =  v_deliv.
      XKOMFK-VBTYP = 'J'.
      APPEND XKOMFK.
      CALL FUNCTION 'RV_INVOICE_CREATE'
           EXPORTING
                VBSK_I       = VBSK_I
                WITH_POSTING = 'C'
           TABLES
                XKOMFK       = XKOMFK
                XKOMV        = XKOMV
                XTHEAD       = XTHEAD
                XVBFS        = XVBFS
                XVBPA        = XVBPA
                XVBRK        = XVBRK
                XVBRP        = XVBRP
                XVBSS        = XVBSS.
      if sy-subrc eq 0.
        COMMIT WORK.
       flag = 'X'.
      else.
      message i011 with p_vbeln.
      endif.
    ENDFORM.                    " invoice_create
    Reward Points if it is helpful
    Thanks
    Seshu

  • Steps to UTF-8 Encoding with Oracle 8i and Weblogic 6.1SP1

    What are the Steps to UTF-8 Encoding with Oracle 8i and Weblogic
              6.1SP1?
              I have:
              - Oracle 8.1.5 database created with character set=UTF8 and national
              character set=UTF8
              - Weblogic 6.1SP1 without any encoding mechanism set
              (though I did play with
              <jsp-param><param-name>encoding</param-name>
              <param-value>UTF-8</param-value>
              </jsp-param>
              in the weblogic.xml for a while though it seemed not to make a
              difference)
              - JSP pages set to content='text/html; charset=UTF-8'
              - JSP form POSTs set to enctype="UTF-8"
              I can copy and paste Chinese Kanji from a UTF8 encoded web page into
              form text boxes but when I post the data it comes back as different
              Kanji. Then once it is posted the Kanji stays the same on repeated
              posts. The same Kanji text also looks different when viewed in a form
              text box than when viewed as straight text on the page.
              Is there anything else? Or am I already encoding characters twice?
              Please help!
              Mel Christie
              

    Hi Experts,
    Please correct me if am asking you the question in wrong way.
    I have ARCGIS with oracle database 10gr2 in production server.
    My work is to connect AUTOCAD S/W (client computer which is connected in LAN) to ARCGIS in order to access the toposheets available in SDE user.
    When iam trying to connect iam getting this error:The specified credentials are not valid or provider is not able to establish a connection.
    I checked the path to production server by pinging and user/passcode too but not helpful.
    Please help me in this , very urgent.
    Thanks.
    Edited by: user13355644 on Jul 3, 2010 3:53 AM
    Edited by: user13355644 on Jul 22, 2011 2:55 AM

Maybe you are looking for

  • OAF - Values not getting displayed in Search Page

    Hi all, I have developed a search page with the search citeria mapped to the search panel. I have created VO for this attribute and selected the value from View in this VO(Viewobject). I have created the Query region and set the property of Construct

  • Just bought a new desktop

    I'm trying to get a new desktop pc up and running with all of my old files. OS = Windows 7 Copied my music files Installed iTunes When I try to run iTunes I get the error message ... The file "itunes library.itl" cannot be read because it was created

  • Will Adobe Premiere Pro support Olympus E-P1 videos and when?

    Premiere Pro does not support Olympus PEN E-P1 videos. Will this be supported and any indication of when? Thanks John

  • [SOLVED] Terminal fonts not working properly?

    I just recently finished a fresh install on my new Thinkpad x220, but noticed a peculiar trait about the install. I can not change the size of my fonts, and the only font that I can choose from is clear. This is because every other font previews as H

  • Premiere Elements 8: Audio sync problem when exporting to Quicktime H.264

    Program plays back fine on the timeline also when saved as a mpeg file. QT file audio sync is off. Using QT player to play back. Any thoughts?