EGR450 - Manufacturing Controls
Lab #1 - Introduction to Programmable Logic Controllers
Press - There are four sensors on a large stamping press. One of the sensors is on when a blank is present and ready for stamping. A second sensor is off when there are no hands inside the press. A third sensor is a start push-button. It is on momentarily when the press is to go into an active state. The fourth push-button is a stop button and all should stop when it is pressed. There are also two outputs. One output turns on a status liight which is activated when the start button is pressed and deactivated when the stop button is pressed. The other output is a press-on light which is active when the press is in a cycle.
Blast - Simulates a simplified blast process for a rotary indexed shot peening machine. There are several inputs which determine whether a blast cycle can be initiated. The power-on push-button must be pressed, the machine must be out of e-stop, the light-curtain barrier in front of the blast cabinet must not be broken and the limit switch must be in the actuated position. The light-curtain barrier is in place to prevent the operator from coming to close to the blast area and the limit switch is an in-position indicator for the rotary indexed table. The parts are placed on a fixutre located on the table and indexed into the blast area. With these conditions met, the machine is in a cycle-ready mode and will proceed into cycle-run if the cycle-start button is pressed. While in cycle-run the blast guns are initiated and will stop if an e-stop occurs or if the light-curtain is broken. The cycle also be halted if the power if turned off.
Lab #2 - Sequential Logic Control
Traffic - Controls a miniature set of traffic lights. These lights will go through a normal sequence, but will have a pedestrian cross walk button that will activate a cross walk signal when pressed.
Signal - Simulates a turn-signal process for an automobile. Using a three-position selector switch, the program monitor the position of the switch to determine whether to flash the left or right turn-signals. In the middle position, no action occurs. While the switch is in the left or right signal state, output lights corresponding to left or right are pulsed once a second until the switch is returned to the middle position.
Lab #3 - Simple Motor Control
Motor - The motor is driven with 12 VDC and switched by an output relay in the PLC. This causes rotation at approximately 100 RPM. A simple encoder was constructed using a clear disk with blacked-out areas and fastened to the shaft of the motor. An optical sensor is used to detect the black-out areas. The result is pulsed back to the PLC input and permits a count to be generated revealing how many times the shaft has turned. The system is controlled by two push-buttons. If button A is pressed, the shaft turns three revolutions and if button B is pressed the shaft turns 6 revolutions.
Lab #4 - Analog-to-Digital & Digital-to-Analog Conversion
Potentiometer - LabView reads signals from a potentiometer and graphs them on the screen in real time.
Signal - LabView reads signals from a signal generator connected to an analog input, graphs the values on the screen and saves the results in a data file.
LabView Data - Sample results obtained from the signal generator procedure.
Lab #5 - PID Control
PID - First attemp at controlling a motor using the analog input and output functions within the LabView environment. This program permits the direction of the motor's shaft to be changed as well as read in the current value of an encoder (potentiometer). The two functions are not linked and work independantly.
PID1 - This program is the final version of the PID loop algorithm. The encoder (POT) provides positioning data for controlling the direction of the rotating shaft. After the user inputs a value for the shaft to turn to, the motor shaft will turn towards this position and try to slow to a halt precisely on the limit. However, the shaft will overshoot the limit, reverse the direction of the rotating shaft and procede the home in on the desired set-point. Values for Kp, Kd and Ki were experimented with and the results of the positional data was saved in text format. All of the following data sets were acquired by moving the motor first to position 1000. From there, the data logger was turned on and the desired position was changed to 2000.
Data1 - Kp = 1.0, Ki = 0.01, Kd = 0.01
Data2 - Kp = 2.0, Ki = 0.01, Kd = 0.01
Data3 - Kp = 1.0, Ki = 0.50, Kd = 0.01
Data4 - Kp = 1.0, Ki = 0.01, Kd = 0.50
The purpose of this project was to build a robotic car which could be controlled using voice commands. To accomplish this wee feat, several circuit designs were constructed and then integrated into one system. To begin with, a chassis from an inexpensive remote controlled car was selected as the mobile unit which would house the controls. Also, since the rear motors and front turning mechanisms were in place, this provided for an easy retrofit. To provide for the "brains" over the control process, an 8051 micro-controller was selected. The following circuit was constructed using wire-wrap techniques on a 3"x5" circuit board. By burning a monitor program into the EPROM, we were able to download our assembled program into RAM and test our programs in a just a few seconds.

The HM2007 speech recognition chip was also constructed using wire-wrap techniques on an additional 2"x3" circuit board. This chip uses an additional 6264 SRAM to store words trained into its vocabulary and communicates with the 8051 through two separate busses. An S-bus (3 bits) is used as a status register and provides informations such as "Ready for Command" and "Ready to Receive Voice Input". Additionally, a K-bus (4-bits) is used to give the processor commands such as "Train", "Recognition", and "Result". The following circuit shows the manner in which it is connected to the micro-processor as well as to the 64K RAM and external microphone. This circuitry, as shown, provides up to 20 words of storage at 0.92 sec/word.

An H-Bridge was used for controlling the rear motors and the turning mechanism for the front wheels. Both are are powered by two wires and respond by placing a voltage accross the leads. By switching the polarity, the rear motor will reverse and the front wheels will turn the opposite direction. Below is the circuit used for each control.
Sample Assembly Program for design.
For additional information concerning the programming of the HM2007, 8051 design, or H-Bridge driver circuits contact Chuck Welch or Scott Mollema.
Using an Internet web page as a medium for interaction and control, a user will be able to control and monitor the actions of a robot and A/D card located in a seventh floor lab. Members of the team include: Cathy Brogdon - server code, Scott Barlis - HTML and Java code, Scott Mollema - robot driver and Chuck Welch - A/D card driver.
Click --> here <-- for the website.
Click --> here <-- for a function list for the A/D card in Microsoft Word 7.0 format.
C code in Linux format for the A/D card:
Last Revised: July 6, 1997
welchc@river.it.gvsu.edu