Semantic Analysis of Ladder Logic

Total Page:16

File Type:pdf, Size:1020Kb

Semantic Analysis of Ladder Logic Semantic Analysis of Ladder Logic A Thesis Presented in Partial Fulfillment of the Requirements for the Degree Master of Science in the Graduate School of The Ohio State University By Soumyashree Gad, M.S. Graduate Program in Computer Science and Engineering The Ohio State University 2017 Master's Examination Committee: Dr. Srinivasan Parthasarathy, Advisor Dr. P. Sadayappan c Copyright by Soumyashree Gad 2017 Abstract Purpose: A careful examination of Ladder Logic program reveals it's hierarchical nature and components, which makes it interpret able. Perhaps, using data mining techniques to interpret the top level and sub-level components can be really useful. This seems like a classification problem. The application of machine learning algo- rithms on the features extracted from ladder logic can give insights of the whole ladder logic code. The components and their interactions are intuitive which certainly add to the probability of getting better results. The learning in the PLC programming can be alleviated by converting the existing PLC code to commonly used formats such as JSON, XML etc. The goal is to consume ladder logic sample, break it down into minor components, identify the components and interactions between them and later write them to JSON. As Ladder logic is the most commonly used programming language for PLCs we decided to start the experiment with Ladder logic program sam- ples. Feature engineering combined with machine learning techniques should provide accurate results for the Ladder Logic data. Methods: The data set contains 6623 records for top level classification with 1421 ALARM, 150 STEP SEQUENCE, 96 SOLENOID samples and 5304 UNCLASSIFIED and 84472 records for sub-level classification which contains sub-level components of the all the ALARM and STEP SEQUENCE samples from the top level data set. We extract the initial top level and sub-level features from GX works. The ii advanced features like Sequence, LATCH and comments are extracted by parsing the information from the output of GX works. The final set of features for Top level classification consists of basic features, advanced features, and comments. Data set for Sub-level classification has few more features apart from the already existing features from the top level such as previous instruction - next instruction features(3 Window), bi-gram features of the instructions and top level class( the result of top level classification). The result of top level classification and sub-level classification are filled into a JSON object which is later written to a JSON file. Results: We have classification results from the top level and sub-level. Decision trees seem to work the best for both Top Level and Sub-level classifications. Since the features are discrete we tried Decision trees, Naive Bayes and Support vector machines. Performance result of each of them was: Decision Tree : Accuracy- 0.91 , F1-macro- 0.90, F1-micro 0.90 Naive Bayes : Accuracy- 0.85 , F1-macro- 0.80, F1-micro 0.85 LinearSVC : Accuracy- 0.88 , F1-macro- 0.88, F1-micro 0.88 For Sub-level classification decision trees out perform any of the other classifiers Decision Tree : Accuracy- 0.90 , F1-macro- 0.91, F1-micro 0.90 Naive Bayes : Accuracy- 0.80 , F1-macro- 0.80, F1-micro 0.81 LinearSVC : Accuracy- 0.75 , F1- macro- 0.78, F1-micro 0.79 Conclusions: A decision tree is the best suitable classifier for the purpose here. The tuning of Decision tree classifier played important role in improving the performance. Using entropy as the classification criteria and restricted the depth of the tree to 6 improved the performance of the classifier by 6 iii I dedicate this to my parents who have always got my back. iv Acknowledgments I would like to thank Prof. Srinivasan Parthasarthy for accepting me as his student and giving me the opportunity to be part of this project. I would like to thank Derrick Cobb from Honda, who came up the unique concept of using machine learning algorithms with PLC and was always excited work with us. I would like to thank Albert (Jiongqian Liang) who mentored me through out the project and gave valuable inputs. I would like to thank my friend Mr.Siddharth Saurav who kept me motivated through out. Finally and most importantly I would like to thank God for blessing me with a family which has always believed in me and supported my dream. v Vita April 3, 1991 . Born - Sangli, India 2013 . .B.E. Computer Science 2013 - 2015 . Software Engineer, Bosch India 2015 - present . Graduate Student, The Ohio State University. Fields of Study Major Field: Computer Science and Engineering vi Contents Page Abstract . ii Dedication . iv Acknowledgments . .v Vita......................................... vi List of Figures . ix 1. Introduction . .1 1.1 Challenges . .2 1.2 Thesis Statement . .3 1.3 Contributions . .3 1.4 Organization . .5 2. Background . .7 2.1 Ladder Logic . .7 2.2 Classification Algorithms . .9 2.2.1 Decision Tree . .9 2.2.2 Bi-gram ordering . 10 2.3 Related work . 10 2.3.1 Mining Software Repositories . 11 2.3.2 Machine Learning Automotive Industry . 13 2.3.3 Aid in learning PLC programming . 15 vii 3. Implementation . 16 3.1 Pre-Processing Steps . 16 3.2 Top Level Classification . 19 3.3 Sub-level classification . 21 3.4 Performance Improvement . 25 3.4.1 Parameter tuning . 25 3.4.2 Majority Voting . 26 4. Data Set and Results . 27 4.1 Data set . 27 4.2 Results . 31 5. Conclusion and Future Work . 36 5.1 Future Work . 39 Bibliography . 42 viii List of Figures Figure Page 1.1 ALARM sub-level example . .4 2.1 ladder logic example . .8 3.1 Window of size 3 . 17 3.2 Sub-Level Data Null padded . 18 3.3 Flow Chart for Top level Classification. 20 3.4 Step Sequence sub-level example . 22 3.5 Flow Chart of Sub-level Classification. 24 4.1 Step Sequence examples with Count . 29 ix 4.2 Alarm examples with Count . 30 4.3 Decision tree Visualization . 31 4.4 Confusion Matrix for TS3 . 33 4.5 Heat Map for the important features for the classes . 34 4.6 Input and Output GUI . 35 5.1 Accuracy vs Max depth of the Decision tree classifier . 37 x Chapter 1: Introduction The relationship between hardware and software has been long prevailing. The software which operates very close to the hardware is usually low level and far from being user-friendly in most of the cases. One of the PLC programming languages, Ladder Logic is a quintessential example of such a low-level language.Ladder logic is used to develop software for programmable logic controllers (PLCs) used in industrial control applications. The name is based on the observation that programs in this language resemble ladders, with two vertical rails and a series of horizontal rungs between them. The unique features of every class make the identification possible. Every component in the Ladder Logic can be considered as a separate class and different sub components of the particular component make the labels of the sub- level classification. The sub-level components are unique to their respective top level classes. There are several data mining techniques which can be used to solve this prob- lem. However, Classification seems to be the most appropriate. Classification is a method of assigning labels to unknown records by learning from the previously labeled records(training set). Labels are assigned based on the maximum similarity between a particular unknown record and the known records(training set). Prediction proba- bility can be also outputted to see what is the probability that the unknown record 1 is of a certain class. The classifier is said to have learned well when it classifies the unlabelled data with good accuracy. For the classifier to work well the records in the training set have to be similar to the test data. For example, you cannot have oranges and grapes in training set and give apples in the test data. All the apples will be predicted as oranges or grapes. 1.1 Challenges Getting a good training data which has records similar to the test data is very difficult as there can be numerous possibilities. It is a Herculean task to find every existing pattern to include in the training data. Even after including all the existing patterns it not certain that we would find only the similar records. The ladder logic samples differ across the different automotive platforms. So, we need to have a standard if the same tool has to be applied across all the platforms. The classifier works very intuitively, it classifies records just like a human would do because the features extracted are the ones even humans would look-up to when identifying the component. However, there are cases when the classifier will output wrong result, given the features resemble other classes more than the actual class. This project is in its initial phase, so getting training set 100 percent error free is difficult. To err is Human. There have been times when the classifier identified wrongly labeled data in the training set. But, we have to try to check multiple times before inserting a record into the training set. Thus, the challenges involved can be divided into two types: 1. Choosing right training set for the classifier 2. Tuning the parameters of the Classifier, to make the performance better. 2 We try to address both the challenges and how to deal with them in detail in the chapters ahead. 1.2 Thesis Statement The statement of this thesis is that it is possible to lever custom feature engi- neering and a novel hierarchical classification methodology to translate Ladder Logic programs to an understandable format (in JSON) that can help both train and ex- plain the underlying logic of such systems to engineers working on such systems.
Recommended publications
  • PLC/SCADA Systems in Automation Control Design for Individual Quick Freezing Process in Cooling Tunnels
    PLC/SCADA systems in automation control design for individual quick freezing process in cooling tunnels Goran Jagetić, Marko Habazin, Tomislav Špoljarić University of Applied Sciences - Department of Electrical Engineering, Zagreb, Croatia [email protected], [email protected], [email protected] ABSTRACT - Individual quick freezing process is a two periods of operation: refrigeration period and complex cooling process that takes place in cooling defrosting period. Refrigeration period is longer and tunnels and is used for dynamic thermal processing of in it refrigeration elements (compressor, condenser certain type of goods. Type of goods and temperature and evaporator fans) are switched according to room of goods that needs to be achieved over specific time in temperature probe/probes. Defrosting period is much cooling tunnel determine the complexity of cooling process. Complex cooling process is therefore divided shorter and in it defrosting elements (electrical into two types of regulation. Temperature regulation, heaters/hot gas valve) are switched according to the inferior type, is used for control of the cooling and evaporator temperature probe or by time (off- defrosting parts of the system according to predefined delayed timer function of a regulator). Fig. 1 shows room temperature. Superior time-cycle regulation is simplified block diagram of a small scale used to control various cycles of operation by defining refrigeration system operated by one-cycle its time frames. These cycles together form a period of regulation (refrigeration with defrost). time in which the cooling system is appropriately used for goods' freezing. This paper describes further development in automation control design for complex cooling process in cooling tunnels.
    [Show full text]
  • User Manual for PLC Programming With
    User Manual for PLC Programming with CoDeSys 2.3 Copyright ã 1994, 1997, 1999, 2001,2002, 2003 by 3S - Smart Software Solutions GmbH All rights reserved. We have gone to great lengths to ensure this documentation is correct and complete. However, since it is not possible to produce an absolutely error-free text, please feel free to send us your hints and suggestions for improving it. Trademark Intel is a registered trademark and 80286, 80386, 80486, Pentium are trademarks of Intel Corporation. Microsoft, MS and MS-DOS are registered trademarks, Windows is a trademark of Microsoft Corporation. Publisher 3S - Smart Software Solutions GmbH Fischerstraße 19 D-87435 Kempten Tel. +49 831 5 40 31 - 0 Fax +49 831 5 40 31 – 50 Last update 20.08.2003 Version 2.0 Content 1 A Brief Introduction to CoDeSys 1-1 1.1 What is CoDeSys .................................................................................................1-1 1.2 Overview of CoDeSys Functions... ......................................................................1-1 1.3 Overview on the user documentation for CoDeSys.............................................1-3 2 What is What in CoDeSys 2-1 2.1 Project Components.............................................................................................2-1 2.2 Languages... .........................................................................................................2-8 2.2.1 Instruction List (IL)... .............................................................................................2-8 2.2.2 Structured
    [Show full text]
  • Siemens Simatic S7 Manuals and Guides
    Siemens Simatic S7 Manuals and Guides Presented By: DCS Center For Product Needs Please Visit: http://www.dcscenter.com/ OR email: [email protected] OR call: 1-800-793-0630 SiemensManuals DCSCenter www.dcscenter.com Table of Contents Introduction...............................................................................2 PLCs..........................................................................................4 Number.Systems.......................................................................8 Terminology.............................................................................2 Basic.Requirements.................................................................8 S7-200.Micro.PLCs..................................................................20 Programming.a.PLC.................................................................33 Discrete.Inputs/Outputs..........................................................4 Analog.Inputs.and.Outputs......................................................48 Timers......................................................................................5 Counters..................................................................................58 High-Speed.Instructions..........................................................6 Specialized.Expansion.Modules..............................................65 Review.Answers......................................................................72 Final.Exam............................................................................... 74 Introduction
    [Show full text]
  • SCADA System Design Standards
    SCADA System Design Standards Prepared By Lake Havasu City, Arizona 2019 Table of Contents Glossary 1.0 Introduction. 2.0 Programmable Logic Controllers (PLC). 2.1 General 2.2 Hardware . 23 Software... 3.0 Operator Interface Terminal (OIT) 3.1 General 3.2 Hardware . 3.3Software. 4.0 Radio and Telemetry Equipment 10 4.1 General . 10 4.2 Hardware .10 4.3 Software.. 10 5.0 Control system networking 11 5.1 General 1 1 5.2 Hardware 1 1 6.0 Computer Hardware .13 6.1 Server 13 6.2 Workstation 13 6.3 Monitor 7.0 UPS. 7.1 Indoor Workstation 7.2OutdoorRemotestations . Figures 1.1 Allen‐Bradley ControlLogix PLC 1.2 Allen‐Bradley CompactLogix PLC 1.3 Example Control System Network Diagram for Typical Installation Tables 1.1 Allen‐Bradley Logix PLC Platform Comparison Glossary AB Allen‐Bradley Rockwell Automation AES Advance Encryption Standard APC American Power Conversion Corporation BOM ‐ Bill of Materials DI ‐ Device Integration ENC ‐ ESTeem Network Configuration FBD ‐ Function Block Programming Language FCC ‐ Federal Communication Commission HMI Human Machine Interface IEEE ‐ Institute of Electrical and Electronics Engineers I/O ‐ Input/Output LAN ‐ Local Area Network LD ‐ Ladder Logic Programming Language I‐HC ‐ Lake Havasu City LM ‐ Lean Managed OIT ‐ Operator Interface Terminal OS ‐ Operating System PLC ‐ Programmable Logic Controller POE ‐ Power over Ethernet 3 RIO ‐ Remote Input/Output RSTP ‐ Rapid Spanning Tree Protocol RTD ‐ Resistance Temperature Detector RTU ‐ Remote Terminal Unit SCADA Supervisory Control and Data Acquisition SFC Sequential Function Chart Programming Language ST ‐ Structured Text Programming Language ST (Fiber) ‐ Straight Tip Fiber Connector UPS Uninterruptable Power Supply VHF Very High Frequency VI‐AN ‐ Virtual Local Area Network VM ‐ Virtual Machine WAN ‐ Wide Area Network WWTP ‐ Waste Water Treatment Plant 4 1.0 Introduction The water and wastewater facilities have been constructed over several years by different integrators and contractors, each with their own approach to control system design and philosophies.
    [Show full text]
  • Ladder Programming Manual
    FT9Y-B1382 FT1A Series Ladder Programming Manual SAFETY PRECAUTIONS Read the SmartAXIS Pro/Lite User’s Manual to make sure of correct operation before starting installation, wiring, operation, maintenance, and inspection of the SmartAXIS. All SmartAXIS modules are manufactured under IDEC’s rigorous quality control system, but users must add a backup or failsafe provision to the control system when using the SmartAXIS in applications where heavy damage or personal injury may be caused in case the SmartAXIS should fail. In this user’s manual, safety precautions are categorized in order of importance to Warning and Caution: Warning Warning notices are used to emphasize that improper operation may cause severe personal injury or death. The SmartAXIS is not designed for use in medical equipment, nuclear power, railways, aviation, passenger vehicle equipment, or similar applications requiring a high degree of reliability and safety. The SmartAXIS cannot be used for such applications. When using the SmartAXIS in applications not described above that require a high degree of reliability in terms of functionality and precision, appropriate measures such as failsafe mechanisms and redundant mechanisms must be taken for a system containing the SmartAXIS. Emergency stop and interlocking circuits must be configured outside the SmartAXIS. If relays or transistors in the SmartAXIS output circuits should fail, outputs may remain in the on or off state. For output signals which may cause serious accidents, configure monitor circuits outside the SmartAXIS. The SmartAXIS self-diagnostic function may detect internal circuit or program errors, stop programs, and turn outputs off. Configure circuits so that the system containing the SmartAXIS is not jeopardized when outputs turn off.
    [Show full text]
  • Programmable Logic Devices (Plds) Lecture 1 Introduction to Micro-Processors and Micro-Controllers
    NPTEL – Mechanical – Mechatronics and Manufacturing Automation Module 3: Programmable Logic Devices (PLDs) Lecture 1 Introduction to Micro-processors and Micro-controllers 1. Introduction Programmable Logic Devices (PLD) are programmable systems and are generally used in manufacturing automation to perform different control functions, according to the programs written in its memory, using low level languages of commands. There are following three types of PLDs are being employed in mechatronics systems. 1. Microprocessor It is a digital integrated circuit which carries out necessary digital functions to process the information obtained from measurement system. 2. Microcomputer It uses microprocessor as its central processing unit and contains all functions of a computer. 3. Programmable Logic Controller (PLC) It is used to control the operations of electro-mechanical devices especially in tough and hazardous industrial environments. A typical programmable machine has basic three components as shown in Figure 3.1.1: 1. Processor, which processes the information collected from measurement system and takes logical decisions based on the information. Then it sends this information to actuators or output devices. 2. Memory, it stores a. the input data collected from sensors b. the programs to process the information and to take necessary decisions or actions. Program is a set of instructions written for the processor to perform a task. A group of programs is called software. Joint initiative of IITs and IISc – Funded by MHRD Page 1 of 36 NPTEL – Mechanical – Mechatronics and Manufacturing Automation 3. Input/output devices: these are used to communicate with the outside world/operator. Figure 3.1.1 Components of a programmable logic device Joint initiative of IITs and IISc – Funded by MHRD Page 2 of 36 NPTEL – Mechanical – Mechatronics and Manufacturing Automation 2.
    [Show full text]
  • Modicon Ladder Logic Block Library User Guide
    Modicon Ladder Logic Block Library User Guide 840 USE 101 00 Version 3.0 August 2001 Schneider Electric One High Street North Andover , MA 01845 Preface The data and illustrations found in this book are not binding. We reserve the right to modify our products in line with our policy of continuous product development. The information in this document is subject to change without notice and should not be construed as a commitment by Schneider Electric. Schneider Electri c assumes no responsibility for any errors that may appear in this document. If you have any suggestions for improvements or amendments or have found errors in this publication, please notify us by using the form on the last page of this publication. No part of this document may be reproduced in any form or by any means, electronic or mechanical, including photocopying, without express written permission of the Publisher, Schneider Electric. Caution: All pertinent state, regional, and local safety regulations must be observed when installing and using this product. For reasons of safety and to assure compliance with documented system data, repairs to components should be performed only by the manufacturer . MODSOFT is a registered trademark of Schneider Electric. The following are trademarks of Schneider Electric. Modicon Quantum Automation Series Modbus Plus Modbus Modbus II 984 PLC Compact 984 PLC Modicon Micro PLC DIGITALandDECareregisteredtrademarksofDigitalEquipment Corporation. IBM and IBM AT are registered trademarks of International Business Machines Corporation. Microsoft and MSDOS are registered trademarks of Microsoft Corporation. Copyright 20 01, Schneider Electric Printed in U.S.A. 840 USE 101 00 Preface iii Contents Chapter 1 Ladder Logic Overview..........................
    [Show full text]
  • 2Basic Ladder Logic Programming
    2 Basic Ladder Logic Programming Chapter Topics: • Basic ladder logic symbols • Ladder logic diagram • Ladder logic evaluation • Start/stop logic OBJECTIVES Upon completion of this chapter, you will be able to: • Understand basic ladder logic symbols • Write ladder logic for simple applications Scenario: A program with a long scan time may not detect short-duration events. A manufacturer of small gasoline engines had an intermittent problem on the final assembly line. Sometimes, a defective engine would not be automatically removed from the line for repair at a “kick-out” station. If an operator noticed a problem with an engine, he/she inserted a bolt into a certain hole in the engine carrier. A proximity sensor before the kick-out station sensed the presence of the bolt, and the PLC activated a hydraulic solenoid to push the carrier (and engine) off the main conveyor and into the repair area. A view of this station is shown in Figure 2.1. Further investigation revealed that the duration of the on pulse of the proximity sensor was approximately 3/4 seconds. One PLC controlled all of the stations on the assembly line and its ladder logic program was quite large. As indicated in the PLC status, the time to scan the ladder logic program was slightly less than 1 second. Hence, it was very likely that a pulse from the proximity sensor could be undetected by the PLC processor. The proximity sensor could be off at the start of the ladder scan, generate an on pulse from a passing bolt in the carrier, and be off at the start of the next ladder scan.
    [Show full text]
  • Robot Programming by Demonstration Handbook of Robotics
    Robot Programming By Demonstration Handbook Of Robotics Chapfallen and justiciary Gilbert never fertilises his kileys! Wearing and comfortless Forrester always bullyrags vocationally and bronzed his muley. Pentecostal Martie always poaches his pronaos if Tristan is statuary or joint appropriately. Get now open source, the child development and, education robot based on object handling either incremental system of robot programming by demonstration is that the On a major computer science at a compensated imaging satellites is still many. The blue region and interacting force posture review and modular and active learner and managers and properly interface for their speaking language. Result comparison of insertions for different controller. The handbook is a function that were designed to provide some important to jump into advanced content. Do by post Kuka Training manuals here. The creators will not once held accountable for any unintentional flaws or omissions that may and found. Lee K, Su Y, Kim T K, et al. In sorting tasks, objects that are different from each tire are separated based on their features. Determining which may get initial positions. An important that are located on workplace by demonstration methods shown, handbook of robot programming by demonstration? Issue is like it is not require good project saved on the handbook of the handbook of robot programming demonstration robotics? For a simple; this robot programming of demonstrated via ladder logic systems is. There is useful as different schools teach key skill acquisition is filled, robotics programming languages are ready to newly developed a wide range of coding workshops and used by moulding behavior induction by the chapter numbering begins or.
    [Show full text]
  • See a List of All Automation Technology & Robotics Courses
    Automation Technology & Robotics Courses ATP 100 Introduction to Manufacturing & Programmable Logic Controllers Description: Explores the origin and basic operation of programmable logic controllers (PLC) in manufacturing processes. Laboratory exercises include ladder logic programming, installation, adjustment, and testing of digital and analog sensors, signal conditioners, and basic troubleshooting concepts. Prerequisites: None. ATP 106 Industrial Electrical Systems Description: Safety for electrical power and control systems, DC and AC circuit analysis, DC power supplies, switches and proximity sensors, inductors and capacitors, electrical and engineering documentation and schematics, digital multimeter and oscilloscope operation, solid state relays, and industrial control transformers. Prerequisites: None. ATP 111 Mechanical Systems & Maintenance Description: Examination of mechanical drive systems. Includes fundamentals of direct drives, belt and pulley drives, chain drives and gear drives. Explores calculating and measuring quantities such as power, speed, torque, speed and torque reduction/amplification, and backlash. Also includes hands-on experience assembling and aligning components, testing and troubleshooting systems. Prerequisites: None. ATP 115 Fluid Power Description: Fundamental industrial fluid power concepts including hydraulic and pneumatic installation, maintenance, and adjustments for the control of automated manufacturing systems. Prerequisites: None. ATP 201 Programmable Logic Controller (PLC) Systems Description:
    [Show full text]
  • Basics of Plcs
    Siemens STEP 2000 Course Basics of PLCs It's easy to get in STEP! Download any course. Hint: Make sure you download all parts for each course and the test answer form. Complete each chapter and its review section Print the test answer form, take the final exam and fill in the form. Hint: The final exam is always at the end of the last part. Send your test answer form to EandM for grading. If you achieve a score of 70% or better, we'll send you a certificate of completion! If you have any questions, contact EandM Training at 866.693.2636 or fax 707.473.3190 or [email protected]. Need more information? Contact EandM at 866.693.2636 or fax 707.473.3190 or [email protected] for product information, quotes, classroom training courses and more. STEP 2000 Courses distributed by www.eandm.com Table of Contents Introduction ..............................................................................2 PLCs .........................................................................................4 Number Systems ......................................................................8 Terminology ............................................................................14 Basic Requirements ................................................................23 S7-200 Micro PLCs .................................................................28 Connecting External Devices ..................................................39 Programming a PLC ................................................................41 Discrete Inputs/Outputs .........................................................49
    [Show full text]
  • PLC Code Vulnerabilities Through SCADA Systems Sidney E
    University of South Carolina Scholar Commons Theses and Dissertations 1-1-2013 PLC Code Vulnerabilities Through SCADA Systems Sidney E. Valentine, Jr. University of South Carolina Follow this and additional works at: https://scholarcommons.sc.edu/etd Part of the Computer Sciences Commons, and the Electrical and Computer Engineering Commons Recommended Citation Valentine, Jr., S. E.(2013). PLC Code Vulnerabilities Through SCADA Systems. (Doctoral dissertation). Retrieved from https://scholarcommons.sc.edu/etd/803 This Open Access Dissertation is brought to you by Scholar Commons. It has been accepted for inclusion in Theses and Dissertations by an authorized administrator of Scholar Commons. For more information, please contact [email protected]. PLC Code Vulnerabilities Through SCADA Systems By Sidney E Valentine Bachelor of Science West Virginia University Institute of Technology 1995 Master of Science The University of South Carolina 2000 Submitted in Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy in Computer Science and Engineering College of Engineering and Computing University of South Carolina 2013 Accepted by: Dr. Csilla Farkas, Major Professor Dr. Manton Matthews, Committee Member Dr. John Bowles, Committee Member Dr. Wenyuan Xu, Committee Member Dr. Herbert Ginn, Committee Member Dr. Lacy Ford, Vice Provost and Dean of Graduate Studies © Copyright by Sidney E Valentine, 2013 All Rights Reserved. ii Dedication I would like to dedicate this work to my wife Amanda, my son Jake and my parents Sid and Ruth Valentine. To my wife and son, you have helped me more in this endeavor than you will ever know. I appreciate the patience and support that each of you have shown in allowing me to pursue this dream.
    [Show full text]