书籍详情

机械系统控制软件:实时系统面向对象设计

机械系统控制软件:实时系统面向对象设计

作者:(美)D.M.Auslander等著

出版社:清华大学出版社

出版时间:2004-04-01

ISBN:9787302082330

定价:¥36.00

购买这本书可以去
内容简介
  为复杂机械设备构建实时软件的完全指南! 机械系统的性能日益成为其控制软件的功能,因此,在系统设计和实现的每一个阶段,都必须考虑控制软件的计算能力及其所受到的限制。本书全面阐述了如何为今天日益复杂的机械设备构建实时控制软件。 本书介绍了实时软件开发的每一个步骤:性能说明书、设计文档、模拟、实验室和生产原型设计、生产系统的开发与维护等;讨论了在任何一种机电环境下,如何最大限度地保持实时软件的可靠性和一致性。本书涵盖以下主题: ·为机电系统构建实时软件所面临的挑战 ·如何有效实现实现任务内及任务间通信 ·状态转换逻辑计时、任务调度、多任务以及基于中断的调度 ·基于图形和字符的操作界面 ·直接实现系统控制软件,包括MATLAB模拟 ·分布式控制:多处理器体系结构、TCP/IP与UDP、应用层编程 ·详细的案例分析同时采用Java和C++语言 本书中的详细实例和案例分析同时采用Java和C++语言,所涉及的应用领域非常广泛,如皮带传动、炉温控制以及成型加工等。
作者简介
  D.M.Auslander,加州大学伯克利分校机械工程系的教授,当前研究兴趣包括自动控制系统设计、微机系统生物工程、动态系统的建模与模拟以及过程控制。Auslander教授是Mechatronics:Mechanical System Interfacing和Real-Time Software for Implementation of Feedback Control两书的合著书。
目录
1 MECHATRONICS
1.1 A History of Increasing Complesity
1.2 Mechatronic System Organization
1.3 Amplifiers and Isolation
1.4 Scope:The Unit Machine
1.5 Control
1.6 Real-Time Software
1.7 Nasty Software Properties
1.8 Engineering Design and Computational Performance
1.9 Control System Organization
1.10 Software Portability
1.11 Operator Interface
1.12 Multicomputer Systems:Communication
1.13 The Design and Implementation Process
1.13.1 Performance Specification
1.13.2 Design Documentation
1.13.3 Simulation
1.13.4 Laboratory Prototype
1.13.5 Production Prototype
1.13.6 Production System
1.13.7 Maintenance
2 TASKS
2.1 Example:Task Selection in a Process System
2.2 Tasks and the Control Hierarchy
2.2.1 Intertask Communication
2.3 Task Structure Examples
2.3.1 Velocity Control of a DC Motor
2.3.2 Heater Control
2.3.3 Toaster Oven
2.3.4 Flexible Position Control of a DC Motor
2.4 Simulation
2.5 More Task Structure Examples
2.5.1 Coordinated,Two-Axis Motion
2.5.2 A Washing Machine
3STATE TRANSITION LOGIC
3.1 States and Transitions
3.2 Transition Logic Diagrams
3.3 Tabular Form for Transition Logic
3.4 Example:Pulse-Width Modulation (PWM)
3.5 Transition Logic for the Process Control Example
3.6 Nonblocking State Code
3.7 State-Related Code
3.8 State Scanning:The Execution Cycle
3.9 Task Concurrency:Universal Real-Time Solution
4 DIRECT REALIZATION OF SYSTEM CONTROL SOFTWARE
4.1 Language
4.2 Time
4.3 Program Format
4.4 Simulation
4.5 Simulation in Matlab
4.5.1 Templates for Simulation Using Matlab
4.5.2 Simulation of PWM Generator
4.5.3 Simulation of Three-Tank Process System
4.6 Intertask Communication
4.7 Real-Time Realization
4.8 Real-Time Realization with Matlab
4.8.1 Heater Control Implementation in Matlab
5 SOFTWARE REALIZATION IN C++
5.1 Simulation in C++
5.2 Templates for Simulation in C++(group-priority)
5.3 PWM Simulation Using C++(group-priority)
5.4 Simulation in C++(with TranRun4)
5.4.1 Components
5.4.2 The Master Scheduler
5.4.3 Process Objects and Task Lists
5.4.4 Task Objects
5.4.5 Tasks with No State Object
5.4.6 Creating Task Classes
5.4.7 State Objects
5.4.8 Creating State Classes
5.4.9 The Main File and UserMain()Function
5.5 Real-Time Realization with C++
6 INTERTASK COMMUNICATION
6.1 Communication Within a Process
6.1.1 Data Integrity
6.1.2 Design Rules
6.2 Communication Across Processes
6.2.1 Message Passing
6.2.2 Message Passing in the Group Priority Scheduler
6.2.3 Message Passing in the TranRun4 Scheduler
6.2.4 Distributed Database
6.2.5 Distributed Database in the Group priority Scheduler
6.2.6 Distributed Database in the TranRun4 Scheduler
7 TIMING TECHNIQUES ON PC COMPATIBLES
7.1 Calibrated Time
7.2 Free-Running Timer
7.2.1 Hardware Timers on the PC
7.2.2 Performance Timers in Unix and Windows
7.3 Interrupt-Based Timing
8 MULTITASKING:PERFORMANCE IN THE REAL WORLD
8.1 Priority-Based Scheduling--Resource Shifting
8.1.1 Continuous vs. Intermittent Tasks
8.1.2 Cooperative Multitasking Modes
8.2 Matlab Template for Minimum-Latency Dispatcher
8.2.1 Example:Simulation of PWM-Actuated Heater
8.3 Cooperative Multitasking Using C++
8.3.1 Inheriting Task Behavior-Two PWMs
8.4 Preemptive Multitasking Modes
8.5 Realization of Interrupt-Based Dispatching
8.5.1 How Many Priority Levels Are Necessary?
8.5.2 Which Interrupt Sources Will Be Used?
8.5.3 Interrupt-Based Dispatching Functions
8.5.4 Attaching Dispatching Functions to Interrupts
9 A CHARACTER-BASED OPER-ATOR INTERFACE
9.1 Operator Interface Requirements
9.2 Context Sensitive Interfaces
9.3 User Interface Programming Paradigms
9.4 Mechatronics System Operator Interface
9.5 Operator Interface Programming
9.5.1 The Operator Screen
9.5.2 Programming Conventions in C++
9.5.3 Heater Control Operator Interface
10 GRAPHICAL OPERATOR INTERFACES
10.1 Graphical Environments
10.1.1 Windowing Software:Events and Messages
10.1.2 Operator Interface vs. Standard Windowing Application
10.1.3 Simplified Programming for Windowing Systems
10.1.4 The Ease-of-Use Challenge
10.1.5 Methods of Simplifying Window-Style Programming
10.2 The Times-2 Problem
10.2.1 Times-2:Character-Based Interface
10.2.2 Times-2:Visual Basic
10.2.3 Times-2:Bridgeview
10.3 Screen Change
10.3.1 Screen Change in Visual Basic
10.3.2 Screen Change:Bridgeview
10.4 Heat Exchanger Control in Bridgeview
10.5 Interprocess Communication:DDE
10.5.1 DDE:The C++ Side
10.5.2 Communicating with Excel
10.5.3 A DDE Server in C++
10.5.4 DDE Communication Between C++ and Visual Basic
10.5.5 DDE Communication Between C++ and Bridgeview
10.6 Putting It All Together
11 DISTRIBUTED CONTROL I:NET BASICS
11.1 Multiprocessor Architectures
11.1.1 Symmetric Multiprocessing (SMP)
11.1.2 Buses
11.1.3 Networks
11.1.4 Point-to-Point Connections
11.2 TCP/IP Networking
11.2.1 The Physical Context
11.2.2 Interconnection Protocols
11.2.3 TCP and UDP
11.2.4 Client/Server Architecture
11.3 Implementation of UDP
11.3.1 Sockets
11.3.2 Setting Up for Network Data Exchange
11.3.3 Nonblocking Network Calls
11.3.4 Receiving Information
11.3.5 Client-Side Setup
11.4 The Application Layer
11.4.1 Data Coding
11.4.2 Building the Packet
11.4.3 Parsing a Packet
12 DISTRIBUTED CONTROL II:A MECHATRONICS CONTROL APPLICATION LAYER
12.1 Control System Application Protocol
12.2 Startup of Distributed  Control Systems
12.3 Testing the Application Protocol
12.4 Using the  Control Application Protocol
12.5 Compiling
13 JAVA FOR CONTROL SYSTEM SOFTWARE
13.1 The Java Language and API
13.1.1 Networking
13.1.2 AWT/Swing
13.1.3 Multithreading
13.2 Preconditions for Real-Time Programming in Java
13.2.1 Deterministic Garbage Collection
13.2.2 Memory and Hardware Access
13.2.3 Timing
13.3 Advantages of Java for Control Software Design
13.3.1 Modularity
13.3.2 Distributed Control
13.3.3 Platform Independence and Prototyping
13.3.4 Operator Interface Design
13.4 Java and the Task/State Design Method
13.4.1 Inner Classes
13.4.2 Networking
13.4.3 Documentation
13.5 The Current State of Real-Time Java
14 PROGRAMMABLE LOGIC CONTROLLERS(PLCs)
14.1 Introduction
14.2 Goals
14.3 PLC Programming
14.3.1 When to Use a PLC
14.3.2 Ladder Logic
14.3.3 Grafcet/Sequential Flow Charts
14.4 The Task/State Model
14.5 State Transition Logic for a PLC
14.5.1 State Variables
14.5.2 Ladder Organization
14.5.3 Transitions
14.5.4 Outputs
14.5.5 Entry Activity
14.5.6 Action Outputs
14.5.7 Exit(Transition-Based) Outputs
14.5.8 Common Exit Activities
14.6 PLC Multitasking
14.7 Modular Design
14.8 Example:Model Railroad Control
14.9 Simulation-Portability
15 ILLUSTRATIVE EXAMPLE:ASSEMBLY SYSTEM
15.1 The Assembly System
15.2 System Simulation
15.3 Development Sequence
15.4 Belt Motion Simulation(Glue00)
15.4.1 Modeling Belt Dynamics
15.4.2 Definition of Task Classes
15.4.3 Instantiating Tasks:the Main File
15.4.4 The Simulation Task
15.4.5 The Data Logging Task
15.4.6 Timing Mode
15.4.7 Compiling
15.4.8 Results
15.5 Oven Temperature Simulation(Glue01)
15.6 PID Control of Belt Position and Oven Temperature(Glue02)
15.6.1 Keeping Classes Gencric
15.6.2 The PID Control Class
15.6.3 Results
15.7 Better Control of Motion(Glue03)
15.7.1 Trapezoidal Motion Profile
15.7.2 Motion Profile Class
15.7.3 Profiler State Structure
15.7.4 Round-Off Error
15.7.5 Discretization Errors in Simulation
15.8 A Command Structure for Profiled Motion (Glue04)
15.8.1 Message-Based Command Structure
15.8.2 State Transition Audit Trail
15.8.3 Motion Results
15.9 Clamps(Glue05)
15.10 Robots(Glue06)
15.11 Cure/Unload(Glue07)
15.12 Making Widgets(Glue08)
16 THE GLUING CELL EXERCISE IN TRANRUN4
16.1 The Gluing System
16.2 Simulation and Prototyping
16.3 The Project Components
16.4 Glue00:Conveyor Simulation
16.4.1 The Dynamic Model
16.4.2 Creating the Conveyor Task
16.4.3 The Data Logging Task
16.4.4 Data Communication Between Tasks
16.4.5 The Main File
16.4.6 Glue00 Results
16.5 Glue01:An Oven Simulation
16.5.1 Configuration and Status Printouts
16.6 Glue02:PID Control
16.7 Glue03:The Operator Interface
16.7.1 Results
16.8 Glue04:Motion Profiling
16.9 Glue05:Belt Sequencing
16.10 Glue06:The Glue Application Machine
16.11 Glue07:Transport Task Supervision
16.12 Glue08:The Completed Assembly System
17 THE GLUING CELL EXERCESE IN TRANRUNJ
17.1 Getting Started
17.1.1 Program Entry Point
17.1.2 The userMain Method
17.2 Writing Custom Tasks and States
17.2.1 Creating a Task Class
17.2.2 Creating a State Class
17.3 Implementing State Transition Logic
17.4 Global Data and Intertask Messaging
17.4.1 Global Data Items
17.4.2 Task Messages
17.5 Continuous vs. Intermittent Tasks
17.6 Scheduler Internals
17.6.1 Operating System Processes vs. CProcess
17.6.2 Foreground vs. Background Execution Lists
17.6.3 Scheduling Modes
17.7 Execution Profiling
17.8 Intertask Messaging Across Different Processes
17.9 Tips And Tricks
17.9.1 Judicious Use of Execution-Time Profiling
17.9.2 Integer Lablels for Global Data and Task Message Inboxes
17.9.3 The TaskMessageListener Interface
17.9.4 Scheduler Sleeping
17.9.5 Anonymous State Classes
17.10 Additional Information
BIBLIOGRAPHY
INDEX
猜您喜欢

读书导航