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 »
4 Comments |
IAS Scripting |
Permalink
Posted by David Goodman
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 »
2 Comments |
IAS Scripting |
Permalink
Posted by David Goodman
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 »
6 Comments |
Leveraging .NET |
Permalink
Posted by David Goodman
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 »
5 Comments |
Leveraging .NET, Security |
Permalink
Posted by David Goodman
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 »
8 Comments |
Leveraging .NET |
Permalink
Posted by David Goodman
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 »
4 Comments |
Wonderware Alarm Logger |
Permalink
Posted by David Goodman
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 »
No Comments » |
IAS Scripting |
Permalink
Posted by David Goodman
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 »
No Comments » |
IAS Scripting |
Permalink
Posted by David Goodman
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 »
5 Comments |
IAS Scripting |
Permalink
Posted by David Goodman