Real-Time Measurement and Control

cancel
Showing results for 
Search instead for 
Did you mean: 

Feedback on Getting Started with CompactRIO - Remotely Monitoring I/O

This thread is dedicated to discussion and feedback around the tutorial Getting Started with CompactRIO - Remotely Monitoring I/O.

 

Please post any questions or comments here. 

0 Kudos
Message 1 of 4
(4,097 Views)

Hi,

 

Nice tutorial. I'm a quite a newbie here (to NI ecosystem) so I might be asking some silly questions, please forgive me for that.

 

Questions.
I/O variables are Network published & synced to Scan Engine (in this example)

  1. So are they published to network at the same rate? - I assume yes
    • how does the net frame look like for this net-publishing?
    • Can I actually assume that messaging pattern is publish-subscribe?
    • does it run on top of TCP or UDP then?
    • how do I configure the network to pass/stop LabView traffic if it is not isolated - what port ?
    • I assume Host Running LabView tries to automatically subscribe is that right?
    • I assume an Embedded Controller with proper NI software can also subscribe to I/O Variables - like another cRIO controller so that a distributed system can be built?
  2. Is there a way to not to net publish I/O variables every time scan engine sync?
    • I would prefer not to send many small packets
    • Im looking for an option to gather more I/O readings and send them in a bigger (preferably data-timestammped) packets so the host can just "realibly" chart them
    • Should I then rather disable the net publishing feature for I/O vars (how?) and simply create a custom patcher (publisher) running in lower prio loop on RT system, and a dispatcher (reader) on the host PC ?
  3. Are I/O Variables available (by default) only via Ethernet Network? or could I  connect "Controllers" ("more locally") via USB for I/O Variable sharing?
    • or is there a way to restrict LabView related "inter-communication" to exactly 1 eth?
    • Can third party software capture I/O Variables? - how do others subscribe?
    • Can I assume it is Data Distribution Service [DDS] related ?

 

 

Any Ideas or pointers very appreciated.

 

 

Cheers

T

0 Kudos
Message 2 of 4
(2,991 Views)

Hey T,

 

PSP variables are Publish-Subscribe Protocol variables. When you make an I/O Variable (from the Scan Engine), by default it also gets a PSP variable by the same name. I/O Variables are available locally on the cRIO, and the corresponding PSP variable is published across the network. You can turn off the complementary PSP variable by editing the variable's properties, shown below. Notice the LabVIEW Project icon beside the variable loses a glyph when you turn off Network Publishing:

IOV.jpg

Andrew T.
"His job is to shed light, and not to master" - Robert Hunter
0 Kudos
Message 3 of 4
(2,980 Views)

Wow many thanks.


And for other courius newbies like me what I found "enlightening" was:

    http://www.ni.com/white-paper/4679/en/#toc3
        it is a starter then one can search ni.com for all the stack related info (many links so I'm not adding them here)
        look @ performance as well - question might be if NI did anything new in 2016 LbView to net-published vars that might change the performance
    http://zone.ni.com/reference/en-XX/help/371361N-01/lvconcepts/choosing_lv_comm/
    http://zone.ni.com/reference/en-XX/help/371361N-01/lvconcepts/data_comm/#fifonet


There is obvously much more but I do not want to spam with links - from these 3 one can go further


To answer my own questions (please correct me if I'm wrong):

I/O variables are Network published & synced to Scan Engine (in this example)
        1. So are they published to network at the same rate?
         - No, by default there is 8kB buffer with 10ms timeout
        
        2.how does the net frame look like for this net-publishing?
        - NI does NOT say, this is closed, please look at Datasocket related topics
        
        3. Can I actually assume that messaging pattern is publish-subscribe?
        - yes
        
        4. does it run on top of TCP or UDP then?
        - TCP
        
        5. I assume Host Running LabView tries to automatically subscribe is that right?
        - must  deploy first, and proper network must exist (SVE up and running), then yes LabView magic makes it true
        
        6. I assume an Embedded Controller with proper NI software can also subscribe to I/O Variables - like another cRIO controller so that a distributed system can be built?
        - yes but SVE must exist on Windows machine
        
        7. Is there a way to not to net publish I/O variables every time scan engine sync?
        - yes, look  a_clucker   answer and also the example given in the topic getting started example [ http://www.ni.com/tutorial/11199/en/ ]
        
        8. Are I/O Variables available (by default) only via Ethernet Network?
        - only Eth
        
        9. Is there a way to restrict LabView related "inter-communication" to exactly 1 eth?
        - play with NI-MAX
        
        10. Can third party software capture I/O Variables? - how do others subscribe?
        - No, must have is LabView, LabWindows / CVI Datasocket lib / API, or proper AciveX... to use in Excel (... yes that is true)
        
        11. Can I assume it is Data Distribution Service [DDS] related ?
        - No it is better not to assume that
        
Cheers
T

0 Kudos
Message 4 of 4
(2,970 Views)