|
PRISM is a Windows-based HMI
interface for the Kawasaki paint robotics system used within many auto manufacturing
paint facilities, including Toyota and NUMMI. The interface allows users to
create, manage, modify, backup, restore and delete the robot motion programs and
parameters on the many robot controllers. View the PRISM Training Slides for
screen shots and a functional overview. View the PRISM User Documentation
for a detailed functional description.
PRISM was created to replace
an existing interface program that had become unreliable due to its age and design
limitations. Created using
VB 4.0 for Windows 95,
the rigid architecture of
the existing program continuously failed on modern, faster computers.
PRISM was developed using Visual
Studio 2005,
and is written in C# with
Microsoft .NET 2.0. Its object oriented
design makes heavy use of inheritance, allowing consolidation of common features
into root classes. Designed by Jim Shaffer,
Pioneer Software’s
senior software architect, PRISM is a combination of the
required features from the existing interface, the requested features from the customer
and features recommended by Pioneer Software’s architects. The resulting interface
package has proven itself to be extremely robust, completely reliable and intuitive
to use.
PRISM uses a ringed architecture,
with a central communications library
at the inner most ring. The communications library is responsible for sending
and receiving the
serial communications with the robot controllers. It ensures reliable
communications by automatically resolving anomalies using retransmission, reconnection,
or as a last resort to notify the user of the anomaly. Surrounding the communications
library is the command library. It accepts robot command requests from the
outer rings, queues the commands to ensure they are issued sequentially to the robot,
and that all expected command responses are received. Surrounding the command
library are the user interface forms. The forms send commands as necessary
to the command library and wait for command responses when appropriate. Because
the command library and communications library sequence all communications traffic
with the robots, the user interface can seem to perform multiple tasks simultaneously.
This allows the interface to be used intuitively in whatever manner best suits the
user's needs and work style.
PRISM Design / Development Challenges
The existing interface programs were developed in Japan
using
VB 4.0, and had almost no source line comments in English. Careful line
by line analysis of the source code was required to ensure all existing functionality
was included when creating PRISM.
|
|
The robot serial communications protocol was not documented. All that was available
was the original VB 4.0 source code for the user interface. The source code showed
commands being exchanged with the robots, but gave no insights into the protocol
used to send commands or the parameters being passed. Careful analysis of how each
command was used in the source, with specific attention to any differences in that
usage, was required to generate the list of possible commands. |
|
A serial trap was used to capture the communications stream between the robots and
the existing interface. The binary data streams were then carefully parsed to identify
the individual command packets structure. From the packet structure, the individual
commands were identified along with the parameters required by those commands as
implemented within the user interface. |
|
A test application was created to facilitate development of the communications library.
The test application allowed different command packets to be tweaked in real time
communications with the robot to flesh out the command protocol. Once the protocol
was established, the test application was extended to allow testing of command sequences
used to complete higher level robot actions.
|
|
A robot simulator application
was created to mimic the exact behavior of the robot
communications, allowing simulation of possible communication failures and timing
anomalies to ensure the robustness of the communications library. The robot simulator
then served as a development tool, allowing real world testing of the HMI without
requiring the presence of an actual robot.
|
|
The existing interface program relied heavily on a large number of initialization
files to define the unique properties of each robot controller. Many of these properties
were also needed by PRISM, but they were seemingly spread randomly across numerous
files. A conversion utility
was created to port the relevant property data into
PRISM initialization files, greatly simplifying the installation and setup. |
|
PRISM Documentation
PRISM Sample Source Code
PRISM Statistics
Terms: |
Fixed price quote, partial payments on milestone completion. |
Total Project Hours: |
1215 |
Coding Hours: |
985 |
Project Libraries: |
20 |
Source Files: |
176 |
Lines Of Code: |
100,316 |
Technologies: |
VS2005, C#, .NET, Data Grid View, Microsoft Access, Serial Communications, OO A/D/P
practices, SDLC methodologies |
|
|