<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>LabVIEW for Real-Time and FPGA Archives | DMC, Inc.</title>
	<atom:link href="https://static.dmcinfo.com/blog/tag/labview-for-real-time-and-fpga/feed/index.xml" rel="self" type="application/rss+xml" />
	<link></link>
	<description></description>
	<lastBuildDate>Thu, 09 Jul 2026 14:28:39 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>

<image>
	<url>https://static.dmcinfo.com/wp-content/uploads/2025/04/site-icon-150x150.png</url>
	<title>LabVIEW for Real-Time and FPGA Archives | DMC, Inc.</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Open Source J1939 CAN Drivers</title>
		<link>https://static.dmcinfo.com/blog/23636/open-source-j1939-can-drivers/</link>
		
		<dc:creator><![CDATA[Christian Owen]]></dc:creator>
		<pubDate>Thu, 07 Dec 2017 09:00:26 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[Test and Measurement Automation]]></category>
		<category><![CDATA[J1939 LabVIEW Drivers]]></category>
		<category><![CDATA[LabVIEW for Real-Time and FPGA]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/23636/open-source-j1939-can-drivers/</guid>

					<description><![CDATA[<p>DMC has been using the SAE J1939 CAN protocol in LabVIEW applications since 2010. A few years ago, DMC wrote a first generation set of J1939 drivers using the NI-CAN Channel API provided by National Instruments (NI) which was, at the time, a standard NI CAN API for use on the NI-CAN hardware family. Since [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/23636/open-source-j1939-can-drivers/">Open Source J1939 CAN Drivers</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">DMC has been using the SAE J1939 CAN protocol in LabVIEW applications since 2010. A few years ago, DMC wrote a first generation set of J1939 drivers using the NI-CAN Channel API provided by National Instruments (NI) which was, at the time, a standard NI CAN API for use on the NI-CAN hardware family.</p>



<p class="wp-block-paragraph">Since then, NI released XNET. XNET is a modernized, unified, and easier to use API for CAN, LIN and Flex Ray interfaces and is to be used with NI’s XNET hardware family.&nbsp;</p>



<p class="wp-block-paragraph">NI’s move to XNET prompted DMC to develop a second generation of J1939 drivers using the new API. &nbsp;</p>



<h2 class="wp-block-heading">What’s new?</h2>



<p class="wp-block-paragraph">These updated drivers run on modern XNET CAN modules and include new features such as multi-packet and DM (Diagnostic Message) functionality.&nbsp;</p>



<p class="wp-block-paragraph">Though DMC previously provided only a trial version of the software, the drivers are now completely free and open source.</p>



<h2 class="wp-block-heading">Who is this useful for?</h2>



<p class="wp-block-paragraph">These new J1939 drivers are intended to be used in automated testing and hardware in the loop (HiL) simulation. However, they are generic enough to serve a wide range of potential use cases.&nbsp;</p>



<p class="wp-block-paragraph">Also, since the drivers are now open source, developers can customize them to better fit their applications and/or implement functionality that isn’t currently supported.&nbsp;</p>



<p class="wp-block-paragraph">To make adding additional application layer functionality easier, these drivers expose a generic data link (J1939-21) API for handling multi-frame messages.</p>



<h2 class="wp-block-heading">What do I need to start developing?</h2>



<p class="wp-block-paragraph">Since these drivers are built on the NI XNET API, XNET compatible hardware is needed to use them. See the CAN hardware in<a href="http://www.ni.com/white-paper/9727/en/#toc3"> this table</a> (below) for available options.</p>



<p class="wp-block-paragraph"><img decoding="async" alt="List of CAN hardware compatible with DMC's J1939 drivers" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/CAN-Hardware-Compatible-with-J1939-Drivers-NI_com.png"><br>
<em>Source: www.ni.com</em></p>



<h2 class="wp-block-heading">Compatibility</h2>



<p class="wp-block-paragraph">The drivers are compatible with LabVIEW 2015 &#8211; 2017 and NI XNET 15.0 – 17.0.</p>



<h2 class="wp-block-heading">Where can I get these?</h2>



<p class="wp-block-paragraph"><strong>Learn more about <a href="https://static.dmcinfo.com/services/test-and-measurement-automation/labview-programming/j1939-labview-drivers" type="link" id="https://static.dmcinfo.com/services/test-and-measurement-automation/labview-programming/j1939-labview-drivers">downloading the drivers</a>.</strong></p>
<p>The post <a href="https://static.dmcinfo.com/blog/23636/open-source-j1939-can-drivers/">Open Source J1939 CAN Drivers</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>NI LabVIEW Part 2: Synchronized Data Acquisition across Distributed FPGA Chassis</title>
		<link>https://static.dmcinfo.com/blog/23836/ni-labview-part-2-synchronized-data-acquisition-across-distributed-fpga-chassis/</link>
		
		<dc:creator><![CDATA[Jeremy Green]]></dc:creator>
		<pubDate>Tue, 10 Oct 2017 09:26:52 +0000</pubDate>
				<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[Test and Measurement Automation]]></category>
		<category><![CDATA[LabVIEW for Real-Time and FPGA]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/23836/ni-labview-part-2-synchronized-data-acquisition-across-distributed-fpga-chassis/</guid>

					<description><![CDATA[<p>In this section, we&apos;ll discuss data acquisition using the multiple FPGA chassis architecture outlined in the previous section,&#160;NI LabVIEW Part 1: Building Distributed and Synchronized FPGA Applications with Multiple C Series Chassis.&#160;If you haven&#8217;t already, refer to Part 1 of 3 for Distributed FPGA Chassis Time synchronization. We use LabVIEW DMA FIFOs for typical FPGA [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/23836/ni-labview-part-2-synchronized-data-acquisition-across-distributed-fpga-chassis/">NI LabVIEW Part 2: Synchronized Data Acquisition across Distributed FPGA Chassis</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">In this section, we&apos;ll discuss data acquisition using the multiple FPGA chassis architecture outlined in the previous section,&nbsp;<a href="https://static.dmcinfo.com/latest-thinking/blog/id/9322/ni-labview-building-distributed-and-synchronized-fpga-applications-with-multiple-c-series-chassis">NI LabVIEW Part 1: Building Distributed and Synchronized FPGA Applications with Multiple C Series Chassis</a>.&nbsp;If you haven&rsquo;t already, refer to Part 1 of 3 for Distributed FPGA Chassis Time synchronization.</p>

<p class="wp-block-paragraph">We use LabVIEW DMA FIFOs for typical FPGA applications that acquire data to be sent to an RT target(Host). There are a lot of ways to use FIFOs for transporting data from the FPGA to the RT target. We will outline several of these options and present a generalized data transfer mechanism for synchronized DAQ on multiple chassis.</p>

<p class="wp-block-paragraph">Let&apos;s start by outlining our requirements and then build then up a solution which considers several different options for transferring data from the FPGA to the host.</p>

<ol class="wp-block-list" start="1">
</ol>

<h2 class="wp-block-heading">Outlining the Requirements</h2>

<p class="wp-block-paragraph">Requirements:</p>

<ol class="wp-block-list">
 <li>The system has a high channel count.</li>
 <br />
 <li>There are a variety of different data types in the channels being acquired.</li>
 <br />
 <li>Channels may be acquired from different loops that execute at different loop rates.</li>
 <br />
 <li>Channel data acquisition times must be synchronized across multiple chasses.</li>
</ol>

<h2 class="wp-block-heading">Schemes for Transferring Data</h2>

<p class="wp-block-paragraph">The <strong>DMA FIFO</strong> is the fundamental block for lossless transfer of data between an&nbsp;FPGA application and the host.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/NI-LabVIEW-Part-2-Picture-1.jpg"  /></figure>

<p class="wp-block-paragraph">Using this building block, let&rsquo;s discuss the progression of a generalized DAQ architecture starting with a single chassis implementation.</p>

<h2 class="wp-block-heading">Single Channel Data Transfer</h2>

<p class="wp-block-paragraph">The simplest scheme for transferring channel data is when you&rsquo;re acquiring data for a single channel.</p>

<p class="wp-block-paragraph">In this scenario, you can write the data into the FIFO as it&rsquo;s being acquired. As the host is acquiring data from the FPGA, it is guaranteed to be a sequential, ordered series of samples for that channel.</p>

<h2 class="wp-block-heading">Multi-Channel Data Transfer</h2>

<p class="wp-block-paragraph">In most instances, we will want to acquire more than (1) channel of data, so the natural <strong>next step for this is to interleave the data</strong> that is being written to the FIFO. For a fixed channel list, this interleaved ordering can be pre-defined. That data can then be decimated using that ordering when it is&nbsp;read from the host.</p>

<p class="wp-block-paragraph"><strong>Example FIFO ordering:<span id="cke_bm_1090C" style="display: none;">&nbsp;</span></strong></p>

<p class="wp-block-paragraph">[channel 1 &ndash; sample 1, channel 2-sample 1, ch3-s1, &hellip; , chN-s1],</p>

<p class="wp-block-paragraph">[channel 1 &ndash; sample 2, channel 2-sample 2, ch3-s2, &hellip; , chN-s2],</p>

<p class="wp-block-paragraph">&hellip; ,</p>

<p class="wp-block-paragraph">[channel 1-sample N, channel 2-sample N, ch3-sN, &hellip;, chN-sN]</p>

<h2 class="wp-block-heading">Differing Acquisition Rates</h2>

<p class="wp-block-paragraph">In the most generalized approach, it is not guaranteed that every channel will be acquired at the same rate. If you only have a few different acquisition rates, you could potentially use a separate FPGA-to-Host FIFO for each acquisition loop/rate.</p>

<p class="wp-block-paragraph">If you can only use a single FIFO for transferring data or have more DAQ loop rates than FIFO channels, we would like to be able to use a single FIFO for acquiring data from all of the different sources/loops in our application.</p>

<p class="wp-block-paragraph">In the example shown below, we have a 1Khz control loop that may contain some output channels or internal calculated channels that we would like to acquire as well as a more standard DAQ loop running at 5Khz.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/NI-LabVIEW-Part-2-Picture-2.jpg"  /></figure>

<h2 class="wp-block-heading">Including Additional Information</h2>

<p class="wp-block-paragraph">We can no longer assume what the ordering of the channels written to the FIFO will be, so we need to include additional information along with each channel&rsquo;s sample value to identify it on the Host. By setting the FIFO data type to be u64, we can pack additional information to be included with each channel.</p>

<p class="wp-block-paragraph">In the example below, we can include a channel ID in addition to the channel data&rsquo;s value&nbsp;so the Host can parse which value is associated with which channel ID.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/NI-LabVIEW-Part-2-Picture-3-Smaller.jpg"  /></figure>

<h2 class="wp-block-heading">What About Timing?</h2>

<p class="wp-block-paragraph"><strong>With the single channel acquisition or interleaved approach</strong>, we can infer the time delta between each sample. When capturing channels throughout a general FPGA application, we should have a strategy for capturing timing information with the samples we&rsquo;re acquiring. One way to achieve this is to <strong>include a base clock value that is packed along with the channel ID and channel value</strong>:</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/NI-LabVIEW-Part-2-Picture-4-Smaller.jpg"  /></figure>

<p class="wp-block-paragraph">Another option, <strong>if your application can tolerate less resolution per channel,</strong> would be to periodically <strong>send a special timestamp channel value at a regular interval</strong>. This unique timing channel can be used on the host side for determining when to aggregate a set of channel data. It can attach a single timestamp to all of the channel values received since the last timestamp value was received through the FIFO.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/NI-LabVIEW-Part-2-Picture-5.jpg"  /></figure>

<h2 class="wp-block-heading">Considering Scale</h2>

<p class="wp-block-paragraph">The final step for this architecture is to consider how it scales with multiple FPGA chassis. In the previous section, we were able to generate a synchronized base clock value across all chassis. By using this synchronized base clock as the time stamp included with the channel values, we can achieve synchronized data acquisition across multiple chassis.</p>

<p class="wp-block-paragraph">In the diagram below, you can see what this architecture might look like on the RT/Host side. Multiple parallel loops will be used for acquiring data from the FIFOs, Scaling the data, and then aggregating the data to be disseminated throughout the RT-Host application.</p>

<figure class="wp-block-image"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/NI-LabVIEW-Part-2-Picture-6.jpg"  /></figure>

<p class="wp-block-paragraph">The last part of the architecture considers how to share data between chassis without involving the RT.</p>

<p class="wp-block-paragraph">Stay tuned for synchronous data sharing between FPGA chassis using NI 9853 CAN module!</p>

<p class="wp-block-paragraph"><strong><a href="https://static.dmcinfo.com/services/test-and-measurement-automation/labview-programming-for-real-time-and-fpga">Learn more about DMC&apos;s FPGA programming expertise.</a></strong></p>
<p>The post <a href="https://static.dmcinfo.com/blog/23836/ni-labview-part-2-synchronized-data-acquisition-across-distributed-fpga-chassis/">NI LabVIEW Part 2: Synchronized Data Acquisition across Distributed FPGA Chassis</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>NI LabVIEW Part 1: Building Distributed and Synchronized FPGA Applications with Multiple C Series Chassis</title>
		<link>https://static.dmcinfo.com/blog/24977/ni-labview-part-1-building-distributed-and-synchronized-fpga-applications-with-multiple-c-series-chassis/</link>
		
		<dc:creator><![CDATA[Jeremy Green]]></dc:creator>
		<pubDate>Tue, 01 Nov 2016 13:57:30 +0000</pubDate>
				<category><![CDATA[Test and Measurement Automation]]></category>
		<category><![CDATA[LabVIEW for Real-Time and FPGA]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/24977/ni-labview-part-1-building-distributed-and-synchronized-fpga-applications-with-multiple-c-series-chassis/</guid>

					<description><![CDATA[<p>This blog series will examine applications requiring multiple C Series FPGA chassis. You may need multiple chassis because of a high channel count requiring more modules than&#160;which can fit in a single chassis. Or, you may have a large amount of FPGA logic that can&#8217;t fit on a single FPGA chip. If needed, the generalized [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/24977/ni-labview-part-1-building-distributed-and-synchronized-fpga-applications-with-multiple-c-series-chassis/">NI LabVIEW Part 1: Building Distributed and Synchronized FPGA Applications with Multiple C Series Chassis</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">This blog series will examine applications requiring multiple C Series <a href="https://static.dmcinfo.com/services/test-and-measurement-automation/labview-programming-for-real-time-and-fpga">FPGA</a> chassis. You may need multiple chassis because of a high channel count requiring more modules than&nbsp;which can fit in a single chassis. Or, you may have a large amount of FPGA logic that can&rsquo;t fit on a single FPGA chip. If needed, the generalized architecture presented here may provide ideas for how to achieve tight synchronization between FPGA code running on these different chassis.&nbsp;</p>

<p class="wp-block-paragraph">As a quick overview of what we&rsquo;ll discuss, we&rsquo;ll be working towards an architecture shown below. Part 1 of this series will review how to achieve timing synchronization between the FPGA chassis using National Instruments&nbsp;9469 time sync modules. <a href="https://static.dmcinfo.com/latest-thinking/blog/id/9513/ni-labview-part-2-synchronized-data-acquisition-across-distributed-fpga-chassis">Part 2</a> will look at how to integrate synchronized data acquisition with an RT host application. Part 3 will review how to achieve data sharing between FPGA chassis using NI 9853 CAN modules.</p>

<p class="wp-block-paragraph"><figure class="wp-block-image"><img decoding="async" alt="Diagram of distributed and synchronized FPGA applications" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Distributed-and-Synchronized-FPGA-applications.jpg"  /></figure><br />
&nbsp;<br />
Our goal is simple:</p>

<p class="wp-block-paragraph"><figure class="wp-block-image"><img decoding="async" alt="Diagram of distributed and synchronized FPGA applications using C-series chassis" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/FPGA-applications-with-C-series-chassis.jpg"  /></figure>&nbsp;</p>

<p class="wp-block-paragraph">Unfortunately, National Instruments&nbsp;hasn&rsquo;t released the 60-slot mega chassis yet, so we&rsquo;ll strive to achieve similar function and capabilities using multiple chassis with timing synchronization and data sharing.&nbsp;</p>

<h2 class="wp-block-heading">Part 1 of 3: Distributed FPGA Chassis Time Synchronization Using NI 9469 C Series Module</h2>

<p class="wp-block-paragraph">The first step to building up this architecture is to synchronize the clocks between the different FPGA chassis. We&rsquo;ll achieve this using the NI 9469 time sync module that was designed specifically for synchronization requirements like this.&nbsp;</p>

<p class="wp-block-paragraph">The NI 9469 synchronization module is essentially a high-speed digital I/O module that encapsulates the underlying digital signals to provide a simple API for synchronization functionality.</p>

<figure class="wp-block-image"><img decoding="async" alt="The NI 9469 synchronization module provides API for synchronization functionality" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/NI-9469-synchronization-module.jpg"  /></figure>

<p class="wp-block-paragraph">In general, you configure the 9469 module to operate as a node in one of several &ldquo;Single Master, Multiple Slave&rdquo; topologies. Every chassis that you use will have one of these 9469 modules. A few of these different topologies are shown here:</p>

<figure class="wp-block-image"><img decoding="async" alt="The NI 9469 module can be configured in a tree topology" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/tree-topology.jpg"  /></figure>

<figure class="wp-block-image"><img decoding="async" alt="The NI 9469 module can be configured in a star topology" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/star-topology.jpg"  /></figure>

<p class="wp-block-paragraph"><figure class="wp-block-image"><img decoding="async" alt="The NI 9469 module can be configured in a daisychain topology" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/daisychain-topology.jpg"  /></figure>In our own application, it made sense to use the daisychain topology, but that could change depending on your own requirements.&nbsp;</p>

<p class="wp-block-paragraph">The master chassis in this configuration can send a trigger (digital pulse) to one or more slaves, which upon receiving the triggers can perform some action(s) synchronously.</p>

<p class="wp-block-paragraph">The API for the 9469 module includes two invoke nodes that are used in your FPGA code.</p>

<p class="wp-block-paragraph">For Sending Triggers from a Master:<br />
<figure class="wp-block-image"><img decoding="async" alt="NI 9469 module invoke node for sending triggers from a master" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/NI-9469-send-triggers-from-a-master.jpg"  /></figure><br />
And for Receiving Triggers at a Slave or Master (Master can receive its own trigger &ndash; useful for synchronizing functions on both a master and slave):<br />
<figure class="wp-block-image"><img decoding="async" alt="NI 9469 module invoke node for receiving triggers" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/NI-9469-receive-triggers.jpg"  /></figure><br />
To generate a clock that is synchronized across all of your FPGA chassis, you can use a loop on the master chassis that is timed to send a trigger at a particular frequency. In the example below, we&rsquo;re sending a trigger every 400 ticks. For a 40 MHz FPGA clock, that will equate to a 100Khz trigger send frequency. The frequency at which we send triggers to all FPGA chassis will become our base clock frequency. We&rsquo;ve also added a trigger enable register so that we can control when to send triggers from the host application.</p>

<p class="wp-block-paragraph"><figure class="wp-block-image"><img decoding="async" alt="Generate a clock that is synchronized across all of your FPGA chassis" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/clock-synchronized-FPGA-chassis.jpg"  /></figure>&nbsp;<br />
For receiving triggers, we can have the &ldquo;Wait On Trigger&rdquo; node in a while loop as well. This loop will be solely dedicated to receiving triggers which will then set an occurrence. That base clock occurrence can then be divided into other rates for use throughout the FPGA application.</p>

<figure class="wp-block-image"><img decoding="async" alt="Divide the base clock occurrence into other rates for the FPGA application" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Divide-base-clock-occurrence-rates-in-FPGA.jpg"  /></figure>

<p class="wp-block-paragraph">An example of this is shown below. Here, the base clock is divided into multiple different clock rates that are used throughout the FPGA application. The event divider VI counts the number of iterations it is called and outputs true on an interval that is wired into its input. Here, a divider of 1 yields the same frequency, 100 KHz. A divider of 20 yields 5Khz, etc. If we have multiple loops that will run at a particular frequency, then we can set multiple occurrences as in the 5Khz clock in this example.&nbsp;</p>

<p class="wp-block-paragraph"><figure class="wp-block-image"><img decoding="async" alt="The base clock is divided into multiple different clock rates that are used throughout the FPGA application" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/FPGA-base-clock-rates-divided.jpg"  /></figure>&nbsp;</p>

<p class="wp-block-paragraph">In addition to driving different loop rates, we will also be incrementing a base clock register. This base clock register can then be used for time stamping channel values, which will be described in Part 2: Synchronized Data Acquisition Across Distributed FPGA Chassis.</p>

<p class="wp-block-paragraph">Since each chassis has its own copy of the base clock register, they are all incrementing off the same triggers from the master chassis. The base clock register values will always be the same across all chassis.</p>

<p class="wp-block-paragraph">On initialization of the FPGA chassis, it is helpful to sync up the base clock registers via a procedure on RT. In general, a routine from the host application that follows the following steps will sync up the base clock registers on startup:</p>

<ol class="wp-block-list">
 <li>Disable all triggers</li>
 <li>Reset base clock register to 0 on all chassis</li>
 <li>Enable &ldquo;Wait on Trigger&rdquo; loops on all slave chassis</li>
 <li>Enable &ldquo;Send Triggers&rdquo; loop on master chassis</li>
</ol>

<p class="wp-block-paragraph">We&rsquo;ve now completed reviewing the core components of timing synchronization between chassis. In addition to what we&rsquo;ve reviewed here, you can augment these components with additional fault handling:</p>

<ol class="wp-block-list">
 <li>If a chassis is missing trigger pulses, we need to make sure this is detected and that loops will continue to execute in absence of triggers being received from the master. You would need to switch to using the local clock in this scenario.</li>
 <li>Use an additional trigger line for verifying the base clock trigger line. For example, if you send a trigger on the second trigger line once for every 1,000 triggers on your base clock trigger line, then you can count and ensure you&rsquo;re always receiving 1,000 triggers between triggers you receive on that second trigger line.</li>
</ol>

<p class="wp-block-paragraph">That wraps it up for Part 1, stay tuned for Part 2: Synchronized Data Acquisition Across Distributed FPGA Chassis!</p>

<p class="wp-block-paragraph"><strong><a href="https://static.dmcinfo.com/services/test-and-measurement-automation/labview-programming-for-real-time-and-fpga">Learn more about DMC&apos;s FPGA programming expertise.</a></strong></p>
<p>The post <a href="https://static.dmcinfo.com/blog/24977/ni-labview-part-1-building-distributed-and-synchronized-fpga-applications-with-multiple-c-series-chassis/">NI LabVIEW Part 1: Building Distributed and Synchronized FPGA Applications with Multiple C Series Chassis</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Duck, Duck, DAQmx: NIDays Chicago 2015 Recap</title>
		<link>https://static.dmcinfo.com/blog/26240/duck-duck-daqmx-nidays-chicago-2015-recap/</link>
		
		<dc:creator><![CDATA[Darren Jones]]></dc:creator>
		<pubDate>Fri, 16 Oct 2015 15:09:14 +0000</pubDate>
				<category><![CDATA[Battery Pack Test Systems]]></category>
		<category><![CDATA[Chicago]]></category>
		<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[Special Events]]></category>
		<category><![CDATA[Test and Measurement Automation]]></category>
		<category><![CDATA[Test Stand]]></category>
		<category><![CDATA[BMS]]></category>
		<category><![CDATA[LabVIEW for Real-Time and FPGA]]></category>
		<category><![CDATA[LabVIEW Vision]]></category>
		<category><![CDATA[Vision Inspection]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/26240/duck-duck-daqmx-nidays-chicago-2015-recap/</guid>

					<description><![CDATA[<p>DMC exhibited at NIDays Chicago last week for the third&#160;consecutive year. The one-day, multi-track conference explores the latest technologies for&#160;measurement, embedded, and test systems. We gathered at Navy Pier on a beautiful fall day, ready to enhance our technical knowledge, connect with other local NI users, and introduce visitors to DMC. Our tilt table demo [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/26240/duck-duck-daqmx-nidays-chicago-2015-recap/">Duck, Duck, DAQmx: NIDays Chicago 2015 Recap</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">DMC exhibited at NIDays Chicago last week for the <a href="https://static.dmcinfo.com/latest-thinking/blog/id/8685/dmc-attends-first-annual-nidays-event">third</a>&nbsp;<a href="https://static.dmcinfo.com/latest-thinking/blog/id/8890/visit-dmc-at-nidays-2014-in-chicago-and-boston">consecutive</a> year. The one-day, multi-track conference explores the latest technologies for&nbsp;measurement, embedded, and test systems.</p>

<p class="wp-block-paragraph">We gathered at Navy Pier on a beautiful fall day, ready to enhance our technical knowledge, connect with other local NI users, and introduce visitors to DMC. Our <a href="https://static.dmcinfo.com/about/employee-bios">tilt table demo</a> proved to be a popular draw and DMC&apos;s team had a great time showing it off at the booth.&nbsp;</p>

<p class="wp-block-paragraph"><span style="line-height: 20.8px;">As always, meeting and developing relationships with National Instruments and peer integrators was a highlight of the day. We even raffled off a </span>Fitbit Charge HR<span style="line-height: 20.8px;">. <strong>Congratulations to our winner,&nbsp;</strong></span><strong>Sonny Mitric of Omron!</strong></p>

<div>
<p class="wp-block-paragraph" style="line-height: 20.8px;"><figure class="wp-block-image"><img decoding="async" alt="DMC's Booth at NIDays Chicago 2015" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/nidays-chicago-2015-01.jpg"  /></figure></p>

<p class="wp-block-paragraph" style="line-height: 20.8px;"><figure class="wp-block-image"><img decoding="async" alt="The entrance to Navy Pier on NIDays Chicago 2015" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/nidays-chicago-2015-08.jpg"  /></figure></p>

<p class="wp-block-paragraph" style="line-height: 20.8px;"><figure class="wp-block-image"><img decoding="async" alt="Navy Pier's Grand Ballroom at NIDays Chicago 2015" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/nidays-chicago-2015-07.jpg"  /></figure></p>
</div>

<p class="wp-block-paragraph"><span style="line-height: 20.8px;">There were plenty of insightful technical sessions to choose from throughout the day. The&nbsp;Advanced DAQmx Property Modes presentation offered a deep technical dive into a useful topic that&apos;s applicable in many different applications. We also attended sessions on LabVIEW for Embedded Systems and gained hands-on experience using CRIO for Real-Time and FPGA application. Another course demonstrated good electrical engineering</span><span style="line-height: 1.6;">&nbsp;wiring practices, shielding, and noise reduction.</span></p>

<p class="wp-block-paragraph"><span style="line-height: 1.6;">DMC is an active participant in the <a href="https://static.dmcinfo.com/latest-thinking/blog/id/9099/chicagoland-labview-user-group-meeting-at-dmc">Chicagoland LabVIEW User Group</a>, so we were excited to see the Midwest User Group at NIDays. We stopped by the Midwest User Group booth and met up with users from across the region at a lunch meeting.&nbsp;</span></p>

<p class="wp-block-paragraph">We wrapped up the event with a fun exercise as part of the closing keynote session. Building a LEGO duck as a demonstration of stem execution was an enjoyable way to end a valuable day of learning and networking.&nbsp;</p>

<p class="wp-block-paragraph"><strong><a href="https://static.dmcinfo.com/latest-thinking/blog/id/9100/dmc-to-exhibit-at-nidays-2015-in-chicago-and-boston">Don&apos;t miss DMC at NIDays Boston 2015 on November 17!</a></strong></p>

<p class="wp-block-paragraph"><strong><figure class="wp-block-image"><img decoding="async" alt="The LEGO duck we built at NIDays Chicago 2015 as a demonstration of stem execution" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/nidays-lego-duck.jpg"  /></figure></strong></p>

<figure class="wp-block-image"><img decoding="async" alt="National Instruments' booth at NIDays Chicago 2015" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/nidays-chicago-2015-03.jpg"  /></figure>

<figure class="wp-block-image"><img decoding="async" alt="Attendees of NIDays Chicago 2015 view the tilt table demo at DMC's booth" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/nidays-chicago-2015-04.jpg"  /></figure>

<figure class="wp-block-image"><img decoding="async" alt="DMC chats with NIDays 2015 Chicago attendees at our booth" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/nidays-chicago-2015-05.jpg"  /></figure>

<figure class="wp-block-image"><img decoding="async" alt="A map showing LabVIEW user groups in the Midwest at NIDays Chicago 2015" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/nidays-chicago-2015-06.jpg"  /></figure>

<figure class="wp-block-image"><img decoding="async" alt="DMC networking with NIDays Chicago 2015 attendees at our booth" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/nidays-chicago-2015-09.jpg"  /></figure>

<p class="wp-block-paragraph"><a href="/services/test-and-measurement-automation">Learn more about DMC&apos;s Test &amp; Measurement Automation services.</a></p>
<p>The post <a href="https://static.dmcinfo.com/blog/26240/duck-duck-daqmx-nidays-chicago-2015-recap/">Duck, Duck, DAQmx: NIDays Chicago 2015 Recap</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Using WebDAV to Transfer Files from a Linux cRIO</title>
		<link>https://static.dmcinfo.com/blog/26523/using-webdav-to-transfer-files-from-a-linux-crio/</link>
		
		<dc:creator><![CDATA[Mark Locascio]]></dc:creator>
		<pubDate>Wed, 08 Jul 2015 11:59:39 +0000</pubDate>
				<category><![CDATA[Test and Measurement Automation]]></category>
		<category><![CDATA[Data Analysis]]></category>
		<category><![CDATA[LabVIEW for Real-Time and FPGA]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/26523/using-webdav-to-transfer-files-from-a-linux-crio/</guid>

					<description><![CDATA[<p>When using a realtime system for data acquisition or control, there is often a need to transfer files between the real time device and a PC. There are many ways to do this, but newer Linux-based NI CompactRIOs come with WebDAV and SSL support enabled by default. This makes WebDAV an easy option to use [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/26523/using-webdav-to-transfer-files-from-a-linux-crio/">Using WebDAV to Transfer Files from a Linux cRIO</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">When using a realtime system for data acquisition or control, there is often a need to transfer files between the real time device and a PC. There are many ways to do this, but newer Linux-based NI CompactRIOs come with WebDAV and SSL support enabled by default. This makes WebDAV an easy option to use right out of the box. The first time I used it, I noticed a couple pitfalls that are worth documenting. This will be a brief post to point out those details. For this post, I used an <a href="http://sine.ni.com/nips/cds/view/p/lang/en/nid/211620" target="_blank">NI cRIO-9068</a>.</p>

<p class="wp-block-paragraph"><strong>Configuration</strong><br />
As mentioned above, the Linux cRIOs have WebDAV and SSL support enabled by default. To confirm, open NI-MAX, and expand Remote Systems. Expand the cRIO, then Software, then NI CompactRIO. You should see SSL Support and WebDAV Server listed, as in Figure 1.<br />
<img decoding="async" alt="" class="MobileImage" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Figure-1-1.png"  /><br />
<em>Figure 1: A properly-configured cRIO includes SSL Support and the WebDAV Server.</em><br />
<br />
As long as those are available, you&rsquo;re already configured.<br />
<br />
<strong>Establishing a Connection in Windows</strong><br />
If a WebDAV server is running on the cRIO, then you can connect directly in Windows as if it were a traditional network shared directory. Both Windows 7 and 8 have built-in WebDAV clients. So, let&rsquo;s say the cRIO&rsquo;s IP address is 192.168.10.200 (and your PC is on a subnet with the cRIO):</p>

<ul class="wp-block-list">
 <li>Open Windows Explorer</li>
 <li>In Windows 8, click the Computer menu, then Map Network Drive.</li>
 <li>In Windows 7, press Alt to expose the menu bar, then click Tools, then Map Network Drive.</li>
 <li>Select a drive letter.</li>
 <li>Uncheck Reconnect at logon, since the cRIO may not always be available.</li>
 <li>In the &ldquo;Folder:&rdquo; field, type &ldquo;http://192.168.10.200/files&rdquo;
 <ul class="wp-block-list">
  <li>Use your cRIO&rsquo;s IP address, of course.</li>
  <li>Don&rsquo;t forget the &ldquo;/files&rdquo; at the end! This isn&rsquo;t a placeholder for the filename you&rsquo;re looking for, it is the literal string &ldquo;/files.&rdquo;</li>
 </ul>
 </li>
 <li>Click finish, and give it a second. It will then ask you for a username and password.
 <ul class="wp-block-list">
  <li>These are the same credentials used to log in to the cRIO over SSH, or in NI-MAX.</li>
  <li>By default, the username is &ldquo;admin&rdquo; and the password is blank.</li>
 </ul>
 </li>
 <li>Hit OK, give it another couple seconds, and you should be presented with an Explorer window showing the files on the cRIO&rsquo;s hard drive.</li>
</ul>

<p class="wp-block-paragraph">If this works, then you know WebDAV is working fine on your PC client and your cRIO server.<br />
<br />
<strong>A Few Brief Words about File Paths</strong><br />
Note that you cannot write files anywhere you like on the cRIO&rsquo;s hard drive. If you&rsquo;re familiar with Linux, the hard drive layout will look familiar. /home/lvuser/natinst/bin is where we&rsquo;ll make files in this example. /C/ni-rt/startup is a symbolic link to /home/lvuser/natinst/bin in order to preserve some compatibility with the conventions of older cRIOs. If none of this makes sense to you, don&rsquo;t worry about it, just keep your files in /home/lvuser/natinst/bin until you get it figured out.<br />
<br />
<strong>Transferring files in LabVIEW</strong><br />
If you&rsquo;ve been able to connect in Windows, then you should be able to connect programmatically in LabVIEW. A complete example VI is show below in Figure 2. Note that this VI runs on the PC, so the transfer is in terms of &ldquo;getting&rdquo; the file from the cRIO. The example takes all of its VIs from LabVIEW&rsquo;s WebDAV palette, which you can access from the Data Communication palette &rarr; Protocols palette &rarr; WebDAV palette &rarr; WebDAV Synchronous.<br />
&nbsp;<br />
<em><span id="cke_bm_392S" style="display: none;">&nbsp;</span></em><span id="cke_bm_210S" style="display: none;">&nbsp;</span><img decoding="async" alt="Figure 2: An example VI that transfers a file from the cRIO to the PC, then deletes the file on the cRIO." class="MobileImage" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Figure-2-1.png"  /><span id="cke_bm_210E" style="display: none;">&nbsp;</span></p>

<p class="wp-block-paragraph"><em>F</em><em>igure 2: A demo program that transfers a file from the cRIO to the PC, then deletes the file on the cRIO. Note that this VI runs on the PC side.<span id="cke_bm_392E" style="display: none;">&nbsp;</span></em><br />
<br />
The Asynchronous VIs will also work, but will return before the operation completes. This is nice if you want to tell WebDAV to get multiple files, and then just let your program move on while those transfer in the background. However, in this example, I want to get my file and then delete it from the cRIO. I therefore use the Synchronous VIs so I know the &ldquo;get&rdquo; operation is complete before deleting.<br />
<br />
The important information here is the following:</p>

<ul class="wp-block-list">
 <li>The &ldquo;host uri prefix&rdquo; input of the Open Session VI is exactly the same as what you used to connect in Windows Explorer. Don&rsquo;t forget, you need the literal &ldquo;/files&rdquo; part at the end.</li>
 <li>The &ldquo;username&rdquo; and &ldquo;password&rdquo; inputs of Open Session are the same as what you used in Windows Explorer also.</li>
 <li>The &ldquo;verify server&rdquo; input of Open Session can be used for higher-level authentication, but for the cRIO, set it to false.</li>
 <li>The &ldquo;relative uri&rdquo; input of Get is the path to the file you want to get, using the UNIX file path convention.</li>
 <li>The &ldquo;local file path&rdquo; input of Get is where your file will go on your PC, using the Windows file path convention.
 <ul class="wp-block-list">
  <li>You cannot just give it a directory path. This VI is not smart enough to know that you want to put it there and keep the same filename. Your &ldquo;local file path&rdquo; must be a path ending in a file name.</li>
  <li>It will be happy to overwrite a file on your local drive, if a file already exists at &ldquo;local file path.&rdquo;</li>
 </ul>
 </li>
</ul>

<p class="wp-block-paragraph"><strong>Conclusion</strong><br />
Since the cRIO hosts the WebDAV server, the PC is acting as a client that connects, gets the files it wants, then disconnects. This is completely different than having the cRIO send (or &ldquo;put&rdquo;) files to the PC, but has the advantage of being already configured by default. For more information, see the online manuals for the <a href="http://zone.ni.com/reference/en-XX/help/371361K-01/lvcomm/webdav_sync/" target="_blank">synchronous</a> and <a href="http://zone.ni.com/reference/en-XX/help/371361K-01/lvcomm/webdav_async/" target="_blank">asynchronous</a> VIs.</p>
<p>The post <a href="https://static.dmcinfo.com/blog/26523/using-webdav-to-transfer-files-from-a-linux-crio/">Using WebDAV to Transfer Files from a Linux cRIO</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DMC Congratulates LabVIEW Certified Architects and Developers</title>
		<link>https://static.dmcinfo.com/blog/27141/dmc-congratulates-labview-certified-architects-and-developers/</link>
		
		<dc:creator><![CDATA[Darren Jones]]></dc:creator>
		<pubDate>Thu, 30 Oct 2014 12:30:30 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[Test and Measurement Automation]]></category>
		<category><![CDATA[LabVIEW for Real-Time and FPGA]]></category>
		<category><![CDATA[LabVIEW Vision]]></category>
		<category><![CDATA[Vision Inspection]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/27141/dmc-congratulates-labview-certified-architects-and-developers/</guid>

					<description><![CDATA[<p>As a National Instruments Alliance Member, DMC takes pride in delivering top-notch solutions for all NI related projects. We take our education and the custom solutions we deliver our clients seriously. We have worked particularly hard to maintain a high level of competency in National Instruments LabVIEW programming. DMC is honored to demonstrate our expertise by [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/27141/dmc-congratulates-labview-certified-architects-and-developers/">DMC Congratulates LabVIEW Certified Architects and Developers</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">As a National Instruments Alliance Member, DMC takes pride in delivering top-notch solutions for all NI related projects. We take our education and the custom solutions we deliver our clients seriously. We have worked particularly hard to maintain a high level of competency in National Instruments <a href="/services/test-and-measurement-automation/labview-programming">LabVIEW programming</a>.</p>



<p class="wp-block-paragraph">DMC is honored to demonstrate our expertise by having the most LabVIEW Certified&nbsp;Architects in the Midwest, as well as an all over strong team of LabVIEW&nbsp;Certified engineers.</p>



<p class="wp-block-paragraph">NI has three different levels of LabVIEW Certification: <a href="http://sine.ni.com/nips/cds/view/p/lang/en/nid/14438" target="_blank">Associate Developer</a>, <a href="http://sine.ni.com/nips/cds/view/p/lang/en/nid/10647" target="_blank">Developer</a> and<a href="http://sine.ni.com/nips/cds/view/p/lang/en/nid/13477" target="_blank"> Architect</a>.</p>



<p class="wp-block-paragraph"><p style="text-align: center; line-height: 23.11px; font-size: 13.33px;"><img decoding="async" alt="NI LabVIEW Certifications are pictured here to illustrate heirarchy." src="https://static.dmcinfo.com/wp-content/uploads/2025/05/certified_lv_architect_l.jpg"></p></p>



<p class="wp-block-paragraph">Recently, we added five new engineers to our roster of LabVIEW proficient employees.&nbsp;DMC now has a total of nine Certified LabVIEW Architects, three Certified Professional Instructors, two Certified LabVIEW Developers and three Certified LabVIEW Associate Developers. Check out our full LabVIEW team below:</p>



<p class="wp-block-paragraph">CLAs (Certified LabVIEW Architects):</p>



<ul class="wp-block-list">
<li>Patrick Corcoran </li>



<li>Eric West </li>



<li><a href="/about/employee-bios/ashley-enderlin">Ashley Enderlin</a>&nbsp;</li>



<li><a href="/about/employee-bios/mark-locascio">Mark Locascio</a>&nbsp;</li>



<li><a href="/about/employee-bios/jeremy-green">Jeremy Green</a>&nbsp;</li>



<li>Nick Aroneseno </li>



<li><a href="/about/employee-bios/jesse-batsche">Jesse Batsche</a>&nbsp;</li>



<li><a href="/about/employee-bios/leon-grossman">Leon Grossman</a>&nbsp;</li>



<li><a href="/about/employee-bios/darren-jones">Darren Jones</a>&nbsp;</li>
</ul>



<p class="wp-block-paragraph">CPIs (Certified Professional Instructors)</p>



<ul class="wp-block-list">
<li><a href="/about/employee-bios/darren-jones">Darren Jones</a></li>



<li>Patrick Corcoran</li>



<li>Nick Aroneseno</li>
</ul>



<p class="wp-block-paragraph">CLDs (Certified LabVIEW Developers):</p>



<ul class="wp-block-list">
<li>Matt Goedke</li>



<li><a href="/about/employee-bios/jason-mayes">Jason Mayes</a></li>
</ul>



<p class="wp-block-paragraph">CLADs (Certified LabVIEW Associate Developers):</p>



<ul class="wp-block-list">
<li>Devon Fritz</li>



<li>Bill Sowerine</li>



<li>Elizabeth Rapport</li>



<li>Katherine Czaplicki</li>



<li>Spencer Glesmann</li>
</ul>



<p class="wp-block-paragraph">Learn more about DMC’s <a href="/services/test-and-measurement-automation/labview-programming">LabVIEW programming services</a>.</p>
<p>The post <a href="https://static.dmcinfo.com/blog/27141/dmc-congratulates-labview-certified-architects-and-developers/">DMC Congratulates LabVIEW Certified Architects and Developers</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>New FPGA Tools from NI and Xilinx at NI Week 2013</title>
		<link>https://static.dmcinfo.com/blog/28156/new-fpga-tools-from-ni-and-xilinx-at-ni-week-2013/</link>
		
		<dc:creator><![CDATA[Mark Locascio]]></dc:creator>
		<pubDate>Mon, 12 Aug 2013 11:48:14 +0000</pubDate>
				<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[Test and Measurement Automation]]></category>
		<category><![CDATA[LabVIEW for Real-Time and FPGA]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/28156/new-fpga-tools-from-ni-and-xilinx-at-ni-week-2013/</guid>

					<description><![CDATA[<p>There&#8217;s plenty to love about the field-programmable gate array, or FPGA. It is essentially a customizable silicon chip that you can reprogram as many times as you want or need to in order to achieve specialized high-speed processing. In many cases, you may have a low-volume product for which an application-specific integrated circuit (ASIC) would [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/28156/new-fpga-tools-from-ni-and-xilinx-at-ni-week-2013/">New FPGA Tools from NI and Xilinx at NI Week 2013</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">There&#8217;s plenty to love about the field-programmable gate array, or <a href="/services/test-and-measurement-automation/labview-programming-for-real-time-and-fpga">FPGA</a>. It is essentially a customizable silicon chip that you can reprogram as many times as you want or need to in order to achieve specialized high-speed processing. In many cases, you may have a low-volume product for which an application-specific integrated circuit (ASIC) would be prohibitively expensive. An FPGA is simply a generic grid of logical units on the chip that can be interconnected programmatically, allowing you to program the logic to suit your needs.</p>



<p class="wp-block-paragraph">That capability is extremely powerful. A hardware implementation of any particular algorithm is generally faster than a software implementation. FPGAs reap the speed benefits of hardware processing, but also give an engineer the ability to not only program a generic silicon die, but to reprogram it to fix bugs or improve performance. Furthermore, given enough space on the array, multiple stages of a calculation can be processed at once, either purely in parallel, or in a pipeline.</p>



<p class="wp-block-paragraph">Designing the gate layout of an FPGA may seem daunting, but it is, of course, not done by hand. In fact, during <a href="https://static.dmcinfo.com/blog/28173/dmc-at-ni-week-2013/">NI Week 2013</a>, National Instruments has held a number of helpful information sessions that introduce the tools available for specifying that layout. To begin, <a href="http://www.ni.com/labview/" target="_blank">LabVIEW</a> itself has supported FPGA programming using a subset of its G programming language since 2003. A LabVIEW programmer can simply write an algorithm using a constrained set of functions, and LabVIEW will interface with <a href="http://www.xilinx.com/" target="_blank">Xilinx</a> software to produce the hardware description that will then be used to define the connections on the chip.</p>



<p class="wp-block-paragraph">Due to the nature of FPGAs, however, familiar programming constructs such as loops, array operations, and floating-point operations must be used sparingly, if at all. Writing truly optimized algorithms can be tedious and error-prone, and writing un-optimized algorithms may waste a lot of gates unnecessarily, restricting the throughput and decreasing the amount of parallel processing that can be done.</p>



<p class="wp-block-paragraph">One of the tools NI introduced at NI Week 2013 was the <a href="http://www.ni.com/white-paper/14036/en/" target="_blank">LabVIEW IP Builder</a>, which features optimization technology from Xilinx. IP Builder provides more access to typical programming features, using smart algorithms to apply pipelining, loop-unrolling, and parallelization rules to standard LabVIEW algorithms. This way, you only need to make a few tweaks to your programming style to write an FPGA-friendly algorithm.</p>



<p class="wp-block-paragraph">The rest of the optimization is achieved by specifying &#8220;directives&#8221; that tell IP Builder which optimizations you&#8217;d like to apply. On FPGAs, multiplier circuits are scarce. If you know that your algorithm needs them, but simultaneous uses are not possible, you can instruct the algorithm to use the same multiplier in several parts of the code to conserve that resource. Perhaps you know that your algorithm takes arrays as inputs, but that the entire array isn&#8217;t needed all at once. Directing the hardware synthesis in this way allows IP Builder to properly allocate the FPGA&#8217;s resources and increase throughput.</p>



<p class="wp-block-paragraph">The crowd chimed in with a few good tips and design practices. Some optimizations due to poorly chosen directives can cause your algorithm to behave differently than intended. It was recommended that you run an un-optimized version of the FPGA code and compare it to an optimized version to ensure that the algorithm&#8217;s output is as expected. This is especially true if the algorithm requires conversions from fixed-point to floating-point values. The FPGA experts agreed that IP Builder could be a valuable tool for computing polynomials, FIR filters, integrators, and the like.</p>



<p class="wp-block-paragraph">Xilinx has also developed a new &#8220;system on a chip&#8221; (SoC) called <a href="http://www.xilinx.com/content/xilinx/en/products/silicon-devices/soc/zynq-7000.html" target="_blank">Zynq</a>, which couples two ARM processor cores with an FPGA on a single die. Zynq is featured on NI&#8217;s new cRIO-9068. Combining general-purpose CPUs and a dedicated FPGA on the same chip means the parts can all easily exchange data. Certain parts of the code can be taken off the CPU, and the burden placed on the FPGA, allowing both to focus on tasks for which they are most capable, and generating significant performance improvements all around.</p>



<p class="wp-block-paragraph">The significant improvement in usability and performance makes FPGAs even more attractive. We&#8217;re looking forward to giving these new technologies a test drive here in the DMC offices!</p>



<p class="wp-block-paragraph"><a href="https://static.dmcinfo.com/blog/28173/dmc-at-ni-week-2013/">DMC at NI Week 2013</a></p>



<p class="wp-block-paragraph"><a href="https://static.dmcinfo.com/blog/28153/ni-week-2013-recap/">NI Week 2013 Recap</a></p>



<p class="wp-block-paragraph"><strong><a href="/services/test-and-measurement-automation/labview-programming-for-real-time-and-fpga">Learn more about DMC&#8217;s LabVIEW programming for real-time and FPGA expertise.</a></strong></p>
<p>The post <a href="https://static.dmcinfo.com/blog/28156/new-fpga-tools-from-ni-and-xilinx-at-ni-week-2013/">New FPGA Tools from NI and Xilinx at NI Week 2013</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>National Instruments Real-Time Target Asset Management</title>
		<link>https://static.dmcinfo.com/blog/28836/national-instruments-real-time-target-asset-management/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Tue, 07 Aug 2012 14:50:51 +0000</pubDate>
				<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Test and Measurement Automation]]></category>
		<category><![CDATA[DAQ Hardware]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[LabVIEW for Real-Time and FPGA]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Vision Inspection]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/28836/national-instruments-real-time-target-asset-management/</guid>

					<description><![CDATA[<p>As the popularity of modular instruments grows in R&amp;D development spaces, National Instruments technology, particularly Real-Time and FPGA hardware, is becoming more and more common in volume test, manufacturing, and control applications. As the number of hardware products grows in a given deployment, so too does the task of asset management.&#160; The aim of this [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/28836/national-instruments-real-time-target-asset-management/">National Instruments Real-Time Target Asset Management</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">As the popularity of modular instruments grows in R&amp;D development spaces, National Instruments technology, particularly Real-Time and FPGA hardware, is becoming more and more common in volume test, manufacturing, and control applications. As the number of hardware products grows in a given deployment, so too does the task of asset management.&nbsp;</p>



<p class="wp-block-paragraph">The aim of this discussion is to outline key questions that will be helpful in selecting and asset management solution for projects involving multiple National Instruments targets. I have taken specific focus on Real-Time and FPGA platforms, as they are most commonly deployed in large quantities. Let’s begin with some basic understanding of asset management:</p>



<h2 class="wp-block-heading" id="h-what-is-asset-management">What is asset management?</h2>



<p class="wp-block-paragraph">Asset management is generically described as a system that monitors valuable resources.</p>



<p class="wp-block-paragraph">In large volume deployments, it is critical to have an understanding of the state of critical components to properly maintain and optimize the uptime of a given system. For example, a common application of asset management technology surrounds fleet vehicles. For a large number of vehicles, say sanitation trucks, a central monitoring system is often used to monitor routes, break downs, and track maintenance schedules which ensure each vehicle is optimized for continuous use.</p>



<h2 class="wp-block-heading" id="h-how-does-asset-management-relate-to-national-instruments">How does asset management relate to National Instruments?</h2>



<p class="wp-block-paragraph">As larger volume systems are deployed, groupings of PXI controllers, multiple cRIO embedded systems, OEM SBRIO integrated products; it becomes critical to understand the technology available within the LabVIEW platform that describes a given target, and grants the ability to manage it. National Instruments customers are familiar with Measurement and Automation Explorer, which is NI’s approach to asset management in smaller lab settings.</p>



<p class="wp-block-paragraph"><strong>CHALLENGE:</strong></p>



<p class="wp-block-paragraph">Refresh the Remote Systems sub-section of MAX with 10+ Real Time Targets connected to a network. Configure their IP addresses to place them in a common subnet.</p>



<p class="wp-block-paragraph"><strong>EXTRA CREDIT:</strong></p>



<p class="wp-block-paragraph">Update each of those targets to run the same version of LabVIEW Real-Time and your custom program.</p>



<p class="wp-block-paragraph">If you accepted my challenge and were emboldened to complete the extra credit, you will note that this task is tedious, time-consuming, and not optimal for long term support procedures.</p>



<h2 class="wp-block-heading" id="h-what-are-my-options-for-managing-large-deployments-of-ni-real-time-targets">What are my options for managing large deployments of NI Real-Time Targets?</h2>



<p class="wp-block-paragraph">National Instruments released its first response to the question of asset management in 2010. The <a href="https://decibel.ni.com/content/docs/DOC-13216">System Configuration API</a>&nbsp;is a suite of programmatic tools designed to allow access to target information through driver level experts. This API directly exposes the nature of a given targets configuration for consumption by a given application.</p>



<p class="wp-block-paragraph">Now, to answer your first question, yes this directly leads to custom code development. There is not currently an offering by National Instruments that acts as a robust central monitoring service for Real-Time Targets. However, the <a href="https://decibel.ni.com/content/docs/DOC-13216">System Configuration API </a>can be coupled with the power of <a href="http://www.ni.com/white-paper/7350/en">LabVIEW Web Services</a>&nbsp;to create a highly scalable framework for asset management.</p>



<p class="wp-block-paragraph"><p style="text-align: center;"><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/RT-Asset-Example-Revised.jpg"></p></p>



<p class="wp-block-paragraph">By utilizing the power of Web Services, native to LabVIEW, the System Configuration API can populate Restful Web Services that provide agnostic connectivity any number of Commercial Off the Shelf (COTS) asset management tools. As NI hardware can now be described in common XML, it may be addressable by any subsystem that can provide/consume Restful Web Methods. Some example technologies include <a href="/services/digital-workplace-solutions/microsoft-consulting-services">Microsoft SQL Server/Sharepoint</a>, Oracle, and IBM.</p>



<h2 class="wp-block-heading" id="h-how-do-i-calculate-my-return-on-investment-roi-for-an-asset-management-solution">How do I calculate my Return on Investment (ROI) for an asset management solution?</h2>



<p class="wp-block-paragraph">As National Instruments does not offer a comprehensive solution for asset management, there is a significant time investment required to implement a scalable and robust infrastructure. Things to always consider at the beginning of development:</p>



<ol class="wp-block-list">
<li>How many systems do I anticipate deploying?</li>



<li>Will my deployment be locally networked, or globally deployed?</li>



<li>What is the impact of a single failure? Multiple failures? Fault detection time?</li>



<li>What is the anticipated maintenance requirement for a deployed system?</li>



<li>How often might this system require updates during field use?</li>



<li>What is the cost of continuous field personnel versus remote monitoring application software?</li>



<li>What type of system security must be maintained?</li>
</ol>



<p class="wp-block-paragraph">It’s important to point out that smaller subsystems have a number of options for basic application management. National Instruments systems engineering has produced a reference design for image management on Real-Time targets. The <a href="https://decibel.ni.com/content/docs/DOC-10295">Real Time Application Deployment Utility </a>offers a comprehensive example of how application software can be managed and maintained for multiple targets. This solution, however, does have a number of scaling concerns, especially as network complexity increases.&nbsp;</p>



<p class="wp-block-paragraph">As deployed systems and embedded targets become common place, National Instruments hardware will require integration with more scalable and maintainable solutions than Measurement and Automation Explorer. The joining of the <a href="https://decibel.ni.com/content/docs/DOC-13216">System Configuration API </a>and native <a href="http://www.ni.com/white-paper/7350/en">LabVIEW Web Services </a>begins to offer developers and system administrators a pathway to integrating National Instruments hardware into common asset management technologies.&nbsp;</p>



<h2 class="wp-block-heading" id="h-further-reading">Further Reading</h2>



<p class="wp-block-paragraph"><a href="https://decibel.ni.com/content/docs/DOC-13216">Welcome to the NI System Configuration API</a></p>



<p class="wp-block-paragraph"><a href="https://decibel.ni.com/content/docs/DOC-10295">LabVIEW Real-Time Application Deployment (RTAD) Reference Application</a></p>



<p class="wp-block-paragraph"><a href="https://partner.microsoft.com/en-us/licensing/software-asset-management.">Microsoft Software Asset Management</a></p>



<p class="wp-block-paragraph"><a href="/services/digital-workplace-solutions/microsoft-consulting-services/sharepoint">SharePoint Consulting Services</a></p>



<p class="wp-block-paragraph"><a href="/services/digital-workplace-solutions/microsoft-consulting-services/sharepoint/dashboards">SharePoint Dashboards</a></p>



<p class="wp-block-paragraph">&nbsp;</p>



<p class="wp-block-paragraph"><strong><a href="/services/test-and-measurement-automation/labview-programming-for-real-time-and-fpga">Learn more about DMC&#8217;s LabVIEW programming for real-time and FPGA services.</a></strong></p>
<p>The post <a href="https://static.dmcinfo.com/blog/28836/national-instruments-real-time-target-asset-management/">National Instruments Real-Time Target Asset Management</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>RT-201: PLCs vs. Real-Time Systems</title>
		<link>https://static.dmcinfo.com/blog/29861/rt-201-plcs-vs-real-time-systems/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Tue, 27 Apr 2010 07:13:32 +0000</pubDate>
				<category><![CDATA[Embedded Development & Programming]]></category>
		<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[PLC]]></category>
		<category><![CDATA[Test and Measurement Automation]]></category>
		<category><![CDATA[DAQ Hardware]]></category>
		<category><![CDATA[LabVIEW for Real-Time and FPGA]]></category>
		<category><![CDATA[Vision Inspection]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/29861/rt-201-plcs-vs-real-time-systems/</guid>

					<description><![CDATA[<p>In RT-101: Real-Time Operating Systems (RTOS), I provided readers with a brief description of the many benefits that systems running an RTOS can provide in harsh and demanding environments. The bigger question is: in an industry saturated by PLCs (Programmable Logic Controllers), PACs (Programmable Automation Controllers), Field Point controllers, Microcontrollers and many others, why should [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/29861/rt-201-plcs-vs-real-time-systems/">RT-201: PLCs vs. Real-Time Systems</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In <a href="https://static.dmcinfo.com/blog/30006/rt-101-real-time-operating-systems-rtos/">RT-101: Real-Time Operating Systems (RTOS)</a>, I provided readers with a brief description of the many benefits that systems running an RTOS can provide in harsh and demanding environments. The bigger question is: in an industry saturated by PLCs (<a href="http://en.wikipedia.org/wiki/Programmable_logic_controller" target="_blank">Programmable Logic Controllers</a>), PACs (Programmable Automation Controllers), Field Point controllers, Microcontrollers and many others, why should an engineer choose an RTOS PAC (Programmable Automation Controller) platform above all the rest? To address this issue we will take a look at a comparison between two distinct camps Programmable Logic Controllers and RTOS Programmable Automation Controllers.</p>



<h3 class="wp-block-heading" id="h-plc-history">PLC History</h3>



<p class="wp-block-paragraph">Traditional PLC platforms are based on a reliable and easy to use scanning architecture. PLC software has historically been confined to a sequence of scanning inputs, running control code, updating outputs, and performing housekeeping functions. Automation programmers only develop the control code because the other functions (input cycles, output cycles, and housekeeping cycles) are all concealed. This rigid architecture allows engineers to quickly and efficiently design and program basic control systems. However, the PLC’s greatest strength, a robust and rigid scanning architecture, can become its most obvious weakness, inflexibility when custom applications require advanced operations.</p>



<h3 class="wp-block-heading" id="h-pac-advances">PAC Advances</h3>



<ul class="wp-block-list">
<li>Incorporate extremely high speed measurements (hundreds of thousands or millions of samples per second)</li>



<li>Vision acquisition and processing</li>



<li>Software defined hardware (by incorporating <a href="http://www.ni.com/fpga/" target="_blank">FPGA</a>, field programmable gate arrays)</li>
</ul>



<p class="wp-block-paragraph">Most important, a Real-Time PAC platform can incorporate vision, high speed measurements and other data acquisition with logic and motion control and eliminate the need for engineers to integrate multiple dissimilar hardware and software platforms. Instead, all these functions are designed and programmed within a single software environment. This makes RTOS PAC software adaptable and appropriate for complex applications that require advanced structures, programming techniques, or hardware level control, but more difficult for basic applications.</p>



<h3 class="wp-block-heading" id="h-summary">Summary</h3>



<p class="wp-block-paragraph">The “<a href="http://en.wikipedia.org/wiki/Pareto_principle" target="_blank">80/20 rule</a>” can be used to simplify this dilemma. In general, 80 percent of industrial automation tasks can be efficiently completed using a basic PLC to provide digital I/O, a small number of analog I/O points, and generic programming techniques (i.e. ladder logic). The other 20 percent of applications, however, require advanced programming algorithms, extremely high loop rates, deterministic execution, and access to low level hardware drivers for customization. Programmable Automation Controllers running Real-Time operating system are designed for the “20 percenters” who need more freedom and functionality to solve complex control problems.</p>



<p class="wp-block-paragraph"><a href="https://static.dmcinfo.com/blog/29877/rt-301-capabilities-of-distributed-labview-real-time/">RT-301: Capabilities of Distributed LabVIEW Real-Time</a></p>



<p class="wp-block-paragraph"><a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/">Learn more about DMC&#8217;s LabVIEW programming for Real-Time and </a>FPGA.</p>
<p>The post <a href="https://static.dmcinfo.com/blog/29861/rt-201-plcs-vs-real-time-systems/">RT-201: PLCs vs. Real-Time Systems</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>RT-301: Capabilities of Distributed LabVIEW Real-Time</title>
		<link>https://static.dmcinfo.com/blog/29877/rt-301-capabilities-of-distributed-labview-real-time/</link>
		
		<dc:creator><![CDATA[Darren Jones]]></dc:creator>
		<pubDate>Thu, 22 Apr 2010 13:05:07 +0000</pubDate>
				<category><![CDATA[Embedded Development & Programming]]></category>
		<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[PLC]]></category>
		<category><![CDATA[Test and Measurement Automation]]></category>
		<category><![CDATA[DAQ Hardware]]></category>
		<category><![CDATA[LabVIEW for Real-Time and FPGA]]></category>
		<category><![CDATA[Vision Inspection]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/29877/rt-301-capabilities-of-distributed-labview-real-time/</guid>

					<description><![CDATA[<p>Eric Nielsen’s Real Time blog did a good job of hitting the major strengths and benefits of any system based on a controller running a Real-time operating system. Here I’ll get into a little more depth, specifically for the capabilities these systems give in regards to distributed execution. As we’ve learned, the major benefits of [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/29877/rt-301-capabilities-of-distributed-labview-real-time/">RT-301: Capabilities of Distributed LabVIEW Real-Time</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Eric Nielsen’s <a href="https://static.dmcinfo.com/blog/30006/rt-101-real-time-operating-systems-rtos/">Real Time blog</a> did a good job of hitting the major strengths and benefits of any system based on a controller running a Real-time operating system. Here I’ll get into a little more depth, specifically for the capabilities these systems give in regards to distributed execution.</p>



<p class="wp-block-paragraph">As we’ve learned, the major benefits of running a Real-Time system are determinism and robust operation. These benefits can be realized in a very powerful way: distributed execution. Distributed execution allows the programmer to separate tasks by function and by level of criticality. A necessary component to keep things going is a good communication structure, allowing independent pieces to share information and status. One simple analogy for distributed execution can be found in your home. Your household appliances perform well because they have two important qualities: simple on the outside but complex (yet capable!) on the inside.</p>



<p class="wp-block-paragraph"><strong>Capabilities</strong></p>



<ul class="wp-block-list">
<li>Independent operation of critical sub-systems</li>



<li>Highly available data collection</li>



<li>Task dedication</li>
</ul>



<p class="wp-block-paragraph">Many capabilities are realized with dependable, asynchronous nodes. For one, they allow <strong>independent control and monitoring of critical systems</strong>. A real-time controller can be put in place to monitor safe/unsafe conditions in a variety of environments, including a manufacturing line, an R&amp;D facility, or out in the field. Following the home analogy, the fire alarm in your home should “just work”, providing monitoring and alarming around the clock, with a simple and effective interface.</p>



<p class="wp-block-paragraph">Another capability is ongoing and <strong>highly-available data collection</strong>. “Availability” is an important concept in reliability theory that indicates the level to which a system is operable and in a committed state. There are many applications that require highly-available data collection. For example, performing potentially destructive testing on a one-of-a-kind sample is a one-time deal—if you miss it (or lose the data), you’re out of luck and often back to building another potentially very expensive sample. This concern is even more important when the test needs to run around-the-clock, and any datapoint along the test could be valuable.</p>



<p class="wp-block-paragraph"><strong>Task dedication</strong> is another important capability. The safety system I discussed above will continue to run even when other nodes on the system are compromised. Larger systems can have many parallel operations, from a higher supervisory level to low level execution. Separating these tasks to independent devices allows for continuity of operation when other parts may be under maintenance, upgrade, or error condition.</p>



<p class="wp-block-paragraph">We at DMC are avid users and experts in <a href="http://www.ni.com/" target="_blank">National Instruments</a> LabVIEW for Real-time, which can run on a variety of platforms including PXI, compactRIO (cRIO), PC, Embedded Vision System, Smart Cameras, and more. We’ve employed these tools successfully in a variety of projects, including the following Case Studies:</p>



<p class="wp-block-paragraph"><a href="https://static.dmcinfo.com/our-work/appliance-test-system-with-power-measurements/">Appliance Test System with Power Measurements </a></p>



<p class="wp-block-paragraph"><a href="https://static.dmcinfo.com/our-work/explosion-proof-equipment-testing-with-labview/">Explosion-proof Equipment Testing with LabVIEW</a></p>



<p class="wp-block-paragraph"><a href="https://static.dmcinfo.com/our-work/labview-programming/">LabVIEW Programming</a></p>
<p>The post <a href="https://static.dmcinfo.com/blog/29877/rt-301-capabilities-of-distributed-labview-real-time/">RT-301: Capabilities of Distributed LabVIEW Real-Time</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
