RSS .92| RSS 2.0| ATOM 0.3
  • Home
  • About ArchestrAnaut Blog
  • About Our Authors
  • Email Subscription
  •  

    WriteStatus Function in QuickScript Library

    February 8th, 2011

    I’m currently exploring ways of verifying a write has been completed or gets stuck.  I ran across the WriteStatus function that comes with the QuickScript function library.  I was trying to use it, but it always returned MxStatusOk even for items with bad quality.

    Read the rest of this entry »


    Auto Assigning IO

    December 30th, 2010

    One of the things we do a lot of is automatically assigning IO to a corresponding IAS object or a PLC data structure.  We’ve tried several different auto-assignment schemes.  We had two main requirements:  be scalable and be reliable.

    Read the rest of this entry »


    Late-Binding .NET Calls in IAS

    November 11th, 2010

    I’ve been working on something today to log custom warning or error messages to the SMC from an IAS script.  I did a little sniffing around with Red Gate’s .Net Reflector and found an existing DLL with the ArchestrA.Diagnostics namespace in it.  It has a class with some static calls to log messages to the SMC.

    Read the rest of this entry »


    Bringing a PLC into the ActiveDirectory Fold

    November 5th, 2010

    Most of our IAS systems have a lot of vendor provided pieces of equipment (aka skids).  Those skids usually have their own PLC and HMI.  The HMI’s usually have some function to login and they apply security based on the users group or security level.  Most of them have common or shared accounts that everybody knows the password for (even the disgruntled guy you just fired).

    The other way that shows up a lot is having individual user account & privileges being role based.  If you have 15 users and 30 skids, that becomes a management nightmare trying to disable users, remember passwords, etc.  You could draw the same corollary to a bunch of Windows PCs’.  Security would be much easier to manage from a single location.  Our IAS system are always built on top of a Windows ActiveDirectory (AD) Domain.  This at least simplifies all of the SCADA security to be managed in one place:  the domain controller (DC).  Wouldn’t it be nice to use that to manage the skids too?

    Read the rest of this entry »


    Using .NET in IAS Scripting

    October 29th, 2010

    IAS is as flexible as or more flexible than any other platform out on the market in terms of the breadth of programming possibilities. The concept of inheritance makes it possible to make changes at a template level and all of its children (templates & instances) will be changed too. Equally as powerful is IAS’s inclusion of .NET in their QuickScript language.

    Read the rest of this entry »


    Getting Around Limitations in Logging Alarms

    October 29th, 2010

    Andy & I have always been fairly frustrated with the Wonderware Alarm Logger service.  It almost seems like an afterthought for System Platform (just look at the service name:  New_AlarmLogger).  Perhaps the most frustrating part is trying to integrate it into a system with redundant App Servers.  To the developers:  please integrate this into the System Platform in a future release.

    Read the rest of this entry »


    Writing Robust Scripts in IAS: Building Composite DataChange Expressions

    October 11th, 2010

    In my last article, I discussed a more reliable way of writing DataChange scripts. We often write scripts that are intended to be executed if one of multiple values change state or if a certain set of conditions occur. For the latter of the two scenarios, we write a simulated OnTrue / OnFalse script in the method described by the previous article.  Both scenarios require a composite value to execute a data comparison on.

    Read the rest of this entry »


    Writing Robust Scripts in IAS: Building DataChange Scripts that are Guaranteed to Execute

    October 4th, 2010

    In my last article, I laid out the basics on the inner workings of IAS objects and pointed out a few basic pitfalls.  The most important of these is the reliability of DataChange, OnTrue, and OnFalse scripts.  In a heavily loaded system, the AppEngine can spend too much time doing housekeeping work (i.e. checkpointing or communication with its redundant partner engine).  This leads to scan overruns which can be monitored (via object viewer or historizing) the AppEngine’s Scheduler.ScanOverrunCnt variable.

    Read the rest of this entry »


    Intro to Writing Robust Scripts in IAS

    September 27th, 2010

    In implementing the latest project, we have discovered many tips & tricks to improving reliability of ArchestrA objects.  In this series of blogs, I am going to shed a little light on some potential pitfalls in ArchestrA scripting and some useful workarounds.

    Read the rest of this entry »