<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>The ArchestrAnaut</title>
	
	<link>http://www.avidsolutionsinc.com/blog/archestranaut</link>
	<description>Covering everything in the Galaxy</description>
	<lastBuildDate>Tue, 26 Feb 2013 12:00:00 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/TheArchestranaut" /><feedburner:info uri="thearchestranaut" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>TheArchestranaut</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Let’s Get Rolling…. and cleaning</title>
		<link>http://feedproxy.google.com/~r/TheArchestranaut/~3/72ETykzZmU4/</link>
		<comments>http://www.avidsolutionsinc.com/blog/archestranaut/2013/02/lets-get-rolling-and-cleaning/#comments</comments>
		<pubDate>Tue, 26 Feb 2013 12:00:00 +0000</pubDate>
		<dc:creator>Andy Robinson</dc:creator>
				<category><![CDATA[aaOpenSource]]></category>
		<category><![CDATA[aacleanup]]></category>

		<guid isPermaLink="false">http://www.avidsolutionsinc.com/blog/archestranaut/?p=598</guid>
		<description><![CDATA[So I know we took a poll and came up with a few top vote getters on what tools to work on first.&#160; Due to a few different issues external to the voting itself we’re going to go with aaCleanup/aaRemoteCleanup first.&#160; A friend from Everdyn has agreed to take the lead on the project and [...]]]></description>
				<content:encoded><![CDATA[<p>So I know we took a poll and came up with a few top vote getters on what tools to work on first.&#160; </p>
<p>Due to a few different issues external to the voting itself we’re going to go with aaCleanup/aaRemoteCleanup first.&#160; A friend from Everdyn has agreed to take the lead on the project and as of right now we have everyone we need for the development effort.&#160; This is expected to be a really tiny little project so it won’t take many.&#160; Some of these others will definitely require more people.&#160; </p>
<p>Our hope is that this will take a handful of weeks to get ready for prime time.&#160; When it’s ready “all of my little archestranauts” (in my best Chef voice) will be the first to know.</p>
<p>Here’s hoping this is the first of many successful projects!</p>
<p>- Andy</p>
<img src="http://feeds.feedburner.com/~r/TheArchestranaut/~4/72ETykzZmU4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.avidsolutionsinc.com/blog/archestranaut/2013/02/lets-get-rolling-and-cleaning/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.avidsolutionsinc.com/blog/archestranaut/2013/02/lets-get-rolling-and-cleaning/</feedburner:origLink></item>
		<item>
		<title>Let’s Vote on aaOpenSource Projects</title>
		<link>http://feedproxy.google.com/~r/TheArchestranaut/~3/HUAz0H6RSHA/</link>
		<comments>http://www.avidsolutionsinc.com/blog/archestranaut/2013/02/lets-vote-on-aaopensource-projects/#comments</comments>
		<pubDate>Sun, 17 Feb 2013 23:20:30 +0000</pubDate>
		<dc:creator>Andy Robinson</dc:creator>
				<category><![CDATA[aaOpenSource]]></category>

		<guid isPermaLink="false">http://www.avidsolutionsinc.com/blog/archestranaut/?p=594</guid>
		<description><![CDATA[This is my attempt to make a post to host a poll for the aaOpenSource projects. Please Vote in the Poll Below.  As we get new ideas I&#8217;ll update the poll answers. Note that you may vote for more than one project at a time! [subscribe2]]]></description>
				<content:encoded><![CDATA[<p>This is my attempt to make a post to host a poll for the aaOpenSource projects.</p>
<p>Please Vote in the Poll Below.  As we get new ideas I&#8217;ll update the poll answers.</p>
<p>Note that you may vote for more than one project at a time!</p>
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.
<p>[subscribe2]</p>
<img src="http://feeds.feedburner.com/~r/TheArchestranaut/~4/HUAz0H6RSHA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.avidsolutionsinc.com/blog/archestranaut/2013/02/lets-vote-on-aaopensource-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.avidsolutionsinc.com/blog/archestranaut/2013/02/lets-vote-on-aaopensource-projects/</feedburner:origLink></item>
		<item>
		<title>aaOpenSource Continued</title>
		<link>http://feedproxy.google.com/~r/TheArchestranaut/~3/8JHRPHlBdzo/</link>
		<comments>http://www.avidsolutionsinc.com/blog/archestranaut/2013/02/aaopensource-continued/#comments</comments>
		<pubDate>Fri, 15 Feb 2013 12:47:54 +0000</pubDate>
		<dc:creator>Andy Robinson</dc:creator>
				<category><![CDATA[aaOpenSource]]></category>
		<category><![CDATA[aaBackup]]></category>
		<category><![CDATA[aaDocument]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[PlantPax]]></category>
		<category><![CDATA[Toolkit]]></category>

		<guid isPermaLink="false">http://www.avidsolutionsinc.com/blog/archestranaut/?p=589</guid>
		<description><![CDATA[If you’ve followed the comments posted on my previous entry you can see that there seems to be a lot of interest by some really heavy hitters on this topic.  In the interest of getting things going I will post a few of my ideas as well as some from the comments.  I’ll try to [...]]]></description>
				<content:encoded><![CDATA[<p>If you’ve followed the comments posted on my previous entry you can see that there seems to be a lot of interest by some really heavy hitters on this topic.  In the interest of getting things going I will post a few of my ideas as well as some from the comments.  I’ll try to figure out how to create a poll that we can use where people can vote on which ones we should tackle first.  I think I may split this into two groups; tools and objects.  I think there is room for one group of people to work on engineering tools while another group works on objects with advanced functionality.</p>
<p><span id="more-589"></span></p>
<p>Something to address from the comments that I think is critical to making sure everything is above board with this work.  Anything you do for this project CAN NOT BE DONE ON COMPANY TIME unless you get explicit permission from your company to contribute.  I’m sure others are much more schooled in the open source world than I but I certainly appreciate the angle that you shouldn’t be charging time to your company for work done on this. In a similar vein we must be incredibly cautious about reusing code that has been written for customers or is previous work in general.  I know within my own company we are very careful to study our agreement with customers with respect to IP ownership and reusability.  I can’t give sound legal advice so I would encourage you to discuss these issues with your employer before contributing.  With that said, bit heads work open source all the time so it’s not like this would be something impossible.  After all is said and done remember the spirit of this is that if we all contribute some we all benefit greatly.</p>
<p>So without further delay here are my opening proposals.</p>
<p><strong>aaBackup</strong></p>
<p>The backup tools are decent but we can do much bettter.  I have developed a command line application that utilizes the GR Toolkit to do many different kinds of backups.  You can backup a single object, all the templates, a list of items from a text file, etc.  I have ideas on extending it for things like backing up all items that have a change log entry later than a particular date.. or maybe run it hourly and backup everything since the last run, etc.  What I do not have is a GUI.  I think we can debate the necessity or utility of the GUI.  Right now it is based on the 3.0 toolkit I believe.  I wouldn’t expect an upgrade to be an issue but you never know.</p>
<p>Working Time Left to Complete : ~ 1-2 weeks</p>
<p><strong>aaDocument</strong></p>
<p>Working in the regulated industries we always have to document our objects, including templates.  This is not too bad with instances and CSV exports but you can’t do anything with templates.  We have started this project by taking objects (templates or instances) and sucking them into an object structure; attributes, properties, complex properties, etc.  Out of that we would write generators or output mechanisms (de-serializers if you will) to output the information to common formats like XML, JSON, Excel, Word, etc.  Or maybe you could output XML then use some formatting techniques to turn the data into a nice formatted document.  The biggest hurdle we have had has been around the graphics so maybe someone can help shed some light there.</p>
<p>Working Time Left to Complete : &gt; 8 weeks</p>
<p><strong>aa{Something about PlantPax but probably can’t really use that name for trademark issues}</strong></p>
<p>We had a request in the comments about putting together a package of objects that map to the Rockwell PlantPax objects.  I don’t see any reason in the world we couldn’t attack this technical challenge.  We are seeing a ton of PlantPax with our customers (side comment about what a great <span style="text-decoration: underline;"><strong>Sales</strong></span> job the Rockwell team is doing these days).  FTView has a serious leg up on WW from the perspective that they can tell customers they already have graphics ready to go.  There is nothing magical about their graphics package and I’m certain we could put together something with similar functionality for the WW platform.</p>
<p>Working Time Left to Complete : ~8-10 weeks?</p>
<p><strong>aaCleanup</strong></p>
<p>If you’ve been around the Archestra world for a while you have undoubtedly used the Platform Killer.  This thing was from back in the 2.1 time frame I believe.  We’re still using it today on 2012R2 boxes so it hasn’t changed that much.  The one thing I don’t like is that you have to run it locally.  I need a way to perform this activity remotely.  Obviously we would either have to reverse engineer the existing code, which probably wouldn’t be too hard with some Winternals tools to sniff the registry and file activity.  Or even better would be to see if we could get a little help from the top to point us in the direction of things we need to do to cleanup a platform.</p>
<p>Working Time Left to Complete : ~2-4 weeks?</p>
<p><strong>Template Creator (from Johan)</strong></p>
<p>A tool that allows one to auto create Template objects from definition files. I have started something for this using the GR Access toolkit but never completed it. The tool must allow one to Create UDA’s, Field Attributes, Scripts etc. from an import file.</p>
<p>Working Time Left to Complete : ?</p>
<p>Ok, I’ve put my neck out there, let’s here from everyone else!  Start slinging those ideas.  In the meantime I am going to try to figure out how to put up a poll so we can start voting.</p>
<p>- Andy</p>
<img src="http://feeds.feedburner.com/~r/TheArchestranaut/~4/8JHRPHlBdzo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.avidsolutionsinc.com/blog/archestranaut/2013/02/aaopensource-continued/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://www.avidsolutionsinc.com/blog/archestranaut/2013/02/aaopensource-continued/</feedburner:origLink></item>
		<item>
		<title>aaOpenSource</title>
		<link>http://feedproxy.google.com/~r/TheArchestranaut/~3/62GWJNUfxRk/</link>
		<comments>http://www.avidsolutionsinc.com/blog/archestranaut/2013/02/aaopensource/#comments</comments>
		<pubDate>Mon, 04 Feb 2013 12:00:00 +0000</pubDate>
		<dc:creator>Andy Robinson</dc:creator>
				<category><![CDATA[Archestra]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Leveraging .NET]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.avidsolutionsinc.com/blog/archestranaut/?p=586</guid>
		<description><![CDATA[&#160; Does this sound familiar?&#160; You’re working on an issue or a project and you have a brilliant idea for a tool to either save you lots of time or make a system run better.&#160; So you start working on it for a few nights, make some good progress, then you get busy, lose focus……you [...]]]></description>
				<content:encoded><![CDATA[<p>&#160;</p>
<p>Does this sound familiar?&#160; You’re working on an issue or a project and you have a brilliant idea for a tool to either save you lots of time or make a system run better.&#160; So you start working on it for a few nights, make some good progress, then you get busy, lose focus……you know the end of the story.&#160; But wow that really was a great idea and you really wish you could finish it.&#160; </p>
<p>At this point I’ve given up on even starting these projects because I know I’ll never finish them.&#160; Well, my efforts are pretty much wasted if I have started something then dropped it before it’s done and usable.&#160; </p>
<p>So here is my idea.&#160; I know we have some really brilliant people in the Archestranaut community.&#160; Also, because we’re all so good at what we do and very much in demand we don’t have enough time as individuals… but what if we pooled our efforts on a single project to come up with something great… nothing new here it’s called Open Sourcing.&#160; And that’s what I want to do with all of these cool projects we’ve all been working on .</p>
<p><span id="more-586"></span>
<p>So how do we get started?&#160; Having never run, much less contributed, to an open source project I don’t have any experience to lean on as to how we get going.&#160; So let me try this to get things kickstarted.&#160; Please respond to this post with the following items.</p>
<p>1) Name of your project   <br />2) Two or three sentence description    <br />3) How far along are you?&#160; Just being the seed of an idea is perfectly legit.&#160; We just need to know for reference.    <br />4) What’s left to do and how long do you think it will take, if you have an idea.    </p>
<p>Once we get a decent list of projects (hopefully we’ll get more than just my weak items) I’ll put together a poll and we can all vote on what to go for first.&#160; After we figure out what we’re going to do we’ll try to figure out the proper workflow using something GitHub or wherever the smart people do open source stuff.</p>
<p>The Archestranaut community has always been about sharing.&#160; In early discussions with the president of our company before we started the blog he was very clear that as far as he was concerned if us posting some really good info on the product made a difference as to whether we won or lost a job then we’re not doing enough of all the other things to win and then retain customers.&#160; I say this to encourage the other integrators on here to not be scared about contributing to something that will be shared by the community.&#160; There is so much more to doing great work for customers that has nothing to do with knowing how to implement a regex in quick script.</p>
<p>Let’s Get It!</p>
<img src="http://feeds.feedburner.com/~r/TheArchestranaut/~4/62GWJNUfxRk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.avidsolutionsinc.com/blog/archestranaut/2013/02/aaopensource/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.avidsolutionsinc.com/blog/archestranaut/2013/02/aaopensource/</feedburner:origLink></item>
		<item>
		<title>Thinking about Windows Support</title>
		<link>http://feedproxy.google.com/~r/TheArchestranaut/~3/vCpQiVYorww/</link>
		<comments>http://www.avidsolutionsinc.com/blog/archestranaut/2013/02/thinking-about-windows-support/#comments</comments>
		<pubDate>Sun, 03 Feb 2013 19:28:19 +0000</pubDate>
		<dc:creator>Andy Robinson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.avidsolutionsinc.com/blog/archestranaut/?p=584</guid>
		<description><![CDATA[Rob Kambach posted a question in a Linked In group about dumping support for Vista.&#160; Other than the fact that I have never seen Vista on a plant floor one should also consider the support cycle for this OS and others.&#160; Here’s a great summary page from Microsoft. http://windows.microsoft.com/en-us/windows/products/lifecycle Everyone knows MS has been dragging [...]]]></description>
				<content:encoded><![CDATA[<p>Rob Kambach posted a question in a Linked In group about dumping support for Vista.&#160; Other than the fact that I have never seen Vista on a plant floor one should also consider the support cycle for this OS and others.&#160; Here’s a great summary page from Microsoft.</p>
<p><span id="more-584"></span>
<p><a title="http://windows.microsoft.com/en-us/windows/products/lifecycle" href="http://windows.microsoft.com/en-us/windows/products/lifecycle">http://windows.microsoft.com/en-us/windows/products/lifecycle</a></p>
<p>Everyone knows MS has been dragging XP along way beyond initial plans.&#160; I suspect, however, due to the pitiful uptake of Vista along with the general acceptance of 7 that the same won’t happen for Vista.</p>
<p>Take this page and use it to beat your penny pinchers about the head and shoulders when trying to convince them why you need to get off of XP and join the rest of the world.&#160; While it still feels like 7 is the new OS it’s been out since 2009.</p>
<p>Thoughts, comments?</p>
<img src="http://feeds.feedburner.com/~r/TheArchestranaut/~4/vCpQiVYorww" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.avidsolutionsinc.com/blog/archestranaut/2013/02/thinking-about-windows-support/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.avidsolutionsinc.com/blog/archestranaut/2013/02/thinking-about-windows-support/</feedburner:origLink></item>
		<item>
		<title>No Alarms in the Alarm Client</title>
		<link>http://feedproxy.google.com/~r/TheArchestranaut/~3/-VkteUqEMBA/</link>
		<comments>http://www.avidsolutionsinc.com/blog/archestranaut/2013/01/no-alarms-in-the-alarm-client/#comments</comments>
		<pubDate>Tue, 29 Jan 2013 16:29:54 +0000</pubDate>
		<dc:creator>David Goodman</dc:creator>
				<category><![CDATA[Archestra]]></category>
		<category><![CDATA[Wonderware Alarm Logger]]></category>
		<category><![CDATA[aaAlarmClient]]></category>
		<category><![CDATA[Attempting to Connect to Provider '\\$localhost:\galaxy']]></category>
		<category><![CDATA[No Alarms in Banner]]></category>

		<guid isPermaLink="false">http://www.avidsolutionsinc.com/blog/archestranaut/?p=579</guid>
		<description><![CDATA[I had a recent issue with my alarms not showing up in my alarm banner in InTouch (Windows 7 &#38; IAS 2012).&#160; What was weird was that I could trigger an alarm and it would log to the alarm database, but I couldn’t see in the live alarms banner.&#160; Closing and restarting the InTouch app [...]]]></description>
				<content:encoded><![CDATA[<p>I had a recent issue with my alarms not showing up in my alarm banner in InTouch (Windows 7 &amp; IAS 2012).&#160; What was weird was that I could trigger an alarm and it would log to the alarm database, but I couldn’t see in the live alarms banner.&#160; Closing and restarting the InTouch app had zero effect, but rebooting the PC seemed to fix it on the first or second reboot.&#160; The only messages in the SMC related to “Attempting to Connect to Provider &#8216;\\$localhost:\galaxy&#8217;” (see below).</p>
<p><span id="more-579"></span>
<p><a href="http://www.avidsolutionsinc.com/blog/archestranaut/wp-content/uploads/2013/01/image1.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.avidsolutionsinc.com/blog/archestranaut/wp-content/uploads/2013/01/image_thumb1.png" width="390" height="158" /></a></p>
<p>During troubleshooting, I tried using the old school InTouch alarm client in addition to the aaAlarmClient.&#160; Neither worked.&#160; Luckily, a few minutes worth of digging on the WDN site returned a very promising result:</p>
<blockquote><p>Technote 791 (Galaxy Alarms are not Displayed in an Alarm Client).     <br /><a title="https://wdnresource.wonderware.com/support/kbcd/html/1/t002574.htm" href="https://wdnresource.wonderware.com/support/kbcd/html/1/t002574.htm">https://wdnresource.wonderware.com/support/kbcd/html/1/t002574.htm</a></p>
</blockquote>
<p>As it turns out the order of startup for certain programs (Alarm Manager and SuiteLink Service) is critical to getting alarms in the alarm client.&#160; I checked who started the Alarm Manager using the SysInternals program Process Explorer.&#160; As a side note, the whole SysInternals suite is available from Microsoft &amp; is really handy.&#160; The alarm logger service had started the alarm manager.&#160; I then checked through the Windows Event Log like it mentions in the technote &amp; sure enough, the Alarm Logger service started before the SuiteLink service.</p>
<p>The workaround I came up with was to force the Alarm Logger service to depend on the SuiteLink service, which should force them to start in the correct order.&#160; To do this you need to:</p>
<ol>
<li>Go to Start-&gt;Run, type “regedit”, and hit enter.</li>
<li>Navigate to “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\New_AlarmLogger”</li>
<li>Right-click in the right pane &amp; add a new Multi-String Value</li>
<li>Name it “DependOnService” and set its value to “slssvc”</li>
</ol>
<p><a href="http://www.avidsolutionsinc.com/blog/archestranaut/wp-content/uploads/2013/01/Windows-7-WW-Alarm-Logger-Service-Dependency.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Windows 7 WW Alarm Logger Service Dependency" border="0" alt="Windows 7 WW Alarm Logger Service Dependency" src="http://www.avidsolutionsinc.com/blog/archestranaut/wp-content/uploads/2013/01/Windows-7-WW-Alarm-Logger-Service-Dependency_thumb.png" width="669" height="341" /></a></p>
<p>To verify the Wonderware Alarm Logger service now depends on the Wonderware SuiteLink service, do the following:</p>
<ol>
<li>Go to Start-&gt;Run, type “services.msc”, and hit enter.</li>
<li>Navigate to “Wonderware Alarm Logger Service”</li>
<li>Open the properties dialog for it &amp; go to the “Dependencies” tab</li>
<li>You should see “Wonderware SuiteLink” listed as a dependency.</li>
</ol>
<img src="http://feeds.feedburner.com/~r/TheArchestranaut/~4/-VkteUqEMBA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.avidsolutionsinc.com/blog/archestranaut/2013/01/no-alarms-in-the-alarm-client/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.avidsolutionsinc.com/blog/archestranaut/2013/01/no-alarms-in-the-alarm-client/</feedburner:origLink></item>
		<item>
		<title>The folks at Everdyn are Killin’ It</title>
		<link>http://feedproxy.google.com/~r/TheArchestranaut/~3/1L4VrKQ7gEk/</link>
		<comments>http://www.avidsolutionsinc.com/blog/archestranaut/2013/01/the-folks-at-everdyn-are-killin-it/#comments</comments>
		<pubDate>Mon, 21 Jan 2013 10:12:28 +0000</pubDate>
		<dc:creator>Andy Robinson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.avidsolutionsinc.com/blog/archestranaut/?p=571</guid>
		<description><![CDATA[Found another really awesome post from our French friends. http://www.everdyn.com/use-scripts-as-functions-in-archestra-graphics/ All of us would love to say that we come up with brilliant ideas out of thin air.  Unfortunately that&#8217;s usually not the case.   It was a very observant person that came up with the saying &#8220;Necessity is the mother of invention&#8221;.  Just as [...]]]></description>
				<content:encoded><![CDATA[<p>Found another really awesome post from our French friends.</p>
<p><a href="http://www.everdyn.com/use-scripts-as-functions-in-archestra-graphics/" target="_blank">http://www.everdyn.com/use-scripts-as-functions-in-archestra-graphics/</a></p>
<p>All of us would love to say that we come up with brilliant ideas out of thin air.  Unfortunately that&#8217;s usually not the case.   It was a very observant person that came up with the saying &#8220;Necessity is the mother of invention&#8221;.  Just as the circumstances that led us to create the Hyper Scale Dynamic IO construct so is the same with these folks in the creation of their Dynamic HMI.  All I can say is WOW!  Keep up the great work and more importantly thanks for sharing.</p>
<p>&nbsp;</p>
<p>- Andy</p>
<p>&nbsp;</p>
<img src="http://feeds.feedburner.com/~r/TheArchestranaut/~4/1L4VrKQ7gEk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.avidsolutionsinc.com/blog/archestranaut/2013/01/the-folks-at-everdyn-are-killin-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.avidsolutionsinc.com/blog/archestranaut/2013/01/the-folks-at-everdyn-are-killin-it/</feedburner:origLink></item>
		<item>
		<title>Anyone else found the Everdyn Blog?</title>
		<link>http://feedproxy.google.com/~r/TheArchestranaut/~3/gGtmO5aky4M/</link>
		<comments>http://www.avidsolutionsinc.com/blog/archestranaut/2013/01/anyone-else-found-the-everdyn-blog/#comments</comments>
		<pubDate>Fri, 11 Jan 2013 14:08:16 +0000</pubDate>
		<dc:creator>Andy Robinson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.avidsolutionsinc.com/blog/archestranaut/?p=566</guid>
		<description><![CDATA[Just came across these folks while following a thread on a linked in group.  They look like they have some really neat tools you should probably be checking out. http://www.everdyn.com/blog/ - The Archestranaut]]></description>
				<content:encoded><![CDATA[<p>Just came across these folks while following a thread on a linked in group.  They look like they have some really neat tools you should probably be checking out.</p>
<p>http://www.everdyn.com/blog/</p>
<p>- The Archestranaut</p>
<img src="http://feeds.feedburner.com/~r/TheArchestranaut/~4/gGtmO5aky4M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.avidsolutionsinc.com/blog/archestranaut/2013/01/anyone-else-found-the-everdyn-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.avidsolutionsinc.com/blog/archestranaut/2013/01/anyone-else-found-the-everdyn-blog/</feedburner:origLink></item>
		<item>
		<title>Recent Gotchas</title>
		<link>http://feedproxy.google.com/~r/TheArchestranaut/~3/6NuEP8lV2Hs/</link>
		<comments>http://www.avidsolutionsinc.com/blog/archestranaut/2013/01/recent-gotchas/#comments</comments>
		<pubDate>Fri, 04 Jan 2013 17:29:45 +0000</pubDate>
		<dc:creator>David Goodman</dc:creator>
				<category><![CDATA[System Platform]]></category>
		<category><![CDATA[aaGraphic.CustomPropertyValuePair]]></category>
		<category><![CDATA[aaGraphic.GraphicInfo]]></category>
		<category><![CDATA[AAPKG]]></category>
		<category><![CDATA[AOI]]></category>
		<category><![CDATA[copy animations]]></category>
		<category><![CDATA[DASABCIP]]></category>
		<category><![CDATA[External Access]]></category>
		<category><![CDATA[Field Attribute]]></category>
		<category><![CDATA[For loop]]></category>
		<category><![CDATA[script execution order]]></category>

		<guid isPermaLink="false">http://www.avidsolutionsinc.com/blog/archestranaut/?p=564</guid>
		<description><![CDATA[I have been buried in a System Platform project for several months now &#38; finally have a moment to surface.&#160; I ran into a few things that caused me a few headaches and am documenting them here to hopefully save everyone some time. 1) DASABCIP &#38; Optimize For UDT This project I’ve been on was [...]]]></description>
				<content:encoded><![CDATA[<p>I have been buried in a System Platform project for several months now &amp; finally have a moment to surface.&#160; I ran into a few things that caused me a few headaches and am documenting them here to hopefully save everyone some time.</p>
<p><span id="more-564"></span><br />
<h3>1) DASABCIP &amp; Optimize For UDT</h3>
<p>This project I’ve been on was using ArchestrA 2012 with an AB CompactLogix L45 (Rev 19).&#160; We’ve got AOIs that match 1-to-1 with templates, etc.&#160; One of the newer features in RSLogix is the ability to set an attribute’s external access level.&#160; In our AOIs, we set some things to “None”, some to “Read only”, and some to “Read/Write”.&#160; As it turns out, having a parameter with “None” did not play nicely with the “Optimize User Defined Data Types” checkbox.&#160; Since it’s been 4 months since I found this &amp; left myself a cryptic note to blog about it, I decided to verify this today.&#160; For the AOIs with an attribute with an external access of “none”, none of the attributes could be read or written.&#160; You get a series of errors in the SMC actually (Ends with: <em>Failed to add block &lt;04a692a0&gt; with base name TEST_Tag.XYZ in CIP_Port.Test_PLC_ENBT.Test_PLC_BP.Test_PLC_CLX, tag does not exist in the PLC or the tag or some of it&#8217;s UDT members is configured for External Access=None in the PLC</em>).&#160; The solution was to uncheck the “Optimize User Defined Data Types” checkbox.</p>
<h3>2) Field Attributes</h3>
<p>Also discovered something weird with field attributes in a template that are getting their IO assignment via scripting AND the “Output destination differs from input source” checkbox is UNCHECKED.&#160; The values were reading in just fine, but writes would not work.&#160; Apparently, this is a known issue with field attributes and you need to set the OutputDest anyway.&#160; I have verified this in testing (IAS 2012 P01).</p>
<h3>3) AAPKG Import</h3>
<p>I was importing some templates from another galaxy using aapkgs.&#160; The template is fairly complex and script execution order mattered for speed reasons.&#160; As an organizational scheme, I named the scripts in a way that they would sort in the IDE in the same order I intended them to execute.&#160; On a whim, I decided to check the script execution order after the import.&#160; The scripts were all out of order.&#160; My best guess is that they imported in the original order of creation (essentially by some identity column number from the galaxy DB).</p>
<h3>4) For Loops</h3>
<p>We’ve got a lot of ArchestrA code that gets a dataset from a database, retrieves the size of the dataset, and then iterates the dataset row by row.&#160; The problem is that unlike every other For instruction in the world, the ArchestrA For instruction tries to guess which direction to increment if the “Step #” is omitted.&#160; Note:&#160; I haven’t actually verified all of the other programming languages in the world.&#160; Most For instructions default to +1 as an increment when omitted.&#160; The ArchestrA one will default to +1 OR –1 depending on the direction from the starting variable to the ending variable.&#160; Seems rather innocuous until you do something like the snippet below &amp; your code starts bombing out when the end variable (i.e. Count) equals 0.&#160; </p>
<p> <font color="#800000" size="2" face="Courier New"><br />
<blockquote>
<p align="left"><b><font color="#800000">Count</font> </b></p>
<p>     <font color="#000000" size="2" face="Courier New"></font>= </p></blockquote>
<p>   <font color="#800000" size="2" face="Courier New"><b>SomeObject.Count</b><font color="#000000" size="2" face="Courier New"></font>;       <br /></font><font color="#00008b" size="2" face="Courier New"><b>For</b><font color="#000000" size="2" face="Courier New"></font> </font><font color="#800000" size="2" face="Courier New"><b>i</b><font color="#000000" size="2" face="Courier New"></font> = 1 </font><font color="#00008b" size="2" face="Courier New"><b>To</b><font color="#000000" size="2" face="Courier New"></font> </font><font color="#800000" size="2" face="Courier New"><b>Count        <br /></b></font><font color="#008000" size="2" face="Courier New">&#160;&#160;&#160; &#8216; Do Something      <br /></font><font color="#00008b" size="2" face="Courier New"><b>Next</b><font color="#000000" size="2" face="Courier New"></font>;</font></font></font>
<p align="left">So you end up having to wrap all of your For loops in if statements like this:</p>
<blockquote><p><font color="#800000" size="2" face="Courier New"><b>Count</b><font color="#000000" size="2" face="Courier New"></font> </font></font></font><font color="#000000" size="2" face="Courier New">= </font><font color="#800000" size="2" face="Courier New"><b>SomeObject.Count</b><font color="#000000" size="2" face="Courier New"></font>;         <br /><font color="#00008b" size="2" face="Courier New"><b>If</b><font color="#000000" size="2" face="Courier New"></font> (</font><font color="#800000" size="2" face="Courier New"><b>Count</b><font color="#000000" size="2" face="Courier New"></font> &gt; 0) </font><font color="#00008b" size="2" face="Courier New"><b>Then            <br />&#160;&#160;&#160; </b></font></font><font color="#00008b" size="2" face="Courier New"><b>For</b><font color="#000000" size="2" face="Courier New"></font> </font><font color="#800000" size="2" face="Courier New"><b>i</b><font color="#000000" size="2" face="Courier New"></font> = 1 </font><font color="#00008b" size="2" face="Courier New"><b>To</b><font color="#000000" size="2" face="Courier New"></font> </font><font color="#800000" size="2" face="Courier New"><b>Count          <br /></b></font><font color="#008000" size="2" face="Courier New">&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8216; Do Something        <br /></font><font color="#00008b" size="2" face="Courier New"><b>&#160;&#160;&#160; Next</b><font color="#000000" size="2" face="Courier New"></font>;         <br /><font color="#00008b" size="2" face="Courier New"><b>EndIf</b><font color="#000000" size="2" face="Courier New"></font>;</font></font></p>
</blockquote>
<p align="left">I’m sure they did it that way to prevent infinite loops, but it’s still a pain in the…</p>
<h3>5) Popup Graphics</h3>
<p>I had a few ArchestrA graphics that were only called via scripting like the example below.</p>
<p> <font color="#00008b" size="2" face="Courier New"><br />
<blockquote>
<p align="left"><b><font color="#00008b" size="2" face="Courier New"><b>Dim</b><font color="#000000" size="2" face="Courier New"></font> </font></b><font color="#000000" size="2" face="Courier New"></font></p>
<p>     <font color="#800000" size="2" face="Courier New"><b>graphicInfo</b><font color="#000000" size="2" face="Courier New"></font> </font><font color="#00008b" size="2" face="Courier New"><b>As</b><font color="#000000" size="2" face="Courier New"></font> </font><font color="#800000" size="2" face="Courier New"><b>aaGraphic.GraphicInfo</b><font color="#000000" size="2" face="Courier New"></font>;         <br /></font><font color="#00008b" size="2" face="Courier New"><b>Dim</b><font color="#000000" size="2" face="Courier New"></font> </font><font color="#800000" size="2" face="Courier New"><b>cpValues</b><font color="#000000" size="2" face="Courier New"></font>[2] </font><font color="#00008b" size="2" face="Courier New"><b>As</b><font color="#000000" size="2" face="Courier New"></font> </font><font color="#800000" size="2" face="Courier New"><b>aaGraphic.CustomPropertyValuePair</b><font color="#000000" size="2" face="Courier New"></font>;         </p>
<p></font><font color="#000000" size="2" face="Courier New"><font color="#008000" size="2" face="Courier New">&#8216; Set the input parameter values          <br /></font><font color="#800000" size="2" face="Courier New"><b>cpValues</b><font color="#000000" size="2" face="Courier New"></font>[1] = </font><font color="#00008b" size="2" face="Courier New"><b>new</b><font color="#000000" size="2" face="Courier New"></font> aaGraphic.CustomPropertyValuePair(</font><font color="#0000ff" size="2" face="Courier New">&quot;Command&quot;</font><font color="#000000" size="2" face="Courier New">, </font><font color="#0000ff" size="2" face="Courier New">&quot;YesNo&quot;</font><font color="#000000" size="2" face="Courier New">, </font><font color="#00008b" size="2" face="Courier New"><b>True</b><font color="#000000" size="2" face="Courier New"></font>);           <br /></font><font color="#800000" size="2" face="Courier New"><b>cpValues</b><font color="#000000" size="2" face="Courier New"></font>[2] = </font><font color="#00008b" size="2" face="Courier New"><b>new</b><font color="#000000" size="2" face="Courier New"></font> aaGraphic.CustomPropertyValuePair(</font><font color="#0000ff" size="2" face="Courier New">&quot;Message&quot;</font><font color="#000000" size="2" face="Courier New">,          <br />&#160;&#160;&#160; </font><font color="#0000ff" size="2" face="Courier New">&quot;Are you sure you want to delete this?&quot;</font><font color="#000000" size="2" face="Courier New">, </font><font color="#00008b" size="2" face="Courier New"><b>True</b><font color="#000000" size="2" face="Courier New"></font>);</font><font color="#000000" size="2" face="Courier New">          </p>
<p></font><font color="#008000" size="2" face="Courier New">&#8216; Setup the popup graphic properties          <br /></font><font color="#800000" size="2" face="Courier New"><b>graphicInfo.Identity</b><font color="#000000" size="2" face="Courier New"></font> = </font><font color="#800000" size="2" face="Courier New"><b>TempName</b><font color="#000000" size="2" face="Courier New"></font>;           <br /></font><font color="#800000" size="2" face="Courier New"><b>graphicInfo.GraphicName</b><font color="#000000" size="2" face="Courier New"></font> = </font><font color="#0000ff" size="2" face="Courier New">&quot;Me.gr_MessageBox&quot;</font><font color="#000000" size="2" face="Courier New">;          <br /></font><font color="#800000" size="2" face="Courier New"><b>graphicInfo.Resizable</b><font color="#000000" size="2" face="Courier New"></font> = </font><font color="#00008b" size="2" face="Courier New"><b>False</b><font color="#000000" size="2" face="Courier New"></font>;           <br /></font><font color="#800000" size="2" face="Courier New"><b>graphicInfo.HasTitleBar</b><font color="#000000" size="2" face="Courier New"></font> = </font><font color="#00008b" size="2" face="Courier New"><b>False</b><font color="#000000" size="2" face="Courier New"></font>;           <br /></font><font color="#800000" size="2" face="Courier New"><b>graphicInfo.WindowType</b><font color="#000000" size="2" face="Courier New"></font> = 1; </font><font color="#008000" size="2" face="Courier New">&#8216; 0 = Modal; 1 = Modeless          <br /></font><font color="#800000" size="2" face="Courier New"><b>graphicInfo.WindowRelativePosition</b><font color="#000000" size="2" face="Courier New"></font> = 1; </font><font color="#008000" size="2" face="Courier New">&#8216; 1 = Window          <br /></font><font color="#800000" size="2" face="Courier New"><b>graphicInfo.WindowLocation</b><font color="#000000" size="2" face="Courier New"></font> = 0; </font><font color="#008000" size="2" face="Courier New">&#8217;0 = Center          <br /></font><font color="#800000" size="2" face="Courier New"><b>graphicInfo.CustomProperties</b><font color="#000000" size="2" face="Courier New"></font> = </font><font color="#800000" size="2" face="Courier New"><b>cpValues</b><font color="#000000" size="2" face="Courier New"></font>;           </p>
<p></font></font><font color="#008000" size="2" face="Courier New">&#8216; Show the popup graphic        <br /></font><font color="#000000" size="2" face="Courier New">ShowGraphic(</font><font color="#800000" size="2" face="Courier New"><b>graphicInfo</b><font color="#000000" size="2" face="Courier New"></font>);</font></p></blockquote>
<p> </font>
<p align="left">When I made changes to theses graphics that were only popped up via scripting, those changes didn’t deploy out.&#160; What I realized was that the system didn’t know these graphics were even used by the system.&#160; I understand it would be an incredible pain to have to troll through all of the scripting to figure out what graphics are used dynamically.&#160; My workaround was to include a hidden (invisible) element on one of my graphics that called the popup in the traditional fashion.&#160; This provided the system with a reference to indicate that it should be deployed out.&#160; My invisible element was a piece of text that said “Do NOT delete this or else certain popups will not be deployed out.”</p>
<h3>6) Animation Copying</h3>
<p>This isn’t a gotcha, but a new feature one of my colleagues showed me the other day.&#160; At least I think it’s new.&#160; I certainly haven’t noticed it before if it isn’t new.&#160; You can copy &amp; paste animations from one ArchestrA graphic element to another.&#160; That’s a great time saver.</p>
<p><a href="http://www.avidsolutionsinc.com/blog/archestranaut/wp-content/uploads/2013/01/image.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.avidsolutionsinc.com/blog/archestranaut/wp-content/uploads/2013/01/image_thumb.png" width="264" height="319" /></a></p>
<img src="http://feeds.feedburner.com/~r/TheArchestranaut/~4/6NuEP8lV2Hs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.avidsolutionsinc.com/blog/archestranaut/2013/01/recent-gotchas/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://www.avidsolutionsinc.com/blog/archestranaut/2013/01/recent-gotchas/</feedburner:origLink></item>
		<item>
		<title>Beware the Wimpy CPU</title>
		<link>http://feedproxy.google.com/~r/TheArchestranaut/~3/i9T7io8DfWc/</link>
		<comments>http://www.avidsolutionsinc.com/blog/archestranaut/2012/12/beware-the-wimpy-cpu/#comments</comments>
		<pubDate>Tue, 04 Dec 2012 12:00:00 +0000</pubDate>
		<dc:creator>Andy Robinson</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[Speed]]></category>
		<category><![CDATA[SSD]]></category>

		<guid isPermaLink="false">http://www.avidsolutionsinc.com/blog/archestranaut/?p=559</guid>
		<description><![CDATA[We are engaged with a customer where we are delivering System Platform on standalone skids.&#160; It’s a pretty new experience for us.&#160; We’re used to stacking up a bunch of Dual Xeon servers with tons of RAM with thousands and thousands of IO.&#160; This one was quite different.&#160; We are running everything on a single, [...]]]></description>
				<content:encoded><![CDATA[<p>We are engaged with a customer where we are delivering System Platform on standalone skids.&#160; It’s a pretty new experience for us.&#160; We’re used to stacking up a bunch of Dual Xeon servers with tons of RAM with thousands and thousands of IO.&#160; This one was quite different.&#160; We are running everything on a single, fanless PC mounted in a stainless steel enclosure with a few hundred IO.</p>
<p>Early on in the process we were given a pretty tight power requirement so we ended up with a Intel Atom D525 processor in our unit.&#160; It booted quickly.&#160; We didn’t have any obvious issues during development.&#160; Programs opened and closed quickly, everything seemed ok.&#160; To be fair we did most of our development on our VSphere infrastructure so we only had a small amount of time before FAT for full blown testing.</p>
<p><span id="more-559"></span>
<p>Testing started off ok enough.&#160; InTouch opened quickly, navigation worked ok.&#160; We’re used to seeing small delays as you change screens and IO is subscribed.&#160; Everything fell apart, however, when we started doing some apparently CPU intensive activities.&#160; If you reference a previous article where we discuss how to handle mega super huge arrays.&#160; We were using this approach on this system.</p>
<p><a title="http://www.avidsolutionsinc.com/blog/archestranaut/2011/10/async-scripts-without-using-async/" href="http://www.avidsolutionsinc.com/blog/archestranaut/2011/10/async-scripts-without-using-async/">http://www.avidsolutionsinc.com/blog/archestranaut/2011/10/async-scripts-without-using-async/</a></p>
<p><a title="http://www.avidsolutionsinc.com/blog/archestranaut/2011/10/writing-object-with-dynamic-hyper-scale-io/" href="http://www.avidsolutionsinc.com/blog/archestranaut/2011/10/writing-object-with-dynamic-hyper-scale-io/">http://www.avidsolutionsinc.com/blog/archestranaut/2011/10/writing-object-with-dynamic-hyper-scale-io/</a></p>
<p>We went from a particular formula download process taking approximately 15 seconds tip to tail to almost 3 minutes!&#160; Holy cow… that’s not going to work.&#160; With necessity being the mother of invention we cracked open our algorithms and squeezed out some more efficiencies to the point we got this down to about 1.25 minutes.&#160; Much better but still not great.&#160; </p>
<p>First thing we looked at was memory usage.&#160; In this unit we had 4 GB of RAM and we were using less than half.&#160; No issues there.&#160; Ok, it must be the disk.&#160; This unit had a junker 5400 RPM drive so obviously that was the problem.&#160; Easy to fix we thought.&#160; I just do happened to have an Intel SSD at the house (building a VSphere server at home… yes dorkdom personified) so I brought this in to run testing.&#160; First off the unit now booted like demon.&#160; So fast you almost didn’t see the startup screens etc.&#160; Sweet, we’ve got this one licked.&#160; Run our test.. absolutely no improvement.&#160; Hrmmm.&#160; After sitting around and thinking about it we realized our slowdown didn’t really have anything to do with checkpointing which would have been most directly related to disk performance.&#160; We should have figured this out when we moved our checkpoint from our spinning disk to a slower compact flash card installed in the unit and saw no change in speed.&#160; All that was left was CPU</p>
<p>So, after discussions with the customer we order a new unit with a Core i7 processor, the best desktop CPU you can purchase right now.&#160; After a little magic with Acronis transferring the system image we were back up and running.&#160; First test, down under 30 seconds!&#160; Success but not perfect.&#160; We were hoping to get back to our 15 second time frame.&#160; The best we can guess is that our VSphere platform had so much CPU horsepower we probably wouldn’t be able to match that in a single fanless unit.&#160; A big consideration is the heat load.&#160; Because this unit was in a sealed enclosure we had to be very cautious about how much head the CPU generated.</p>
<p>The key learning here is that even though a particular setup seems fine you need to make sure you test end to end with all of your code before declaring a particular hardware platform good enough.</p>
<p>Something we found during this process was a great site to help you look at relative CPU speeds before you purchase.&#160; People use to worry about clock speeds and assume 2.5 GHZ was always better than 2.0 GHZ.&#160; What if the 2.0 GHZ unit has 8 cores and the 2.5 GHZ was a dual core.&#160; Well obviously the 2.0 GHZ unit is much more of a workhorse.&#160; The site we found is referenced below:</p>
<p><a title="http://www.cpubenchmark.net/" href="http://www.cpubenchmark.net/">http://www.cpubenchmark.net/</a></p>
<p>Of interest are the relative speeds of the CPU’s we played with.&#160; The Atom D525, the original low power unit, had a relative speed number of 772 units.&#160; This is an aggregation of a lot of tests so it’s a general reference, not a guarantee of how your application will perform.&#160; Our new CPU was an Intel Core i7-2655LE.&#160; The relative performance for this one was 2674 units, almost a 4x improvement.&#160; As you can see from the above discussion above we didn’t speed things up by 4x but we did make a substantial improvement.</p>
<p>One last caveat.&#160; One i7 processor that’s close in clock speed to another doesn’t mean a small difference.&#160; For example the Core i7 2600K @ 3.4GZ vs. 2.2 GHZ for our chosen unit had a relative performance index of 8652, almost 3.5x difference.&#160; </p>
<p>Does anyone else have a similar experience to discuss?&#160; Part of being a system integrator is making lots of decisions based on experience and a hunch; without all the information you need when your putting together hardware for a project.&#160; If your good most of the time everything works out ok.&#160; Sometimes things don’t turn out perfect and you have to scurry to find a solution.&#160; That scurry and effort is usually the difference between a one time job and repeat customer.</p>
<p>- Andy</p>
<img src="http://feeds.feedburner.com/~r/TheArchestranaut/~4/i9T7io8DfWc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.avidsolutionsinc.com/blog/archestranaut/2012/12/beware-the-wimpy-cpu/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.avidsolutionsinc.com/blog/archestranaut/2012/12/beware-the-wimpy-cpu/</feedburner:origLink></item>
	</channel>
</rss>
