Canopen library behavior/use

I'm trying to use the heartbeat monitor vi's provided with the CANOpen library, but I have some questions:
It seems that previous state and current state both switch to undefined at a missed heartbeat.  Is that really what is occuring or am i just missing the intermediate state where previous state contained the actual previous value because my while loop is too slow.
It also seems to me that the state changed event output should return to false each time a duplicate heartbeat state is received.
I have my wait for heartbeat in a while loop (see attached) and the purpose of the while loop was to enable various events based on previous and current state, but it seems the speed of the while loop is dictated by the timeout on the wait for heartbeat vi...should I be using events?
Thanks for the help.
Attachments:
CanOpen.PNG ‏16 KB

Hi,
You may want to try using NI-SPY to look at the commands that are being sent and received over the bus.  This will allow you to see if you are missing any states.
Regards,
John E.
Applications Engineering
National Instruments

Similar Messages

  • NI CAN + CanOpen Library limitations (same as Copley?) - explanation?

    I've been reading that LabVIEW CANOpen Library and NI CAN cards have a 50-object limit and up to 300 can message buffer limit, in which if these limits are reached, error messages will insue.
    Does this hold true for using the Copley CMO?  Instead of creating my own PDOs and transmitting SDOs, Copley offers an object library which does many of these thinigs for you while the user picks actions from a drop down menu (relative move, absolute move, etc). 
    Does the above limitation hold true for ANY Can hardware used by LabVIEW?  If we do not use Labview's CANOpen Library but use a different vendor CANOpen library (but a Ni CAN card), do we still see these limitations?
    Also, I had a chance to create 50 nodes (objects) and was able to repleatedly send commands to about 6 simultaneously with an issue.  Would I have not reached my object limit in this case? 

    These two limitations apply whenever you use NI-CAN boards with the NI CAnopen Library. But it sounds worse then it actually is.
    You can use the NI Spy to see when the Library uses an object. It configures something like CANX:TDY where X is the CANport number and Y is the ID.
    The library uses objects for all periodic or unique tasks, like NMT(one Object), RTR PDOs(one object per PDO), SDO(two objects), Error management(one object per option), Sync(one object).  The 300 messages issue only applies if you use the PDO buffer which is not often the case because most of the time you want to have the most recent data and therefore you would use the queue size 0.
    DirkW
    Message Edited by DirkW on 01-08-2008 08:08 AM

  • CANOpen Library - Limited number of PDOs ?

    Hello,
    Here's my story :
            I have a CAN network grouping 13 CANOpen nodes ( motors, I/Os, pneumatic valves ) and a NI pcmcia adapter in my PC. I use LV 7.1 and the CANOpen library to build a nice application to automate all this.
            For each of 10 of this nodes, I declared ( and I need ) 2 RXPDOs and 3 TXPDOs.
            Actually, I am facing an error message ( PDO create from CANOpen library ) saying that I've reached the software/firmware memory limit ( of the pcmcia board I suppose ) and that I should reduce the size of the PDO queues or reduce the number of CANOpen objects... For each PDO, I set the buffer size at 2 frames which is not a lot in my point of view. I cannot reduce the number of CANOpen objects because I need them...
            What is the exact limit with my hardware ?
            Can my configuration handle 4 TPDOs and 4 RPDOs for each node ( in case I'd like to ) ?
    Another question :
             In my LV code, I created a cluster for each node storing a SDO handle ( CANOpen object ), 4 RPDO handles and 4 TPDO handles. I initialize them calling "create SDO" and "create PDO" at start up if I need them otherwise I let them to a default value (0). What do you think about this ? Can this be the source of the error message ?
    Thanks in advance for your answer

    Hi,
    The CANopen Library is based on the NI CAN driver. Because of the tight timing needs for SDO communication and the need to send periodic frames some library functions are using objects for communication. Objects are able run directly on the hardware, thus they can meet these strict timing issues. The bad thing is, they are limited in number to 50 per NI CAN device. That includes one per Port configuration, thus for a 2 port board , if you configure both ports there are 48 objects left for both ports together.
    The second limitation applies to the shared memory between board and driver. The driver can configure approx. 300 messages for queues for the board, shared between 2 ports if available.
    Now if you know this you can calculate the number of SDOs and PDOs you can configure until the mentioned error occurs.
    Ok , you are right, we need to know how many messages the particular functions configure for queues.
    Thats something we find from the NI SPY. The Tool gets installed with NI CAN and allows you to log all API Calls to certain drivers including NI CAN.
    The configuration api call tells us from the buffer page the size for Read and Write Queue configured with property 80000013 and 80000014. If you switch to AttrPtr. you can see the qeuesizes in hex at the same location.
    Now you can see that the CANopen Interface Create allocates 100 frames for the read Queue and 10 Frames for the Write Queue. This numbers are used to read all incoming frames and write all nonperiodic frames which are not configured with objects, like the NMT commands or RX PDOs.
    The SDO create takes internally 10 frames for the Read Queue only, because it needs to buffer the answers only.
    The TX PDO is created as an object but does per default not use any queue internally . But as you mentioned, you can configure a buffer size, which is the same queue.
    That means it is highly recommended to use one port devices or one port only for a 2 port device only, because you need 110 messages for the port configuration already.
    For SDOs i would recommend to close the handle if you have used the SDO and do not need it anymore. That frees the memory (10 messages ) for other operations.
    For PDOs i would recommend to use buffer size 0. That means you allways read the most recent value. I never needed a queue for my applications, but thats somewhat your decision. Within the configuration cluster you find the rx or tx PDO List control. This List triggers internally the COB ID you are using for the PDO. We configured four in each direction because it is likely that you canopen node uses these IDs which often are mapped by default.
    But if you need more then 4 PDOs you can use tx PDO 1 for example more then once, but you have to enter a valid COB ID by your own. That overwrites the default COB ID.
    See the attached example for LabVIEW, for details.
    But back to your problem: Lets calculate, which limit you reached first. 10 nodes with  3 Tx PDOs and 1 SDO. Here are the numbers: 60 messages and 30 Objects for the PDOs 100 messages and 10 objects for the SDOs and the Port configuration with 110 messages and 1 object.
    Thus you have 270 messages queue size and 41 objects.
    Thats not really the limity but it is near the limit and likely to cause the error with the next configuration step.
    I would  recommend the following:
    1. use one port only.
    2. close SDO handles after using them.
    3. use PDO buffer 0.
    Or use multiple boards . ;-)
    Hope that helps
    DirkW
    Attachments:
    Write and Read PDO Network Mapping71.llb ‏447 KB

  • Howto build CAN-devices with CANopen Library

    Hi
    We're two students working on a project to simulate CAN devices connected to a master. We have to "build" these devices in LabView. We've been working with the CANopen Library and the Channel API.
    We would prefer to use the CANopen Library, because it is easier that way to build the device's behaviour as it would be in "real-life". But the problem is, that the CANopen Library has been developed to build a CAN Master. Is there a way to bypass that. So that we could build the other side... a CAN device.
    We figured out, that we simply could alter the COB-IDs for de PDOs, that would do it. But the whole SDO and Sync part isn't that easy to bypass.
    Would be glad if we could get a tipp
    Thank you in advance
    Ranil Wijeyratne

    Hi,
    I'm a little confused on the master/slave terminology you're using, however, as CAN (also Canopen) is really a peer bus. Any device on the CAN bus can transmit and receive messages as described below (from the NI-CAN User Manual):
    "When a CAN device transmits data onto the network, an identifier that is unique throughout the network precedes the data. The identifier defines not only the content of the data, but also the priority. A CAN identifier, along with its associated data, is often referred to as a CAN Object. When a device transmits a message onto the CAN network, all other devices on the network receive that message
    . Each receiving device
    performs an acceptance test on the identifier to determine if the message is relevant to it. If the received identifier is not relevant to the device (such
    as RPM received by an air conditioning controller), the device ignores the message.
    When more than one CAN device transmits a message simultaneously, the identifier is used as a priority to determine which device gains access to the network. The lower the numerical value of the identifier, the higher its priority."
    As you can see, you can use our CAN interface "slave" to receive commands from any other device on the CAN bus "master".
    Also the Canopen Library is just the API for LabVIEW, both CAN and Canopen ends up in Bits which then will be send to the "Listeners"! They´re just on other Layers on the Programming. But both is really easy with LabVIEW
    Hope this helps.
    Alex Rudolph
    NI Switzerland

  • Open PDF's in new window in document library when using "Find a file" search

    I need to be able to open PDF's in a new window from a document library when using the "Find a file" search built into the document library "All documents" view. I currently have the following javascript on the page:
    _spBodyOnLoadFunctionNames.push("setTargetBlank()");
    function setTargetBlank()
    { $("a[href$='.pdf']").removeAttr('onclick').attr("target", "_blank");
    This works great when going to the document library and navigating through the folders then clicking on a link.
    The problem is when someone goes to the document library then uses the "Find a file" search and then they click on a link. The "Find a file" search does not do a postback (reload) of the page, therefore my javascript to find the PDF links
    and make them open in a new window does not run for the links on the page.
    I have read the following article but this does not seem to offer a solution that will work in this situation for SharePoint 2013 (Office 365): http://social.technet.microsoft.com/Forums/sharepoint/en-US/7ad3224c-3165-47ae-95bc-4f3928e2f9a8/opening-document-library-pdf-in-a-new-window-sharepoint-2013?forum=sharepointgeneral
    I suppose the idea solution would be to somehow tap into the event that is fired when using "Find a file" search to run my javascript and update the links for the search results.
    Can anyone offer any solutions to this issue?

    Hi,
    According to your description, my understanding is that you want to open PDF files in a new window from a document library when using the "Find a file" search.
    As you said, the "Find a file" search does not do a postback (reload) of the page, therefore JavaScript to find the PDF links and make them open in a new window does not run for the links on the page.
    I recommend to use JS link to achieve the goal. Create a JavaScript override file and upload the JavaScript file to the Master Page Gallery, and then set the JS Link property of the document library web part to point to the JavaScript file.
    Here are some links about the JS link in SharePoint 2013 for you to take a look:
    http://www.idubbs.com/blog/2012/js-link-for-sharepoint-2013-web-partsa-quick-functional-primer/
    http://www.learningsharepoint.com/2013/04/13/sharepoint-2013-js-link-tutorial/
    http://zimmergren.net/technical/sp-2013-using-the-spfield-jslink-property-to-change-the-way-your-field-is-rendered-in-sharepoint-2013
    Thanks,
    Victoria
    Forum Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected]
    Victoria Xia
    TechNet Community Support

  • Error on clicking "Report Data Source" in library created using power pivot template

    Hi,
    On clicking on "Report Data Source"  in library created using power pivot template i am getting below exception. Can some one help me in understanding the root cause / fix it.
    Error being shown: Microsoft.ReportingServices.SharePoint.SharedService.Client.RecoverableCommunicationException: The content type text/html; charset=utf-8 of the response message does not match the content type of the binding (application/soap+msbin1).
    If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes of the response were: '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     <html xmlns="http://www.w3.org/1999/xhtml">  <head>  <title>IIS 8.0 Detailed Error - 500.19 - Internal Server Error</title>  <style type="text/css">  <!--  body{margin:0;font-size:.7em;font-family:Verdana,Arial,Helvetica,sans-serif;}
     code{margin:0;color:#006600;font-size:1.1em;font-weight:bold;}  .config_source code{font-size:.8em;color:#000000;}  pre{margin:0;font-size:1.4em;word-wrap:break-word;}  ul,ol{margin:10px 0 10px 5px;}  ul.first,ol.first{margin-top:5px;}
     fieldset{padding:0 15px 10px 15px;word-break:break-all;}  .summary-container fieldset{padding-bottom:5px;margin-top:4px;}  legend.no-expand-all{padding:2px 15px 4px 10px;margin:0 0 0 -12px;}  legend{color:#333333;;margin:4px 0 8px -12px;_margin-top:0px;
     font-weight:bold;font-size:1em;}  a:link,a:visited{color:#007EFF;font-weight:bold;}  a:hover{text-decoration:none;}  h1{font-size:2.4em;margin:0;color:#FFF;}  h2{font-size:1.7em;margin:0'. ---> System.ServiceModel.ProtocolException:
    The content type text/html; charset=utf-8 of the response message does not match the content type of the binding (application/soap+msbin1). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024
    bytes of the response were: '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  <html xmlns="http://www.w3.org/1999/xhtml">  <head>  <title>IIS
    8.0 Detailed Error - 500.19 - Internal Server Error</title>  <style type="text/css">  <!--  body{margin:0;font-size:.7em;font-family:Verdana,Arial,Helvetica,sans-serif;}  code{margin:0;color:#006600;font-size:1.1em;font-weight:bold;}
     .config_source code{font-size:.8em;color:#000000;}  pre{margin:0;font-size:1.4em;word-wrap:break-word;}  ul,ol{margin:10px 0 10px 5px;}  ul.first,ol.first{margin-top:5px;}  fieldset{padding:0 15px 10px 15px;word-break:break-all;}
     .summary-container fieldset{padding-bottom:5px;margin-top:4px;}  legend.no-expand-all{padding:2px 15px 4px 10px;margin:0 0 0 -12px;}  legend{color:#333333;;margin:4px 0 8px -12px;_margin-top:0px;  font-weight:bold;font-size:1em;}  a:link,a:visited{color:#007EFF;font-weight:bold;}
     a:hover{text-decoration:none;}  h1{font-size:2.4em;margin:0;color:#FFF;}  h2{font-size:1.7em;margin:0'. ---> System.Net.WebException: The remote server returned an error: (500) Internal Server Error.    
     at System.Net.HttpWebRequest.GetResponse()    
     at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)     -
     -- End of inner exception stack trace ---    Server stack trace:     
     at System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory`1 factory, WebException responseException, ChannelBinding channelBinding)    
     at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)    
     at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)    
     at System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.Request(Message message, TimeSpan timeout)    
     at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)    
     at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)    
     at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)    Exception rethrown
     at [0]:     
     at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)    
     at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)    
     at Microsoft.ReportingServices.ServiceContract.IReportServiceManagement.get_IsWebServiceEnabled()    
     at Microsoft.ReportingServices.SharePoint.SharedService.Client.ReportingWebServiceApplicationProxy.<>c__DisplayClass8`1.<ExecuteOnApplication>b__6(IReportServiceManagement proxy, Int32 dummy)    
     at Microsoft.ReportingServices.SharePoint.SharedService.Client.ReportingWebServiceApplicationProxy.ExecuteOnChannel[T](String siteUrl, String xmlNamespace, Action`2 method, IChannel channel, Int32 maxFaultSize)    
     at Microsoft.ReportingServices.SharePoint.SharedService.Client.ReportingWebServiceApplicationProxy.HandleExecuteOnChannel[T](String siteUrl, String xmlNamespace, Action`2 method, SPServiceLoadBalancerContext loadBalancerContext)     -
     -- End of inner exception stack trace ---    
     at Microsoft.ReportingServices.SharePoint.SharedService.Client.ReportingWebServiceApplicationProxy.HandleExecuteOnChannel[T](String siteUrl, String xmlNamespace, Action`2 method, SPServiceLoadBalancerContext loadBalancerContext)    
     at Microsoft.ReportingServices.SharePoint.SharedService.Client.ReportingWebServiceApplicationProxy.ExecuteOnApplication[T](String operationName, String siteUrl, String xmlNamespace, Action`2 method)    
     at Microsoft.ReportingServices.SharePoint.SharedService.Client.ReportingWebServiceApplicationProxy.Invoke[T](SPServiceContext serviceContext, String operationName, String siteUrl, String xmlNamespace, Guid serviceInstanceId, Action`2 method)    
     at Microsoft.ReportingServices.SharePoint.SharedService.Client.ReportingWebServiceClient.Execute[TResult](String methodName, Func`2 action)    
     at Microsoft.ReportingServices.SharePoint.UI.BaseRSLayoutPage.ValidateReportServerConnection(SrvProxy rsProxy)
    Followed steps from below link :
    http://www.mssqltips.com/sqlservertip/3004/getting-started-with-power-view-reports-with-sharepoint-excel-and-sql-server/
    Thanks,
    Venugopal

    Hi Venugopal,
    Please refer to the blogs below and see if it works for your case:
    http://sharepointerthilosh.blogspot.com/2013/10/sharepoint-2013-reports-unexpected.html
    http://badalratra.wordpress.com/2014/03/13/error-the-content-type-texthtml/
    To create a Power View report, start Power View from a
    data model file in SharePoint Server 2010 or 2013. Models, or connections to models, can be in a SharePoint Server document library or in a
    Power Pivot Gallery, a special purpose SharePoint Server document library that provides rich preview and document management for published Microsoft Excel workbooks that contain data models.
    Please refer to the links below to get report in Power View in SharePoint server:
    http://office.microsoft.com/en-in/excel-help/power-view-in-sharepoint-server-create-save-and-print-reports-HA102834736.aspx
    http://office.microsoft.com/en-in/excel-help/create-a-connection-to-a-data-model-for-power-view-HA102835737.aspx
    Regards,
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected] .
    Rebecca Tu
    TechNet Community Support

  • A friend gave me her VAIO laptop.How can I remove her ITUNES library and use mine which I want to sync with my Ipad and Iphone?

    A Friend gave me her VAIO laptop.How can I remove her ITUNES library and use my library.  Want to sync my Ipad and Iphone to My library.

    I believe when you plug her old iPhone in to your computer it will notify you that the phone is synced with another library and ask if you want to register it with your library.  At least this is how iPods work.  I'm not sure about iPhones.  If you want to actually use the phone as your own you may need to go through AT&T.
    If you're just looking to use the iPhone as an iPod (without the phone portion of it) you may run in to some problems.  The iPhone really wants to be on a cell network all the time.  I think you'd have to jailbreak it to get it to work properly as an iPod.
    Let us know what happens when you plug the phone in to your computer.

  • Need a good charting library (for use in a servlet/jsp environment)

    Anyone know of a good charting library for use in a servlet/jsp environment.

    Use JFreechart combined with cewolf.
    www.object-refinery.com/jfreechart/
    To use charts in a jsp page you can use cewolf ( a taglib) based on jfreechart.
    http://cewolf.sourceforge.net/
    Both are free.

  • I have an iMac and iPhone 4s i also have ringtones as an app i am also an match user with the cloud how can i get a ringtone to appear in my library to use on my phone

    i have an iMac and iPhone 4s i also have ringtones as an app i am also an match user with the cloud how can i get a ringtone to appear in my library to use on my phone

    Oh nice, there's a PassKeeper application for the iPhone and iPad.  Simply install it and it should talk you through steps, otherwise their website is probably a great place to check.
    http://itunes.apple.com/us/app/passkeeper/id405021740?mt=8
    I really like the application 1Password, and it works across all the products, Mac, PC, iPad, iPhone.

  • StandardView button is being selected in the ribbon even user clicks on Datasheet view of a library created using custom template.

    Hi,
    We have an issue with one of the library created using custom library template. Eventhough user selects Datasheet view from the ribbon it's showing Standard view button as selected. However content is being correctly in the grid view. Can some one help me
    in sorting this issue.
    NB: Functionality is working as expected with library created using OOB document library template.
    In the above screen shot Datasheet was selected.but Standard View was highlighted. 
    Is that something should be done in schema.xml file?
    Thanks,
    Venugopal

    Hi Venugopal Pulagam,
    This seems a weird issue, based on my understanding, it is not caused by SharePoint. I haven’t seen that there is settings in list instance schema file can effect this to happen.
    To narrow down this issue, would you please check whether this can be reproduced in other type of browser?
    And as this only happens for this specific library, please create a new list based on the template, check the result.
    How you create the list template, please share the steps to reproduce the issue.
    Thanks,
    Qiao Wei
    TechNet Community Support

  • Populate sharepoint2013 document library coloumns using infopath2013 form

    Hi
    Is it possible to populate sharepoint2013 document library columns using Infopath2013 forms?
    A form created in info path is published to the document library.
    As default when you create a new form from the library - fill it and then you can save the form and are presented with pop-up-box where you type inn the filename. This data (Filename) is stored under the library  column "Name" for the form-file.
    However it would be terrific if the user also had to input data in the other columns . These columns are required* in the library.
    Im a total newb at infopath, any help would be much appreciated!
    And showing how would be very nice too!
    brgs
    bjorn

    By mapping fields on the infopath form to the sharepoint list/library (column type basic text), I could populate the metadata columns as i wanted.

  • Why will iphoto not open, library corrupted using older version?

    iMac OSX Version 10.6.8 iMac12,2
    Intel Core i5 iPhoto 8.1.2,
    iphoto will not open, library corrupted using older version
    I have removed all iphoto files and avatars as one person has suggested. I am suppose to reinstall iPhoto using the discs that came with the computer.
    I am not sure what to do with any options that might be provided. Any help will be appreciated.

    Be sure the DNG Converter's compatibility is set to provide support for your version of ACR:
    Benjamin

  • How can I know which photos are in the library was used in each album I have created before.

    How can I know which photos are in the library was used in each album I have created before?
    I have many photos in the library folder of iPhoto, but actually I don't know which photos were used in my album.
    Is there any method to find this?
    Thanks.

    Album or Book?
    If Album you can find the ones not already used:
    File -> New Smart Album
    Album -> is not -> Any
    Regards
    TD

  • What does "you do not have enough genius suggestions in your library to use this feature mean?

    what does "you do not have enough genius suggestions in your library to use this feature mean?

    At face value it would suggest the content of your library is too obscure, however it might mean your library is too small for the feature to be active, or that it hasn't catalogued your content yet.
    tt2

  • Is it possible for Apple Time Capsule place iphoto library and use it with my macbooks

    Is it possible for Apple Time Capsule place iphoto library and use it with my macbook pro & macbook air? How about the simultaneous use? Will I as well open it in my ipad and iphoto?

    How Come? I thought that to an external drive move iphoto library is not a problem  -  https://discussions.apple.com/thread/3012995?tstart=0. And Apple Time Capsule including the an external drive.

Maybe you are looking for