|1. Poses++ The Software|
Fields of Application
Poses++ - what is new ?
|1.1. Fields of Application|
The Poses++ software tool supports the development and simulation of models. Regarding the simulation technique models are suitable reproductions of real or planned systems for their simulative investigation.
In all industrial sectors or branches Poses++ can model and simulate any arbitrary system which is based on a discrete and discontinuous behaviour. Also continuous systems can mostly be handled like discrete systems e.g., by quantity discretion and batch processing.
Poses++ Fields of Application
The most important applications of Poses++ are applications in the field of logistics. Other fields are communication systems, hardware design and the validation of algorithms. Stated goals of the simulation of complex logistic systems are the safeguarding of investment decisions, the shortening of development cycles and the optimization of such systems. Thus statements about the dynamic behaviour of the system can be made already during its planning. Based on the obtained information the optimum variants regarding static system structures and dynamic processes in the system can be determined.
|Basically Poses++ supports the analysis of existing or planned systems. The optimization of the systems investigated is made by a comparison between alternatively created variants or dimensionings of the system. During the process of a project the models and results of simulation are used to investigate varied constellations simulatively. The simulation studies resulting from the investigation help to answer various questions such as questions on shortages, reserves, throughputs and capacities of the investigated system.|
|Decision making in an alternative process run is supported by the application
of the online simulation, i.e. the execution of a simulation model
parallel to the real system belonging to it. The online simulation provides
data about the future of the currently running process. These data are evaluated
in a comparison between the different variants before the actual decision
for an optimum or the best variant is taken.
Real Time simulations are helpful putting complex control software into operation and testing it first instead in reality in a simulated enviroments with all communication interfaces.
|Poses++ also offers the possibility to generate complex control software. For this purpose a model is created with what algorithms a system should be controlled or coordinated best. This requires the real-time capability of the simulator. The result of creating concrete control algorithms is one control model for all system constellations that occur. This control model - the software technological implementation of which is also called controller - is part of the overall model of a simulated system. Such a controller can finally be used for controlling the real system. For this purpose the model is divided in two parts: one part only containing the control algorithms and another part replicating the uncontrolled real system. The system architecture of Poses++ forms a multiserver-multiclient environment and, thus, also supports the possibility of remote monitoring all connected system through net connections.|
|Another application is staff training. The process-correct use of the test system is possible by means of real-time simulation. Therefore the various system constellations can be trained with it. A further part of this application is the training of how to take the right decision in extreme situations.|
The more the simulation technology is accepted as a strategic means, especially in the fields of industry and distribution, the higher the demands for the size of the models to be designed and for the speed of simulation runs. In order to take up this challenge Poses++ has been designed from the very beginning in such a way that the model size is only limited by the hardware. Moreover, there is no linear dependence between the speed of simulation and the increase of the model size.
Poses++ is equipped with interfaces which are not affiliated with a specific system. This allows Poses++ to be integrated into other systems and vice versa. Therefore it is hardly impossible to outline the complete development and application possibilities of the Poses++ tool.
You can request Poses++ software for downloading at www.gpc.de. For Poses++ there are different packages for Windows and Linux. The packages for Windows are prepared as .msi files in Windows Installer format. Please use Install from a popup menu or the Control Panel to Add or Remove Programs. The files will be installed as usual. Additional configuration data will be written to the path ...\Documents and Settings\user\Application Data.
For Linux or other Unix platforms you can download a file.tar.gz file. This file you have to unzip via gzip -d file.tar.gz and to untar via tar xf file.tar afterwards. The file tree will be generated in the directory you put file.tar.gz in before.
More detals you can read in readme.txt.
|1.3. System Architecture|
Poses++ is an event driven simulation system. Modelling in Poses++ is rule based. In form of declarative rule descriptions models are constructed in module data types similar to C++ classes. To run or to debug a simulation model it must be transformed from the source code form to a binary form within a build step. For these modelling purposes the Poses++ Desktop (former Poses++ IDE integrated development environment) offers functions to edit, to compile and to start and observe a simulation model. But Poses++ Desktop is the front end and does not contain the simulation engine. Simulations will be calculated by a simulation server which is a task independent from the front end software. A simulation server is necessary to load the model binaries and to execute the simulation experiment. Such a simulation server can either run on the local machine or on a remote machine in both cases connected via the TCP/IP network protocol.
Our goals developing Poses++ were and are:
|a modelling and simulation platform suitable also for really large and complex models (unlimited model size only dependent from the available memory),|
|an unlimited high degree of modelling freedom (expects simple but powerful modelling language on the same level like C++, PROLOG),|
|a maximum of calculation performance for very fast simulation experiments and real time purposes available on conventional hardware and operating systems and last but not least|
|a wide range of possibilities to integrate the simulation environment into other software systems or to integrate other software systems in a Poses++ environment (reached by communication or C/C++ level linking of functionality provided by other developers).|
The Poses++ simulation system consists of several software components. These components offer flexible and expandable interface connections with other Poses++ tools and external software.
The combined action of the different tools forms a multiserver-multiclient structure as shown in the figure below. Based on TCP/IP the components communicate with each other via an ASCII command interface. As far as complexity and capacity are concerned, the Poses++ system is comparable with database systems, and with its flexibility it meets the highest demands of all stages of modelling, experimenting and evaluation.
Example for a Poses++ System Architecture
|1.4. Software components|
The Poses++ system consists of software components for the client side and for the simulation server side. Client components are available for 32-bit MS-Windows® platforms. Server components are available for the same platforms too and additionally for 32-bit and also for 64-bit Linux (see also: Hardware and Software Environment).
The client side of Poses++ consists of the executables posdesk.exe (former poside.exe), posplay.exe and poslay.exe and a set of necessary dll-files. The executable posdesk.exe is the primary front end application of Poses++ and contains the modelling and experiment control functions and has to be started usually at first. The executable posplay.exe contains the animation player and the executable poslay.exe contains the animation layout editor. This layout editor is a very simplificated because in most cases animation layouts are generated by project specific transformation scripts f.i. from CAD-Systems. To allow this we published the whole Layout and animation command syntax.
The server side of Poses++ consists of the executables of the Poses++ daemon posppd which makes a machine able to work as simulation server, the Poses++ shell possh which you can imagine as an OS independent login shell, the Poses++ compiler posppc which will transform Poses++ source code to C++ code, the Poses++ simulation server pospp, the Poses++ licence daemon posppld, the Poses++ console posconsole and the library libposes.so/libposes.dll. The executable posppd/posppd.exe contains the . On a machine which should run as Poses++ simulation server the Poses++ daemon posppd has to be started at first.
On MS-Windows® platforms you can detect a running Poses++ daemon by its task bar icon. Stopping the daemon by the task bar icon popup menu will kill all Poses++ related server tasks on this machine.
If you work on a single machine with both the client and the server components on the same machine the client side will start the daemon automatically if necessary. The executable possh is a shell program which offers the functionality for building models and starting simulation server tasks. Every time when a client connects the daemon such a shell program will be invoked. The executable posppc is the Poses++ compiler which is able to generate code files (C++ source) from Poses++ source files. The executable pospp and the library libposes.so/libposes.dll contain the simulation server software. It is prepared for a corresponding C++ compiler so it is necessary to have different combinations of pospp and libposes installed if more than one C++ compiler will be used. The executable posppld contains the licence managment daemon which is able to accept licence requests from simulation server tasks (see also: Licence Viewer).
If you want to use both the client and the server components of Poses++ on the same machine the client will start the Poses++ daemon when necessary automatically. In all other cases you have to start the Poses++ daemon on all machines you want to use as simulation server hosts manually. On UNIX machines a good choice is to start the Poses++ daemon during the boot sequence as root similar to the start of other service daemons (e.g. httpd). The daemon and the simulation server will perform full authentication and password checking if started so. The client connections will be forced to login first and all following activities will be made in the account of the connected user. If you start the Poses++ daemon directly in your account the daemon will ask you at first about the problem of impossible authentication. On MS-Windows® machines the Poses++ daemon can only be started in an account - password checking is done if possible but every client connection must be able to authenticate itself as the user who started the daemon.
|You can install Poses++ shared for all operating systems you want to
use for the Poses++ client and server components. The name of the Poses++
installation directory you can change if you want. For more installation
details read the file readme.txt. In
the directory tree on the left side you can see at first the
bin directory where Poses++ will expects all its binary files
on the place dependent from the hardware, the operating system and also from
the selected C++ compiler necessary
for model building.
Additionaly Poses++ includes some examples with precompiled (for MS-Windows® only) model binaries.
The documentation which you are reading now is also included. You can read it offline and online too. All necessary files are located in the html directory.
The inc directoy contains C++ header files necessary for building models. There you will find also some C++ functions which offer the Poses++ server for the use in your model source or in your user modules.
The var directoy will contain a directory entry for every user name which works with Poses++. In the directory with the name of your account (the example account in the figure on the left side is andrae) Poses++ will store setup and desktop informations. Under this directory you will find a mirrored tree for every model you built with Poses++. In case of remote access to a simulation server which is not able to reach your project directory the Poses++ source files will be mirrored to that structure. Under this project dependent directory (e.g. signal) you will find more directory entries with C++ source files generated by the Poses++ compiler, object files and the model binary file (*.so/*.dll) generated by the selected C++ compiler.
All informations in the var directory are temporary. You can delete either your user name dependent directory or the whole var directory if you have the file permissions to do so. Please avoid to create new Poses++ projects inside the var directory because this directory is intended for internal use.
The var directory will also contain log-files for every running Poses++ executable which will be cut into pieces instead of getting too large.
If Poses++ is not able to write to the original var directory under the installation tree it will try to generate a var directory under the user specific tree under Documents and Settings/user/Application Data. This directory will be used for the same purposes as described before.
|Poses++ - what is new ?|
The first release Poses++ 1.0 was published more than one decade ago in Juni 1996. As client-server based simulation system client components for Windows and server components for UNIX (Sun Solaris and Alpha OSF1) were parts of the system. Simulation performance and really large scale models were and are main attributes for our software from the very beginning. The last release under main version number 1 Poses++ 1.7 was dated from 01/01/2006. Between Poses++ 1.0 and Poses++ 1.7 layed many small and bigger development steps.
What were the development steps up to Poses++ 2.0 ?
|Poses++ 2.0 is tested to run under actual operating systems. Poses++ 2.0 works under Linux distributions (f.i. SuSE 10.3 with kernel 2.6.22) as well as under Windows® XP and Vista.|
|Poses++ 2.0 supports the important C++ compilers from Microsoft® and Borland® for Windows® and GNU gcc under Linux with all actual compiler releases.|
|Poses++ 2.0 comes with both 32-bit and 64-bit binaries for Linux. For Windows® Poses++ 2.0 binaries are compiled as 32-bit but successfully tested to run under Windows® Vista 64-bit.|
|Poses++ 2.0 uses very fast random number generators and avoids influence of client requests (f.i. transition concession) on the stochastic behaviour of models.|
|Poses++ 2.0 animation player has an enormous improved speed displaying animations. It runs many times faster than the last animation player from Poses++ 1.7 so that very large CAD layouts with many details could be used as animation layouts.|
|Poses++ 2.0 animation file size is only limited by the underlaying file system. In case the file system is able to these data caches can possibly grow over 4GByte.|
|Poses++ 2.0 has now a new front end posdesk.exe which is fully new developed from scratch.|
|Poses++ 2.0 client/server communication is based on the fully published Poses++ Client API so that everybody should be able to develop project specific clients by itself.|
|Poses++ 2.0 can process all earlier models compatible.|
|Poses++ 2.0 logs its behaviour for all components to corresponding plain text log files.|
|Poses++ 2.0 supports model libraries in pre prepared directories.|
|Poses++ 2.0 keeps your front end settings persistent.|
|Poses++ 2.1 server and client components are tested to run under Windows® XP, Vista and also under Windows® 7.|
|Poses++ 2.1 supports GNU gcc-4.3.x under Linux.|
|Poses++ 2.1 comes with a C# interface for your own client development and integrates an additional C# based Animation client PosesPlayer.exe.|
|Poses++ 2.1 comes with a Java interface based on Java Native Access (JNA) for your own client development projects. So you have now the possibilities to develop Poses++ client software in C++, Delphi, C# or Java.|
|Poses++ 2.2 supports the C++ compiler of Microsoft® Visual Studio 2010.|
|Poses++ 2.2 supports GNU gcc-4.5.x under Linux.|
|... and a view fixes ...|