autoSIM V4

Environment.. 13

Installation.. 15

Configuration required. 15

Installation in a network. 15

New features of autoSIM-200. 16

Post-processors. 16

Choice of “Beginner / Expert” mode. 16

Increased integration of the Grafcet 60848 standard. 16

Compatibility of files. 16

Physical engine integrated to IRIS3D.. 16

Enhanced 3D object handling in IRIS3D.. 16

Improved links between autoSIM-200 and IRIS3D objects. 16

Textured IRIS3D objects. 17

Drag and drop from IRIS3D to autoSIM-200 sheets. 17

SIMULA user-definable object 17

Drag and drop from SIMULA to autoSIM-200 sheets. 17

Improvements to the environment 17

Environment. 18

Start 18

General views. 19

Palettes in expert mode. 21

Palettes in beginner mode. 21

Displaying or hiding the project window or message window.. 23

Displaying the work space in full screen mode. 23

Keyboard shortcuts. 23

Licenses. 24

Registering a license. 24

Modifying a license. 25

Moving a license from one computer to another. 26

Network licenses. 27

Adding a network license. 28

Modifying a license. 28

Connecting to client stations. 28

Additional information on installing autoSIM-200 in a network environment 29

General information. 29

Installing autoSIM-200 on a file server 29

Installing one or more autoSIM-200 licenses on a network license manager 29

Installing the network license server as a service. 31

Uninstallation. 32

Errors. 32

The project. 33

Files generated with AUTOMSIM 200 V1. 33

Generating a free distribution executable file. 33

Modifying project properties. 34

Modifying security options. 34

Advanced options. 34

User interface. 34

Model 34

Automatic GO.. 35

The Browser. 36

Sheets. 37

Adding a new sheet 37

Modifying the sheet compilation order 38

Deleting a sheet from the list 38

Exporting a sheet to a « .GR7 » file. 38

Copying, Cutting, Pasting a sheet 38

Renaming a sheet 38

Modifying sheet properties. 38

Symbols. 39

Creating a symbol table. 39

Importing a symbol table. 39

Configuration. 40

Compiler options. 40

Documentation. 40

Generated files. 41

Generating the instruction list in pivot code. 41

Generating the cross reference list 41

Settings. 41

Viewing and modifying a variable or variable table. 41

IRIS objects. 43

Adding an IRIS 2D object 43

Deleting an IRIS 2D object 44

Displaying or hiding an IRIS 2D object 44

Cutting, copying, pasting an IRIS 2D object 45

Adding a new IRIS 2D object on a console. 45

Modifying the properties of an IRIS 2D object 45

Setting an object model accessible on the assistant 46

Importing an IRIS 2D object in an earlier version of autoSIM-200. 46

Creating an IRIS 3D console. 47

Resources. 47

Adding a file to the resources. 47

Deleting a file from the resources. 47

Renaming a file in the resources. 47

Modifying a file in the resources. 47

Adding and converting 3D STUDIO files in the resources. 47

External modules. 47

Designing programs. 49

Designing with the assistant 49

Designing with the shortcut menu. 50

Designing with the pallet 50

Enhancing and customizing the pallet 50

Designing with the keyboard keys. 50

Delete block. 50

Link blocks. 50

Grafcet blocks. 51

Flowchart blocks. 53

Ladder blocks. 53

Action blocks. 54

Test blocks. 56

Organization chart blocks. 56

Function block blocks. 56

Other blocks. 57

Documenting program elements. 57

Adding symbols. 58

Running an application.. 60

To run an application easily. 60

To end the run. 60

To compile only. 60

To stop the compilation. 60

To connect to a processor or install a PC.. 60

To disconnect a processor or uninstall a PC.. 60

To put the target in RUN mode. 60

To put the target in STOP mode. 60

To initialize the target 60

To run a program cycle on the target (generally not supported on processors) 61

To activate the dynamic display. 61

The compiler. 62

Modifying compiler options. 62

Displaying compilation messages. 62

Finding an error. 62

Running programs on a PC.. 64

Configuring the number of variables. 64

PC system variables. 65

Modifying the run period. 66

Driving inputs/outputs. 66

IRIS 2D references. 68

Modifying object display. 68

Modifying object characteristics. 69

Removing an object 69

Dimensioning an object 69

Moving an object 69

Putting an object in « User » mode. 69

Putting an object in « Configuration » mode. 69

Modifying the characteristics of an object 69

Block access to configuration for all objects. 70

Basic objects, preset objects. 70

List of basic objects. 70

« Console » object 70

The « Button and light » object 70

The« Object » object 70

The « Digital value » object 70

The « Screen, keyboard, message list » object 71

The « Sound » object 71

The « Data archive » object 71

The « Program » object 71

The « Dialogue box » object 71

The « Analog value » object 71

Practical experience. 71

Step 1. 71

Step 2. 72

Step 3. 72

Step 4. 72

Step 5. 73

Step 6. 73

Step 7. 74

Syntax for accessing the state of variables. 75

Boolean state. 75

Numeric state. 75

Modifying the state. 75

Special orders. 76

Interchanging objects. 76

Details of a « Console » object 77

« Aspect » tab. 77

« Bitmap » tab. 78

« Links » tab. 78

« Options » tab. 78

« Sisters » tab. 79

« External » tab. 79

Details of an « Illuminated Button » object 80

« Aspect » tab. 80

« Links » tab. 80

« Options » tab. 81

Details of a « Digital value » object 83

« Aspect » tab. 83

« Texts » tab. 84

« Links » tab. 84

Details of an « Analog value » object 84

« Aspect » tab. 85

« Links » tab. 85

« Limits» tab. 85

« Graduations » tab. 86

Details of « Screen, keyboard, message list » object 87

Links with the application. 87

Message classes. 88

« Aspect » tab. 88

This is used to set an object type. See chapter links with the application. 88

« Links » tab. 89

« List » tab. 89

« Options » tab. 90

« Messages » tab. 91

Details of « Data archive » object 91

« Aspect » tab. 91

« Data » tab. 92

« Options » tab. 93

« Tables » tab. 94

« Graph» tab. 95

« Graduations » tab. 96

« Grid » tab. 97

Details of « Object » object 98

« Aspect » tab. 98

« Links » tab. 99

« Formats » tab. 100

« Bitmap » tab. 100

« Wmf » tab. 101

« Colors » tab. 102

« Gauge » tab. 102

« Sensor» tab. 102

« Options » tab. 103

Advanced techniques. 103

Details of « Sound » object 104

« Aspect » tab. 104

« Sounds » tab. 104

Details of « Dialogue box » object 104

« Aspect » tab. 105

« Links » tab. 105

« Messages » tab. 107

Details of « Program » object 107

Run time distribution. 107

Display. 107

Syntax. 107

Stating variables. 107

Writing a program.. 108

Constants. 108

Assignment 109

Calculations. 109

Tests. 110

Loops. 110

Variable or variable table address. 111

List of functions. 111

Error messages. 117

« Aspect » tab. 118

« Program » tab. 119

IRIS 2D examples. 120

Example of composed objects. 120

Example of using the « Screen, keyboard, message list » object as a message list 123

Example of using the « SCREEN KEY » object as a terminal 124

Example of an application composed of multiple pages. 126

Example of using the «OBJECT » object 126

Example of using the «ARCHIVE» object 132

Example of using the «PROG » object 132

Examples of supervision application 1. 133

Examples of supervision application 2. 133

Example of operating part simulation 1. 134

Example of operating part simulation 2. 136

IRIS 3D references. 137

Creating an IRIS 3D console. 138

Adding 3D files to the project 139

Configuring the objects. 140

Adding objects to the 3D world. 141

Removing a 3D file from the resources. 141

Removing an object from a 3D world. 141

Importing an “enhanced” object 141

Exporting an “Enhanced” object 144

Example of creating a 3D simulation based on enhanced objects. 145

Applying a behavior to an object 156

Name of autoSIM-200 variables. 157

Adding a translation. 158

Adding a rotation. 162

Adding a color change. 162

Adding a link. 163

Adding another behavior 164

Physical engine. 165

IRIS 3D example. 167

Language.. 171

Common elements. 173

Variables. 173

Booleen variables. 173

Numeric variables. 174

Time delay. 174

Actions. 176

Assignment of a boolean variable. 176

Complement assignment of a boolean variable. 177

Setting a boolean variable to one. 178

Resetting a boolean variable. 179

Inverting a boolean variable. 179

Resetting a counter, a word or a long. 180

Incrementing a counter, a word or a long. 181

Decrementing a counter, word or long. 181

Time delays. 182

Interferences among the actions. 182

IEC1131-3 standard actions. 183

Multiple actions. 183

Literal code. 183

Tests. 184

General form.. 184

Test modifier 185

Time delays. 185

Priority of boolean operators. 186

Always true test 186

Numeric variable test 186

Transitions on multiple lines. 187

Use of symbols. 187

Symbol syntax. 188

Automatic symbols. 188

Automatic symbol syntax. 188

How does the compiler manage the automatic symbols ?. 188

Range of variable attribution. 189

Fixed-address symbols. 189

Examples. 190

Grafcet 192

Simple Grafcet 192

Divergence and convergence in « And ». 195

Divergence and convergence in « Or ». 197

Destination and source steps, destination and source transitions. 199

Multiple actions, conditioned actions. 200

Conditional actions, event-based actions. 201

Actions on activation or deactivation of a step. 201

Actions on transition crossing. 201

Synchronization. 202

Grafcet setting. 204

Grafcet forcings (60848 standard) 211

Macro-steps. 212

Encapsulating steps. 215

Grafcet / Ladder and Grafcet / Flow chars links. 217

Counters. 218

Gemma. 219

Creating a Gemma. 221

ontent of Gemma rectangles. 221

Obtaining a corresponding Grafcet 221

Printing Gemma. 222

Exporting Gemma. 222

Example of Gemma. 222

Ladder. 225

Example of Ladder 226

Flow chart 227

Drawing flow charts. 228

Example of a flow chart 229

Literal languages. 231

How is a literal language used?. 231

Setting a code box. 233

Low level literal language. 233

Macro-instruction. 292

Libraries. 293

Pre-defined macro-instructions. 293

Description of pre-defined macro-instructions. 293

Example of low level literal language. 295

Extended literal language. 298

Writing boolean equations. 299

Writing numeric equations. 300

IF...THEN...ELSE...structure 301

WHILE ... ENDWHILE structure. 302

Example of a program in extended literal language. 302

ST literal language. 303

General Information. 303

Boolean equations. 304

Numeric equations. 305

Programming structures. 306

Example of a program in extended literal language. 307

Organization chart 307

Creating an organizational chart 308

Rectangle content 309

Illustration. 309

Function blocks. 311

Creating a function block. 312

Drawing a block and creating a « .ZON » file. 312

Creating an « .LIB » file. 314

Simple example of a function block. 315

Illustration. 315

Supplementary syntax. 318

Evolved function blocks. 319

Syntax. 319

Differentiating between new and old function blocks. 319

Example. 320

Predefined function blocks. 320

Conversion blocks. 321

Time delay blocks. 321

String blocks. 321

Word table blocks. 321

Advanced techniques. 321

Compiler generated code. 321

Optimizing generated code. 322

Examples. 325

Regarding examples. 325

Simple grafcet 325

Grafcet with an OR divergence. 326

Grafcet with an AND divergence. 327

Grafcet and synchronization. 328

Step setting. 329

Destination and source steps. 330

Destination and source steps. 331

Setting Grafcets. 332

Memorizing Grafcets. 333

Grafcet and macro-steps. 334

Linked sheets. 335

Flow chart 337

Grafcet and Flow Chart 338

Literal language box. 339

Organizational chart 340

Organizational chart 341

Function block. 342

Function block. 343

Ladder 344

Example developed on a train model 345

Educational training manual for autoSIM-200 users. 352

Distribution. 353

Doctor R. in the home automation kingdom.. 353

First example: « which came first the bulb or the switch … ». 354

Solution 1: natural language of an electrician: ladder 355

Solution 2: the sequential language of the automation specialist: Grafcet 355

It's your turn to play …... 357

Second example: « time frames, time-switches and other time fun… ». 357

Solution 1: simplicity. 358

Solution 2: improvement 359

Third Example: « variation on the theme of coming and going… ». 360

Fourth example: « And the push button became intelligent … ». 364

The solutions …... 368

« which came first the switch or the bulb … ». 368

« time delays, time switches and other time fun… ». 368

« variation on the theme of coming and going …». 370

SIMULA.. 371

SIMULA.. 373

Introduction. 373

Installation. 374

Practical experience. 374

autoSIM-200’s “beginner” mode. 378

Using SIMULA.. 379

Organizing applications. 379

Opening an existing application. 379

Creating an SIMULA sheet 379

Adding an object onto an SIMULA sheet 380

Using the palette. 382

Selecting one or more objects. 383

Selecting one or more objects. 384

Deleting one or more objects. 384

Changing the orientation of one or more objects. 384

Copying/cutting one or more objects to the clipboard. 384

Pasting one or more objects from the clipboard. 385

Modifying object properties. 385

Exporting one or more objects. 385

Advanced functions. 386

Interactions between objects. 386

Creating sensors associated with a cylinder 386

Interactions between SIMULA objects and the automaton program.. 388

Interactions between SIMULA objects and the IRIS 3D operational unit simulator 389

Interactions between SIMULA objects and the IRIS2D supervision objects. 390

How can a link be made between an IRIS2D pushbutton or switch and an SIMULA pushbutton or switch?. 390

How can a link be made between an SIMULA object and an IRIS2D indicator light?. 391

Drag and drop from an SIMULA variable to an autoSIM-200 sheet 392

User-definable objects. 393

Designs. 395

List of design primitives. 396

Program.. 400

Connections. 403

Example. 404

POST-PROCESSORS. 405

General Information.. 407

Configuration.. 408

Configuration files. 408

System.. 408

Variable functions. 408

Start-up manufacturer code. 408

End manufacturer code. 408

Configuration by default 409

Modifying the default statements. 410

Using the default statements. 410

Displaying and modifying configuration elements. 410

System.. 410

Hardware configuration. 410

Software configuration. 411

Code generation options. 411

Stating the variables. 411

Other elements. 411

See the « System » element in text format. 411

Displaying system elements. 412

Variable functions. 412

Single assignment 413

Linear assignment 413

Automatic assignment 413

Types of autoSIM-200 elimination variables. 414

Modifying a variable function element 419

Adding a variable function element 419

Deleting a variable function element 422

Associating an autoSIM-200 bit to a target system bit 422

Associating a table of autoSIM-200 words to a table of fixed target words. 423

Associating autoSIM-200 words to target analog inputs or outputs. 424

Associating a table of autoSIM-200 bits to a table of target bits. 424

See the variable functions in text format 425

Start-up manufacturer code, end manufacturer code. 425

Reference to an autoSIM-200 variable. 425

Referring to an autoSIM-200 application symbol 426

Setting and referring to a label 426

Entering machine code in an application. 426

Selecting connection options. 426

Selecting a connection mode. 427

Setting communication module parameters. 427

Post-processor S7200. 428

Selecting CPU type. 428

Communication module. 428

Specific example. 428

Post-processor S7300. 429

Communication module. 429

Specific syntaxes. 429

Setting block variables. 430

Calling up blocks. 430

Importing in SIEMENS SIMATIC software. 431

Structure of generated code. 433

Selecting program blocks to use. 437

Associating code written on a sheet to a program block. 437

Specific examples. 437

Calling up a STEP7 block. 438

Using an OB block. 438

Post-processor OMRON.. 439

Select PLC model 439

Communication module. 439

Transferring applications to the CX-PROGRAMMER software. 439

Specific syntax. 442

Associating code written on a sheet to a program block. 442

Specific example. 442

Post-processor ALLEN-BRADLEY.. 443

Communication module. 443

Transferring programs to ROCKWELL RS-Logix 500 Software. 443

Post-processor TWIDO.. 445

Processor configuration selection. 445

Communication module. 445

Post-processor MITSUBISHI. 446

Selecting the type of processor. 446

Communication module. 446

Transferring programs to MITSUBISHI FX-WIN software. 447

Transferring programs to MITSUBISHI GX-DEVELOPPER software. 447

Post-processor MITSUBISHI-Q.. 449

Communication module. 449

Transferring programs to MITSUBISHI GX-DEVELOPPER software. 449

Environment

autoSIM - (C)1988-2015 SMC


1 Installation

Installation

If you are installing autoSIM-200 from the autoSIM-200 CD-ROM, place it in your CD-ROM drive.

The installation is launched automatically.

If this does not occur, launch the “Setup.exe” executable which is in the CD-ROM root.

Related Topics
1.1 Configuration required
1.2 Installation in a network


1.1 Configuration required

Configuration required

PC compatible computer, with:

- WINDOWS XP or WINDOWS 2003 or WINDOWS VISTA or WINDOWS 7 or WINDOWS 8 operating system,

- 512 MB memory (depending on the operating system: the operating system itself may require more memory),

- graphics board with a resolution of at least 1024 x 768 in 65536 colors.

Related Topics
1 Installation


1.2 Installation in a network

Installation in a network

autoSIM-200 can be installed in a network environment.

Execute the installation procedure on the “server” PC (make sure you have all of the access rights when you carry out the procedure).

To launch autoSIM-200, on the client PCs, create a shortcut to the “as200.exe” executable of the autoSIM-200 installation directory on the server PC.

Refer to the chapter “additional information on installing autoSIM-200 in a network environment” for more information about installing autoSIM-200 and licenses in a network environment.

1 Installation


2 New features of autoSIM-200

New features of autoSIM-200

Related Topics
2.1 Post-processors
2.2 Choice of “Beginner / Expert” mode
2.3 Increased integration of the Grafcet 60848 standard
2.4 Compatibility of files
2.5 Physical engine integrated to IRIS3D
2.6 Enhanced 3D object handling in IRIS3D
2.7 Improved links between autoSIM-200 and IRIS3D objects
2.8 Textured IRIS3D objects
2.9 Drag and drop from IRIS3D to autoSIM-200 sheets
2.10 SIMULA user-definable object
2.11 Drag and drop from SIMULA to autoSIM-200 sheets
2.12 Improvements to the environment


2.1 Post-processors

Post-processors

Post-processors may be used for generating PLC programs.

2 New features of autoSIM-200


2.2 Choice of “Beginner / Expert” mode

Choice of “Beginner / Expert” mode

“Beginner” mode allows beginners to use a “simplified” environment that is extremely easy to use.

2 New features of autoSIM-200


2.3 Increased integration of the Grafcet 60848 standard

Increased integration of the Grafcet 60848 standard

The new elements of this standard can now be accessed in the contextual program editing menus.

2 New features of autoSIM-200


2.4 Compatibility of files

Compatibility of files

The files generated by all of the autoSIM-200 versions can be re-read by all of the autoSIM-200 versions.

2 New features of autoSIM-200


2.5 Physical engine integrated to IRIS3D

Physical engine integrated to IRIS3D

The TOKAMAK motor is integrated to IRIS3D. This enables an extremely realistic simulation of the 3D operational units to be obtained.

2 New features of autoSIM-200


2.6 Enhanced 3D object handling in IRIS3D

Enhanced 3D object handling in IRIS3D

The saving and re-reading of objects and behaviors allows you to manage libraries of easily reusable objects. Predefined objects (cylinders, conveyor belts, etc) are proposed as standard. A 3D operational unit simulation application can now be created in just a couple of mouse clicks.

2 New features of autoSIM-200


2.7 Improved links between autoSIM-200 and IRIS3D objects

Improved links between autoSIM-200 and IRIS3D objects

Enhanced modes allow you to easily handle displacements of complex objects between autoSIM-200 and IRIS3D. An autoSIM-200 variable can, for example, give the speed of an object directly. Position reporting can also be simulated in the manner of an absolute encoder.

2 New features of autoSIM-200


2.8 Textured IRIS3D objects

Textured IRIS3D objects

Textured objects now provide IRIS3D with extraordinarily realistic rendering.

2 New features of autoSIM-200


2.9 Drag and drop from IRIS3D to autoSIM-200 sheets

Drag and drop from IRIS3D to autoSIM-200 sheets

A right click on the IRIS3D objects allows you to access the list of variables and “drag” a reference over to a programming sheet.

2 New features of autoSIM-200


2.10 SIMULA user-definable object

SIMULA user-definable object

SIMULA users will appreciate the new user-definable object, which will allow you to create your own objects.

(see the section of this manual devoted to SIMULA)

2 New features of autoSIM-200


2.11 Drag and drop from SIMULA to autoSIM-200 sheets

Drag and drop from SIMULA to autoSIM-200 sheets

A click on the SIMULA objects allows you to “drag” a reference over to a programming sheet.

2 New features of autoSIM-200


2.12 Improvements to the environment

Improvements to the environment

Finally, numerous improvements to the environment, such as the magnifying glass in the design palette, the simplified palettes in “beginner” mode, or personalizing menus make autoSIM-200 even more user-friendly.

2 New features of autoSIM-200


3 Environment

Environment

Related Topics
3.1 Start
3.2 General views
3.3 Palettes in expert mode
3.4 Palettes in beginner mode
3.5 Displaying or hiding the project window or message window
3.6 Displaying the work space in full screen mode
3.7 Keyboard shortcuts


3.1 Start

Start

When autoSIM-200 is launched, a choice of mode for the environment is proposed. “Beginner” modes make it possible to start using autoSIM-200 in a “simplified” configuration, with a reduced number of options in the menus and simplified palettes. This mode is especially suited to people using autoSIM-200 for the first time. Expert mode offers all of the applications. You could create your own models (see “project models”).

3 Environment


3.2 General views

General views

Zone de Texte: Message window Zone de Texte: Tabs Zone de Texte: Browser Zone de Texte: Tool bars Zone de Texte: Workspace

autoSIM-200’s main window in “Expert” mode

The environment is fully customizable. The tool bars can be moved (by dragging their moving handle [image]) and parameterized (menu “Tools/Customize the environment”).

The state of the environment is saved when you quit it. This state can also be saved in a project file (see the project options).

Zone de Texte: Tool bars Zone de Texte: Simplified palettes Zone de Texte: Workspace autoSIM-200’s main window in “Beginner” mode

3 Environment


3.3 Palettes in expert mode

Palettes in expert mode

At the bottom of the browser window there is a “Palette” tab, allowing access to program design elements.

The palette gives a set of elements that can be selected and placed on the sheets. To select an element, left-click with the mouse in the palette, expand the selection, release the mouse button, click in the area selected and move the area towards the sheet.

The palette also contains the list of symbols for the project. You can grab them and drag them onto a test or an action on a sheet.

A magnifying glass is automatically shown when the elements displayed are small.

3 Environment


3.4 Palettes in beginner mode

Palettes in beginner mode

In beginner mode, the palette contains a reduced group of the simplest tools for designing programs. Left-click with the mouse over a category to “open up this category” like a tree structure.

The palette in “beginner” mode

“ [image] ” elements allow access to sub-elements.

The palette in “beginner” mode showing the “Grafcet” category open

The “ [image] ” element allows a category to be closed.

3 Environment


3.5 Displaying or hiding the project window or message window

Displaying or hiding the project window or message window

Select the « Project » or « Messages » option from the « Window » menu.

3 Environment


3.6 Displaying the work space in full screen mode

Displaying the work space in full screen mode

Select the « Full screen » option from the « Display » menu. Click on [image] to exit full screen mode.

3 Environment


3.7 Keyboard shortcuts

Keyboard shortcuts

Keyboard shortcuts are written in the menus. « Masked » shortcuts can also be used:

CTRL + ALT + F8 | Save the project in executable format
CTRL + ALT + F9 | Save the project
CTRL + ALT + F10 | Access project properties
CTRL + ALT + F11 | Display or hide autoSIM-200 window

Zone de Texte:

Parameters can be set for the entire environment, its state is saved when you close autoSIM-200. Environment windows can be hidden. The « Windows » menu is used to display them again. The work space can be displayed in full screen mode.

3 Environment


4 Licenses

Licenses

A license establishes autoSIM-200 user rights. The following elements are established by license:

- the number of all or none inputs/outputs that can be used,

- the number of users (only for network licenses).

Related Topics
4.1 Registering a license
4.2 Modifying a license
4.3 Moving a license from one computer to another
4.4 Network licenses
4.5 Additional information on installing autoSIM-200 in a network environment
4.6 Uninstallation
4.7 Errors


4.1 Registering a license

Registering a license

When you install autoSIM-200, you can use it for free for a period of 40 days.

You must register your license within 40 days.

The « License » option in the autoSIM-200 « File » menu can be used to display the status of your license and obtain a user code (click on « Registering the license »).

License status.

Once in the License registration dialogue box, please do the following:

- Click on "Register on the Web", and you’ll access to the registering sheet (you will have to be connected to the Internet).

- In this registering sheet, insert the Serial Number and Password provided. The User Code should appear automatically. Otherwise, please copy it from this window and paste it.

- Click on "Validate". Copy the validation code and paste it on this window by clicking "Paste a validation code from the clipboard".

If you have any problem, please contact us: training@smctraining.com

4 Licenses


4.2 Modifying a license

Modifying a license

Modification of a license Involves changing the elements authorized by the license.

The license modification procedure is identical to registration.

4 Licenses


4.3 Moving a license from one computer to another

Moving a license from one computer to another

This procedure is more complex. The instructions below must be scrupulously followed to obtain good results. In the instructions below, « source » PC indicates the computer with the license and the « target » PC is the PC where the license needs to be moved.

1- if it has not already been done, install autoSIM-200 on the target PC,

2- generate an « .a8u » user code file on the target PC and move this file to the source PC (for example on a floppy disk),

3- on the source PC, select the « Move the license to another place » option,

Dialogue box for moving a license

4- on the source PC, click on « Read a user code from a file » and select the « .a8u » file that came from the target PC,

5- on the source PC, click on « Move the license »,

6- on the source PC, click on « Save the validation code in a file », recopy the generated « .a8v » file to the target PC,

7- on the target PC, click on « Read a validation code from a file » and select the « .a8v » file that came from the source PC.

4 Licenses


4.4 Network licenses

Network licenses

The « akey8.exe » executable manages the network license. This executable must be launched from one of the network computers. The network must be able to be used with TCP IP protocol. When launched, the network license manager is hidden and only a [image] icon appears in the WINDOWS keybar. To display the network license manager window, double click on the [image] icon in the keybar.

The network license manager

Up to 16 different licenses can be managed by the network license manager. A network license is characterized by a number of users and a type of copyright. For each license the number of possible user/s, number of connected user/s and list of connected users (using autoSIM-200) is displayed in a tree format attached to each license. Each license is associated to a port number (a numeric value starting from 5000 by default). The first port number used can be configured by clicking on « Parameters ».

Related Topics
4 Licenses
4.4.1 Adding a network license
4.4.2 Modifying a license
4.4.3 Connecting to client stations


4.4.1 Adding a network license

Adding a network license

You can add a license by clicking on « Add a license ». The license registration principle is the same as for single license versions.

4.4 Network licenses


4.4.2 Modifying a license

Modifying a license

Double click on the licenses to modify them. The license modification procedure is the identical to that used for single license versions.

4.4 Network licenses


4.4.3 Connecting to client stations

Connecting to client stations

Click on « Connect to a network license » to connect a client station to a network license.

Connecting to a network license

The PC name (the one from the network) where the « akey8.exe » was launched must be provided as well as the port number corresponding to the desired license.

Zone de Texte:

The network license manager is used to manage multiple licenses on TCP IP network PC's.

4.4 Network licenses


4.5 Additional information on installing autoSIM-200 in a network environment

Additional information on installing autoSIM-200 in a network environment

Related Topics
4 Licenses
4.5.1 General information
4.5.2 Installing autoSIM-200 on a file server
4.5.3 Installing one or more autoSIM-200 licenses on a network license manager
4.5.4 Installing the network license server as a service


4.5.1 General information

General information

Two aspects of the autoSIM-200 installation have to be considered: installing files on the one hand and managing licenses on the other. These two aspects are completely separate: you can choose to install the files either on the hard disk of the client PCs or else on a file server and, completely independently of this, choose to install either a license locally on a PC or else a network license on a network license manager.

Related Topics
4.5 Additional information on installing autoSIM-200 in a network environment


4.5.2 Installing autoSIM-200 on a file server

Installing autoSIM-200 on a file server

Benefit: the autoSIM-200 files are installed just once on a file server, and updates are simplified.

Procedure on the file server: install autoSIM-200. Rights needed: read-access is sufficient.

Procedure on the client workstations: create a shortcut to the “as200.exe” executable, which is in the autoSIM-200 installation directory on the file server.

Related Topics
4.5 Additional information on installing autoSIM-200 in a network environment


4.5.3 Installing one or more autoSIM-200 licenses on a network license manager

Installing one or more autoSIM-200 licenses on a network license manager

Benefit: the licenses are no longer restricted to one PC but can be used by all of the PCs connected to the network (floating licenses).

Principle: one or more licenses are installed on one of the network’s PCs. A license authorizes from 1 to n users. autoSIM-200 may be launched on client PCs upto the maximum number of users. If several configurations (several types of licenses) are needed, then as many licenses will be created as there are different types of configurations. When autoSIM-200 is launched on the client PCs, a connection will be created to one or other of the licenses depending on the features that are wanted.

Actual example: setting up a network of 4 16 I+16 O PL72 licenses, 4 16 I+16 O PL7 licenses + 2 unlimited I/O PL7 licenses. For this: 3 licenses will be created on the network license manager: 1 license for 4 16 I+16 O PL72 users, 1 license for 4 16 I+16 O PL7 users, 1 license for 2 unlimited I/O PL7 users.

Where to install the network license manager: on one of the network’s PCs (it does not have to be the server) which must be running all the time (whenever a user would like to use autoSIM-200).

Technical constraints: the network must support TCP/IP, the PC where the network license manager is located must be able to run a WINDOWS program (application or service).

Installation on the network license manager: on the PC where the network licenses are going to be managed, install the main autoSIM-200 module + the network license manager.

Registering one or more licenses on the network license manager: launch the network license manager: (AKEY8.EXE executable, located in the autoSIM-200 installation directory). When launched, the license manager sets up an icon in the bottom right of the WINDOWS task bar. Left-click once with the mouse to open the window.

Click on “Add a license” to add a license.

The licenses installed in this way will then be shown in the network license manager with the serial number and characteristics of the license and the associated port number. It is this port number that will allow clients to connect to a specific license.

Installation on the client workstations: launch autoSIM-200, and in the “File / License” menu select “Connect to a network license”.

Enter the name of the PC where the network license manager is running (or its IP address) and the port number (this number makes it possible to identify the license you want to connect to, if there is more than one).

It is also possible to add an argument in the autoSIM-200 launch shortcut in order to force connection to one network license.

The argument is:

/NETLICENSE=<name of the PC where the network license manager is located>,<port>

Make sure that “NETLICENSE” is correctly spelled: S not C at the end.

For example:

/NETLICENSE=MYSERVER,5001

Several launch shortcuts can be created in order to connect to different licenses.

Possible problems: if you use a firewall, make sure access is authorized to the ports used by the network license manager (those displayed in the network license manager).

Installing the network license manager as a service under WINDOWS NT, 2000, XP, 2003, VISTA and WINDOWS 7: see the following chapter.

Displaying the status of the licenses remotely: to display the status of the network license manager on a different PC from the one on which the network license manager has been launched (or if the “service” version of the network license manager is being used), use the “spya8protnet.exe” utility, which is located in the autoSIM-200 installation directory.

Related Topics
4.5 Additional information on installing autoSIM-200 in a network environment


4.5.4 Installing the network license server as a service

Installing the network license server as a service

The “NT Service” key server allows the autoSIM-200 network licenses to be managed on a WINDOWS NT4, 2000, 2003, XP; VISTA or WINDOWS 7 workstation without opening a session. Unlike the AKEY8.EXE “executable” version, AKEY8NT.EXE does not allow either the protections or the connected users to be displayed.

Before installing the key server as an “NT service”, you are recommended to make sure that the key server works properly with the “executable” version: AKEY8.EXE.

Launch the “akey8nt –i” command line to install the NT key server service. The AKEY8NT.EXE executable is installed in the autoSIM-200 installation directory.

So that the service starts automatically:

- under WINDOWS NT4: in the “Start/Parameters/Configuration Panel” menu, select the “Services” icon the “AKEY8” line, click on the start button and select the “Automatic” button.

Reboot your PC so that the key server is activated.

- under WINDOWS 2000, 2003, XP, VISTA or WINDOWS 7: in the “Start/Parameters/Configuration Panel” menu, select the “Administrative Tools” icon then the “Services” icon. Right-click with the mouse on the “AKEY8” line and select “properties”. In the “Startup Type” option, select “Automatic”. In the “Recovery” tab, select “Restart the service” in the “First Failure” area.

Related Topics
4.5 Additional information on installing autoSIM-200 in a network environment


4.6 Uninstallation

Uninstallation

Launch the “akey8nt –u” command to uninstall the NT key server service.

4 Licenses


4.7 Errors

Errors

After having uninstalled the AKEY8NT.EXE service, use AKEY8.EXE to determine the cause of any malfunctions.

4 Licenses


5 The project

The project

autoSIM-200 is strongly based on the idea of a project. A project groups together the elements that compose an application. The browser (see page 23 ) displays all the project elements (sheets, symbols, configuration, IRIS objects etc.) in a tree format.

The new file format of autoSIM-200 (files with « .AGN » extension) includes all project elements.

When you save an « .AGN » file you are assured of saving all the elements of an application. You can easily and effectively interchange applications created with autoSIM-200.

« .AGN » files are compacted with « ZIP » technology, they do not need to be compressed to be interchanged, their size is already optimized.

All the files generated by autoSIM-200 can be re-read with all of the versions of autoSIM-200: upward and downward compatibility.

Related Topics
5.1 Files generated with AUTOMSIM 200 V1
5.2 Generating a free distribution executable file
5.3 Modifying project properties


5.1 Files generated with AUTOMSIM 200 V1

Files generated with AUTOMSIM 200 V1

The files created with AUTOMSIM 200 V1 can be opened directly in autoSIM-200.

5 The project


5.2 Generating a free distribution executable file

Generating a free distribution executable file

The « Generate an executable » command from the « File » menu is used to generate an executable starting from a project in progress (an « .EXE » file executable on a PC with WINDOWS). The autoSIM-200 « viewer » is automatically integrated with the generated executable (the executable user does not need autoSIM-200). This viewer makes it possible to use the application without modifying it. You can easily distribute your applications. The generated executable is not covered by copyright. This technique is normally used for producing a supervising application.

5 The project


5.3 Modifying project properties

Modifying project properties

With the right side of the mouse click on the « Project» element on the browser and select « Properties » from the menu.

Related Topics
5 The project
5.3.1 Modifying security options
5.3.2 Advanced options
5.3.3 User interface
5.3.4 Model
5.3.5 Automatic GO


5.3.1 Modifying security options

Modifying security options

You can restrict reading or modification access to a project by passwords.

5.3 Modifying project properties


5.3.2 Advanced options

Advanced options

« Save the environment aspect with the project »: if checked, the position of the windows and the aspect of the toolbars are saved in the « .AGN » file. When the project is opened, these elements are reproduced.

« Hide the main window upon launching … »: if checked, the autoSIM-200 window is hidden when the project is opened. Only IRIS objects incorporated in the project will be displayed. This option is normally used to create « package » applications which only leave IRIS objects displayed. Use the [CTRL] + [F11] keys to redisplay the autoSIM-200 window.

The other options are used to change the display of the autoSIM-200 window when a project is opened.

5.3 Modifying project properties


5.3.3 User interface

User interface

« Block IRIS object configuration »: if checked, a user cannot modify IRIS object configuration.

The other options are used to modify the behavior of the user interface.

5.3 Modifying project properties


5.3.4 Model

Model

« This project is a document model »: if checked, when opened all the options and the documents it contains act as a model for the creation of a new project. This functionality is used to create standard configuration which can be uploaded when autoSIM-200 is launched (for example a default symbol file or a default processor configuration).

Related Topics
5.3 Modifying project properties
5.3.4.1 Defining a mode


5.3.4.1 Defining a mode

Defining a mode

To define a mode that can be used when launching autoSIM-200 (like the “Expert” and “Beginner” modes), save a project model in the “models” sub-directory of the autoSIM-200 installation directory. An image can be linked to a model. To do this, create a “jpg” format file with the same name as the “.agn” file. This file must have the following dimensions: 120 pixels wide by 90 pixels high.

5.3.4 Model


5.3.5 Automatic GO

Automatic GO

«Automatic go at project launch »: if checked, the application is automatically run when a project is opened.

Zone de Texte: The project is used to group together the elements of an autoSIM-200 application. Once regrouped, the elements form a compact file with « .AGN » extension. The project models are used to be able to easily manage different software configurations. Generation of executables makes it easy to distribute applications.

5.3 Modifying project properties


6 The Browser

The Browser

A central element for application management, the browser is used for fast access to different application elements: sheets, symbols, configuration, printing, IRIS objects etc.

The « + » and « - » icons are used to develop or retract project elements.

Actions on the browser are effected by double clicking on the elements (opens the element) or by clicking with the right side of the mouse (adds a new element to a project, special action on an element etc.).

Certain operations are effected by dragging and dropping the elements and moving them on the browser.

The colors (generally called up at the bottom of documents in the work space) are used to identify families of elements.

Browser tree

Related Topics
6.1 Sheets
6.2 Symbols
6.3 Configuration
6.4 Documentation
6.5 Generated files
6.6 Settings
6.7 IRIS objects
6.8 Resources
6.9 External modules


6.1 Sheets

Sheets

A sheet is a page where a program or part of a program is designed.

Using sheets is extremely simplified in autoSIM-200. The sheet chaining orders needed in the previous versions are no longer used. For multiple sheets to be compiled together, they only need to be in the project.

The icons associated to the sheets are shown below:

- [image] normal sheet,

- [image] normal sheet (excluding compilation),

- [image] sheet containing a macro-step expansion,

- [image] sheet containing a function block program,

- [image] sheet containing a key,

- [image] sheet containing a key (excluding compilation).

- [image] sheet containing an encapsulation,

Icons are marked with a cross indicating a closed sheet (not displayed in the work space). Double clicking on this type of icon opens (displays) the associated sheet.

Related Topics
6 The Browser
6.1.1 Adding a new sheet
6.1.2 Modifying the sheet compilation order
6.1.3 Deleting a sheet from the list
6.1.4 Exporting a sheet to a « .GR7 » file
6.1.5 Copying, Cutting, Pasting a sheet
6.1.6 Renaming a sheet
6.1.7 Modifying sheet properties.


6.1.1 Adding a new sheet

Adding a new sheet

With the right side of the mouse click on the « Sheets » element on the browser then select « Add a new sheet ».

Zone de Texte:

Select the sheet size (XXL is the recommended format, the other formats are for older versions of autoSIM-200, GEMMA is only used for creating GEMMA models).

The sheet can be given any name, but each project sheet must have its own name.

The comment area is up to your discretion for modifications or other information relative to each sheet.

6.1 Sheets


6.1.2 Modifying the sheet compilation order

Modifying the sheet compilation order

The sheets are compiled in the order they are listed in for the project. To modify this order, click on the sheet with the left side of the mouse on the browser and move it in the list.

6.1 Sheets


6.1.3 Deleting a sheet from the list

Deleting a sheet from the list

With the right side of the mouse click the sheet to be deleted on the browser and select « Delete » from the menu.

6.1 Sheets


6.1.4 Exporting a sheet to a « .GR7 » file

Exporting a sheet to a « .GR7 » file

With the right side of the mouse click the sheet to be deleted on the browser and select « Export » from the menu.

6.1 Sheets


6.1.5 Copying, Cutting, Pasting a sheet

Copying, Cutting, Pasting a sheet

With the right side of the mouse click the sheet on the browser and select « Copy/cut » from the menu. To paste, with the right side of the mouse click on the « Sheet » element on the browser and select « Paste ».

This option makes it possible to copy or transfer sheets from one project to another.

6.1 Sheets


6.1.6 Renaming a sheet

Renaming a sheet

See « Modifying properties » below.

6.1 Sheets


6.1.7 Modifying sheet properties.

Modifying sheet properties.

With the right side of the mouse click the sheet on the browser and select « Properties » from the menu.

Zone de Texte: You can modify the sheet name, the syntax used for literal language and variable names. The « Do not compile this sheet » option is used to exclude the sheet from the compilation. The « Display in GEMMA format» option is only available if the sheet format is GEMMA and is used to display and modify a sheet in GEMMA format. The « Block the of use inputs/outputs other than set symbols » option blocks the use of i, %i, o %q variables not attributed to symbols. Access to the sheet can be protected by a password. -The « comments » area is left to your discretion.

6.1 Sheets


6.2 Symbols

Symbols

The list of symbols provides the correspondence between « symbol » names and variable names. A project may only have one symbol table.

Related Topics
6 The Browser
6.2.1 Creating a symbol table
6.2.2 Importing a symbol table


6.2.1 Creating a symbol table

Creating a symbol table

With the right side of the mouse click on the « Symbols» element on the browser and select « Create a symbol table » from the menu.

6.2 Symbols


6.2.2 Importing a symbol table

Importing a symbol table

With the right side of the mouse click on the « Symbols» element on the browser and select « Import a symbol table » from the menu.

6.2 Symbols


6.3 Configuration

Configuration

Related Topics
6 The Browser
6.3.1 Compiler options


6.3.1 Compiler options

Compiler options

Double click on this element to modify the settings of compiler options.

6.3 Configuration


6.4 Documentation

Documentation

This is used to access the file printing function (double click on the « Print » element. You can print a complete file composed of an end paper, cross reference table, symbol list and sheets. The print setup function is used to display all these elements.

6 The Browser


6.5 Generated files

Generated files

Related Topics
6 The Browser
6.5.1 Generating the instruction list in pivot code
6.5.2 Generating the cross reference list


6.5.1 Generating the instruction list in pivot code

Generating the instruction list in pivot code

By double clicking on « Pivot code » you generate a list in low level literal language (autoSIM-200 pivot code). Viewing of the generated code is normally reserved for specialists involved in understanding the translation methods used by the compiler.

6.5 Generated files


6.5.2 Generating the cross reference list

Generating the cross reference list

Double clicking on the « Cross reference » element generates and displays the list of variables used in an application with any associated processor variables and the name of or sheet(s) where they are used.

6.5 Generated files


6.6 Settings

Settings

Contains the tools to display and modify the state of the variables.

Related Topics
6 The Browser
6.6.1 Viewing and modifying a variable or variable table


6.6.1 Viewing and modifying a variable or variable table

Viewing and modifying a variable or variable table

With the right side of the mouse click on « Settings » and select « Monitoring » to open an element where you can see the state of a variable or variable table.

Zone de Texte: Next variable
Zone de Texte: Close
Zone de Texte: Select a variable

Zone de Texte: Open the menu Zone de Texte: Modify the state of another variable Zone de Texte: Previous variable

A monitoring window.

Zone de Texte: Modify the variable state by clicking in this area

The monitoring window in « 10 variables table » mode.

Zone de Texte: Re-size the window by dragging one of the edges in order to see more or fewer variables Zone de Texte: Click on this button to display the expanded information (automaton symbols and names of variables) associated with each variable

The monitoring window in “Variables Table” mode

Zone de Texte: Click on these buttons to change the size of the information displayed in the table

6.6 Settings


6.7 IRIS objects

IRIS objects

IRIS 2D objects are used to create consoles, supervision applications and simulation applications of 2D operating parts. IRIS 3D is used to create simulation applications of 3D operating parts. Each IRIS 2D object appears in the project tree (see the chapters IRIS 2D references and IRIS 3D references for additional information).

Related Topics
6 The Browser
6.7.1 Adding an IRIS 2D object
6.7.2 Deleting an IRIS 2D object
6.7.3 Displaying or hiding an IRIS 2D object
6.7.4 Cutting, copying, pasting an IRIS 2D object
6.7.5 Adding a new IRIS 2D object on a console
6.7.6 Modifying the properties of an IRIS 2D object
6.7.7 Setting an object model accessible on the assistant
6.7.8 Importing an IRIS 2D object in an earlier version of autoSIM-200
6.7.9 Creating an IRIS 3D console


6.7.1 Adding an IRIS 2D object

Adding an IRIS 2D object

Click with the right side of the mouse on « Add an IRIS 2D object ». The object selection assistant is used to select it and set its parameters.

Selection assistant for an IRIS 2D object

6.7 IRIS objects


6.7.2 Deleting an IRIS 2D object

Deleting an IRIS 2D object

With the right side of the mouse click on the IRIS object on the browser and select « Delete » from the menu.

6.7 IRIS objects


6.7.3 Displaying or hiding an IRIS 2D object

Displaying or hiding an IRIS 2D object

With the right side of the mouse click on the IRIS object on the browser and select « Display/hide » from the menu.

6.7 IRIS objects


6.7.4 Cutting, copying, pasting an IRIS 2D object

Cutting, copying, pasting an IRIS 2D object

With the right side of the mouse click on the IRIS object on the browser and select « Copy » or « Cut » from the menu.

To paste, with the right side of the mouse click on the « Sheet » element on the browser and select « Paste ».

To paste an IRIS object on a console, select « Paste» from the console menu or click with the right side of the mouse on the console on the browser and select « Paste».

6.7 IRIS objects


6.7.5 Adding a new IRIS 2D object on a console

Adding a new IRIS 2D object on a console

Select « Add an object » from the console menu or click with the right side of the mouse on the console on the browser and select « Add an object on the console » from the menu (for more information on the console see the chapter « Console » object )

6.7 IRIS objects


6.7.6 Modifying the properties of an IRIS 2D object

Modifying the properties of an IRIS 2D object

With the right side of the mouse click on the IRIS object on the browser and select « Properties ». For higher level objects (parent objects), special properties can be accessed:

Properties of high level objects

Display establishes under which conditions the object is displayed or hidden. The reinstallation option is used to return an object to its initial state when dynamic display is launched (normally used for OP simulation applications).

6.7 IRIS objects


6.7.7 Setting an object model accessible on the assistant

Setting an object model accessible on the assistant

With the right side of the mouse click on the IRIS object on the browser and select « Save as model » from the menu.

Selection of modifiable parameters for users of your models

You can select the list of parameters which remain accessible to the user on the assistant. By clicking on « Save », you save your object model. The storage directory for object models is « <autoSIM-200 installation directory>\i2d\lib ». You can use a sub-directory called « my objects » for saving your models.

6.7 IRIS objects


6.7.8 Importing an IRIS 2D object in an earlier version of autoSIM-200

Importing an IRIS 2D object in an earlier version of autoSIM-200

With the right side of the mouse click on the « IRIS» element on the browser and select « Import IRIS 2D objects ». Select one or more « .AOF » files.

6.7 IRIS objects


6.7.9 Creating an IRIS 3D console

Creating an IRIS 3D console

With the right side of the mouse click on the « IRIS » element on the browser and select « Add an IRIS 3D console » (see the chapter on IRIS 3D for more information).

6.7 IRIS objects


6.8 Resources

Resources

This project element is used for adding all types of files to a project. Files which are added will become an integral part of the project and will be saved along with the other elements. To refer to a pseudo directory where the resources are, the key word « <RESDIR> » can be used in the specific directory name in autoSIM-200. For example IRIS objects can refer to bitmaps if they are included in the resources.

Related Topics
6 The Browser
6.8.1 Adding a file to the resources
6.8.2 Deleting a file from the resources
6.8.3 Renaming a file in the resources
6.8.4 Modifying a file in the resources
6.8.5 Adding and converting 3D STUDIO files in the resources


6.8.1 Adding a file to the resources

Adding a file to the resources

With the right side of the mouse click on the « Resources» element on the browser and select « Add » from the menu.

6.8 Resources


6.8.2 Deleting a file from the resources

Deleting a file from the resources

With the right side of the mouse click the resource file on the browser and select « Delete ».

6.8 Resources


6.8.3 Renaming a file in the resources

Renaming a file in the resources

With the right side of the mouse click the resource file on the browser and select « Rename ».

6.8 Resources


6.8.4 Modifying a file in the resources

Modifying a file in the resources

With the right side of the mouse click the resource file on the browser and select « Modify ».

6.8 Resources


6.8.5 Adding and converting 3D STUDIO files in the resources

Adding and converting 3D STUDIO files in the resources

3D STUDIO files can be converted into .x files and added to the resources by clicking with the right side of the mouse on the « Resources » element on the browser and selecting « Import 3D files » (see the chapter IRIS 2D references and IRIS 3D references for more information).

6.8 Resources


6.9 External modules

External modules

These elements are reserved for executable modules developed by third parties and interfaced with autoSIM-200.

Zone de Texte: The browser is used to display and manage all the project elements. By double clicking on the elements or by clicking with the right side of the mouse, you access the different functions applicable to each element.

6 The Browser


7 Designing programs

Designing programs

Various tools are available for designing programs.

Related Topics
7.1 Designing with the assistant
7.2 Designing with the shortcut menu
7.3 Designing with the pallet
7.4 Designing with the keyboard keys
7.5 Documenting program elements
7.6 Adding symbols


7.1 Designing with the assistant

Designing with the assistant

This is without doubt the simplest when starting with autoSIM-200. With the right side of the mouse click on an open sheet in the work space and select « Assistant » from the menu. You will then be guided for making selections. When you have finished click on « OK » and put the design on the sheet by clicking with the left side of the mouse.

The assistant

7 Designing programs


7.2 Designing with the shortcut menu

Designing with the shortcut menu

Click with the right side of the mouse on an open sheet in the work space, the menu will propose a series of elements that you can put on the sheet. This is an instinctive and fast creation method.

7 Designing programs


7.3 Designing with the pallet

Designing with the pallet

By selecting elements on the pallet you can quickly create programs starting from previously created elements.

Related Topics
7 Designing programs
7.3.1 Enhancing and customizing the pallet


7.3.1 Enhancing and customizing the pallet

Enhancing and customizing the pallet

« .GR7 » files are used to set the pallet, they are located in the directory « <autoSIM-200 installation directory>\pal ». You can delete, modify, rename or add files. To generate « .GR7 », files use the « Export » command by clicking with the right side of the mouse on a sheet on the browser. The names displayed on the pallet are « .GR7 » files. Relaunch autoSIM-200 for a new element to be displayed on the pallet.

7.3 Designing with the pallet


7.4 Designing with the keyboard keys

Designing with the keyboard keys

Each key is associated to design blocks. The « Blocks » element also provides access to the blocks. The table below lists the blocks and their use.

Related Topics
7 Designing programs
7.4.1 Delete block
7.4.2 Link blocks
7.4.3 Grafcet blocks
7.4.4 Flowchart blocks
7.4.5 Ladder blocks
7.4.6 Action blocks
7.4.7 Test blocks
7.4.8 Organization chart blocks
7.4.9 Function block blocks
7.4.10 Other blocks


7.4.1 Delete block

Delete block

Aspect | Associated key | Generic name | Comments | Languages
 | [A] | Delete | Used to make a cell blank again | All

7.4 Designing with the keyboard keys


7.4.2 Link blocks

Link blocks

Aspect | Associated key | Generic name | Comments | Languages
 | [E] | Vertical link | Link from top to bottom or bottom to top | All
 | [F] | Horizontal link | Link from right to left or left to right | All

[G] | Upper left corner | Link towards the bottom right or bottom left | All
[H] | Upper right corner | Link towards the bottom left or bottom right | All
[I] | Lower left corner | Link from top to right or left to top | All
[J] | Lower right corner | Link from top to left or right to top | All
[Z] | Cross | Crosses two links | All

7.4 Designing with the keyboard keys


7.4.3 Grafcet blocks

Grafcet blocks

Aspect | Associated key | Generic name | Comments | Languages
 | [B] | Step | Normal step | Grafcet
 | [C] | Initial step without activation | Initial step without activation | Grafcet
 | [D] | Initial step | Initial step | Grafcet
 |  | Macro-step | Only available in the shortcut menu | Grafcet
 | [+] | Encapsulating step | An encapsulation must be linked | Grafcet
 | [-] | Initial encapsulating step | An encapsulation must be linked | Grafcet
 |  | Initial state mark | Défine intial state for an encapsulation | Grafcet
 | [T] | Transition | Transition | Grafcet
 | [$] | Source transition | Can replace the transition symbol | Grafcet
 | [£] | Exit transition | Can replace the transition symbol | Grafcet
 |  | Link for action on transition crossing | Use the following element to design the action rectangle | Grafcet
 |  | Start of an action rectangle on transition crossing | Use the [X] and [Y] elements to end the rectangle | Grafcet
 | [K] | Left limit of an « And » divergence | Compulsory to the left of an « And » divergences | Grafcet
 | [L] | Supplementary branch of an « And » divergence or an « And » convergence | Do not use as a left or right limit of an « And » divergence | Grafcet
 | [M] | Right limit of an « And » divergence | Compulsory to the right of an « And » divergence | Grafcet
 | [N] | Extension of an « And » divergence | If placed in the [K], [L], [M], [P] or [O],[P],[Q], [L] blocks | Grafcet
 | [O] | Left limit of an « And » convergence | Compulsory to the left of an « And » convergence | Grafcet
 | [P] | Supplementary branch of an « And » convergence or an « And » divergence | Do not use as a left or right limit of an « And » convergence | Grafcet
 | [Q] | Right limit of an « And » convergence | Compulsory to the right of an « And » convergence | Grafcet
 | [R] | « Or » divergence | Do not use as a limit of an « Or » convergence | Grafcet
 | [S] | « Or » convergence | Do not use as a limit of an « Or » divergence | Grafcet
 | [U] | Skip or repeat left step | « Or » convergence or divergence | Grafcet
 | [V] | Skip or repeat right step | « Or » convergence or divergence | Grafcet
 | [SPACE] on an [E] block | Link towards the top | For relooping and repeating steps | Grafcet

7.4 Designing with the keyboard keys


7.4.4 Flowchart blocks

Flowchart blocks

Aspect |  | Associated key | Generic name | Comments | Languages
 |  | [0] (zero) | Flowchart assignment | Separates the « test » from the « action » area | Flowchart
 | [1] |  | « Not » function | Complements the block input signal | Flowchart
 | [2] |  | « And » function | Combines the inputs in an « And » logic | Flowchart
 | [3] |  | « Or » function | Combines the inputs in an « Or » logic | Flowchart
 | [4] |  | Block environment | Enlarges an « And » or « Or » function block | Flowchart
 | [5] |  | Bottom of block | Ends an « And » or « Or » function block | Flowchart

7.4 Designing with the keyboard keys


7.4.5 Ladder blocks

Ladder blocks

Aspect | Associated key | Generic name | Comments | Languages
 | [(] | Start left coil | Starts an action | Ladder
 | [)] | Start right coil | Ends an action | Ladder
 | [U] | Left limit | Ends the diagram | Ladder
 | [V] | Right limit | Starts the diagram | Ladder
 | [R] | Connection | « Or » function | Ladder
 | [S] | Connection | « Or » function | Ladder

7.4 Designing with the keyboard keys


7.4.6 Action blocks

Action blocks

Aspect | Associated key | Generic name | Comments | Languages
 | [W] | Action rectangle left limit | Starts an action | Grafcet and Flowchart
 | [X] | Action rectangle environment | Extends an action | Grafcet and Flowchart
 | [Y] | Action rectangle right limit | Ends an action | Grafcet and Flowchart
 | [.] | Left side of a double action rectangle | Starts a double action rectangle | Grafcet and Flowchart
 | [/] | Middle of a double action rectangle | Prolongs a double action rectangle | Grafcet and Flowchart
 | [%] | Right side of a double action rectangle | Ends a double action rectangle | Grafcet and Flowchart
 | [S] | Divergence Action | Used to vertically juxtapose action rectangles | Grafcet and Flowchart
 | [V] | Divergence Action | Used to vertically juxtapose action rectangles | Grafcet and Flowchart
 | [#] | Action on activation | Defines the type of action | Grafcet
 | [_] | Action on deactivation | Defines the type of action | Grafcet
 | [@] | Event-driven action | Defines the type of action | Grafcet

7.4 Designing with the keyboard keys


7.4.7 Test blocks

Test blocks

Aspect | Associated key | Generic name | Comments | Languages
 | [7] | Left limit of a test | Starts a test | Flowchart and ladder
 | [6] | Right limit of a test | Ends a test | Flowchart and ladder

7.4 Designing with the keyboard keys


7.4.8 Organization chart blocks

Organization chart blocks

Aspect | Associated key | Generic name | Comments | Languages
 | [<] | Organization chart input | Indicates the input in a rectangle | Organization chart
 | [=] | « False » output | Output if a test rectangle is false | Organization chart

7.4 Designing with the keyboard keys


7.4.9 Function block blocks

Function block blocks

Aspect | Associated key | Generic name | Comments | Languages
 | [8] | Upper left corner of a function block | Starts the name of the function block | Function block
 | [9] | Upper right corner of a function block | Ends the name of the function block | Function block
 | [:] | Lower left corner of a function block | Adds an input to the function block | Function block
 | [;] | Left limit of a function block | Adds an input to the function block | Function block
 | [>] | Right limit of a function block | Adds an output to the function block | Function block
 | [?] | Lower right corner of a function block | Adds an output to the function block | Function block

7.4 Designing with the keyboard keys


7.4.10 Other blocks

Other blocks

Aspect | Associated key | Generic name | Comments | Languages
 | [*] | Combination / transition link | This block is a link between the Logical Diagrams or Ladder languages and the Grafcet language | Grafcet / Flowchart / Ladder

7.4 Designing with the keyboard keys


7.5 Documenting program elements

Documenting program elements

To document program elements, click below with the left side of the mouse. To create comments, click on a blank space on the sheet. To validate modifications, push the [Enter] key or click outside the editing are with the left side of the mouse. To delete modifications, push the [Esc] key or click outside the editing area with the right side of the mouse.

When editing tests and actions, a « … » button appears under the editing area. If you click on it you access an assistant for creating tests or actions.

Test creation assistant

7 Designing programs


7.6 Adding symbols

Adding symbols

To create a symbol, click with the right side of the mouse on the symbol table in the work space and select « Add ». Or click the [image] button on the toolbar. You can also launch program compiling containing unset symbols. You will be asked for variables corresponding to the symbols during the compilation.

Attribution of symbols during compilation

Zone de Texte: To easily design a program, create a new sheet, then click with the right side of the mouse on the bottom of the sheet. Select « Assistant » from the menu, you will then be guided by it.

7 Designing programs


8 Running an application

Running an application

Related Topics
8.1 To run an application easily
8.2 To end the run
8.3 To compile only
8.4 To stop the compilation
8.5 To connect to a processor or install a PC
8.6 To disconnect a processor or uninstall a PC
8.7 To put the target in RUN mode
8.8 To put the target in STOP mode
8.9 To initialize the target
8.10 To run a program cycle on the target (generally not supported on processors)
8.11 To activate the dynamic display


8.1 To run an application easily

To run an application easily

The [image] button on the toolbar is the quickest way to see application run results. This pushbutton activates the following mechanisms:

- compilation of the application if it is not updated (not already compiled after the last modifications),

- installation of the run module (with downloading if the current target is a processor and following the connection options),

- passage of the target to RUN,

- activation of the dynamic display.

8 Running an application


8.2 To end the run

To end the run

Click on [image] . On the processor target, the program continues to be run on the target. On the PC, the program is stopped.

8 Running an application


8.3 To compile only

To compile only

Click on [image] .

8 Running an application


8.4 To stop the compilation

To stop the compilation

Click on [image] .

8 Running an application


8.5 To connect to a processor or install a PC

To connect to a processor or install a PC

Click on [image] .

8 Running an application


8.6 To disconnect a processor or uninstall a PC

To disconnect a processor or uninstall a PC

Click on [image] .

8 Running an application


8.7 To put the target in RUN mode

To put the target in RUN mode

Click on [image] .

8 Running an application


8.8 To put the target in STOP mode

To put the target in STOP mode

Click on [image] .

8 Running an application


8.9 To initialize the target

To initialize the target

Click on [image] .

8 Running an application


8.10 To run a program cycle on the target (generally not supported on processors)

To run a program cycle on the target (generally not supported on processors)

Click on [image] .

8 Running an application


8.11 To activate the dynamic display

To activate the dynamic display

Click on [image].

Zone de Texte:

To run an application, click on the « GO » button. To end the run, click again on the same button.

8 Running an application


9 The compiler

The compiler

The compiler translates the sheets into a set of pivot language equations (these can be displayed by double clicking on the « Generated code / pivot language » element on the browser).

The pivot language is then translated into a language which can be run by a post-processor

Related Topics
9.1 Modifying compiler options
9.2 Displaying compilation messages
9.3 Finding an error


9.1 Modifying compiler options

Modifying compiler options

Double click on the element « Configuration / Compiler options».

9 The compiler


9.2 Displaying compilation messages

Displaying compilation messages

The « Compilation » panel on the messages window contains the counts produced by the last compilation.

9 The compiler


9.3 Finding an error

Finding an error

By double clicking on error messages, you can find the source.

An error message and its source

If the message windows are hidden and if one or more errors are detected by the compiler, a dialogue box indicates the first error detected (to display the message windows: use the « Messages » command from the « Windows » menu).

Zone de Texte:

At the end of the compilation the « Compilation » window provides a list of any errors. By double clicking on the error messages, the site in the program that caused the error is displayed.

9 The compiler


10 Running programs on a PC

Running programs on a PC

The « run PC» target is an actual processor loaded in your PC.

You can:

- test your applications,

- drive a virtual operating part created with IRIS 2D or 3D,

- drive input/output cards connected to the PC.

Related Topics
10.1 Configuring the number of variables
10.2 PC system variables
10.3 Modifying the run period
10.4 Driving inputs/outputs


10.1 Configuring the number of variables

Configuring the number of variables

Double click on the « Configuration / Post-processors / Executor PC / Variables » element.

Selecting the number of variables

The space needed for the variables used in the application is automatically reserved by default. You can manually select the amount of memory to reserve for each type of variable. This may be necessary if an indexed addressing is used to access a variable table.

10 Running programs on a PC


10.2 PC system variables

PC system variables

Bits 0 to 99 and words 0 to 199 are system variables and can not be used as user variables in your applications. The two tables below provide details on the PC system variables.

Bits | Use
0 | active at first cycle, activation of initial Grafcet steps
1 to 4 | reserved for I/O drivers
5 to 7 | reserved for I/O driver errors
8 | error on watchdog overflow is equal to 1
9 and 10 | error general PC fault
11 | run mode 1=RUN, 0=STOP
12 | emergency stop pass to 1 in the event of an error or set to 1 to stop the program
13 to 29 | reserved for drivers
30 | bit associated to timer 1
31 | bit associated to timer 2
32 | bit associated to timer 3
33 | bit associated to timer 4
34 | bit associated to timer 5
35 | bit for repeating sector (pass to 1 on repeat sector, reset to zero is the job of the programmer)
36 | setting this bit to 1 causes reading of the clock in real time and transfer to System words 4, 5, 6, 7, 8, 51 and 52.
37 | setting this bit to 1 causes writing of System words 4, 5, 6, 7, 8, 51 and 52 in the real time clock.
38 to 55 | reserved
56 | division by zero
57 to 67 | reserved for future versions
68 to 99 | reserved for the stack of boolean processing

Words | Use
0 | reserved for the upper part of the multiplication result or the remainder of the division
1 to 3 | timers in milliseconds
4 | timer in 1/10 second
5 | timer in seconds
6 | timer in minutes
7 | timer in hours
8 | timer in days
9 to 29 | reserved for I/O drivers
30 | timer 1 counter
31 | timer 2 counter
32 | timer 3 counter
33 | timer 4 counter
34 | timer 5 counter
35 | timer 1 procedure
36 | timer 2 procedure
37 | timer 3 procedure
38 | timer 4 procedure
39 | timer 5 procedure
40 | lower part of clock reference
41 | upper part of clock reference
42 to 50 | reserved for I/O drivers
51 | timer in months
52 | timer in years

10 Running programs on a PC


10.3 Modifying the run period

Modifying the run period

Double click on « Post-processors / Executor PC / Run ».

Setting the run period

10 Running programs on a PC


10.4 Driving inputs/outputs

Driving inputs/outputs

Double click on « Configuration / Post-processor / Executor PC / I/O Drivers ».

Adding an I/O driver

Select a driver from the list on the right and then click on « Add ».

« Set parameters » is used to configure certain drivers.

Zone de Texte:

The executor PC transforms your PC into a program processor, it can be used to drive inputs/outputs directly connected to your computer.

10 Running programs on a PC


11 IRIS 2D references

IRIS 2D references

IRIS 2D objects are used to create supervision and simulation applications of 2D operating parts.

The link between the objects and the automatically functioning applications is always created by interchanging the variable state.

IRIS 2D objects are contained in WINDOWS windows.

An IRIS 2D object

IRIS 2D objects have two possible states: the « Configuration » mode (used to modify the object characteristics) and « Use » mode (for using an object). The « User » mode is also called « Employ » mode.

Related Topics
11.1 Modifying object display
11.2 Modifying object characteristics
11.3 Block access to configuration for all objects
11.4 Basic objects, preset objects
11.5 List of basic objects
11.6 Practical experience
11.7 Syntax for accessing the state of variables
11.8 Details of a « Console » object
11.9 Details of an « Illuminated Button » object
11.10 Details of a « Digital value » object
11.11 Details of an « Analog value » object
11.12 Details of « Screen, keyboard, message list » object
11.13 Details of « Data archive » object
11.14 Details of « Object » object
11.15 Details of « Sound » object
11.16 Details of « Dialogue box » object
11.17 « Links » tab
11.18 Details of « Program » object


11.1 Modifying object display

Modifying object display

The objects can be hidden or displayed. This property can be specified when opening an object or when changing the state of the dynamic display in the environment. Only higher level objects (not objects located on a console) can be displayed or hidden. Objects located on a console are displayed or hidden at the same time as the console.

To dynamically modify the visibility of objects, click with the left side of the mouse on the objects on the browser and select « Display/Hide ».

To modify the display properties, click with the left side of the mouse on the objects on the browser and select « Properties ».

Display properties of an object.

11 IRIS 2D references


11.2 Modifying object characteristics

Modifying object characteristics

Related Topics
11 IRIS 2D references
11.2.1 Removing an object
11.2.2 Dimensioning an object
11.2.3 Moving an object
11.2.4 Putting an object in « User » mode
11.2.5 Putting an object in « Configuration » mode
11.2.6 Modifying the characteristics of an object


11.2.1 Removing an object

Removing an object

Method 1: click the [image] button on the surface of the object.

Method 2: with the right side of the mouse click on the object on the browser and select « Delete » from the menu.

11.2 Modifying object characteristics


11.2.2 Dimensioning an object

Dimensioning an object

By dragging the object from one of its edges you can enlarge or shrink it (you can also precisely modify the size of an object by accessing its properties, see below).

11.2 Modifying object characteristics


11.2.3 Moving an object

Moving an object

Drag the object by clicking with the left side of the mouse on the minibar located on the upper part of its surface.

11.2 Modifying object characteristics


11.2.4 Putting an object in « User » mode

Putting an object in « User » mode

Method 1: click on the button [image] on the object with the left side of the mouse.

Method 2: click with the right side of the mouse on the object.

11.2 Modifying object characteristics


11.2.5 Putting an object in « Configuration » mode

Putting an object in « Configuration » mode

Click with the right side of the mouse on the object.

11.2 Modifying object characteristics


11.2.6 Modifying the characteristics of an object

Modifying the characteristics of an object

Method 1: click on the [image] button.

Method 2: push down the [CTRL] key on the keyboard and click with the right side of the mouse on the object, then release the [CTRL] key.

Method 3: with the right side of the mouse click on the object on the browser and select « Properties » from the menu.

11.2 Modifying object characteristics


11.3 Block access to configuration for all objects

Block access to configuration for all objects

With the right side of the mouse click on « Project » on the browser, select « Properties » and check « Block IRIS 2D object configuration » on the « Advanced » tab.

11 IRIS 2D references


11.4 Basic objects, preset objects

Basic objects, preset objects

The basic objects set major functionality types. Preset objects are based on a basic type and a configuration to meet a specific need. For an example, an emergency pushbutton is an object derived from a basic object used to create pushbuttons and lights. To access preset objects, use the assistant by clicking with the right side of the mouse on the « IRIS » element on the browser and select « Adding an IRIS 2D object ».

11 IRIS 2D references


11.5 List of basic objects

List of basic objects

Related Topics
11 IRIS 2D references
11.5.1 « Console » object
11.5.2 The « Button and light » object
11.5.3 The« Object » object
11.5.4 The « Digital value » object
11.5.5 The « Screen, keyboard, message list » object
11.5.6 The « Sound » object
11.5.7 The « Data archive » object
11.5.8 The « Program » object
11.5.9 The « Dialogue box » object
11.5.10 The « Analog value » object


11.5.1 « Console » object

« Console » object

The console object is the only object which can contain other objects on its surface. It is used to create command consoles and animation surfaces for virtual operating parts. This object has a pushbutton [image] used to manage objects on its surface: add, move, delete etc.

11.5 List of basic objects


11.5.2 The « Button and light » object

The « Button and light » object

This is used to create pushbuttons and lights that interact with the processing application variables.

11.5 List of basic objects


11.5.3 The« Object » object

The« Object » object

This is a polymorphic element primarily used to simulate operating parts.

11.5 List of basic objects


11.5.4 The « Digital value » object

The « Digital value » object

This is used to display numeric values of the processing application in a number format.

11.5 List of basic objects


11.5.5 The « Screen, keyboard, message list » object

The « Screen, keyboard, message list » object

This is used to display information on the processing application in a text format.

11.5 List of basic objects


11.5.6 The « Sound » object

The « Sound » object

This is used to produce output sounds when the variable state of the processing application changes.

11.5 List of basic objects


11.5.7 The « Data archive » object

The « Data archive » object

This is used to display processing application data in a table or chart format and save them in the computer memory or on the disk.

11.5 List of basic objects


11.5.8 The « Program » object

The « Program » object

This is used for processing run separately from the processing application.

11.5 List of basic objects


11.5.9 The « Dialogue box » object

The « Dialogue box » object

This is used to display messages in a pop-up window format regarding changes in the variable state of the processing application.

11.5 List of basic objects


11.5.10 The « Analog value » object

The « Analog value » object

This is used to display processing application numeric variables in an analog numeric format (bars, dials etc.).

11.5 List of basic objects


11.6 Practical experience

Practical experience

In this chapter you will be able to quickly create your first IRIS 2D application. We are going to create a console, put a pushbutton on it and link the object variables to the processing application.

Related Topics
11 IRIS 2D references
11.6.1 Step 1
11.6.2 Step 2
11.6.3 Step 3
11.6.4 Step 4
11.6.5 Step 5
11.6.6 Step 6
11.6.7 Step 7


11.6.1 Step 1

Step 1

Creating a minimal application with autoSIM-200 see chapter Designing programs .

This is a Grafcet with one step as shown below.

11.6 Practical experience


11.6.2 Step 2

Step 2

Launch the run of the autoSIM-200 application (click on the « Go » button on the toolbar).

11.6 Practical experience


11.6.3 Step 3

Step 3

With the right side of the mouse click on the « IRIS » element on the browser and then select « Add an IRIS 2D object » from the menu. In the « Basic objects » category, double click on « Console ».

At this point the object will appear on the screen in this format:

11.6 Practical experience


11.6.4 Step 4

Step 4

To add a pushbutton to the console click on the console icon [image] (menu access) and select the « Add an object » option. In the « Basic objects » category, double click on « illuminated button ».

The object will then appear on the console:

11.6 Practical experience


11.6.5 Step 5

Step 5

Now we are going to associate the pushbutton to a processing application output, for example %Q4. Click the pushbutton icon [image] (not the console icon). The pushbutton properties dialogue box will open:

Click the « Links » tab (upper part of the dialogue window). In the « Action when button is pressed » section enter « %Q4=1 ». In the « Action when button is released » section enter « %Q4=0 ». Then click on « OK » on the pushbutton on the lower part of the dialogue window. Actions on the pushbutton will drive processing application output 4. You can open a « Monitoring » window from the « Set-up » menu by clicking with the right side of the mouse on the browser. You display the state of output 4 when you click then release the pushbutton.

11.6 Practical experience


11.6.6 Step 6

Step 6

We are going to associate a light to the « Illuminated Button » object, this light will be associated to a processing application input (for example 12). Click the pushbutton icon [image] again. In the « Aspect » tab click on the « Pushbutton and light » radio button. Click on the « Links » tab and enter « %i2 » in the « Light state » section. Click on the « OK » pushbutton in the lower part of the property dialogue window. You can keep the state of variable « %i2 » modified (with a « Monitoring » window or by modifying the state of the physical input, if it exists).

11.6 Practical experience


11.6.7 Step 7

Step 7

We are going to duplicate the « Illuminated Button » on the console in order to obtain a second pushbutton whose properties we will modify. Click on the pushbutton with the left side of the mouse while pressing down the [SHIFT] key. Black squares will appear around the selected object. Click on the console icon [image] and select the « Copy » option. Click on the console icon [image] and select the « Paste » option. Now there are two overlapping « Illuminated Button» objects. Drag the upper one (it is the only accessible one) by its upper bar and move it away from the other pushbutton. The object which has been duplicated has the same properties as the first. Now you can set the parameters for the second object, for example, so it is linked to output 5 and input 3.

You can also customize the aspect of the pushbuttons by using the aspect tab for the two objects. You can modify the size of the objects by dragging their edges.

The three objects on the screen (console and two pushbuttons) are in « Configuration » mode, this means that they have a mini bar on the upper part of their surface, icons and edges for modifying their dimensions. The objects have another mode called « Employ », in this mode their aspect is permanent: the upper bar, icon and edges for modifying the dimensions no longer exist. To tilt an object, click on it with the right side of the mouse.

At this point you will have created an object that looks like this:

11.6 Practical experience


11.7 Syntax for accessing the state of variables

Syntax for accessing the state of variables

You can use variable names in autoSIM-200 , IEC 1131-3 or a symbol syntax. The « … » pushbuttons located near the drag areas in the object are used to access the assistant for selecting a variable name.

Related Topics
11 IRIS 2D references
11.7.1 Boolean state
11.7.2 Numeric state
11.7.3 Modifying the state
11.7.4 Special orders
11.7.5 Interchanging objects


11.7.1 Boolean state

Boolean state

This syntax is used in the object « states » section.

To test the state of a boolean variable, use the variable name, for example: « i0 », « %q0 », « gate open ».

To test the complement state of a boolean variable, add a character « / » in front of the variable name, for example: « /i4 », « /%M100 », « /high level ».

To test the equality of a numeric variable with a constant, use the name of the numeric variable followed by « = », « < », « > » and a constant, for example: « %MW200=4 », « speed>2 ».

The complement state is used for creating « if different », « if less than or equal to» and « if greater than or equal to » tests, for example: « /%MW201<300 ».

The operator '&' is used to test a bit of a numeric variable, for example M200&4 tests the third bit (4 = 2 power 3) of word m200.

11.7 Syntax for accessing the state of variables


11.7.2 Numeric state

Numeric state

This syntax is used in the object « states » section.

To read the state of a numeric variable, use the variable name, for example: « %MW300 », « m400 », « pressure », « _+V_ ».

11.7 Syntax for accessing the state of variables


11.7.3 Modifying the state

Modifying the state

This syntax is used in the object « order » section.

To modify the variable state, add the « = » sign followed by a constant after the variable name.

The following constants are used for boolean variables:

« 0 », « 1 », « F1 » (set to 1), « F0 » (reset), « UF » (end set), for example: « %Q0=1 », « %I10=F1 », « %I12=UF ».

For numeric variables, the constant is a number, for example: « M200=1234 », « speed=4 ».

11.7 Syntax for accessing the state of variables


11.7.4 Special orders

Special orders

The following key words can be used in the object order sections:

« RUN »: puts the target in RUN mode,

« STOP »: puts the target in stop,

« INIT »: initializes the target,

« STEP »: effects a step on the target,

« GO »: identical to the environment GO command,

« ENDGO »: stops the GO command,

« EXIT »: exits the environment,

« UCEXIT »: exits the environment without asking for confirmation,

« OPENAOF(<object>) »: displays an object. « <object> » designates an object by its title and identifier number (configured in object properties) with the « #identifier » syntax.

« CHAINAOF(<object>) »: displays an object and hides the current object. « <object> » designates an object by its title and identifier number (configured in object properties) with the « #identifier » syntax.

11.7 Syntax for accessing the state of variables


11.7.5 Interchanging objects

Interchanging objects

« PARENTPARAM(parameter {+n} {-n}) »

This is used for a sister object to access a parent console parameter. The parameter must be set in the parent console « Links / Data for sister objects » section. See the chapter « Console » object SISTERPARAM( identifier , parameter)

When used for the OBJECT object, this syntax makes it possible to read an object's value. See the « Object » object.

SETPARAM( identifier , parameter , value)

Used to modify the object parameter.

To access the list of parameters that can be modified, click with the right side of the mouse on « Illuminated Button» while editing the action areas of an object, then select the « Parameters » command.

11.7 Syntax for accessing the state of variables


11.8 Details of a « Console » object

Details of a « Console » object

Related Topics
11 IRIS 2D references
11.8.1 « Aspect » tab
11.8.2 « Bitmap » tab
11.8.3 « Links » tab
11.8.4 « Options » tab
11.8.5 « Sisters » tab
11.8.6 « External » tab


11.8.1 « Aspect » tab

« Aspect » tab

Related Topics
11.8 Details of a « Console » object
11.8.1.1 Window
11.8.1.2 Console background
11.8.1.3 Colors
11.8.1.4 Fonts for the help area
11.8.1.5 Object size
11.8.1.6 Texts


11.8.1.1 Window

Window

This is used to set the aspect of the console window: presence of edges, a title bar (in this case a title can be given) presence of close and reduce icons. If you check « Display help messages » you set-up a message area at the bottom of the window, the size of this area is automatically established based on the selected font (see below). If this area is not set, messages from the sisters will be displayed on the parent console of the console and on the bottom of the autoSIM-200 environment window (if the object does not have a parent).

11.8.1 « Aspect » tab


11.8.1.2 Console background

Console background

This establishes the console background: color (see below), transparent (accessible only if the console is the sister of another console), bitmap (the background is set by a « .BMP » file, for example created with PAINTBRUSH).

11.8.1 « Aspect » tab


11.8.1.3 Colors

Colors

This is used to select the color for the console background (if a colored background is selected - see above), the background and the characters of the help message display area (if this area is valid - see above).

11.8.1 « Aspect » tab


11.8.1.4 Fonts for the help area

Fonts for the help area

This establishes the font used for displaying help messages at the bottom of the console.

11.8.1 « Aspect » tab


11.8.1.5 Object size

Object size

This establishes object dimensions in number of dots. These values can be modified to precisely set the size of an object.

11.8.1 « Aspect » tab


11.8.1.6 Texts

Texts

Help text and bubble text.

11.8.1 « Aspect » tab


11.8.2 « Bitmap » tab

« Bitmap » tab

Related Topics
11.8 Details of a « Console » object
11.8.2.1 Bitmap


11.8.2.1 Bitmap

Bitmap

If the console background contains a bitmap (see « Aspect » tab) the editing area must contain a complete access name to a « .BMP » file (16 color, 256 color and 24 bits formats are supported).

The « SCAN » and « EDITOR » pushbuttons are respectively used to search for a « .BMP » file and edit a file with WINDOWS PAINTBRUSH software.

11.8.2 « Bitmap » tab


11.8.3 « Links » tab

« Links » tab

Related Topics
11.8 Details of a « Console » object
11.8.3.1 Data for sister objects


11.8.3.1 Data for sister objects

Data for sister objects

This editing area is used to set parameters that sister objects can access with the key word « PARENTPARAM ». One setting per line must be written. Each setting must comply with the following syntax: « PARAMETER=VALUE ».

11.8.3 « Links » tab


11.8.4 « Options » tab

« Options » tab

Related Topics
11.8 Details of a « Console » object
11.8.4.1 Grid
11.8.4.2 Resetting sisters


11.8.4.1 Grid

Grid

This is used to set a grid (invisible) for positioning objects. Only the « Move» command on the console integrated menu uses the grid. Grid values are expressed in number of pixels. Values 0 and 1 cancel the grid effect. This function must be used to perfectly align objects.

11.8.4 « Options » tab


11.8.4.2 Resetting sisters

Resetting sisters

If you check « Continue to reset sisters ... » you establish that the sister must continue to be updated when the console is changed to an icon. This option is used, when it is not selected, to increase system performance when a console changed to an icon only contains visual elements.

11.8.4 « Options » tab


11.8.5 « Sisters » tab

« Sisters » tab

Related Topics
11.8 Details of a « Console » object
11.8.5.1 Sisters


11.8.5.1 Sisters

Sisters

This section contains the list of console sister objects. The « Properties » pushbutton is used to directly open the properties dialogue box for the sister selected from the list. The « Destroy » pushbutton eliminates the selected object. The « Positions » editing areas are used to set object positions.

11.8.5 « Sisters » tab


11.8.6 « External » tab

« External » tab

Related Topics
11.8 Details of a « Console » object
11.8.6.1 Executable name
11.8.6.2 Parameters


11.8.6.1 Executable name

Executable name

Name of an executable file operating on the console.

11.8.6 « External » tab


11.8.6.2 Parameters

Parameters

Parameters provided on the command line for the executable.

11.8.6 « External » tab


11.9 Details of an « Illuminated Button » object

Details of an « Illuminated Button » object

Related Topics
11 IRIS 2D references
11.9.1 « Aspect » tab
11.9.2 « Links » tab
11.9.3 « Options » tab


11.9.1 « Aspect » tab

« Aspect » tab

Related Topics
11.9 Details of an « Illuminated Button » object
11.9.1.1 Object type
11.9.1.2 Colors
11.9.1.3 Object size
11.9.1.4 Font
11.9.1.5 Text


11.9.1.1 Object type

Object type

This is used to select the object type: pushbutton, light or pushbutton integrated with a light.

11.9.1 « Aspect » tab


11.9.1.2 Colors

Colors

This is used to select the object color. If the object is a pushbutton, the « Background off » setting represents the color of the pushbutton. If the object is a light or a pushbutton integrated with a light the « Background on » setting establishes the color of the background when the light is on and « Background off » when the light is off. If the object aspect is established by a bitmap only the character color can be set.

11.9.1 « Aspect » tab


11.9.1.3 Object size

Object size

This establishes object dimensions in number of dots. These values can be modified to precisely set the size of an object. This is necessary if the object aspect is established by a bitmap.

11.9.1 « Aspect » tab


11.9.1.4 Font

Font

This is used to select character font and size. The font file used must be present on the PC where the program is run.

11.9.1 « Aspect » tab


11.9.1.5 Text

Text

This is used to specify the text displayed on the object, its position, its print direction as well as the help text displayed when the button is pressed and a bubble text which is displayed when the cursor is placed on the object.

11.9.1 « Aspect » tab


11.9.2 « Links » tab

« Links » tab

Related Topics
11.9 Details of an « Illuminated Button » object
11.9.2.1 Action when
11.9.2.2 Light state
11.9.2.3 Identifier
11.9.2.4 Deactivation condition


11.9.2.1 Action when

Action when

This is used to set the actions to be effected when the button is pressed and when it is released.

An action can be setting the state of a variable, for example:

O0=1, m200=4, _depart cycle_=3

Or a preset key word

Configuration example where the input 10 reflects the pushbutton state (i10 to 0 if the button is released, i10 to 1 if the button is pressed):

Action when the button is pressed: i10=1

Action when the button is released: i10=0

11.9.2 « Links » tab


11.9.2.2 Light state

Light state

Establishes the light state. This section must contain the name of a variable which drives the light: 0 = light off, 1 = light on.

For example:

b31, o4, _light init_, m200=50, m400<8, m500&16

11.9.2 « Links » tab


11.9.2.3 Identifier

Identifier

This is used to refer to an object in relation to the other objects.

11.9.2 « Links » tab


11.9.2.4 Deactivation condition

Deactivation condition

This is used to deactivate the light. If this section contains a variable name, then that variable deactivates the object if it is true.

11.9.2 « Links » tab


11.9.3 « Options » tab

« Options » tab

Related Topics
11.9 Details of an « Illuminated Button » object
11.9.3.1 Type of pushbutton
11.9.3.2 Keyboard
11.9.3.3 Bitmap
11.9.3.4 Sounds


11.9.3.1 Type of pushbutton

Type of pushbutton

This establishes if the pushbutton is bistable (it remains pressed) monostable or a combination of the two: monostable with a simple click and bistable with a double click.

11.9.3 « Options » tab


11.9.3.2 Keyboard

Keyboard

This is used to associate a key to a pushbutton. If this key or combination of keys is present on the keyboard then the pushbutton will be pressed.

Different syntaxes can be used to set the key code:

· a simple character: For example A, Z, 2,

· the $ character followed by hexadecimal key code,

· the name of a function key, for example F5.

For combinations of keys CTRL+ or SHIFT+ must be added to the beginning.

For example: CTRL+F4 or SHIFT+Z.

11.9.3 « Options » tab


11.9.3.3 Bitmap

Bitmap

This is used to specify a bitmap which contains the design of an object.

The « Resize the image » option is used to extend the bitmap over the entire surface of the object.

The bitmap file contains the four possible object aspects: button released light off, button pressed light off, button released light on, button pressed light on.

Even if the file is a pushbutton without a light or a light there are always four aspects of which only two are used.

The bitmap file is divided horizontally in four.

Example:

The « Different aspect if the cursor is on the object… » option is used to display a different image when the cursor passes over the object.

If this option is checked, the bitmap file contains 8 aspects, four supplementary aspects are added to the right of the bitmap to contain the design of the object when the cursor is on the object.

Example:

11.9.3 « Options » tab


11.9.3.4 Sounds

Sounds

If WAV files are selected, the object can produce sounds if the object is pressed, released or if the cursor is on the object.

11.9.3 « Options » tab


11.10 Details of a « Digital value » object

Details of a « Digital value » object

Related Topics
11 IRIS 2D references
11.10.1 « Aspect » tab
11.10.2 « Texts » tab
11.10.3 « Links » tab


11.10.1 « Aspect » tab

« Aspect » tab

Related Topics
11.10 Details of a « Digital value » object
11.10.1.1 Format
11.10.1.2 Base
11.10.1.3 Colors
11.10.1.4 Font
11.10.1.5 Number of digits
11.10.1.6 Background
11.10.1.7 Object size


11.10.1.1 Format

Format

This is used to set the type of display:

· Always display the sign: display the '+' sign for positively signed values,

· Signed value: sets the signed or unsigned mode for 16 or 32 bit integers (only base 10),

· Display all digits: display the 0 at the beginning of the value if necessary.

11.10.1 « Aspect » tab


11.10.1.2 Base

Base

· Establishes the display base for 16 and 32 bit integers.

11.10.1 « Aspect » tab


11.10.1.3 Colors

Colors

This is used to select the background colors of the object (if it is not transparent) and the characters.

11.10.1 « Aspect » tab


11.10.1.4 Font

Font

This is used to select character font and size. The font file used must be present on the PC where the program is run.

11.10.1 « Aspect » tab


11.10.1.5 Number of digits

Number of digits

Sets the length of the integer and decimal parts.

11.10.1 « Aspect » tab


11.10.1.6 Background

Background

This is used to select either a colored or transparent (if the object is only placed on one console) background.

11.10.1 « Aspect » tab


11.10.1.7 Object size

Object size

This establishes object dimensions in number of dots. These values can be modified to precisely set the size of an object.

11.10.1 « Aspect » tab


11.10.2 « Texts » tab

« Texts » tab

Related Topics
11.10 Details of a « Digital value » object
11.10.2.1 Bubble Text
11.10.2.2 Text displayed before and after the value


11.10.2.1 Bubble Text

Bubble Text

Text displayed in a bubble when the user puts the cursor on the object.

11.10.2 « Texts » tab


11.10.2.2 Text displayed before and after the value

Text displayed before and after the value

This is used to display information to the left and right of a numeric value.

11.10.2 « Texts » tab


11.10.3 « Links » tab

« Links » tab

Related Topics
11.10 Details of a « Digital value » object
11.10.3.1 Variable or symbol
11.10.3.2 The Variable state can be modified


11.10.3.1 Variable or symbol

Variable or symbol

This designates the variable to display. To access a time delay counter or procedure the following syntax must be used:

· for the counter: COUNT (time delay), example: COUNT(t3),

· for the procedure: PRED(TIME DELAY), EXAMPLE: PRED(t7),

11.10.3 « Links » tab


11.10.3.2 The Variable state can be modified

The Variable state can be modified

If this is checked then the user can modify the variable state by clicking on the object.

11.10.3 « Links » tab


11.11 Details of an « Analog value » object

Details of an « Analog value » object

Related Topics
11 IRIS 2D references
11.11.1 « Aspect » tab
11.11.2 « Links » tab
11.11.3 « Limits» tab
11.11.4 « Graduations » tab


11.11.1 « Aspect » tab

« Aspect » tab

Related Topics
11.11 Details of an « Analog value » object
11.11.1.1 Objects
11.11.1.2 Print direction
11.11.1.3 Colors
11.11.1.4 Background
11.11.1.5 Object size
11.11.1.6 Texts


11.11.1.1 Objects

Objects

This is used to set the type of display.

11.11.1 « Aspect » tab


11.11.1.2 Print direction

Print direction

This establishes print direction: horizontal or vertical.

11.11.1 « Aspect » tab


11.11.1.3 Colors

Colors

This is used to select the background colors of the object (if it is not transparent) and the object.

11.11.1 « Aspect » tab


11.11.1.4 Background

Background

This is used to select either a colored or transparent (if the object is only placed on one console) background.

11.11.1 « Aspect » tab


11.11.1.5 Object size

Object size

This establishes object dimensions in number of dots. These values can be modified to precisely set the size of an object.

11.11.1 « Aspect » tab


11.11.1.6 Texts

Texts

Bubble text.

11.11.1 « Aspect » tab


11.11.2 « Links » tab

« Links » tab

Related Topics
11.11 Details of an « Analog value » object
11.11.2.1 Variable or symbol
11.11.2.2 User action …


11.11.2.1 Variable or symbol

Variable or symbol

This designates the variable linked to an object (a word or a counter).

11.11.2 « Links » tab


11.11.2.2 User action …

User action …

This establishes if a variable can be modified by the user.

11.11.2 « Links » tab


11.11.3 « Limits» tab

« Limits» tab

Related Topics
11.11 Details of an « Analog value » object
11.11.3.1 Minimum, maximum
11.11.3.2 Start angle, end angle


11.11.3.1 Minimum, maximum

Minimum, maximum

Minimum and maximum values.

11.11.3 « Limits» tab


11.11.3.2 Start angle, end angle

Start angle, end angle

To display the type of dial which establishes the start angle and end angle. The values are expressed in degrees:

11.11.3 « Limits» tab


11.11.4 « Graduations » tab

« Graduations » tab

Related Topics
11.11 Details of an « Analog value » object
11.11.4.1 Using the graduations
11.11.4.2 Start value, end value
11.11.4.3 No small graduations, no large graduations
11.11.4.4 Font
11.11.4.5 Area N°1, area N°2 and area N°3
11.11.4.6 Colors


11.11.4.1 Using the graduations

Using the graduations

This validates or invalidates the use of graduations

11.11.4 « Graduations » tab


11.11.4.2 Start value, end value

Start value, end value

Values displayed for the graduations, these values can be signed and/or floating point numbers.

11.11.4 « Graduations » tab


11.11.4.3 No small graduations, no large graduations

No small graduations, no large graduations

No graduations (two levels) related to start and end values. These values can be floating point numbers.

11.11.4 « Graduations » tab


11.11.4.4 Font

Font

This establishes the characters used for the graduations.

11.11.4 « Graduations » tab


11.11.4.5 Area N°1, area N°2 and area N°3

Area N°1, area N°2 and area N°3

This is used to establish colored areas. « Start value » and « End value » set each area. The color for each area is specified by three components of red, green and blue between 0 and 255.

11.11.4 « Graduations » tab


11.11.4.6 Colors

Colors

This establishes the character and graduation color. Again here the colors are expressed by their three components: red, green and blue.

11.11.4 « Graduations » tab


11.12 Details of « Screen, keyboard, message list » object

Details of « Screen, keyboard, message list » object

Related Topics
11 IRIS 2D references
11.12.1 Links with the application
11.12.2 Message classes
11.12.3 « Aspect » tab
11.12.4 This is used to set an object type. See chapter links with the application
11.12.5 « Links » tab
11.12.6 « List » tab
11.12.7 « Options » tab
11.12.8 « Messages » tab


11.12.1 Links with the application

Links with the application

The link between the object and the application is made using word tables.

To send data to a type of object (with or without the keyboard) the data must be placed starting from the second word of the reception table plus the length of the data in the first word in the table (maximum length is 255). Each word contains a datum.

The data can be: an ASCII character, a number of a preset message + 8000 hexa, or a special command: 100 hexa deletes the window, 200 hexa displays the date, 300 hexa displays the time, 400 displays the message number.

When the object has reread the available data in a table it resets the first word to 0 to indicate that the operation has been effected.

The principle is the same for « with keyboard » objects: the first word of the transmission table contains the number of characters entered on the keyboard, the following words contain the characters (one per word). The application must reset the first word to 0 when it has used the data.

The interchange table for the « Message box, alarm list » object has a fixed length of 10 words. As is true for the « Screen » type the first word starts the message display. If it is different than 0 it designates a message number to be displayed. Only registered messages can be displayed. The first word can also take an ffff hexa value to clear the message box.

Description of 10 words used for interchanges with the « Message box »:

Word 0 represents the first word on the table, Word 1 the second, etc.

Word 0: message number to be displayed if 0 is no messages or ffff hexa to clear all messages,

Word 1: class number for the message (see chapter message classes

for a more detailed explanation).

The following words establish the date and time and can displayed for each message. A value equal to ffff hexa asks the object to use the current computer date and time (this does not include milliseconds).

Word 2: day

Word 3: month

Word 4: year

Word 5: hours

Word 6: minutes

Word 7: seconds

Word 8: milliseconds

Word 9: reserved (put 0)

11.12 Details of « Screen, keyboard, message list » object


11.12.2 Message classes

Message classes

Message classes are used to classify messages into families which share the following characteristics: background color, character color and an icon.

there are two preset classes:

· the information message class: blue characters on a white background, icon [image] , it bears the number -1,

· the alarm message class: white characters on a red background, icon [image], it bears the number -2.

Other classes can be set by the user.

A bubble text can be associated with the object.

11.12 Details of « Screen, keyboard, message list » object


11.12.3 « Aspect » tab

« Aspect » tab

Related Topics
11.12 Details of « Screen, keyboard, message list » object
11.12.3.1 Object type


11.12.3.1 Object type

Object type

11.12.3 « Aspect » tab


11.12.4 This is used to set an object type. See chapter links with the application

This is used to set an object type. See chapter links with the application

Related Topics
11.12 Details of « Screen, keyboard, message list » object
11.12.4.1 Colors
11.12.4.2 Font
11.12.4.3 Object size
11.12.4.4 Texts


11.12.4.1 Colors

Colors

This is used to select the background colors of the object and the characters.

Related Topics
11.12.4 This is used to set an object type. See chapter links with the application


11.12.4.2 Font

Font

This is used to select the character font used for displaying texts.

Related Topics
11.12.4 This is used to set an object type. See chapter links with the application


11.12.4.3 Object size

Object size

This establishes object dimensions in number of dots. These values can be modified to precisely set the size of an object.

Related Topics
11.12.4 This is used to set an object type. See chapter links with the application


11.12.4.4 Texts

Texts

Bubble text.

Related Topics
11.12.4 This is used to set an object type. See chapter links with the application


11.12.5 « Links » tab

« Links » tab

Related Topics
11.12 Details of « Screen, keyboard, message list » object
11.12.5.1 Reception, transmission


11.12.5.1 Reception, transmission

Reception, transmission

This sets the first variables of the reception and transmission tables. These areas can contain a variable name or symbol.

11.12.5 « Links » tab


11.12.6 « List » tab

« List » tab

These sections do not regard « Message box » objects.

Related Topics
11.12 Details of « Screen, keyboard, message list » object
11.12.6.1 Icons
11.12.6.2 Classes
11.12.6.3 Days, Months, Years, Hours, Minutes, Seconds, 1/1000 seconds
11.12.6.4 Messages
11.12.6.5 Numbers
11.12.6.6 Message classes


11.12.6.1 Icons

Icons

If this is checked an icon is displayed before the messages.

11.12.6 « List » tab


11.12.6.2 Classes

Classes

If this is checked a message class number is displayed

11.12.6 « List » tab


11.12.6.3 Days, Months, Years, Hours, Minutes, Seconds, 1/1000 seconds

Days, Months, Years, Hours, Minutes, Seconds, 1/1000 seconds

If these are checked each one of these elements is displayed.

11.12.6 « List » tab


11.12.6.4 Messages

Messages

If this is checked a message is displayed.

11.12.6 « List » tab


11.12.6.5 Numbers

Numbers

If this is checked a message display number is displayed.

11.12.6 « List » tab


11.12.6.6 Message classes

Message classes

This editing area is used to establish new message classes. Each line sets a class. The following must appear in order and be separated by commas on each line: the background color three components red, green and blue), the character color (three components red, green and blue), the class name, the bitmap file name for the icon associated to the class.

For example:

255,0,0,0,0,0,ALARM,alarm.bmp

Means:

Red background color, black character color, ALARM class name, file containing icon: « alarm.bmp ».

11.12.6 « List » tab


11.12.7 « Options » tab

« Options » tab

Related Topics
11.12 Details of « Screen, keyboard, message list » object
11.12.7.1 Displaying character hexadecimal codes
11.12.7.2 Horizontal, vertical scroll bar
11.12.7.3 Converting OEM characters to ANSI
11.12.7.4 Duplicating messages to ...
11.12.7.5 Associating a message storage file ...
11.12.7.6 Write the old message to ...
11.12.7.7 Number of memorized lines ...


11.12.7.1 Displaying character hexadecimal codes

Displaying character hexadecimal codes

This option is used to display hexadecimal code for each character in place of its ASCII representation. It is used for « Screen ... » type objects and is normally used for starting up programs.

11.12.7 « Options » tab


11.12.7.2 Horizontal, vertical scroll bar

Horizontal, vertical scroll bar

Displays or hides scroll bars.

11.12.7 « Options » tab


11.12.7.3 Converting OEM characters to ANSI

Converting OEM characters to ANSI

If this is checked, the characters from the processing application are automatically converted from OEM characters (MS-DOS) to ANSI characters (WINDOWS). The reverse conversion is applied to characters which drive the object for the processing application.

11.12.7 « Options » tab


11.12.7.4 Duplicating messages to ...

Duplicating messages to ...

This section can receive a file or peripheral name (for example, « LPT1 » for the printer) It is possible to specify multiple files and/or peripherals by separating them with a comma. The displays will be automatically duplicated: Printing « edge of the water ».

11.12.7 « Options » tab


11.12.7.5 Associating a message storage file ...

Associating a message storage file ...

This is used for setting a file which will be associated to the object and used for storing information. If this file exists then the messages will be saved (according to the number set in the « number of memorized lines» section, when the number is reached the oldest data is deleted. When the object is open, and if a storage file exists since its last use, then the data contained in the file is transferred to the object.

11.12.7 « Options » tab


11.12.7.6 Write the old message to ...

Write the old message to ...

This is used to set a file or a peripheral which receives old messages (the messages which are eliminated from the storage file to make room).

11.12.7 « Options » tab


11.12.7.7 Number of memorized lines ...

Number of memorized lines ...

This establishes the message storage file capacity in number of lines. The value 0 attributes the maximum space that can be used (not a fixed limit).

11.12.7 « Options » tab


11.12.8 « Messages » tab

« Messages » tab

Related Topics
11.12 Details of « Screen, keyboard, message list » object
11.12.8.1 Preset messages


11.12.8.1 Preset messages

Preset messages

This editing box is used to document preset messages (one per line).

11.12.8 « Messages » tab


11.13 Details of « Data archive » object

Details of « Data archive » object

Related Topics
11 IRIS 2D references
11.13.1 « Aspect » tab
11.13.2 « Data » tab
11.13.3 « Options » tab
11.13.4 « Tables » tab
11.13.5 « Graph» tab
11.13.6 « Graduations » tab
11.13.7 « Grid » tab


11.13.1 « Aspect » tab

« Aspect » tab

Related Topics
11.13 Details of « Data archive » object
11.13.1.1 Objects
11.13.1.2 Colors
11.13.1.3 Object size
11.13.1.4 Text


11.13.1.1 Objects

Objects

This is used to set the type of display.

The object can be represented in table format (figure 1.1) or graph format (figure 1.2).

(figure 1.1) (figure 1.2)

11.13.1 « Aspect » tab


11.13.1.2 Colors

Colors

This is used to select the font color when the object is in a table format as well as color for marking values on the graph.

11.13.1 « Aspect » tab


11.13.1.3 Object size

Object size

This establishes object dimensions in number of dots. These values can be modified to precisely set the size of an object.

11.13.1 « Aspect » tab


11.13.1.4 Text

Text

A bubble text associated with the object.

11.13.1 « Aspect » tab


11.13.2 « Data » tab

« Data » tab

Related Topics
11.13 Details of « Data archive » object
11.13.2.1 First variable to read
11.13.2.2 Number of variables to read
11.13.2.3 Number of memorized registrations
11.13.2.4 Periodic reading
11.13.2.5 Start reading
11.13.2.6 Period
11.13.2.7 Control


11.13.2.1 First variable to read

First variable to read

This is used to select the first variable to be archived.

11.13.2 « Data » tab


11.13.2.2 Number of variables to read

Number of variables to read

This indicates to the ARCHIVE object the consecutive number of variables to the « First variable to read » that it must archive.

11.13.2 « Data » tab


11.13.2.3 Number of memorized registrations

Number of memorized registrations

This is used to size memory database.

A registration represents an acquisition of « n » variables (« n » is the number of variables to read).

11.13.2 « Data » tab


11.13.2.4 Periodic reading

Periodic reading

Variable acquisition will be done at fixed intervals of ARCHIVE object running.

11.13.2 « Data » tab


11.13.2.5 Start reading

Start reading

Variable acquisition will be effected when the « Control word » has given the order.

11.13.2 « Data » tab


11.13.2.6 Period

Period

This is used to establish the time between two acquisitions. The time is in Day(s)/Hour(s)/Minute(s)/Second(s)/Millisecond(s) format:

J for days

H for hours

M for minutes

S for seconds

MS for milliseconds

E.g.: 2J

E.g.: 2H10M15S

11.13.2 « Data » tab


11.13.2.7 Control

Control

This is used to set a variable (a word) that controls the ARCHIVE object. From the value taken in the count, its contents is reset by the ARCHIVE object.

Value Action

0 Nothing

1 Start an acquisition (Reading started)

2 Freeze the acquisitions

3 Restart archiving (after freezing)

4 Clear the memory database

5 Destroy the archive file

6 Activate « Save last acquisitions » mode

7 Cancel « Save last acquisitions » mode

11.13.2 « Data » tab


11.13.3 « Options » tab

« Options » tab

Related Topics
11.13 Details of « Data archive » object
11.13.3.1 Use the image file
11.13.3.2 Using the archive file
11.13.3.3 Displaying


11.13.3.1 Use the image file

Use the image file

The image file is used:

At the end of using the ARCHIVE object, to save the database present in the memory.

When the ARCHIVE object is launched, to reconstruct the database present in the memory during the last use.

11.13.3 « Options » tab


11.13.3.2 Using the archive file

Using the archive file

Each acquisition is saved in the file in standard database format.

11.13.3 « Options » tab


11.13.3.3 Displaying

Displaying

Acquisition date: This is used to display the acquisition date of a registration.

Acquisition time: This is used to display the acquisition time of a registration.

Hours, minutes, seconds, milliseconds: This is used to configure the acquisition time display.

The time display is effected downstream from the display of acquisitions for the TABLE object (figure 3.1) or under the grid when it is set for the GRAPH object (figure 3.2)

(figure 3.1) (figure 3.2)

11.13.3 « Options » tab


11.13.4 « Tables » tab

« Tables » tab

Related Topics
11.13 Details of « Data archive » object
11.13.4.1 Font
11.13.4.2 Column name


11.13.4.1 Font

Font

This is used to select a font for displaying the column name, times and acquisition value.

11.13.4 « Tables » tab


11.13.4.2 Column name

Column name

This is used to set the column name for the TABLE object as well as the display format for these columns (figure 4.1)

syntax: name, format

format * Display

no format specified Signed, decimal, visible

h Hexadecimal

d Decimal

ns Not signed

s Signed

nv Not visible

v Visible

* The different options can be combined, for example:

Format Display

d,ns,v Decimal without sign visible

(figure 4.1)

11.13.4 « Tables » tab


11.13.5 « Graph» tab

« Graph» tab

Related Topics
11.13 Details of « Data archive » object
11.13.5.1 Minimum, maximum value
11.13.5.2 Display
11.13.5.3 Plotting values on the graph
11.13.5.4 Displaying time
11.13.5.5 Outline colors


11.13.5.1 Minimum, maximum value

Minimum, maximum value

This is used to select the minimum and maximum values for displaying graphs.

Only values included between the minimum and maximum values will be displayed on the screen.

11.13.5 « Graph» tab


11.13.5.2 Display

Display

This is used to set the display time.

This is communicated to the ARCHIVE object in the day(s)/Hour(s)/Minute(s)/Second(s)/Millisecond(s) format:

J for days

H for hours

M for minutes

S for seconds

MS for milliseconds

E.g.: Display 2H30M10S

E.g.: Display 100MS

11.13.5 « Graph» tab


11.13.5.3 Plotting values on the graph

Plotting values on the graph

This is used to make a mark on the graph for each acquisition (figure 5.1)

11.13.5 « Graph» tab


11.13.5.4 Displaying time

Displaying time

This is used to display the date and time of an acquisition of one or more variables on the grid if it is open. Colors and fonts can be set for the time display.

11.13.5 « Graph» tab


11.13.5.5 Outline colors

Outline colors

This is used to set a color for each graph. The first graph has the color of the first line, the second graph has the color of the second line etc.

Colors are in Red, Green, Blue format.

E.g.: 255,0,0 red outline

If a color is not set on a line, the graph corresponding to this line will not be outlined.

(figure 5.1)

11.13.5 « Graph» tab


11.13.6 « Graduations » tab

« Graduations » tab

Related Topics
11.13 Details of « Data archive » object
11.13.6.1 Using the graduations
11.13.6.2 Start value, end value
11.13.6.3 No small graduations, no large graduations
11.13.6.4 Font
11.13.6.5 Area N°1, area N°2 and area N°3
11.13.6.6 Colors


11.13.6.1 Using the graduations

Using the graduations

This validates or invalidates the use of graduations (figure 6.1).

11.13.6 « Graduations » tab


11.13.6.2 Start value, end value

Start value, end value

Values displayed for the graduations, these values can be signed and/or floating point numbers.

11.13.6 « Graduations » tab


11.13.6.3 No small graduations, no large graduations

No small graduations, no large graduations

No graduations (two levels) related to start and end values. These values can be floating point numbers.

11.13.6 « Graduations » tab


11.13.6.4 Font

Font

Establishes the characters used for the graduations.

11.13.6 « Graduations » tab


11.13.6.5 Area N°1, area N°2 and area N°3

Area N°1, area N°2 and area N°3

This is used to establish colored areas. "Start value" and "End value" set each area. The color for each area is set by three components of red, green and blue between 0 and 255.

11.13.6 « Graduations » tab


11.13.6.6 Colors

Colors

This establishes the character and graduation color. Again here the colors are expressed by their three components: red, green and blue.

(figure 6.1)

11.13.6 « Graduations » tab


11.13.7 « Grid » tab

« Grid » tab

Related Topics
11.13 Details of « Data archive » object
11.13.7.1 Displaying the grid
11.13.7.2 Not for ordinates
11.13.7.3 Not for abscissas
11.13.7.4 Color


11.13.7.1 Displaying the grid

Displaying the grid

This validates or invalidate grid display.

11.13.7 « Grid » tab


11.13.7.2 Not for ordinates

Not for ordinates

This sets the vertical pitch of the grid.

11.13.7 « Grid » tab


11.13.7.3 Not for abscissas

Not for abscissas

This sets the horizontal pitch of the grid. The pitch is in Day(s)/Hour(s)/Minute(s)/Second(s)/Millisecond(s) format:

J for days

H for hours

M for minutes

S for seconds

MS for milliseconds

E.g.: 1J

E.g.: 2H30M15S

11.13.7 « Grid » tab


11.13.7.4 Color

Color

This is used to set a color for each grid.

The color is in Red, Green, Blue format

E.g.: 255,0,0 Red outline

11.13.7 « Grid » tab


11.14 Details of « Object » object

Details of « Object » object

Related Topics
11 IRIS 2D references
11.14.1 « Aspect » tab
11.14.2 « Links » tab
11.14.3 « Formats » tab
11.14.4 « Bitmap » tab
11.14.5 « Wmf » tab
11.14.6 « Colors » tab
11.14.7 « Gauge » tab
11.14.8 « Sensor» tab
11.14.9 « Options » tab
11.14.10 Advanced techniques


11.14.1 « Aspect » tab

« Aspect » tab

Related Topics
11.14 Details of « Object » object
11.14.1.1 Type
11.14.1.2 Colors
11.14.1.3 Font
11.14.1.4 Object size
11.14.1.5 Texts


11.14.1.1 Type

Type

This is used to set one of the object type aspects:

· « n bitmap aspects »: the object aspect is provided by a bitmap file which can contain various aspects, see the chapter « Bitmap » tab

· « n bitmap colors »: the object aspect is provided by a bitmap file, the color is controlled by a processing application variable that replaces the blank pixels of the bitmap. The other bitmap pixels must be black. The processing application variable provides a color number, the colors are set in the « Colors » tab.

· « gauge bitmap »: the object is a gauge with a format set by a bitmap. The blank bitmap pixels set the format. The other pixels must be black. The minimum, maximum and print direction are set in the « Gauge » tab.

· « n format colors »: a rectangle, a rectangle with rounded edges or an ellipse. The color is managed in the same manner as « n bitmap colors ».

· « gauge formats »: the object is a rectangular gauge. The principle is the same as for a « gauge bitmap »

11.14.1 « Aspect » tab


11.14.1.2 Colors

Colors

This is used to select the character color for the text displayed on the object.

11.14.1 « Aspect » tab


11.14.1.3 Font

Font

This establishes the font used for displaying text on the object.

11.14.1 « Aspect » tab


11.14.1.4 Object size

Object size

This establishes object dimensions in number of dots. These values can be modified to precisely set the size of an object.

11.14.1 « Aspect » tab


11.14.1.5 Texts

Texts

Help text and bubble text.

The text displayed on the object: the position and print direction can be modified.

11.14.1 « Aspect » tab


11.14.2 « Links » tab

« Links » tab

Related Topics
11.14 Details of « Object » object
11.14.2.1 Clicked object, not clicked object
11.14.2.2 Permanently connect with ..
11.14.2.3 Aspect/Color/Filling
11.14.2.4 Horizontal movement, vertical movement


11.14.2.1 Clicked object, not clicked object

Clicked object, not clicked object

This sets the actions to be effected when the user clicks on the object and when the user stops clicking the object.

An action can be setting the state of a variable, for example:

O0=1, m200=4, _depart cycle_=3

Or a preset key word.

A configuration example where the input i10 reflects the clicked state of an object (i10 to 0 if the object is not clicked, i10 to 1 if the object is clicked):

Clicked object: i10=1

Not clicked object: i10=0

11.14.2 « Links » tab


11.14.2.2 Permanently connect with ..

Permanently connect with ..

This area can receive the identifier of a sister object. If this object exists then the position of the object is modeled on it. The identifier of an object is an integer value between 1 and 32767. It is specified in the « Identifier» editing area of the « Links » section.

11.14.2 « Links » tab


11.14.2.3 Aspect/Color/Filling

Aspect/Color/Filling

This area of the dialogue box contains 8 editing areas which can be used to set different types of object behavior based on the processing application variables.

No matter what their behavior they will always have a position which depending on the type of object will design:

· an aspect contained on a bitmap for the « n bitmap aspects » type

· a color number for « n bitmap colors » or « n format colors »

· filling for the « gauge bitmap » or « gauge format » types.

The « Position » area can contain a numeric variable name (C or M). The areas « + Position » and « - Position » can contain a name of boolean variables.

Two types of operation are possible:

· if the « + Position » and « - Position » areas are documented then the boolean variables contained in them will drive the position: they add or delete the value specified in the speed area. If the « Position » area is documented then the current position is written in the variable which contains the name.

· if the « + Position » and « - Position » areas are blank then the value containing the variable where the name is written in the « Position » area will be read as the object position.

The position can vary between the values set in the « Min » and « Max » areas.

Sensors can be added (boolean variable names) which will be true for the minimum and maximum position (position equal to minimum or maximum).

11.14.2 « Links » tab


11.14.2.4 Horizontal movement, vertical movement

Horizontal movement, vertical movement

These dialogue box areas each contain 8 editing areas respectively used to set the horizontal and vertical position of the object. The principle is identical to that described above.

11.14.2 « Links » tab


11.14.3 « Formats » tab

« Formats » tab

Related Topics
11.14 Details of « Object » object
11.14.3.1 Formats


11.14.3.1 Formats

Formats

For « n format colors » this section is used to select a rectangle, a rectangle with rounded corners or an ellipse.

11.14.3 « Formats » tab


11.14.4 « Bitmap » tab

« Bitmap » tab

Related Topics
11.14 Details of « Object » object
11.14.4.1 File name
11.14.4.2 Number of aspects


11.14.4.1 File name

File name

For « n bitmap aspects, n bitmap colors and gauge bitmap » this editing area must contain a complete access name to a « .BMP » file. These files can be created with PAINTBRUSH or another graphics editing program able to create « .BMP » files.

The « Scan » and « Edit » pushbuttons are respectively used to search for « .BMP » files and to edit (launch of PAINTBRUSH) « .BMP » file if its name is in the editing area.

11.14.4 « Bitmap » tab


11.14.4.2 Number of aspects

Number of aspects

This editing area must contain the number of aspects (images) contained in a « .BMP » file. This option is used for « n bitmap aspects ». The different object aspects must be designed one under the other. The highest aspect is the number 0.

11.14.4 « Bitmap » tab


11.14.5 « Wmf » tab

« Wmf » tab

Related Topics
11.14 Details of « Object » object
11.14.5.1 File name
11.14.5.2 The bitmap has transparent areas ...


11.14.5.1 File name

File name

For « Meta files » this editing area must contain a complete access name to a « .EMF » file.

Example of a « .BMP » file with 4 aspects:

11.14.5 « Wmf » tab


11.14.5.2 The bitmap has transparent areas ...

The bitmap has transparent areas ...

This option is used to create an object with certain transparent areas (the background of the parent console will be displayed). The transparent areas are set by pixels of the same color, a color established by the three components, red, green and blue. To set these components use the three scroll bars. The color must be precisely set: exactly the same proportion of red, green and blue as the color of the pixels in the transparent areas.

11.14.5 « Wmf » tab


11.14.6 « Colors » tab

« Colors » tab

Related Topics
11.14 Details of « Object » object
11.14.6.1 Colors


11.14.6.1 Colors

Colors

This area is used for « n bitmap colors » and « n format colors » Each line contains the setting for a color. The syntax used for each line is:

proportion of red (between 0 and 255), proportion of green (between 0 and 255) and proportion of blue (between 0 and 255). The first line designates color number 0, the second line number 1, etc.

This area is used for « gauge bitmap » and « gauge format ». The first line (color 0) and the second (color 1) establishes the two colors of the gauge (active and inactive part).

11.14.6 « Colors » tab


11.14.7 « Gauge » tab

« Gauge » tab

Related Topics
11.14 Details of « Object » object
11.14.7.1 Gauge
11.14.7.2 Gauge print direction


11.14.7.1 Gauge

Gauge

This section is used for « gauge bitmap » and « gauge format ». The « Minimum value » and « Maximum value » establish the limits for the gauge drive variable.

11.14.7 « Gauge » tab


11.14.7.2 Gauge print direction

Gauge print direction

This establishes one of the four possible directions for the gauge.

11.14.7 « Gauge » tab


11.14.8 « Sensor» tab

« Sensor» tab

The OBJECT object can be used as a sensor. The sensor is associated with a boolean variable where the result is true if the sensor is in contact with one or more of the preset colors (see below), otherwise it is false.

Related Topics
11.14 Details of « Object » object
11.14.8.1 Detection position
11.14.8.2 Detected colors


11.14.8.1 Detection position

Detection position

This is used to set the side of the object which must be detected. Detection is effected on the two edges of the selected side.

Example for a detection from below:

11.14.8 « Sensor» tab


11.14.8.2 Detected colors

Detected colors

A sensor is capable of detecting up to three different colors. If one of these three colors is at the test points then the boolean variable associated to the sensor (see chapter « Links » tab ) is positioned at 1, otherwise it is positioned at 0.

The three editing areas can contain a color setting in the format of three values between 0 and 255 which respectively correspond to the percentages of red, green and blue. The percentages of these three colors must exactly correspond to the colors of the object to be detected in order for the sensor to work.

11.14.8 « Sensor» tab


11.14.9 « Options » tab

« Options » tab

Related Topics
11.14 Details of « Object » object
11.14.9.1 Key
11.14.9.2 The TAB key is used to access this object


11.14.9.1 Key

Key

Set a key used to simulate a click on an object.

Different syntaxes can be used to set the key code:

· a simple character: For example A, Z, 2,

· the $ character is followed by hexadecimal key code,

· the name of a function key, for example F5.

For combinations of keys « CTRL+ » or « SHIFT+ » must be added to the beginning

For example: « CTRL+F4 » or « SHIFT+Z ».

11.14.9 « Options » tab


11.14.9.2 The TAB key is used to access this object

The TAB key is used to access this object

If this is not checked then the TAB key cannot be used to activate the object.

11.14.9 « Options » tab


11.14.10 Advanced techniques

Advanced techniques

Related Topics
11.14 Details of « Object » object
11.14.10.1 Dynamic object linking
11.14.10.2 Interchanging parameters between two objects


11.14.10.1 Dynamic object linking

Dynamic object linking

This possibility is used to momentarily link one object to another. The « + Position » and « - Position » parameters which manage the horizontal and vertical position are used in a special way for linking one object to another. These two parameters must contain the name of a numeric variable (M). The « + Position » variable must contain the f000 value (hexadecimal) and the « - Position » the identifier of the object to be connected. The « + Position » variable is reset once the connection has been made. To cancel the object connection the value f001 (hexadecimal) must be put in the « + Position » variable. See chapter: Example of operating part simulation 1

11.14.10 Advanced techniques


11.14.10.2 Interchanging parameters between two objects

Interchanging parameters between two objects

A object can access the parameters of a sister object by using the key word « SISTERPARAM ».

The syntax is:

SISTERPARAM(identifier of the sister object, parameter)

« parameter » can assume the following values:

STATE object state: Aspect/Color/Filling value

STATE same as above but with negative value

POSX position on horizontal axis

POSX same as above but with negative value

POSY position on y axis

POSY same as above but with negative value

POSX+STATE position on horizontal axis plus state

POSX+STATE position on horizontal axis minus state

POSY+STATE position on vertical axis plus state

POSY+STATE position on vertical axis minus state

11.14.10 Advanced techniques


11.15 Details of « Sound » object

Details of « Sound » object

Related Topics
11 IRIS 2D references
11.15.1 « Aspect » tab
11.15.2 « Sounds » tab


11.15.1 « Aspect » tab

« Aspect » tab

Related Topics
11.15 Details of « Sound » object
11.15.1.1 Object size


11.15.1.1 Object size

Object size

This establishes object dimensions in number of dots. These values can be modified to precisely set the size of an object.

11.15.1 « Aspect » tab


11.15.2 « Sounds » tab

« Sounds » tab

Related Topics
11.15 Details of « Sound » object
11.15.2.1 Name of sound files
11.15.2.2 Associated variables


11.15.2.1 Name of sound files

Name of sound files

Complete access name to « .WAV » files.

11.15.2 « Sounds » tab


11.15.2.2 Associated variables

Associated variables

The boolean variable associated to each sound.

11.15.2 « Sounds » tab


11.16 Details of « Dialogue box » object

Details of « Dialogue box » object

Related Topics
11 IRIS 2D references
11.16.1 « Aspect » tab


11.16.1 « Aspect » tab

« Aspect » tab

Related Topics
11.16 Details of « Dialogue box » object
11.16.1.1 Type of box
11.16.1.2 Icons
11.16.1.3 Object size
11.16.1.4 Beep
11.16.1.5 Title
11.16.1.6 Message type


11.16.1.1 Type of box

Type of box

This is used to select the various controls present in the dialogue box: only one OK button, two buttons OK and CANCEL, or two buttons YES and NO.

11.16.1 « Aspect » tab


11.16.1.2 Icons

Icons

This is used to select the icon that will appear in the dialogue box. There are four different icons, but it is possible not to display any of them. It is also important to note that a special system is associated to each icon. See the section on the BEEP option for more information on the subject.

11.16.1 « Aspect » tab


11.16.1.3 Object size

Object size

This establishes object dimensions in number of dots. These values can be modified to precisely set the size of an object.

11.16.1 « Aspect » tab


11.16.1.4 Beep

Beep

This is used to specify if the dialogue box display must be accompanied by a sound warning.

11.16.1 « Aspect » tab


11.16.1.5 Title

Title

This is used to specify the title of the dialogue box.

11.16.1 « Aspect » tab


11.16.1.6 Message type

Message type

There are two possibilities. A preset message is a message present in the processing application user variables. The other possibility is to specify a message list in this case the displayed message is a function of the monitored variable state.

11.16.1 « Aspect » tab


11.17 « Links » tab

« Links » tab

Related Topics
11 IRIS 2D references
11.17.1 Variable name
11.17.2 Dialogue box return code
11.17.3 Identifier
11.17.4 « Messages » tab


11.17.1 Variable name

Variable name

This specifies the name of the variable to monitor. Boolean or numeric variables can be entered.

For example:

m200, i0

If the variable is boolean, then message no. 1 on the list will be displayed when the state of that variable passes to 1.

For a numeric variable, if the « Message list » configuration option is checked, then the dialogue box will be displayed when the value is between 1 and the number of messages memorized on the list.

For example, if the list contains 8 messages, then it will not display anything when the variable assumes negative values or those over 8. On the other hand, when the value is between 1 - 8, then the appropriate message is displayed.

If the « Preset message » option is activated, then the dialogue box will display a message of the length contained in the variable, and situated in the processing application variables based on that variable.

For example. if m200=4, this means that a message 4 characters long is situated in the 4 variables following m200, or rather m201, m202. m203, m204.

11.17 « Links » tab


11.17.2 Dialogue box return code

Dialogue box return code

With a boolean variable, no matter what action the user effects, it contents will go to 0. For a numeric variable, there are different return codes:

Press on an OK button: the variable assumes the value 8000 (hexa)

Press on an CANCEL button: the variable assumes the value 8001 (hexa)

Press on an YES button: the variable assumes the value 8002 (hexa)

Press on an NO button: the variable assumes the value 8003 (hexa)

Comment: Activation of a dialogue box is based on a rising edge, this means passage from 0 to 1 for a boolean variable, and passage from a value outside the message list range to a value included in it, for a numeric variable.

11.17 « Links » tab


11.17.3 Identifier

Identifier

This is used to refer to an object in relation to the other objects.

11.17 « Links » tab


11.17.4 « Messages » tab

« Messages » tab

Related Topics
11.17 « Links » tab
11.17.4.1 Message list


11.17.4.1 Message list

Message list

Enter the different preset messages in this area.

11.17.4 « Messages » tab


11.18 Details of « Program » object

Details of « Program » object

Related Topics
11 IRIS 2D references
11.18.1 Run time distribution
11.18.2 Display
11.18.3 Syntax
11.18.4 Stating variables
11.18.5 Writing a program
11.18.6 Constants
11.18.7 Assignment
11.18.8 Calculations
11.18.9 Tests
11.18.10 Loops
11.18.11 Variable or variable table address
11.18.12 List of functions
11.18.13 Error messages
11.18.14 « Aspect » tab
11.18.15 « Program » tab


11.18.1 Run time distribution

Run time distribution

IRIS objects are run by turns. The run time distribution is managed in a straightforward manner by the object manager. two priority levels are possible for « PROG » objects: if Priority run » is checked on the « Program » tab, then the whole program is run while the object is present. Otherwise, only one line is run before the object yields. There are exceptions to this rule: access functions to the processing variables (« READVAR » and « WRITEVAR ») may cause yielding, the YIELD function sets a yield. In priority run mode, this function must be used inside a loop in order not to block running of other objects.

11.18 Details of « Program » object


11.18.2 Display

Display

The object surface can be used for displaying information. The « PRINT » function is used to display information.

11.18 Details of « Program » object


11.18.3 Syntax

Syntax

The character « ; » (semicolon) is used as a separator. Comments can be written between the chains « (* » and « *) ». There is no difference between upper and lower case letters for key words and function names, on the other hand, for variable names there is a difference.

11.18 Details of « Program » object


11.18.4 Stating variables

Stating variables

The variables used in a program must be stated before the program between the key words « BEGINVAR; » and « ENDVAR; ».

The following types of variables can be used:

INT 16 bit signed integer

UINT 16 bit unsigned integer

LONG 32 bit signed integer

ULONG 32 bit unsigned integer

STRING string of characters

FLOAT float

The general syntax of a statement is:

<type> <variable name>;

The general syntax for stating a variable table is:

<type> <variable name> [<length>];

For example:

BEGINVAR;

INT counter; (* a 16 bit signed integer *)

STRING string; (*a string*)

(*a table of 100 32 bit unsigned integers*)

ULONG table[100];

ENDVAR;

11.18 Details of « Program » object


11.18.5 Writing a program

Writing a program

The program must be written between the two key words « BEGIN; » and « END; »

Example:

BEGIN;

print "Good morning !";

END;

11.18 Details of « Program » object


11.18.6 Constants

Constants

n 16 bit integer: a decimal number between -32768 and 32727 where "S" follows a hexadecimal number between 0 and FFFF. Example: 12, -4, $abcd

n 32 bit integer: a decimal number between -2147483648 and 214743648 where "L" or "S" follows a hexadecimal number between 0 and FFFFFFFF followed by "L". Example: 10000L, -200000L, $12345678L

n string of characters: quotation mark characters followed by a string followed by quotation mark characters. Controls characters can be entered in a string. « \ n » replaces an LF character (ASCII code 10), « \r » a CR character (ASCII code 13). Example: "Abcdef", "" (zero string), "Follow\r\n"

- float: a decimal number followed by the character "R", the characters "." are used to divide the integer part from the decimal part. Example: 3.14r, -100.4r

11.18 Details of « Program » object


11.18.7 Assignment

Assignment

The string «:= » indicates an assignment.

Example:

counter:=4;

var:="ABCDEF";

11.18 Details of « Program » object


11.18.8 Calculations

Calculations

Calculation operators are evaluated from left to right. Parentheses can be used to specify a calculation priority.

List of calculation operators:

n + addition (chaining for strings)

n - subtraction

n * multiplication

n / division

n << shift to the left

n >> shift to the right

n ^ raise by a power

n binary "and" AND

n binary "or" OR

n binary "exclusive or" XOR

Examples:

result:=var1*(var2+var3);

result:=result<<2;

11.18 Details of « Program » object


11.18.9 Tests

Tests

Syntax:

IF <condition> THEN ... ENDIF;

or

IF <condition> THEN ... ELSE ... ENDIF;

Example:

IF (count<100) AND (count>10)

THEN

count:=count+1;

ELSE

count:=0;

ENDIF;

11.18 Details of « Program » object


11.18.10 Loops

Loops

Syntax:

WHILE <condition> DO ... ENDWHILE;

Example:

count:=0;

WHILE count<1000

DO

table[count]:=table[count+1];

count:=count+1;

ENDWHILE;

11.18 Details of « Program » object


11.18.11 Variable or variable table address

Variable or variable table address

The syntax &variable name or &variable table name provides the address of a variable or variable table. This syntax is necessary for some functions.

11.18 Details of « Program » object


11.18.12 List of functions

List of functions

For the proposed examples below, the following is supposed:

vint is an INT type variable, vlong is a LONG type variable, vuint is a UINT type variable, vulong is a ULONG type variable, vfloat is a FLOAT type variable, vstring is a STRING type variable.

Related Topics
11.18 Details of « Program » object
11.18.12.1 PRINT
11.18.12.2 NOT
11.18.12.3 ABS
11.18.12.4 VAL
11.18.12.5 HVAL
11.18.12.6 ASC
11.18.12.7 CHR
11.18.12.8 STRING
11.18.12.9 STR
11.18.12.10 HEX
11.18.12.11 LEFT
11.18.12.12 RIGHT
11.18.12.13 MID
11.18.12.14 LEN
11.18.12.15 COS
11.18.12.16 SIN
11.18.12.17 TAN
11.18.12.18 ATN
11.18.12.19 EXP
11.18.12.20 LOG
11.18.12.21 LOG10
11.18.12.22 SQRT
11.18.12.23 DATE
11.18.12.24 TIME
11.18.12.25 RND
11.18.12.26 OPEN
11.18.12.27 CLOSE
11.18.12.28 WRITE
11.18.12.29 READ
11.18.12.30 SEEK
11.18.12.31 GOTO
11.18.12.32 CALL
11.18.12.33 RETURN
11.18.12.34 READVAR
11.18.12.35 WRITEVAR
11.18.12.36 CMD
11.18.12.37 YIELD
11.18.12.38 DLL


11.18.12.1 PRINT

PRINT

Display function. The data to be displayed is written after and separated by commas. Example:

print "The result is:",vint/12,"\n";

11.18.12 List of functions


11.18.12.2 NOT

NOT

Complement. This function can be used with the if test to complement a result.

Example:

if not(1<2) then ...

11.18.12 List of functions


11.18.12.3 ABS

ABS

Absolute value.

Example:

print abs(0-4); (* display 4 *)

11.18.12 List of functions


11.18.12.4 VAL

VAL

Provides the value of a string expressed in decimal number format.

Example:

vlong=val("-123456"); (* vlong will contain -123456 *)

11.18.12 List of functions


11.18.12.5 HVAL

HVAL

Provides the value of a string expressed in hexadecimal number format.

Example:

vuint=hval("abcd"); (* vuint will contain abcd hexa *)

11.18.12 List of functions


11.18.12.6 ASC

ASC

Provides the ASCII code of the first character of a string.

Example:

vuint:=asc("ABCD"); (* vuint will contain 65: ascii code of ‘A’ *)

11.18.12 List of functions


11.18.12.7 CHR

CHR

Provides a string composed of one character where the ASCII code is changed into a parameter.

Example:

vstring:=chr(65); (*vstring will contain string "A" *)

11.18.12 List of functions


11.18.12.8 STRING

STRING

Provides a string composed of n characters. The first subject is the number of characters, the second the character.

Example:

vstring:=string(100," ");

(* vstring will contain a string composed of 100 spaces *)

11.18.12 List of functions


11.18.12.9 STR

STR

Converts an integer numeric value into a string representing the value in decimals.

Example:

vstring:=str(100); (* vstring will contain the string "100" *)

11.18.12 List of functions


11.18.12.10 HEX

HEX

Converts an integer numeric value into a string representing the value in hexadecimals.

Example:

vstring:=str(100); (* vstring will contain the string "64" *)

11.18.12 List of functions


11.18.12.11 LEFT

LEFT

Provides the left part of a string. The first subject is the string, the second the number of characters to extract.

Example:

vstring:=left("abcdef",2); (* vstring will contain"ab" *)

11.18.12 List of functions


11.18.12.12 RIGHT

RIGHT

Provides the right part of a string. The first subject is the string, the second the number of characters to extract.

Example:

vstring:=right("abcdef",2); (* vstring will contain "ef" *)

11.18.12 List of functions


11.18.12.13 MID

MID

Provides part of a string. The first subject is the string, the second the position where the extraction begins, the third the number of characters to extract.

Example:

vstring:=mid("abcdef",1,2); (* vstring will contain "bc" *)

11.18.12 List of functions


11.18.12.14 LEN

LEN

Provides the length of a string.

Example:

vuint:=len("123"); (* vuint will contain 3 *)

11.18.12 List of functions


11.18.12.15 COS

COS

Provides the cosine of a real value expressed in radians.

Example:

vfloat:=cos(3.14r); (* vfloat will contain the cosine of 3.14 *)

11.18.12 List of functions


11.18.12.16 SIN

SIN

Provides the sine of a real value expressed in radians.

Example:

vfloat:=sin(3.14r); (* vfloat will contain the sine of 3.14 *)

11.18.12 List of functions


11.18.12.17 TAN

TAN

Provides the tangent of a real value expressed in radians.

Example:

vfloat:=tan(3.14r); (* vfloat will contain the tangent of 3.14 *)

11.18.12 List of functions


11.18.12.18 ATN

ATN

Provides the tangent arc of a real value.

Example:

vfloat:=atn(0.5r); (* vfloat will contain the tangent arc of 0.5 *)

11.18.12 List of functions


11.18.12.19 EXP

EXP

Provides the exponential of a real value.

Example:

vfloat:=exp(1r); (* vfloat will contain the exponential of 1 *)

11.18.12 List of functions


11.18.12.20 LOG

LOG

Provides the logarithm of a real value.

Example:

vfloat:=log(1r); (* vfloat will contain the logarithm of 1 *)

11.18.12 List of functions


11.18.12.21 LOG10

LOG10

Provides the base 10 logarithm of a real value.

Example:

vfloat:=log10(1r);

(* vfloat will contain the base 10 logarithm of 1 *)

11.18.12 List of functions


11.18.12.22 SQRT

SQRT

Provides the square root of a real value.

Example:

vfloat:=sqrt(2); (* vloat will contain the square root of 2 *)

11.18.12 List of functions


11.18.12.23 DATE

DATE

Provides a string representing the date.

Example:

print "The date is:",date(),"\n";

11.18.12 List of functions


11.18.12.24 TIME

TIME

Provides a string representing the time.

Example:

print "The time is:",time(),"\n";

11.18.12 List of functions


11.18.12.25 RND

RND

Provides a random number.

Example:

print rnd();

11.18.12 List of functions


11.18.12.26 OPEN

OPEN

Opens a file. The first subject is the file name, the second the access mode, which can be: « r+b » opening in reading and writing, « w+b » opening in writing (if the file exists it is destroyed. The function provides a long which identifies the file. If the opening fails, the value provided is 0.

Example:

vulong:=open("new","w+b");

11.18.12 List of functions


11.18.12.27 CLOSE

CLOSE

Closes a file. The subject is the file identifier provided by the OPEN function.

Example:

close(vulong);

11.18.12 List of functions


11.18.12.28 WRITE

WRITE

Writes data in a file. The first subject is the file identifier provided by the OPEN function. The second subject is a variable address, the third the number of bytes to be written. The function provides the number of bytes actually written.

Example:

vuint:=write(vulong,&buff,5);

11.18.12 List of functions


11.18.12.29 READ

READ

Reads data in a file. The first subject is the file identifier provided by the OPEN function. The second subject is a variable address, the third the number of bytes to be read. The function provides the number of bytes actually read.

Example:

vuint:=read(vulong,&buff,5);

11.18.12 List of functions


11.18.12.30 SEEK

SEEK

Moves a file pointer. The first subject is the file identifier provided by the OPEN function, the second the position.

Example:

seek(vulong,0l);

11.18.12 List of functions


11.18.12.31 GOTO

GOTO

Effects a jump to a label in the subject. The subject is a string.

Example:

goto "end"

...

end:;

11.18.12 List of functions


11.18.12.32 CALL

CALL

Effects a jump to a subprogram. The subject is a string containing the subprogram label.

Example:

BEGIN;

(* main program *)

call "sp"

END;

BEGIN;

(* subprogram *)

sp:

print "In the subprogram\n";

return;

END;

11.18.12 List of functions


11.18.12.33 RETURN

RETURN

Indicates the end of a subprogram.

11.18.12 List of functions


11.18.12.34 READVAR

READVAR

Reads one or more variables of the processing application. The first subject is the processing variable name (variable or symbol name). The second subject is the variable or 32 bit (longs or floats) variable table address The third subject is the number of variables to be read. If the function is executed with no errors, the value of 0 is provided.

Example:

readvar("i0",&buff,16); (* read 16 integers starting from i0 *)

11.18.12 List of functions


11.18.12.35 WRITEVAR

WRITEVAR

Writes one or more variables of the processing application. The first subject is the processing variable name (variable or symbol name). The second subject is the variable or 32 bit (longs or floats) variable table address. The third subject is the number of variables to be written. If the function is executed with no errors, the value of 0 is provided.

Example:

writevar("o0",&buff,16);

(* write 16 outputs starting from o0 *)

11.18.12 List of functions


11.18.12.36 CMD

CMD

Executes a command. The subject is a string which specifies the command to be executed. This function makes it possible to use preset IRIS commands. For more information see the chapter Special orders . If the command is executed with no errors, the value of 0 is provided.

Example:

cmd("run");

11.18.12 List of functions


11.18.12.37 YIELD

YIELD

Yields control. This function is used so as not to monopolize the execution when the object is run in priority mode.

Example:

WHILE 1

DO

...

yield();

ENDWHILE;

11.18.12 List of functions


11.18.12.38 DLL

DLL

Calls up a DLL. The first subject is the DLL file name. The second is the function name. The third is a pointer on a 32 bit variable which will receive the function return code. The other subjects are passed to the function.

Example:

dll "user","messagebeep",&vulong,-1;

11.18.12 List of functions


11.18.13 Error messages

Error messages

« separator ‘;’ missing »a semicolon is missing

« syntax error » syntax error detected

« variable set more than once » a variable set more than once

« not enough memory » the program run has saturated

the available memory

« variable not set » a variable used in the program

has not been set

« constant too big » a constant is too big

« program too complex » an expression is too complex,

it must be broken down

« incompatible variable or constant

type » a variable or constant is not

the expected type

« ’)’ missing » A closing parenthesis is missing

« ENDIF missing » The key word ENDIF is missing

« ’ENDWHILE’ missing » The key word ENDWHILE is

missing

« label cannot be found » a goto or subprogram label cannot

be found

« ’)’ missing » the closing square bracket is

missing

« element number outside limit » a table element outside of the

limits has been used

« too many overlapping ‘CALL’ » too many overlapping subprograms

have been used

«‘RETURN’ found without ‘CALL’ » RETURN found outside a subprogram

« variable size too small » the size of a variable is insufficient

« DLL file cannot be found » the DLL file cannot be found

« function cannot be found in DLL » the function cannot be found in the

DLL file

« division by zero» a division by 0 has been

produced»

« mathematical error » a mathematical function has

caused an error

11.18 Details of « Program » object


11.18.14 « Aspect » tab

« Aspect » tab

Related Topics
11.18 Details of « Program » object
11.18.14.1 Colors
11.18.14.2 Object size
11.18.14.3 Text


11.18.14.1 Colors

Colors

This is used to select the object background and character color.

11.18.14 « Aspect » tab


11.18.14.2 Object size

Object size

This establishes object dimensions in number of dots. These values can be modified to precisely set the size of an object.

11.18.14 « Aspect » tab


11.18.14.3 Text

Text

This is used to specify a bubble text which is displayed when the cursor is on the object.

11.18.14 « Aspect » tab


11.18.15 « Program » tab

« Program » tab

Related Topics
11.18 Details of « Program » object
11.18.15.1 Program
11.18.15.2 Run
11.18.15.3 Priority run
11.18.15.4 Run at start-up
11.18.15.5 Go to the error


11.18.15.1 Program

Program

This editing area contains the program.

11.18.15 « Program » tab


11.18.15.2 Run

Run

If this is checked than the program is run.

11.18.15 « Program » tab


11.18.15.3 Priority run

Priority run

If this is checked than the program is run more rapidly.

11.18.15 « Program » tab


11.18.15.4 Run at start-up

Run at start-up

If this is checked then the program is run when the object is opened. This option is used to save an object with the « Run » option not checked by requesting a run when the object is loaded.

11.18.15 « Program » tab


11.18.15.5 Go to the error

Go to the error

If an error has been detected when a program is running, then the pushbutton is used to place the cursor in the place that caused the error.

11.18.15 « Program » tab


12 IRIS 2D examples

IRIS 2D examples

The examples file names refer to the « Examples » subdirectory of the directory where autoSIM-200 is installed.

Related Topics
12.1 Example of composed objects
12.2 Example of using the « Screen, keyboard, message list » object as a message list
12.3 Example of using the « SCREEN KEY » object as a terminal
12.4 Example of an application composed of multiple pages
12.5 Example of using the «OBJECT » object
12.6 Example of using the «ARCHIVE» object
12.7 Example of using the «PROG » object
12.8 Examples of supervision application 1
12.9 Examples of supervision application 2
12.10 Example of operating part simulation 1
12.11 Example of operating part simulation 2


12.1 Example of composed objects

Example of composed objects

This example is used to let you understand how to create a « Decimal keyboard » object composed of keys. « 0 » to « 9 » plus a key [ENTER] for validating.

You will create a « Console » object, then starting from the console menu you will create an « Illuminated Button » object. We are going to set parameters for this object then we will duplicate it to obtain other keys. Then we will adjust the duplicated key properties to customize them: text display on the key and action We will then have a keyboard with a uniform key aspect.

Link with the application will be effected by using a word.

When a key is pressed it will write its code (0 to 9 or 13 for the validation key) in that word.

To specify that word we can give its name in the action section of the properties for each object. The problem is that when we reuse the « Decimal keyboard » object and if we want to use another word, it is necessary to modify the properties of the 11 « Illuminated button » objects.

To get around this problem we are going to use the possibility that sister objects have of accessing a parameter set in the properties of the parent console. The « Links » tab of the console property window is used to set the parameter. Only write on one line in the editing area. « KEYBOARD=M200 ». This line means that the keyboard parameter is equal to M200.

The keyboard keys refer to the « KEYBOARD » parameter and not directly to word M200. To change the word used, just change the parameter setting in the console properties.

Going back to the aspect of our keyboard...

In order for the aspect of the keyboard to be satisfactory we are going to set a grid to align the keys. In the console properties window and the « Options » tab write the value « 10 » in the two « Grids » sections This way the function moved from the console menu will use a 10 pixel grid. We are also going to set the dimensions for the first key. We can directly modify the dimensions of the key by dragging it by its edges, but for greater precision we are going to modify the dimensions form the « Object size in pixels » section of the « Illuminated Button » object window property tab.

For example, enter « 30 » for the width and height.

At this point you can also customize the style of the key. the color and font used for marking etc.

We are going to place this first key to the upper left of the keyboard (this is an arbitrary choice). The keyboard we are going to create will look like the numberpad of a computer keyboard. We are then going to mark this key with the text « 7 » in the « Text » section of the « Aspect » tab.

We are also going to set parameters for the functional aspect of the key: in the « Action when the button is pressed » section of the « Links » tab we are going to write: « PARENTPARAM(KEYBOARD)=7 ». This means that when the pushbutton is pressed the word designated for the « KEYBOARD » parameter of the parent console will receive the value 7. Delete whatever is in the « Action when the pushbutton is released'» section.

We can also assign a computer keyboard key to the « Illuminated Button » object. Then it will be possible to use the keyboard with the mouse or computer keyboard. To assign a key to the « Illuminated Button », object use the « Key » section of the « Options » tab. For example, enter « 7 » to associate computer keyboard key « 7 » to the object.

Then place key « 7 » at the upper left of the keyboard, like this:

To move this key, select the object ((SHIFT) key pressed, then click with the left side of the mouse on the object), then use the « Move » function from the console menu. This function is the only one which uses the grid instead of moving by dragging the bar of sister objects.

To create other keys, duplicate the existing key:

· select the first key,

· select « Copy » from the console menu, then « Paste »

· move the previously pasted key,

· set parameters for the new key: (text, links and computer keyboard key).

When you have finished the above row (keys « 7 », « 8 » and « 9 ») you can then select all three keys together and duplicate them.

You can create a validation key (wider for filling the surface of the keyboard).

To finish, resize the console and put the objects in « Employ » mode.

The final result should look like this:

< « Examples\IRIS2D\keyboard.agn »

12 IRIS 2D examples


12.2 Example of using the « Screen, keyboard, message list » object as a message list

Example of using the « Screen, keyboard, message list » object as a message list

Instructions:

· the object must display four different messages based on the state of four inputs (i0 to i3),

· for input 0: an information message « Start cycle »,

· for input 1: an information message « End cycle »,

· for input 2: an error message « Error 1 »,

· for input 3: an error message « Error 2 ».

· the messages must be displayed when the rising edge of the inputs appears,

· a record of 50 messages will be kept in the object and saved on the disk,

· the messages will be duplicated by a printer connected on « LPT1: »,

· a pushbutton must be used to delete the messages.

Solution:

< « Examples\IRIS2D\screen keyboard 1.agn »

Variation:

Pressing on the pushbutton « Delete the messages » causes the « Do you want to delete messages » dialogue box to open with a choice of YES or NO.

Solution:

< « Examples\IRIS2D\Screen keyboard 2.agn »

12 IRIS 2D examples


12.3 Example of using the « SCREEN KEY » object as a terminal

Example of using the « SCREEN KEY » object as a terminal

Instructions:

Display a message « Enter a value », requires that a decimal value be typed on the keyboard (two characters) then displays that value multiplied by two after the « Result: » text.

Solution:

< « Examples\IRIS2D\terminal 1.agn »

Variation:

The displayed messages are stored in the object and no longer in the processing application.

Solution:

< « Examples\IRIS2D\terminal 2.agn »

12 IRIS 2D examples


12.4 Example of an application composed of multiple pages

Example of an application composed of multiple pages

This example will let you understand how to create an application composed of multiple elements: in this case a menu is used to access two different pages.

< « Examples\IRIS2D\menu.agn »

12 IRIS 2D examples


12.5 Example of using the «OBJECT » object

Example of using the «OBJECT » object

Simulation of a jack.

Instructions:

· jack driven by two o0 outputs (extract the jack) and o1 (retract the jack).

· two limit inputs i0 (jack retracted) and i1 (jack extracted.

Three objects will be used:

· a « Console » object acting as support,

· an « Object » for the jack body,

· an « Object » for the jack shaft.

Solution:

The jack body is an OBJECT object which remains static, only its aspect is configured:

The jack shaft is an OBJECT object configured as follows:

< « Examples\Process Simulation\2D\tutorial1.agn »

Variation:

An intermediate position needs to be added on the jack. We are going to use two supplementary objects for this: a piece attached to the jack shaft which will activate a sensor and a sensor.

To connect the piece activating the sensor to the jack shaft, the jack shaft needs to be associated to an identifier: in the « Identifier » section of the « Links » tab write « 100 ». To connect the piece to the shaft, in the « Horizontal movement, Position» section of the « Links » tab write: « SISTERPARAM(100,STATE) ». This connects the piece with the jack shaft state.

The object used as a sensor is set with parameters as follows:

The result is as follows:

< « Examples\Process Simulation\2D\tutorial2.agn »

Second variation:

A vertical jack attached to the horizontal jack shaft is added. This jack is activated by one output (O2=1 to extract the jack, O2=0 to retract it). Two limits are associated to i3 and i4.

The result is as follows:

< « Examples\Process Simulation\2D\tutorial3.agn »

Two OBJECT objects are added: one for the body of the jack and one for the shaft.

12 IRIS 2D examples


12.6 Example of using the «ARCHIVE» object

Example of using the «ARCHIVE» object

Instructions:

· archive the state of 3 words of the processing application (m31 to m33) every second.

· the state of 4 words will be displayed on a graph left on display for 10 seconds of acquisition.

· 1000 values will be memorized in the object.

· the acquisitions will be archived in a text format « data.txt » file.

Solution:

< « Examples\IRIS2D\archiving »

12 IRIS 2D examples


12.7 Example of using the «PROG » object

Example of using the «PROG » object

Instructions:

· pressing on a pushbutton must cause the inversion of the output states O0 to O99.

Solution:

< « Examples\IRIS2D\program.agn »

12 IRIS 2D examples


12.8 Examples of supervision application 1

Examples of supervision application 1

The following example illustrates the creation of a supervision application. The supervision application displays the state of gates and the level of tanks. The user's actions on the gates will invert the gate state (open or closed). The RUN/STOP state of the application will also be displayed and two pushbuttons will be used to go from RUN to STOP.

The result is as follows:

< « Examples\IRIS2D\supervision 1 »

OBJECT objects will be used to represent the gates. A bitmap file is created to represent the gates: open state (green) and closed state (red):

12 IRIS 2D examples


12.9 Examples of supervision application 2

Examples of supervision application 2

This example illustrates the use of a more evolved OBJECT object. The application displays the state of a gate which can be:

· gate open (commanded opening and open gate sensor true): green,

· gate closed (commanded close and closed gate sensor true): red,

· gate opening in progress (commanded opening and open gate sensor false): blue,

· gate closing in progress (commanded closing and closed gate sensor false): purple.

The user can invert the gate state by clicking on it.

The processing application manages the gate state.

< « Examples\IRIS2D\supervision 2.agn »

12 IRIS 2D examples


12.10 Example of operating part simulation 1

Example of operating part simulation 1

Simulation of a manipulator arm

< « Examples\Process Simulation\2D\manipulator arm.agn »

12 IRIS 2D examples


12.11 Example of operating part simulation 2

Example of operating part simulation 2

Simulation of an elevator

< « Examples\Process Simulation\2D\elevator.agn »

Zone de Texte:

IRIS 2D objects are used to create supervision and simulation applications of 2D operating parts.

12 IRIS 2D examples


13 IRIS 3D references

IRIS 3D references

IRIS 3D allows you to create simulation applications for 3D operational units. The TOKAMAK engine is integrated to IRIS3D to enable a realistic physical simulation: gravity, interactions between objects.

IRIS 3D is used to animate 3D objects using standard model makers: 3D STUDIO, SOLIDWORKS, SOLIDCONCEPTER, etc …

The native format of the files processed by IRIS 3D is « .X » files set by Microsoft's DIRECTX 8.

A « .3DS » to « .X » converter is integrated into the environment.

The CROSSROADS program provided on the autoSIM-200 installation CD-ROM or downloaded from www.SMC.com is used to convert a significant number of 3D files to « .3DS » format.

IRIS 3D is in a window format enclosed in the IRIS 2D console. 3D objects are animated on the console.

Each 3D file represents an object in IRIS 3D. The elements in an operating part must have their own movement and must be represented by separated files. For example, for a jack composed of a body and a shaft, files must be created for the jack body and for the jack shaft.

To create animation of objects in a 3D world, one or more behaviors can be applied to each of the objects. A behavior is composed of an object modification (moving, changing color etc.) and a link with the processing application variables to condition this modification. For example: extract the jack shaft if the output for the processing application is true.

The list of objects is shown in the list. The objects linked to an object are shown as sub-elements if the “Tree structure display” checkbox is checked.

Related Topics
13.1 Creating an IRIS 3D console
13.2 Adding 3D files to the project
13.3 Configuring the objects
13.4 Adding objects to the 3D world
13.5 Removing a 3D file from the resources
13.6 Removing an object from a 3D world
13.7 Importing an “enhanced” object
13.8 Exporting an “Enhanced” object
13.9 Example of creating a 3D simulation based on enhanced objects
13.10 Applying a behavior to an object
13.11 Physical engine
13.12 IRIS 3D example


13.1 Creating an IRIS 3D console

Creating an IRIS 3D console

With the right side of the mouse click on the « Iris » element on the browser and then select « Add an IRIS 3D console ».

Creating an IRIS 3D console

13 IRIS 3D references


13.2 Adding 3D files to the project

Adding 3D files to the project

With the right side of the mouse click on the « Resources» element on the browser and select « Import one or more 3D files » from the menu. Select one or more « .3DS » files. (if your files are not in « .3DS » format, use « CROSSROAD » to convert them).

The IRIS 3D console

13 IRIS 3D references


13.3 Configuring the objects

Configuring the objects

Select « Open the configuration window » from the « Options » menu on the IRIS 3D window.

The IRIS 3D configuration window

13 IRIS 3D references


13.4 Adding objects to the 3D world

Adding objects to the 3D world

By clicking on the [image] element you access the list of 3D objects present in the resources. For example:

By selecting an object on that list and clicking on « Add » you add the selected object to the 3D world. By clicking on « Add all » you add all the objects on the list to the 3D world. The objects you have added will appear on the list in the configuration window.

13 IRIS 3D references


13.5 Removing a 3D file from the resources

Removing a 3D file from the resources

With the right side of the mouse click the 3D file on the browser and select « Delete ». The object needs to be deleted from the 3D world.

13 IRIS 3D references


13.6 Removing an object from a 3D world

Removing an object from a 3D world

Click with the right button of the mouse on the object in the IRIS 3D configuration window and select « Delete from the menu. »

13 IRIS 3D references


13.7 Importing an “enhanced” object

Importing an “enhanced” object

Click on the “Import” button. A browser allows you to select the object to be imported.

The browser for selecting “enhanced” objects

Once the object has been selected, click on “Open”. A parameter window then allows you to define the variables that will be associated with the object.

The window for defining the object’s parameters

In this example (for the cylinder), the cylinder’s piloting variable and the two ends of stroke are to be parameterized. The object is then shown in the 3D world and in the list of objects.

The object’s position and orientation can be modified.

13 IRIS 3D references


13.8 Exporting an “Enhanced” object

Exporting an “Enhanced” object

To export an object, right-click with the mouse on the object and select “Export”. The linked objects and all of the behaviors are saved.

After entering a name for the file, a dialogue box allows you to assign a name to each variable used in the behaviors and to define whether this parameter can be modified or not when it is re-read.

13 IRIS 3D references


13.9 Example of creating a 3D simulation based on enhanced objects

Example of creating a 3D simulation based on enhanced objects

Let’s create a simulation in a couple of clicks for an operational unit: a part destacker.

The pre-defined objects are located in the “i3d” sub-directory of the autoSIM-200 installation directory.

The object is shown in IRIS3D:

This lets us see how to access simplified palettes from “Expert” mode.

With the palette, design a Grafcet with two steps. A right click on the sheet lets you access the link drawing application to loop back the Grafcet.

A right click on the cube store allows you to access the list of variables.

Move the cursor over the action rectangle and left-click.

Repeat this operation to place the “cylinder extended” element on the first transition and “cylinder retracted” on the second.

This is the final result:

You can now click on the “GO” button in the tool bar to launch the application.

This complete example is in the “examples\Process simulation\3D\physical engine” sub-directory with the name “destacker.agn”.

13 IRIS 3D references


13.10 Applying a behavior to an object

Applying a behavior to an object

Click with the right button of the mouse on the object in the IRIS 3D configuration window and select « Add … » from the menu. ».

Related Topics
13 IRIS 3D references
13.10.1 Name of autoSIM-200 variables
13.10.2 Adding a translation
13.10.3 Adding a rotation
13.10.4 Adding a color change
13.10.5 Adding a link
13.10.6 Adding another behavior


13.10.1 Name of autoSIM-200 variables

Name of autoSIM-200 variables

The name of autoSIM-200 variables used in the behaviors are limited to the following syntaxes:

Related Topics
13.10 Applying a behavior to an object
13.10.1.1 Access to boolean variables


13.10.1.1 Access to boolean variables

Access to boolean variables

On: output « n », for example O8, O10,

/On: complement of the output « n », for example /O1, /O15,

In: input « n », for example 10,14,

/In: complement of the input « n », for example /I4, /I56,

Bn: bit « n », for example B100, B200,

/Bn: complement of bit « n », for example /B800, /B100,

The access to bits B is limited to a table of linear bits, a command #B must be used to reserve bits (see the language manual),

Access to numeric variables

Mn: word « n », for example: M200, M300

Fn: float « n », for example: F200,F400

13.10.1 Name of autoSIM-200 variables


13.10.2 Adding a translation

Adding a translation

Properties of a translation

Related Topics
13.10 Applying a behavior to an object
13.10.2.1 Name
13.10.2.2 Axis
13.10.2.3 Type
13.10.2.4 Amplitude and origin
13.10.2.5 Speed
13.10.2.6 Detection


13.10.2.1 Name

Name

The first area is used to enter a generic name for the translation. This name appears in the list of the IRIS 3D configuration window, it is only used for comments and can be left blank.

13.10.2 Adding a translation


13.10.2.2 Axis

Axis

Establishes the dimension to be applied to the translation.

13.10.2 Adding a translation


13.10.2.3 Type

Type

- without driving: no translation, this is used to make a translation inoperable without needing to delete it (to run tests for example)/

- bistable driving: two boolean variables: the translation is driven by two boolean variables: the first drives the translation in one direction (from min to max), the second in the other direction (from max to min).

State of the first variable | State of the second variable | Object
0 | 0 | Immobile
1 | 0 | Translation of min to max
0 | 1 | Translation of max to min
1 | 1 | Immobile

- monostable driving: a boolean variable drives the translation if the variable is true

Variable state | Object
1 | Translation of min to max
0 | Translation of max to min

- numeric driving: the position of the object on the designated axis is equal to the specified numeric variable.

- The “…” button allows an “enhanced” mode to be defined for this type of link:

The content of the numeric variable defines the object’s position. If it is a word the position will be set at the value divided by 100; if it is a long, it will be set at the value divided by 10000; if it is a floating-point, it will be set at the value contained in the floating-point. Min and max define the limits for these values.

The content of the variable defines the position between the min and max values. 0 = min position, 10000 = max position.

The content of the variable gives a speed of displacement ranging from -10000 to 10000.

The content of the variable gives a position to be reached as a percentage of the stroke between min and max: 0 = min position, 100 = max position. The acceleration and deceleration are calculated automatically. The “percentage of movement used...” parameter defines the length of the acceleration and deceleration phases.

Allows a variable to be defined that will receive the position of the object constantly. The variable can be a word, a long, a floating-point or an input (in this case, this input and the next 15 inputs receive the position like an absolute encoder linked on the inputs). The “value in gray code” checkbox allows this value to be obtained like a gray encoder.

The “examples\Process simulation\3D\numerical pilotings” sub-directory contains examples of these different modes.

- SIMULA: the object’s position on the designated axis is given by the content of a variable managed by an SIMULA object. The “…” button allows an enhanced mode to be defined for this type of link:

The variable associated to an SIMULA object defines the position between min and max.

The variable associated to an SIMULA “motor” object modifies the position according to the coefficient (it makes it possible to define the relationship between the rotation speed of the SIMULA motor and the speed with which the position varies).

The “examples\Process simulation\3D\SIMULA piloting” sub-directory contains examples illustrating both these modes.

13.10.2 Adding a translation


13.10.2.4 Amplitude and origin

Amplitude and origin

The « Min » and « Max » areas establish the amplitude and origin of the translation.

13.10.2 Adding a translation


13.10.2.5 Speed

Speed

The stroke time establishes the speed for going from the min point to max point (it is identical to the return speed).

13.10.2 Adding a translation


13.10.2.6 Detection

Detection

This is used to set the sensors for the translations. The min and max sensors manage the limits, the other 4 possible sensors can be used to create intermediate positions.

13.10.2 Adding a translation


13.10.3 Adding a rotation

Adding a rotation

The parameters are completely similar to the translations see chapter Adding a translation . The angles are expressed in radians.

The object rotation center must be set for each object in the IRIS 3D configuration window.

13.10 Applying a behavior to an object


13.10.4 Adding a color change

Adding a color change

Color change

Driveing of a color using a variable must refer to a boolean variable.

The “The same as object...” checkbox allows you to apply the same color as another object.

Controlling a color by a variable must reference a Boolean variable.

Color control can also be performed with an SIMULA variable (associated to an SIMULA indicator object, for example).

If the “do nothing if false” box is checked, no color is applied if the variable’s status is false. This makes it possible to associate several changes of color to a single object if more than 2 colors are needed.

The pull-down lists allow a texture to be selected instead of a color. To have a texture shown in a pull-down list, place the (“.bmp” or “.jpg” file) in the autoSIM-200 project resources.

Related Topics
13.10 Applying a behavior to an object
13.10.4.1 Multiple textures


13.10.4.1 Multiple textures

Multiple textures

It is possible to associate several textures that will be applied automatically. To do this, associate several “Color modification” type behaviors to a single object and document the “Time for multiple texture mode” area with the time at the end of which the texture will be applied automatically. The pre-defined “Conveyor Belt” object uses this technique.

13.10.4 Adding a color change


13.10.5 Adding a link

Adding a link

A link forces an object that this behavior is applied to, to follow the movements of another object.

Links between objects

The link condition can be a boolean variable. The link is unconditional (object always linked) if the condition is left blank.

13.10 Applying a behavior to an object


13.10.6 Adding another behavior

Adding another behavior

This is used to use a sound associated to a condition, or to change a boolean variable to 1 when the user clicks with the right or left side of the mouse on the object the behavior is applied to.

Other behaviors

The elements of the “Sound” group make it possible to play a sound associated to a condition.

The elements of the “User actions” group allow a Boolean variable to be set to 1 when the user clicks with the right or left mouse button on the object that the behavior applies to. The “A right-click on the object anchors the camera” checkbox makes it possible to lock the camera (which defines the display point of view in the IRIS 3D window) on the object that the behavior applies to.

The elements of the “Collision” group make it possible to define a collision test:

- either with one object in particular,

- or with objects having a particular color (a choice of 2 colors is possible).

The “Variable” area can be documented with the name of a Boolean variable that will be set to true if the collision test is true.

The “The object in collision becomes linked with the object if” checkbox makes it possible to link the object that comes into collision with the object to which the behavior is applied. A variable can condition this link. This technique makes it possible to easily handle the simulation of a clamp or suction cup.

The vector allows you to give a speed to an object that comes into collision with the object to which the behavior is applied. The pre-defined “Conveyor Belt” object uses this technique.

13.10 Applying a behavior to an object


13.11 Physical engine

Physical engine

The physical engine makes it possible to handle gravity and the interactions between objects so as to obtain a very realistic simulation. For objects subject to gravity, only block, sphere or capsule shapes are handled by the physical engine.

For each object you can define the type of handling used by the physical engine:

“Not used”: the object is not handled by the physical engine: it is not subject to gravity and does not interact with the other objects.

“Fixed”: an object handled by the physical engine that does not change position but which interacts with the other objects: the housing of a machine, for example.

“Use gravity”: a moving object handled by the physical engine, subject to gravity and interacting with the other objects: a box moving on a conveyor belt, for example. For this type of object, the mass, coefficients of friction and restitution and the primary shape of the object (block, sphere or capsule) have to be defined.

“Moving object”: a moving object handled by the physical engine, which is not subject to gravity and which interacts with the other objects: a cylinder rod pushing objects, for example For this type of object, the coefficients of friction and restitution and the primary shape of the object (block, sphere or capsule) have to be defined.

The “Apply physics” button allows the physical engine to be launched. The “Automatic execution” checkbox automatically launches the physical engine when the autoSIM-200 PC executor is installed.

The “examples\Process simulation\3D\physical engine” sub-directory contains examples illustrating the physical engine being used.

13 IRIS 3D references


13.12 IRIS 3D example

IRIS 3D example

< « Examples\Simulation PO\3D\Scharder.agn »

Zone de Texte: IRIS 3D is used to design simulation applications of 3D operating parts. The objects must be created in a standard model maker and imported in the autoSIM-200 project resources. Behaviors are then applied to the objects to create 3D animations.

Language

13 IRIS 3D references


14 Common elements

Common elements

This chapter describes the common elements for all the languages used in autoSIM-200.

Related Topics
14.1 Variables
14.2 Actions
14.3 Tests
14.4 Use of symbols
14.5 Examples
14.6 Grafcet
14.7 Gemma
14.8 Ladder
14.9 Flow chart
14.10 Literal languages
14.11 Extended literal language
14.12 ST literal language
14.13 Organization chart
14.14 Illustration
14.15 Function blocks
14.16 Evolved function blocks
14.17 Predefined function blocks
14.18 Advanced techniques


14.1 Variables

Variables

The following types of variables are present:

ð boolean type: the variable may have a true (1) or false (0) value.

ð numeric type: the variable may have a numeric value, different from the existing types: 16 bits variables, 32 bits and floating point.

ð time delay type: structured type, it is a combination of a boolean and numeric type.

Starting from version 6 the variable name syntax may be autoSIM-200's or the syntax of IEC standard 1131-3.

Related Topics
14 Common elements
14.1.1 Booleen variables
14.1.2 Numeric variables
14.1.3 Time delay


14.1.1 Booleen variables

Booleen variables

The following table provides a complete list of the Booleen variables used

Type | Syntax autoSIM-200 | Syntax IEC 1131-3 | Comments
Input | I0 to I9999 | %I0 to %I9999 | May or may not correspond to physical input (depending on the I/O configuration of the target).
Output | O0 to O9999 | %Q0 to %Q9999 | May or may not correspond to physical output (depending on the I/O configuration of the target).
System Bits | U0 to U99 | %M0 to %M99 | For information on the system bits see the manual on the environment.
User bits | U100 to U9999 | %M100 to %M9999 | Internal bits for general use.

Grafcet Steps | X0 to X9999 | %X0 to %X9999 | Grafcet step bits
Word bits | M0#0 to M9999#15 | %MW0:X0 à %MW9999:X15 | Word bits: the number of bits is expressed in decimals and is included between 0 (lower weight bits) and 15 (higher weight bits).

14.1 Variables


14.1.2 Numeric variables

Numeric variables

The following table provides a complete list of the numeric variables.

Type | Syntax autoSIM-200 | IEC Syntax 1131-3 | Comments
Counter | C0 to C9999 | %C0 to %C9999 | 16 bit counter, can be initialized, increased, decreased and tested with boolean languages without using literal language.
System Words | M0 to M199 | %MW0 to %MW199 | For information on the system words see the manual on the environment.
User words | M200 to M9999 | %MW200 to %MW9999 | 16 bit words for general use.
Long integer | L100 to L4998 | %MD100 to %MD4998 | Integer value of 32 bits
Float | F100 to F4998 | %MF100 to %MF4998 | Real value of 32 bits (format IEEE).

14.1 Variables


14.1.3 Time delay

Time delay

Time delay is a combined type which groups two boolean variables (launch state, end state) and two numeric variables on 32 bits (procedure and counter).

The following model shows a time chart of time delay functionality:

A time delay procedure value is between 0 ms and 4294967295 ms (a little over 49 days)

The time delay procedure can be modified by the program, see chapter 1.10.3. (instruction STA).

The time delay counter can be read by the program, see chapter 1.10.3. (instruction LDA).

14.1 Variables


14.2 Actions

Actions

Actions are used in:

ð Grafcet language action rectangles,

Légende sans bordure 3: Action

ð flow chart language action rectangles,

Légende sans bordure 3: Action

ð ladder language coils.

Légende sans bordure 3: Action

Related Topics
14 Common elements
14.2.1 Assignment of a boolean variable
14.2.2 Complement assignment of a boolean variable
14.2.3 Setting a boolean variable to one
14.2.4 Resetting a boolean variable
14.2.5 Inverting a boolean variable
14.2.6 Resetting a counter, a word or a long
14.2.7 Incrementing a counter, a word or a long
14.2.8 Decrementing a counter, word or long
14.2.9 Time delays
14.2.10 Interferences among the actions
14.2.11 IEC1131-3 standard actions
14.2.12 Multiple actions
14.2.13 Literal code


14.2.1 Assignment of a boolean variable

Assignment of a boolean variable

The « Assignment » action syntax is:

«boolean variable»

Operation:

ð if the action rectangle or coil command is in a true state then the variable is put at 1 (true state),

ð if the action rectangle or coil command is in a false state then the variable is put at 1 (false state).

Truth table:

Command | Variable state (result)
0 | 0
1 | 1

Example:

If step 10 is active then O0 takes the value of 1, if not O0 takes the value 0.

Various « Assignment » actions can be used for the same variable in one program. In this case, the different commands are combined in « Or » logic.

Example:

 | State of X10 | State of X50 | State of O5
 | 0 | 0 | 0
 | 1 | 0 | 1
 | 0 | 1 | 1
1 |  | 1 | 1

14.2 Actions


14.2.2 Complement assignment of a boolean variable

Complement assignment of a boolean variable

The « Complement assignment » action syntax is:

«N boolean variable»

Operation:

ð if the action rectangle or coil command is in a true state then the variable is reset (false state),

ð if the action rectangle or coil command is in a false state then the variable is set at 1 (true state).

Truth table:

Command | Variable state (result)
0 | 1
1 | 0

Example:

If step 20 is active, then U100 takes the value 0, if not U100 takes the value 1.

Various « Complement assignment » actions can be used for the same variable in one program. In this case, the different commands are combined in « Or » logic.

Example:

State of X100 | State of X110 | State of O20
0 | 0 | 1
1 | 0 | 0
0 | 1 | 0
1 | 1 | 0

14.2 Actions


14.2.3 Setting a boolean variable to one

Setting a boolean variable to one

The « Set to one » syntax is:

«S boolean variable»

Operation:

ð if the action rectangle or coil command is in a true state then the variable is set to 1 (true state),

ð if the action rectangle or coil command is in a false state then the state of the variable is not modified.

Truth table:

Command | Variable state (result)
0 | unchanged
1 | 1

Example:

If step 5000 is active then O2 takes the value of 1, if not O2 keeps the same state.

14.2 Actions


14.2.4 Resetting a boolean variable

Resetting a boolean variable

The « Reset» action syntax is:

«R boolean variable»

Operation:

ð if the action rectangle or coil command is in a true state then the variable is reset (false state),

ð if the action rectangle or coil command is in a false state then the variable state is not modified.

Truth table:

Command | Variable state (result)
0 | unchanged
1 | 0

Example:

If step 6000 is active then O3 takes the value of 0, if not O3 keeps the same state.

14.2 Actions


14.2.5 Inverting a boolean variable

Inverting a boolean variable

The « Inversion » action syntax is:

«I boolean variable»

Operation:

ð if the action rectangle or coil command is in a true state then the variable state is inverted for each execution cycle,

ð if the action rectangle or coil command is in a false state then variable state is not modified.

Truth table:

Command | Variable state (result)
0 | unchanged
1 | inverted

Example:

If step 7000 is active then the state of O4 is inverted, if not O4 keeps the same state.

14.2 Actions


14.2.6 Resetting a counter, a word or a long

Resetting a counter, a word or a long

The « Reset a counter, word or long» syntax is:

«R counter or word»

Operation:

ð if the action rectangle or coil command is in a true state then the counter, word or long is reset,

ð if the action rectangle or coil command is in a false state then the counter, word or long is not modified.

Truth table:

Command | Value of counter, word or long (result)
0 | unchanged
1 | 0

Example:

If step 100 is active then counter 25 is reset, if not C25 keeps the same value.

14.2 Actions


14.2.7 Incrementing a counter, a word or a long

Incrementing a counter, a word or a long

The «Increment a counter » action syntax is:

«+ counter, word or long»

Operation:

ð if the action rectangle or coil command is in a true state then the counter, word or long is incremented for each execution cycle,

ð if the action rectangle or coil command is in a false state then the counter, word or long is not modified.

Truth table:

Command | Counter, word or long value (result)
0 | Unchanged
1 | current value +1

Example:

If step 100 is active then counter 25 is incremented, if not then C25 keeps the same value.

14.2 Actions


14.2.8 Decrementing a counter, word or long

Decrementing a counter, word or long

The « Decrement a counter » action syntax is:

«- counter, word or long»

Operation:

ð if the action rectangle or coil command is in a true state then the counter, word or long is decremented for each execution cycle,

ð if the action rectangle or coil command is in a false state then the counter, word or long is not modified..

Truth table:

Command | Value or counter, word or long (result)
0 | unchanged
1 | current value -1

Example:

If step 100 is active then counter 25 is decreased, if not C25 keeps the same value.

14.2 Actions


14.2.9 Time delays

Time delays

Time delays are considered as boolean variables and can be used with « Assignment », « Complement assignment », « Set to one », « Reset », and « Invert ». The time delay order can be written after the action. The syntax is::

« time delay(duration) »

By default the duration is expressed in tenths of seconds. The letter « S » at the end of the duration indicates that it is expressed in seconds.

Examples:

Step 10 launches a time delay of 2 seconds which remains active as long as the step is. Step 20 sets a time delay of 6 seconds which remains active while step 20 is deactivated.

The same time delay can be used by different places with the same procedure and at different instants. In this case the time delay procedure must only be indicated once.

Note: other syntaxes exist for time delays. See chapter 1.3.3.

14.2 Actions


14.2.10 Interferences among the actions

Interferences among the actions

Certain types of actions cannot be used at the same time on a variable. The table below shows the combinations which cannot be used:

 | Assignment | Complement assignment | Set to one | Reset | Inversion
Assignment | YES | NO | NO | NO | NO
Complement assignment | NO | YES | NO | NO | NO
Set to one | NO | NO | YES | YES | YES
Reset | NO | NO | YES | YES | YES
Inversion | NO | NO | YES | YES | YES

14.2 Actions


14.2.11 IEC1131-3 standard actions

IEC1131-3 standard actions

The table below provides the IEC 1131-3 standard actions which can be used with.

Name | Syntax | Example
Not memorized | No value |
Not memorized | N1 |
Complement not memorized | N0 |
Reset | R |
Set to 1 | S |
Limited in time | LTn/duration |
Time delay | DTn/duration |
Pulse on rising edge | P1 |
Pulse on falling edge | P0 |
Memorized and time delay | SDTn/duration |
Time delay and memorized | DSTn/duration |
Memorized limited in time | SLTn/duration |

14.2 Actions


14.2.12 Multiple actions

Multiple actions

Within the same action rectangle or coil, multiple actions can be written by separating them with « , » (comma).

Example:

Multiple action rectangles (Grafcet and flow chart) or coils (ladder) can be combined. See the chapters on the relative languages for more information.

14.2 Actions


14.2.13 Literal code

Literal code

Literal code can be entered in an action rectangle or coil.

The syntax is:

« { literal code } »

Multiple lines of literal language can be written in braces. A « , » (comma) is also used here to separate them.

Example:

For more information see the chapters « Low level literal language », «Extended literal language » and «ST literal language».

14.2 Actions


14.3 Tests

Tests

Tests are used in:

ð Grafcet language transitions,

Légende sans bordure 3: Test

ð conditions based on Grafcet language action,

Légende sans bordure 3: Test

Légende sans bordure 3: Test

ð Légende sans bordure 3: Test flow chart language tests,

ð ladder language tests.

Légende sans bordure 3: Test

Related Topics
14 Common elements
14.3.1 General form
14.3.2 Test modifier
14.3.3 Time delays
14.3.4 Priority of boolean operators
14.3.5 Always true test
14.3.6 Numeric variable test
14.3.7 Transitions on multiple lines


14.3.1 General form

General form

A test is a boolean equation composed of one or n variables separated by the operators « + » (or) or « . » (and).

Example of a test:

i0 (test input 0)

i0+i2 (test input 0 « or » input 2)

i10.i11 (test input 10 « and » input 11)

14.3 Tests


14.3.2 Test modifier

Test modifier

By default if only the name of one variable is specified, the test is « equal to one» (true). Modifiers make it possible to test the complement state, the rising edge and the falling edge.

ð the character « / » placed before a variable tests the complement state,

ð the character « u » or the character « é * » placed before a variable tests the rising edge

ð the character « d » or the character « ê ** » placed before a variable tests the falling edge

Text modifiers can be applied to one variable or to an expression between parentheses.

Examples:

é i0

/i1

/(i2+i3)

ê(i2+(i4./i5))

14.3 Tests


14.3.3 Time delays

Time delays

Four syntaxes are available for time delays.

In the first the time delay is activated in the action and the time delay is simply mentioned in a test to check the end state:

For the others, everything is written in the test. The general form is:

« time delay /launch variable / duration »

or

« duration / launch variable / time delay »

or

« duration / launch variable »

In this case, a time delay is automatically attributed. The attribution range is that of the automatic symbols.

By default the duration is expressed in tenths of seconds.

The duration can be expressed in days, hours, minutes, seconds, milliseconds with the operators « d », « h », « m », « s » and « ms ». For example: 1d30s = 1 day and 30 seconds.

Example using the second syntax:

Example using the normalized syntax:

14.3 Tests


14.3.4 Priority of boolean operators

Priority of boolean operators

By default the boolean operator «. » (AND) has a greater priority than the operator «+» (OR). Parentheses can be used to set a different priority.

Examples:

i0.(i1+i2)

((i0+i1).i2)+i5

14.3 Tests


14.3.5 Always true test

Always true test

The syntax of an always true test is:

« » (no value) or « =1 »

14.3 Tests


14.3.6 Numeric variable test

Numeric variable test

Numeric variable tests must use the following syntax:

« numeric variable » « test type » « constant or numeric variable »

The test type can be:

ð « = » equal,

ð « ! » or « <> » different,

ð « < » less than (not signed),

ð « > » greater than (not signed),

ð « << » less than (signed),

ð « >> » greater than (signed),

ð « <= » less than or equal to (not signed),

ð « >= » greater than or equal to (not signed),

ð « <<= » less than or equal to (signed),

ð « >>= » greater than or equal to (signed).

A float can only appear with another float or a real constant.

A long can only appear with another long or a long constant.

A word or a counter can only appear with a word, a counter or a 16 bit constant.

Real constants must be followed by the letter « R ».

Long constants (32 bits) must be followed by the letter « L ».

16 or 32 bit integer constants are written in decimal by default. They can be written in hexadecimal (suffix « $ » or « 16# ») or in binary (suffix « % » or « 2# »).

Numeric variable tests are used in equations like boolean variable tests. They can be used with test modifiers as long as they are in parentheses.

Examples:

m200=100

%mw1000=16#abcd

c10>20.c10<100

f200=f201

m200=m203

%md100=%md102

f200=3.14r

l200=$12345678L

m200<<-100

m200>>1000

%mw500<=12

/(m200=4)

ê(m200=100)

/(l200=100000+l200=-100000)

14.3 Tests


14.3.7 Transitions on multiple lines

Transitions on multiple lines

Transition text can be extended to multiple lines. The end of a transition line must be an operator « . » or « + ». A combination of key [CTRL] + [ê] and [CTRL] + [é] makes it possible to move the cursor from one line to another.

14.3 Tests


14.4 Use of symbols

Use of symbols

Symbols make it possible to associate a text to a variable.

Symbols can be used with all the languages.

A symbol must be associated to one and only one variable.

Related Topics
14 Common elements
14.4.1 Symbol syntax
14.4.2 Automatic symbols
14.4.3 Automatic symbol syntax
14.4.4 How does the compiler manage the automatic symbols ?
14.4.5 Range of variable attribution
14.4.6 Fixed-address symbols


14.4.1 Symbol syntax

Symbol syntax

The symbols are composed of:

ð an optional character « _ » (low dash, generally associated with key [8] on the keyboard) which indicates the beginning of the symbol,

ð the name of the symbol,

ð an optional character « _ » (low dash) which indicates the end of the symbol.

The characters « _ » enclosing the symbol names are optional. They must be used if the symbol starts with a digit or an operator (+,-, etc…).

14.4 Use of symbols


14.4.2 Automatic symbols

Automatic symbols

It can be a nuisance to have to set the attribution in each symbol and a variable, particularly if the precise attribution of a variable number is not very important. Automatic symbols are a solution to this problem, they are used to let the compiler automatically generate the attribution of a symbol to a variable number. The type of variable to use is provided in the name of the symbol.

14.4 Use of symbols


14.4.3 Automatic symbol syntax

Automatic symbol syntax

The syntax of automatic symbols is as follows:

_« symbol name » %« variable type »_

« variable type » can be:

I , O or Q, U or M, T, C, M or MW, L or MD, F or MF.

It is possible to reserve multiple variables for a symbol. This is useful for setting tables. In this case the syntax is:

_« symbol name » %« variable »« length »_

«length » represents the number of variables to be reserved.

14.4 Use of symbols


14.4.4 How does the compiler manage the automatic symbols ?

How does the compiler manage the automatic symbols ?

When starting to compile an application, the compiler cancels all the automatic symbols located in the « .SYM » file of the application. Each time the compiler finds an automatic symbol it creates a unique attribution for the symbol based of the variable type specified in the symbol name. The symbol that is then generated is written in the « .SYM » file. If the same automatic symbol is present more than once in an application, it refers to the same variable.

14.4 Use of symbols


14.4.5 Range of variable attribution

Range of variable attribution

By default, an attribution range is set for each type of variable:

Type | Start | End
I or %I | 0 | 9999
O or %Q | 0 | 9999
U or %M | 100 | 9999
T or %T | 0 | 9999
C or %C | 0 | 9999
M or %MW | 200 | 9999
L or %MD | 100 | 4998
F or %MF | 100 | 4998

The attribution range can be changed for each type of variable by using the compilation command #SR« type »=« start », « end »

« type » designates the type of variable, start and end and the new limits to be used.

This command modifies the attribution of automatic variables for the entire sheet where it is written and up to the next « #SR » command.

14.4 Use of symbols


14.4.6 Fixed-address symbols

Fixed-address symbols

The syntax of the automatic symbols is:

_« symbol name » %« variable name »_

For example:

open valve%%q3

Designates a symbol that will be linked to the variable %Q3.

14.4 Use of symbols


14.5 Examples

Examples

To better illustrate this manual we have developed some functional examples with a model of a train as in the diagram below

We have used I/O cards on a PC to pilot this model. The symbols set by the constructor of the model have been saved.

The following symbol file was created:

14 Common elements


14.6 Grafcet

Grafcet

autoSIM-200 supports the following elements:

ð divergences and convergences in « And» and in « Or »,

ð destination and source steps,

ð destination and source transitions,

ð synchronization,

ð setting Grafcets,

ð memorization of Grafcets,

ð fixing,

ð macro-steps.

Related Topics
14 Common elements
14.6.1 Simple Grafcet
14.6.2 Divergence and convergence in « And »
14.6.3 Divergence and convergence in « Or »
14.6.4 Destination and source steps, destination and source transitions
14.6.5 Multiple actions, conditioned actions
14.6.6 Conditional actions, event-based actions
14.6.7 Actions on activation or deactivation of a step
14.6.8 Actions on transition crossing
14.6.9 Synchronization
14.6.10 Grafcet setting
14.6.11 Grafcet forcings (60848 standard)
14.6.12 Macro-steps
14.6.13 Encapsulating steps
14.6.14 Grafcet / Ladder and Grafcet / Flow chars links
14.6.15 Counters


14.6.1 Simple Grafcet

Simple Grafcet

Grafcet line writing involves combined steps and transitions.

The example below illustrates a Grafcet line:

Conditions:

The locomotive needs to leave on track 1 towards the right, up to the end of the track. It returns in the opposite direction to the other end and starts again.

Solution 1:

< examples\grafcet\simple1.agn

Solution 2:

< example\grafcet\simple2.agn

The difference between the two solutions is that the first example uses « Assignment » actions and the second uses « Set to one » and «Reset ».

We change the conditions by setting a delay of 10 seconds when the locomotive arrives to the right of track 1 and a delay of 4 seconds when the locomotive arrives to the left of track 1.

Solution 1:

< example\grafcet\simple3.agn

Solution 2:

< example\grafcet\simple4.agn

The difference between example 3 and 4 is in the choice of syntax used to set the time delays. In terms of operation the result is identical.

14.6 Grafcet


14.6.2 Divergence and convergence in « And »

Divergence and convergence in « And »

Divergences in « And » can have n points. It is important to observe the use of the function blocks:

Légende encadrée 3: Must be a [K] block and not an [L] block Légende encadrée 3: Must be an [M] block and not an [L] block

Légende encadrée 3: Must be a [Q] block and not a [P] block Légende encadrée 3: Must be an [O] block and not a [P] block

A description of the use of divergences and convergences in « And » follows.

Conditions:

We are going to use two locomotives: the first makes round trip journeys on track 1, the second on track 3. The two locomotives are synchronized (they wait at the end of the track).

Solution 1:

< example\grafcet\divergence et 1.agn

Solution 2:

< example\grafcet\divergence and 2.agn

The two solutions are equivalent in terms of operation. The second is a more compact version which uses conditioned actions.

14.6 Grafcet


14.6.3 Divergence and convergence in « Or »

Divergence and convergence in « Or »

Divergences in « Or » can have n points. It is important to observe the use of the function blocks:

or

or

Divergences in « Or » must connect on descending links. For example:

incorrect, the right drawing is:

If the width of the page prevents you from writing a large number of divergences you can use the following type of structure:

The following is an example to illustrate the use of divergences and convergences in « Or »:

Conditions:

Let's look at the conditions for the first example in the chapter: roundtrip of a locomotive on track 1.

Solution:

< example\grafcet\divergence or.agn

This Grafcet could be restated in a step using conditioned actions as in this example:

< example\grafcet\conditional action.agn

14.6 Grafcet


14.6.4 Destination and source steps, destination and source transitions

Destination and source steps, destination and source transitions

The principles are illustrated in the examples below:

Conditions:

Let's look at the second example in this chapter: round trip of a locomotive on track 1 with a delay at the end of the track.

Solution:

< example\grafcet\destination and source steps.agn

14.6 Grafcet


14.6.5 Multiple actions, conditioned actions

Multiple actions, conditioned actions

We have already used multiple and conditioned actions in this chapter. The two principles are described in detail below.

As described in the chapter dedicated to the compiler, multiple actions can be written in the same rectangle, by entering the character « , » (comma) as a separator.

When a condition is added to an action rectangle, all of the actions which continue in the rectangle are conditioned.

Multiple actions rectangles can be associated to a step.

another possibility:

Each of the rectangles can receive a different condition:

14.6 Grafcet


14.6.6 Conditional actions, event-based actions

Conditional actions, event-based actions

To design a conditional or event-based action, place the cursor over the action rectangle, right-click with the mouse and select “Conditional action” or event-based action from the menu. To document the condition on action, click on the element [image] or [image] or [image] .

The IF (condition) syntax allows a condition on action to be written in the action rectangle.

For example:

14.6 Grafcet


14.6.7 Actions on activation or deactivation of a step

Actions on activation or deactivation of a step

The [image] and [image] symbols make it possible to specify that the actions contained in a rectangle have to be performed once at the activation or deactivation of the step respectively. For example:

Increment counter 5 once at the activation of step 20.

14.6 Grafcet


14.6.8 Actions on transition crossing

Actions on transition crossing

The [image] and [image] symbols make it possible to define actions on transition crossing. For example:

%Q0 will be activated on crossing the transition between steps 10 and 20.

14.6 Grafcet


14.6.9 Synchronization

Synchronization

Let's return to a previous example to illustrate Grafcets synchronization.

Conditions:

Round trip of two locomotives on tracks 1 and 3 with a delay at the end of the track.

This example was used with a divergence in « And ».

Solution 1:

< example\grafcet\synchro1.agn

Solution 2:

< example\grafcet\synchro2.agn

The second is an excellent example of how to complicate the simplest things for teaching purposes.

14.6 Grafcet


14.6.10 Grafcet setting

Grafcet setting

The compiler regroups the steps based on the links established within them. To draw a Grafcet, just refer to one of the steps making up that Grafcet.

It is also possible to draw all of the Grafcets present on a sheet by mentioning the name of the sheet.

For example:

To draw a Grafcet we use Grafcet 200, Grafcet 201 or Grafcet 202.

Thus the Grafcet of all the steps becomes a structured type variable. made up of n steps, each of these steps, being either active or idle.

As we have seen, autoSIM-200 divides the steps into independent groups. These groups can be regrouped, making it possible to consider them as a single Grafcet. To regroup multiple Grafcets, the compilation command « #G:g1,g2 » (command to be included in a comment) must be used. This command regroups the Grafcets g1 and g2. Remember that the designation of a Grafcet is affected by mentioning the number of one of its steps.

Here is an example:

#G:105,200

this compilation command regroups the two Grafcets:

Note:multiple « #G » commands can be used to regroup more than two Grafcets.

We are now going to describe the useable setting orders. They are simply written inside the action rectangles as normal assignments. They also support the operator S(set to one), R(reset), N(complement assignment) and I(Inversion) as well as conditional actions.

Related Topics
14.6 Grafcet
14.6.10.1 Grafcet setting according to a list of active steps
14.6.10.2 Memorization of a Grafcet state
14.6.10.3 Setting a Grafcet from a memorized state
14.6.10.4 Fixing a Grafcet


14.6.10.1 Grafcet setting according to a list of active steps

Grafcet setting according to a list of active steps

Syntax:

« F<Grafcet>:{<list of active steps>} »

or

« F/<sheet name>:{<list of active steps>} »

The Grafcet/s thus designated will be set to the state established for the list of active steps if they are within braces. If multiple steps need to be active they need to be separated with a « , » (comma). If the Grafcet/s need to be set to an idle state (not active step) then no step should be present within the braces.

The number of steps may be preceded by an « X ». It is also possible to associate a symbol to the name of a step.

Examples:

« F10:{0} »

set all the steps of Grafcet 10 to 0 except step 0 which will be set to 1.

« F0:{4,8,9,15} »

sets all the steps of Grafcet 0 to 0 except steps 4,8,9 and 15 which will be set to 1.

« F/normal run:{} »

sets all the Grafcets on the « normal run » sheet to an idle state.

14.6.10 Grafcet setting


14.6.10.2 Memorization of a Grafcet state

Memorization of a Grafcet state

Current state of a Grafcet:

Syntax:

« G<Grafcet>:<bit N°> »

or

« G/<sheet name>:<bit N°> »

This command memorizes the state of one or more Grafcets in a series of bits. It is necessary to reserve a storage space for the state of the Grafcet/s (one bit per step). These storage bits must be consecutive. You must use the #B command to reserve a linear bit space.

The step number designating the Grafcet can be preceded by an « X » . It is also possible to associate a symbol to a step name. The bit number can be preceded by « U » or « B ». A symbol can be associated to the first bit of the state storage area.

Particular Grafcet state:

Syntax:

« G<Grafcet>:<Bit N°> {list of active steps} »

or

« G/<sheet name>:<Bit N°> {list of active steps} »

This command memorizes the state set for the list of active steps applied to the specified Grafcets starting with the indicated bit. Also here it is necessary to reserve a sufficient number of bits. If an idle situation needs to be memorized then no steps should appear between the braces.

The step number can be preceded by an « X » . It is also possible to associate a symbol to a step name. The bit number can be preceded by « U » or « B ». A symbol can be associated to the first bit of the state storage area.

Examples:

« G0:100 »

memorizes the current state of Grafcet 0 starting from U100.

« G0:U200 »

memorizes the idle state of Grafcet 0 starting from U200.

« G10:150{1,2} »

memorizes the state of Grafcet 10, in which only steps 1 and 2 are active, starting from U150.

« G/PRODUCTION:_SAVE PRODUCTION STATE_ »

memorizes the state of the Grafcets on the « PRODUCTION » spreadsheet in the_SAVE PRODUCTION STATE_ variable.

14.6.10 Grafcet setting


14.6.10.3 Setting a Grafcet from a memorized state

Setting a Grafcet from a memorized state

Syntax:

« F<Grafcet>:<Bit N°> »

or

« F/<sheet name>:<Bit N°> »

Sets the Grafcet/s with a memorized state to start from the specified bit.

The step number designated by the Grafcet can be preceded by an « X » . It is also possible to associate a symbol to a step name. The bit number can be preceded by « U » or « B ». A symbol can be associated to the first bit of the state storage area.

Example:

« G0:100 »

memorizes the current state of Grafcet 0

« F0:100 »

and resets that state

14.6.10 Grafcet setting


14.6.10.4 Fixing a Grafcet

Fixing a Grafcet

Syntax:

« F<Grafcet> »

or

« F/<sheet name> »

Fixes a Grafcet/s: no evolution of these is permitted.

Example:

« F100 »

fixes Grafcet 100

« F/production »

fixes the Grafcets on the « production » sheet

An illustration of setting is shown in the example below.

Conditions:

Let's look at a previous example: the round trip of two locomotives on tracks 1 and 3 (this time with no delay between the locomotives) and let's add an emergency stop. When the emergency stop is detected all the outputs are cleared. When the emergency stop disappears the program should start where it stopped.

Solution 1:

< example\grafcet\force1.agn

Note the use of command #B104 which makes it possible to reserve four consecutive bits (U100 to U103) to memorize the state of the two Grafcets. « _emergency stop_ » was associated to a bit (U1000). Its state can thus be modified starting from the environment by clicking below when the dynamic display is active.

Solution 2:

< example\grafcet\force2.agn

This second solution shows the use of the compilation command « #G » which makes it possible to regroup the Grafcets with setting command.

14.6.10 Grafcet setting


14.6.11 Grafcet forcings (60848 standard)

Grafcet forcings (60848 standard)

This standard defines the forcing orders in double action rectangles. Forcing actions are executed when the associated condition, step or logical diagram, is true. Conditions can be added on the double action rectangles: condition on action, event-based action, action on activation or deactivation.

Related Topics
14.6 Grafcet
14.6.11.1 Forcing a Grafcet according to a list of active steps
14.6.11.2 Forcing a Grafcet to its initial state
14.6.11.3 Freezing a Grafcet


14.6.11.1 Forcing a Grafcet according to a list of active steps

Forcing a Grafcet according to a list of active steps

The syntax is:

G<grafcet to be forced>{<list of steps to be forced when true>}

The step(s) included in the list are forced to true, the other to false. An empty list of steps causes all the steps to be forced to false.

Example:

Here 10 represents the Grafcet to be forced: Grafcet containing step 10.

Another example:

Force all of the Grafcets on the sheet named “sheet to be forced”, with steps 100, 200 and 300 being set to true and the others set to 0.

Related Topics
14.6.11 Grafcet forcings (60848 standard)


14.6.11.2 Forcing a Grafcet to its initial state

Forcing a Grafcet to its initial state

The syntax is:

G<grafcet to be forced>{INIT}

The Grafcet(s) are forced to their initial state

Example:

Related Topics
14.6.11 Grafcet forcings (60848 standard)


14.6.11.3 Freezing a Grafcet

Freezing a Grafcet

The syntax is:

G<grafcet to freeze>{*}

Example:

Related Topics
14.6.11 Grafcet forcings (60848 standard)


14.6.12 Macro-steps

Macro-steps

autoSIM-200 implements macro-steps.

Additional information is given below:

A macro-step MS is the single representation of single group of steps and transitions called « MS expansion».

A macro-step obeys the following rules:

ð an MS expansion involves a special step called input step and a special step called output step.

ð the input step has the following property: complete clearing of a transition upstream from the macro-step, it activates the input step of its expansion.

ð the output step has the following property: it is involved in the validation of transitions downstream from the macro-step.

ð if outside the transitions upstream and downstream from the MS, there is no input structural connection, on one side with a step or transition of the MS expansion and on the other side, a step or a transition is not part of MS.

The use of a macro-step with autoSIM-200 is set as follows:

ð the expansion of a macro-step is a Grafcet if it is on a distinct sheet,

ð the input step of the macro-step expansion must bear the number 0 or the reference Exxx, (with xxx = any number),

ð the output step of a macro-step expansion must bear the number 9999 or the reference Sxxx, with xxx = any number,

ð aside from these two requirements, a macro-step expansion can be any Grafcet and as such can contain macro-steps.

Related Topics
14.6 Grafcet
14.6.12.1 How can a macro-step be set ?


14.6.12.1 How can a macro-step be set ?

How can a macro-step be set ?

The symbol [image] must be used. To obtain this symbol, click on an empty space on the sheet and select « Add …/Macro-step » from the menu. To open the menu click on the bottom of the sheet with the right side of the mouse.

To set a macro-step expansion, create a sheet, designate the expansion and assign the sheet properties (by clicking with the right side of the mouse on the name of the sheet in the browser). Record the type of sheet on «Macro-step expansion » and the number of the macro-step.

In run mode it is possible to display a macro-step expansion. To do so place the cursor on the macro-step and click on the left side of the mouse.

Notes:

ð user steps and bits used in a macro-step expansion are local, this means that they have no connection with the steps and bits of other Grafcets. All the other types of variables do not have this characteristic: they are common for all levels.

ð if an area of bits needs to be used in an overall method it is necessary to state this using the command « #B ».

ð assignment of non-local variables for different levels or different expansions is not managed by the system. In other words, it is necessary to use the assignments « S » « R » or « I » to ensure that the system operates correctly..

Let's use one of our previous examples to illustrate the use of macro-steps: a round trip voyage of a train on track 1 with a delay at the end of the track. We have broken down the legs of the trip into two separate macro-steps.

Solution:

< example\grafcet\macro steps.agn

14.6.12 Macro-steps


14.6.13 Encapsulating steps

Encapsulating steps

Introduced in standard 60848, encapsulating steps are an evolution of the ideas proposed in macro-steps.

Using encapsulating steps under autoSIM-200 is defined as follows:

ð the encapsulation is located in a separate sheet.

Related Topics
14.6 Grafcet
14.6.13.1 How do you define an encapsulating step?
14.6.13.2 How do you define an encapsulation?


14.6.13.1 How do you define an encapsulating step?

How do you define an encapsulating step?

The [image] or [image] symbol have to be used. To place this symbol, right-click with the mouse on an empty part of the sheet and select “Plus.../Encapsulating step” in the contextual menu.

14.6.13 Encapsulating steps


14.6.13.2 How do you define an encapsulation?

How do you define an encapsulation?

To define the encapsulation, create a sheet, design the encapsulation and modify the properties of the sheet (by right-clicking with the mouse on the name of the sheet in the browser). Set the sheet type to “Encapsulation” as well as the encapsulating step number.

The [image] symbol allows the initial state to be defined for an encapsulation.

An encapsulation can be viewed in execution mode. To do this, you need to place the cursor over the encapsulating step and left-click with the mouse.

Notes:

ð The User bits and steps used in an encapsulation are local, i.e. they are not related to the bits and steps of other Grafcet levels. This is not the case for all the other types of variable: they are common to all the levels. You can, for example, use word bits as global variables.

ð The encapsulated steps can be embedded.

ð The Xn/Xm or %Xn/%Xm syntax allows you to reference step m contained in the encapsulation associated to step n.

Example :

main program

< examples\grafcet\encapsulation 2.agn

14.6.13 Encapsulating steps


14.6.14 Grafcet / Ladder and Grafcet / Flow chars links

Grafcet / Ladder and Grafcet / Flow chars links

Links can be defined with Grafcet step variables:

GRAFCET++: the [image] block can be used to wire a transition like a ladder circuit. The Grafcet steps can be wired as the start of a contact.

Grafcet / ladder example:

< examples\grafcet\grafcet++2.agn

Grafcet / flow chart example:

< examples\grafcet\grafcet++.agn

14.6 Grafcet


14.6.15 Counters

Counters

We are going to use an example to describe the use of counters.

Conditions:

A locomotive must make 10 round trip journeys on track 1, stop for fifteen seconds and start again.

Solution:

< Example\grafcet\compteur.agn

14.6 Grafcet


14.7 Gemma

Gemma

autoSIM-200 implements the Grafcet description of run mode management in a Gemma form. The main feature is an editing method open to the Grafcet mode. It is possible to go from the Grafcet editing mode to the Gemma editing mode. The translation of a Gemma into a Grafcet run mode management is therefore automatic and immediate..

Related Topics
14 Common elements
14.7.1 Creating a Gemma
14.7.2 ontent of Gemma rectangles
14.7.3 Obtaining a corresponding Grafcet
14.7.4 Printing Gemma
14.7.5 Exporting Gemma
14.7.6 Example of Gemma


14.7.1 Creating a Gemma

Creating a Gemma

To create gemma proceed as follows:

ð click on « Sheet » on the browser with the right side of the mouse and select the command « Add a new sheet»,

ð from the list of sizes select « Gemma »,

ð click on « OK »,

ð use the right side of the mouse to click on the sheet name created on the browser,

ð select properties « Proprieties » from the menu,

ð check « Display Gemma form ».

The window will contain a Gemma where all the links are gray. To validate a rectangle or a connection click on it with the right side of the mouse.

To edit the contents of a rectangle or the type of connection click on it with the left side of the mouse.

The contents of Gemma rectangles will be placed in the Grafcet action rectangles. The type of connection will be placed in the Grafcet transitions.

14.7 Gemma


14.7.2 ontent of Gemma rectangles

ontent of Gemma rectangles

Gemma rectangles can receive any action used by Grafcet. Because this involves setting a structure for managing run and stop modes, it is a good idea to use the lowest level setting orders for Grafcet, see chapter 1.6.7. .

14.7 Gemma


14.7.3 Obtaining a corresponding Grafcet

Obtaining a corresponding Grafcet

Check "Display Gemma form" again in sheet properties to call up a Grafcet representation. It is always possible to call up a Gemma representation because the Grafcet structure has not been changed. The transitions, the action rectangle contents and comments can be edited with automatic updating of Gemma.

Deleting blank spaces in Grafcet

It is possible that the obtained Grafcet occupies more space than necessary on the page. The command « Change page layout » from the « Tools » menu makes it possible to eliminate all the unused spaces.

14.7 Gemma


14.7.4 Printing Gemma

Printing Gemma

When editing is in Gemma mode use the « Print » command to print the Gemma.

14.7 Gemma


14.7.5 Exporting Gemma

Exporting Gemma

Use the « Copy to EMF format » in the « Editing » menu to export a Gemma to a vectorial form.

14.7 Gemma


14.7.6 Example of Gemma

Example of Gemma

A description of how to use Gemma is below..

Conditions:

Imagine a panel with the following pushbuttons: « start cycle », « end cycle » and « emergency stop » a light « INIT ».

The main program will consist of a locomotive making round trip journeys on track 1.

Solution:

(editing with Grafcet form)

< example\gemma\gemma.agn

14.7 Gemma


14.8 Ladder

Ladder

Ladder language, also called contact model, is for graphically describing boolean equations. To create a logical function « And » it is necessary to write contacts in series. To write an « Or » function it is necessary to write contacts in parallel.

« And » function

« Or » function

The content of contacts must comply with the syntax established for the tests which is explained in the «Common elements» chapter of this manual.

The content of the coils must comply with the syntax established for the actions which is also explained in the «Common elements » chapter of this manual.

Related Topics
14 Common elements
14.8.1 Example of Ladder


14.8.1 Example of Ladder

Example of Ladder

Let's start with the simplest example.

Conditions:

Round trip of a locomotive on track 1.

Solution 1:

< Example\ladder\ladder1.agn

Solution 2:

< Example\ladder\ladder2.agn

The second solution is identical from an operational point of view. It is used to display the use of a self-controlled variable.

Let's make our example more complex.

Conditions:

The locomotive must stop for 10 seconds to the right of track 1 and 4 seconds to the left.

Solution:

< Example\ladder\ladder3.agn

A final example, even a little more complicated

Conditions:

Again a locomotive which makes round trips on track 1. For each 10 round trips it must stop for 15 seconds.

Solution:

< Example\ladder\ladder4.agn

14.8 Ladder


14.9 Flow chart

Flow chart

autoSIM-200 implements flow chart language in the following way:

ð use of a special block called « assignment block », this block separates the action area and test area, it has the following form [image] and is associated with key [0] (zero),

ð it uses the functions« No », « And » and « Or »,

ð it uses action rectangles to the right of the action block.

Flow chart language is used for graphically writing boolean equations.

The test content must comply with the syntax established in the « Common elements » chapter in this manual.

The content of action rectangles must comply with the syntax for actions, also described in the « Common elements » chapter of this manual.

Légende encadrée 3: « Test » Area

Related Topics
14 Common elements
14.9.1 Drawing flow charts
14.9.2 Example of a flow chart


14.9.1 Drawing flow charts

Drawing flow charts

Related Topics
14.9 Flow chart
14.9.1.1 Number of input of functions « And » and « Or »
14.9.1.2 Chaining the functions
14.9.1.3 Multiple actions


14.9.1.1 Number of input of functions « And » and « Or »

Number of input of functions « And » and « Or »

The « And » and « Or » functions are respectively composed of a block [image] (key [2]) or a block [image] (key [3]), and possible blocks [image] (key [4]) for adding inputs to blocks and finally block [image] (key [5]).

The functions « And » and « Or » thus involve a minimum of two inputs..

14.9.1 Drawing flow charts


14.9.1.2 Chaining the functions

Chaining the functions

The functions can be chained.

14.9.1 Drawing flow charts


14.9.1.3 Multiple actions

Multiple actions

Multiple action rectangles can be associated to a flow chart after the assignment block..

or

14.9.1 Drawing flow charts


14.9.2 Example of a flow chart

Example of a flow chart

Let's start with the simplest example:

Conditions:

Roundtrip of a locomotive on track 1.

Solution 1:

< Example\flow chart\logigramme1.agn

Solution 2:

< Example\flow chart\logigramme2.agn

The second solution is identical from an operational point of view. It is used to display the use of a self-controlled variable.

Let's make the example more complex.

Conditions:

The locomotive must stop for 10 seconds to the right of track 1 and 4 seconds to the left.

Solution:

< Example\flow chart\logigramme3.agn

Note the reuse of the «And» block in the lower part of the example towards the inputs « _t1d_ » and « _t1i_ ». This prevents having to write the two tests a second time.

A final example a bit more complicated.

Conditions:

Again a locomotive which makes round trips on track 1. Each 10 round trips it must stop for 15 seconds.

Solution:

< Example\flow chart\logigramme4.agn

14.9 Flow chart


14.10 Literal languages

Literal languages

This chapter describes the use of the three forms of literal language which are available in autoSIM-200:

ð low level literal language,

ð extended literal language,

ð IEC 1131-3 standard ST literal language

Related Topics
14 Common elements
14.10.1 How is a literal language used?
14.10.2 Setting a code box
14.10.3 Low level literal language
14.10.4 Macro-instruction
14.10.5 Libraries
14.10.6 Pre-defined macro-instructions
14.10.7 Description of pre-defined macro-instructions
14.10.8 Example of low level literal language


14.10.1 How is a literal language used?

How is a literal language used?

Literal language can be used in the following forms:

ð code files associated to an action (Grafcet, Ladder, flow chart),

ð code boxes associated to an action (Grafcet, flow chart),

ð literal code in action rectangle or coil (Grafcet, Ladder, flow chart),

ð code boxes used in the form of an organizational chart (see the «Organizational chart » chapter),

ð code files which support the function block functionality (see the « Function blocks » chapter),

ð code files which support a macro-instruction functionality see chapter 1.10.4. Macro-instruction .

Related Topics
14.10 Literal languages
14.10.1.1 Code box associated with a step or flow chart
14.10.1.2 Literal code in an action rectangle or coil


14.10.1.1 Code box associated with a step or flow chart

Code box associated with a step or flow chart

A code box associated with an action is for being able to write lines of literal language on an application page.

Examples:

The code used above is scanned as long as the action is true.

It is possible to use the action rectangles and code boxes together.

Example:

Related Topics
14.10.1 How is a literal language used?


14.10.1.2 Literal code in an action rectangle or coil

Literal code in an action rectangle or coil

The characters « { » and « } » are used to directly enter instructions in literal language into an action rectangle (Grafcet and flow chart languages). The character« , » (comma) is used as a separator if multiple instructions are present in « { » and « } ».

This type of entry can be used with conditional orders.

Examples:

Related Topics
14.10.1 How is a literal language used?


14.10.2 Setting a code box

Setting a code box

To create a code box, follow the steps below:

ð click on an empty space on the sheet with the right side of the mouse,

ð select « Add … / Code box » from the menu,

ð click on the edge of the code box to edit its contents.

To exit the code box after editing click on [Enter] or click outside it.

14.10 Literal languages


14.10.3 Low level literal language

Low level literal language

This chapter describes the use of low level literal language. This language is an intermediate code between the evolved languages of Grafcet, flow chart, ladder, organizational chart, function block, extended literal, ST literal and executable languages. It is also know as pivot code. Post-processors translate low level literal language into executable code for the PC, automate or microprocessor card.

Literal language can also be used for an application in order to effect various boolean, numeric or algebraic operations.

Low level literal language is an assembler type language. It uses the idea of an accumulator for numeric treatment.

Extended literal language and ST literal language described in the following chapters, offer a simplified and higher level alternative for writing programs in literal language.

The general syntax for a line of low level literal language is:

«action » [[ [« Test »] « Test » ]...]

The actions and tests of low level literal language are represented by mnemonics formed of three letters. An instruction is always followed by an expression: variable, constant etc.

A line is composed of a single action and possibly a test. If a line only includes an action, then the instruction is always executed.

Related Topics
14.10 Literal languages
14.10.3.1 Variables
14.10.3.2 Accumulators
14.10.3.3 Flags
14.10.3.4 Addressing modes
14.10.3.5 Tests
14.10.3.6 Comments
14.10.3.7 Numbering base
14.10.3.8 Presettings
14.10.3.9 Indirect addressing
14.10.3.10 Address of a variable
14.10.3.11 Jumps and labels
14.10.3.12 Function list by type


14.10.3.1 Variables

Variables

The variables used are the same as those described in the « Common elements » chapter.

14.10.3 Low level literal language


14.10.3.2 Accumulators

Accumulators

Some instructions use an accumulator. The accumulators are internal registers which execute the final program and make it possible to temporarily store values.

There are three accumulators: a 16 bit accumulator known as AAA, a 32 bit accumulator known as AAL and a float accumulator known as AAF.

14.10.3 Low level literal language


14.10.3.3 Flags

Flags

Flags are boolean variables which are positioned based on the result of numeric operations.

There are four permanent flags to test the result of a calculation. These four indicators are:

ð carry indicator C:it indicates if an operations has generated a carry figure (1) or not (0),

ð zero indicator Z:it indicates if an operations has generated a nil result (1) or not nil (0),

ð sign indicator S: it indicates if an operation has generated a negative result (1) or positive one (0),

ð overflow indicator O: it indicates if an operation has generated an overflow (1).

14.10.3 Low level literal language


14.10.3.4 Addressing modes

Addressing modes

Low level literal language has 5 addressing modes. An addressing mode is a characteristic associated to each literal language instruction.

Addressing modes used appear below:

TYPE | SYNTAX | EXAMPLE
Immediate 16 bits | {constant} | 100
Immediate 32 bits | {constant}L | 100000L
Immediate float | {constant}R | 3.14R
Absolute | {variable} {variable reference} | O540
16 bit accumulator | AAA | AAA
32 bit accumulator | AAL | AAL
Float accumulator | AAF | AAF
Indirect | {variable}{(word reference)} | O(220)
Label | :{label name}: | :loop

Thus an instruction has two characteristics: the type of variable and the addressing mode. Certain instructions support or do not support certain addressing modes and certain variable types. For example, an instruction may only apply to two words and not to other types of variables.

Note: Variables X and U can not be associated to an indirect address due to the non-linear nature of their assignments. If it is necessary to access a U variable table then a command #B must be used to make a table of linear bits.

14.10.3 Low level literal language


14.10.3.5 Tests

Tests

Tests that can be associated to instructions are composed of a mnemonic, a type of test and a variable.

Test mnemonics are used to set combination tests on multiple variables (and, or). If a test is composed of a single variable, an AND operator needs to be associated to it.

There are only three test mnemonics:

AND and
ORR or
EOR end or

Here are some examples of equivalencies in boolean equations and low level literal language:

o0=i1 : and i1

o0=i1.i2 : and i1 and i2

o0=i1+i2 : orr i1 eor i2

o0=i1+i2+i3+i4 : orr i1 orr i2 orr i3 eor i4

o0=(i1+i2).(i3+i4) : orr i1 eor i2 orr i3 eor i4

o0=i1.(i2+i3+i4) : and i1 orr i2 orr i3 eor i4

o0=(i1.i2)+(i3.i4) ; impossible to translate directly,

; intermediate variables

; must be used:

equ u100 and i1 and i2

equ u101 and i3 and i4

equ o0 orr u100 eor u101

Test modifiers make it possible to test things other than the truth of a variable:

ð / no

ð # rising edge

ð * falling edge

ð @ immediate state

Notes:

ð boolean variables are updated after each execution cycle. In other words, if a binary variable is positioned at a state during a cycle, then its new state will be detected during the following cycle. The text modifier @ makes it possible to obtain the real state of a boolean variable without waiting for the following cycle.

ð test modifiers cannot be used with numeric tests.

Examples:

set o100

equ o0 and @o100 ; true test of the first cycle

equ o1 and o100 ; true test at the second cycle

Only two addressing modes are available for tests: absolute and indirect

A test for counters, words, longs and floating points is available:

Syntax:

« {variable} {=, !, <, >, << , >>} {constant or variable} »

= equal,

! different,

< less than not signed,

> greater than not signed,

<< less than signed,

>> greater than signed,

By default, constants are written in decimals. The suffixes « $ » and « % » are used for writing in hexadecimal or binary. The quotation marks are for writing in ASCII.

32 bit constants must be followed by the letter « L ».

Real constants must be followed by the letter « R ».

A word or a counter can be compared to a word, a counter of a 16 bit constant..

A long can be compared to a long or a 32 bit constant.

A float can be compared to a float or a real constant.

Examples:

and c0>100 and m225=10

orr m200=m201 eor m202=m203 and f100=f101 and f200<f203

orr m200<<-100 eor m200>>200

and f200=3.14r

and l200=$12345678L

and m200=%1111111100000000

14.10.3 Low level literal language


14.10.3.6 Comments

Comments

Comments need to start with the character « ; » (semi-colon), all the characters after it are ignored.

14.10.3 Low level literal language


14.10.3.7 Numbering base

Numbering base

The values (variable references or constants) can be written in decimal, hexadecimal, binary or ASCII.

The following syntax must be applied for 16 bit constants:

ð decimal:possibly the character « - » plus 1 to 5 digits « 0123456789 »,

ð hexadecimal: the prefix « $ » or « 16# » followed by 1 to 4 digits « 0123456789ABCDEF »,

ð binary: the prefix « % » or « 2# » followed by 1 to 16 digits « 01 »,

ð ASCII: the character « " » followed by 1 or 2 characters followed by « " ».

The following syntax must be applied for 32 bit constants:

ð Decimal: possibly the character « - » plus 1 to 10 digits « 0123456789 »,

ð Hexadecimal: the prefix « $ » or « 16# » followed by 1 to 8 digits « 0123456789ABCDEF »,

ð Binary: the prefix « % » or « 2# » followed by 1 to 32 digits « 01 »,

ð ASCII: the character « " » followed by 1 to 4 characters followed by « " ».

The following syntax must be applied for real constants:

[-] i [[.d] Esx]

i is the whole part

of a decimal part

s possible sign of an exponent

x possible exponent

14.10.3 Low level literal language


14.10.3.8 Presettings

Presettings

A presetting is used to fix the value of a variable before starting the application.

The variables T or %T, M or %MW, L or %MD and F or %F can be preset.

The syntax is as follows:

« $(variable)=constant{,constant{,constant...}} »

For time delays the variable must be written in decimal and be included between 0 and 65535.

For words the following syntax must be used:

ð Decimal: possibly the character « - » plus 1 to 5 digits « 0123456789 »,

ð Hexadecimal: the prefix « $ » or « 16# » followed by 1 to 4 digits « 0123456789ABCDEF »,

ð Binary: the prefix « % » or « 2# » followed by 1 to 16 digits « 01 »,

ð ASCII: (two characters per word) the character « " » followed by n characters followed by « " »,

ð ASCII: (one character per word) the character « ’ » followed by n characters followed by « ’ ».

For longs the following syntax must be used:

ð Decimal: possible the character « - » plus 1 to 10 digits « 0123456789 »,

ð Hexadecimal: the prefix « $ » or « 16# » followed by 1 to 8 digits « 0123456789ABCDEF »,

ð Binary: the character « % » or « 2# » followed by 1 to 32 digits « 01 »,

ð ASCII: (four characters per long) the character « " » followed by n characters followed by « " »,

ð ASCII: (one character per long) the character « ’ » followed by n characters followed by « ’ »

For floats the value must be written in the following form:

[-] i [[.d] Esx]

i is the whole part

d a possible decimal part

s a possible exponent sign

x a possible exponent

Examples:

$t25=100

fixes the time delay order 25 at 10 s

$MW200=100,200,300,400

places the values 100,200,300,400 in the words 200, 201, 202, 203

$m200="ABCDEF"

places the string « ABCDEF » starting from m200 (« AB » in m200, « CD » in m201, « EF » in m202)

$m200=‘ABCDEF’

places the string « ABCDEF » starting from m200, each word receives a character

$f1000=3.14

places the value 3,14 in f1000

$%mf100=5.1E-15

places the value 5,1 * 10 exponent -15 in %mf100

$l200=16#12345678

places the value 12345678 (hexa) in the long l200

It is easier to write text in the presettings.

Example:

$m200=" Stop the gate N°10 "

Places the message starting from word 200 by placing two characters in each word.

$m400=‘ Motor fault ‘

Places the message starting from word 400 by placing a character in the byte of lower weights of each word, the byte of higher weights contains 0.

The syntax « $...= » is used to continue a table of presettings after the previous one.

For example:

#$m200=1,2,3,4,5

#$...=6,7,8,9

Place the variables 1 to 9 in the words m200 à m208.

Presettings can be written in the same manner as low level literal language or in a command on a sheet. In this case, the presetting starts with the character « # ».

Example of a presetting written in a code box:

Example of a presetting written in a command:

14.10.3 Low level literal language


14.10.3.9 Indirect addressing

Indirect addressing

Indirect addressing is used to effect an operation on a variable with an index..

These are M variables (words) which are used as an index

Syntax:

« variable ( index ) »

Example:

lda 10 ; load 10 in the accumulator

sta m200 ; enter in the word 200

set o(200) ; set to one the output indicated by the word 200 (o10)

14.10.3 Low level literal language


14.10.3.10 Address of a variable

Address of a variable

The character « ? » is used to specify the address of a variable.

Example:

lda ?o10 ; enters the value 10 in the accumulator

This syntax is primarily of interest if symbols are used.

Example:

lda ?_gate_ ; enters the variable number in the accumulator

; associated to symbol « _gate_ »

This syntax can also be used in presettings to create variable address tables..

Example:

$m200=?_gate1_,?_gate2_,?_gate3_

14.10.3 Low level literal language


14.10.3.11 Jumps and labels

Jumps and labels

Jumps must be referred to a label. Label syntax is:

«:label name: »

Example:

jmp:next:

...

:next:

14.10.3 Low level literal language


14.10.3.12 Function list by type

Function list by type

Related Topics
14.10.3 Low level literal language
14.10.3.12.1 Boolean functions
14.10.3.12.2 Loading and storage functions on integers and floats
14.10.3.12.3 Arithmetic functions on integers and floats
14.10.3.12.4 Arithmetic functions on floats
14.10.3.12.5 Access functions for PC input/output ports
14.10.3.12.6 Access functions for PC memory
14.10.3.12.7 Binary functions on integers
14.10.3.12.8 Other functions on integers
14.10.3.12.9 Conversion functions
14.10.3.12.10 Trigonometric functions
14.10.3.12.11 Connection functions
14.10.3.12.12 Test functions
14.10.3.12.13 Asynchronous access functions to inputs outputs
14.10.3.12.14 Information contained in the function list


14.10.3.12.1 Boolean functions

Boolean functions

SET set to one

RES reset

INV inversion

EQU equivalence

NEQ non-equivalence

14.10.3.12 Function list by type


14.10.3.12.2 Loading and storage functions on integers and floats

Loading and storage functions on integers and floats

LDA load

STA storage

14.10.3.12 Function list by type


14.10.3.12.3 Arithmetic functions on integers and floats

Arithmetic functions on integers and floats

ADA addition

SBA subtraction

MLA multiplication

DVA division

CPA comparison

14.10.3.12 Function list by type


14.10.3.12.4 Arithmetic functions on floats

Arithmetic functions on floats

ABS absolute value

SQR square root

14.10.3.12 Function list by type


14.10.3.12.5 Access functions for PC input/output ports

Access functions for PC input/output ports

AIN access input

AOU access output

14.10.3.12 Function list by type


14.10.3.12.6 Access functions for PC memory

Access functions for PC memory

ATM input address memory

MTA output address memory

14.10.3.12 Function list by type


14.10.3.12.7 Binary functions on integers

Binary functions on integers

ANA and bit to bit

ORA or bit to bit

XRA exclusive or bit to bit

TSA test bit to bit

SET set all bits to one

RES reset all bits

RRA shift to the right

RLA shift to the left

14.10.3.12 Function list by type


14.10.3.12.8 Other functions on integers

Other functions on integers

INC incrementation

DEC decrementation

14.10.3.12 Function list by type


14.10.3.12.9 Conversion functions

Conversion functions

ATB integers to booleans

BTA booleans to integers

FTI float to integer

ITF integer to float

LTI 32 bit integer to 16 bit integer

ITL 16 bit integer to 32 bit integer

14.10.3.12 Function list by type


14.10.3.12.10 Trigonometric functions

Trigonometric functions

SIN sine

COS cosine

TAN tangent

ASI arc sine

ACO arc cosine

ATA arc tangent

14.10.3.12 Function list by type


14.10.3.12.11 Connection functions

Connection functions

JMP jump

JSR jump to sub routine

RET return from sub routine

14.10.3.12 Function list by type


14.10.3.12.12 Test functions

Test functions

RFZ zero result flag

RFS sign flag

RFO overflow flag

RFC carry flag

14.10.3.12 Function list by type


14.10.3.12.13 Asynchronous access functions to inputs outputs

Asynchronous access functions to inputs outputs

RIN read inputs

WOU write outputs

14.10.3.12 Function list by type


14.10.3.12.14 Information contained in the function list

Information contained in the function list

The following are provided for each instruction:

ð Name: mnemonic.

ð Function: a description of the function created by the instruction.

ð Variables: the types of variables used with the instruction

ð Addressing: the types of addressing used

ð Also see: the other instructions related to the mnemonic.

ð Example: a example of the use.

Related Topics
14.10.3.12 Function list by type
14.10.3.12.14.1 ABS
14.10.3.12.14.2 ACO
14.10.3.12.14.3 ADA
14.10.3.12.14.4 AIN
14.10.3.12.14.5 ANA
14.10.3.12.14.6 AOU
14.10.3.12.14.7 ASI
14.10.3.12.14.8 ATA
14.10.3.12.14.9 ATB
14.10.3.12.14.10 ATM
14.10.3.12.14.11 BTA
14.10.3.12.14.12 COS
14.10.3.12.14.13 CPA
14.10.3.12.14.14 DEC
14.10.3.12.14.15 DVA
14.10.3.12.14.16 EQU
14.10.3.12.14.17 FTI
14.10.3.12.14.18 INC
14.10.3.12.14.19 INV
14.10.3.12.14.20 ITF
14.10.3.12.14.21 ITL
14.10.3.12.14.22 JMP
14.10.3.12.14.23 JSR
14.10.3.12.14.24 LDA
14.10.3.12.14.25 LTI
14.10.3.12.14.26 MLA
14.10.3.12.14.27 MTA
14.10.3.12.14.28 NEQ
14.10.3.12.14.29 ORA
14.10.3.12.14.30 RES
14.10.3.12.14.31 RET
14.10.3.12.14.32 RFC
14.10.3.12.14.33 RFO
14.10.3.12.14.34 RFS
14.10.3.12.14.35 RFZ
14.10.3.12.14.36 RIN
14.10.3.12.14.37 RLA
14.10.3.12.14.38 RRA
14.10.3.12.14.39 SBA
14.10.3.12.14.40 SET
14.10.3.12.14.41 SIN
14.10.3.12.14.42 SQR
14.10.3.12.14.43 STA
14.10.3.12.14.44 TAN
14.10.3.12.14.45 TSA
14.10.3.12.14.46 WOU
14.10.3.12.14.47 XRA


14.10.3.12.14.1 ABS

ABS

Name : ABS - abs accumulator

Function : calculate the absolute value of the floating accumulator

Variables : none

Addressing : accumulator

Also see : SQR

Example :

lda f200

abs aaf

sta f201

; leaves f201 in the absolute value of f200

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.2 ACO

ACO

Name : ACO – accumulator arc cosine

Function : calculate the arc cosine value of the floating-point accumulator

Variables : none

Addressing : accumulator

Also see : COS, SIN, TAN, ASI, ATA

Example: :

lda f200

aco aaf

sta f201

; leave the value of the arc cosine of f200 in f201

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.3 ADA

ADA

Name : ADA - adds accumulator

Function : adds a value to the accumulator

Variables : M or %MW, L or %MD, F or %MF

Addressing : absolute, indirect, immediate

Also see : SBA

Example :

ada 200

; adds 200 to the 16 bit accumulator

ada f124

; adds the content of f124 to the float accumulator

ada l200

; adds the content of l200 to the 32 bit accumulator

ada 200L

; adds 200 to the 32 bit accumulator

ada 3.14R

; adds 3.14 to the float accumulator

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.4 AIN

AIN

Name : AIN - accumulator input

Function : reads an input port (8 bits) and stores in

the lower part of the 16 bit accumulator ;

reads a 16 bit input port and stores in the 16 bit accumulator (in this case the port address must be written in the form of a 32 bit constant)

only useable with PC compiler

Variables : M or %MW

Addressing : indirect, immediate

Also see : AOU

Example :

ain $3f8

; reads port $3f8 (8 bits)

ain $3f8l

; reads port $3f8 (16 bits)

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.5 ANA

ANA

Name : ANA - and accumulator

Function : effects an AND logic in the 16 bit accumulator

and a word or a constant or the 32 bit accumulator and

a long or a constant

Variables : M or %MW, L or %MD

Addressing : absolute, indirect, immediate

Also see : ORA, XRA

Example :

ana %1111111100000000

; masks the 8 bits of lower weight of

; the 16 bit accumulator

ana $ffff0000L

; masks the 16 bits of lower weight of the 32 bit accumulator

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.6 AOU

AOU

Name : AOU - accumulator output

Function : transfers the lower part (8 bits) of the 16 bit accumulator

on an output port ;

transfers the 16 bits of the 16 bit accumulator

on an output port (in this case the port address must be

written in the form of a 32 bit constant)

only useable with PC compiler

Variables : M or %MW

Addressing : indirect, immediate

Also see : AIN

Example :

lda "A"

aou $3f8

; places the character« A » on output port $3f8

lda $3f8

sta m200

lda "z"

aou m(200)

; places character « z » on output port $3f8

lda $1234

aou $300l

; places the 16 bit value 1234 on output port $300

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.7 ASI

ASI

Name : ASI – accumulator arc sine

Function : calculate the arc sine value of the floating-point accumulator

Variables : none

Addressing : accumulator

Also see : COS, SIN, TAN, ACO, ATA

Example: :

lda f200

asi aaf

sta f201

; leave the value of the arc sine of f200 in f201

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.8 ATA

ATA

Name : ATA – accumulator arc tangent

Function : calculate the arc tangent value of the floating-point accumulator

Variables : none

Addressing : accumulator

Also see : COS, SIN, TAN, ACO, ASI

Example: :

lda f200

ata aaf

sta f201

; leave the value of the arc tangent of f200 in f201

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.9 ATB

ATB

Name : ATB - accumulator to bit

Function : transfers the 16 bits of the 16 bit accumulator

towards the subsequent 16 boolean variables ; the

the lower weight bit correspond to the first

boolean variable

Variables : I or %I, O or %Q, B or %M, T or %T, U*

Addressing : absolute

Also see : BTA

Example :

lda m200

atb o0

; recopies the 16 bits of m200 in variables
; o0 to o15

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.10 ATM

ATM

Name : ATM - accumulator to memory

Function : transfers the 16 bit accumulator to a memory

address; the word or specified constant

defines the memory address offset

to reach, the word m0 must be loaded with the

segment value of the memory address to reach

only useable with PC compiler

Variables : M or %MW

Addressing : indirect, immediate

Also see : MTA

Example :

lda $b800

sta m0

lda 64258

atm $10

; places the value 64258 at address $b800:$0010

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.11 BTA

BTA

Name : BTA - bit to accumulator

Function : transfers the subsequent 16 boolean variables

towards the 16 bits of the 16 bit accumulator ;

the lower weight bit corresponds to the first

boolean variable

Variables : I or %I, O or %Q, B or %M, T or %T, U*

Addressing : absolute

Also see : ATB

Example :

bta i0

sta m200

; recopies the 16 inputs i0 to i15 in the word m200

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.12 COS

COS

Name : COS – accumulator cosine

Function : calculate the cosine value of the floating-point accumulator

Variables : none

Addressing : accumulator

Also see : SIN, TAN, ACO, ASI, ATA

Example: :

lda f200

cos aaf

sta f201

; leave the value of the cosine of f200 in f201

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.13 CPA

CPA

Name : CPA - compares accumulator

Function : compares a value at the 16 bit or 32 bit or floating

accumulator, effects the same operation as SBA

but without changing the content of the accumulator

Variables : M or %MW, L or %MD, F or %MF

Addressing : absolute, indirect, immediate

Also see : SBA

Example :

lda m200

cpa 4

rfz o0

; sets o0 to 1 if m200 is equal to 4, otherwise o0
; is reset to 0

lda f200

cpa f201

rfz o1

; sets o1 to 1 if f200 is equal to f201, otherwise o1
; is reset to 0

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.14 DEC

DEC

Name : DEC – decrement

Function : decrements a word, a counter, a long, the 16 bit or 32 bit accumulator

Variables : M or %MW, C or %C, L or %MD

Addressing : absolute, indirect, accumulator

Also see : INC

Example :

dec m200

; decrements m200

dec aal

; decrements the 32 bit accumulator

dec m200

dec m201 and m200=-1

; decrements a 32 bit value composed of
; m200 (lower weights)
; et m201 (higher weights)

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.15 DVA

DVA

Name : DVA - divides accumulator

Function : division of the 16 bit accumulator by a word or

a constant; division of the float accumulator by

a float or a constant; division of the 32 bit

by a long or a constant, for the 16 bit accumulator

the remainder is placed in word m0, if the division

is by 0

system bit 56 passes to 1

Variables : M or %MW, L or %MD, F or %MF

Addressing : absolute, indirect, immediate

Also see : MLA

Example :

lda m200

dva 10

sta m201

; m201 is equal to m200 divided by 10, m0 contains the

; remainder

lda l200

dva $10000L

sta l201

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.16 EQU

EQU

Name : EQU - equal

Function : sets a variable to 1 if the test is true,

if not the variable is set to

0

Variables : I or %I, O or %Q, B or %M, T or %T, X or %X, U

Addressing : absolute, indirect (except for X variables)

Also see : NEQ, SET, RES, INV

Example :

equ o0 and i10

; sets the output of o0 to the same state as input i10

lda 10

sta m200

equ o(200) and i0

; sets o10 to the same state as input i0

$t0=100

equ t0 and i0

equ o0 and t0

; sets o0 to the state of i0 with an activation delay

; of 10 seconds

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.17 FTI

FTI

Name : FTI - float to integer

Function : transfers the float accumulator to the 16 bit accumulator

Variables : none

Addressing : accumulator

Also see : ITF

Example :

lda f200

fti aaa

sta m1000

; leaves the integer part of f200 in m1000

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.18 INC

INC

Name : INC - increment

Function : increments a word, a counter, a long the 16 or 32 bit

accumulator

Variables : M or %MW, C or %C, L or %MD

Addressing : absolute, indirect, accumulator

Also see : DEC

Example :

inc m200

; adds 1 to m200

inc m200

inc m201 and m201=0

; increments a value on 32 bits, m200
; represents the
; lower weights, and m201 the higher weights

inc l200

; increments long l200

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.19 INV

INV

Name : INV - inverse

Function : inverts the state of a boolean variable or inverts

all the bits of a word, a long or the 16 bit or 32 bit

accumulator

Variables : I or %I, O or %Q, B or %M, T or %T, X or %X, U,

M or %MW, L or %MD

Addressing : absolute, indirect, accumulator

Also see : EQU, NEQ, SET, RES

Example :

inv o0

; inverts the state of output 0

inv aaa

; inverts all the bits of the 16 bit accumulator

inv m200 and i0

; inverts all m200 bits if i0 is at state 1

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.20 ITF

ITF

Name : ITF - integer to float

Function : transfers the 16 bit accumulator to the float accumulator

Variables : none

Addressing : accumulator

Also see : FTI

Example :

lda 1000

itf aaa

sta f200

; leaves the constant 1000 in f200

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.21 ITL

ITL

Name : ITL - integer to long

Function : transfers the 16 bit accumulator to the 32 bit accumulator

Variables : none

Addressing : accumulator

Also see : LTI

Example :

lda 1000

itl aaa

sta f200

; leaves the constant 1000 in l200

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.22 JMP

JMP

Name : JMP - jump

Function : jump to a label

Variables : label

Addressing : label

Also see : JSR

Example :

jmp:end of program:

; unconditional connection to end of
; program label:

jmp:string: and i0

set o0

set o1

:string:

; conditional connection to a label:string:
; following the state of i0

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.23 JSR

JSR

Name : JSR - jump sub routine

Function : effects a connection to a sub routine

Variables : label

Addressing : label

Also see : RET

Example :

lda m200

jsr:square:

sta m201

jmp end:

:square:

sta m53

mla m53

sta m53

ret m53

:end:

; the sub routine « square » raises the content
; of the accumulator to the square

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.24 LDA

LDA

Name : LDA - load accumulator

Function : loads a constant, word or counter in the 16 bit

accumulator; loads a long or constant in the 32

bit accumulator; loads a float or a constant in the

float accumulator; loads a counter or a time delay

in the 16 bit accumulator

Variables : M or %MW, C or %C, L or %MD, F or %MF, T or %T

Addressing : absolute, indirect, immediate

Also see : STA

Example :

lda 200

; loads the constant 200 in the 16 bit accumulator

lda 0.01R

; loads the real constant 0.01 in the float accumulator

lda t10

; loads the counter of time delay 10 in the

; accumulator

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.25 LTI

LTI

Name : LTI - long to integer

Function : transfers the 32 bit accumulator to the 16 bit

accumulator

Variables : none

Addressing : accumulator

Also see : ITL

Example :

lda l200

lti aaa

sta m1000

; leaves the 16 bits of lower weight of l200 in m1000

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.26 MLA

MLA

Name : MLA - multiples accumulator

Function : multiplies the 16 bit accumulator by a word or a constant;

multiplies the 32 bit accumulator by a long or a constant;

multiplies the float accumulator by a float or a constant;

for the 16 bit accumulator the 16 bits of higher weight

result of the multiplication will be transferred in

m0

Variables : M or %MW, L or %MD, F or %MF

Addressing : absolute, indirect, immediate

Also see : DVA

Example :

lda m200

mla 10

sta m201

; multiplies m200 by 10, m201 is loaded with the
; 16 bits of lower weight, and m0 with the 16 bits of
; higher weight

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.27 MTA

MTA

Name : MTA - memory to accumulator

Function : transfers the contents of a memory address to the

16 bit accumulator, the specified word or constant

defines the offset of the memory address to reach; the word m0 must be loaded with the segment value of the memory address to be reached; only useable with a PC compiler

Variables : M or %MW

Addressing : indirect, immediate

Also see : ATM

Example :

lda $b800

sta m0

mta $10

; places the value contained at address $b800:$0010
; in the 16 bit accumulator

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.28 NEQ

NEQ

Name : NEQ - not equal

Function : sets a variable to 0 if the test is true,

if not the variable is set to 1

Variables : I or %I, O or %Q, B or %M, T or %T, X or %X, U

Addressing : absolute, indirect (except for X variables)

Also see : EQU, SET, RES, INV

Example :

neq o0 and i00

; sets the output of o0 to a complement state of input
; i10

lda 10

sta m200

neq o(200) and i0

; sets o10 to a complement state of input i0

$t0=100

neq t0 and i0

neq o0 and t0

; sets o0 to the state of i0 with a deactivation
; delay of 10 seconds

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.29 ORA

ORA

Name : ORA - or accumulator

Function : effects an OR logic on the 16 bit accumulator

and a word or a constant, or on the 32 bit accumulator

and a long or a constant

Variables : M or %M, L or %MD

Addressing : absolute, indirect, immediate

Also see : ANA, XRA

Example :

ora %1111111100000000

; sets the 8 bits of lower weight of

; the 16 bit accumulator to 1

ora $ffff0000L

; sets the 16 bits of higher weight of the 32 bit accumulator

; to 1

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.30 RES

RES

Name : RES - reset

Function : sets a boolean variable, a word

a counter, a long, the 16 bit accumulator

or the 32 bit accumulator to 0

Variables : I or %I, O or %Q, B or %M, T or %T, X or %X, U,

M or %MW, C or %C, L or %MD

Addressing : absolute, indirect (except for X variables), accumulator

Also see : NEQ, SET, EQU, INV

Example :

res o0

; sets the output of o0 to 0

lda 10

sta m200

res o(200) and i0

; sets o10 to 0 if input i0 is at 1

res c0

; sets counter 0 to 0

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.31 RET

RET

Name : RET - return

Function : indicates the return of a sub routine and

places a word or a constant in the 16 bit

accumulator; or places a long or a constant in

the 32 bit accumulator; or places a float or a

constant in the float accumulator

Variables : M or %MW, L or %MD, F or %MF

Addressing : absolute, indirect, immediate

Also see : JSR

Example :

ret 0

; returns to a sub routine by placing 0 in

; the 16 bit accumulator

ret f200

; returns to a sub routine by placing the content of

; f200 in the float accumulator

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.32 RFC

RFC

Name : RFC - read flag: carry

Function : transfers the carry indicator in a
boolean variable

Variables : I or %I, O or %Q, B or %M, T or %T, X or %X, U

Addressing : absolute

Also see : RFZ, RFS, RFO

Example :

rfc o0

; transfers the carry indicator to o0

lda m200

ada m300

sta m400

rfc b99

lda m201

ada m301

sta m401

inc m401 and b99

; effects an addition on 32 bits

; (m400,401)=(m200,201)+(m300,301)

; m200, m300 and m400 are lower weights

; m201, m301 and m401 are higher weights

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.33 RFO

RFO

Name : RFO - read flag: overflow

Function : transfers the contents of the overflow indicator in
a boolean variable

Variables : I or %I, O or %Q, B or %M, T or %T, X or %X, U

Addressing : absolute

Also see : RFZ, RFS, RFC

Example :

rfo o0

; transfers the overflow indicator to o0

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.34 RFS

RFS

Name : RFS - read flag: sign

Function : transfers the sign indicator in a

boolean variable

Variables : I or %I, O or %Q, B or %M, T or %T, X or %X, U

Addressing : absolute

Also see : RFZ, RFC, RFO

Example :

rfs o0

; transfers the sign indicator to o0

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.35 RFZ

RFZ

Name : RFZ - read flag: zero

Function : transfers the content of a zero result indicator
in a boolean variable

Variables : I or %I, O or %Q, B or %M, T or %T, X or %X, U

Addressing : absolute

Also see : RFC, RFS, RFO

Example :

rfz o0

; transfers the zero result indicator to o0

lda m200

cpa m201

rfz o0

; position o0 at 1 if m200 is equal to m201

; or 0 if not

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.36 RIN

RIN

Name : RIN - read input

Function : effects a reading of physical input. This function is only

implemented on Z targets and varies following the target.

See the documentation related to each executor

for more information..

Variables : none

Addressing : immediate

Also see : WOU

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.37 RLA

RLA

Name : RLA - rotate left accumulator

Function : effects a left rotation of the bits of the

16 bit or 32 bit accumulator; the bits evacuated to the left enter on the right, the subject of this function is a constant which sets the number of shifts to be made, the size of the subject (16 or 32 bits) determines which of the accumulators will undergo rotation

Variables : none

Addressing : immediate

Also see : RRA

Example :

ana $f000

; separates the digit of higher weight of the 16 bit accumulator

rla 4

; and brings it to the right

rla 8L

; effects 8 rotations to the left of the bits of the 32 bit

; accumulator

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.38 RRA

RRA

Name : RRA - rotate right accumulator

Function : effects a right rotation of the bits of the

16 bit or 32 bit accumulator; the bits evacuated to the right enter on the left, the subject of this function is a constant which sets the number of shifts to be made, the size of the subject (16 or 32 bits) determines which of the accumulators will undergo rotation

Variables : none

Addressing : immediate

Also see : RLA

Example :

ana $f000

; separates the digit of higher weight of the 16 bit

rra 12

; and brings it to the right

rra 1L

; effects a rotation of the bits of the 32 bit accumulator

; to a position towards the right

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.39 SBA

SBA

Name : SBA - subtracts accumulator

Function : removes the content of a word or constant from

the 16 bit accumulator; removes the content of a long or a

constant from the 32 bit accumulator; removes the content

of a float or constant from the float accumulator

Variables : M or %MW, L or %MD, F or %MF

Addressing : absolute, indirect, immediate

Also see : ADA

Example :

sba 200

; removes 200 from the 16 bit accumulator

sba f(421)

; removes the float content if the number is contained

; in word 421 from the float accumulator

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.40 SET

SET

Name : SET - set

Function : sets a boolean variable to 1; sets all the bits of a word,

a counter, a long, the 16 bit or the 32 bit

accumulator to 1

Variables : I or %I, O or %Q, B or %M, T or %T, X or %X, U,

M or %MW, C or %C, L or %MD

Addressing : absolute, indirect (except for X variables), accumulator

Also see : NEQ, RES, EQU, INV

Example :

set o0

; sets the output of o0 to 1

lda 10

sta m200

set o(200) and i0

; sets o10 to 1 if input i0 is at 1

set m200

; sets m200 to the value -1

set aal

; sets all the bits of the 32 bit accumulator to 1

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.41 SIN

SIN

Name : SIN – accumulator sine

Function : calculate the sine value of the floating-point accumulator

Variables : none

Addressing : accumulator

Also see : COS, TAN, ACO, ASI, ATA

Example: :

lda f200

sin aaf

sta f201

; leave the value of the sine of f200 in f201

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.42 SQR

SQR

Name : SQR - square root

Function : calculates the square root of the float accumulator

Variables : none

Addressing : accumulator

Also see : ABS

Example :

lda 9

itf aaa

sqr aaf

fti aaa

sta m200

; leaves value 3 in m200

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.43 STA

STA

Name : STA - store accumulator

Function : stores the 16 bit accumulator in a counter or a word;

stores the 32 bit accumulator in a long; stores the

float accumulator in a float, stores the 16 bit accumulator

in a time delay order

Variables : M or %MW, C or %C, L or %MD, F or %MF, T or %T

Addressing : absolute, indirect

Also see : LDA

Example :

sta m200

; transfers the content of the 16 bit accumulator

; to word 200

sta f200

; transfers the content of the float accumulator

; to float 200

sta l200

; transfers the 32 bit accumulator to long l200

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.44 TAN

TAN

Name : TAN – accumulator tangent

Function : calculate the tangent value of the floating-point accumulator

Variables : none

Addressing : accumulator

Also see : COS, SIN, ACO, ASI, ATA

Example: :

lda f200

tan aaf

sta f201

; leave the value of the tangent of f200 in f201

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.45 TSA

TSA

Name : TSA - test accumulator

Function : effects AND logic on the 16 bit accumulator and a word

or a constant, effects AND logic on the 32 bit accumulator

and a long or a constant, operates in a similar manner to ANA instruction but without changing the accumulator content

Variables : M or %MW, L or %MD

Addressing : absolute, indirect, immediate

Also see : ANA

Example :

tsa %10

rfz b99

jmp:follow: and b99

; connection to label:follow: if bit 1

; of the 16 bit accumulator is at 0

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.46 WOU

WOU

Name : WOU - write output

Function : effects a writing of the physical outputs. This function is

only implemented on Z targets (and varies following the

target) See the documentation related to each executor for

more information

Variables : none

Addressing : immediate

Also see : RIN

14.10.3.12.14 Information contained in the function list


14.10.3.12.14.47 XRA

XRA

Name : XRA - xor accumulator

Function : effects an EXCLUSIVE OR on the 16 bit accumulator and

a word or a constant, effects an EXCLUSIVE OR on the 32

bit accumulator and a long or a constant

Variables : M or %MW, L or %MD

Addressing : absolute, indirect, immediate

Also see : ORA, ANA,

Example :

xra %1111111100000000

; inverts the 8 bits of higher weight of the 16 bit accumulator

xra 1L

; inverts the lower weight bit of the 32 bit accumulator

14.10.3.12.14 Information contained in the function list


14.10.4 Macro-instruction

Macro-instruction

Macro-instructions are new literal language instructions which hold a set of basic instructions.

Call up syntax for a macro-instruction:

« %<Macro-instruction name*> {parameters ...} »

Statement syntax for a macro-instruction:

#MACRO

<program>

#ENDM

This statement is found in a file with the name of the macro-instruction and the extension « .M ».

The file M can be placed in a sub-directory « lib » of the autoSIM-200 installation directory or in project resources.

Ten parameters can be passed to the macro-instruction. When called up these parameters are placed on the same line as the macro-instruction and are separated by a space

The syntax « {?n} » in the macro-instruction program refers to the n parameter.

Example:

We are going to create a « square » macro-instruction which raises the first parameter of the macro-instruction to its square and puts the results in the second parameter.

Call up of the macro-instruction:

lda 3

sta m200

%square m200 m201

; m201 will contain 9 here

« SQUARE.M » file:

#MACRO

lda {?0}

mla {?0}

sta {?1}

#ENDM

14.10 Literal languages


14.10.5 Libraries

Libraries

A library is used to define the resources which will be compiled one time in an application, no matter how many times those resources are called up.

Syntax for defining a library:

#LIBRARY <Library name>

<program>

#ENDL

<library name > is the function name which will be called up for a

jsr:<library name> instruction:

The first time the library code is called up by the compiler its code is compiled. The following times, the call up is simply directed to the existing routine..

This mechanism is especially suited to the use of function blocks and macro-instructions to limit the generation of codes in the event that there is multiple use of the same program resources.

Words m120 to m129 are reserved for libraries and can be used for passing parameters.

14.10 Literal languages


14.10.6 Pre-defined macro-instructions

Pre-defined macro-instructions

Inversion macro-instructions are in the sub-directory « LIB » of the autoSIM-200 installation directory.

Functional block equivalents are also present.

14.10 Literal languages


14.10.7 Description of pre-defined macro-instructions

Description of pre-defined macro-instructions

Related Topics
14.10 Literal languages
14.10.7.1 Conversions
14.10.7.2 Treatment on word tables
14.10.7.3 Treatment on strings


14.10.7.1 Conversions

Conversions

%ASCTOBIN <first two digits> <last two digits> <binary result>

Effecting a hexadecimal ASCII conversion (first two parameters) to binary (third parameter), by exiting the accumulator containing $FFFF if the first two parameters are not valid ASCII numbers, otherwise 0. All the parameters are 16 bit words.

%BCDTOBIN <value in BCD> <binary value>

Effecting a BCD conversion to binary. In the output of the accumulator containing $FFFF if the first parameter is not a valid bcd number, otherwise 0. The two parameters are 16 bit words.

%BINTOASC <binary value> <upper part result> <lower part result>

Effecting a binary conversion (first parameter) to hexadecimal ASCII (second and third parameters). All parameters are 16 bit words.

%BINTOBCD <binary value> <BCI value>

Effecting a BCD (first parameter) conversion to binary (second parameter). In the accumulator containing $FFFF if the binary number can be converted in BCD, otherwise 0.

%GRAYTOB <GRAY code value> <binary value>

Effecting a Gray code conversion (first parameter) to binary (second parameter).

14.10.7 Description of pre-defined macro-instructions


14.10.7.2 Treatment on word tables

Treatment on word tables

%COPY <first word table source> <first word table destination> <number of words>

Copy a table of source words to a table of destination words. The length is given by the number of words.

%COMP <first word table 1> <first word table 2> <number of words> <result>

Compares two tables of words. The result is a binary variable which takes the value 1 if all the elements in table 1 are identical to those in table 2.

%FILL <first word table> <value> <number of words>

Fills a word table with a value.

14.10.7 Description of pre-defined macro-instructions


14.10.7.3 Treatment on strings

Treatment on strings

The coding of strings is as follows: one character per word, one word containing the value 0 indicates the end of the chain. In macro-instructions the strings are passed in parameters by designating by the first word they are composed of.

%STRCPY <source string> <destination string>

Copies a string to another.

%STRCAT <source string> <destination string>

Adds the source string to the end of the destination string.

%STRCMP <string 1> <string 2> <result>

Compares to strings. The result is a boolean variable which passes to 1 if the two strings are identical.

%STRLEN <string> <result>

Places the length of the string in the result word.

%STRUPR <string>

Transforms all the characters of the string into capital letters.

%STRLWR <string>

Transforms all the characters of the string into lower case letters.

Example:

Conversion of m200 (binary) to m202, m203 in 4 digits (ASCII bcd)

%bintobcd m200 m201

%bintoasc m201 m202 m203

14.10.7 Description of pre-defined macro-instructions


14.10.8 Example of low level literal language

Example of low level literal language

Conditions: let's start with the simplest example: round trip of a locomotive on track 1.

Solution:

< Example\lit\low level literal1.agn

A more evolved example.

Conditions:

The locomotive must make a 10 second delay at the right end of the track and a 4 second delay at the left end.

Solution:

< Example\lit\low level literal 2.agn

Another example:

Conditions: Make all of the model lights flash:

Solution:

< Example\lit\low level literal 3.agn

This example shows the use of presettings. They are used here to create a variable address table. The table contains the addresses of all the outputs which pilot the model lights.

For each execution cycle, the state of all the lights is inverted.

A problem occurs, all the lights flash very quickly and it is hard to see much.

Let's modify our example.

Conditions:

The state of all the lights must remain inverted every ten seconds one by one.

Solution:

< Example\lit\low level literal 4.agn

14.10 Literal languages


14.11 Extended literal language

Extended literal language

Extended literal language is a subset of low level literal language. It is used for writing boolean and numeric equations more simply and concisely.

It is still possible to write structures like IF ... THEN ... ELSE and WHILE ... ENDWHILE (loop).

Use of extended literal language is subject to the same rules as low level literal language, it uses the same syntax for variables, mnemonics, the test types (fronts, complement state, immediate state) and addressing modes.

It is possible to mix low level literal language with extended literal language.

When the compiler of literal language detects a line written in extended literal language, it decomposes it into low level literal language instructions, then compiles it.

Related Topics
14 Common elements
14.11.1 Writing boolean equations
14.11.2 Writing numeric equations
14.11.3 IF...THEN...ELSE...structure
14.11.4 WHILE ... ENDWHILE structure
14.11.5 Example of a program in extended literal language


14.11.1 Writing boolean equations

Writing boolean equations

General syntax:

« bool. variable=(assignment type) (bool. variable 2 operator 1 bool. variable 3... operator n -1 bool. variable n ) »

The type of assignment must be indicated if it is other than « Assignment »

It can be:

ð « (/) »: complement assignment,

ð « (0) »: reset,

ð « (1) »:set to one.

The operators can be:

ð « . »: and,

ð « + »: or.

The equations can contain various levels of parentheses to indicate the evaluation order. By default, the equations are evaluated from the left towards the right.

Examples and equivalencies with low level literal language

o0=(i0) | equ o0 and i0
o0=(i0.i1) | equ o0 and i0 and i1
o0=(i0+i1) | equ o0 orr i0 eor i1
o0=(1) | set o0
o0=(0) | res o0
o0=(1)(i0) | set o0 and i0
o0=(0)(i0) | res o0 and i0
o0=(1)(i0.i1) | set o0 and i0 and i1
o0=(0)(i0+i1) | res o0 orr o0 eor i1
o0=(/)(i0) | neq o0 and i0
o0=(/)(i0.i1) | neq o0 and i0 and i1
o0=(/i0) | equ o0 and /i0
o0=(/i0./i1) | equ o0 and /i0 and /i1
o0=(c0=10) | equ o0 and c0=10
o0=(m200<100+m200>200) | equ o0 orr m200<100 eor m200>200

14.11 Extended literal language


14.11.2 Writing numeric equations

Writing numeric equations

General equations for integers:

« num. variable 1=[num. variable 2 operator 1 ... operator n-1 num. variable n] »

The equations can contain various levels of braces for indicating the evaluation order. By default, the equations are evaluated from left to right. Operators for 16 and 32 bit integers can be:

« + »: addition (equivalent to instruction ADA),

« - »: subtraction (equivalent to instruction SBA),

« * »: multiplication (equivalent to instruction MLA),

« / »: division (equivalent to instruction DVA),

« < »: shift to left (equivalent to instruction RLA),

« > »: shift to right (equivalent to instruction RRA),

« & »: « And » binary (equivalent to instruction ANA),

« | »*: « Or » binary (equivalent to instruction ORA),

« ^ »: « Exclusive or » binary (equivalent to instruction XRA).

Operators for floats can be:

ð « + »: addition (equivalent to instruction ADA),

ð « - »: subtraction (equivalent to instruction SBA),

ð « * »: multiplication (equivalent to instruction MLA),

ð « / »: division (equivalent to instruction DVA).

It is possible to indicate the constant in float equations. If this is necessary use the presettings on floats.

Equations on floats can call up the « SQR » and « ABS » functions

Note: depending on the complexity the compiler may use intermediate variables. These variables are the words m53 to m59 for 16 bit integers, the longs l53 to l59 for 32 bit integers and the floats f53 à f59.

Examples and equivalencies with low level literal language

M200=[10] | lda 10 sta m200
M200=[m201] | lda m201 sta m200
M200=[m201+100] | lda m201 ada 100 sta m200
M200=[m200+m201-m202] | lda m200 ada m201 sba m202 sta m200
M200=[m200&$ff00] | lda m200 ana $ff00 sta m200
F200=[f201] | lda f201 sta f200
F200=[f201+f202] | lda f201 ada f202 sta f200
F200=[sqr[f201]] | lda f201 sqr aaa sta f200
F200=[sqr[abs[f201*100R]]] | lda f201 mla 100R abs aaa sqr aaa sta f200
L200=[l201+$12345678L] | lda l201 ada $12345678L sta l200

14.11 Extended literal language


14.11.3 IF...THEN...ELSE...structure

IF...THEN...ELSE...structure

General syntax:

IF(test)

THEN

action if true test

ENDIF

ELSE

action if false test

ENDIF

The test must comply with the syntax described in the chapter dedicated to boolean equations.

Only if an action tests true or tests false can it appear.

It is possible to connect multiple structures of this type.

System bits u90 to u99 are used as temporary variables for managing this type of structure.

Examples:

IF(i0)

THEN

inc m200 ; increments word 200 if i0

ENDIF

IF(i1+i2)

THEN

m200=[m200+10] ; adds 10 to word 200 if the or i2

ENDIF

ELSE

res m200 ; else effect m200

ENDIF

14.11 Extended literal language


14.11.4 WHILE ... ENDWHILE structure

WHILE ... ENDWHILE structure

General syntax:

WHILE(test)

action is repeated as long as the test is true

ENDWHILE

The test must comply with the syntax described in the chapter dedicated to boolean equations.

It is possible to connect multiple structures of this type.

System bits u90 to u99 are used as temporary variables for managing this type of structure.

Examples:

m200=[0]

WHILE(m200<10)

set o(200)

inc m200 ; increments word 200

ENDWHILE

This example sets outputs o0 to o9 to one.

14.11 Extended literal language


14.11.5 Example of a program in extended literal language

Example of a program in extended literal language

Let's go back to the example from the previous chapter

Solution:

< Example\lit\extended literal 1.agn

Let's complicate our example with some calculations

Conditions:

Calculate the speed in millimeters per second and meters per hour of the locomotive on the left to right trajectory.

Solution:

< Example\lit\extended literal 2.agn

Word 32 is used to read the system time. The value is then transferred to the float to effect the calculations without compromising exactness.

14.11 Extended literal language


14.12 ST literal language

ST literal language

ST literal language is a structured literal language defined by IEC1131-3 standard. This language is used to write boolean and numeric equations as well as program structures.

Related Topics
14 Common elements
14.12.1 General Information
14.12.2 Boolean equations
14.12.3 Numeric equations
14.12.4 Programming structures
14.12.5 Example of a program in extended literal language


14.12.1 General Information

General Information

ST literal language is used in the same way as low level literal language and extended literal language.

Commands are used to establish the sections in ST literal language

« #BEGIN_ST » indicates the beginning of an ST language section.

« #END_ST » indicates the end of an ST language section.

Example:

m200=[50] ; extended literal language

#BEGIN_ST

m201:=4; (* ST language *)

#END_ST

It is also possible to choose to use ST language for an entire sheet.

This selection is made in the properties dialogue box on each sheet.

On a sheet where ST language is the default language it is possible to enter low level and extended literal language by using the commands « #END_ST » and « #BEGIN_ST ».

Comments for ST language must start with « (* » and end with « *) ».

ST language instructions end with the character « ; ». Multiple instructions can be written on the same line.

Example:

o0:=1; m200:=m200+1;

14.12 ST literal language


14.12.2 Boolean equations

Boolean equations

The general syntax is:

variable:= boolean equation;

Boolean equations can be composed of a constant, a variable or multiple variables separated by operators.

Constants can be: 0, 1, FALSE or TRUE.

Examples:

o0:=1;

o1:=FALSE;

The operators used to separate multiple variables are: + (or), . (and), OR or AND.

« And » has priority over« Or ».

Example:

o0:=i0+i1.i2+i3;

Will be treated as:

o0:=i0+(i1.i2)+i3;

Parentheses can be used in the equations to indicate priorities.

Example:

o0:=(i0+i1).(i2+i3);

Numeric tests can be used.

Example:

o0:=m200>5.m200<100;

14.12 ST literal language


14.12.3 Numeric equations

Numeric equations

The general syntax is:

variable:= numeric equation;

Numeric equations can be composed of a constant, a variable or multiple variables separated by operators.

The constants can be expressed as decimal, hexadecimal (prefix #16) or binary (prefix #2) values.

Examples:

m200:=1234;

m201:=16#aa55;

m202:=2#100000011101;

Operators are used to separate multiple variables or constants in their order of priority.

* (multiplication),/ (division), + (addition), - (subtraction), & or AND (binary and), XOR (binary exclusive or), OR (binary or).

Examples:

m200:=1000*m201;

m200:=m202-m204*m203; (* equivalent to m200:=m202-(m204*m203) *)

Parentheses can be used in the equations to indicate priority.

Example:

m200:=(m202-m204)*m203;

14.12 ST literal language


14.12.4 Programming structures

Programming structures

Related Topics
14.12 ST literal language
14.12.4.1 IF THEN ELSE test
14.12.4.2 WHILE loop
14.12.4.3 REPEAT UNTIL loop
14.12.4.4 FOR TO loop
14.12.4.5 Exiting a loop


14.12.4.1 IF THEN ELSE test

IF THEN ELSE test

Syntax:

IF condition THEN action ENDIF;

and

IF condition THEN action ELSE action ENDIF;

Example:

if i0

then o0:=TRUE;

else

o0:=FALSE;

if i1 then m200:=4; endif;

endif ;

14.12.4 Programming structures


14.12.4.2 WHILE loop

WHILE loop

Syntax:

WHILE condition DO action ENDWHILE;

Example:

while m200<1000

do

m200:=m200+1;

endwhile;

14.12.4 Programming structures


14.12.4.3 REPEAT UNTIL loop

REPEAT UNTIL loop

Syntax:

REPEAT action UNTIL condition; ENDREPEAT;

Example:

repeat

m200:=m200+1;

until m200=500

endrepeat;

14.12.4 Programming structures


14.12.4.4 FOR TO loop

FOR TO loop

Syntax:

FOR variable:=start value TO end value DO action ENDFOR;

or

FOR variable:=start value TO end value BY no DO action ENDFOR;

Example:

for m200:=0 to 100 by 2

do

m201:=m202*m201;

endfor;

14.12.4 Programming structures


14.12.4.5 Exiting a loop

Exiting a loop

The key word « EXIT » is used to exit a loop.

Example:

while i0

m200:=m200+1;

if m200>1000 then exit; endif;

endwhile;

14.12.4 Programming structures


14.12.5 Example of a program in extended literal language

Example of a program in extended literal language

Let's go back to our example in the previous chapter

Solution:

< Example\lit\ST literal 1.agn

14.12 ST literal language


14.13 Organization chart

Organization chart

autoSIM-200 implements a « organization chart » type program.

Literal languages must be used with this type of program. See the previous chapters to learn how to use these languages.

The basis of programming with an organizational chart form is the graphic representation of an algorithmic treatment.

Unlike Grafcet language, programming in the organizational chart form generates a code which will be executed one time per search cycle. This means that it is not possible to remain in an organizational chart rectangle it is mandatory for the execution to exit the organizational chart to continue to execute the rest of the program..

This is a very important point and must not be forgotten when this language is selected.

Only rectangles can be drawn. The contents of a rectangle and its connections determine if the rectangle is an action or a test.

Related Topics
14 Common elements
14.13.1 Creating an organizational chart
14.13.2 Rectangle content


14.13.1 Creating an organizational chart

Creating an organizational chart

The rectangles are drawn by selecting the command « Add … / Code box» from the menu (click on the right side of the mouse on the bottom of the sheet to open the menu).

It is necessary to place a block [image] (key [<]) at the entry of each rectangle, this must be placed on the upper part of the rectangle.

If the rectangle is an action it will have only one exit represented by a [image] block (key [E]) on the lower left side of the rectangle.

An action rectangle:

If the rectangle is a test it must have two outputs. The first is represented by a block. (key [E]) on the lower left side and is for a true test, the second represented by a block [image] (key [=]) is immediately to the right of the other output and is for a false test.

A test rectangle:

The branches of the organizational chart must always end with a rectangle without an output that could remain empty.

14.13 Organization chart


14.13.2 Rectangle content

Rectangle content

Related Topics
14.13 Organization chart
14.13.2.1 Action rectangle content
14.13.2.2 Test rectangle content


14.13.2.1 Action rectangle content

Action rectangle content

Action rectangles can contain any kind of literal language instructions.

14.13.2 Rectangle content


14.13.2.2 Test rectangle content

Test rectangle content

Test rectangles must contain a test that complies with the test syntax of the IF...THEN...ELSE... type structure of extended literal language.

For example:

IF (i0)

It is possible to write actions before this test in the test rectangle.

This can be used to make certain calculations before the test

For example, if we want to test if the word 200 is equal to the word 201 plus 4:

m202=[m201+4]

IF(m200=m202)

14.13.2 Rectangle content


14.14 Illustration

Illustration

Our first, now typical, example, is to make a locomotive make round trips on track 1 of the model.

Solution:

< Example\ Ornagization chart\ Ornagization chart 1.agn

Second example

Conditions:

Make all the model light flash. The light change states every second.

Solution:

< Example\ Ornagization chart\ Ornagization chart 2.agn

Note the use of automatic symbols in this example.

14 Common elements


14.15 Function blocks

Function blocks

autoSIM-200 implements the use of function blocks.

This modular programming method is used to associate a set of instructions written in literal language to a graphic element .

Function blocks are defined by the programmer. Their number is not limited. It is possible to create sets of function blocks to allow a modular and standardize concept of applications.

Function blocks are used within flow chart or ladder type models, they have n boolean inputs and n boolean outputs. If the block is going to treat variables which are not boolean, then they will be mentioned in the drawing of the function block. The inside of the block can receive parameters: constant or variable.

Légende encadrée 3: Block parameters (maximum 16)

Légende encadrée 3: Block boolean inputs (maximum 16) | Légende encadrée 3: Block boolean outputs (maximum 16)

Related Topics
14 Common elements
14.15.1 Creating a function block
14.15.2 Drawing a block and creating a « .ZON » file
14.15.3 Creating an « .LIB » file
14.15.4 Simple example of a function block
14.15.5 Illustration
14.15.6 Supplementary syntax


14.15.1 Creating a function block

Creating a function block

A function block is composed of two separate files. One file has « .ZON » extension which contains the drawing of the function block and a file with « .LIB » extension which contains a series of instructions written in literal language which establish the functionality of the function block.

The « .ZON » and « .LIB » files must bear the name of the function block. For example, if we decide to create a function block « MEMORY », we need to create the files « MEMORY.ZON » (to draw the block) and « MEMORY.LIB » (for the functionality of the block).

14.15 Function blocks


14.15.2 Drawing a block and creating a « .ZON » file

Drawing a block and creating a « .ZON » file

The envelop of a function block is composed of a code box to which blocks dedicated for the function block are added.

To draw a function block follow the steps below:

ð use the assistant (recommended)

Or:

ð draw a code box (use the command « Add …/Code box » from the menu):

ð place a block [image] (key [8]) on the upper right corner of the code box:

ð place a block [image] (key [9]) on the upper right corner of the code box:

ð delete the line at the top of the block (key [A] is used to place blank blocks):

ð click with the left side of the mouse on the upper left corner of the functional block, then enter the name of the functional block which must not be more than 8 characters (the « .ZON » and « .LIB » files must bear this name), then press [ENTER].

ð if additional boolean inputs are necessary, a block must be used [image] (key [;]) or [image] (key [:]), the added inputs must be located right below the first input, no free space should be left,

ð if additional boolean outputs are needed a block must be added [image] (key [>]) or [image] (key [?]), the added outputs must be located right below the first output, no free space should be left,

ð the interior of the block can contain comments or parameters, the parameters are written between braces « {...} ». Everything not written between braces is ignored by the compiler. It is interesting to indicate the use of boolean inputs and outputs inside the block.

ð when the block is finished, the command « Select » must be used from the « Edit » menu to select the drawing of the functional block, then save it in the « .ZON » file with the « Copy to» command from the « Edit » menu.

14.15 Function blocks


14.15.3 Creating an « .LIB » file

Creating an « .LIB » file

The « .LIB » file is a text file containing instructions in literal language (low level or extended). These instructions establish the functionality of the function block.

A special syntax is used to refer to block boolean inputs, block boolean outputs and block parameters.

To refer to a block boolean input, use the syntax« {Ix} » where x is the number of the boolean input expressed in hexadecimal (0 to f).

To refer to a block boolean output, use the syntax« {Ox} » where x is the number of the boolean output expressed in hexadecimal (0 to f).

To refer to a block parameter use the syntax « {?x} » where x is the number of the parameter in hexadecimal (0 to f).

The .LIB can be placed in the « lib » sub-directory of the autoSIM-200 installation directory or in the project resources.

14.15 Function blocks


14.15.4 Simple example of a function block

Simple example of a function block

We are going to create a « MEMORY » function block which contains two boolean inputs (set to one and reset) and a boolean output (memory state).

The block drawing contained in the « MEMORY.ZON » file is:

Block functionality contained in the « MEMORY.LIB » file is:

{O0}=(1)({I0})

{O0}=(0)({I1})

The block can then be used in the following way:

or

To use a function block in an application, select the command «Paste from » from the « Edit » menu and select the « .ZON » file corresponding to the function block used.

14.15 Function blocks


14.15.5 Illustration

Illustration

Let's go back to our typical example.

Conditions:

Round trip of a locomotive on track 1 of the model.

Solution:

< Example\fb\fb 1.agn

; bloc fonctionnel ALLERRET

; aller retour d’une locomotive sur une voie

; les entrées booléennes sont les fins de course

; les sorties booléennes sont l’alimentation de la voie (0) et la direction (1)

; toujours alimenter la voie

set {O0}

; piloter la direction en fonction des fins de course

{O1}=(1)({I0})

{O1}=(0)({I1})

To illustrate the use of function blocks, let's complete our example.

Conditions:

Round trip of two locomotives on tracks 1 and 3.

Solution:

< Example\ fb\fb 2.agn

This example shows that with the same function block it is easy to make different modules of an operative party function in the identical manner.

Let's complete our example to illustrate the use of parameters

Conditions:

The two locomotives must make a delay at the end of the track. For locomotive 1: 10 seconds on the right and 4 seconds on the left, for locomotive 2: 20 seconds on the right and 8 seconds on the left.

Solution:

; bloc fonctionnel ARATT

; aller retour d'une locomotive sur une voie avec attente

; les entrées booléennes sont les fins de course

; les sorties booléennes sont l'alimentation de la voie (0) et la direction (1)

; les paramètres sont:

; 0: première temporisation

; 1: durée de la première temporisation

; 2: deuxième temporisation

; 3: durée de la deuxième temporisation

; prédisposition des deux temporisations

${?0}={?1}

${?2}={?3}

; alimenter la voie si pas les fins de course ou si tempo. terminées

set {O0}

res {O0} orr {I0} eor {I1}

set {O0} orr {?0} eor {?2}

; gestion des temporisations

{?0}=({I0})

{?2}=({I1})

; piloter la direction en fonction des fins de course

{O1}=(1)({I0})

{O1}=(0)({I1})

< Example\ fb\fb 3.agn

14.15 Function blocks


14.15.6 Supplementary syntax

Supplementary syntax

Supplementary syntax is used to make a calculation on the reference variable numbers in the « .LIB » file.

The syntax « ~+n » added after a reference to a variable or a parameter, adds n.

The syntax « ~-n » added after a reference to a variable or a parameter subtracts n.

The syntax « ~*n » added after a reference to a variable or parameter, multiplies by n.

It is possible to write many of these commands, one after the other, they are evaluated from left to right.

This mechanism is useful when a function block parameter needs to be used to refer to a table of variables.

Examples:

{?0}~+1

referring to the following element the first parameter, for example if the first parameter is m200 this syntax refers to m201.

M{?2}~*100~+200

referring to the third parameter multiplied by 100 plus 200, for example if the third parameter is 1 that syntax refers to M 1*100 + 200 thus M300.

14.15 Function blocks


14.16 Evolved function blocks

Evolved function blocks

This functionality is used to create very powerful function blocks with greater ease than the function blocks managed by files written in literal language. This programming method uses a functional analysis approach.

It does not matter which sheet or set of sheets become a function block (sometimes called encapsulating a program).

The sheet or sheet which describe the functionality of a function block can access variables which are outside the function block: block boolean inputs, boolean outputs and parameters.

Principles for use and more importantly the use of external variables is identical to the old function blocks.

Related Topics
14 Common elements
14.16.1 Syntax
14.16.2 Differentiating between new and old function blocks
14.16.3 Example


14.16.1 Syntax

Syntax

To refer a variable outside a function block it is necessary to use a mnemonic included in the following text: {In} to refer the boolean input n, {On} to refer the boolean output n, {?n} to refer parameter n. The mnemonic must start with a letter.

14.16 Evolved function blocks


14.16.2 Differentiating between new and old function blocks

Differentiating between new and old function blocks

The file name written on the function block drawing indicates if it is an old (managed by an LIB file) or new function block (managed by a GR7 sheet). The name of an old function block does not have an extension, for a new one the extension GR 7 must be added. The sheet containing the code which manages the functionality of the function block must be entered in the list of project sheets. In the sheet properties « Function Block » must be selected.

14.16 Evolved function blocks


14.16.3 Example

Example

Contents of VERINB sheet:

Call up a function block

< Example\fb\Fb with sfc inside.agn

14.16 Evolved function blocks


14.17 Predefined function blocks

Predefined function blocks

Conversion function blocks are located in the sub-directory « \LIB » of the directory where autoSIM-200 is installed.

The equivalents in macro-instructions are also present.

To insert a function blocks and its parameters in an application select « Pre-set function block » from the « Assistant / Function block» dialog box.

Related Topics
14 Common elements
14.17.1 Conversion blocks
14.17.2 Time delay blocks
14.17.3 String blocks
14.17.4 Word table blocks


14.17.1 Conversion blocks

Conversion blocks

ASCTOBIN: converts ASCII to binary

BCDTOBIN: converts BCD to binary

BINTOASC: converts binary to ASCII

BINTOBCD: converts binary to BCD

GRAYTOB: converts gray code to binary

16BINTOM: transfers 16 boolean variables to a word

MTO16 BIN: transfers a word to 16 boolean variables

14.17 Predefined function blocks


14.17.2 Time delay blocks

Time delay blocks

TEMPO: upstream time delay

PULSOR: parallel output

PULSE: time delay pulse

14.17 Predefined function blocks


14.17.3 String blocks

String blocks

STRCMP: comparison

STRCAT: concatenation

STRCPY: copy

STRLEN: calculate the length

STRUPR: set in lower case

STRLWR: set in upper case

14.17 Predefined function blocks


14.17.4 Word table blocks

Word table blocks

COMP: comparison

COPY: copy

FILL: fill

14.17 Predefined function blocks


14.18 Advanced techniques

Advanced techniques

Related Topics
14 Common elements
14.18.1 Compiler generated code
14.18.2 Optimizing generated code


14.18.1 Compiler generated code

Compiler generated code

This chapter deal with the form of code generated by compilation of such or that type of program.

The utility « CODELIST.EXE » is used to translate « in clear » a file of intermediate code « .EQU » (also called pivot language).

We are going to do the following: load and compile the first programming example in the « Grafcet » chapter: « simple1.agn » from the directory « Example\grafcet »:

Double click on « Generated files/Pivot code » in the browser.

You will obtain the following list of instructions:

:00000000: RES x0    AND i0

:00000002: SET x0    AND b0

:00000004: SET x0    AND x1   AND i1

:00000007: RES x1    AND i1

:00000009: SET x1    AND x0   AND i0

; Le code qui suit a été généré par la compilation de: 'affectations (actions Grafcet, logigrammes et ladder)'

:0000000C: EQU o0    ORR @x0  EOR @x1

:0000000F: EQU o23   AND @x1

This represents the translation of a « simple1.agn » application into low level literal language

The comments indicate where the portions of code came from, this is useful if an application is composed of multiple sheets.

Obtaining this list of instructions may be useful for answering questions regarding code generated for some program form or the use of some language.

In certain cases « critiques », for which it is important to know information such as « how many cycles does it take before this action becomes true ? » a step by step way and an in-depth examination of generated code will prove to be indispensable.

14.18 Advanced techniques


14.18.2 Optimizing generated code

Optimizing generated code

Various levels of optimization are possible.

Related Topics
14.18 Advanced techniques
14.18.2.1 Optimizing compiler generated code
14.18.2.2 Optimizing cycle time: reducing the number of time delays on Z targets
14.18.2.3 Optimizing cycle time: canceling scanning of certain parts of the program


14.18.2.1 Optimizing compiler generated code

Optimizing compiler generated code

The compiler optimization option is used to greatly reduce the size of generated code. This command requires that the compiler manage fewer lines of low level literal language, consequently increasing compiling time.

14.18.2 Optimizing generated code


14.18.2.2 Optimizing cycle time: reducing the number of time delays on Z targets

Optimizing cycle time: reducing the number of time delays on Z targets

For Z targets, the number of stated time delays directly affects the cycle time. Try to state the minimum time delays based on the application requirements.

14.18.2 Optimizing generated code


14.18.2.3 Optimizing cycle time: canceling scanning of certain parts of the program

Optimizing cycle time: canceling scanning of certain parts of the program

Only targets which accept JSR and RET instruction support this technique.

Special compilation commands are used to validate or « invalidate » scanning of certain parts of the program.

They are the sheets which define the portions of applications.

If an application is broken down into four sheets than each one can be separately « validated » or « invalidate ».

A command « #C(condition) » placed on the sheet conditions the searching of the sheet up to a sheet containing a « #R » command.

This condition must use the syntax established for the tests.

Example:

If a sheet contains the two commands:

#C(m200=4)

#R

Then everything that it contains will not be executed except word 200 containing 4.

14.18.2 Optimizing generated code


15 Examples

Examples

Related Topics
15.1 Regarding examples
15.2 Educational training manual for autoSIM-200 users
15.3 Distribution
15.4 Doctor R. in the home automation kingdom
15.5 First example: « which came first the bulb or the switch … »
15.6 It's your turn to play …
15.7 Second example: « time frames, time-switches and other time fun… »
15.8 Third Example: « variation on the theme of coming and going… »
15.9 Fourth example: « And the push button became intelligent … »
15.10 The solutions …


15.1 Regarding examples

Regarding examples

This part contains a series of examples providing an illustration of the different programming possibilities offered by autoSIM-200.

All of these examples are located in the « example » sub-directory in the directory where autoSIM-200 is installed.

This section contains the most complete and complex examples developed for a train model. The description of this model is located at the beginning of the language reference manual.

Related Topics
15 Examples
15.1.1 Simple grafcet
15.1.2 Grafcet with an OR divergence
15.1.3 Grafcet with an AND divergence
15.1.4 Grafcet and synchronization
15.1.5 Step setting
15.1.6 Destination and source steps
15.1.7 Destination and source steps
15.1.8 Setting Grafcets
15.1.9 Memorizing Grafcets
15.1.10 Grafcet and macro-steps
15.1.11 Linked sheets
15.1.12 Flow chart
15.1.13 Grafcet and Flow Chart
15.1.14 Literal language box
15.1.15 Organizational chart
15.1.16 Organizational chart
15.1.17 Function block
15.1.18 Function block
15.1.19 Ladder
15.1.20 Example developed on a train model


15.1.1 Simple grafcet

Simple grafcet

The first example is a simple line Grafcet

< Example\grafcet\sample1.agn

ð the transition in step 100 and step 110 is made up of a test on input 0,

ð step 110 activates the time delay 0 for a duration of 10 seconds, this time delay is used as a transition between step 110 and step 120,

ð step 120 activates outputs 0, 1 and 2,

ð the complement of input 0 will be the transition between step 120 and 100.

15.1 Regarding examples


15.1.2 Grafcet with an OR divergence

Grafcet with an OR divergence

< Example\grafcet\sample2.agn

This example shows the use of « Or » divergences and convergences. The number of branches is not limited by the size of the sheet. It is a non-exclusive « Or » by standard. For example, if inputs 1 and 2 are active, then steps 120 and 130 will be set to one.

15.1 Regarding examples


15.1.3 Grafcet with an AND divergence

Grafcet with an AND divergence

< Example\grafcet\sample3.agn

This example shows the use of « And» divergences and convergences. The number of branches is not limited by the size of the sheet.. Also note the following points

ð a step may not lead to an action (case of steps 100, 120, and 140),

ð orders « S » and « R » were used with output o2 (steps 160 and 180),

ð the transition between step 160 and 170 is left blank, so it is always true, the syntax « =1 » could also have been used.

15.1 Regarding examples


15.1.4 Grafcet and synchronization

Grafcet and synchronization

< Example\grafcet\sample4.agn

This example shows the possibilities autoSIM-200 offers for synchronizing multiple Grafcets. The transition between step 100 and 110 « éx1 » means « wait for a rising edge on 1 ». The transition« êx110 » means « wait for a falling edge on step 110 ». The step by step execution of this program shows the exact evolution of the variables and their front at each cycle. This makes it possible to understand exactly what happens during the execution. We can also see the use of multiple actions associated to step 110, which are individually conditioned here.

15.1 Regarding examples


15.1.5 Step setting

Step setting

< Example\grafcet\sample5.agn

In this example an order « S » (set to one) has been used to set a step. autoSIM-200 also authorizes setting of a Grafcet integer (see examples 8 and 9). Again in this example, the step by step execution lets us understand the exact evolution of the program over time. We can also see:

ð use of an non-looped Grafcet (100, 110, 120),

ð use of the order « RC0 » (reset by counter 0),

ð use of the order « +C0 » (incremented by counter 0),conditioned by the rising edge of input 4, due to incrementation by the counter, so it is necessary that step 100 be active and that a rising edge is detected on input 4.

15.1 Regarding examples


15.1.6 Destination and source steps

Destination and source steps

< Example\grafcet\sample6.agn

We have already seen similar forms, where the first step is activated by another Grafcet. Here activation of step 100 is realized by the transition « éi0 . i1 » (rising edge of input 0 and input 1). This example represents a shift register. « i1 » is information to memorize in the register and « i0 » is the clock which makes the shift progress. Example 7 is a variation which uses a time delay as a clock.

15.1 Regarding examples


15.1.7 Destination and source steps

Destination and source steps

< Example\grafcet\sample7.agn

Here again is the structure of the shift register used in example 6. This time the shift information is generated by a time delay (t0). « ét0 » represent the rising edge of the time delay, this information is true during a cycle when the time delay has finished. Step 1000 manages the launch of the time delay. The action of this step can be summed up as: « activate the count if it is not finished, otherwise reset the time delay». The functionality diagram of the time delays of this manual will help you to understand the functionality of this program.

15.1 Regarding examples


15.1.8 Setting Grafcets

Setting Grafcets

< Example\grafcet\sample8.agn

This example illustrates the use of a Grafcet set command. The order « F100:{} » means « reset all the Grafcet steps where one of the steps bears the number 100 ». Order « F100:{100} » is identical but sets step 100 to 1. We have used symbols for this example:

15.1 Regarding examples


15.1.9 Memorizing Grafcets

Memorizing Grafcets

< Example\grafcet\sample9.agn

This example is a variation of the previous program. The order « G100:100 » of step 1 memorizes the Grafcet production state before it is reset. When it starts again the production Grafcet will be put back in the state or the state it was in before the break, with order « F100:100 ». The Grafcet production state is memorized starting from bit 100 (this is the second parameter of orders « F » and « G » which indicates this site), command « #B200 » reserves bits u100 to u199 for this type of use. We can see that a « #B102 » command would have been sufficient here because the production Grafcet only needed two bits to be memorized (one bit per step).

15.1 Regarding examples


15.1.10 Grafcet and macro-steps

Grafcet and macro-steps

< Example\grafcet\sample11.agn

This example illustrate the use of macro-steps. The «Macro-step 1 » and « Macro-step 3 » sheets represent the expansion of macro-steps with the input and output steps. Steps 1 and 3 of the «Main program » sheet are defined as macro-steps. Access to macro-step expansion display can be done by clicking the left side of the mouse on the macro-steps.

15.1 Regarding examples


15.1.11 Linked sheets

Linked sheets

< Example\grafcet\sample12.agn

In this example two sheets have been used to write a program. The symbols « _NEXT_ » and « _CONTINUE_ » have been stated as bits (see the symbol file) and are used to make a link between the two Grafcets (this is another synchronization technique that can be used with autoSIM-200).

15.1 Regarding examples


15.1.12 Flow chart

Flow chart

< Example\logigramme\sample14.agn

The flow chart example shows the use of different blocks: the assignment block associated to key [0] to the left of the action rectangle the « no » block associated with key [1] which complements a signal and the test fixing blocks and « And» and « Or » functions.

15.1 Regarding examples


15.1.13 Grafcet and Flow Chart

Grafcet and Flow Chart

< Example\logigramme\exempl15.agn

In this example a Grafcet and a Flow Chart are used together. The symbol « _step1_ » used in the flow chart is associated to variable « x1 ».

This type of programming clearly displays activation conditions of an output.

15.1 Regarding examples


15.1.14 Literal language box

Literal language box

< Example\lit\sample16.agn

This program which associates Grafcet and literal language box is for testing inputs i0 to i99. If one of the inputs is at one, then step 2 is active and the Grafcet is in a state where all evolution is prohibited. The symbol. « _flag an input is at one_ » is associated to bit u500. An indexed addressing is used to scan the 100 inputs. We can also see the simultaneous use of low level and extended literal language.

15.1 Regarding examples


15.1.15 Organizational chart

Organizational chart

< Example\organigramme\sample18.agn

This example shows the use of an organizational chart for effecting an algorithmic and numeric treatment. Here three inputs from a code wheel is read and stored in a word if a validation input is active.

15.1 Regarding examples


15.1.16 Organizational chart

Organizational chart

< Example\organigramme\sample19.agn

This second example of an organizational chart creates a loop structure which is used to set a series of outputs (o10 to o29) with an indirect addressing(« o(200) »).

15.1 Regarding examples


15.1.17 Function block

Function block

< Example\bf\sample20.agn

; Gestion de l'entrée de RAZ

IF({I0})

THEN

{?2}=[{?0}]

ENDIF

; Gestion de l'entrée de comptage

IF(#{I1})

THEN

{?2}=[{?2}+1]

ENDIF

; Teste la borne maxi

IF({?2}={?1})

THEN

{O0}=(1)

{?2}=[{?0}]

ENDIF

ELSE

{O0}=(0)

ENDIF

count lib (included in project resources)

This example illustrates the use of a function block. The functions of the« COUNT » block that we have defined here are as follows:

ð the count will start from an init value and will finish at a maximum limit value

ð while the count value waits for the maximum limit it will be set the initial value and the block output will pass to one during a program cycle.,

ð the block will have a RAZ boolean input and a count input on the rising edge.

15.1 Regarding examples


15.1.18 Function block

Function block

< Example\bf\sample21.agn

; Ou exclusif

neq {o0} orr /{i0} eor {i1} orr {i0} eor /{i1}

ou_exclu.lib (included in the project resources)

This second example of a function block shows the multiple use of the same block. The « EXCLUSIVE_OR » block creates an exclusive or between the two boolean inputs This example uses 5 blocks to create an exclusive or among 6 inputs (i0 à i5). The « EXCLUSIVE_OR.LIB » listed below supports the functionality of the block. The exclusive or boolean equation is as follows: « (i0./i1)+(/i0.i1) ».

The equivalent form used here makes it possible to code the equation on a single line of low level literal language without using intermediate variables.

15.1 Regarding examples


15.1.19 Ladder

Ladder

< Example\laddersample22.agn

This example illustrates the use of ladder programming.

15.1 Regarding examples


15.1.20 Example developed on a train model

Example developed on a train model

The adventures of Doctor R.

15.1 Regarding examples


15.2 Educational training manual for autoSIM-200 users

Educational training manual for autoSIM-200 users

Designed by TABAN

15 Examples


15.3 Distribution

Distribution

Doctor R. ………………………………………………… Mister R.

15 Examples


15.4 Doctor R. in the home automation kingdom

Doctor R. in the home automation kingdom

We are going to look at different example which can be directly applied in a home automation project. From an initial easy manner, these examples can be used to learn the different aspects that are the basis of automatisms and autoSIM-200 and IRIS training

15 Examples


15.5 First example: « which came first the bulb or the switch … »

First example: « which came first the bulb or the switch … »

A simple switch and a simple bulb: the switch is wired on input i0, the bulb on output o0. If the switch is closed then the bulb lights up, if the switch is open the bulb goes off. Hard to make it any simpler.

Related Topics
15 Examples
15.5.1 Solution 1: natural language of an electrician: ladder
15.5.2 Solution 2: the sequential language of the automation specialist: Grafcet


15.5.1 Solution 1: natural language of an electrician: ladder

Solution 1: natural language of an electrician: ladder

The ladder is the most direct transcription of a wiring diagram. The contact receives the name of the input where the switch is wired, the coil the name of the output where the bulb is wired.

Related Topics
15.5 First example: « which came first the bulb or the switch … »


15.5.2 Solution 2: the sequential language of the automation specialist: Grafcet

Solution 2: the sequential language of the automation specialist: Grafcet

Grafcet is based on the idea of state. For our problem we could say that there are two states: the on state and the off state. Each step represents a state: here step 0 represents the off state and step 1 the on state. The condition which makes the off state go to the on state still needs to be determined: here the off switch (see i0) then the condition the causes the change from the on state to the off state: here the open switch (see / i0). The conditions are written to the right of the element marked transition. The rectangle associated to step 1 called action rectangle contains the name of output O0 (the output where our bulb is wired). So, the state of the bulb is always the same as that for step 1.

The happy owners of IRIS can use two BPVOYANT objects to simulate this first example.

Related Topics
15.5 First example: « which came first the bulb or the switch … »


15.6 It's your turn to play …

It's your turn to play …

Switch 1 lights bulb 1, switch 2 bulb 2. A Grafcet solution is proposed at the end of this document.

15 Examples


15.7 Second example: « time frames, time-switches and other time fun… »

Second example: « time frames, time-switches and other time fun… »

As you certainly deduce, the idea of a time frame is used when a program, in one way or another, must carry out actions taking into account data relative to time. For example, waiting for a certain amount of time before carrying out an action or carrying out an action within a certain amount of time.

Our second example is as follows: a hallway is equipped with a bulb and two push button. Pressing one of the push buttons lights the bulb for two minutes (after this gives Dr. R. plenty of time to cross the hallway).

Related Topics
15 Examples
15.7.1 Solution 1: simplicity
15.7.2 Solution 2: improvement


15.7.1 Solution 1: simplicity

Solution 1: simplicity

Related Topics
15.7 Second example: « time frames, time-switches and other time fun… »


15.7.2 Solution 2: improvement

Solution 2: improvement

A problem is posed by this solution, if the push button is pressed while the bulb is lit, the time delay is not reset. Earlier Dr. R thought he had reset the time switch and found himself in the dark last week.

And if you want to try your hand at writing a real program …

Intelligent management of lighting a hallway: a bulb is placed at each end. When a switch is pressed: the two bulbs light, then the bulb that is at the end near the pressed switch goes off at the end of 30 seconds and then the other at the end of one minute.

Related Topics
15.7 Second example: « time frames, time-switches and other time fun… »


15.8 Third Example: « variation on the theme of coming and going… »

Third Example: « variation on the theme of coming and going… »

Remember the ingenious principle of coming and going: two switches make it possible to turn on or turn off the same bulb.

Here is a flow chart solution:

Purists will have recognized the exclusive or boolean equation.

Things become really interesting if you want to keep the coming and going properties with a number of switches greater than 2.

A solution using autoSIM-200 literal language.

A cleverer one:

« IO0 » means « invert the state of output 0 ».

Try this:

A big room with 6 switches and 10 bulbs. Each switch can be used to more or less light the room (clearly passing from a state where everything is off to a state where one bulb is on, then two etc …).

15 Examples


15.9 Fourth example: « And the push button became intelligent … »

Fourth example: « And the push button became intelligent … »

In all the previous examples, the push buttons carried out only one function. And so the person who used them only had two choices: to press them or not to press them in order to obtain a function (turning on or off). Image a « better performing » push button able to receive two types of pressure: a short pressure (arbitrarily less than one second) or a long pressure (arbitrarily at least a second).

For this example four push buttons and four bulbs. By default, in normal use each push button is associated to a bulb. A short press on a push button turns on or off the associated bulb. Each push button must allow piloting one bulb or all of the bulbs. The table below describes this functionality.

Type of action on push button | Result
One short press | The associated bulb changes state
One long press and one short one | Bulb 1 changes state
One long press and two short ones | Bulb 2 changes state
One long press and three short ones | Bulb 3 changes state
One long press and four short ones | Bulb 4 changes state
Two long presses and a short one | All the bulbs go out
Tow long presses and two short ones | All the bulbs go on

This ends our educational training manual. We hope that it has allowed you to discover the possibilities of autoSIM-200.

We have one last exercise for you.

Automate your aunt Hortense's apartment bearing in mind her excessive fondness for nickel-plated switches.

15 Examples


15.10 The solutions …

The solutions …

Related Topics
15 Examples
15.10.1 « which came first the switch or the bulb … »
15.10.2 « time delays, time switches and other time fun… »
15.10.3 « variation on the theme of coming and going …»


15.10.1 « which came first the switch or the bulb … »

« which came first the switch or the bulb … »

Just write two identical Grafcets. Each one is separately occupied by a switch and a bulb.

15.10 The solutions …


15.10.2 « time delays, time switches and other time fun… »

« time delays, time switches and other time fun… »

A simple version with no time switch reset management.

Resetting the time switch makes the program very complex.

The third solution uses Grafcet, ladder language and Grafcet settings. The program remains readable.

15.10 The solutions …


15.10.3 « variation on the theme of coming and going …»

« variation on the theme of coming and going …»

SIMULA

15.10 The solutions …


16 SIMULA

SIMULA

Related Topics
16.1 Introduction
16.2 Installation
16.3 autoSIM-200’s “beginner” mode
16.4 Using SIMULA
16.5 Advanced functions


16.1 Introduction

Introduction

SIMULA is a pneumatic / electrical / hydraulic simulation module.

It can be used independently or in addition to the autoSIM-200 applications:

16 SIMULA


16.2 Installation

Installation

To install SIMULA, install autoSIM-200. In options, be sure that « SIMULA » is checked.

Related Topics
16 SIMULA
16.2.1 Practical experience


16.2.1 Practical experience

Practical experience

Let us do a simple example: cylinder + directional valve

Click with the right side of the mouse on « SIMULA »

Select “Add an SIMULA page”

Click with the right side of the mouse on the SIMULA sheet (right part) then select “Add an object”

Select “double acting cylinder”, and then click on “Open”.

Repeat the steps above then add a 4/2 directional valve with monostable hand control, a pressure source and a pneumatic exhaust.

You should obtain the following:

Create connections between the different components: Move the cursor over the connections (light blue circles), press the left button of the mouse then release it, move the cursor of the mouse to the connection where the link must be connected, press the left button of the mouse then release it.

Repeat the above step for each connection until the following result is achieved:<}0{>

Click on the “GO” button on the toolbar.

The cylinder shaft will come out. To make it go back in, click on the manual control of the distributor.

While it is running, you can make changes, add objects, move them, etc…

With SIMULA, it is not necessary to stop simulation!

To end the simulation, click again on “GO”.

16.2 Installation


16.3 autoSIM-200’s “beginner” mode

autoSIM-200’s “beginner” mode

autoSIM-200’s “Beginner” mode allows you to use simplified palettes for SIMULA. The “Beginner, automaton, electricity and pneumatic” mode allows you to use an environment where a programmable automaton is already “pre-wired”:

In order to reference the automaton’s inputs and outputs, the %In (where n=the number of the input) or %Qn (where n=the number of the output) can be used. It is also possible to “drag” the name of an input or output by clicking on its name on the SIMULA diagram and moving the cursor to a transition or action rectangle of the autoSIM-200 sheet. Programming can thus be done just using the mouse.

16 SIMULA


16.4 Using SIMULA

Using SIMULA

Related Topics
16 SIMULA
16.4.1 Organizing applications
16.4.2 Opening an existing application
16.4.3 Creating an SIMULA sheet
16.4.4 Adding an object onto an SIMULA sheet
16.4.5 Using the palette
16.4.6 Selecting one or more objects.
16.4.7 Selecting one or more objects
16.4.8 Deleting one or more objects
16.4.9 Changing the orientation of one or more objects
16.4.10 Copying/cutting one or more objects to the clipboard
16.4.11 Pasting one or more objects from the clipboard
16.4.12 Modifying object properties.
16.4.13 Exporting one or more objects


16.4.1 Organizing applications

Organizing applications

SIMULA applications are written on one or more sheets that appear in the tree structure of autoSIM-200. The objects are then placed on the sheet(s): an object = a component such as a cylinder or an electrical contact.

16.4 Using SIMULA


16.4.2 Opening an existing application

Opening an existing application

The subdirectory « Examples / SIMULA » of the installation directory of autoSIM-200 contains examples done with SIMULA. <0}

16.4 Using SIMULA


16.4.3 Creating an SIMULA sheet

Creating an SIMULA sheet

To add an autoSIM sheet in the tree structure of a project, click with the right button of the mouse on the “SIMULA” component in the tree structure, then select “Add an SIMULA page”.

An SIMULA sheet is then created.

16.4 Using SIMULA


16.4.4 Adding an object onto an SIMULA sheet

Adding an object onto an SIMULA sheet

Click with the right button of the mouse on the SIMULA sheet ( shown below on the right) and select “Add an object”.

The selection assistant for an object then appears:

The assistant shows a preview of the object in the bottom of the window. To add the object onto the SIMULA sheet, click on “Open the object”.

Then move the mouse to place the object on the SIMULA sheet, press the left button of the mouse and release it to leave the object.

You will obtain the following result:

16.4 Using SIMULA


16.4.5 Using the palette

Using the palette

1- Click on the object(s) in the palette (they appear as selected): framed by black squares).

2- Click on the selected object(s), keep the button pressed and drag the object onto the sheet.

16.4 Using SIMULA


16.4.6 Selecting one or more objects.

Selecting one or more objects.

To select an object, move the cursor of the mouse over the object, press the left button of the mouse and release it. Black squares appear around the objects when they are selected:

To deselect an object, repeat the same step.

To select several objects: keep the SHIFT key of the keyboard pressed and select several objects following the method described above.

To select several objects that are in the same area: press the left button of the mouse, move the cursor of the mouse – a selection rectangle emerges – release the left button of the mouse when the selection rectangle is of the desired size.

To select an object that is under another object (several objects can be superimposed), click several times with the left button of the mouse on the objects covering each other: at each click, the selection moves from one object to the other.

16.4 Using SIMULA


16.4.7 Selecting one or more objects

Selecting one or more objects

Move the cursor over one or more selected objects – the cursor of the mouse takes on the appearance of four direction arrows – press the left button of the mouse, move the objects by moving the mouse, release the left button of the mouse when the desired position for the objects is reached.

16.4 Using SIMULA


16.4.8 Deleting one or more objects

Deleting one or more objects

Move the cursor over one or several selected objects, press then release the right button of the mouse and select “Delete”.

16.4 Using SIMULA


16.4.9 Changing the orientation of one or more objects

Changing the orientation of one or more objects

Move the cursor over one or more selected objects, press then release the right button of the mouse and select the desired setting in the “Rotation” menu.

16.4 Using SIMULA


16.4.10 Copying/cutting one or more objects to the clipboard

Copying/cutting one or more objects to the clipboard

Move the cursor over one or more selected objects, press then release the right button of the mouse and select “Copy” or “Paste”.

16.4 Using SIMULA


16.4.11 Pasting one or more objects from the clipboard

Pasting one or more objects from the clipboard

Press then release the right button of the mouse over an empty area of the SIMULA sheet and select “Paste” in the menu.

16.4 Using SIMULA


16.4.12 Modifying object properties.

Modifying object properties.

Move the cursor over one or more selected objects, press then release the right button of the mouse and select “Properties”.

Example of the properties of a directional valve:

16.4 Using SIMULA


16.4.13 Exporting one or more objects

Exporting one or more objects

Move the cursor over one or more selected objects, press then release the right button of the mouse and select “Export”.

The objects are exported to files with the extension .ASO.

By exporting to the subdirectory “SIMULA/lib” of the installation directory of autoSIM-200, the new objects created appear in the SIMULA assistant. The name of the file is the name shown in the assistant. If the name must contain the character ‘/’, substitute this character with ‘@’ in the file name.

16.4 Using SIMULA


16.5 Advanced functions

Advanced functions

Related Topics
16 SIMULA
16.5.1 Interactions between objects
16.5.2 Creating sensors associated with a cylinder
16.5.3 Interactions between SIMULA objects and the automaton program
16.5.4 Interactions between SIMULA objects and the IRIS 3D operational unit simulator
16.5.5 Interactions between SIMULA objects and the IRIS2D supervision objects
16.5.6 How can a link be made between an IRIS2D pushbutton or switch and an SIMULA pushbutton or switch?
16.5.7 How can a link be made between an SIMULA object and an IRIS2D indicator light?
16.5.8 Drag and drop from an SIMULA variable to an autoSIM-200 sheet
16.5.9 User-definable objects
16.5.10 Designs
16.5.11 List of design primitives
16.5.12 Program
16.5.13 Connections
16.5.14 Example


16.5.1 Interactions between objects

Interactions between objects

Interactions between SIMULA objects are realized either by visual links defined on the sheets (a pneumatic or electrical line connecting two objects, for example) or by a symbol. A symbol is a generic name, for example “mini sensor”. A symbol may have any name whatsoever except for key words reserved for the names of autoSIM-200 variables (see the autoSIM-200 language reference manual) and symbols used in the autoSIM-200 symbol table.

16.5 Advanced functions


16.5.2 Creating sensors associated with a cylinder

Creating sensors associated with a cylinder

The mini and maxi end stops of a cylinder can be configured in the properties of the cylinder. Example:

References for the symbols used can be found in the electrical contacts

For example:

The sensors can also be positioned directly on the SIMULA sheet. For example:

The gray circle associated with the sensor objects must coincide with the gray dot located on the piston or the cylinder shaft so that the sensor is activated.

16.5 Advanced functions


16.5.3 Interactions between SIMULA objects and the automaton program

Interactions between SIMULA objects and the automaton program

As seen above, the symbols used in the SIMULA objects allow information to be exchanged between the objects. Where you want to communicate solely between SIMULA objects, these symbols cannot be the names of either autoSIM-200 variables or autoSIM-200 symbols. If you use the name of an autoSIM-200 variable or an autoSIM-200 symbol, these autoSIM-200 objects reference the autoSIM-200 variables and may therefore, depending on the actual situation, read or write to the automaton application’s variables.

Example:

16.5 Advanced functions


16.5.4 Interactions between SIMULA objects and the IRIS 3D operational unit simulator

Interactions between SIMULA objects and the IRIS 3D operational unit simulator

In the IRIS 3D “Translations” and “Rotations” behaviors, the “SIMULA” type allows you to reference the position of an SIMULA cylinder object (see the example complet2.agn).

16.5 Advanced functions


16.5.5 Interactions between SIMULA objects and the IRIS2D supervision objects

Interactions between SIMULA objects and the IRIS2D supervision objects

16.5 Advanced functions


16.5.6 How can a link be made between an IRIS2D pushbutton or switch and an SIMULA pushbutton or switch?

How can a link be made between an IRIS2D pushbutton or switch and an SIMULA pushbutton or switch?

16.5 Advanced functions


16.5.7 How can a link be made between an SIMULA object and an IRIS2D indicator light?

How can a link be made between an SIMULA object and an IRIS2D indicator light?

Comments: note that the SIMULA variables are considered as numerical variables. It is therefore necessary to write “su=1”

16.5 Advanced functions


16.5.8 Drag and drop from an SIMULA variable to an autoSIM-200 sheet

Drag and drop from an SIMULA variable to an autoSIM-200 sheet

This application is used, for example, in “Beginner” mode in order to be able to “drag” the name of inputs or outputs from the automaton to the autoSIM-200 sheet.

To use this application, use a “Design”-type SIMULA object and document the “Drag and drop” section with the text that could be “dragged” from the SIMULA sheet to the autoSIM-200 sheet.

16.5 Advanced functions


16.5.9 User-definable objects

User-definable objects

The user-definable object will allow you to create your own simulation objects.

To create such an object, open the following object:

The object is shown as a grey square as long as it has not been parameterized:

To access the object definition, open the object’s properties (select the object, right-click over it then “Properties”) and click on “Define the object”.

The “Object width” and “Object height” areas allow you to define the dimensions of the object.

The “Designs”, “Program” and “Connections” areas allow you to define the object’s design (its appearance), its behavior and the connections respectively.

16.5 Advanced functions


16.5.10 Designs

Designs

This area allows you to define the design of the object with the help of the design primitive. The “Insert”, “Delete” and “Modify” buttons allow you respectively to add or delete a primitive or to modify the parameters associated with a primitive. The design primitives use this system of co-ordinates:

Horizontal axis

Each primitive can receive one or more parameters.

Note that the design primitives only define objects without rotation; the design with rotation is automatically generated by SIMULA. The same is true for the scale: primitives design at scale 1; SIMULA handles scaling according to the zoom selected by the user.

By clicking on “Insert”, a dialogue box allows you to select a design primitive.

16.5 Advanced functions


16.5.11 List of design primitives

List of design primitives

Related Topics
16.5 Advanced functions
16.5.11.1 Drawing primitive
16.5.11.2 MOVE
16.5.11.3 LINE
16.5.11.4 RECT
16.5.11.5 ELLI
16.5.11.6 RREC
16.5.11.7 TRIA
16.5.11.8 CHOR
16.5.11.9 ARCE
16.5.11.10 TEXT
16.5.11.11 Attribute primitives
16.5.11.12 BRUS
16.5.11.13 PENC
16.5.11.14 FONT
16.5.11.15 Other primitives
16.5.11.16 JUMP
16.5.11.17 JPIF
16.5.11.18 DISP


16.5.11.1 Drawing primitive

Drawing primitive

These primitives produce a drawing.

16.5.11 List of design primitives


16.5.11.2 MOVE

MOVE

Moves the pen (without drawing).

Parameters:

- horizontal position,

- vertical position.

16.5.11 List of design primitives


16.5.11.3 LINE

LINE

Draws a line from the pen’s current position to the position indicated.

Parameters:

- horizontal position,

- vertical position.

16.5.11 List of design primitives


16.5.11.4 RECT

RECT

Draws a rectangle.

Parameters:

- horizontal position of the top left corner,

- vertical position of the top left corner,

- horizontal position of the bottom right corner,

- vertical position of the bottom right corner.

16.5.11 List of design primitives


16.5.11.5 ELLI

ELLI

Draws an ellipse.

Parameters:

- horizontal position of the top left corner of the rectangle containing the ellipse,

- vertical position of the top left corner of the rectangle containing the ellipse,

- horizontal position of the bottom right corner of the rectangle containing the ellipse,

- vertical position of the bottom right corner of the rectangle containing the ellipse.

16.5.11 List of design primitives


16.5.11.6 RREC

RREC

Draws a rectangle with rounded corners.

Parameters:

- horizontal position of the top left corner,

- vertical position of the top left corner,

- horizontal position of the bottom right corner,

- vertical position of the bottom right corner,

- horizontal rounded corner radius,

- vertical rounded corner radius,

16.5.11 List of design primitives


16.5.11.7 TRIA

TRIA

Draws a triangle.

Parameters:

- horizontal position of point 1,

- vertical position of point 1,

- horizontal position of point 2,

- vertical position of point 2,

- horizontal position of point 3,

- vertical position of point 3.

16.5.11 List of design primitives


16.5.11.8 CHOR

CHOR

Draws a chord (intersection of an ellipse and a straight line).

Parameters:

- horizontal position of the top left corner of the rectangle containing the ellipse,

- vertical position of the top left corner of the rectangle containing the ellipse,

- horizontal position of the bottom right corner of the rectangle containing the ellipse,

- vertical position of the bottom right corner of the rectangle containing the ellipse,

- horizontal position of the start of the line,

- vertical position of the start of the line,

- horizontal position of the end of the line,

- vertical position of the end of the line.

16.5.11 List of design primitives


16.5.11.9 ARCE

ARCE

Draws an arc of an ellipse (the part of an ellipse cut by a straight line).

Parameters:

- horizontal position of the top left corner of the rectangle containing the ellipse,

- vertical position of the top left corner of the rectangle containing the ellipse,

- horizontal position of the bottom right corner of the rectangle containing the ellipse,

- vertical position of the bottom right corner of the rectangle containing the ellipse,

- horizontal position of the start of the line,

- vertical position of the start of the line,

- horizontal position of the end of the line,

- vertical position of the end of the line.

16.5.11 List of design primitives


16.5.11.10 TEXT

TEXT

Draws a text box.

Parameters:

- horizontal position,

- vertical position,

- text.

16.5.11 List of design primitives


16.5.11.11 Attribute primitives

Attribute primitives

These primitives modify the layout of the drawing primitives (the line or fill color, for example).

16.5.11 List of design primitives


16.5.11.12 BRUS

BRUS

Modifies the fill color for figures or the background color for text boxes.

Parameter:

- color.

16.5.11 List of design primitives


16.5.11.13 PENC

PENC

Modifies the color of lines or text.

Parameter:

- color.

16.5.11 List of design primitives


16.5.11.14 FONT

FONT

Modifies the font of the text.

16.5.11 List of design primitives


16.5.11.15 Other primitives

Other primitives

16.5.11 List of design primitives


16.5.11.16 JUMP

JUMP

Unconditional jump.

Parameter:

- label.

16.5.11 List of design primitives


16.5.11.17 JPIF

JPIF

Conditional jump.

Parameters:

- label,

- element 1,

- type of comparison,

- element 2.

(See the programming primitives below for more information).

16.5.11 List of design primitives


16.5.11.18 DISP

DISP

Displays the state of a variable. Can be used for debugging an object by displaying the value of a variable associated with the object.

Parameters:

- variable,

- horizontal position,

- vertical position.

16.5.11 List of design primitives


16.5.12 Program

Program

This area allows you to define the program governing the object’s working. Each object has variables:

128 32-bit integer variables,

128 32-bit floating-point variables.

And also for each connection:

- a floating-point value on input,

- a floating-point value on output,

- an associated writing mode that can have the following values:

o   0: no writing has been done,

o   1: the “floating-point value on output” has been written,

o   2: a connection has been realized with the connection whose number is in “floating-point value on output”,

o   3: locking (pneumatic or hydraulic plug).

The following internal integer variables are special:

125: contains 0 if dynamic visualization is active, 1 if not (useful in order to have a different design for dynamic visualization and otherwise).

126: contains a value representing a user event: 0=no event, 1=left mouse button released, 2=left mouse button pressed, 3=right mouse button released, 4=right mouse button pressed.

127: contains the elapsed time in ms between 2 operations of the program.

Related Topics
16.5 Advanced functions
16.5.12.1 List of programming primitives
16.5.12.2 MOVV
16.5.12.3 ADDV
16.5.12.4 SUBV
16.5.12.5 MULV
16.5.12.6 DIVV
16.5.12.7 ORRV
16.5.12.8 ANDV
16.5.12.9 XORV
16.5.12.10 JUMP
16.5.12.11 JPIF


16.5.12.1 List of programming primitives

List of programming primitives

16.5.12 Program


16.5.12.2 MOVV

MOVV

Copies a constant or a variable into a variable.

Parameters:

- destination variable,

- source variable or constant.

16.5.12 Program


16.5.12.3 ADDV

ADDV

Adds a constant or variable to a constant or variable and places the result in a variable.

Parameters:

- destination variable,

- source 1 variable or constant,

- source 2 variable or constant.

16.5.12 Program


16.5.12.4 SUBV

SUBV

Subtracts a constant or variable from a constant or variable and places the result in a variable.

Parameters:

- destination variable,

- source 1 variable or constant,

- source 2 variable or constant.

16.5.12 Program


16.5.12.5 MULV

MULV

Multiplies a constant or variable by a constant or variable and places the result in a variable.

Parameters:

- destination variable,

- source 1 variable or constant,

- source 2 variable or constant.

16.5.12 Program


16.5.12.6 DIVV

DIVV

Divides a constant or variable by a constant or variable and places the result in a variable.

Parameters:

- destination variable,

- source 1 variable or constant,

- source 2 variable or constant.

16.5.12 Program


16.5.12.7 ORRV

ORRV

Carries out a bit-by-bit OR between a constant or variable and a constant or variable and places the result in a variable.

Parameters:

- destination variable,

- source 1 variable or constant,

- source 2 variable or constant.

16.5.12 Program


16.5.12.8 ANDV

ANDV

Carries out a bit-by-bit AND between a constant or variable and a constant or variable and places the result in a variable.

Parameters:

- destination variable,

- source 1 variable or constant,

- source 2 variable or constant.

16.5.12 Program


16.5.12.9 XORV

XORV

Carries out a bit-by-bit exclusive OR between a constant or variable and a constant or variable and places the result in a variable.

Parameters:

- destination variable,

- source 1 variable or constant,

- source 2 variable or constant.

16.5.12 Program


16.5.12.10 JUMP

JUMP

Unconditional jump.

Parameter:

- label.

16.5.12 Program


16.5.12.11 JPIF

JPIF

Conditional jump.

Parameters:

- label,

- element 1,

- type of comparison,

- element 2.

16.5.12 Program


16.5.13 Connections

Connections

Makes it possible to create the object’s connection points. By clicking on “Insert”, the following dialogue box is opened:

For each connection, define the position and the technology. The number shown against each connection must be used to access the value in the object’s programming.

16.5 Advanced functions


16.5.14 Example

Example

The “Examples\SIMULA” sub-directory of the autoSIM-200 installation directory contains an example illustrating use of the user-definable object: a contact:

POST-PROCESSORS

16.5 Advanced functions


17 POST-PROCESSORS

POST-PROCESSORS

17.1 General Information


17.1 General Information

General Information

Post-processors are software modules used to translate pivot code files generated by the autoSIM-200 compiler into executable files on a target as well as ensuring dynamic connection of the target.

The word « Target» is a generic reference for a programmable system capable of executing an application.

An autoSIM-200 post-processor is used to program a type or type set of targets (generally a family of processors sharing the same language can be programmed with the same post-processor in autoSIM-200).

The first part of this manual contains basic information that is common to all post-processors. Specific information regarding applications for each post-processor is described further on.

17 POST-PROCESSORS


18 Configuration

Configuration

Please carefully read the explanations in this chapter.

Related Topics
18.1 Configuration files
18.2 Configuration by default
18.3 Displaying and modifying configuration elements
18.4 System
18.5 Variable functions
18.6 Start-up manufacturer code, end manufacturer code
18.7 Entering machine code in an application
18.8 Selecting connection options
18.9 Selecting a connection mode
18.10 Setting communication module parameters


18.1 Configuration files

Configuration files

Four configuration elements are used for each post-processor. Each is used for a specific purpose.

Related Topics
18 Configuration
18.1.1 System
18.1.2 Variable functions
18.1.3 Start-up manufacturer code
18.1.4 End manufacturer code


18.1.1 System

System

This contains the hardware configuration of the target, software configuration, options for modifying the way the post-processor generates the code as well as reserved variable statements (for using inside the post-processor). Generally, depending on the target, you will modify the hardware configuration contained in that element (for example the type of UC or a configuration of the type of input/output cards)

18.1 Configuration files


18.1.2 Variable functions

Variable functions

Mastering variable functions is one of the fundamental elements for mastering the use of post-processors.

When the post-processor translates a autoSIM-200 pivot language file into a specific target language, it must attribute autoSIM-200 variables to the target variables.

This element contains the exact description of variable attribution. By modifying this element you have total control over the use of the target variable space.

18.1 Configuration files


18.1.3 Start-up manufacturer code

Start-up manufacturer code

This element contains the machine language for the target which will be placed at the beginning of the executable code generated by the post-processor (executed at the beginning of the cycle).

18.1 Configuration files


18.1.4 End manufacturer code

End manufacturer code

This element contains the machine language for the target which will be placed at the end of the executable code generated by the post-processor (executed at the end of the cycle).

18.1 Configuration files


18.2 Configuration by default

Configuration by default

When a project is created, the default configuration elements are duplicated in the project. Modifications to the project configuration elements will not affect the default statements.

Related Topics
18 Configuration
18.2.1 Modifying the default statements
18.2.2 Using the default statements.


18.2.1 Modifying the default statements

Modifying the default statements

Use the right side of the mouse to click on the element « Configuration / Post-processor / <target name> / … » and select « Set as default configuration». The project configuration will then be set by default (canceling of the default configuration).

Zone de Texte:

Be careful, this operation is irreversible. The configuration element can only be restored if the post-processor is reinstalled.

18.2 Configuration by default


18.2.2 Using the default statements.

Using the default statements.

Use the right side of the mouse to click on the element « Configuration / Post-processor / <target name> / … » and select « Using default configuration». The project configuration in progress is cancelled by the default configuration.

18.2 Configuration by default


18.3 Displaying and modifying configuration elements

Displaying and modifying configuration elements

Access the configuration files by double clicking on the « Configuration / Post-processors / <target name> / … » element. A window will open that can be used to display and modify the configuration element.

18 Configuration


18.4 System

System

This configuration element is specific for each post-processor

Related Topics
18 Configuration
18.4.1 Hardware configuration
18.4.2 Software configuration
18.4.3 Code generation options
18.4.4 Stating the variables
18.4.5 Other elements
18.4.6 See the « System » element in text format.
18.4.7 Displaying system elements


18.4.1 Hardware configuration

Hardware configuration

This area (optional) is modified to establish the hardware configuration of a target (for example, type of CPU, input/output cards)

18.4 System


18.4.2 Software configuration

Software configuration

This area (optional) is modified to establish the characteristics of an application configuration (for example, the value of a watchdog).

18.4 System


18.4.3 Code generation options

Code generation options

This area contains the settings for the translation method that the post-processor must use (only for specialists). The number of options may differ from one post-processor to another. The list below shows the options which all post-processors have in common:

Related Topics
18.4 System
18.4.3.1 « Optimize generated code »
18.4.3.2 « Do not generate the code of Grafcet steps »
18.4.3.3 « Do not generate the evolution code of user bits »


18.4.3.1 « Optimize generated code »

« Optimize generated code »

Generally set on « Yes».. A « No » setting is used for an easier analysis of generated code.

18.4.3 Code generation options


18.4.3.2 « Do not generate the code of Grafcet steps »

« Do not generate the code of Grafcet steps »

Set to « No ». by default. If set to « Yes», in the « End machine code » you must write the instructions used to recopy the immediate states of boolean variables transferred to the past states (see chapter Managing autoSIM-200 boolean variables )

18.4.3 Code generation options


18.4.3.3 « Do not generate the evolution code of user bits »

« Do not generate the evolution code of user bits »

Identical to the previous option but applied to autoSIM-200 user bits (« U » variables).

18.4.3 Code generation options


18.4.4 Stating the variables

Stating the variables

These are statements of variables used internally by the post-processor. Only specialists can modify these variables.

18.4 System


18.4.5 Other elements

Other elements

There may be other specific elements for each post-processor.

18.4 System


18.4.6 See the « System » element in text format.

See the « System » element in text format.

By clicking on the [image] icon in the toolbar, you go from tree mode to « text » mode (format of old autoSIM-200 versions). In « Text » format you can copy and paste information into the configuration files.

Zone de Texte:

Modification to « text » mode must be made by specialists, inopportune modifications can lead to compiling errors which are difficult for an inexperienced person to find.

18.4 System


18.4.7 Displaying system elements

Displaying system elements

By double clicking on « Configuration / Post-processors / <name of post-processor> / System » the following window opens.

Example of system configuration

18.4 System


18.5 Variable functions

Variable functions

Mastering variable functions is one of the fundamental elements for mastering the use of post-processors.

When the post-processor translates a autoSIM-200 pivot language file into a specific target language, it must attribute autoSIM-200 variables to the target variables.

For example, if you use the autoSIM-200 word 200 in your application (called M200 or %MW200 in autoSIM-200) this word must exist in the target memory and thus must have a name for that target.

autoSIM-200 proposes three types of statements for variable functions.

- single assignment;

- linear assignment

- automatic assignment

Variable functions for a project will be composed of « n » assignments each one using one of the three types.

Related Topics
18 Configuration
18.5.1 Single assignment
18.5.2 Linear assignment
18.5.3 Automatic assignment
18.5.4 Types of autoSIM-200 elimination variables
18.5.5 Modifying a variable function element
18.5.6 Adding a variable function element
18.5.7 Deleting a variable function element
18.5.8 Associating an autoSIM-200 bit to a target system bit
18.5.9 Associating a table of autoSIM-200 words to a table of fixed target words
18.5.10 Associating autoSIM-200 words to target analog inputs or outputs
18.5.11 Associating a table of autoSIM-200 bits to a table of target bits
18.5.12 See the variable functions in text format


18.5.1 Single assignment

Single assignment

This is used to associate an autoSIM-200 variable to a target variable. It is the simplest of the statements

It can only be used if a single statement is necessary.

This statement uses two pieces of information. the name of the autoSIM-200 variable and the name of the target variable.

« Associate this autoSIM-200 variable to that target variable », to effect a single assignment..

18.5 Variable functions


18.5.2 Linear assignment

Linear assignment

This form is more evolved than a single assignment.

It is used to associate a series of consecutive autoSIM-200 variables (multiple variables of the same type where the numbers are in order) to a series of consecutive target variables.

The assignment is normally used for:

- stating input/output variables;

- stating bit or word tables which must have a fixed address (for example, for a link with an operator control panel).

This statement uses three pieces of information: the name of the first autoSIM-200 variable, the name of the first target variable and the dimension of the table in number of variables.

« Associate this autoSIM-200 variable table in order to that target variable table », to effect a linear assignment.

18.5 Variable functions


18.5.3 Automatic assignment

Automatic assignment

This is the most complex and powerful type of statement. It is used to associate one or more types of autoSIM-200 variables to a range of target variables.

This assignment gives the compiler the task of finding an assignment for each variable in the generated code (as long as it corresponds to one of the types) of the statement.

This type of statement is normally used for all autoSIM-200 application variables where the address of the variable associated in the target does not need a precisely fixed address.

This statement uses three pieces of information:

- the type of autoSIM-200 variables (see the chapter Types of autoSIM-200 elimination variables ),

- the name of the first variable of the target range,

- the number of the last variable (included) of the target range.

Automatic assignment is not used for a post-processor if another statement has not been found for a variable. For example, if a linear assignment command sets an attribution for the words 200 to autoSIM-200 210, the post-processor will not use automatic assignment to try and allocate these words.

If multiple automatic assignments exist for the same type of autoSIM-200 variable, the post-processor will use the first range of target variables until saturation, then the second until saturation, then the third etc.

If a variable has not been allocated at the end of using all the automatic assignments, the compiler generates an error message indicating that the variable has not been set.

« When you find one of these types of variables, use a variable of the target in that area», to effect an automatic assignment.

18.5 Variable functions


18.5.4 Types of autoSIM-200 elimination variables

Types of autoSIM-200 elimination variables

These are used to state variable functions, they are a subset (because more than one target variable may be needed to allocate an autoSIM-200 variable) of autoSIM-200 variable types.

Related Topics
18.5 Variable functions
18.5.4.1 Managing autoSIM-200 boolean variables
18.5.4.2 Standard element syntax
18.5.4.3 Special edge syntaxes
18.5.4.4 Special time delay syntaxes
18.5.4.5 Other special syntaxes


18.5.4.1 Managing autoSIM-200 boolean variables

Managing autoSIM-200 boolean variables

One of the basic principles of boolean language translation for the autoSIM-200 compiler is to be able to access two states for the same boolean variable.

This concept refers to the idea of « execution cycle » : an entity representing the action created by the target, consisting in reading the application instructions in a linear mode (from the beginning to the end) and accomplishing the processing they correspond to.

These two states are set as follows:

1- The immediate state of the variable: the state written for the last instruction executed by the target transfers that variable either by default to the state of the variable at the end of the last execution cycle, or if it is the first execution cycle by default to the initialization state of the variable.

2- The past state of the variable: the state of the variable at the end of the last execution cycle.

Comments: the two states are only valid for the main application task. Only the immediate state has meaning for asynchronous tasks.

The code generated by the autoSIM-200 compiler assumes the following:

- assignment of a boolean variable is effected on its immediate state;

- testing of a boolean variable is effected on its past state.

These two rules are used to ensure a consistent evolution of boolean applications and to observe the evolution rules of programs generated by a Grafcet language description.

The code generated by the post-processor manages recopying of the variable immediate states to variable past states at cycle end.

When a boolean variable is used in autoSIM-200 two boolean variables are used on the target.

There are three exceptions:

1- for an all or none input, if no edge test is used, only the past state (« bi ») is used (economy of a boolean variable).

2- for an all or none output, if no edge test is used, only the immediate state (« o ») is used.

(this explains why only the « bi » and « o » variables are found in variable attribution commands).

3- for the ZELIO post-processor, which effects time management of the variables (almost identical to autoSIM-200's) only immediate states are used in ZELIO programming language.

18.5.4 Types of autoSIM-200 elimination variables


18.5.4.2 Standard element syntax

Standard element syntax

« <autoSIM-200 variable name> » refers to the immediate state of a boolean variable or a numeric variable..

« b<autoSIM-200 variable name> » refers to the past state of a boolean variable.

18.5.4 Types of autoSIM-200 elimination variables


18.5.4.3 Special edge syntaxes

Special edge syntaxes

« u<autoSIM-200 variable name> » refers to the « rising edge » state of a boolean variable.

« d<autoSIM-200 variable name> » refers to the « falling edge » state of a boolean variable.

18.5.4 Types of autoSIM-200 elimination variables


18.5.4.4 Special time delay syntaxes

Special time delay syntaxes

« time <number> » refers to a time delay number.

« tproc<number> » refers to a time delay procedure..

« tcount<number> » refers to a time delay time counter.

18.5.4 Types of autoSIM-200 elimination variables


18.5.4.5 Other special syntaxes

Other special syntaxes

(only for specialists)

« ac » refers to the 16 bit accumulator.

« al » refers to the 32 bit accumulator.

« af » refers to the float accumulator.

« cf » refers to the carry flag.

« zf » refers to the zero result flag

« sf » refers to the negative result flag.

« of » refers to the overflow flag.

Displaying the variable function elements

By double clicking on « Configuration / Post-processors / <name of post-processor> / Variable function » the following window opens.

Example of variable functions

Comment: in the event that the same post-processor can generate code for multiple types of target (for example multiple types of processor CPU's) the different elements can be conditioned for all of the target types or for one particular target type. If the elements are conditioned, they are associated to « Only for xxx » lines. See the examples below.

By clicking on the elements « + » on the tree you open the branches, « - » closes them.

18.5.4 Types of autoSIM-200 elimination variables


18.5.5 Modifying a variable function element

Modifying a variable function element

You can modify the elements by double clicking on them.

Example of a configuration dialogue box for a linear assignment.

18.5 Variable functions


18.5.6 Adding a variable function element

Adding a variable function element

To add a new assignment, click with the right side of the mouse on the « Assignment … » elements of the tree and select « Add » from the menu.

If multiple target types are managed by the post-processor, the following dialogue box is used to establish if the new assignment is only for one type in particular or all the types.

Single assignment

Linear assignment

Automatic assignment

Note that autoSIM-200 variables must always be separated using the « & » character.

18.5 Variable functions


18.5.7 Deleting a variable function element

Deleting a variable function element

With the right side of the mouse, click on the variable function element and select « Delete » from the menu.

18.5 Variable functions


18.5.8 Associating an autoSIM-200 bit to a target system bit

Associating an autoSIM-200 bit to a target system bit

Two statements are necessary, the two state variables of a bit « U » (« u » and « bu ») must be associated to a target system bit. You must create two single assignments, for example:

Be careful, when you assign the autoSIM-200 u and bu variable to the same target system bit, you eliminate the possibility of creating a rising or falling edge test in the application. You can get around this problem by using the syntax « (u<n>) » or « ¯(u<n>) » (where « <n> » represents the bit number) in the application (this syntax generates an intermediate bit where the edge will be correctly evaluated).

18.5 Variable functions


18.5.9 Associating a table of autoSIM-200 words to a table of fixed target words

Associating a table of autoSIM-200 words to a table of fixed target words

Only a single linear statement is necessary for this, for example:

Zone de Texte:

The target words that are allocated must be free from other assignments or the same target variables may be assigned twice to different autoSIM-200 variables.

18.5 Variable functions


18.5.10 Associating autoSIM-200 words to target analog inputs or outputs

Associating autoSIM-200 words to target analog inputs or outputs

Use linear statements, for example:

18.5 Variable functions


18.5.11 Associating a table of autoSIM-200 bits to a table of target bits

Associating a table of autoSIM-200 bits to a table of target bits

Two linear assignments are necessary, for example: For example:

This example (the immediate states and past states are associated to the same target variables) does not allow using the edge tests on autoSIM-200 bits u100 to u109.

Two solutions are possible for getting around this problem:

- use the syntax « (u<n>) » or « ¯(u<n>) » (where « <n> » represents the bit number) in the application,

- associate the immediate and past state bits to two tables of different bits in the target.

- In this case, external access to the application which can be created on these bits (for example by a dialogue terminal or supervision software) must comply with the autoSIM-200 philosophy: for reading access for past states, writing access for immediate states (reading access for immediate states is possible in practice).

Zone de Texte:

The allocated target bits must be cleaned of any other assignments or they may assign the same target variables twice to different autoSIM-200 variables.

18.5 Variable functions


18.5.12 See the variable functions in text format

See the variable functions in text format

When you click on the [image] icon on the toolbar, you go from « tree » mode to « text » mode (format of older autoSIM-200 versions). In « Text » format you can copy and paste information into the configuration files..

Zone de Texte:

Modification to « text » mode must be made by specialists, inopportune modifications can lead to compiling errors which are difficult for an inexperienced person to find.

18.5 Variable functions


18.6 Start-up manufacturer code, end manufacturer code

Start-up manufacturer code, end manufacturer code

These configuration elements contain machine code for each target in text format.

The syntax to be used in these sections is similar to low level languages that can be used on each target. Observation of the code generated in pass 1 for each post-processor allows you to display the syntax to be used.

Related Topics
18 Configuration
18.6.1 Reference to an autoSIM-200 variable
18.6.2 Referring to an autoSIM-200 application symbol
18.6.3 Setting and referring to a label


18.6.1 Reference to an autoSIM-200 variable

Reference to an autoSIM-200 variable

Use the syntax « _<autoSIM-200 variable name>_ » to refer to an autoSIM-200 variable (remember to add the character « b » at the beginning of the variable to access the past state of a boolean variable. For example « _bu100_ »).

18.6 Start-up manufacturer code, end manufacturer code


18.6.2 Referring to an autoSIM-200 application symbol

Referring to an autoSIM-200 application symbol

Syntax:

_|symbol name|_

The character « | » is normally associated to key 6 on the keyboard.

18.6 Start-up manufacturer code, end manufacturer code


18.6.3 Setting and referring to a label

Setting and referring to a label

« @<label name> » indicates a jump destination,

« _<label name>_ » refers to a label.

18.6 Start-up manufacturer code, end manufacturer code


18.7 Entering machine code in an application

Entering machine code in an application

The key words « #BEGIN_MACHINE_CODE » and « #END_MACHINE_CODE » are used to enter machine codes in an autoSIM-200 code box.

These two commands must be placed at the beginning of a line, no other characters should be placed on the same line.

The lines within these two commands establish an area called « Machine language section ».

The syntax to be used in a machine language section is the same as that used in the « Begin machine code » and « End machine code » elements.

18 Configuration


18.8 Selecting connection options

Selecting connection options

Double click on the element « Configuration / Post-processor / <post-processor name> / Connection options».

18 Configuration


18.9 Selecting a connection mode

Selecting a connection mode

The number of connection modes is based on the post-processor. The « Only connected » mode is normally used to create a supervising application.

This dialogue box opens automatically when connection to a target is requested. If you check « Do not open … », it will no longer open automatically. To open it again, push the [Shift] key or launch the connection command or the « Go » command.

18 Configuration


18.10 Setting communication module parameters

Setting communication module parameters

Double click on the element « Configuration / Post-processor / <post-processor name> /Communication module».

Example of setting communication module parameters

The current configuration can be set as a default configuration (for new projects) or default reset.

A connection test can be created.

18 Configuration


19 Post-processor S7200

Post-processor S7200

This post-processor is used to program SIEMENS S7200 (all 2xx CPU's) processors .

Related Topics
19.1 Selecting CPU type
19.2 Communication module
19.3 Specific example


19.1 Selecting CPU type

Selecting CPU type

Use the « Configuration / Post-processor / STEP7 (S7200) / System / Hardware configuration» browser element to select the type of CPU.

19 Post-processor S7200


19.2 Communication module

Communication module

Setting communication module parameters

Be sure to set the slave number so it corresponds with the processor configuration.

19 Post-processor S7200


19.3 Specific example

Specific example

This example is in the directory « <autoSIM-200 installation directory> /Examples/Post-processors/S7200 ».The file has the same name as the title of the following chapter.

Related Topics
19 Post-processor S7200
19.3.1 Interrupt task


19.3.1 Interrupt task

Interrupt task

Example of calling up an interrupt task

19.3 Specific example


20 Post-processor S7300

Post-processor S7300

This post-processor is used to program SIEMENS S7300 processors.

Related Topics
20.1 Communication module
20.2 Specific syntaxes
20.3 Importing in SIEMENS SIMATIC software
20.4 Structure of generated code
20.5 Associating code written on a sheet to a program block
20.6 Specific examples


20.1 Communication module

Communication module

Setting communication module parameters

The slave number must correspond with that set as a parameter for the processor.

20 Post-processor S7300


20.2 Specific syntaxes

Specific syntaxes

The command « $BLOCK <block type> <number>» is used to set the beginning of a program or data block.

The block type can be « OB », « FB », « FC », « SFC » « SFB » for the code or « DB » for the data. The block number is a value between 0 and 65535. The command «$ENDBLOCK » indicates the end of a block.

Example:

$BLOCK DB1

...

$ENDBLOCK

$BLOCK OB1

...

$ENDBLOCK

The following syntax is used to state the variables for a block:

For an input variable:

$VAR-type nature {:=initialization}

or

$VAR-symbol nature : (type=initialization)

« nature » can be:

- « - «IN » for an input variable,

- « OUT » for an output variable,

- « - «INOUT » for an input/output variable,

- « TEMP » for a temporary variable;

- « STAT » for a static variable.

« type » can be one of the STEP 7 language variable types: BOOL, INT, WORD, STRUCT, ENDSTRUCT, etc …

« symbol » is used to associate a mnemonic with a variable.

« initialization » is optional and sets the default value of a variable.

The DB blocks only authorize static variables.

The OB blocks only authorize temporary variables.

The FC and SFC blocks do not authorize static variables.

As in SIEMENS software, variable statements must appear in the following order: input, output, input/output, static and temporary.

Related Topics
20 Post-processor S7300
20.2.1 Setting block variables
20.2.2 Calling up blocks


20.2.1 Setting block variables

Setting block variables

The syntax « £D block statement » is used to set a statement associated to a particular block. When the block is generated by the compiler, then the statement is used.

20.2 Specific syntaxes


20.2.2 Calling up blocks

Calling up blocks

The syntax « CALL block name {instance DB} ( parameter list) » is used to call up an FC, FB, SFC or SFB block.

Example:

$BLOCK FC1

$VAR-IN input1 :BOOL :=FALSE ;

$VAR-IN input2 :BOOL :=FALSE ;

$VAR-OUT output :BOOL ;

u_input1_

u_input2_

=_output_

$ENDBLOCK

$BLOCK OB1

CALL FC1(_input1_ :=e0.0,_input2_ :=e0.1,_output_ :=a0.0)

$ENDBLOCK

20.2 Specific syntaxes


20.3 Importing in SIEMENS SIMATIC software

Importing in SIEMENS SIMATIC software

Use the process below to import the code generated by autoSIM-200 in the SIEMENS SIMATIC software :

1- In the « System » part of the S7300 post-processor configuration, select SIMATIC in the following element

2- Compile the application,

3- In autoSIM-200, open the element « Generated code / Post-processor S7300 / Step 2 », select all the lines then the command « Copy » in the « Edit » menu.

4- In the SIMATIC software, create a « Source LIST » type element.

5- In SIMATIC, paste the code in the window containing the source LIST using the « Paste » command in the « Edit » menu,

6- In SIMATIC, compile the source by clicking on.

At this point the importation is completed.

20 Post-processor S7300


20.4 Structure of generated code

Structure of generated code

SIEMENS STEP7 language is organized in program and data blocks. autoSIM-200 applications translated by the STEP7 post-processor are broken down into multiple blocks. By default, the post-processor uses the following blocks:

- OB1 organization block: this block calls up all the blocks that must be cyclically processed,

- OB100 : blocks executed when the processor starts. This block sets a bit to activate the initial Grafcet steps.

The FB blocks are used to process pre-settings, to manage the evolution of boolean variables and time delays.

The FC blocks are used for the code issued by the application and for the begin and end machine code.

An FB block is created for each application sheet.

In addition, the sheets can be directly associated to a block (see chapter Associating code written on a sheet to a program block )..

By default, the post-processor uses the blocks FB1 to FB255 and FC1 to FC239 when needed.

These values can be modified in the « System » element of the configuration.

The figure below illustrates the structure of code generated by the SIEMENS post-processor:

Related Topics
20 Post-processor S7300
20.4.1 Selecting program blocks to use


20.4.1 Selecting program blocks to use

Selecting program blocks to use

Blocks FC1 to FC 239 and FB 1 to FB 255 are used by default. Two configuration elements are used to select other blocks.

20.4 Structure of generated code


20.5 Associating code written on a sheet to a program block

Associating code written on a sheet to a program block

When writing low level literal code or machine code on an organizational chart on a « Task » type sheet, associate the code to a STEP7 block.

The task number determines the block type and number.

The generated code for that sheet must take into account the block type and the instructions used in that block type (The set of instructions for blocks OB and PB is limited).

The table below provides the correspondence between the task number and the STEP7 block.

Task number | STEP7 block
0 to 255 | OB 0 to OB 255
256 to 511 | FC 0 to FC 255
512 to 767 | FB 0 to FB 255

20 Post-processor S7300


20.6 Specific examples

Specific examples

These examples are in the directory « <autoSIM-200 installation directory> /Examples/Post-processors/S7300 ».The files have the same names as the titles of the following chapters.

Related Topics
20 Post-processor S7300
20.6.1 Calling up a STEP7 block
20.6.2 Using an OB block


20.6.1 Calling up a STEP7 block

Calling up a STEP7 block

Example of calling up STEP7 function blocks

20.6 Specific examples


20.6.2 Using an OB block

Using an OB block

Example of an association of code written on a sheet to an OB block.

20.6 Specific examples


21 Post-processor OMRON

Post-processor OMRON

This post-processor is used to program OMRON processors .

Related Topics
21.1 Select PLC model
21.2 Communication module
21.3 Transferring applications to the CX-PROGRAMMER software
21.4 Specific syntax
21.5 Associating code written on a sheet to a program block
21.6 Specific example


21.1 Select PLC model

Select PLC model

The item « Configuration / Post-processor / OMRON / System / Hardware configuration » must be used to select PLC model.

21 Post-processor OMRON


21.2 Communication module

Communication module

Setting communication module parameters

21 Post-processor OMRON


21.3 Transferring applications to the CX-PROGRAMMER software

Transferring applications to the CX-PROGRAMMER software

- at the end of compiling in autoSIM-200, double click on the « Generated files / OMRON / step 2 » element,

- select all the lines,

- select the « Copy » command in the « Edit » menu

- in CX-PROGRAMMER, create a new application, display the program area in mnemonics format,

- select the program area and then paste the lines,

You can upload the application in the processor starting from CX-PROGRAMMER then return to autoSIM-200 to tune the program in connected mode (remember to disconnect CX-PROGRAMMER from the processor to be able to communicate from autoSIM-200).

21 Post-processor OMRON


21.4 Specific syntax

Specific syntax

The following syntax is used to set the value of a data word.

$DMn=value

« n » is the word number;

« value » is a 16 bit value expressed by default in decimal or hexadecimal if preceded by the character 'H'.

Example:

$DM10=50

$DM100=HA000

21 Post-processor OMRON


21.5 Associating code written on a sheet to a program block

Associating code written on a sheet to a program block

When writing low level literal code or machine code on an organizational chart on a « Task » type sheet, associate the code to a interrupt task. The task number is equivalent to the stop number.

21 Post-processor OMRON


21.6 Specific example

Specific example

This example is in the directory « <autoSIM-200 installation directory> /Examples/Post-processors/OMRON ».The file has the same name as the title of the following chapter.

Related Topics
21 Post-processor OMRON
21.6.1 Interrupt task


21.6.1 Interrupt task

Interrupt task

Example of calling up a interrupt task

21.6 Specific example


22 Post-processor ALLEN-BRADLEY

Post-processor ALLEN-BRADLEY

This post-processor is used to program ROCKWELL SLC processors. ROCKWELL RSLogix 500 V5 software or higher is required.

Zone de Texte:

The RSLogix 500 STARTER version cannot be used to import files generated by autoSIM-200.

Related Topics
22.1 Communication module
22.2 Transferring programs to ROCKWELL RS-Logix 500 Software


22.1 Communication module

Communication module

Setting communication module parameters

22 Post-processor ALLEN-BRADLEY


22.2 Transferring programs to ROCKWELL RS-Logix 500 Software

Transferring programs to ROCKWELL RS-Logix 500 Software

In the element below you create a file used for exchange between autoSIM-200 and RSLogix 500. This file will be generated after compilation in autoSIM-200

Generating an .SLC file compatible with RSLogix 500

Launch RSLogix500, then open the .SLC file generated by autoSIM-200.

Transfer the program to the processor using the RSLogix 500 software. After disconnecting the RSLogix 500 software from the processor, you can tune it from autoSIM-200 in connected mode.

22 Post-processor ALLEN-BRADLEY


23 Post-processor TWIDO

Post-processor TWIDO

This post-processor is used to program SCHNEIDER TWIDO processors.

Related Topics
23.1 Processor configuration selection
23.2 Communication module


23.1 Processor configuration selection

Processor configuration selection

The « Configuration / Post-processor / TWIDO / System / Hardware configuration » element on the browser is used to select the type of processor.

The « .TWD » file is a configuration file which must be generated with the SCHNEIDER TWIDOSOFT software workgroup. The sub-directory « TWIDO » in the autoSIM-200 installation directory contains the configuration files for various types of TWIDO processors.

23 Post-processor TWIDO


23.2 Communication module

Communication module

23 Post-processor TWIDO


24 Post-processor MITSUBISHI

Post-processor MITSUBISHI

This post-processor is used to program FX series MITSUBISHI processors. The code generated by autoSIM-200 can be directly sent to FX series MITSUBISHI processors or imported in MITSUBISHI FX-WIN or GX-DEVELOPPER software.

Related Topics
24.1 Selecting the type of processor
24.2 Communication module
24.3 Transferring programs to MITSUBISHI FX-WIN software
24.4 Transferring programs to MITSUBISHI GX-DEVELOPPER software


24.1 Selecting the type of processor

Selecting the type of processor

« Configuration / Post-processor / MITSUBISHI / System / Hardware configuration» on the browser is used to select the type of PLC.

24 Post-processor MITSUBISHI


24.2 Communication module

Communication module

Setting the communication module

24 Post-processor MITSUBISHI


24.3 Transferring programs to MITSUBISHI FX-WIN software

Transferring programs to MITSUBISHI FX-WIN software

Select FXWIN in the element below.

Zone de Texte: The English version of FXWIN must be used. Importation has been validated for the 3.20 version of FX-WIN.

After compilation in autoSIM-200, create a project in FX-WIN. Open the program in editing, instruction list and select « Enter » in the « Edit » menu.

24 Post-processor MITSUBISHI


24.4 Transferring programs to MITSUBISHI GX-DEVELOPPER software

Transferring programs to MITSUBISHI GX-DEVELOPPER software

Select GXDEVELOPPER in the element below.

Launch the executable « A7TOGX.EXE » in the autoSIM-200 installation directory. After launching it, an icon « A7 ® GX » appears in the WINDOWS icon bar.

After compiling autoSIM-200, create a project in GX-DEVELOPPER. Open the program in editing, instruction list. Press the two SHIFT keys or the LEFT SHIFT key and the F11 key at the same time for one second. The program will be transferred to GX-DEVELOPPER.

To uninstall « A7TOGX » click on the icon with the right side of the mouse. You can leave « A7TOGX » installed as long as it is necessary, so you do not need to install and uninstall it every time you want to import an application in GX-DEVELOPPER.

24 Post-processor MITSUBISHI


25 Post-processor MITSUBISHI-Q

Post-processor MITSUBISHI-Q

This post-processor is used to program Q series MITSUBISHI processors. The code generated by autoSIM-200 must be imported in MITSUBISHI GX-DEVELOPPER software.

Related Topics
25.1 Communication module
25.2 Transferring programs to MITSUBISHI GX-DEVELOPPER software


25.1 Communication module

Communication module

Setting the communication module

25 Post-processor MITSUBISHI-Q


25.2 Transferring programs to MITSUBISHI GX-DEVELOPPER software

Transferring programs to MITSUBISHI GX-DEVELOPPER software

Launch the executable « A7TOGX.EXE » in the autoSIM-200 installation directory. After launching it, an icon « A7 ® GX » appears in the WINDOWS icon bar.

After compiling autoSIM-200, create a project in GX-DEVELOPPER. Open the program in editing, instruction list. Press the two SHIFT keys or the LEFT SHIFT key and the F11 key at the same time for one second. The program will be transferred to GX-DEVELOPPER.

To uninstall « A7TOGX » click on the icon with the right side of the mouse. You can leave « A7TOGX » installed as long as it is necessary, so you do not need to install and uninstall it every time you want to import an application in GX-DEVELOPPER.

* To obtain this character when editing a test press the [é] key.

** To obtain this character when editing a test press the [ê] key.

* Note: to be able to use the U bits with this function it is necessary to create a linear table of bits using command #B.

* Note: to be able to use the U bits with this function it is necessary to create a linear table of bits using command #B.

* The name of the macro-instruction can be a complete access path to the file « .M », it can contain a read and directory designation.

* This character is normally associated to the [ALT] + [6] keys on keyboards

25 Post-processor MITSUBISHI-Q