Monday, November 24, 2014

Metadata Nomenclature for ZOOMS units and parameters

So in the world of industrial automation, there's this S88 standard for batch.  And while it doesn't address everything, it is an oldie, but goodie.

S88 talks about an equipment hierarchy, which is a way of saying:

Your equipment can be named like so that each unit is unique.

Here's an example:

Suppose you're standing in your plant looking at a your three production fermentors: F101, F102, and F103
equipment hierarchy example s88
And let's suppose that they are located in the Fermentation suite of your brewery.

Let's say your brewery is in Davis, California and the name of your company is Zymurgy Brewing.

Well then one way to name that production fermentor: F101 is as follows:

/Zymurgy/Davis/Fermentation/F101

and for the rest of your units:

/Zymurgy/Davis/Fermentation/ProductionFermentor/F101
/Zymurgy/Davis/Fermentation/ProductionFermentor/F102
/Zymurgy/Davis/Fermentation/ProductionFermentor/F103

Now let's suppose Zymurgy acquires a brewery in Dixon, CA with the same unit names: F101, F102, F103, but at that brewery, those units are portable tanks:

/Zymurgy/Dixon/Fermentation/PortableTanks/F101
/Zymurgy/Dixon/Fermentation/PortableTanks/F102
/Zymurgy/Dixon/Fermentation/PortableTanks/F103

By identifying units with their hierarchy, it's very difficult to get "collisions" where two units with the same name, have the same exact hierarchy.

Now it's easy to declare "F101, Agitation" or "F103, Air Flow"

Easy right?

Well suppose you didn't want to name your units that way.  Suppose you want the unit to be:

DIX.F101
DIX.F102
DIX.F103

That's fine, too... at least within ZOOMS.

The next hiccup with metadata nomenclature is trying to figure out which part of the descriptive goes in the unit vs which part goes in the parameter.

For example, suppose you had a water chiller:

VV.CHILLEDWATER4000 could be the unit and Temperature could be the parameter.

Alternatively, you may go with:

VV.CHILLER4000 as the unit Water Temperature as the parameter.

Should "Water" be in the unit name or should it be in the parameter?  

There's no hard rule... only that the unit and the parameter should have high reuse.   This is to say, if you have multiple homologous units, yet one is "Temperature" while the other is "Water Temperature," there's probably a better way to handle your naming.

Sunday, November 9, 2014

Could not load file or assembly 'X' or one of its dependencies.

You're seeing this Configuration Eror:

Configuration error ASP.NET ZOOMS

And you're using IIS7 with ASP.NET and using 32-bit applications.

Chances are, you just installed a fresh copy of IIS and you haven't changed around any defaults.

You're in luck because the fix is easy.  Here's what's going on.

The default installation of IIS 7 is to disable 32-bit Applications.  Afterall, IIS 7 comes with Server 2008 and Server 2008 is an x64 system.

So all you have to do to get rid of this error is to Enable 32-bit Applications in IIS.  Here are the steps:
  1. Go to Start and type in inetmgr to launch IIS
  2. In the left page, select Application Pools
  3. In the middle pane, select the application pool corresponding to the web-application that is giving you this error.
  4. In the right pane, select Advanced Settings:
    IIS AppPool Advanced Settings 
  5. This is what you'll see: Enable 32-bit Applications is set to False.
    AppPool defaults
  6. Go ahead and set that to True:
    AppPool enable 32-bit applications
  7.  Click OK
And you're super awesome application that depends on 32-bit DLLs is back in business:

ZOOMS works