ba51.gif
ba52.gif mi1_597.gif
mt.jpg
st.jpg
ba53.gif
ba54.gif info@pioneerware.com ba55.gif
ba56.gif ba57.gif
ba58.gif prism.jpg

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. rbif.vb.jpg   rfileopen.vb.jpg
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. rbif.jpg
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.    prismserialtranslator.jpg
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. robotinspectionform1.jpg robotinspectionform2.jpg
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.
robotserialform.jpg
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. prismkosmosport.jpg

PRISM Documentation

     prism user documentation                prism training slides

PRISM Sample Source Code  

     robotrouter.cs.xps         robotparameters.cs.xps

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

 
 
portfolio.jpg
View Portfolio