More myRIO PWM outputs via FPGA

I'm working on a project with the myRIO that requires 9 servo PWM signals. I know that the PWM Express VI operates on 8 different pins among the 3 connector ports on the myRIO. After spending a few hours researching FPGA, I was getting no where since a lot of it is beyond my skill level/understanding. 
So my question is: what is the simplest way to create more PWM signals with controllable duty cycles on the myRIO FPGA? I wanted to have all the servos attached to pins on one connector for simplicity (e.g., all on MXP-A).
My initial thought was to create more instances of the DIO/PWM mappings under MXP-A in the shipping personality. But then I had a vague feeling that this segment of the VI makes these pins compatible with the PWM Express VI and doesn't actually produce PWM signals. Is that what this does? Or is it possible to make copies of this and rename the registers PWM.A_3..., PWM.A_4...., PWM.A_5..., etc.?
I looked at PWM Output With LabVIEW FPGA, but that didn't make any sense to me considering it has no documentation. I also found Developing a PWM Interface using LabVIEW FPGA, but I couldn't see a simple way to adapt it to my needs, while keeping the standard functions of the pins on the other connectors.
Thanks.
Bob

Sorry for the delay Sam. I figured out how to add the PWM outputs via FPGA and it works. Then I tried to accomplish this while still retaining the functions of the other connectors. My method was to go into the FPGA personality and replace all of DIO-A's FPGA with my PWM code while keeping all of the FPGA code for the other connectors intact. The files are attached.
My issue is: in RT Main, I also tried to run something from the MXP-B connector (PWM Express for example) in a parallel while loop while still running my custom PWM on MXP-A. This produced nothing. I read the PWM Express signal on B/AI0 and it was a flatline at zero. However, when I created a new VI that just uses PWM Express on MXP-B, it works fine.
Is there a reason why the express VIs aren't working on the other connectors simultaneously?
Thanks,
Bob
Attachments:
myRIO-1900 Customized FPGA.vi ‏388 KB
RT Main.vi ‏506 KB

Similar Messages

  • DC motor control via ctr1/ctr0 pwm output stops outputting after one loop through.

    Working on this project to control an H-bridge controlled
    motor using pwm output from ctr0/ctr1 for ccw and cw on the motor. A sensor detects where it is at and each cycle goes from black to white. For some reason, the motor only turns on once and then nothing comes out of the ctr outputs after that. Anytime the program is stopped and restarted it works for one cycle. Or if just the program is run at the skipcolor sub-vi. this can be run multiple time to control it properly. During the actual run it doesn't work. Any implementation device would be great. I am using the PCI-MIO-16E controller.
    Programs attached for reference.
    Attachments:
    SkipColor1.vi ‏111 KB
    MotorControl2.vi ‏99 KB
    PROJECT 2a2.vi ‏18 KB

    Hey suspencefull,
    You are probably going to have to think about re-designing your code. Your pulse train is not continually generating because you do not have it in a loop. When you use the DAQ Assistant to create a continuous pulse train, LabVIEW will prompt you if you want it to automatically add the loop. You must have deleted it or chosen not to add the loop.
    There will, however, be problems though when you add the loop back in. The SkipColor sub VI will not finishing executing until the loop is finished and therefore you will never move out of the first frame of your sequence. I would suggest redesigning your code so that these thing can occur in parallel.
    Please let me know if you have further questions.
    Regards,
    Chris Delvizis
    National Instruments

  • Motion Assistant and PXI-7354 PWM output

    Hello,
    I have a PXI-7354 Motion Controller in a PXI-1033 rack and I'm trying to prototype a product which has a digital motor controller IC, A3906 by Allegro. The IC is controlled with PWM signals by varying the duty cycle. Now, in the NI 7350 User Manual on page 5-17, it says that "These signals (PWM) are configured in software and are in no way associated with the PID servo control loop." My question is, can I programmatically associate the output of the control loop with a PWM output duty cycle?
    I'm new to Motion Assistant and PXI motion controllers and I appreciate any input.
    Regards,
    Miika Lönnqvist
    Electronics designer, CLAD
    Biohit Oyj R&D

    Miika,
    thank you for the information, but there is no way for the 7354 to drive control signals directly in this fashion. So here are some alternative approaches that could help:
    The 7354 outputs a +/- 10 V control signal. You could build your own circuitry to adapt this signal to the control input requirements of your drive (two voltage to PWM converters; one driven by positive voltage values, the other one driven by negative voltage values).
    Replace the 7354 with an R-Series board. The FPGA on these devices can be programmed graphically with LabVIEW FPGA and it provides both, real-time control and complete flexibility in terms of I/O mapping and control algorithms. Motion control with special requirements is a typcial usecase for these devices.
    You can select from a variety of R-Series boards with different FPGA sizes and I/O setups. If you don't need any analog inputs or outputs, the reasonable lowest cost entry point for your application is probably a PXI-7811R
    Both approaches add some complexity to your current setup. While the first approach is hardware centric, the second approach adds some complexity on the software side. My personal preference is option two, as this provides the highest level of flexibility, which is typically very desirable for a prototyping system.
    In any case I recommend to contact your local NI contact for a more detailed consulting.
    Kind regards,
    Jochen

  • PWM output and DIO output on same pin(MultiTasking)

    Hi guys, ive encounter some problem in myrio 1900, which is using PIN31 for digital output and PWM output. while the testing , i cant sending PWM, i only can passing the read value from other Digital input and transfer towards PIN 31. ive tried to change in low level logic but myrio disconnect after 3-5 seconds. By the way ive attached few picture to clarify my current situation, hope can clarify my problem clearly.
    thank you.
    regards
    vincent 
    Attachments:
    1.png ‏51 KB
    2.png ‏49 KB
    3.png ‏49 KB

    http://forums.ni.com/t5/Academic-Hardware-Products-ELVIS/bd-p/10

  • Output via idoc/ale

    Hello Guru's
    creating output for billing docs via idoc.
    Just one more question, I am doing this output via medium 6 and date 4 (send immediately) now since my output is founf in the billing doc and it is saving properly what is my next job to create the programme?
    If you can tell me what would be the next process to see and maintain.
    I have maintained port, partner profile, distribution model also.
    Thanks
    Aman

    Hi,
    Goto the T.Code NACE.
    Select your appropriate output type.
    Click on Details.
    Goto Processing routines.
    Maintain the medium as "6(EDI)" and program as "RSNASTED" and Form routine as "EDI_PROCESSING".
    Please check with your ABAPer to trigger the IDOC.
    Regards,
    Krishna.

  • How can i generate variable pulse waveform using PWM outputs of 7344.

    Hi
    I want to generate a pulse waveform using the pwm outputs of 7344. How can i very the frequency of the PWM programatically.

    If you are programming in LabVIEW, you can use the Configure PWM Output VI to set up the frequency of the pulse train. If you are in any other language, you can use the NI-Motion API and call the flex_configure_pwm_output function to achieve the same result. Please refer to the NI-Motion C reference help that gets installed with the NI-Motion 6.0 driver or follow this link:
    http://digital.ni.com/manuals.nsf/websearch/92003B​670CC3CB3F862567C800755B95?OpenDocument&node=13209​0_US
    for more information on this function.

  • MyRIO simple code compilation FPGA

    Hello,
    I am new to FPGA and I want to compile some simple code. I know that myRIO comes with default FPGA configuration so I want to create new one and compile it. Lets say that I want blinking LED. So I create new VI on FPGA and here is simple code:
    then I add it to build and start compilation
    As compilation goes it says that it will use 30% of FPGA resources:
    Why is that? Whole compilation on cloud server takes more than 20 minutes. I have seen some example videos on CRio FPGA and that simple code should use no more than 2% of resources and shuld compile in 2 to 3 minutes.
    What I am doing wrong?
    Thanks in advice

    Hey Pawhan11,
    There are two main reasons for the FPGA resource consumption.  First is that the FPGA on the myRIO (Zynq Z-7010) is relativly small compared to some other NI targets you may have used.  The second reason that even a simple FPGA application takes ~20% of the FPGA fabric is because some of the FPGA fabric is already being used for other purposes.  For example some NI Real-Time targets implement UARTs, RS232 or even ethernet in the FPGA to ensure consistency between devices. 
    Since myRIO is based on the Xilinx Zynq chip it uses a different toolchain than previous FPGA devices which may cause the difference in compile/synth times.
    -Sam K
    LabVIEW Hacker
    Join / Follow the LabVIEW Hacker Group on google+

  • Diff one frame when outputing via edit to tape.

    So.... my problem is simply that the video I am outputing via edit to tape is diffing one frame in maybe 50% of the times. This makes my job a little more stressful in deadline situations.
    How do I solve this problem?
    /Tobias

    Thank you Shane,
    This is my specs:
    codec: AJA VUY
    tape: digibeta
    capture card: aja cona LH
    FCP: 6.0.4
    QT: 7.5
    Yes exactly, my movie starts at 10:00:00:01 if Im not so lucky, but that happens randomly, maybe 50% of the times. In bigger timelines this can cause big delays.
    I have tried changing frame offset in playback control and changed the playback offset in the Device control Preset, back and forward, without any result.
    This man, Marcus, seems to have the same problem.
    http://forums.creativecow.net/thread/8/974298#974859
    Any clues?
    Thank you so much for your help!
    /Tobias

  • Outputting via SDI to DigiBeta thru Blackmagic Decklink Extreme

    I'm running Final Cut Pro 5.1.2 on MacOS 10.4.8. I've edited a 23.98FPS - DVCPro50 sequence. I can preview using the Decklink Extreme card fine. I can output via compenent out to a regular beta deck (UVW-1800) just fine, which is also the deck I use for monitoring while I am editing. I plug the SDI output from the decklink card into our digibeta deck (DVW-A500). I also send the audio over SDI. I see both the audio and video in my digibeta deck. If I just PLAY the sequence out, the digibeta sees and hears it fine. No problems.
    This is my problem. Whenever I try to 'edit to tape' it usually starts out fine... then I get A LOT of digital drop outs / squares / digital distortion on the digibeta. They come up randomly and it also digitally distorts the audio when you play the tape back.
    The digibeta deck is fine, as we use it to output via our Avid Media Composers every day...no dropouts or problems. It has to be with FCP / DeckLink Card when you try an 'edit to tape'. I've also tried a 'print to video' with the same results. Have you guys heard of this problem at all? Hopefully you have a fix for me...
    thanks.

    Awesome - the Out Ref fix did it!
    When I did the edit to tape I tried both insert editing and assemble editing - both ended up the same.
    On a side discussion - how do you sync the FCP machine with the black burst generator? I'm still a bit new to this - what exactly does the genlock do on the Decklink Extreme card? Is this where I sync with the black burst?
    I assume the digibeta deck will also get synced with the same black burst generator. Does this go into the reference input on the back?
    Thanks for your help,
    -Grant

  • Help with sound output via HDMI

    My sound output via HDMI suddenly stopped worked to my TV set. I've reset the PRAM and the SMC. When I go to sound control panel for sound output, the setting is on Headphones. When I try to change it to SV420XVT1A (the tv) it immediately jumps back to headphone. I also tried a different HDMI cable to a different HDMI port on the tv. This just started after the Mac Mini had been turned off for a week. I'm using Lion and it's an 8GB Intel Core 2 Duo. Any suggestions?

    I actually discovered this answer about 5 minutes after I posted the question. Thanks a lot for your help!! Funny thing is that it had worked all along with something plugged in the headphone jack but suddenly stopped working. Again, thanks!

  • Sending report output via E-mail (excel pivoted format)

    Hi all,
    i have a written a report where i need to send the report output to somebody via
    E-mail.i am sending this report output via E-mail successfully.The receiver receives, my output in excel format.but this excel is not <b>pivoted</b>.
    i want , the receiver should get my output in pivoted excel format.i.e my output data should be exactly fit in the excel sheet.
    now the columns in excel sheet are overlapping.once i double clicked, the columns are getting separated.i do not want to double click.i want all the columns should come properly i.e excel field  length should be adjusted as per the output field length.
    i am giving my coding below.plz suggest how i can do the above thing .it's urgent.
    any idea will be highly appreaciated.
    Regards
    if not p_email1 is initial.
         perform fill_report_csv.
         perform f_send_internet_mail.
      endif.
    FORM fill_report_csv.
       data :   l_text(232) type c,
               v_matnr1(21) type c,
               v_matnr(21) type c,
               v_matkl(14) type c,
               v_maktx(45) type c,
               v_ttlstk(14) type c,
               v_verpr(14) type c,
               v_werks(14) type c,
               v_lgort(14) type c,
               v_char(10) type c,
               v_stks type p ,
               v_po(40) type c,
               v_qty(13) type c,
                v_qty1 type sy-datum,
               v_date(15) type c,
               v_date1(15) TYPE C,
               v_name(35) type c,
               v_eknam(18) type c,
               v_lifnr(15) type c,
            l_po(40) type c,
            v_matnr(20) type c,
             l_rate(11) type  p decimals 5,
             l_flag type c.
      concatenate c_equal c_colon 'PO no.' c_colon
                    into v_po.
      concatenate c_equal c_colon 'Material no.' c_colon
                    into v_matnr.
      concatenate c_equal c_colon 'Description.' c_colon
                    into v_maktx.
      concatenate c_equal c_colon 'Due Qty.' c_colon
                    into v_qty.
      concatenate c_equal c_colon 'Del Date.' c_colon
                    into v_date.
      concatenate c_equal c_colon 'Vendor.' c_colon
                    into v_name.
      concatenate c_equal c_colon 'Buyer.' c_colon
                    into v_eknam.
      concatenate c_equal c_colon 'Vendor Code.' c_colon
                    into v_lifnr.
    concatenate
             v_po v_matnr v_maktx v_qty
             v_date v_name v_eknam v_lifnr
             into i_download
             SEPARATED BY con_tab.
      append i_download .
    clear : v_po,v_matnr, v_maktx, v_qty, v_date, v_name, v_eknam,v_lifnr .
    clear wa_output.
    loop at i_output into wa_output.
       on change of wa_output-ebeln.
         clear v_lines.
         loop at i_eket into wa_eket
                 where ebeln = wa_output-ebeln.
           v_lines = v_lines + 1.
           clear wa_eket.
         endloop.
    **-- Checking of page break
         v_lines = sy-linno + v_lines .
         if 55 < v_lines  .
           write:/0(161) sy-uline.
           new-page.
         endif.
      clear v_lines.
          loop at i_eket into wa_eket
                  where ebeln = wa_output-ebeln.
            v_lines = v_lines + 1.
            clear wa_eket.
          endloop.
    *-- Calculating the due qty.
        wa_output-dumng = wa_output-menge - wa_output-wemng.
    *-- Writing the Line items of the PO.
        read table i_ekpo into wa_ekpo
              with key ebeln = wa_output-ebeln
                       ebelp = wa_output-ebelp.
         l_rate = wa_ekpo-netpr / wa_ekpo-peinh.
    *-- Writing of PO detail
         if wa_output-dumng gt 0 .
         v_qty = wa_output-dumng.
        v_date1 = wa_output-eindt.
        v_maktx = wa_output-maktx.
         if wa_output-maktx+0(1) = '"' .
                concatenate  c_equal wa_output-maktx
                   into v_maktx  .
             else .
                concatenate  c_equal c_colon wa_output-maktx c_colon
                   into v_maktx  .
             endif .
       if wa_output-name1+0(1) = '"' .
                concatenate  c_equal wa_output-name1
                   into v_name  .
             else .
                concatenate  c_equal c_colon wa_output-name1 c_colon
                   into v_name  .
             endif .
        v_name = wa_output-name1.
        v_lifnr = wa_output-lifnr.
         write wa_output-eindt to v_date1 DD/MM/YYYY.
         concatenate '="' wa_output-ebeln '/'
                wa_output-ebelp '"' into v_po .
         concatenate '="' wa_output-matnr '"' into v_matnr .
             concatenate  c_equal c_colon wa_output-maktx c_colon
               into v_maktx  .
              concatenate  c_equal c_colon wa_output-dumng c_colon
               into v_qty1  .
               concatenate  c_equal c_colon wa_output-eindt c_colon
               into v_date1  .
              concatenate  c_equal c_colon wa_output-name1 c_colon
               into v_name  .
                concatenate  c_equal c_colon wa_output-eknam c_colon
                into v_eknam  .
              concatenate  c_equal c_colon wa_output-lifnr c_colon
               into v_lifnr  .
              concatenate  c_equal c_colon wa_mard-werks '/'
               wa_mard-lgort c_colon
               into v_lgort .
                 concatenate '="' wa_output-lifnr '"' into v_lifnr .
    condense:v_po,v_matnr, v_maktx, v_qty, v_date, v_name, v_eknam,v_lifnr .
         concatenate
             v_po v_matnr v_maktx v_qty
             v_date1 v_name v_eknam v_lifnr
             into i_download
             SEPARATED BY con_tab.
        concatenate con_cret i_download INTO i_download .
        append i_download .
      endif.
    clear : v_po,v_matnr, v_maktx, v_qty, v_date, v_name, v_eknam,v_lifnr .
    endloop.
    ENDFORM.                    " fill_report_csv
    *&      Form  f_send_internet_mail
          text
    -->  p1        text
    <--  p2        text
    FORM f_send_internet_mail.
    Variables
    data:   it_packing_list like sopcklsti1 occurs 0 with header line,
            it_contents like solisti1 occurs 0 with header line,
            it_receivers like somlreci1 occurs 0 with header line,
            it_attachment like solisti1 occurs 0 with header line,
            gd_cnt type i,
            gd_sent_all(1) type c,
            gd_doc_data like sodocchgi1,
            gd_error type sy-subrc.
    data:   it_message type standard table of SOLISTI1 initial size 0
                    with header line.
    data : found_receiver type c,
           v_title(80) type c,
           l_text(180) type c.
    Fill the document data.
      gd_doc_data-doc_size = 1.
    Adds text to email text table
      append 'Pls see attached open purchase order report.' to it_message.
      append '' to it_message.
      concatenate 'Note: This is system generated report'
                  ', figures may subject to actual physical count.'
                  into l_text separated by space.
      append l_text to it_message.
    Populate the subject/generic message attributes
      CLEAR gd_doc_data.
      READ TABLE i_download INDEX w_cnt.
      gd_doc_data-doc_size =
         ( w_cnt - 1 ) * 255 + STRLEN( i_download ).
      gd_doc_data-obj_langu  = sy-langu.
      gd_doc_data-obj_name   = 'SAPRPT'.
    if p_asdate is initial .
         concatenate p_title ' '
                  sy-datum sy-uzeit into v_title separated by space.
    else .
        concatenate p_title ' '
                 p_bldat p_cputm into v_title separated by space.
    endif .
      gd_doc_data-obj_descr  = v_title .
      gd_doc_data-sensitivty = 'F'.
      CLEAR t_attachment.
      REFRESH t_attachment.
      t_attachment[] = i_download[].
    Describe the body of the message
      clear it_packing_list.
      refresh it_packing_list.
      it_packing_list-transf_bin = space.
      it_packing_list-head_start = 1.
      it_packing_list-head_num = 0.
      it_packing_list-body_start = 1.
      describe table it_message lines it_packing_list-body_num.
      it_packing_list-doc_type = 'RAW'.
      append it_packing_list.
    Create attachment notification
      it_packing_list-transf_bin = 'X'.
      it_packing_list-head_start = 1.
      it_packing_list-head_num   = 1.
      it_packing_list-body_start = 1.
      DESCRIBE TABLE t_attachment LINES it_packing_list-body_num.
      it_packing_list-doc_type   =  'XLS'.
      it_packing_list-obj_descr  =  'OPEN PURCHASE ORDER' .
      it_packing_list-obj_name   =  'PO.XLS' .
      it_packing_list-doc_size   =  it_packing_list-body_num * 255.
      APPEND it_packing_list.
    assign SAP user smtp address from successful retrieval.
      loop at p_email.
    Add the recipients email address
         found_receiver = 'X' .
         it_receivers-receiver = p_email-low.
         it_receivers-rec_type = 'U'.
         it_receivers-com_type = 'INT'.
         it_receivers-notif_del = ''.
         it_receivers-notif_ndel = 'X'.
         append it_receivers .
      endloop .
    Add default recipient email when unable to locate purc group email
       if found_receiver is initial .
           it_receivers-receiver = p_email.
           it_receivers-rec_type = 'U'.
           it_receivers-com_type = 'INT'.
           it_receivers-notif_del = ''.
           it_receivers-notif_ndel = 'X'.
          append it_receivers.
       endif .
    Call the FM to post the message to SAPMAIL
      call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
           exporting
                document_data              = gd_doc_data
                put_in_outbox              = 'X'
                commit_work                = 'X'
           importing
                sent_to_all                = gd_sent_all
           tables
                packing_list               = it_packing_list
                contents_bin               = t_attachment
                contents_txt               = it_message
                receivers                  = it_receivers
           exceptions
                too_many_receivers         = 1
                document_not_sent          = 2
                document_type_not_exist    = 3
                operation_no_authorization = 4
                parameter_error            = 5
                x_error                    = 6
                enqueue_error              = 7
                others                     = 8.
    Store function module return code
      gd_error = sy-subrc.
    Get it_receivers return code
      loop at it_receivers.
      endloop.
    Instructs mail send program for SAPCONNECT to send email.
      wait up to 2 seconds.
      if gd_error eq 0.
          submit rsconn01 with mode = 'INT'
                        with output = ' '
                        and return.
      endif.
    ENDFORM.                    " f_send_internet_mail

    Hi,
    go through this link,
    http://www.sapdevelopment.co.uk/reporting/email/emailhome.htm
    you have some sample programs.
    Regards,
    Raghavendra

  • Report output via E-mail

    Hi all,
    i have a written a report where i need to send the report output to somebody via
    E-mail.i am sending this report output via E-mail successfully.The receiver receives, my output in excel format.but this excel is not <b>pivoted</b>.
    i want , the receiver should get my output in pivoted excel format.i.e my output data should be exactly fit in the excel sheet.
    now the columns in excel sheet are overlapping.once i double clicked, the columns are getting separated.i do not want to double click.i want all the columns should come properly i.e excel field  length should be adjusted as per the output field length.
    i am giving my coding below.plz suggest how i can do the above thing .it's urgent.
    any idea will be highly appreaciated.
    Regards
    if not p_email1 is initial.
         perform fill_report_csv.
         perform f_send_internet_mail.
      endif.
    FORM fill_report_csv.
       data :   l_text(232) type c,
               v_matnr1(21) type c,
               v_matnr(21) type c,
               v_matkl(14) type c,
               v_maktx(45) type c,
               v_ttlstk(14) type c,
               v_verpr(14) type c,
               v_werks(14) type c,
               v_lgort(14) type c,
               v_char(10) type c,
               v_stks type p ,
               v_po(40) type c,
               v_qty(13) type c,
                v_qty1 type sy-datum,
               v_date(15) type c,
               v_date1(15) TYPE C,
               v_name(35) type c,
               v_eknam(18) type c,
               v_lifnr(15) type c,
            l_po(40) type c,
            v_matnr(20) type c,
             l_rate(11) type  p decimals 5,
             l_flag type c.
      concatenate c_equal c_colon 'PO no.' c_colon
                    into v_po.
      concatenate c_equal c_colon 'Material no.' c_colon
                    into v_matnr.
      concatenate c_equal c_colon 'Description.' c_colon
                    into v_maktx.
      concatenate c_equal c_colon 'Due Qty.' c_colon
                    into v_qty.
      concatenate c_equal c_colon 'Del Date.' c_colon
                    into v_date.
      concatenate c_equal c_colon 'Vendor.' c_colon
                    into v_name.
      concatenate c_equal c_colon 'Buyer.' c_colon
                    into v_eknam.
      concatenate c_equal c_colon 'Vendor Code.' c_colon
                    into v_lifnr.
    concatenate
             v_po v_matnr v_maktx v_qty
             v_date v_name v_eknam v_lifnr
             into i_download
             SEPARATED BY con_tab.
      append i_download .
    clear : v_po,v_matnr, v_maktx, v_qty, v_date, v_name, v_eknam,v_lifnr .
    clear wa_output.
    loop at i_output into wa_output.
       on change of wa_output-ebeln.
         clear v_lines.
         loop at i_eket into wa_eket
                 where ebeln = wa_output-ebeln.
           v_lines = v_lines + 1.
           clear wa_eket.
         endloop.
    **-- Checking of page break
         v_lines = sy-linno + v_lines .
         if 55 < v_lines  .
           write:/0(161) sy-uline.
           new-page.
         endif.
      clear v_lines.
          loop at i_eket into wa_eket
                  where ebeln = wa_output-ebeln.
            v_lines = v_lines + 1.
            clear wa_eket.
          endloop.
    *-- Calculating the due qty.
        wa_output-dumng = wa_output-menge - wa_output-wemng.
    *-- Writing the Line items of the PO.
        read table i_ekpo into wa_ekpo
              with key ebeln = wa_output-ebeln
                       ebelp = wa_output-ebelp.
         l_rate = wa_ekpo-netpr / wa_ekpo-peinh.
    *-- Writing of PO detail
         if wa_output-dumng gt 0 .
         v_qty = wa_output-dumng.
        v_date1 = wa_output-eindt.
        v_maktx = wa_output-maktx.
         if wa_output-maktx+0(1) = '"' .
                concatenate  c_equal wa_output-maktx
                   into v_maktx  .
             else .
                concatenate  c_equal c_colon wa_output-maktx c_colon
                   into v_maktx  .
             endif .
       if wa_output-name1+0(1) = '"' .
                concatenate  c_equal wa_output-name1
                   into v_name  .
             else .
                concatenate  c_equal c_colon wa_output-name1 c_colon
                   into v_name  .
             endif .
        v_name = wa_output-name1.
        v_lifnr = wa_output-lifnr.
         write wa_output-eindt to v_date1 DD/MM/YYYY.
         concatenate '="' wa_output-ebeln '/'
                wa_output-ebelp '"' into v_po .
         concatenate '="' wa_output-matnr '"' into v_matnr .
             concatenate  c_equal c_colon wa_output-maktx c_colon
               into v_maktx  .
              concatenate  c_equal c_colon wa_output-dumng c_colon
               into v_qty1  .
               concatenate  c_equal c_colon wa_output-eindt c_colon
               into v_date1  .
              concatenate  c_equal c_colon wa_output-name1 c_colon
               into v_name  .
                concatenate  c_equal c_colon wa_output-eknam c_colon
                into v_eknam  .
              concatenate  c_equal c_colon wa_output-lifnr c_colon
               into v_lifnr  .
              concatenate  c_equal c_colon wa_mard-werks '/'
               wa_mard-lgort c_colon
               into v_lgort .
                 concatenate '="' wa_output-lifnr '"' into v_lifnr .
    condense:v_po,v_matnr, v_maktx, v_qty, v_date, v_name, v_eknam,v_lifnr .
         concatenate
             v_po v_matnr v_maktx v_qty
             v_date1 v_name v_eknam v_lifnr
             into i_download
             SEPARATED BY con_tab.
        concatenate con_cret i_download INTO i_download .
        append i_download .
      endif.
    clear : v_po,v_matnr, v_maktx, v_qty, v_date, v_name, v_eknam,v_lifnr .
    endloop.
    ENDFORM.                    " fill_report_csv
    *&      Form  f_send_internet_mail
          text
    -->  p1        text
    <--  p2        text
    FORM f_send_internet_mail.
    Variables
    data:   it_packing_list like sopcklsti1 occurs 0 with header line,
            it_contents like solisti1 occurs 0 with header line,
            it_receivers like somlreci1 occurs 0 with header line,
            it_attachment like solisti1 occurs 0 with header line,
            gd_cnt type i,
            gd_sent_all(1) type c,
            gd_doc_data like sodocchgi1,
            gd_error type sy-subrc.
    data:   it_message type standard table of SOLISTI1 initial size 0
                    with header line.
    data : found_receiver type c,
           v_title(80) type c,
           l_text(180) type c.
    Fill the document data.
      gd_doc_data-doc_size = 1.
    Adds text to email text table
      append 'Pls see attached open purchase order report.' to it_message.
      append '' to it_message.
      concatenate 'Note: This is system generated report'
                  ', figures may subject to actual physical count.'
                  into l_text separated by space.
      append l_text to it_message.
    Populate the subject/generic message attributes
      CLEAR gd_doc_data.
      READ TABLE i_download INDEX w_cnt.
      gd_doc_data-doc_size =
         ( w_cnt - 1 ) * 255 + STRLEN( i_download ).
      gd_doc_data-obj_langu  = sy-langu.
      gd_doc_data-obj_name   = 'SAPRPT'.
    if p_asdate is initial .
         concatenate p_title ' '
                  sy-datum sy-uzeit into v_title separated by space.
    else .
        concatenate p_title ' '
                 p_bldat p_cputm into v_title separated by space.
    endif .
      gd_doc_data-obj_descr  = v_title .
      gd_doc_data-sensitivty = 'F'.
      CLEAR t_attachment.
      REFRESH t_attachment.
      t_attachment[] = i_download[].
    Describe the body of the message
      clear it_packing_list.
      refresh it_packing_list.
      it_packing_list-transf_bin = space.
      it_packing_list-head_start = 1.
      it_packing_list-head_num = 0.
      it_packing_list-body_start = 1.
      describe table it_message lines it_packing_list-body_num.
      it_packing_list-doc_type = 'RAW'.
      append it_packing_list.
    Create attachment notification
      it_packing_list-transf_bin = 'X'.
      it_packing_list-head_start = 1.
      it_packing_list-head_num   = 1.
      it_packing_list-body_start = 1.
      DESCRIBE TABLE t_attachment LINES it_packing_list-body_num.
      it_packing_list-doc_type   =  'XLS'.
      it_packing_list-obj_descr  =  'OPEN PURCHASE ORDER' .
      it_packing_list-obj_name   =  'PO.XLS' .
      it_packing_list-doc_size   =  it_packing_list-body_num * 255.
      APPEND it_packing_list.
    assign SAP user smtp address from successful retrieval.
      loop at p_email.
    Add the recipients email address
         found_receiver = 'X' .
         it_receivers-receiver = p_email-low.
         it_receivers-rec_type = 'U'.
         it_receivers-com_type = 'INT'.
         it_receivers-notif_del = ''.
         it_receivers-notif_ndel = 'X'.
         append it_receivers .
      endloop .
    Add default recipient email when unable to locate purc group email
       if found_receiver is initial .
           it_receivers-receiver = p_email.
           it_receivers-rec_type = 'U'.
           it_receivers-com_type = 'INT'.
           it_receivers-notif_del = ''.
           it_receivers-notif_ndel = 'X'.
          append it_receivers.
       endif .
    Call the FM to post the message to SAPMAIL
      call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
           exporting
                document_data              = gd_doc_data
                put_in_outbox              = 'X'
                commit_work                = 'X'
           importing
                sent_to_all                = gd_sent_all
           tables
                packing_list               = it_packing_list
                contents_bin               = t_attachment
                contents_txt               = it_message
                receivers                  = it_receivers
           exceptions
                too_many_receivers         = 1
                document_not_sent          = 2
                document_type_not_exist    = 3
                operation_no_authorization = 4
                parameter_error            = 5
                x_error                    = 6
                enqueue_error              = 7
                others                     = 8.
    Store function module return code
      gd_error = sy-subrc.
    Get it_receivers return code
      loop at it_receivers.
      endloop.
    Instructs mail send program for SAPCONNECT to send email.
      wait up to 2 seconds.
      if gd_error eq 0.
          submit rsconn01 with mode = 'INT'
                        with output = ' '
                        and return.
      endif.
    ENDFORM.                    " f_send_internet_mail

    ans

  • No midi control in GB '08 with keyboard via Alesis io2, & no output via io2

    The lengthy title sums up the two key issues I'm having.
    I'm using an Alesis io2 USB interface, to run guitars and midi controller keyboards (goldstar MK49 & Terratec Midimaster Pro) into GB '08.
    There're no problems getting the guitar into GB and my Guitar Rig 3 plugin, and no noticeable latency on monitoring via the system output (active speakers from headphone output). Until three days, ago I was also using the keyboards to successfully control software instruments in GB.
    In detail, the issues I'm experiencing are:
    *1) MIDI Keyboard*
    After attempting to create a new aggregated audio/midi device in the Audio Midi Setup utility, I can no longer get the keyboards to work. I get intermittent notes at random and also when using the keyboard data sliders, but mostly silence. Previously I had no problems with velocity sensitivity, note, modulation, pitch or track level control. Now, I'm getting nothing other than random notes.
    It appears that GB, my MacBook or both are now unable to make any sense of the midi data they're receiving. I've deleted the aggregated device via the same utility but still no control. I've not yet found a 'MIDI reset' option in system prefs or the audio/midi utility. Any suggestions how I get my bits of gear talking to each other again?
    *2) Audio output via Alesis io2*
    SInce getting this USB interface I have been unable to route any audio back out of my MacBook through it; either to headphones from the built-in headphone jack, or monitors from the 'main L/R' connections. System prefs and the audio/midi utility both see the io2 as a device with 2x ins and 2x outs, but both tell me the device has no output controls.
    Creating a new aggregate device didn't work, so any ideas how to resolve this one? Also, could creating this new aggregate device have contributed to my first issue?
    Any advice would be gratefully received.
    Thanks in advance.

    I would start by trying the i/o 2 with garageband in another user account to find out if it's a local or global problem.
    Then with the alesis plugged in make sure that all your settings in the audio/midi setup utility are correct for the device.
    A class compliant device means if they build the interface to a agreed upon spec it will be recognized and be able to use the apple driver (core audio). It did work because you were able to use it and change it's function when making it part of aggregate device.

  • Video output via cable - incompatible with video p...

    I find that although video output via cable from the Nokia 6220 classic (and I presume other Nokia phones) works fine with TV sets, I haven't found a single video projector that accepts the output and is able to project it.  The projectors typically search their video inputs and should recognise the composite video input, but instead they just keep searching and are never able to recognise or project the video.
    Is there something unusual about the video signal output from it so as not to be accepted as composite video by video projectors?

    iphone4 and composite and component cable don't support mirror so they
    only display images when an supported app is being used like youtube or the video app and the likes
    use both the composite and the component cable with my iphone4 on 5.1 and both works fine
    so do my ipod touch with 5.1 and ipad2 with 5.1

  • I have to send the sales order output via mail to a customer

    have to send the sales order output via mail to a customer, what steps i have to follow
    kindly guide me.
    regards
    satya

    Hello,
    You need to carru out your output configuration for this.
    Use tcode, NACE where you can do this centrally.
    Select V1 & click on output types above
    Select output type MAIL for your requirement & use tranmission medium as simple mail.
    After configuring your MP mail partner functions & use of proper output program you will be able to send mail to your party.
    Hope this is helpful to you.
    Regards,
    Dhananjay

Maybe you are looking for

  • Data Displaying issue in ALV report

    Hi,   I have made a ALV report,  the presetn display layout is as below it is displaying the material shortage reprot against issued production order ORDER NO.     Order Qty.     MATERIAL     TOTAL QTY     SHORTAGE QTY 3000000     100     610     100

  • Custom Interactive adobe form as template in PMS

    Hi Experts, In PMS i want to use custom interactive adobe form as template instead of standard.My issue is after creating Int.Adobe form how we can call custom form instead of standard form? Any BADI's i have to use? How we can map the fields? Please

  • GUI Problem in Screen Painter

    Hi All, we are using SAP logon 640. In screen painter we are not getting GUI. we are getting the screen in Alphanumeric mode, But not in Graphical mode. How to resolve this problem. Thanks in Advance. Regards, chandra. Message was edited by: K Chandr

  • Uninstall Before Installing CS6 Design Std.

    I currently have activated trial versions of Photoshop CS6, ID CS6, and Illustrator CS6. I have PS deactivated (I have a separate single app license for that). ID and Illustrator are activated via my Creative Cloud subscription.  I have decided to pu

  • How do i repaire error 150:30 elements 8

    how do i repair error 150:30 elements 8.