Intro


This blog is dedicated to open, interoperable manufacturing software and the coolest, latest and greatest things I see every day while conducting business under the banner of Inductive Automation.

Hello, my name is Steve Hechtman and I am president of Inductive Automation. During the span of one day there is more excitement, more discovery than I can possibly keep to myself. This blog is, therefore, my outlet. WARNING: This site is highly biased in favor of the most powerful, affordable manufacturing software in the world - Ignition by Inductive Automation!

Monday, February 11, 2013

News Flash re OPC-UA

My recent post "Imagine OPC-UA Everywhere" has been one of the most active posts ever which indicates the high degree of interest in UA.  In that post I said once hardware providers start integrating OPC-UA into their products it will be a beautiful world, but I also said there is little motivation for them to do so.  Well the floodgates might be opening up sooner than I thought.  Invensys just made the following announcement...
"Invensys has also embedded OPC UA communications with its Triconex Trident and Triconex General Purpose safety instrumented systems. OPC UA maximizes interoperability between systems and streamlines connectivity through open platform architecture and future-proof design. The new communications interface module contains an embedded OPC UA server that supports up to 10 concurrent clients, delivering high performance and secure, reliable communication of real-time data, alarms and historical events."

The announcement just came out today.  The way I see it this is a major development in the forward progress of OPC-UA.  Who's next?


Monday, February 4, 2013

New SECS GEM Driver Availability



I've been working on a special project to develop a SECS driver for some time and it's almost here.  We'll be entering the beta test period soon.  If you aren't familiar with SECS it refers to Semiconductor Equipment Communications Standard.  Or from Wikipedia:


"The SECS/GEM is the semiconductor's equipment interface protocol for equipment-to-host data communications. In an automated fab, the interface can start and stop equipment processing, collect measurement data, change variables and select recipes for products. The SECS (SEMI Equipment Communications Standard)/GEM (Generic Equipment Model) standards do all this in a defined way."


SECS/ GEM Ignition Module
The GEM/SECS Module can stand alone in the Ignition Server for use with third-party applications or work seamlessly with other Ignition modules and projects to create rich applications. Third-party applications interface with equipment nicely by use of SQL database tables as the interface mechanism.

By use of a simple definition file any SECS message (including custom ones) can be supported.  Messages can be sent to equipment simply by  inserting a row into the NewMessage table.  Responses are stored in the Message table.  

Handling Complex Data

SECS messages can contain complex data structures in that they can have any number of items within lists and any number of lists within lists. For this reason SECS messages are serialized into JSON (JavaScript Object Notation, in this case it has nothing to do with Javascript) strings before they are inserted into the database. JSON is a human readable data-interchange format. JSON is well supported in most languages which is why it was selected to represent complex data.  Within Ignition JSON structures can be encoded/decoded to/from native structures like lists by using built-in scripting commands.

Handling Real-Time Data

Some SECS messages provide for streaming real-time data.  By configuring the message definition file, data can be marked for real-time usage so that equipment responses not only enter the message table but also the real-time table.  Rows only get inserted once and get updated when new data arrives.  So there is only one row for each monitored value (or complex data structure) and it always has the most recent data .  This way the real-time table never grows beyond the number of monitored values and keeps the table size manageable and query times low.  Eventually the real-time table will be reflected out into Ignition SQLTags for drag and drop ease of use.

This driver should be generally available the second quarter of 2013.


Thursday, January 31, 2013

Controller with integrated OPC-UA

I said I hoped I was wrong about PLC vendors not supporting integrated OPC-UA. That was in my last post and as it turns out, to some extent I was wrong, which is good.  Matthias Damm pointed out that at least three PLC vendors are shipping with integrated OPC-UA interfaces, including Beckoff, Bosch Rexroth and B&R.

I did a little searching on Beckhoff, Bosch Rexroth and B&R to find out more about these controllers and found the Beckoff CX8091 controller right away but came away empty handed for the latter two.  I'm hoping someone can help point me in the right direction on those two.

According to their website the Beckhoff controller is estimated for market release in the 2nd quarter of 2013.  It is programmed using IEC 61131-3 languages and most importantly supports online programming changes.  As you can see, they have the OPC-UA logo in the lower middle of their product.

Another poster pointed out that SAP and iTAC (who is iTAC anyway?) have already implemented OPC-UA.  As I pointed out in my last post, it's not the software companies that are the problem.   Most pure software companies have already adopted.  It's the hardware companies that are lagging.

Kudos to the software companies who are now on-board, and kudos to Beckhoff for their new controller, but as I search the web for other hardware, particularly PLCs, with integrated OPC-UA, it is kind of spooky how empty the space is.  So if Bosch Rexroth and B&R have it then why can't I find it with a web search?  Are they just not promoting it?  Someone please shed some light on this.

In my last post I pointed out three firms that provide SDKs for embedded OPC-UA.  Matthias points out another provider is Unified Automation which provides a full range of OPC-UA SDKs and development tools for ANSI C, C++, Java and .NET.

All the tools are there, all that's missing is the motivation.

Tuesday, January 22, 2013

Imagine OPC-UA Everywhere

I did a little fact checking to find out if there are any PLC controllers available with OPC-UA embedded.  As far as I can tell, none are available yet.  I found a page for the OPC Technology Summit 2012 which has downloadable presentations from major automation vendors like Rockwell, Siemens, and ABB.  Each laid out their OPC-UA adoption roadmap.

How is it these presentations glow about the wonderful virtues of OPC-UA, yet you can't find a PLC with OPC-UA embedded?  (Please tell me if I'm wrong, I hope I am.) There's certainly no technological barrier preventing it. There are many OPC-UA development tools available from companies like Prosys OPC and OPC Labs. Embedded Labs even provides OPC-UA on a chip that costs less than five dollars.

Adoption Roadmap
But, there is a glimmer of hope. Each of these manufacturers has put embedded OPC-UA on their adoption roadmap. They say they are going to do it, but not one has said when. This is especially interesting when you consider Inductive Automation and most other pure software companies have had OPC-UA for years now. Works great.

So what's so special about OPC-UA? Secure, simple, cross platform, flexible, standardized.  Enough said?

Imagine OPC-UA Everywhere
Imagine a world of 100% OPC-UA.  Gets me all excited because it would take the pain out the subject of intercommunication, between devices, between enterprise applications, and between devices and enterprise applications. For example, from the Ignition server running right here on my desktop I can connect to any number of other Ignition servers running on other people's machines in just minutes. And I can connect to Kepware servers running on other machines with similar ease. Now if I only had a few OPC-UA-enabled PLCs to connect to, the world would be beautiful. I won't hold my breath.

Sadly, when I mention this beautiful vision people usually roll their eyes and sigh a wistful sigh. (Try it sometime, it's true.) They know it should be but there's a tacit reality that even though it would be right for end-users and integrators, there's little incentive for PLC vendors to be more open.

Security as an Incentive
However, there's a good reason for hardware vendors to adopt OPC-UA that has nothing to do with openness. It is the one thing they are being beaten up about and that's security. OPC-UA is very, very secure and that solves a lot of their problems. It has built-in encryption and can use certificates to ensure end-points are who they say they are. We wrote our OPC-UA client and server from the ground up (from the specification) which was no easy feat mainly because of all the security involved. And speaking of that, anyone who attempts to create proprietary security schemes based on secrecy is going to be the least secure of all. Encryption and security schemes that are exposed to general public scrutiny (like the OPC-UA specification) will be tested and vulnerabilities exposed so they can be fixed.

I wrote this post because I thought it would be fun to imagine what it would be like if the anarchy of endless communication protocols was gone and we could experience the simple, secure, and standardized beauty of OPC-UA to communicate between all devices and software applications.


Friday, November 2, 2012

Java and Manufacturing: A Perfect Match

The expectation in the controls business is that most systems should last 15–20 years. Walk through any (older) facility and it's normal to find controllers at least that old. But unlike hardware most industrial software never makes it that far. The reason can be found here in my earlier post.  Operating systems change and software technologies come and go. This wreaks havoc on most industrial software applications since they're built on top of these.

Look at Silverlight. Silverlight delivers stunning graphics with minimal programming. When Silverlight was released quite a few software companies adopted it. But it now appears that Microsoft has abandoned Silverlight in favor of HTML5.  In this business, the longevity of technology is far more important than sparkle and glamour.

I know an industrial software specialist who worked for a competitor. He told me whenever Microsoft released a new update his phone would ring off the hook. He dreaded it so much he would stop answering his phone for the rest of the day.

We've been using Java since 2003. The Java Runtime Engine (JRE) creates an insulating layer between Java applications and the underlying OS. This insulates Java applications from disruption when the underlying OS changes, i.e. patches, security updates, upgrades, etc. What Java gives up in glamour it gains in stability and longevity.   Java changes for all the right reasons and none of the wrong ones (greed).  We chose to build on Java with this in mind.  But I've had to wonder about it because for many years no one else was following suit.

Then a couple of years ago I discovered a motion control system that was configured and programmed via a Java WebStart client and I felt vindicated. Not only does this provide longevity but it guarantees you'll always have access to the correct version of the designer tool (what a novel idea!).

But that's not all. Last week I heard a rumor that a major automation vendor is migrating all their software to Java. Since they haven't formally announced it I won't spill the beans and steal their thunder. But you'll be hearing about this soon enough. It's satisfying to know now that we set the trend and that others are finally catching on.

Java delivers on the software end what matters most – longevity and stability.


Saturday, October 20, 2012

What we Believe


People who know us know we are passionate about Ignition. This derives from the fact that we come from system integrator roots and originally built it for ourselves based on our trials and tribulations while trying to give our customers what they wanted at a price they could afford. Originally, I didn't want to be in the software business but was forced into it because no matter where I looked the model was the same and unworkable for most of my needs. These beliefs form our DNA and are the reason we exist:

We believe existing licensing models are outdated, unfair and punitive.
We believe most of the technology in use today is clumsy and outdated.
We believe in leveraging modern web and database technologies.
We believe runtime clients should be free.  
We believe that tag limits should be abolished.
We believe that development tools should be free.
We believe in licensing by the server and that it should include everything.
We believe in open connectivity and that closed, proprietary systems are dumb.
We believe it shouldn't matter what operating system you run on.
We believe you should be able to connect to any brand or number of databases.
We believe you should be able to make data-rich applications quick and easy.
We believe in central management and single click deployment.
We believe that software should install in minutes.
We believe in free and fully functional trial downloads.
We believe you shouldn’t have identify yourself to try software.
We believe prices should be published openly and on the web.
We believe that ridiculously high support fees are ridiculous.
We believe email and forum support should be free.

We believe it is paramount to always deliver more than is expected.

Finally, we believe the foregoing principles improve business results by making actionable information (and control) available to those who need it without imposing unreasonable barriers.


Wednesday, October 17, 2012

VOIP Systems

VOIP relates to telephony and stands for "Voice Over IP".  Many companies now use VOIP for their telephone systems.  While the cost and complexity of VOIP systems has been a barrier to entry in the past, now the open-source Asterisk software makes implementing and managing VOIP phone systems of any size affordable.

At Inductive Automation we run Asterisk on a modest Dell server machine and use affordable Polycom VOIP handsets.  There was a bit of a learning curve in the beginning, but we got over it and now it's a piece of cake for us to manage all of our calling features from a web page. And unlike other systems we had in the past we can keep adding extensions without limit.

There are now several inexpensive "all-in-one" VOIP systems on the market.  These have from 1 to 8 FXO ports (standard outside line) to connect to telco and don't require a PC at all.  It's just an appliance running the Asterisk software.  We've been experimenting with a couple of these.  One of these is made in Australia by Rowetel.  The one FXO line version is pictured above.  I believe it can support a good number of extensions.  A box like this would be perfect for home use.  The four or eight line version might perfect for a small business.  And nothing could be more affordable - the box above only costs $175 USD.

If you're wondering why we're experimenting with these cool little boxes, stay tuned.  You'll find out what it's all about in the first quarter of 2013.


Saturday, October 13, 2012

NoSQL with Ignition? Is that possible?

One of our guys, Kevin McClusky,  came up with a way to integrate the NoSQL database MongoDB with Ignition.  Please realize that MongoDB does not respond to SQL queries, rather, it has it's own unique set of commands. But using these commands and Kevin's "how-to" in his blog post here you will be able to use MongoDB in Ignition.  

You can also read more about NoSQL databases from my earlier post here.


Wednesday, October 10, 2012

Big Software Company Mentality

There are big software companies with a small company mentality, and that's a good thing.  And then there are small software companies with a big company mentality, and that's a bad thing.  And then there are big software companies with a big company mentality and that is a very bad thing.  

How do I define the big company mentality?  Arrogant.  Ignorant.  Happy to go on being that way.  

Have you ever visited a site and come away wondering "what the heck do they make?"  It uses nothing but stock photography.  It communicates in vast generalities, promises the sun, but answers nothing.  You're wondering "but what does it do," "what does it look like," "how much does it cost," and  "where can I download it so I can try it?"  Instead you're greeted with a form to fill out.  I don't think so... next site.

Contrast that with the small company mentality (whether the company is large or small) where the site says what it is, shows what it looks like, tells how much it costs and let's you download a free trial today without even identifying yourself.  Nothing to hide.  If you like it, give us a call.  Or just buy it on our site.  

How does the big company mentality survive?  They survive by having a big name (earned from a former time when they had a small company mentality), by customer lock-in (since the cost of labor to change is higher than the cost of the software itself) and by inertia (which should never be underestimated).  



Wednesday, September 5, 2012

SQL vs. NoSQL in Automation

Most people know what SQL is. Commercial implementations of the SQL language have been around since about 1983. Today SQL database servers are available from Oracle, Microsoft, IBM and various open-source organizations.  

As an analogy, I like to think of SQL databases as multi-user spreadsheet servers which use SQL commands to manipulate the spreadsheets. But rather than being spreadsheets these become tables in a SQL database.

SQL commands are known as queries.  In response to a query, the database returns a result set, which is just a list of rows containing the answers. The simplest query would return all the rows from a table, but more often, the rows are filtered in certain ways to return just the answer wanted.  Data from multiple tables are often combined into one result by using a "join" query.

This gives us the relational aspect of SQL databases in that different data from different tables can be related to each other.  For example, "Return the names of all level 3 operators who work in Riverside on Line 5 and have an average line efficiency of greater than 80% for the past 12 months."  

NoSQL refers to an emerging class of databases which are loosely known as "Big Data" type databases.  Examples are CouchDB and MongoDB. 

What's the Difference?
I downloaded and installed both just to experiment with.  The first thing I discovered is that these aren't just "plug and play" or "fill in the blanks" configuration like most SQL databases are.  Each has a different API to program against and both require the use of C++, Java, C# or various other programming languages to make them do anything at all.  In other words, each is intended to be integrated into other products, not by standardized connectors such as ODBC or JDBC, but by hard core programming.

Missing are the usual SQL database front-end tools by which you can view the contents of tables, run test queries, etc.  Rather than using tables as in SQL, NoSQL databases use the concept of "documents."  Documents contain name:value pairs where the value can contain anything at all.  API methods are available to insert and manipulate documents and name:value pairs.  There is no concept of an SQL database "join."  

SQL database administrators are continually challenged by the questions, "How do I scale out the size of my database?", "How can I do this without service interruptions?" and  "How can I reliably back up my database without interruptions?"

NoSQL databases address these problems because they can be scaled horizontally over dozens of machines (or more) without interrupting service.  Multiple copies of databases can be scaled across numerous machines to provide redundancy.  The amazing thing about this is how easily it's done.  What I saw is that  nothing more than simple configuration is required.  Doing the same with SQL databases is beyond challenging.

NoSQL databases arose out of the challenges faced by Google, Amazon and Facebook as their empires grew.  They had significantly different challenges in dealing with huge quantities of data that the traditional SQL database solutions could not cope with. 

Solutions to Two Different Problems
SQL and NoSQL are two different paradigms, each of which address different problems.  Each has their pros and cons.  Like everything in our industry, every tool has a purpose and using the wrong tool for the wrong job wreaks havoc.

So which suits the MES/controls industry best?  It's important to remember that in our industry maintainability is everything.  So are the standards that make inter-connectivity possible.  You will have to connect with existing databases to make viable MES systems.  Outside of the online services such as Twitter, Facebook, and Google you won't find NoSQL databases in use.  So why worry about them?  Are you going to write a custom programs that integrate NoSQL for customer applications?  I hope not because you'll be the only person in the world who can ever support them. 

Here's a big exception.  Are you going to develop a new product to sell that integrates NoSQL?  Perhaps a data historian?  In that case, if the performance proves out, you'd be on firm ground.  But you'll still have to develop an industry standard interface for it such as OPC-HA before anyone would buy.  


Friday, April 20, 2012

Web Services and SCADA

Web services can be another method for connectivity to SCADA and MES systems. They can retrieve tomorrow's weather, the price of stocks or commodities, the time of sunrise and sunset, and a slew of other publicly-available resources. They can also interact with many different ERP and middleware systems.

We have been looking for the best way to implement web services in Ignition for a long time, but the problem has been complicated by three factors:
  1. There are many web service standards; in fact, too many.
  2. Data formats are wildly variable and can include many nested structures.
  3. Responses can dynamically return a varied number of data elements every time.
As regards Ignition, the question has always been how to deal with these factors in an elegant way. How should we map nested and dynamically-changing data into Ignition's resources such as SQLTags, HistoricalSQLTags or other database resources? The problem gets hairy pretty fast.

We recently solved this problem by including the Python SUDS web service client library in version 7.4.2 of Ignition (currently available in beta). In just two lines of Python code you can be up and talking to practically any SOAP server that serves WSDL files. Okay, maybe that's a bit too much information – let's clarify a few things about web services. 

Web Services Demystified
Web services are nothing more than web pages for machines. There are web servers (like the one serving this blog) and web clients (analogous with your web browser) but in the place of you (the one who is controlling your web browser) there is a program which is controlling the web client.

The content of web pages is HTML (which is text) whereas in web services this is replaced with XML (eXtensible Markup Language) which is also text. HTML is intended primarily to manage how content is displayed in your web browser, whereas XML is geared for labeling and structuring the data to be exchanged.

SOAP (Simple Object Access Protocol) sounds scary but is nothing more than some text and XML which essentially makes a contract between the web client and web server concerning how they're going to talk to each other.

WSDL (Web Services Description Language) is nothing more than an initial web page (again in XML) that the server sends (when requested) which answers the questions "How should I talk to you?" and "What should I expect back in response?"

The SUDS Library
The SUDS library can query the server for a WSDL file and parse it to tell you in plan English how to talk to it in order to execute its methods (the name SUDS is clearly a play on the acronym SOAP). Once you know what methods are available you can use SUDS to invoke those methods which can (generally) be used to retrieve and send information to the server. For example, you could retrieve a work order from an ERP system, mark the work order with current production status, and then send it back to the ERP system.

The really good thing about the SUDS library is that it works. Other libraries we tried were complicated or were picky when they tried to parse information from the server (so they "blew-up", so to speak).

The thing to realize is that XML can be (and has been) structured into many arbitrary forms. Therefore, many different standards have been created to try and reign in the chaos I.e. WSI-BP (Web Services Interoperability – Basic Profile). Another variable is that even when standards are followed, there sometimes are unintentional deviations. I think both of these reasons are why we saw so many web service client libraries fall short – except for SUDS. SUDS appears to be highly forgiving.

Looking at the example at the top right of this post you can see SUDS in action. Using Ignition's "Interactive Script Tester" we first import the SUDS client. Next, we instantiate a client against a URL and request the "calculator" WSDL file. Then we print the client instance and it tells us that it is a calculator web service and says it has four methods add, divide, multiply, and subtract each of which take two arguments which should be of type float. So now we use this information for our next print command "print client.service.divide(33.33, 11.11)" and the output results are "3.0000002".

There you have it. Four lines of code. The beauty of the library is that it's Python which solves the above issues two and three. Obviously, data on the server end can take any shape, but with the use of Ignition's system scripting functions you can now map the data into any shape and into any resource with only a few lines of Python code. Easy as pie.

It's an extensive library that can do a lot of things but you really don't need to know much more than I've shown you to do magic. Documentation and more examples for the SUDS library are here and the PyDocs are here.

Tuesday, April 3, 2012

OPC-UA Renders Traditional OPC Tunnelers Obsolete

This post could have been called "Isn't DCOM Dead Yet?" Distributed Component Object Model (DCOM) has been deprecated for years now but it still rears its ugly head, particularly when dealing with OPC servers on remote machines.

This led to the rise of OPC tunnelers as a solution, whereby the travails of dealing with DCOM and its associated security vulnerabilities were addressed. But now, two Ignition gateways can do the the same thing, but better, by leveraging OPC-UA. The cost is next to nothing.

The Ignition platform is, for all intents and purposes, an OPC-UA client that includes a free OPC-UA server module. The module comes with many of the more common drivers, including A-B drivers.

For moment disregard the fact that we could use Ignition's free A-B driver and assume instead we want to talk to an RSLinx OPC server, as the diagram shows. RSLinx uses the older OPC-DA technology relying on Windows COM technology. Since Ignition is written in Java and can run on any OS, the Ignition OPC COM Module is required – which costs $350 but is the only cost to this OPC-UA "tunneler" solution.

In the past, this solution wouldn't work because one piece was missing, but now it can be downloaded here and it is free. This is the "tunneler module" which would be installed in the remote Ignition gateway and will allow you to browse and access your remote PLC address space locally. Setting up and configuring the two Ignition gateways takes just minutes (less than ten) and is a piece of cake.

Of course, with OPC-UA coming of age, most of this is just for picking up those already-configured legacy OPC servers or those supporting oddball protocols. In the example above you would most likely use the free Ignition drivers or for unsupported protocols use the latest KEPServerEX which now supports OPC-UA (installed at the remote location).

I thought you might like the data on this little problem-solver.

Sunday, January 15, 2012

Object-Oriented SCADA in Ignition v7.4

Object-oriented SCADA speeds development and increases maintainability since screen objects can be derived from templates. If changes are made to the template, those changes propagate down to each derived object so objects don't need to be dealt with individually. That could save a ton of work and rework. This is on the visual layer.

Parallel to this is the data layer. The data layer consists of user defined data types, which are referred to as UDDTs or UDTs. Tag database instances of UDDTs, when combined with screen object instances, take development speed to a whole new level. In fact, productivity could be increased 10- to 100-times when compared to systems without object-oriented capability.

Ignition 7.4 will feature object-oriented capability both for screen objects and UDDTs. We may not be the first to implement this, but we will be the best. We learn from other people's mistakes. When we first mentioned we were developing this at one of our training classes, about half the class winced and told us to be very, very careful about implementing it. They told us horror stories about other packages that were really complicated and buggy.

You'll have wait to see it at our 7.4 release (in February), but we've made it ridiculously simple to use and we've included productivity enhancements no one else has. Project development will now be faster in Ignition than in any other SCADA software.

The case for using Ignition on a competitive basis is now a "no-brainer." Look at the following facts:

1) Lower cost pricing model because its sold by the server, not by seat, tag, designer, screen, etc.

2) Installs hassle-free on any OS, including any newer version of Windows.

3) Installs in just minutes.

4) Super fast development.

5) Lightning fast, hassle-free and secure client deployment on any PC or mobile device.

All these are competitive factors. They have to do with winning projects and making them profitable. Now with object-oriented capability in 7.4, all vectors align to provide unbelievable, competitive firepower to those quoting Ignition. Who ya gonna call?

Tuesday, November 22, 2011

More About Cloud-Based SCADA Systems


Our recent Cloud-Based SCADA Systems webinar was well attended right up to the end of the presentation, which highlights the tremendous interest in this topic. I have a few more comments I'd like to make to amplify the webinar.

Other Resources
There are many informative books available on the subject of cloud computing such as The Cloud at Your Service by Rosenberg, Cloud Computing for Dummies by Hurwitz, and many others (see listing here). Furthermore, the Homeland Security News Wire website has a wealth of information on this topic.

Security
This is largely a matter of how well a system is planned and implemented. There is no such thing as 100% guaranteed security in-house or in the cloud, though obviously, in-house is more under your control and is afforded better protection under the law. IT security techniques and practices have evolved over many years and need to be applied to SCADA and MES systems just as they are applied to front office systems. This is especially true for cloud deployments. We have developed Ignition with this in mind so you can leverage proven, standardized IT security practices.

Latency
We discovered this the hard way with a system where the Ignition server was 3,000 miles from the PLCs and clients. This wasn't exactly a cloud system but rather a WAN for a large company.

The elementary math principle of zero times any number is always zero says all. When you press a button in a SCADA system to start a pump there are many transactions involved. Client to server, server to PLC, PLC to server, and server back to client. Also, each of these has handshaking involved which involves more trips. Each leg has its own latency and variability of latency.

When the latency is very low as in a local network, the effects are usually negligible. When there are hundreds of milliseconds of latency in each leg, the accumulative effects can be intolerable. And the variable effects of latency can cause a system to look unreliable.

The Patriot Act
Data located on your physical premises is treated very much differently than your data in the cloud. You should see the Patriot Act Hang-up in the Cloud post by Michael Overly on this matter. This post gives some insight to a question asked by one of our webinar attendees. You should also check out the Forrester Research Cloud Privacy Heat Map for international cloud privacy information. Remember that when you host in the cloud, the hosting server could be located anywhere in the world.

Reliability
Every company will need to answer the question, "How much downtime can I tolerate?" for themselves and then decide accordingly whether off-site hosting makes sense or not. One company decided "no worries – we have redundant ISPs" only to have both providers go down for the better part of a day.

I hope these comments are useful. Some of the questions that were asked at the end of the webinar were intriguing. I will try to answer some of the questions in subsequent posts.

Thursday, October 13, 2011

Dukes Choice Award 2011 - we won!

Colby and Carl spent all of last week at Oracle's JavaOne convention in San Francisco. At the show, Oracle awarded Inductive Automation the Duke's Choice Award for Innovative Industrial Software.

According to Oracle "The Duke's Choice Awards celebrate extreme innovation in the world of Java technology and are granted to the most innovative projects using the Java platform." There are only ten Dukes Choice Awards given each year so we are very honored to win. Colby and Carl said they were treated like mini-celebrities during the entire convention.

There were about 45,000 attendees at the joint OpenWorld /JavaOne convention this year. The JavaOne attendance alone was estimated at double that of last year. Java is clearly on the rise.

Carl and Colby were interviewed at the show and you can watch it here. Great job guys!

Thursday, September 8, 2011

Ignition 7.3 Beta now available

Ignition v7.3 is now available for download by request. Please register on our support forum and then contact us to give you access to the Beta Download part of our forum. If you have not already done so, please register at: http://www.inductiveautomation.com/forum/

While there are hundreds of improvements and new features in this release the following are some of the major ones:

  • Drawing tools added for vector graphics.
  • Zooming in the Designer.
  • Better grouping support for components and shapes.
  • New Symbol Factory module.
  • More efficient serialization format for windows.
  • Better color-choosing UI.
  • Internationalization in Gateway/Designer.
  • New compression algorithm for analog SQLHistorian tags.
  • New ability for SQLHistorian to create preprocessed history tables for better query performance over long time spans.
  • New query cache in the client to avoid unnecessary repeated querying of the same time span.
  • Data density histogram on the Easy Chart for SQLHistorian pens.
  • Improved memory usage for SQLTags in the Gateway.
  • Automatic SQLTag creation when dragging and dropping OPC items.
  • Improved performance and scan class settings for SQLTags (one-shot, triggered on-change, subscribed vs polled).
  • Improved memory usage for ControlLogix driver.
  • Improved performance and stability for all drivers.
  • Improved installer allows choosing individual modules on install and upgrade.
  • New graphical and command-line installer for Linux.
  • Ignition installation directory structure changed.

Please realize that this is an early beta and so it should not be used in production.

I've been using this release for a while now and it is a joy to use. Working in the designer is a fluid experience. The new 2D drawing tools exceed anything I've ever used in any other package and now with the inclusion of Symbol Factory graphics development is lightning fast.

Please call us with any comments or suggestions on this new release.

Wednesday, September 7, 2011

Running Ignition on Panelview Plus 6 update

In my post entitled "Ignition runs of Panelview Plus 6", I stated that "One good thing is that the logic modules are separable from the screen unit and you can upgrade your logic modules using the Rockwell Step Forward program."

As it turn out there are some exceptions. According to the Rockwell KB, the following display modules have 5-wire touch screens, and therefore will not work with the newer Panelview Plus 6 logic module:

2711P-RDB7C / Series A, all revs
2711P-RDT12C / Series A, all revs
2711P-RDB12C / Series A, all revs, Series B Rev A

The newer units use a more robust 8-wire touch screen. I would recommend that you verify your own display module's compatibility with the newer logic module (through Rockwell) before deciding on a course of action.

Thursday, August 11, 2011

Inductive Automation - Where Did the Name Come From?



Every so often I get asked the question of how did we come up with our name "Inductive Automation." I think Carl first suggested it and and it stuck. This is probably because it's such a fitting name - let me explain...

From Wikipedia "Inductive reasoning, also known as induction or inductive logic, is ... commonly construed as a form of reasoning that makes generalizations based on individual instances. " That's precisely what we did when we created the framework for what was to become the Ignition platform.

Before we wrote a single line of code, I developed a philosophic stance in response to my specific experiences in the controls integration business. In other words, I established generalized principles from my specific experiences and observations. Therefore the "Inductive" part of Inductive Automation is very appropriate.

The Observations
My experiences and observations were many and varied but they boiled down to the following:

1) I was frequently being asked to develop or integrate database applications into industrial systems but industrial software just didn't deal with databases and when it did it was ugly. Developing "one offs" with custom code was not economically feasible, nor was maintaining it in the longer term.

2) Unreasonable pricing for industrial software alone was killing way too many deals. I lost one customer (for a few years - he's back now) because he thought I was trying to rip him off. The whole job was $105k but $85k of it was software which we had to buy. I'd already pared down my labor to $20k due to the high overall price tag. In retrospect, it's better I didn't get that job because my labor was so low I would have lost money.

3) Installing industrial software alone was a huge time consuming process. For an integrator you would think this would be a good thing because it's usually billable. But I would rather be putting my time toward developing a better app - not installing software.

4) Most industrial software only runs on certain versions of Windows and when IT wants to upgrade, the whole process usually becomes a nightmare – if not impossible – forcing IT to maintain different flavors of Windows.

5) Realizing the full potential of industrial software wasn't possible due to lousy deployment models and lousy licensing models.

6) I observed that standard IT software and technology was inexpensive and worked better than what I saw as expensive, non-standard, convoluted, odd-ball industrial software.

7) I also saw that the simple task of logging PLC data to an SQL database server was being portrayed as rocket science or something. Why should it take hours or days to setup a process historian? Our programmers who came straight out of the university at first had a hard time understanding what the big deal was. Nor could they understand why a historian should sell for $30k or more. They finally concluded that this industry has had the wool pulled over its eyes for a long time and that it's about 10 years behind the IT industry in general.

8) When I even mentioned the possibility of a web-based solution to customers it instantly hit a chord with them.

9) Most industrial software scaled poorly, strictly from a technology standpoint. In fact, at a certain point of scaling up maintaining it effectively usually becomes impossible, whereas normal IT technology scales very well with little effort.

10) Industrial software security was non-existent or oddball at best whereas standard IT technologies pretty well have security figured out.

11) Generally speaking, canned middleware applications offered by industrial vendors are totally out of touch with anything customers actually need. In reality, every manufacturer already has its own processes developed out of its own experiences in dealing with situations. The point is not to redefine these processes, but rather to automate them in software.

The Principles Concluded
So what are the general principles I derived from all these experiences?

1) Don't reinvent the wheel. Well established, proven and inexpensive IT technologies already exist. Use them.

2) The more eyes on the data the more useful a system is. Accessibility is paramount. Therefore leverage web-based technology.

3) Be database centric. This aligns with the principle #1 above. IT departments can support database servers (which do need backups and maintenance from time to time). Be able to support any database server an IT department uses. Database servers form the ideal interconnection point between different software applications and greatly increase the usefulness of any software application. Islands of information and proprietary data repositories are a bad thing.

4) Avoid software that imposes arbitrary limitations just to make more money. From observation, this really jacks people up.

5) Be cross platform. This includes every flavor of Windows as well.

6) KISS (Keep It Simple Stupid). Software should never be more complex than is necessary. Avoid bloatware. Avoid heavyweight installations. Software should seem lean and mean and refined.

These are the general principles I started with and when I did so I wasn't even planning to start a software company (look at the first principle again). All I wanted to do was find software out there that met these criteria. I spent several months looking exhaustively and only found isolated bits and pieces out there. Therefore, I took the plunge and started a software company. Our guiding light has always been the above principles and they seem to be good ones because we now have thousands of installations in over 50 countries.

Tuesday, August 9, 2011

Ignition runs on PanelView Plus 6

More than one customer has asked us if Ignition clients can run on PanelView Plus 6 operator terminals. Since PanelView Plus 6 terminals run on CE we figured it should work when using the Mobile Module. It turns out this is only partially true. The newer logic module, which runs CE version 6.0 with extended features (that last part is important), can run Ignition using the Mobile Module.

video

Rockwell was kind enough to provide us with a unit to try this out. The exact part number they provided us was 2711P-T12C4D9, which includes the extended features. My understanding is that the term extended features means it can run third party software and is packaged with a Word viewer, Excel viewer, PDF viewer and Media viewer. In this case we copied the open-source .NET VNCviewer.exe application onto the PanelView Plus 6 using a USB stick. This application works with the Ignition Mobile Module to deliver Ignition applications on the PanelView. VNCViewer can reference a separate configuration file with parameters to make it run in full screen mode, use 16 bit color and other settings.

While the Mobile Module normally utilizes the HTML 5 canvas component to deliver mobile applications, it is also a VNC server. The configuration for this is under the advanced checkbox in the mobile configuration section of the gateway. It's important to fill in the name of your project in this section.

Launch Clients Using the ME ActiveX Program Launcher
We got fancy and launched our Ignition client right from a PanelView application using the ME ActiveX Program Launcher. This ActiveX control is provided with FactoryTalk View ME. You must set the "program source" to path\vncviewer.exe and can set the "program parameter" to your VNCViewer configuration path\file.

One of the interesting things about this is that when your Ignition client is in full screen mode and you quit out of it, the VNCViewer also terminates. It seems to take a second click to do this.

Proof of Concept – Details Available Upon Request
This test was just a proof of concept. I'll write up all the fine details I know of and I will make them available to anyone who inquires. For example, I can provide you with my VNCViewer configuration file or project settings to make your screens scale properly without scroll bars.

I would not call the performance snappy, but depending on your situation this could be a good solution for you if you're trying to minimize the number of terminals on your floor. I would say give it a try and then decide.

One good thing is that the logic modules are separable from the screen unit and you can upgrade your logic modules using the Rockwell Step Forward program. The cost is somewhere between $1,100 and $1,500 with trade-in of your old logic module (which saves you $400 - $600 depending on the model). My understanding is that not every distributor supports this program, but I know Rexel in Sacramento does because they gave me this pricing.

Friday, June 17, 2011

FactorySQL Under the Hood

FactorySQL brought magic to the plant floor. It would have been called "Yesware" except that name was already taken. This is because you could say "yes, I can do that" to practically any PLC to SQL database interaction you could imagine.

Want to log PLC values? No problem. Want to send recipes to PLCs? Go for it. Want to mirror PLC addresses in the SQL database so that web pages can display and control PLC values? Go for it. Want to copy whole sections of PLC memory to another PLC somewhere else. Yes you can. In fact, the possibilities are endless but they boil down to being able to say "yes, I can do that" while everyone else is shaking their heads "no."

I've had two integrators sit beside me on a major project where all they ever said was "I'm not sure how we'd go about that" and all I ever said was "don't worry, we'll take care of it," and then we would, usually in minimal time. The other integrators looked kind of dumbfounded because I kept doing this. But my secret was FactorySQL.

Well, now we have Ignition and under the hood we still have FactorySQL but it's no longer called that. Now we call it the SQL Bridge Module. But it does all the same things and more. For example, you can make programming changes while groups are running without interrupting anything, just like online programming changes in a PLC.

I fear one thing though. With all the excitement about the Ignition platform I'm afraid we're neglecting to tell people about the real power they have under the hood with the SQL Bridge Module. The other day when one of the sales people showed it to someone they were blown away by what they saw - they could hardly believe what they were seeing was true.

So my message to you... check it out. You'll be amazed at what you can do.

Saturday, June 4, 2011

Does OEE really work?

You've heard about OEE for years now. But does it really work? I've got a story for you but first I'd like to comment that OEE is just a tool. You can either use it, abuse it or neglect it.

Some months ago one of our end-users installed the OEE module at one of their facilities that has a lot of lines. A lot of data has been collected but only recently did the production manager started analyzing it. His attention was drawn to one machine on one line by reason of the OEE. On closer inspection he determined the machine was pausing at times for no apparent reason so he called in maintenance. It's not unusual for automated machinery to slow down or pause due to low product supply or backup conditions but this just didn't seem right. By monitoring the PLC logic maintenance was able to trace the problem to an intermittent field IO block that sometimes gave false state information for some photoeyes.

After the part was replaced the OEE jumped up by 10%. They had accumulated a baseline of OEE information and just by replacing this one part the OEE increased dramatically. In this case the faulty component didn't entirely stop production so its effects weren't obvious. It just made the line not run as well as it could.

This brings me back to the main point. For OEE to work it has to be properly implemented and then the resultant data need to be acted upon. When this is done the results can be significant.

Thursday, June 2, 2011

Is bloatware really necessary?

There was a thread on our forum recently that made the point of how fast and easy it is to install Ignition. I am so glad to see people notice this. It's a big thing. Just imagine your HMI/ SCADA/ MES server just crashed - like a hard drive failure. Now tell me how long it would take to reinstall, reactivate and get all of your projects functioning again. I shutter to think about how long it would take to restore some traditional systems.

With Ignition you're talking about minutes. Seriously, minutes. Even if you have fifteen projects on that one Ignition server this still holds true. (Is it even possible to have fifteen projects on a traditional HMI/ SCADA server?) You just download Ignition via Internet (a few minutes), install Ignition (a few minutes) and restore your single backup file (a few minutes). And with that single file restore all of your communication settings, database settings, project settings - everything is restored and you're good to go. And it will run for two hours at a time fully functional until you reactivate the license which only takes a few seconds. Some traditional systems make licensing reactivation a nightmare - that's crazy. Like kicking a dog when he's down.

Getting back to the main point, I'm really glad our easy install is being noticed by our users. We have so many firsts with Ignition it's easy to lose that message.

The question is, why are we the only ones? IMHO, I think most traditional software was created in the 90's and then tacked-on to, band-aided, and wrappered until it became bloatware. Possibly, as time moved forward and developers came and went (face it, no publicly held corporation is going to keep good developers for very long) later developers didn't understand what earlier developers did so they hacked. How else do you end up with GB installs now requiring DVDs for relatively simple applications?

Then again, maybe I'm wrong. Maybe it was just a lack of good vision and planning from the start. I don't know. All I do know is that it doesn't require DVDs, GBs or hours or days to install and restore a system unless you make it that way.

Wednesday, April 20, 2011

The Value of Fast SCADA Installation & Development

When integrators install Ignition for their customers they deliver more bang for the buck in two ways. By an order of magnitude, they save their customers money both on software itself and on the labor to develop applications and deploy them. It's a double-sided benefit for end-users.

If you're an integrator, you might say, "but that's less work for me!" From experience I can tell you that's not true. I've discovered that in the same number of hours you will deliver way more functionality and end-users will love you for it. Then they will ask you to do even more. It's a win-win proposition. Essentially, what I have found is that they finally feel like they are getting the value they always expected.

This is a valuable concept you can use to your advantage as you offer your services.

Also consider this: Who wants to pay for an integrator to spend all week just to install and deploy HMI/SCADA/MES software? That's a huge waste of time and money and it makes the end-user feel like he's getting milked. Enough with that! Why should an installation and deployment take more than a few minutes? Spend the rest of your time building what the customer really wants and deploy it to a hundred clients with just a mouse click.

End-Users Are Beginning To Expect More From Integrators
End-users are starting to take all this for granted. I've been witness to the overwhelming reception of Ignition by end-users once they truly understand it. Hundreds of other integrators have discovered this as well. But now many end-users have come to expect what Ignition delivers as the new norm. When integrators approach these end-users with the old way they're going to get laughed right out of the place. I was recently a witness to a CEO ridiculing an integrator who proposed doing it the old way. It was embarrassing for me to watch.

Virtually all other software I'm aware of is so '90s. Relational databases are a way of life now in manufacturing yet most HMI/SCADA software treats it as an afterthought if they handle it at all. Sure, you could band-aid something together but why would you want to when you could be delivering real value in a fraction of the time? You want to feel loved? Well trust me, that's how you do it.

Offer Higher Value Before Your Competitors Do
Integrators should always be on the look out for better ways to do things more efficiently. Some integrators say, "I just do what the customer tells me." Do that at your own peril because one day the end-user will discover it on his own and some other integrator will be putting it in.

In one case recently, an integrator lost about a year's worth of work when another integrator showed the customer two bids: one for what the end-user requested, and an alternative bid using Ignition. The customer decided to use Ignition because the integrator showed that for the same amount of labor he could deliver more functionality – and more value for the money. He's feelin' the love now!

Friday, April 15, 2011

Integrators Can Differentiate Their Services By Developing Specialized Modules

A week ago we held a Module SDK developers class at our new facilities in Folsom, Calif., with the purpose of increasing the number of third-party developers who would partner with us by developing specialized new modules. I was surprised to learn, however, that integrator differentiation was a key reason for developing new modules.

We recently added two new features to Ignition that make it possible for integrators to differentiate their services from the competition. The first is the new Module SDK and the second is the OEM lock.

Ignition Module SDK
The SDK can be downloaded for free from the Inductive Automation website and includes a new 80-page manual for developers.

Using these tools and knowledge of the java programming language, integrators are now extending Ignition in ways we couldn't have even imagined. Since your java code is compiled your intellectual property is protected. Some integrators have even hired java experts solely for this purpose.

OEM Lock
The OEM lock allows integrators to create Ignition applications that cannot be opened in the development environment (or be otherwise be decoded) without a developer's key. We've had a lot of requests for this functionality over the years and now you have it.

The Developer Program
Just to clarify, we have a three-tier program for module developers. On the first tier, for qualified companies that develop modules which we deem to compliment our product offering, we have a partner program whereby the module developer develops the module and we market it aggressively through our normal channels, as well as us handling sales and first-tier support.

Our second tier program is very similar to the Apple app store program, if you are familiar with that. On the third tier you can develop modules for your own in-house use and this could include developing modules which create integrator differentiation.

Module Development Is Easier Than You Think
What you should bear in mind is that when you write an Ignition module you gain all the leverage of the Ignition platform itself. This includes use of the development environment, the deployment model, database connectivity as well as store-and-forward functionality, security, connectivity with thousands of other devices, interaction with Python scripting, internationalization (yes, that's coming soon too), and literally hundreds of other functions that are baked into the Ignition platform. A proficient Java developer could develop in a week what would take years to write otherwise.

Then there's the aspect of install base. When you develop for the Ignition platform you instantly have a potentially large and ever expanding install base. Right now this is thousands of installations in more than 50 countries. So once an integrator develops a module, there are a lot of Ignition users who would probably be very interested in buying the new module.

Platform Focus vs. Specialized Module Development
Here's our philosophy about modules. We want to focus on the Ignition platform itself and make it the best platform there ever was. This includes supplying ever more universal functionality, improved documentation, constantly improving software quality, improving the ease of use, etc.

For the more specialized functions we want to partner with other qualified companies that already have extensive domain experience in some specialized area. There are potentially thousands of these areas. Perhaps yours is one of these companies.

Thursday, April 7, 2011

Automating Business Processes Can Save U.S. Jobs

Recently, I was talking to corporate engineers at a major United States company that has adopted Ignition with a vengeance. They said, "You know what we're doing, don't you? We're saving U.S. jobs."

I've always felt this was the case. But you can't just plop down Ignition and expect to automatically save jobs. Ignition has to be thoughtfully integrated against existing business flows; then if you did well, you can make the same statement as the company above.

I'd love to tell you more about the company that was rejoicing over the phone about saving jobs in America, but we're under a non-disclosure agreement because they are serious about keeping their new-found business advantages.

Better Efficiency Begets Better Jobs
There is another company that generated reams of paper every day just to keep track of their operations. They are in the food industry and have stringent genealogy requirements. The amount of double, triple and quadruple data entry was astounding. Now it's all electronic using Ignition.

You might say, "well, what happens to all those people's jobs?" The answer is they still work there, but in better, more productive, more rewarding jobs. That company is now more competitive. Similar stories are rolling in every day from Ignition users.

A "Living Application" Example
Our own customer relationship management (CRM) system is an example of making everyone's job better. Way back in 2005 we were being overwhelmed administratively on just the traffic we had at the time. We had a hard time tracking everything that was going on. We were doing it all manually and it was labor intensive and not very scalable.

So we took every one of those existing business flows and automated them using Ignition. Everyone knows what's going on. The sales pipeline, all communications, tech support history, knowledge base, statistics of many types, website back-end, license activation and history, quotes, email, phone, appointments, cameras, you name it, it's probably there. And every single day there are updates rolled out to the multitude of open clients, which adds even more functionality.

It's a living application which keeps up with our business processes as we improve them. Ignition makes "continuous improvement" attainable in reality. There is just no way to communicate how our CRM has taken all the internal friction out of our operation and for that we're far more competitive than we otherwise would have been. And it didn't cost us a million dollars.

The Right Mix for Automating Business Processes
Why is Ignition so adept at automating business processes and creating paperless plant floors? Because Ignition is a rapid application development (RAD) tool, because it can easily talk with almost anything in the enterprise, because it has an amazingly simple deployment model, and because it has flat server pricing so you can scale it out without dealing with oppressive economics.

As I mentioned before, achieving these efficiencies doesn't happen auto-magically. It still requires someone who knows existing company business processes as well as a familiarity with Ignition and databases. But with these in place you can do miracles and be the hero.

What many companies are doing here in America today with Ignition is breathtaking. I've seen many of these applications and I'm just thinking, "Wow, these guys have got to be deadly to the competition – such ingenuity." Ingenuity certainly hasn't left America.