NI 9853 CAN frames lost

Hello,
my setup is a cRIO 9116 with a NI 9853 CAN card. I permanently read on both CAN1 and CAN2. Busloads are about 8 % on CAN1 and 20 - 30 % on CAN2 at 500 kbit/s. So far everything is fine. Recently i added some loops which permanently send CAN messages on CAN1 or CAN2 in parallel to reading. I noticed that when CAN receive busload is about 30% and i do 4 CAN transmit loops with 100 ms period then it starts to loose frames in the receive loop. I guess it is because arbitration is blocking the CAN port too long to get all frames.
regards
Thomas

I cannot post a code snippet atm. But what I am seeking is some information about how much such a NI 9853 can handle, assuming it is proper programmed in FPGA. I thought it can handle reading 100% busload at 500 kbps or even 1 mbits. But what about if there is reading and writing in parallel? I will post the FPGA code later but there is some more stuff done with the CAN messages which I then need to explain (i don't want to remove cause maybe that's the problem).

Similar Messages

  • The second frame lost in CAN communication when use NI PCI-CAN/XS2 card

    I got a trouble on CAN communication recently.
     I need to commmunicate a Cluster with CAN BUS,the baud rate is 500kBPS,the CAN card is NI PCI-CAN/XS2. The operating system is Windows XP.
    normally,the PC send a command to Cluster,then read back a frame of data from the Cluster,but for some commands,the Cluster will return two frames of data,and the programe on PC cannot receive the Seconds frame,it lost.
    I searched the forum,most of the reslut is the error about CAN BUS overflow,which make the CAN frame lost,but there is not any error report on my programe,and the baud rate is no that fast,I also use another port of NI PCI- CAN/XS2 to monitor the CAN bus,the second data frame never appear,when I replace NI CAN card with Vector CanCaseXL(CAN card) ,and call CanCaseXL's DLL in labVIEW,it can get the second CAN frame,the monitor of Vector CanCaseXL can get the second data frame too.
    so,is there some software/hardware configuration need to be done to get the second data frame?
    the attached pictures are NI-CAN/Vector CAN monitor and CAN init/write&read in my programe.
    Any reply is appreciate!!! thanks
    帖子被iwanttofly014在 12-12-2009 07:41 PM
    时编辑过了
    帖子被iwanttofly014在 12-12-2009 07:43 PM
    时编辑过了
    Flying...
    www.vihome.com.cn 虚拟仪器家园
    Solved!
    Go to Solution.
    Attachments:
    NI CAN monitor.jpg ‏165 KB
    Vector CAN monitor.jpg ‏58 KB
    CAN init.jpg ‏80 KB

    Thanks your code.
    I try the code you posted, It still no work, I found you has improved the "Get data.vi",It works better,but the second frame still no shown.
    I used the  NI CAN monitor in MAX to monitor the CAN bus,there is no second frame shown in the monitor,See attach pictures.but It shown in the Vector CAN monitor and the code call the Vector DLL.
    Have a great day.
    帖子被iwanttofly014在 12-16-2009 08:02 PM
    时编辑过了
    Flying...
    www.vihome.com.cn 虚拟仪器家园
    Attachments:
    LabVIEW VS Monitor(Vector CAN).JPG ‏70 KB
    LabVIEW VS Monitor(NI CAN).JPG ‏40 KB

  • How can I set the timebase in the FPGA API for the NI 9853 CAN module?

    Hallo,
    is there anybody familiar with cRIO, especially the NI CAN 9853 Modul?
    When starting communication with a CAN Bus  you can get a receiving CAN Frames from the FPGA I/O Node with a timestamp.
    How can  I set  this  timebase in the CAN Controller, because the CAN communication starts every time with the same timebase.
    Compared to the CAN API  on a PC the timebase for the communication is set when the Open Frame API VI is used?
    From that time the CAN Contoller assume the timebase from the PC.
    Whats about the FPGA API?
    Martin

    Hallo Dirk,
    thanks you
    for your answerer regarding my question.
    The last
    question belongs to my intention, to get absolute Timestamps from the NI 9853
    CAN interface. As you said it always starts from zero when starting the
    application.
    For my application
    I would like to get a timestamp with the local time I start the CAN communication
    and every CAN Frame should be logged with the Timestamp it is actually send on
    the CAN BUS.
    How can I achieve
    it?
    My first
    thoughts were to add up the timestamp for every CAN Frame counted from zero to
    an absolute Timestamp when starting communication. But I have got some wrong values.
    Maybe I did something wrong using the high and low part of the Timestamps I got
    from the CAN API.
    Do you have
    a suggestion for me?
    MartinW      

  • Advanced CAN Frame to Channel Conversion: Error with LV 8.5.1

    Hello!
    I´ve tried to read in a DBC-file with the "Advanced CAN Frame to Channel Conversion Example" on a LabVIEW 8.5.0 system and it works fine.
    On a LabVIEW 8.5.1 System I get the error:
    Scan From String (arg 6) in CAN FtoC Parse Channels and Mode.vi->CAN FtoC Parse CANdb Messages and Channels.vi->CAN Channel Data Import.vi
    Does anybody know a solution for this error?
    Thank you for your help,
    demo66
    regards,
    demo66

    Hi!
    It is a problem of localized decimal point.
    In a german Windows, LabVIEW will use Komma as decimal point.
    So the Scan From String.vi will convert string 0,21 in a double but not 0.21. From the file dbc you receive the values with period "." that's why it create the error 85.
    You have 2 possibilities: change the localized decimal point in LabVIEW (Tools -> Options) or you say to the Scan From String.vi to use "." as a decimal point.
    Go to CAN FtoC Parse Channels and Mode.vi and search the 2 Scan From String.vi
    Add at the beginning of the Format String %.; so that the format String will use the "." as decimal point (see Attachement).
    After that the example will work.
    Best regards
    Ken
    Attachments:
    Scan From String.jpg ‏51 KB

  • How can I enable/disable the transmission of a can frame? (filter etc...)

    Hello,
    I use the CAN
    Transmit-periodic.vi in LV 8.5, I want to enable or disable the
    transmission of a frame without stop the loop of my VI, does it exist
    in the frame api a vi which could stop, or mask the transmission of a
    frame?
    It's important I don't want to stop my VI that
    send my frame just filter a frame that I don't want send on my CAN
    bus...(I would command it with a boolean for example).
    Thank you.
    Bye.

    Hi there
    I'm not familiar with NI-CAN, but take a look at
    \vi.lib\Nican\nican.llb\ncAction.vi
    Can be found in the CAN\Frame API\Advanced palette.
    Start Transitions the CAN object from stopped (idle) state to started (running) state. If the CAN object is already started, this operation has no effect.
    Stop Stops the CAN Object. For example, if the CAN Object is configured to transmit data frames periodically, this action stops the periodic transmissions. This action will also clear all entries from the read queue.
    Best regards
    chris
    CL(A)Dly bending G-Force with LabVIEW
    famous last words: "oh my god, it is full of stars!"

  • "Baud Rate" AttrId not found for CAN frame API's ncGetAttr and ncSetAttr

    Hi,
    Well, everything is in the Subject : "Baud Rate" AttrId not found for CAN frame API's ncGetAttr and ncSetAttr
    Although it is listed in the LabVIEW Documentation,  it is not in the enum's items gotten from `right click` -> `create` -> `contsant` on their `AttrId` connector.
    My actuall need would be for checking a formerly opened CANNet handle compatibility against hardware  requirement, so ... ncGetAttr.vi
    Anyway, if somebody knows the actual u32 to hardwire instead of the enum constant, or did I get something wrong ?
    Thanks

    Hello,
    You are quite right about the ncGetAttr.vi however the ncSetAttr does have a Baud Rate item if you scroll further down.
    To get the Baud Rate wire a x80000007 to the AttrId pin. Or you can double click on the the ncSetAttr and then go into its block diagram, now
    in the case structure select case 27 copy the numeric constant (which should be x80000007) and use it as the input to the ncGetAttr
    Let us know if this helps.
    Christian A
    National Instruments
    Applications Engineer

  • How to clear CAN Frame Cache

    I'm using CAN Frame API and I keep reading the same data, how can I clear the CAN cache? Or is there a way to look at the most recent messages?

    Hello adle9394:
    Have you tried running the CAN Receive.vi example. Do you experience the same thing?
    Regards,
    Roland A.
    Applications Engineer
    National Instruments
    Check out VI Roadshow

  • CAN Frame Signal Conversion With XNet

    When dealing with CAN, most new developer struggle with the Frame and Channel (or Signal) conversion.  Developers are trying to get away with using the cheapest CAN hardware, and as a result are opting to not use XNet hardware but instead use things like the USB 8473, or using non-NI hardware like the ValueCAN by Intrepid, or using Vector hardware, or CAN to serial adapaters.  The problem with all of these is you generally just read and write frames which is the raw form of CAN.  When using these cheap devices you can't ask the CAN bus what the signal Bus_Voltage is, instead you need to perform a frame read, find the frame associated with the signal, then pull out the bits for that signal, then scale the signal based on the signal selected.
    All of this is doable but a pain and can be very custom.  That's one reason NI came out with the Frame Channel Conversion Library.  This library converts from Frames to Channels using an industry standard CAN database file.  The problem with this library is it hasn't been updated in 5 years, and has known issues which likely will never be fixed.
    NI has since come out with XNet which supports reading and writing signals on XNet hardware.  The XNet drivers also support converting Frames to Signals without needing hardware at all.  This conversion has several limitations, and really only works for getting the latest value for a signal, not all values.  And in addition to that if the signal was never seen, the value will be the defaul value for that signal, not NaN.
    So I wrote a wrapper around the XNet conversion library to handle going from signals to frames, or from frames to signals.  Anyone looking to use a DBC file, on hardware that only supports frame API should use this conversion library, or at least use the XNet conversion sessions.
    CAN Frame Signal Conversion Using XNet 
    Unofficial Forum Rules and Guidelines - Hooovahh - LabVIEW Overlord
    If 10 out of 10 experts in any field say something is bad, you should probably take their opinion seriously.

    Hello Hooovahh,
    Nice work  . It’s very useful.
    I’m also converting CAN Raw data to Physical values in my project. Yes, your correct XNET APIs have some limitations. as you mentioned, there is one more limitation I found,
    If your Message Data length (Payload) is 4 Bytes (example) and other CAN Frames are having more than 4 Bytes then its throwing Error (Error Code -1074384737).
    While converting CAN Frames to signals, we will get different Payloads but, our selected signal message have 4 bytes then XNET will gives an error (at the time of Data Conversion).
    As per attached Snap, My Signal is related to IDxBB and I’m sending two different Frames then XNET will not convert.
    Hooovahh Wrote:
    NI has since come out with XNet which supports reading and writing signals on XNet hardware.  The XNet drivers also support converting Frames to Signals without needing hardware at all.  This conversion has several limitations, and really only works for getting the latest value for a signal, not all values.  And in addition to that if the signal was never seen, the value will be the default value for that signal, not NaN.
    When we will send Frame by Frame then we will get all values (not only recent values). XNET will take previous value (if data is not present for Next iteration)
    Please check this snippet for all values & NaN Display.
    Munna

  • Frames lost when viewing in full screen

    I am offering HTTP Dynamic Streaming ( HDS ). I am using Strobe Media Playback out of the box. 8 bit rates are used from 100Kbps - 2000Kbps at 25 fps.
    The problem I am facing is with older pc trying to view the video in fullscreen. cpu on the pc goes near to 100% and therefore frames get dropped and so SMP falls back to a lower bit rate until it reaches the lowest bitrate and stays there.
    I have tried to view the video on such a pc in full screen using only high bitrates. The video is "jumping" but it is a much better user experience than the one viewed at 100Kbps which is very blur.
    I don't want to use  lower frame rates or disable fullscreen.
    Is there any to configure SMP to fallback to a lower bitrate less aggresively, or a parameter stating that SMP should fall back to lower bitrate when the frames lost are x per second or something similar?
    Any other ideas?

    Anyone?

  • Can a lost ipod touch with a code be found

    can a lost ipod touch 8gb with a code be found or tacked

    Short answer, no.
    http://support.apple.com/kb/HT2526?viewlocale=en_US
    Basic troubleshooting steps  
    17" 2.2GHz i7 Quad-Core MacBook Pro  8G RAM  750G HD + OCZ Vertex 3 SSD Boot HD 
    Got problems with your Apple iDevice-like iPhone, iPad or iPod touch? Try Troubleshooting 101

  • NI-CAN Frame API: Variable Periodic CAN Object

    Hi,
    I am developing an application that send CAN messages with NI-CAN Frame API.
    Some of my messages have specification of variable periodic where
    - On idle, NI-CAN will periodically send the message at 100ms period of last message
    - On a user input, it will send at period of 10ms for short period (200ms) and back to idle.
    In CAN Object Configuration, as I put period to 100ms, The idle data is correct but when I need to send the user input, the data is sent using the period of 100ms as well. If I put period to 10ms, even during idle data, the message are sent every 10ms.
    If I configure the CAN Object's communication type to transmit data by call, the data is only sent once and not periodic.
    Does the NI-CAN Frame API supports variable periodic CAN Object?
    Is there suggested way to have such a message?
    - Meadow -
    LabVIEW 7.0 - 2011, Vision, RT, FPGA
    TestStand 3.0 - 4.5

    Hello,
    In general, a clear function will flush all data associated to a task. Have you tried using nctClear()? Although this is a legacy driver so that may not be the case…I found this article that explains how to reset the device (same functions are available in the C API, see manual) which can help but according to this thread is not a 100% effective due to its limitations. Nevertheless, is better than nothing.
    I hope this helps
    Alejandro | Academic Program Engineer | National Instruments

  • Reading CAN frames from 10 sensors Simultaneously

    Hello,
    I have developed a code that reads CAN data frame from the CAN port (PCI CAN/2 series 2 board). The board have 2 CAN ports. I have connected a sensor to one of the ports and reading the CAN frames using my code. I want to use the same code to read CAN frames from 1o sensors simultaneously. Can anyone help me? I have tried creating SUB VI of my code but it reads only one port at a time.    
    Thanks in advance
    Solved!
    Go to Solution.

    Hi Gruenberg,
    I have one question....in my code the while loop interates at 1000ms  i.e.  I want to read CAN data every second (1 value per sec). But when I log this data I see that it gives me 11 values per sec. Because of this my log file is getting very bigger unnnecessarily. I tried to figure it out but couldn't find any solution. Can you tell me why this is happening?
    Please see attached docs.
    Thanks in advance.
    Attachments:
    F2C.jpg ‏291 KB
    CAN0.txt ‏1 KB

  • HT1386 After a full system update phone and comp, some of my contacts have been lost and most of them now only have the numbers remaining, can the lost contacts be retrieved completely somehow.

    After a full system update phone and comp, some of my contacts have been lost and most of them now only have the numbers remaining, can the lost contacts be retrieved completely somehow.

    At some point in the past, I synched with Gmail.  Looking at my Gmail contacts, I can see that it's missing the same contacts I'm currently missing from the iPhone.  Is it possible that I may have done that sync back in October 2009 (but not since) and then somehow recently over-wrote my contacts content with whatever was there?  Is there some setting I could have tripped to make something like that happen?

  • CRIO-9014 and 9853 CAN Module

    Hello folks,
    When trying to deploy a CAN Receive example from LabVIEW 8.6 onto the 9014 (VxWorks) controller, I keep getting a "shared libarary failed to load" error (nican.*).  Some investigating (i.e. searching and reading on ni.com) revealed that perhaps nican cannot be used with the 9853 and the 9014 combo.
    I still have many questions, that perhaps some of you can answer, please. 
    1. Is the following statement true? 
    The nican "driver" vis cannot be used for a 9853 card in a cRIO-9014 chassis.  Instead, it's necessary to use the 985x drivers.
    2. Do the 985x drivers have to be installed on the 9014?  If so, can it be done using MAX?
    3. Is there an FTP client running continously on the 9014?
    4. Is there a document explaining how/where to FTP software to on the 9014 controller if needed?
    5. Since the 9853 can only be used in fpga programming mode (i.e. scan interface mode is invalid), do I have to have an FPGA host vi running on the 9014 or can I leave the host on an "external" computer?
    This is my first attempt at using a cRIO for anything so please feel free to assume that I don't know anything that isn't explicitly stated in the "getting started with LabVIEW..." document.
    Thanks in advance.
    Chris

    chassan,
    1 - Yes, that's true, as confirmed here.
    2 - Yes, they must be present on the 9014. I believe you should add them via MAX as there are no special instructions in the readme of the drivers.
    3 - Here are a couple articles on ftp and cRIO:
    FTP Transfer of Files between Host and Real-Time Targets in MAX How Can I Use LabVIEW to FTP Files to and from My Real-Time Target
    4 - Same as above
    5 - I am not exactly clear on the quesiton.
    Hope this helps, post again if you have other inquiries!
    Peter Flores
    Applications Engineer

  • I Have iphone 4 can i installed ios6 ? If I installed ios6 then can i lost my phone contact's  ( number )

    I Have iphone 4 can i installed ios6 ? If I installed ios6 then can i lost my phone contact’s  ( number )

    I might have spoken too soon.  I have my contact's synced with my google email account.  I don't have them just on my phone.  So if you have your contacts just on your phone I can not answer for that case.

Maybe you are looking for