|
|
MM Tools Frequently (and not so frequently) Asked Questions
What is MM Tools?
The MM Tools Library is my in-house toolset for creating industrial
Human Machine Interface (HMI) software. Written in C++, it will run on
a variety of operating systems and hardware platforms. Like most
industrial HMI software, the core of the MM Tools Library consists of
device drivers, graphical screen objects, and a subsystem that manages
the interface between the two.
The MM Tools core technology allows a C++ programmer to build HMI
systems without worrying about the standard HMI details: update of a
display item based upon data change in an asynchronous process or
device (which is generally accessed through a limited-bandwidth serial
or network connection). MM Tools manages the details of data transfer
with the connected device and update of the display element when the
data value changes. Polling of the PLC, RMC or other device is
optimized to maximize throughput. In addition to supporting custom
screen creation, the MM Tools library contains modules for other HMI
functions, such as alarming, event logging, recipes, and trending.
There are plenty of HMI systems out there. Why another one?
The current version of the MM Tools library was created to support
the Delta
Computer Systems RMC. At the time it was conceived, no HMI
vendors supported the RMC CPU's "MC" serial protocol and
Delta hadn't yet released the serial or Ethernet communications cards.
There was a real need for RMC data logging and plotting functions as
well as high-level event table manipulation in an HMI. Since the
release of Delta's serial and Ethernet cards, the need for the MC
protocol driver has lessened (although one might still use it to save
the cost of an RMC comm card), but the need for customized RMC
plotting and a C++ interface has not.
MM Tools is not focused completely on the RMC. The design of this
toolset has been influenced by the convergence of the needs of three
groups of MM Controls customers: Embedded controller customers who
need basic GUI functions, RMC users who need specialized plotting and
data logging functions, and HMI customers who need highly specialized
display or supervisory control functions that can only be provided
with C-programmed software.
What is appropriate use of MM Tools?
MM Tools is not always the correct choice when building an HMI
system. Frankly, it's a lot faster to build an HMI system by
configuring off-the-shelf HMI/SCADA software such as Wonderware,
Intellution or RS View. For "one off" applications that
require only HMI functions, no custom C programming and no RMC
functionality, even I recommend using an off-the-shelf solution.
There are a few circumstances where MM Tools should be spec'd over a "configured"
off-the-shelf HMI system such as Wonderware: The first is when you
have a system with RMC motion control. MM Tools was originally
conceived as a software library for providing advanced charting and
customized step table edit functions for RMC users, along with
standard HMI features.
Another situation where using MM Tools can be preferred over a
configured HMI system is when you have multiple machine configurations
that use almost the same software. With MM Tools, this job would only
be programmed once, with all of the machine configuration options
exposed to a project-specific INI file or files. The machine
configuration is set by a startup technician by editing the INI file.
Using a configured HMI such as Wonderware or RS View would require a
custom implementation and programming for each machine.
A third situation where MM Tools is preferred over a configured HMI
is when you have many identical or almost identical units and the
higher cost of a on-time C programmed HMI is more than offset by much
reduced per unit run-time license fees (see below).
The fourth and final reason for using MM Tools instead of an
off-the-shelf system is when the HMI is secondary to the real purpose
of the application - machine control or device interfacing. At least
half of the "MM Tools" applications running today are really
interface or control applications that needed some sort of HMI, in
addition to their primary function.
What operating systems will run MM Tools?
Any 32 bit version of MS Windows (i.e. Win95 and newer) and the
Phar Lap ETS
real-time operating system from VenturCom.
The MM Tools have not yet been tested with Windows CE, but it should
work with little tweaking. QNX is another almost-ready. One of the MM
Tools comm drivers has already been ported to QNX and I've looked into
porting the whole library - the device drivers will work with little
change but the graphical objects will have to be converted; for the
right job, it might be worth doing.
What hardware platforms are supported by MM Tools?
The Windows version of the MM Tools library, of course, will run on
any hardware that runs Win32. While the embedded (PharLap ETS) version
will run on most desktop PCs, all of the MM Tools applications done to
date have been on either a single-board computer (with separate
touchscreen monitor), an integrated "panel pc" (flat panel
display and single-board computer in the same package), or an
industrial Compact PCI bus computer (also with separate touchscreen
monitor). The common thread amongst all of hardware platforms used to
date have been the lack of rotating media; for industrial ruggedness,
all of the extant MM Tools applications have flash memory hard disks
(DiskOnChip or CompactFlash).
What kind of support does MM Tools have for the Delta RMC?
Lots. MM Tools supports communication between a PC and RMC through
the RMC's CPU card serial port, through an RMC Ethernet comm card or
an RMC serial comm card. The MM Tools RMC library has custom plotting
and event table handling functions. MM Controls, Inc. has a special
relationship with Delta Computer Systems; I did the original porting
of the DCSMON Dos-based software to Windows (RMCWin) back in 1997.
Although Delta has added many features to both the RMC and RMCWin
since those days, I've kept up with the changes within the MM Tools
library.
Will the MM Tools Library support the upcoming Delta RMC 70?
Yes. The initial release of the RMC 70 will use the DF1 serial
protocol instead of Delta's in-house MC protocol; MM Tools already
supports DF1. As Delta adds more features to the RMC 70, we will
continue to grow the MM Tools Library to match those changes.
What PLCs are supported by MM Tools?
As of the summer of 2003, the MM Tools library supports Modicon
Modbus (RTU serial and TCP/IP) and the Allen Bradley SLC500 and PLC5
(both DF1 serial and PLCC TCP/IP). Siemens/TI 505 serial could be
supported with a minimum amount of effort; I've implemented the TBP
protocol before.
I plan on implementing the Allen-Bradley Ethernet Industrial Protocol
for Control Logix eventually - I'm just waiting for a job that
requires it. Siemens S7 support is also a planned upgrade (using a
Profibus daughter card), but again, I'm waiting for a job to come
along that requires it.
What touchscreens are supported by MM Tools?
ELO, Dynapro, and Touchko. This appears to be most of the
touchscreens in use today; I haven't yet run across any Panel PCs or
touchscreen monitors that aren't one of those three.
How about interfacing SCADA systems with MM Tools?
As mentioned above, many of the existing MM Tools applications are
primarily machine control or device interface programs and the HMI
portion of the app is secondary. A few of these apps have had a need
for interfacing with plant-wide Supervisory Control And Data
Acquisition systems, such as Wonderware, at a higher level than just
at the machine. The MM Tools SCADA library allows a SCADA system to be
used in addition to (or in lieu of) the HMI that is local to the
machine.
The MM Tools SCADA library emulates a Modicon PLC through the host
controller's Ethernet or serial port. This works great for Wonderware
and Intellution systems, but because RS-View does not have a native
Modbus driver, RS-View based SCADA systems need to use the TOP server
(from Software Toolbox) or another such third-party OPC server to
access data from an MM Tools system. To remove this extra little bit
of complexity, I may add Allen-Bradley Industrial Protocol support at
a future date, depending upon demand.
What is the MM Sockets Library?
The MMSocket library is our in-house extension to the Berkeley
Sockets model. It combines the Berkeley sockets with a
command/response mechanism. Using the MMSocket template, we can create
shared data or dual-port memory between any two Win32 systems, ETS or
Windows, within a matter of minutes. The implementation doesn't care
what type of TCP/IP connection is made; the user can use any TCP/IP
virtual link, Ethernet or dialup PPP.
Note that the MMSockets.lib library is GUI-independent. It will link
with both ETS and Microsoft windows applications, including Active-X
controls and NT Services (which don't contain a GUI). The
MMSockets.lib can link with either ETS or MS Windows applications.
What about licensing and royalty fees?
MM Controls Inc. does not charge a royalty for use of the MM Tools
Library. Applications that run under Windows, including ActiveX
controls using the MMSockets.lib, do not require a royalty at all (of
course the host computer must have a licenced copy of Windows).
For embedded projects using the PharLap RTOS, VenturCom requires a
royalty of approximately $45-$100 per unit, depending upon quantity
ordered. MM Controls, Inc. is authorized by VenturCom to resale ETS
license stickers.
All this sounds great, how can I get a copy?
You can't. Sorry. The MM Tools library is only sold linked into
applications programmed by MM Controls, Inc. The reason for this is
that although I have a couple of thousand hours into building the
libraries, there is very little associated documentation; I would have
to spend hundreds more hours documenting the libraries before they are
ready for use by the general programming community. I wrote the
libraries as something fun to do between paying jobs that would be
useful for future business - hundreds of hours of writing
documentation is not my idea of fun. Also, if sales of the library
took off, then I would have to hire a support and sales staff - I
prefer to stay small and concentrate on my niche market of programming
for machine control systems.
What is the history of the MM Tools Library?
MM Controls was founded in the summer of 1996. At that time, I was
enamored of Borland Delphi and C++ builder, and thought that they
would be great for building quick and dirty Windows based HMI systems.
I borrowed an SLC500 from the local Allen-Bradley office and a Modicon
PLC from the Modicon office and started to work on "version 1"
of the MM Tools library, using Borland C++.
Fall 1996 - MM Controls was hired by Delta Computer to do the Windows
conversion of their DCSMon software (RMCWin), for the initial release
of their RMC motion controller in the first quarter of 1997.
Summer 1997 - MM Controls was hired by a large investment casting
firm (Corporation X) to apply the RMC to their process.
Summer 1998 - Corporation X asked MM Controls to write an RMC device
driver and custom plot routine in order to use the RMC with the CTC
Interact HMI.
Spring 1999 - MM Controls starts the SavAir PL2000 system - PharLap
ETS version 9 was selected for this project, which started its life as
a remote monitoring application without HMI.
Summer and fall 1999 - MM Controls involved in Beta testing PharLap
ETS version 10. This version included the PEG GUI. A little light went
off in my head - "hey, this could be used as an HMI system".
I ported my Borland based device drivers to Microsoft Visual C++,
added an RMC device driver, and many different types of screen display
items, with versions for both Windows and ETS.
Winter 1999 - First version of Coe Clipping trash gate HMI (Windows
based MM Tools) delivered
Winter 1999-2000 - First rev of ETS based MM Tools HMI for
Corporation X delivered
Spring 2000 - Second version of Coe Clipping trash gate HMI (ETS
based MM Tools) delivered
Summer 2000 - HMI functions added to SavAir PL2000
Spring 2001 - MM Tools development complete
|