<?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 Vision Archives | DMC, Inc.</title>
	<atom:link href="https://static.dmcinfo.com/blog/tag/labview-vision/feed/index.xml" rel="self" type="application/rss+xml" />
	<link></link>
	<description></description>
	<lastBuildDate>Fri, 21 Aug 2026 14:58:20 +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 Vision Archives | DMC, Inc.</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Pool Vision Application</title>
		<link>https://static.dmcinfo.com/blog/25530/pool-vision-application/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Fri, 10 Jun 2016 14:14:43 +0000</pubDate>
				<category><![CDATA[Culture]]></category>
		<category><![CDATA[Denver]]></category>
		<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[LabVIEW Vision]]></category>
		<category><![CDATA[Vision Inspection]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/25530/pool-vision-application/</guid>

					<description><![CDATA[<p>Every DMC office has at least one table sport at its heart. For Denver, this game is pool. So on FedEx Day 2016 Otto, Tyler, and I set out to automate our office Spencer Marston pool table. What does this look like you may ask? Our goal was to automatically detect what pool balls remain on [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/25530/pool-vision-application/">Pool Vision Application</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Every DMC office has at least one table sport at its heart. For <a href="https://static.dmcinfo.com/contact/dmc-denver" target="_blank">Denver</a>, this game is pool. So on <a href="https://static.dmcinfo.com/latest-thinking/blog/id/9214/fedex-day-2016" target="_blank">FedEx Day 2016 </a>Otto, Tyler, and I set out to automate our office Spencer Marston pool table. What does this look like you may ask? Our goal was to automatically detect what pool balls remain on the table. So during our 3-way, 5-way, or even 7-way cut throat games we don&#8217;t have to worry about what balls are sunk and what balls are not.</p>



<p class="wp-block-paragraph"><br>
&nbsp;<br>
Preparation was key for this project. We selected a camera, chose a software plan of attack, mounted the camera, played some pool to &#8220;test&#8221;, and created a camera driver. The camera chosen was a basic webcam with a 90 degree field of view and 1080p resolution. This made for a wide enough image to capture the pool table felt and the rails. The chosen software was <a href="https://static.dmcinfo.com/services/test-and-measurement-automation/labview-programming" target="_blank">LabVIEW</a> as DMC has experience using <a href="https://static.dmcinfo.com/about/partners/ni-alliance-partner" target="_blank">NI&#8217;s</a> versatile VAS and VDM software libraries with an integration to our existing custom Java based pool application. Once we wrote the driver we were able to start on algorithm development on FedEx Day.</p>



<p class="wp-block-paragraph"><br>
&nbsp;<br>
The following software was developed on FedEx Day: Software Architecture/Application, Calibration Algorithms, Ball Location Algorithm, Ball Color and Pattern Algorithm, &#8220;Active Shooter&#8221; Algorithm. The architecture utilized a Producer/Consumer architecture with a single state machine to collect an image and determine the state of the pool table. Each ball was calibrated by snapping an image of the ball to get a known representation of each balls RGB value and whiteness. Each balls location was detected by HSB differences between a ball and the felt. Based on the calibration images captured for each ball, the RGB best match of each detected ball was matched to the corresponding calibrated ball. The pattern of a ball, striped vs. solid, was determined by white content of each detected ball. More white meant striped and less meant solid; lots of white meant the cue ball. To determine when to analyze the state of the pool table, an algorithm was written to detect whether a player was shooting and therefore blocking the camera&#8217;s view of all the balls.&nbsp;</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/DSC_0012-RE.jpg" alt="Pool app "/></figure>



<p class="wp-block-paragraph">After a day of programming, we did it! The system correctly identified the location of the balls and what balls were left on the table. However, there were some challenges along the way. Lighting, RGB vs. HSB and the USB standard just to name a few. As always, lighting is very important in vision applications. The issue we ran into was shadowing around each ball. The shadowing ruined the RGB color measurement around the edges of the ball which could lead to incorrect ball color detection. HSB is a valuable domain to work in and was useful in distinguishing between the felt of the table and the color of the balls. As far as the USB standard issue, we used a USB webcam for the proof of concept. Although not a devastating issue, we needed to shorten our USB connection to the camera to be under 5 meters since our initial cable was longer and caused camera connection issues.</p>



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



<p class="wp-block-paragraph">There are a lot of fun future applications we can do now that we can detect what balls remain on the table. The next major step will be to integrate it with our existing 3/5-way cutthroat application to automatically update what balls are sunk. If you have any fun ideas let me know by posting them below!<br>
&nbsp;</p>
<p>The post <a href="https://static.dmcinfo.com/blog/25530/pool-vision-application/">Pool Vision Application</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>LabVIEW VAS Camera Timeout Fix</title>
		<link>https://static.dmcinfo.com/blog/26383/labview-vas-camera-timeout-fix/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Tue, 18 Aug 2015 16:26:14 +0000</pubDate>
				<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[Test and Measurement Automation]]></category>
		<category><![CDATA[LabVIEW Vision]]></category>
		<category><![CDATA[Vision Inspection]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/26383/labview-vas-camera-timeout-fix/</guid>

					<description><![CDATA[<p>Every so often, a software package update/patch&#8217;s readme notes become really important for a project. To save you from diving into the readme notes for the LabVIEW VAS package, I wanted to highlight a bug I fell prone to. Integrating vision into your application can include difficulties. NI MAX does a good job of addressing [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/26383/labview-vas-camera-timeout-fix/">LabVIEW VAS Camera Timeout Fix</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Every so often, a software package update/patch&#8217;s readme notes become really important for a project. To save you from diving into the readme notes for the LabVIEW VAS package, I wanted to highlight a bug I fell prone to.<br>
<br>
Integrating vision into your application can include difficulties. NI MAX does a good job of addressing one of the challenges with vision systems by smoothly bringing in camera data to the LabVIEW environment. The bug I experienced was a timeout of a USB3 camera after stopping and restarting the data acquisition (specifically the error was: -1074360261: Unknown USB3 Vision Error). The solution was not found in my code, but was instead to update to the latest software version (February 2015 VAS). NI had known of this short-coming for the newer USB3 standard and had applied a patch.<br>
<br>
This patch is the first line-item fix in the February 2015 VAS <a href="http://download.ni.com/support/softlib/vision/Vision%20Acquisition%20Software/February%202015/VisionAcqReleaseNotes.html" target="_blank">readme notes</a>. Hopefully this was the problem you are dealing with. If not, try checking out the rest of the patches and keeping your eye on new readme releases.</p>



<p class="wp-block-paragraph">Interested in having us help with your integration? Here are some <a href="/latest-thinking/case-studies/category/67/machine-vision" type="link" id="/latest-thinking/case-studies/category/67/machine-vision">projects we have done</a> to integrate vision into LabVIEW!</p>



<p class="wp-block-paragraph"><a href="/services/test-and-measurement-automation/labview-vision-application-development"><strong>Learn more about DMC&#8217;s LabVIEW Vision Application Development services.</strong></a></p>
<p>The post <a href="https://static.dmcinfo.com/blog/26383/labview-vas-camera-timeout-fix/">LabVIEW VAS Camera Timeout Fix</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>High-Speed Vision Inspection Presentation at NIWeek 2014</title>
		<link>https://static.dmcinfo.com/blog/27322/high-speed-vision-inspection-presentation-at-niweek-2014/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Thu, 21 Aug 2014 13:19:15 +0000</pubDate>
				<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[Test and Measurement Automation]]></category>
		<category><![CDATA[LabVIEW Vision]]></category>
		<category><![CDATA[Packaging Machinery Programming]]></category>
		<category><![CDATA[Vision Inspection]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/27322/high-speed-vision-inspection-presentation-at-niweek-2014/</guid>

					<description><![CDATA[<p>This year at National Instrument&#8217;s annual conference, NIWeek, DMC was invited to present on &#8220;Real-world Techniques in High-Speed Vision Inspection.&#8221; DMC is an NI Silver Alliance member with a specialization in vision. Ken Brey and I are Certified Vision Professionals and were excited for the chance to share some of the knowledge and experience we [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/27322/high-speed-vision-inspection-presentation-at-niweek-2014/">High-Speed Vision Inspection Presentation at NIWeek 2014</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">This year at National Instrument&#8217;s annual conference, NIWeek, DMC was invited to present on &#8220;<a href="https://www.slideshare.net/DMCChicago/dmc-ni-week-2014-high-speed-vision" target="_blank">Real-world Techniques in High-Speed Vision Inspection</a>.&#8221; DMC is an NI Silver Alliance member with a specialization in vision. Ken Brey and I are <a href="/latest-thinking/blog/id/8572/dmcs-certified-vision-professionals">Certified Vision Professionals</a> and were excited for the chance to share some of the knowledge and experience we have gained through <a href="/latest-thinking/blog/articletype/categoryview/categoryid/28/vision-inspection">various</a> <a href="https://static.dmcinfo.com/our-work/high-speed-pharmaceutical-vision-inspection/">vision</a> <a href="https://static.dmcinfo.com/our-work/high-speed-pharmaceutical-vision-inspection-with-ni-vision/">inspection</a> projects. We worked together with Dan McCarty, Sr. Software Manager at <em>W.H. Leary Co.</em> to create a presentation highlighting lessons learned from projects such as the vision inspection systems we have helped W.H. Leary create.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Trier-Pre-1-Overlaid-Pass-rotated_edited.jpg" alt="A photo of the glue lines on a beer pack carton."/></figure>



<p class="wp-block-paragraph">In case you didn&#8217;t make it to NIWeek or weren&#8217;t able to join us on August 6, we have posted the presentation to <a href="https://www.slideshare.net/DMCChicago/dmc-ni-week-2014-high-speed-vision" target="_blank">SlideShare</a>. During the presentation, Dan reviewed the many challenges that Leary faces in the folding carton industry. For example, ensuring that glue is properly applied to more than 30 separate locations on a complicated six-pack beer carrier was essentially impossible without a machine vision system. This is especially true considering the folder-gluer can process 10 to 50 cartons per second depending on the size of the carton.</p>



<p class="wp-block-paragraph">After Dan presented the challenges associated with the high-speed folding carton industry, Ken and I rose to these challenges and presented some theories on designing a vision system. We explained that our favorite hardware platform for high-speed, multi-camera, 100% up-time, machine vision systems is a PC running NI&#8217;s <a href="http://www.ni.com/labview/realtime/" target="_blank">real-time operating system</a>. This system is connected to standard cameras as opposed to a <a href="http://www.ni.com/vision/smartcamera/" target="_blank">smart camera</a> which performs image inspection using an onboard processor.</p>



<p class="wp-block-paragraph">For many of our vision inspection projects NI&#8217;s FPGA cards and expansion chassis have been critical tools for controlling digital inputs and outputs for camera triggering and encoder tracking. Though we mainly focused on giving tips on using the FPGA in this way, I&#8217;m also excited about the new tools in the <a href="http://www.ni.com/white-paper/52174/en/" target="_blank">2014 Vision Development Module</a> that make it easy to offload some intensive image processing algorithms to an FPGA. We did not discuss this in our presentation because it is a brand new feature that was just unveiled at NIWeek 2014. I&#8217;m eager to use it in future projects.</p>



<p class="wp-block-paragraph">We also shared some of the random bits of knowledge we have picked up from experience on these projects. Some of my favorite &#8220;Knowledge Nuggets&#8221; are:</p>



<ul class="wp-block-list">
<li>Avoid creating and destroying image references. Use a static pool of image references that you create once when the program initializes.</li>



<li>Use integer math instead of floating point math where possible. We demonstrated a 2.5x increase in processing speed for the same mathematical calculation using integers compared to double-precision numbers.</li>



<li>Use the VI Profiler tool to determine which VIs are taking the most time to execute. This is how we discovered that some of our VIs were spending too much time creating and destroying image references.</li>
</ul>



<p class="wp-block-paragraph">Overall, the presentation went well and was well-received by the audience. I hope that audience members gained some useful tips that they can use on their own projects.</p>



<p class="wp-block-paragraph">NIWeek 2014 had a vision summit that included some other interesting announcements. I already mentioned the <a href="http://www.ni.com/white-paper/52174/en/" target="_blank">FPGA Vision IP</a> that I am excited to use. Another great new product is the <a href="http://www.ni.com/white-paper/9337/en/" target="_blank">cRIO with integrated display</a> for user interfaces. NI&#8217;s real-time operating system is great for high-speed vision inspection that requires 100% availability and reliable, deterministic processing. The only downside was that there was no way to program an interface in the real-time operating system. Our other RT vision systems use a separate PC (typically running Windows) to serve as the HMI, communicating with the RT PC via TCP protocols. Now, we can streamline our development by integrating the HMI into the real-time program. Good job, NI!</p>
<p>The post <a href="https://static.dmcinfo.com/blog/27322/high-speed-vision-inspection-presentation-at-niweek-2014/">High-Speed Vision Inspection Presentation at NIWeek 2014</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Improved Straight Edge Fitting in LabVIEW Vision Applications</title>
		<link>https://static.dmcinfo.com/blog/27737/improved-straight-edge-fitting-in-labview-vision-applications/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Fri, 28 Feb 2014 15:21:52 +0000</pubDate>
				<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[Test and Measurement Automation]]></category>
		<category><![CDATA[LabVIEW Vision]]></category>
		<category><![CDATA[Vision Inspection]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/27737/improved-straight-edge-fitting-in-labview-vision-applications/</guid>

					<description><![CDATA[<p>When writing a vision application, it’s easy to imagine noise within an image as a sinister character hiding in the shadows and fingering the end of a grease-slick mustache. &#8220;That’s a nice straight line you have there,&#8221; his voice nasally dripping with malice. &#8220;It would be a shame if anything happened to it.&#8221; The problem [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/27737/improved-straight-edge-fitting-in-labview-vision-applications/">Improved Straight Edge Fitting in LabVIEW Vision Applications</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">When writing a vision application, it’s easy to imagine noise within an image as a sinister character hiding in the shadows and fingering the end of a grease-slick mustache. &#8220;That’s a nice straight line you have there,&#8221; his voice nasally dripping with malice. &#8220;It would be a shame if anything happened to it.&#8221;</p>



<p class="wp-block-paragraph">The problem is, he&#8217;s right.</p>



<p class="wp-block-paragraph"><a href="/services/test-and-measurement-automation">LabVIEW</a> has a suite of powerful vision tools, most of which work fantastically well out-of-the-box. <a href="http://zone.ni.com/reference/en-XX/help/370281P-01/imaqvision/imaq_find_straight_edges_3/" target="_blank" rel="noreferrer noopener">IMAQ Find Straight Edges 3</a> is unfortunately not one of them. It takes an image, a region of interest (ROI), some fitting parameters, and generates an array of rake points. Those rake points are used as the inputs to a linear fit, and if the fit is sufficiently good, it is presented as the output. There are a few fitting options, but none of them seem to handle noise very well.</p>



<p class="wp-block-paragraph">The problem lies not with the rake points, but with how they are processed. A relatively small deviation in the rake points from a perfect line will systematically throw off the fit. The solution is to do the fitting ourselves.</p>



<p class="wp-block-paragraph">To start, we use IMAQ Rake 3 to generate rake data using the same parameters as IMAQ Find Straight Edges 3. There are a few outputs, the most general of which is an array of search lines information. Each array element contains the endpoints of a given search line, as well as an array of found edge locations along the search line. We can then condition this data into an array of points (x,y) where x is the search line index and y is the distance between the start of the search line and a found edge.</p>



<p class="wp-block-paragraph">Now we have an array of points on which to do linear regression. How do we learn from the mistakes of IMAQ Find Straight Edges 3? Stay tuned next time for the exciting conclusion in <em>I Only Have Lines for You</em> or <em>An Array to Remember!</em></p>



<p class="wp-block-paragraph">That was a Rocky and Bullwinkle joke.</p>



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



<p class="wp-block-paragraph">Anyway, back to the answer: if we can measure the fitting error for a given point, we can weight it accordingly and devalue points with high error. The algorithm is as follows:</p>



<ol class="wp-block-list">
<li>Acquire conditioned rake data.</li>



<li>Perform a linear regression with uniform weights.</li>



<li>Until settled, or some max number of iterations has been reached:
 
 
<ol class="wp-block-list" style="list-style-type: lower-alpha;">
  

<li>Generate weights as a function of error from the last fit.</li>


  

<li>Refit with new weights.</li>


 </ol>
</li>
</ol>



<p class="wp-block-paragraph">The choice of a weight function should be something that decays quickly and monotonically to zero as abs(error) increases. Either a top hat or Gaussian centered at zero are good choices. Each family of functions is easily parameterized by a length scale, which makes for a great input parameter. Many other functions should work just fine, but these are simple to implement, and they perform well.</p>



<p class="wp-block-paragraph">Once all of this is working, it’s easy to add further fitting options. A constraint on orientation can be achieved by constraining the slope of the linear regression. A line score for the output can be generated by measuring the average fitting error in various ways. It is useful to measure other fit properties: number of points with small error, line length, etc.</p>



<p class="wp-block-paragraph">With all of this in place, we can start to get fancier with the analysis. A composite line score can be generated by taking a linear combination of functions of line metrics. We can run a window across an image, perform many fits, condense fits if appropriately close, and select the best results based on the composite score. We can do this for both rising and falling edges, correlating results to find rising/falling pairs based on similarity in orientation and separation. We can take these candidate pairs, and evaluate the pixel distribution of the region between them in order to verify that they bound a straight line.</p>



<p class="wp-block-paragraph">Suddenly noise isn’t such a problem after all.<img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/DoRightCast.jpg"></p>



<p class="wp-block-paragraph"><a href="/services/test-and-measurement-automation/labview-programming">Learn more about DMC&#8217;s LabVIEW programming services.</a></p>
<p>The post <a href="https://static.dmcinfo.com/blog/27737/improved-straight-edge-fitting-in-labview-vision-applications/">Improved Straight Edge Fitting in LabVIEW Vision Applications</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Using LJ-V Keyence Lasers in LabVIEW</title>
		<link>https://static.dmcinfo.com/blog/28025/using-lj-v-keyence-lasers-in-labview/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Wed, 30 Oct 2013 16:48:29 +0000</pubDate>
				<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[Test and Measurement Automation]]></category>
		<category><![CDATA[LabVIEW Vision]]></category>
		<category><![CDATA[Vision Inspection]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/28025/using-lj-v-keyence-lasers-in-labview/</guid>

					<description><![CDATA[<p>Using the LJV-7000 laser head is a no-brainer for any high speed imaging measurement system. This blog will discuss how to use LabVIEW to gain full control of the many useful settings and sampling speeds (up to 64 kHz) that the laser head boasts. To control this laser, Keyence supplies the LJV-7000 series laser controller [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/28025/using-lj-v-keyence-lasers-in-labview/">Using LJ-V Keyence Lasers in LabVIEW</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">Using the LJV-7000 laser head is a no-brainer for any high speed imaging measurement system. This blog will discuss how to use LabVIEW to gain full control of the many useful settings and sampling speeds (up to 64 kHz) that the laser head boasts.</p>

<p class="wp-block-paragraph">To control this laser, Keyence supplies the LJV-7000 series laser controller with LabVIEW drivers and a DLL. These are at the core of editing controller parameters. <a href="http://www1.keyence.com/services/download.php?fs=LJ-V7000&amp;file=LabVIEW_InstrDriver_forLJ-V7000_32bit_ver1_0_0_1_1.zip&amp;wm=sd&amp;done=/special/download/measure.php" target="_blank">Here is the download link</a> (you must login to Keyence&apos;s website to complete the download).</p>

<p class="wp-block-paragraph">Now that you have the drivers, and a very helpful user manual, you can begin your LabVIEW coding.</p>

<p class="wp-block-paragraph"><strong>Note:</strong>&nbsp;All the pre-built driver VIs use calls to the library (LJV7_IF.dll). Each of these calls is documented very well in the user manual supplied in the download; I will reference it a lot in this tutorial.</p>

<p class="wp-block-paragraph">&nbsp;</p>

<p class="wp-block-paragraph"><strong>1. Initialize Laser&nbsp;</strong><img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/InitializeVI.png"  /></p>

<p class="wp-block-paragraph">This sets up communication with the target device either over Ethernet or USB. You could use the DLL call, but I recommend using the pre-built driver which already defines the library function call and reads the error code out.</p>

<p class="wp-block-paragraph">&nbsp;</p>

<p class="wp-block-paragraph"><strong>2. Set Your Parameters&nbsp;<img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/SetSettingVI.png"  /></strong><br />
This puts the specified setting to the controller, but does not change the setting (more on that in step 3). The configuration VI is called &lsquo;Set Setting&rsquo; which has the library function call defined in it. The inputs the set setting function takes is:</p>

<p class="wp-block-paragraph">&nbsp;</p>

<p class="wp-block-paragraph">&nbsp;</p>

<ul class="wp-block-list">
 <li>Depth &ndash; Use Write Area so you avoid conflicting parameters running on the controller at the same time.</li>
 <li>Device ID &#8211; Make sure it is the same one you used in the initialization.</li>
 <li>Target Setting &ndash; This tells the controller which setting you want to change. The three items that make up this are Category, Item, and Type. The user manual is used to find what values these are for your setting.</li>
 <li>Data Set &#8211; The format for this entry is also in the user manual.</li>
</ul>

<p class="wp-block-paragraph"><strong>Example:</strong> Setting the Encoder Trigger Mode to 2-phase 2 times (left-user manual, right-code).<br />
<img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/UserManualSetSettingEncoder.png"  />&nbsp; &nbsp;<img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/SetSettingExample.png"  /></p>

<p class="wp-block-paragraph">&nbsp;</p>

<p class="wp-block-paragraph">The manual shows the Category is 0, Item is 7, and Type is whatever program you want to write to. I am using Program 0.</p>

<p class="wp-block-paragraph">&nbsp;</p>

<p class="wp-block-paragraph"><strong>3. Reflect Settings to Running Area&nbsp;<img decoding="async" alt="" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/ReflectSettingsVI.png"  /></strong></p>

<p class="wp-block-paragraph">&nbsp;</p>

<p class="wp-block-paragraph">Since I wrote all my parameters to the Write Area of the controller I need to now make them the run parameters. This will make the parameters written to the controller reflected in the run settings.</p>

<p class="wp-block-paragraph">&nbsp;</p>

<p class="wp-block-paragraph"><strong>Note</strong>: If you try writing parameters that cannot exist on the controller (like 64 kHz sampling without binning), then none of the parameters will be set.</p>

<p class="wp-block-paragraph">&nbsp;</p>

<p class="wp-block-paragraph">Now you can customize the Keyence LJ-V series lasers for your LabVIEW application!</p>

<p class="wp-block-paragraph"><strong><a href="/services/test-and-measurement-automation/labview-vision-application-development">Learn more about DMC&apos;s LabVIEW vision application development expertise.</a></strong></p>
<p>The post <a href="https://static.dmcinfo.com/blog/28025/using-lj-v-keyence-lasers-in-labview/">Using LJ-V Keyence Lasers in LabVIEW</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DMC is recognized as a National Instruments Vision Specialty Partner</title>
		<link>https://static.dmcinfo.com/blog/28090/dmc-is-recognized-as-a-national-instruments-vision-specialty-partner/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Wed, 18 Sep 2013 14:52:24 +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 Vision]]></category>
		<category><![CDATA[Vision Inspection]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/28090/dmc-is-recognized-as-a-national-instruments-vision-specialty-partner/</guid>

					<description><![CDATA[<p>DMC is proud to be recognized as a National Instruments Vision Specialty Partner. Alliance Partners with the Vision Specialty understand system-level solutions for vision applications and can specify and integrate all of the necessary system components, including cameras, illumination, optics, image processing software and image acquisition hardware. NI Alliance Partners participating in the Vision Specialty [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/28090/dmc-is-recognized-as-a-national-instruments-vision-specialty-partner/">DMC is recognized as a National Instruments Vision Specialty Partner</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">DMC is proud to be recognized as a National Instruments Vision Specialty Partner. Alliance Partners with the Vision Specialty understand system-level solutions for vision applications and can specify and integrate all of the necessary system components, including cameras, illumination, optics, image processing software and image acquisition hardware.</p>

<p class="wp-block-paragraph">NI Alliance Partners participating in the Vision Specialty program have proven expertise in imaging and vision systems and are identified as experts for customers who require software development, integration or consulting services. National Instruments reviews the capabilities of each Alliance Partner participating in the Vision Specialty and uses the AIA System Integration Company Certification to achieve industry validation of machine vision excellence.</p>

<p class="wp-block-paragraph">&ldquo;DMC is one of 10 companies internationally selected for this level of partnership,&rdquo; said DMC Project Director, Darren Jones. &ldquo;Recognition within a distinguished group of companies with proven NI platform proficiency further demonstrates DMC&rsquo;s high level of expertise in Machine Vision and NI Software.&rdquo;</p>

<p class="wp-block-paragraph">&ldquo;For almost 15 years, NI has provided software and hardware tools for vision applications to help engineers and scientists meet a diverse set of challenges,&rdquo; said Tony Vento, vice president of systems assurance and partners at National Instruments. &ldquo;By establishing the new Vision Specialty, we&rsquo;re recognizing the expertise of our top Alliance Partners in the vision space.&rdquo; Learn more about NI&rsquo;s Vision Specialty at <a href="http://www.ni.com/alliance/specialties/" target="_blank">www.ni.com/alliance/specialties/</a>.</p>

<p class="wp-block-paragraph"><strong>About the National Instruments Alliance Partner Network</strong> The NI Alliance Partner Network is a program of more than 600 accredited companies worldwide that provide engineers with complete solutions and high-quality products based on graphical system design. Since the program&rsquo;s inception in the early &rsquo;90s, NI Alliance Partners have evolved into a global network of companies that offer system integration services, add-on products to NI software and hardware and turnkey solutions for companies spanning multiple industry and application areas. From products and systems to integration, consulting and training services, Alliance Partners are uniquely equipped and skilled to help solve some of the toughest engineering challenges. Readers can learn more about the Alliance Partner Network at <a href="http://www.ni.com/alliance/" target="_blank">www.ni.com/alliance/</a>.</p>

<p class="wp-block-paragraph"><strong>About National Instruments</strong> Since 1976, National Instruments (www.ni.com) has equipped engineers and scientists with tools that accelerate productivity, innovation and discovery. NI&rsquo;s graphical system design approach to engineering provides an integrated software and hardware platform that speeds the development of any system needing measurement and control. The company&rsquo;s long-term vision and focus on improving society through its technology supports the success of its customers, employees, suppliers and shareholders.</p>

<p class="wp-block-paragraph">National Instruments, NI and ni.com are trademarks of National Instruments. Other product and company names listed are trademarks or trade names of their respective companies. A National Instruments Alliance Partner is a business entity independent from National Instruments and has no agency, partnership or joint-venture relationship with National Instruments.</p>
<p>The post <a href="https://static.dmcinfo.com/blog/28090/dmc-is-recognized-as-a-national-instruments-vision-specialty-partner/">DMC is recognized as a National Instruments Vision Specialty Partner</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Introducing LabVIEW Object Oriented Programming to your Toolbox</title>
		<link>https://static.dmcinfo.com/blog/29955/introducing-labview-object-oriented-programming-to-your-toolbox/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Thu, 11 Mar 2010 12:08:31 +0000</pubDate>
				<category><![CDATA[Circuit Design]]></category>
		<category><![CDATA[Embedded Development & Programming]]></category>
		<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[Test and Measurement Automation]]></category>
		<category><![CDATA[LabVIEW Vision]]></category>
		<category><![CDATA[Vision Inspection]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/29955/introducing-labview-object-oriented-programming-to-your-toolbox/</guid>

					<description><![CDATA[<p>The concept of LabVIEW Object Oriented Programming (LVOOP) has been around for a number of years now, but has consistently been one of those areas that seemed to have to high of a learning curve to justify learning “just because”. Luckily, in a recent project I managed to get the green light for implementing an [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/29955/introducing-labview-object-oriented-programming-to-your-toolbox/">Introducing LabVIEW Object Oriented Programming to your Toolbox</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">The concept of <a href="http://zone.ni.com/devzone/cda/tut/p/id/3573" target="_blank">LabVIEW Object Oriented Programming</a> (LVOOP) has been around for a number of years now, but has consistently been one of those areas that seemed to have to high of a learning curve to justify learning “just because”. Luckily, in a recent project I managed to get the green light for implementing an object oriented (OO) solution.</p>



<p class="wp-block-paragraph">For me the biggest appeal for OO programming in LabVIEW was the increase in organization, manageability, and code-reuse that it offers. The implementation requires you to go a little beyond just creating VI’s and using controls, indicators, and functions that are in the standard library, but as this LabVIEW Object Oriented Introduction shows, it is not that scary.</p>



<p class="wp-block-paragraph">I was totally sold on the Board Testing example (available in LabVIEW 8.2 and later in the directory “labview\examples\lvoop\BoardTesting\Board Testing.lvproj”).</p>



<p class="wp-block-paragraph">The key to understanding the benefits of an OO solution for this problem compared to a “traditional” LabVIEW solution lies in grasping that we can look at a circuit board test in 1 of 2 ways. We can look at it as each circuit board type is different and thus needs to have its own explicit test VI written for it, which will be similar for each type, but not the same; or we can look at each circuit board as an object containing a collection of component objects, so that we now define which objects a circuit board type has and then these component objects test themselves. This example demonstrates the following shift in mindset:</p>



<p class="wp-block-paragraph">Traditional LabVIEW:</p>



<ol class="wp-block-list">
<li>I have a bunch of circuit boards to test</li>



<li>There are several types of boards which each have different pass\fail criteria since they have different layouts of components</li>



<li>I need to create a test VI for each type of board</li>



<li>I need to create a test sub VI for each component</li>



<li>I can leverage code reuse by making sub VI’s to test each component, which I will drop into each board type’s “Test” VI</li>



<li>If I create a new board type, I will need to explicitly define the test procedure for it</li>
</ol>



<p class="wp-block-paragraph">LabVIEW Object Oriented Programming</p>



<ol class="wp-block-list">
<li>I have a bunch of circuit boards to test</li>



<li>Each board can be thought of as an object containing component objects. Thus different types of boards are simply child classes of the “Circuit Board” class</li>



<li>I need to define the component set for each Circuit Board type</li>



<li>I need to create a “Test” method for the Circuit Board class and for each Component class. To test a board, all I need to do is call the “Test” method for the board which will iterate through all of its components which will call their own “Test” methods</li>



<li>Code reuse is leveraged by reuse of component “Test” methods and by inheritance, which allows similar board types and components to use some of the same sub-pieces of the “Test” methods</li>



<li>If I create a new board type, all I need to do is define the components, since the “Test” method of each circuit board simply calls the components’ “Test” methods</li>
</ol>



<p class="wp-block-paragraph">Of course there are <a href="http://jabberwocky.outriangle.org/LabVOOP_Design_Patterns.pdf" target="_blank">many other OO design concepts</a> besides the one discussed here (which is a Hierarchy Design I believe), but this pattern alone lends itself to many applications in LabVIEW. Some quick examples would include TDMS files (made up of Channel, Property, and Group Objects), any sort of testing (each test is made up of Test Step Objects), and even something like a sensor reading or vision inspection application (each reading is made up of different Limit, Value, and Reference Point Objects).</p>



<p class="wp-block-paragraph">Having picked up a good feel for proper use of LVOOP, I look forward to using it in future projects, and I know that it will continue to reduce complexity and improve the project development.</p>



<p class="wp-block-paragraph"><strong><a href="/services/test-and-measurement-automation/labview-programming">Learn more about DMC&#8217;s LabVIEW programming expertise.</a></strong></p>
<p>The post <a href="https://static.dmcinfo.com/blog/29955/introducing-labview-object-oriented-programming-to-your-toolbox/">Introducing LabVIEW Object Oriented Programming to your Toolbox</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
