INGEAR.NET or ActiveX for Allen-Bradley Runtime Free HMI Development. What’s the difference and how to choose.
Frequently we are asked what is the difference between the INGEAR Allen-Bradley Studio ActiveX and INGEAR.NET PLC class libraries such as INGEAR.NET.ABLINK and INGEAR.NET.LOGIX and which one should I chose.
What they are, and what they are not
First off, what they are not. INGEAR.NET for Allen-Bradley and Allen-Bradley Studio ActiveX are not OPC based, and completely indepedant of OPC technology. INGEAR.NET and ActiveX are entirely free of RSLinx or OPC Servers of any kind. However, when added to your Visual Studio project, INGEAR.NET or ActiveX gives you a direct pipeline to the PLC network without all the middleware, software layers, and overhead associated with RSLinx or OPC Servers.
Both INGEAR.NET and ActiveX products are available in runtime free editions which means it’s a buy once, but use many times over. Basically, you’re purchasing a library not an application. Less software equals less cost, less overhead equals greater performance. Bottom line… less cost and great performance is a value and a benefit that can be passed on to you and your customers.
What’s the difference between them
Functionally both INGEAR.NET and ActiveX perform similar tasks, but use different approaches to achieve similar means. Below is a outline summary of the two software products and how they differ.
INGEAR.NET Class Overview
INGEAR.NET classes are managed code assemblies designed specifically for the .NET Framework. INGEAR.NET architecture consists of separate classes for Controller, Tag, and TagGroup, in a common set of dynamic link libraries (dll’s). Properties, methods and events define and control class behavior and operation.
The Controller class is the communication channel. It is the connection and messaging transport that connects your application to the target PLC(s). The Controller class gives your application a direct communication pipeline to the PLC’s on your network. Typically one Controller class is used per PLC.
The Tag class represents a single data item, or an array of items in the PLC. PLC’s values are returned in their native data types. For example; if you read N7:0 you will receive a value that is a System.Int16. If you read F8:0 ~ F8:31, you will receive an array of values of type System.Single. There is no limit on the number of Tag classes in your application. Whenever a read/write operation executes, a timestamp is recorded for that event and is available to you. The Tag class can also generate DataChange events to notify you when a value has changed. The DataChange event provides you with current value, previous value, timestamp and other information.
A TagGroup is a collection of Tag classes that self-optimizes communications for you. A TagGroup will perform optimized read/write operations on scattered items, contiguous blocks, mixed data types in a single call. For example a TagGroup may contain a collection of Tag classes referencing data points, N7:0, N7:15, N7:22, N7:59, N9:85, B3:0.0, B3:0.5; B3:12.4, B3:90.11, F8:0, F8:19 and F8:79. Rather than reading one point at a time, the TagGroup class will sort and optimize the data points requested in few transactions. In this example, optimization results in a 400% increase in performance. High data throughput can be achieved using TagGroup operations. TagGroups provides a simple way to organize PLC data by function, data demand, screen or anything else.
- Pros – Designed specifically for .NET framework. Supports 32-bit, 64-bit, Windows CE and Windows Server operating systems. Easy to create Windows programs, system services, console applications and custom libraries, ASP.NET services and pages. Classes can be allocated, configured and managed at design time or runtime. Does not require RSLinx or third party OPC Servers. Direct communication to PLC without layers of middleware normally associated with OPC, therefore is easier to implement and lower in overall cost. Includes free COM interop dll for Visual Basic 6.0 developers.
- Cons – Does not have serial or bus card drivers.
INGEAR ActiveX Overview
The INGEAR ActiveX consists of 3 components (Configuration applet, Driver.dll and .OCX file) that work closely together to provide a single component that covers a wide variety of Allen-Bradley PLC’s and networks.
Configuration applet is an external application that abstracts the underlying PLC and network into what’s known as “Adapters”. The Adapter contains information about communication interface, (e.g Ethernet, Serial, DH+/DH485, etc..) as well as the PLC Type (e.g MicroLogix, SLC, CompactLogix, etc..). Up to different 8 Adapters can be configured for operation.
Driver.dll uses the Adapter configurations to manage the connection and message transports on behalf of the ActiveX. The separation of driver and ActiveX, keeps the ActiveX from knowing about the underlying details of the driver. All the ActiveX needs to know is which Adapter you want to use. It doesn’t know or care whether it’s a DH+, DF1, or Ethernet network, or whether the end device is a MicroLogix, SLC, PLC or ControlLogix/CompactLogix. For example; you can build and run an application connected to SLC on DH+, then change to a MicroLogix on DF1 simply by reconfiguring the Adapter settings without changing your code, or recompiling the program.
The ActiveX is a form-based COM object, meaning it needs a parent form or window to reside on for operation. The ActiveX is designed for contiguous memory block read/write operations. Basically, the ActiveX treats the PLC as an array of data values residing in a remote location and performs block transfers between the PLC. The PLC data in the ActiveX is accessed through methods such as WordVal, FloatVal, LongVal. Because data is transferred between the PLC as blocks, high throughput rates for data-table based processors such as MicroLogix, SLC and PLC-5 are commonplace. For tag-based controllers such as ControlLogix/CompactLogix the ActiveX, high throughput can be achieved using data arrays. However, there is a performance penalty for operating on individual items. Properties and methods control the function of the ActiveX while events provide notification of operation status.
- Pros – Single component can be used most widely used Allen-Bradley controllers and networks. Does not require RSLinx or 3rd party OPC Servers. Performance is faster than DDE and easier than OPC to implement.
- Cons – Visual Basic 6.0 is fast becoming an obsolete compiler. Although the ActiveX can be used in Visual Studio .NET, it does not let itself well to the .NET framework uses. The ActiveX was not designed to perform scattered read/write operations or mixed data type operations. Optimization is limited to contiguous PLC memory blocks. Bus card drivers are not supported 64-bit operating systems. Cannot be used for ASP.NET services or on Windows CE devices.
What should I choose?
As of April 2008 Microsoft discontinued extended support for Visual Basic 6.0 IDE. With widespread popularity of VB6 and the vast number of applications developed using it, VB6 is not going to disappear anytime soon. This is probably the reason why many developers justify for not making the transition to Visual Studio .NET.
For those programings that want to hang on to VB6.. good news… we provide free COM Interop DLL’s with all INGEAR.NET PLC class libraries. The COM Interop .DLL allows programmers use INGEAR.NET libraries in VB6 projects and leverage the advances features and functions of INGEAR.NET.
Ultimately, the time will come when it will be inevitable to make the leap to .NET and you’ll already have the tools from INGEAR to make the transition as smooth as possible.
If you need to communicate to DH+/DH-485 using a 1784-PKTX bus card, serial DF1, or need to support a INGEAR ActiveX legacy application, the ActiveX is the way to go,
Otherwise, INGEAR.NET PLC class libraries should be your first choice
For more information visit: www.ingeadrivers.com/dot_net_software/dot_net_software.htm