<?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>2019 Archives | DMC, Inc.</title>
	<atom:link href="https://static.dmcinfo.com/blog/tag/2019/feed/index.xml" rel="self" type="application/rss+xml" />
	<link></link>
	<description></description>
	<lastBuildDate>Wed, 22 Jul 2026 18:28:14 +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>2019 Archives | DMC, Inc.</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>DMC&#8217;s FedEx Day 2019 Innovations: From Slack Bots to a Light Up Slide</title>
		<link>https://static.dmcinfo.com/blog/20872/dmcs-fedex-day-2019-innovations-from-slack-bots-to-a-light-up-slide/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Thu, 03 Oct 2019 12:28:07 +0000</pubDate>
				<category><![CDATA[Activities]]></category>
		<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[Special Events]]></category>
		<category><![CDATA[2019]]></category>
		<category><![CDATA[FedEx Day]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/20872/dmcs-fedex-day-2019-innovations-from-slack-bots-to-a-light-up-slide/</guid>

					<description><![CDATA[<p>One day a year, DMC employees put client work and day-to-day tasks on hold to participate in one of our most-loved company traditions, FedEx Day. FedEx Day is an excellent opportunity for learning, fun, and collaboration between teams. There are just a few requirements: employees pick and plan their projects pre-FedEx Day, they must help [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/20872/dmcs-fedex-day-2019-innovations-from-slack-bots-to-a-light-up-slide/">DMC&#8217;s FedEx Day 2019 Innovations: From Slack Bots to a Light Up Slide</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">One day a year, DMC employees put client work and day-to-day tasks on hold to participate in one of our most-loved <a href="https://static.dmcinfo.com/blog/18397/fedex-day-2022/">company</a> <a href="https://static.dmcinfo.com/latest-thinking/blog/id/9648/employees-lead-company-improvements-during-fedex-day-2018">traditions</a>, FedEx Day. FedEx Day is an excellent opportunity for learning, fun, and collaboration between teams. There are just a few requirements: employees pick and plan their projects pre-FedEx Day, they must help improve the company in some way, and they must be delivered by the next day.</p>



<p class="wp-block-paragraph">The day started with an excellent <a href="https://www.youtube.com/watch?v=6yTzlwx11bY" target="_blank">FedEx Day kick-off video</a> and breakfast in each office.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/steven-fedex_edited.jpg" alt="Fedex day steven"/></figure>



<p class="wp-block-paragraph">The DMC team from <a href="https://static.dmcinfo.com/contact">coast to coast</a> completed a huge range of projects ranging from adding LED lights to the Chicago office’s slide to creating an IoT coffee solution in Denver to a React Native ping pop app in New York.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Frankk-helping-woth-Gutenberg.jpg" alt="frank helping in boston"/></figure>



<p class="wp-block-paragraph">Here is a look into some of the projects from FedEx Day 2019!</p>



<h2 id="h-boston" class="wp-block-heading">Boston</h2>



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>Fast Automation Facts Videos &#8211; Frank M, Christina, and Brian S.</strong></span><br>
Frank, Christina, and Brian created short how-to videos for simple&nbsp;automation tasks, such as how to download/upload with different types of PLCs. These videos can help automation engineers before service calls or when ramping up on a technology to become more familiar with the specific tasks outlined in the videos.</p>



<p class="wp-block-paragraph">Check out all of our <a href="https://www.youtube.com/playlist?list=PLWKqK_J0HJAXctZnqfrpjO5HRCNBEYIMb" type="link" id="https://www.youtube.com/playlist?list=PLWKqK_J0HJAXctZnqfrpjO5HRCNBEYIMb">Fast Automation Fact videos</a>. </p>



<p class="wp-block-paragraph"><iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/videoseries?list=PLWKqK_J0HJAXctZnqfrpjO5HRCNBEYIMb" width="560"><!--cke_bookmark_448S--><!--cke_bookmark_448E--></iframe></p>



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>Sky-in-the-Pi Upgrade &#8211; Adam W. </strong></span><br>
The Sky-in-the-Pi project is a solution that can run any type of configured &#8220;weather&#8221; with light and sound for any indoor location. You can go from a dark winter day to a relaxing breezy fall or a warm beach day while sitting indoors. It is also used as a learning tool for Python, Node.JS, and DMX controls.</p>



<p class="wp-block-paragraph">Adam upgraded the old Sky-in-the-Pi project to demonstrate greater stability, expand debugging, and capture more of the operating instructions in GitLab. As a bonus, he targeted upgrades for development and animation of the lights and&nbsp;improvements to the sunrise/sunset color scheme and moonlight simulation.</p>



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>LogJam &#8211; Tom, Sophia, and Lillian</strong></span><br>
The LogJam team continued their development of &#8220;LogJam,&#8221; an internal log parsing/filtering tool used by both the <a href="/services/application-development">Application Development</a> and <a href="/services/test-and-measurement-automation">Test &amp; Measurement</a> teams. They added to the tools available to DMC engineers for troubleshooting and debugging systems.</p>



<p class="wp-block-paragraph">Specifically, this team added functionality that supports arbitrarily complex expressions. These new functionalities also improved the flexibility of UI and filtering for different log types, and allowed for parsing based on Regex in addition to basic string delimitation.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Lillian-Adam-Jeff-Umbrella.jpg" alt="bostons umbrella"/></figure>



<h2 id="h-chicago" class="wp-block-heading">Chicago</h2>



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>Cyber Security Exploration &#8211; Leon, Nick S, and Tim Johnson</strong></span><br>
This team created content for a <a href="/services/manufacturing-automation-and-intelligence/industrial-networking-and-cybersecurity">cybersecurity</a> class for DMC. They explored the difficulty of accessing data out of an&nbsp;<a href="/services/manufacturing-automation-and-intelligence/plc-programming/siemens-s7-plc-programming">S7-1200 PLC</a> with Wire Shark while connected to the PLC with TIA Portal. This upcoming cybersecurity class will help DMC engineers provide more secure systems for DMC&#8217;s clients and prove to be a differentiating factor as cybersecurity is becoming an ever more important part of the industrial landscape.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/cybersecurity-team.jpg" alt="Cybersecurity team at DMC"/></figure>



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>North Tower Lab Setup &#8211; Ben G, Brandon, Ryan P, and Furqan</strong></span><br>
Ben, Brandon, and Ryan cleaned up the mounting and wiring of existing automation hardware and increased the space available to mount new automation hardware in the new North Tower Lab. The team cleaned up existing projects&nbsp;and then installed a third&nbsp;rail on two of the panels to create mounting space for temporary projects.</p>



<p class="wp-block-paragraph">While the team organized and cleaned the lab, Furqan created a <a href="/services/application-development/web-application-development/aspnet-and-aspnet-mvc">.NET application</a> that keeps track of the items in the North Tower Lab using barcodes. He created an item check-in/checkout system using a handheld barcode scanner.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/ryan-and-ben.jpg" alt="ryan and ben chicago"/></figure>



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>LabVIEW Camera Drivers &#8211; Katherine, Rose, Andy K, and Madeline</strong></span><br>
Through several recent <a href="/services/test-and-measurement-automation/labview-programming">LabVIEW projects</a>, DMC developed an Object-Oriented camera driver toolkit. This team&#8217;s goal was to continue to improve this toolkit so that it has better-stimulated capabilities and more options for testing methodologies. They also cleaned up the toolkit to get ready for packaging into a VI package for use on future projects.</p>



<p class="wp-block-paragraph">From completing Git tutorials to training Andy and Rose in LV OO concepts, this project helped DMC by providing better camera drivers, which can be used on a wide range of client projects and create an example for how to use these camera drivers in several different modes.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/TandM-team-1.jpg" alt="test and measurement team at dmc"/></figure>



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>DMSlide &#8211; Molly, Alex H, Nick L, Eric L, and Emily B.</strong></span><br>
This team&#8217;s goal was to install addressable RBG LED lights in the DMSlide with a sensor to auto-activate the lights when someone enters the slide. This project showed off DMC&#8217;s embedded capabilities while lighting up the slide with cool patterns and colors.</p>



<p class="wp-block-paragraph">The hardware and software used in this project include:&nbsp;APA102C RGB addressable LED strips,&nbsp;LED Channel with Diffuser,&nbsp;Nucleo L476RG microcontroller,&nbsp;Ultra-Sonic Distance sensor HC-SR05, and&nbsp;Mbed RTOS.</p>



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



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>Embedded Automated Hardware Test Rig &#8211; Alex K, Matt G, Jeremy, Ji-Hoon, Eddie and Tim Jager</strong></span><br>
Part of DMC&#8217;s <a href="/services/embedded-development-and-embedded-programming">Embedded team</a> wanted to increase their capabilities of automatically testing embedded hardware projects using the GitLab CI. They aimed to familiarize themselves with several testing tools and methods. The team separated into sub-teams focusing on individual parts of the test process, including the test server, test framework, and multifunction test PCB.</p>



<p class="wp-block-paragraph">They generated several examples of how to implement automated tests using IceTea and an Analog Discovery to set up the necessary infrastructure to support running continuous tests on DMC&#8217;s embedded projects.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/embedded-team-fedexday.jpg" alt="embedded team"/></figure>



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>&#8220;Get-a-Room&#8221; Bot &#8211; Andrew M, Jacob C, and Christopher</strong></span><br>
Andrew, Jacob, and Christopher developed a Slack bot that you can ask for the available collaboration rooms for spontaneous meetings. For the &#8220;back-end&#8221; of the bot, this team used the Microsoft Bot Framework to put together a bot quickly. From there, they leveraged the Microsoft Graph API to query the Outlook calendars for the rooms at DMC Chicago to determine the availability of different rooms.</p>



<p class="wp-block-paragraph">The team deployed the bot to a Web Bot service on Azure and authenticated with Azure Active Directory using an Azure AAD app registration. They then set up the app to run as a service so that users don’t have to sign in with their individual Active Directory accounts. Finally, the three registered the bot with DMC&#8217;s Slack domain, and it just worked.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/andrew-and-jacob_edited.jpg" alt="andrew and jacob programming"/></figure>



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>Flow Development &#8211; Mike D, Dan M, and Jamie H.</strong></span><br> Members of our <a href="/services/digital-workplace-solutions">DWS team</a> created and updated <a href="https://static.dmcinfo.com/services/digital-workplace-solutions/the-power-platform/">Flows</a> to easily automate regular DMC tasks. This team automated DMC&#8217;s <a href="https://static.dmcinfo.com/blog/21332/lunches-and-learning-mentorship-at-dmc/">mentor lunch</a> scheduling system to reduce the time spent looking for mentor lunchtime slots. By doing this, the three utilized one of Flow&#8217;s newest features: searching for meeting times. We also got to spend time with Mike&#8217;s new puppy, Kona!</p>



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



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>Automating Time Checking &#8211; Accounting Team and&nbsp;Ken </strong></span><br>
Ken taught the accounting team a more efficient way to fish for their own data to improve the current data entry/manual processes. Ken provided Accounting with ways to merge data from multiple sources to replace spreadsheets and lists the accounting team had been manually creating from QuickBooks. The tips and tricks that Ken taught the Accounting team will allow them to be more efficient in the future.</p>



<h2 id="h-dallas" class="wp-block-heading">Dallas</h2>



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>New Office Setup &#8211; DMC Dallas Team</strong></span><br> The <a href="https://static.dmcinfo.com/contact/dallas/">DMC Dallas team</a>, consisting of John W, Jacob R, and Ryan L,&nbsp;had just moved into their brand-new office space and spent their time during FedEx Day setting up their new office. The team is super excited to finally have their own office and show it off to the rest of DMC.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/dallas-team.jpg" alt="the dallas team"/></figure>



<h2 id="h-denver" class="wp-block-heading">Denver</h2>



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>Drinkbot to Mindsphere &#8211; Otto, Jimmy C, Oliver, and Matt M.</strong></span><br> This Denver team worked to publish data from <a href="https://static.dmcinfo.com/blog/23327/dmc-engineers-serve-up-a-siemens-s7-powered-drinkbot/">DMC&#8217;s Drinkbot</a>&nbsp;to Mindsphere. They tracked syrup, alcohol, and soda usage during Drinkbot&#8217;s operation in the PLC. They then used a Raspberry Pi to pull data out of the PLC and send it to Mindsphere. In Mindsphere, the team displayed the usage in a couple of pie charts for easy viewing of what the most popular ingredients are.</p>



<p class="wp-block-paragraph">This proved DMC&#8217;s capabilities to quickly and efficiently pull data from a machine and display it in Mindsphere in a meaningful way. This also adds another level of Siemens technology to Drinkbot, which goes to many trade shows and events. It also proves our capability as a Mindsphere Integrator. Learn more about this awesome project in <a href="https://static.dmcinfo.com/blog/20875/adding-siemens-mindsphere-tracking-to-the-dmc-drinkbot/" type="link" id="https://static.dmcinfo.com/blog/20875/adding-siemens-mindsphere-tracking-to-the-dmc-drinkbot/">Matt&#8217;s blog</a>. </p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/alec-in-lab.jpg" alt="alec in denver"/></figure>



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>Denver IoT Coffee &#8211; Jesse J, Jim, Kirsten, and Alec</strong></span><br>
Some of our Denver team created an <a href="/services/application-development/iot-solutions">IoT</a> coffee solution to allow engineers to view the amount of coffee in the kitchen from their desks. This solution also will enable people in the kitchen to see how many people were still drinking coffee in order to determine if they should make a whole new pot of coffee, or just use the Keurig.</p>



<p class="wp-block-paragraph">The team created four scales with load cells to weigh the three coffee containers and the coffee in the coffee maker to determine how much coffee is in them. They then created a desktop app to display the weights.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/IoT-Coffee-Prototype.jpg" alt="IoT coffee"/></figure>



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>Marble Bot &#8211; John S, Ryan L, Andrew N, Ben C, and Josh Z</strong></span><br> On <a href="https://static.dmcinfo.com/blog/22966/employees-lead-company-improvements-during-fedex-day-2018/">FedEx Day 2018</a>, the Denver team started a proof of concept of the Marble Bot. This year, the goal was to complete a working version of Marble Bot. Using an HMI, a user creates a design for the bot to make. Once started, the machine will recreate the design by dropping marbles into 16 columns, building the image pixel by pixel.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/building-marble-bot.jpg" alt="building marble bot"/></figure>



<p class="wp-block-paragraph">The machine uses hardware, including a Siemens 1200 PLC, Siemens 7&#8243; Comfort Panel, Siemens ET200 RIO, Siemens S120 Drive and Motor (rotator) and a stepper motor (auger).</p>



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



<h2 id="h-houston" class="wp-block-heading">Houston</h2>



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>New Houston Lab Setup &#8211; Elizabeth, Maddie D, and Gabby</strong></span><br>
DMC Houston had just moved into a new office space, so this team focused on setting up their new lab on FedEx Day. The three unpacked boxes, emptied out tiny cubbies and drawers, and organized everything into the new cabinets. They&nbsp;created an inventory of all the hardware the Houston office currently has as well as a wish list of hardware they need or want.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/houston-lab.jpg" alt="new houston labe"/></figure>



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>SuperViewer UI Update &#8211; Ceci</strong></span><br>
Ceci updated the SuperViewer user interface to have a light and a dark mode theme. The setting can be configured by the user and retained the next time that the application is started. This continues to improve the <a href="/services/test-and-measurement-automation/labview-programming/tdms-file-viewer">TDMS Viewer currently available on the DMC website</a>. The SuperViewer is an expansion that is meant to be modular and easy to scale for customized applications.</p>



<h2 id="h-new-york" class="wp-block-heading">New York</h2>



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong><a href="https://static.dmcinfo.com/blog/20062/building-an-ignition-v8-0-perspective-module-application-to-control-a-model-railroad/">Ignition Perspective Train Demo</a> &#8211; Paul, Zach G, and Jay</strong></span><br> This team created a new demo for the New York office that uses the new mobile-friendly <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/ignition-programming/">Ignition</a> perspective module. Eventually, this project will hopefully be used as a demo that DMC employees can bring to career fairs and other events. The team wired up a model train to be controlled by an <a href="/services/manufacturing-automation-and-intelligence/plc-programming/siemens-s7-plc-programming">S7-1200 PLC</a>. Using electrical relays, and by utilizing the existing controls that came with the model train set, a system was created in which the PLC could control the speed and direction of the train.</p>



<p class="wp-block-paragraph">This team created an Ignition perspective project in order to communicate with the PLC. Ignition Perspective is new with Ignition 8.0 and makes it much easier to create a mobile-friendly <a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/hmi-and-scada-programming/ignition-designer-programming">Ignition</a> platform.</p>



<p class="wp-block-paragraph">DMC was able to successfully create a project that can control the train’s motion and speed. The user is also able to start and stop the train from this Ignition project. <a href="https://static.dmcinfo.com/blog/20062/building-an-ignition-v8-0-perspective-module-application-to-control-a-model-railroad/">Check out more details here.&nbsp;</a></p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Ignition-Demo-NYC.jpg" alt="Ignition train demo"/></figure>



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>React Native Ping Pong App &#8211; Serena, Robert, and Becca</strong></span><br>
The goal for this project was to port over functionality from the existing ping pong web app into a React Native mobile application&nbsp;with an Azure-hosted backend API. This team created a .NET Entity Framework Core application that serves as an API and is hosted on Azure. This application provides endpoints that, when hit, will interface with the database that is also hosted on Azure. The database schema is identical to the one used by the current ping pong application.</p>



<p class="wp-block-paragraph">They also created a React Native application that allows users to select players for a game, start a game, and complete a game. The appropriate HTTP requests are sent to the server to update the database through the existing stored procedures in the database.</p>



<h2 id="h-seattle" class="wp-block-heading">Seattle</h2>



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>AWS IoT Sitewise &#8211; Kevin F.</strong></span><br>
Kevin&#8217;s goal was to connect a Siemens PLC to Amazon AWS cloud using the Siemens built-in OPC UA server and Amazon IoT Sitewise. IoT Sitewise is Amazon&#8217;s IIOT edge service currently in Beta Preview. He set up a Siemens PLC to generate sample data that could be pushed to the cloud as well as configured the PLC&#8217;s internal OPC UA Server.</p>



<p class="wp-block-paragraph">Kevin then installed and configured Amazon AWS IoT Greengrass and IoT Sitewise on a Linux PLC. These components were configured to talk to an AWS service and the Siemens PLC.</p>



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>Unified PoolVision &#8211; Ross, Phil, Dan F, Tyler, Steven F, Jacob B, and Mike H</strong></span><br>
This team developed an easily deployable PoolVision system for detecting and identifying balls on a pool table. They leveraged cutting edge depth cameras and <a href="/services/application-development/machine-learning">machine learning techniques</a> to assemble an accurate system that can be trained through a Training Wizard that involves no preexisting knowledge of machine learning.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Sea1.jpg" alt="seattle pool"/></figure>



<p class="wp-block-paragraph">They also included an easily extensible, WebSocket-based backend API that can be utilized for a wide variety of stat-tracking or video-related frontends. The system is based on an Intel RealSense Depth camera and a Jetson Nano single board computer.</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/Sea2.jpg" alt="seattle pool 2"/></figure>



<h2 id="h-st-louis" class="wp-block-heading">St. Louis</h2>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/adam-in-stl.jpg" alt="adam in stl"/></figure>



<p class="wp-block-paragraph"><span style="font-size:130%;"><strong>St. Louis Lab Setup &#8211; DMC STL Team</strong></span><br>
The STL team took the day to set up and organize their lab in the St. Louis office. This lab has been a work in progress and the busy St. Louis team finally got it done this FedEx Day!</p>



<figure class="wp-block-image"><img decoding="async" src="https://static.dmcinfo.com/wp-content/uploads/2025/05/working-in-stl.jpg" alt="lab in stl"/></figure>



<p class="wp-block-paragraph">This year&#8217;s FedEx Day was not only super successful but also a fun time for all the offices. We are excited for what&#8217;s in store next year and how our projects from this year help DMC as a company.</p>



<p class="wp-block-paragraph">Check out the video below for a quick recap of FedEx Day 2019 as well.</p>



<p class="wp-block-paragraph"><iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/tUM7gjOpZlw" width="560"><!--cke_bookmark_201S--><!--cke_bookmark_201E--></iframe></p>



<p class="wp-block-paragraph"><a href="/about"><strong>Learn more about DMC&#8217;s Company Culture.</strong></a></p>
<p>The post <a href="https://static.dmcinfo.com/blog/20872/dmcs-fedex-day-2019-innovations-from-slack-bots-to-a-light-up-slide/">DMC&#8217;s FedEx Day 2019 Innovations: From Slack Bots to a Light Up Slide</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Adding Siemens MindSphere Tracking to the DMC DrinkBot</title>
		<link>https://static.dmcinfo.com/blog/20875/adding-siemens-mindsphere-tracking-to-the-dmc-drinkbot/</link>
		
		<dc:creator><![CDATA[DMC]]></dc:creator>
		<pubDate>Thu, 03 Oct 2019 11:42:46 +0000</pubDate>
				<category><![CDATA[Denver]]></category>
		<category><![CDATA[Manufacturing Automation & Intelligence]]></category>
		<category><![CDATA[PLC]]></category>
		<category><![CDATA[Siemens PLC]]></category>
		<category><![CDATA[2019]]></category>
		<category><![CDATA[Cloud Foundry]]></category>
		<category><![CDATA[Fedex]]></category>
		<category><![CDATA[Mindsphere]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Siemens]]></category>
		<category><![CDATA[Snap7]]></category>
		<guid isPermaLink="false">https://static.dmcinfo.com/blog/20875/adding-siemens-mindsphere-tracking-to-the-dmc-drinkbot/</guid>

					<description><![CDATA[<p>One day every year, DMC comes together to work on various internal projects&#160;in an event we call FedEx Day. In previous years, one of our favorite projects creating our company’s robotic bartender lovingly called DrinkBot! For FedEx Day 2019, a group of DMC Denver engineers decided that we wanted to add functionality to DrinkBot to [&#8230;]</p>
<p>The post <a href="https://static.dmcinfo.com/blog/20875/adding-siemens-mindsphere-tracking-to-the-dmc-drinkbot/">Adding Siemens MindSphere Tracking to the DMC DrinkBot</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">One day every year, DMC comes together to work on various internal projects&nbsp;in an event we call <a href="https://static.dmcinfo.com/latest-thinking/blog/id/9648/employees-lead-company-improvements-during-fedex-day-2018">FedEx Day</a>. In previous years, one of our favorite projects creating our company’s robotic bartender lovingly called <a href="https://static.dmcinfo.com/latest-thinking/blog/id/9580/dmc-engineers-serve-up-a-siemens-s7-powered-drinkbot">DrinkBot</a>!</p>



<p class="wp-block-paragraph"><iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/Lt64CD1nu0k" width="560"><!--cke_bookmark_227S--><!--cke_bookmark_227E--></iframe></p>



<p class="wp-block-paragraph">For FedEx Day 2019, a group of DMC Denver engineers decided that we wanted to add functionality to DrinkBot to track its usage. DrinkBot tends to travel frequently between offices, and we wanted to be able to stay up to date on its stock and wear from anywhere in the world. We decided that the best tool for this job would be Siemens Internet Of Things (IoT) platform, <a href="https://new.siemens.com/global/en/products/software/mindsphere.html" target="_blank">MindSphere</a>.</p>



<h2 id="h-collecting-the-data" class="wp-block-heading">Collecting the Data</h2>



<p class="wp-block-paragraph">Before we could upload the data into MindSphere, we first needed to collect it on our Siemens S7-1200 PLC. We built a buffer into our existing DrinkBot project to track all DrinkBot usage. This buffer would continue to fill with data until the data was pulled into MindSphere and the buffer was reset.</p>



<p class="wp-block-paragraph">For each bottle of liquor, we tracked every time a shot was poured into a drink, as well as the time that the shot was poured. For the various sodas and mixers in DrinkBot, we included a tag tracking the amount of each mixer poured into the drink. We also tracked the current positions of the Siemens G120, and Siemens 1FK7 Servo Motor, and the total usage of these motors.</p>



<h2 id="h-transporting-the-data" class="wp-block-heading">Transporting the Data</h2>



<p class="wp-block-paragraph">After collecting the usage data on the PLC, we needed to prepare the data to upload to MindSphere. Data processing was done on a Raspberry Pi 4. First, we pulled the data onto the Raspberry Pi using a Python script, and the Snap7 library for communicating with a PLC, as well as cleared the buffer.</p>



<p class="wp-block-paragraph">The Snap7 library provides straightforward functions for accessing and updating PLC data. It is as simple as specifying the IP address of the PLC you want to communicate with, the data block you want to pull data from, and the byte addresses of the specific data you need</p>


<hr />


<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1e1e1e"><span style="background:#c7c7c7;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1e1e1e">Python</span></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly># Create a Snap7 client object
client = snap7.client.Client()

# Connect to the PLC
client.connect(ipAddress, 0, 1)

# Read data from a PLC Data Block (DB)
data = client.db_read(
    dbNumber,
    startingByteAddress,
    dataLength
)</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #6A9955"># Create a Snap7 client object</span></span>
<span class="line"><span style="color: #D4D4D4">client = snap7.client.Client()</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A9955"># Connect to the PLC</span></span>
<span class="line"><span style="color: #D4D4D4">client.connect(ipAddress, </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A9955"># Read data from a PLC Data Block (DB)</span></span>
<span class="line"><span style="color: #D4D4D4">data = client.db_read(</span></span>
<span class="line"><span style="color: #D4D4D4">    dbNumber,</span></span>
<span class="line"><span style="color: #D4D4D4">    startingByteAddress,</span></span>
<span class="line"><span style="color: #D4D4D4">    dataLength</span></span>
<span class="line"><span style="color: #D4D4D4">)</span></span></code></pre></div>


<hr />


<p class="wp-block-paragraph">The MindSphere platform has many Application Programming Interfaces (APIs) for different services. For our task, we needed to create an asset in MindSphere for DrinkBot and update the different aspects of DrinkBot (i.e. soda usage). Our aspects were tracked on MindSphere as time series. We could then update these time series using IoT time series service API calls in C#. This would create a log of DrinkBot usage on the MindSphere platform.</p>



<h2 id="h-using-the-data" class="wp-block-heading">Using The Data</h2>



<p class="wp-block-paragraph">Once we collected the DrinkBot data onto MindSphere, we needed to present it in some form. To do so, we created a custom MindSphere application. This application, using ReactJS, pulled all the DrinkBot aspect data, and created a pie chart displaying the usage of the different drinks by the machine over any given time period.</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#1e1e1e"><span style="background:#c7c7c7;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#1e1e1e">JavaScript</span></span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>// Create URL to query against
const fetchString =
    "/api/iottimeseries/v3/timeseries/" +
    "{AspectId}/{Variable}" +
    "?from=2019-09-03T00:00:00Z" +
    "&amp;to=2019-09-10T00:00:00Z";

// Since the query occurs from the client,
// grab the XSRF token from the browser cookie
const token = Cookies.get("XSRF-TOKEN");

fetch(fetchString, {
    credentials: "include",

    headers: {
        // Expect JSON response
        "Accept": "application/json",

        // Authentication token for the API
        "x-xsrf-token": token
    }
})
.then(response => response.json())
.then(responseJson => {
    // Store the received data in React state
    this.setState({
        bottleShots: responseJson
    });
});</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #6A9955">// Create URL to query against</span></span>
<span class="line"><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">fetchString</span><span style="color: #D4D4D4"> =</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #CE9178">&quot;/api/iottimeseries/v3/timeseries/&quot;</span><span style="color: #D4D4D4"> +</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #CE9178">&quot;{AspectId}/{Variable}&quot;</span><span style="color: #D4D4D4"> +</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #CE9178">&quot;?from=2019-09-03T00:00:00Z&quot;</span><span style="color: #D4D4D4"> +</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #CE9178">&quot;&amp;to=2019-09-10T00:00:00Z&quot;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A9955">// Since the query occurs from the client,</span></span>
<span class="line"><span style="color: #6A9955">// grab the XSRF token from the browser cookie</span></span>
<span class="line"><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">token</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">Cookies</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">get</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;XSRF-TOKEN&quot;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">fetch</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">fetchString</span><span style="color: #D4D4D4">, {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">credentials:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;include&quot;</span><span style="color: #D4D4D4">,</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">headers:</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #6A9955">// Expect JSON response</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #CE9178">&quot;Accept&quot;</span><span style="color: #9CDCFE">:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;application/json&quot;</span><span style="color: #D4D4D4">,</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #6A9955">// Authentication token for the API</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #CE9178">&quot;x-xsrf-token&quot;</span><span style="color: #9CDCFE">:</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">token</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">})</span></span>
<span class="line"><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">then</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">response</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">=&gt;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">response</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">json</span><span style="color: #D4D4D4">())</span></span>
<span class="line"><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">then</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">responseJson</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">=&gt;</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #6A9955">// Store the received data in React state</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">this</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">setState</span><span style="color: #D4D4D4">({</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">bottleShots:</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">responseJson</span></span>
<span class="line"><span style="color: #D4D4D4">    });</span></span>
<span class="line"><span style="color: #D4D4D4">});</span></span></code></pre></div>



<p class="wp-block-paragraph">In the future, we hope to include the utilization of the motor position and runtime data, as well as expand on the dashboard to allow for greater breakdown of data.</p>



<h2 id="h-summary-of-technology" class="wp-block-heading">Summary of Technology</h2>



<ul class="wp-block-list">
<li>Siemens S7-1200 PLC</li>



<li>Raspberry Pi 4</li>



<li>MindSphere IoT Platform</li>
</ul>



<p class="wp-block-paragraph">To see how we can help you get started on a project, check out our&nbsp;<a href="https://static.dmcinfo.com/services/manufacturing-automation-and-intelligence/plc-programming/siemens-s7-plc-programming">Siemens PLC programming services</a>&nbsp;and&nbsp;<a href="https://static.dmcinfo.com/contact">contact</a>&nbsp;us today!</p>



<p class="wp-block-paragraph"><a href="https://static.dmcinfo.com/about/partners/siemens-solution-partner">Learn more about DMC&#8217;s partnership with Siemens</a><strong>.</strong></p>



<p class="wp-block-paragraph"></p>
<p>The post <a href="https://static.dmcinfo.com/blog/20875/adding-siemens-mindsphere-tracking-to-the-dmc-drinkbot/">Adding Siemens MindSphere Tracking to the DMC DrinkBot</a> appeared first on <a href="https://static.dmcinfo.com/">DMC, Inc.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
