Object-Oriented Programming with SIMOTION :Fundamentals, Program Examples and Software Concepts According to IEC 61131-3

Publication subTitle :Fundamentals, Program Examples and Software Concepts According to IEC 61131-3

Author: Michael Braun   Wolfgang Horn  

Publisher: John Wiley & Sons Inc‎

Publication year: 2017

E-ISBN: 9783895789472

P-ISBN(Paperback): 9783895784569

Subject: N94 Systems Science

Language: ENG

Access to resources Favorite

Disclaimer: Any content in publications that violate the sovereignty, the constitution or regulations of the PRC is not accepted or approved by CNPIEC.

Chapter

1.6 Drives become fully-fledged bus system nodes

1.7 PLC and PAC – what is the difference?

1.8 General conclusions about past developments

2 Basic Principles of Object-Oriented ­Programming

2.1 The basis of object-oriented programming

2.1.1 History

2.1.2 What’s different?

2.1.3 What does object orientation mean?

2.1.4 Objects and their interactions

2.2 General principles of OOP

2.2.1 Objects

2.2.2 Classes

2.2.3 Inheritance

2.2.4 Overriding

2.2.5 Interfaces for object interaction

2.2.6 Summary

2.2.7 Advantages of using OOP

2.2.8 Disadvantages of OOP

2.3 Tips about defining classes

3 Object-Oriented Programming

3.1 Implementation of OOP with SIMOTION

3.2 Function blocks with methods

3.2.1 Modularization without OOP extensions

3.2.2 Program and data are separate

3.2.3 Advances in the life cycle of software

3.2.4 Disadvantages of programming without OOP extensions

3.2.5 Extensions to FBs and their access specification

3.2.6 Use of methods to improve program structuring

3.2.6.1 Example of FB with methods

3.2.6.2 Example of a function block call

3.2.7 Function block with methods for placing commands

3.2.7.1 Example of the FB with command methods

3.2.7.2 Example of an FB call with command methods

3.3 Classes (CLASS)

3.3.1 Keywords supported for a class

3.3.1.1 Example of a CLASS declaration

3.3.2 Methods (METHOD)

3.3.3 Methods and their access specification

3.3.4 Declaration of instances of a class

3.3.5 Rules for identifiers in a class

3.3.6 Use of class methods

3.3.6.1 Example of a CLASS COUNTER

3.3.6.2 Use of the method of CLASS COUNTER

3.3.6.3 Extension of the CLASS COUNTER and use of THIS

3.3.6.4 Use of the methods UP and DOWN

3.3.7 Classes and inheritance

3.3.7.1 Example of derivation of a class

3.3.7.2 Example of how to use base and derived classes

3.3.7.3 Other aspects of the method call

3.3.7.4 Example of base and derived classes in a function

3.3.8 Abstract classes

3.4 Examples of valve applications with OOP

3.4.1 Example with 4/3-way valve

3.4.1.1 Example of a class for 4/3-way valves

3.4.1.2 Example of a valve call

3.4.1.3 Example with 4/3-way valve with fast/slow speed

3.4.1.4 Example of a derived class ValveControl43FS

3.4.1.5 Example of calls of base class and extended class

3.4.1.6 Example of call of extended class with basic function

3.5 Interfaces

3.5.1 Supported features

3.5.2 Principles of interfaces

3.5.2.1 Example of an interface declaration

3.5.3 Representation of interfaces in the PNV of SCOUT

3.5.4 Benefits of interfaces

3.5.5 Interfaces as a reference to classes

3.5.6 Valve classes with interfaces

3.5.7 Declaration of the valve interface

3.5.7.1 Example of ValveControl43 with limit switch monitoring

3.5.7.2 Example of ValveControl43 with error reporting

3.5.7.3 Example of ValveControl43 with test error reporting

3.5.7.4 Example of class HMIReporting

3.5.7.5 Example of ValveControl43 with error reporting

3.5.8 Interface for neutralizing I/O components

3.5.8.1 Connection of cameras to the control system

3.5.8.2 Interface definition for a camera connection

3.5.9 Interface for neutral I/O connection (condensed example)

3.5.9.1 Interface definition for neutral I/O connection

3.5.9.2 Implementation in classes

3.5.9.3 Interface definition and mapping table program

3.5.9.4 Program for implementation and use of classes

3.5.9.5 Interface for fast/slow speed switchover

3.5.9.6 Implementation of classes for fast/slow speed

3.6 Further optimization of the valve class

3.6.1 Existing implementation of ValveControl

3.6.2 Design of a state machine

3.6.2.1 Example of ValveControl43ST – state machine using CASE

3.6.2.2 Example of ValveControl43ST – state machine with classes

3.7 Abstract class for different drives

3.7.1 Functional differences between various drive solutions

3.7.2 Class model for connecting different drives

3.7.2.1 Example of abstract class “CDrive”

3.7.2.2 Example of class for direct-on-line starting drives

3.7.2.3 Example of class for drives with star-delta starters

3.7.2.4 Example of class for speed-controlled drives

3.7.2.5 Example program for controlling drives of different types

3.8 Abstract class versus interface

3.9 OOP opens up the world of design patterns

4 OOP Supports Modular ­Software ­Concepts

4.1 Assembling projects for real machines

4.1.1 Module design

4.1.2 The role of the software developer

4.1.3 Modularizing software

4.1.3.1 Creating equipment modules

4.1.3.2 Software design of the equipment module

4.1.3.3 Example of the class “CEMPusher”

4.1.3.4 Example of an equipment module call

4.1.4 Preparations for multiple reuse

4.1.4.1 Example of the neutralized equipment module

4.2 SIMOTION easyProject project generator

4.2.1 Adding your own modules to the project generator

4.2.2 Creating a user interface for the project generator

4.2.3 XML description of the equipment module

5 Guide to Designing and Developing ­Software

5.1 Establishing requirements

5.1.1 Starting point – user interfaces

5.1.2 Starting point – process operations

5.1.3 Starting point – mechanical engineering elements

5.1.4 Existing solutions

5.2 Object-oriented design

5.2.1 Encapsulation

5.2.2 Responsibility of a class

5.2.3 Commonalities and differences between objects

5.2.4 Principle of replaceability with derived classes

5.2.5 Determining relationships

5.2.6 SOLID principles

5.3 Reusable and easy-to-maintain software

5.3.1 How can software be made reusable?

5.3.2 Libraries are helpful

5.3.3 What is the best way to develop modules?

5.4 Organizational and legal aspects

5.4.1 Transition to OOP must be planned

5.4.2 Software needs to be planned

5.4.2.1 Analysis of existing programs

5.4.2.2 Reuse of software

5.4.3 Reuse and ownership of software

5.4.3.1 Distribution of software

5.4.3.2 Acquisition of software

5.4.4 “Good software” and object-oriented design

5.5 Software tests are a must!

5.5.1 Module test

5.5.2 Integration test

5.5.3 System test

5.5.4 Acceptance test

6 Additional topics relating to ­Software Structuring

6.1 I/O references

6.1.1 Declaration

6.1.2 Linking references to I/O variables

6.2 Namespaces

6.3 General references

6.3.1 Declaration and initialization

6.3.2 Working with references

7 Description of the extended functionality in SIMOTION7

7.1 General extensions to the programming model

7.2 Classes in SIMOTION

7.2.1 Constants and user-defined data types in classes

7.2.2 Naming of variables in classes and methods

7.2.3 Method calls

7.2.4 FINAL for methods and classes

7.2.5 Declaration of abstract classes and methods

7.2.6 Interface implementation and class derivations

7.2.7 Type conversions for classes and interfaces

7.3 Instantiation of classes and function blocks

7.3.1 User-defined initialization of instances

7.3.2 Initialization of interface variables

7.3.3 Creating class and function block instances

7.3.4 RETAIN data in classes and function blocks

7.3.5 Arrays of variable length

7.4 Tips for creating compatible and efficient software

7.4.1 Methods and function calls

7.4.2 Use of enum values and constants

7.4.3 Use of predefined namespaces

7.4.4 Declaration of data types, variables and methods

7.4.5 Preparing structured data for transmission

8 Introduction to SIMOTION

8.1 Classic development of control systems

8.2 New control concepts required

8.3 Technology Objects in SIMOTION

8.4 Three hardware platforms

8.5 Connecting drives and I/O devices to SIMOTION

8.6 Handling kinematics in SIMOTION

8.7 SIMOTION’s programming model

8.7.1 The units of SIMOTION

8.7.2 The variable model in SIMOTION

8.7.3 Libraries in SIMOTION

8.8 The SIMOTION SCOUT engineering system

8.9 Components of SCOUT8.9

8.9.1 The SCOUT project navigator

8.9.2 Creating a new project

8.9.3 Creating a new device

8.9.4 Hardware configuration

8.9.5 The SIMOTION address list

8.9.6 Creating axes

8.9.7 Creating drives

8.9.8 Creating path objects

8.9.9 Language editors in SCOUT

8.9.10 Support for programming languages

8.9.11 Inserting program sources (units)

8.9.12 Entering programs

8.9.13 Assigning programs to the execution system

8.9.14 Integrated test functions

8.9.15 Testing with “program status”

Note about using the example programs

Index

Further books from Publicis Publishing

The users who browse this book also browse