Tuesday, December 11, 2012

But ten heads without wit, I wene as good none..



Single Headed Redundancy
All animal mammal life, including human life has a great deal of symmetry and therefore headwise redundancy of sensory input.  Yes we only have one mouth, but we do have two eyes we have two ears and we have two nostrils... also apparently two brains in one as well.  So apparently Apollo had a redundant twin sister, Artemis.  Diversity in power, the power of two gods being better than one, or even take one if not the other.
"Some heades haue taken two headis better then one: But ten heads without wit, I wene as good none." 16century Proverb.

 Artemis : flickr photo attributed to Efthimiadis.

In this post we can look at the overall aspect of redundancy where we have redundant measurements providing signals to redundant local real-time processors.

Last invensysscada blog post if you recall, discussed configured processing rather than programmatic processing.  In this post I hope to show how those same intrinsic data functions can be used in real-time to resolve the choice of measurement based on reach-ability and a configured priority.

The use of the intrinsic data function =BEST_QP(a,b,c)
Looking at the case described in the figure.  The measurements {m1,m2} represent redundant measurements of the same physical variable. Each Input stage [I] transmits it's result to both processors. Each processor executes the configured IDF function [=BEST_QP] which takes as it's argument both measurements m1 and m2 and also a configured preference for either the first argument or the 2nd argument.  This allows the system to pre-wire [a bit like the nervous system] to pre-wire a preference to use m1 for processor A and m2 for processor B. Should the connection from m2 to the A processor fail, then it's not a big deal, we can avoid a lot or processing if we can state a preference for a particular measurement.  The function also compares the associated quality of m1 and m2.  So therefore the intrinsic logic of the function BEST_QP is:-

Artemis' Nerves ? [Image_Editor, Flickr]

if arg(3) = 1 then  
if m1.quality = GOOD then
Pa = m1
Pa.quality = m1.quality
Else
  if m2.quality = GOOD then
P = m2
P.quality = m2.quality
  else
P = Pa.last_good_value
P.quality = LAST_GOOD_VALUE
  Endif
Endif
elseif arg(3) = 2
if m2.quality = GOOD then
P.value = m2
P.quality = m2.quality
Else
  if m1.quality = GOOD then
P = m1
P.quality = m1.quality
  else
P = Pb.last_good_value
P.quality = LAST_GOOD_VALUE
  endif
Endif
Endif


I think this basic program should be self evident, if it isn't let me know .. it should match up with the diagram above.  One way to think about intrinsic data functions is.. think of the nervous system, with hardwired branches and cross-overs. Technique is pretty much drilled into our nervous systems and practice morphs the way our nerves are structured.  IDFs allow us to pre-wire the behaviour and signal paths for redundancy without having to clutter up the main process application.

Anyway - once this basic idea is set - I will go back to the gateway concept and look at where IDF path centric functions will fit into the architecture. .. Christmas is coming ! Advent 2012 ! Chris Smith ! Sydney ! Australia.

No comments:

Post a Comment

Popular Posts