the graphical programming environment for ...+features.pdfadvanced features of dachsview++ 1....
TRANSCRIPT
© STEINHOFF Automation & Fieldbus‐Systems www.steinhoff‐automation.com
COMBINING THE 2 WORLDS OFFUNCTION BLOCK- & C/C++ PROGRAMMING
THE GRAPHICAL PROGRAMMING ENVIRONMENTFOR REAL-TIME- AND GUI-APPLICATIONS
PowerPoint online: www.DACHS.net/DACHSview++features.pps
Function Block Programming is part of IEC61131‐3 What is IEC61131‐3 ? • The IEC61131‐3 standard with its 5 programming languages
defines a programming environment for Programmable Logic Controllers (PLCs).
• The first draft standard of IEC1131‐3 is more than 22 years old and ‐ replaced partly the DIN 19239 standard from 1983 and ‐ replaced fully the draft standard DIN IEC(SEC)67 from 1987
What are the Roots of IEC61131‐3 ? The roots of IEC61131‐3 are at least 22 years old. The included 5 programming languages are much older, e.g. :
• LD (Ladder Logic) has been introduced by Reliance Electric in 1970 and was used for MODICON’s “084” PLC (44 years old)
• AWL (IL) is based on standard DIN19239 from 1981 (33 years)
• SFC is based on GRAFCET, first implementation 1977, first standard paper 1990 (NF C03‐190) (37 years old)
• Structured Text as a subset of the C language (~20 years old)
• FBD (Function Block Display)
Which Common Features are missing in IEC61131‐3 today? The 5 standard IEC61131‐3 languages have been sufficient for PLC hardware platforms 20 years ago, but they don’t fit to high performance PC hardware from today.
These following features are not supported by IEC61131‐3:
• event oriented processing (only polling support by IEC61131‐3!)
• distributed processing by multiple processes
• distributed processing on multiple CPUs, CPU cores, and systems
• dynamic extension of the target systems
• direct access to hardware resources
• recursive calls of functionblock procedures
OS related Features, missing in IEC61131‐3 today: • threads as system threads
• real‐time scheduling of threads (only internal cooperative scheduling)
• suspended (blocking) wait on events (hardware IRQs, messages, signals ...)
• access to OS services or external application level libraries
• access to network infrastructures (Message Passing, client/server services …)
What is special in DACHSview++ ? • innovative and advanced real‐time Soft PLC
‐ supporting the newest generation of multi‐core PC hardware ‐ running in hard real‐time w/o all restrictions, introduced by the IEC61131‐3 standard !
• seamless all‐in‐one IDE for the graphical development of real‐time 2D/3D graphics and real‐time control applications, based on a graphical function block language. The function block language is used by DACHSview++ as a general purpose development language. The code of the DACHSview applications becomes uploaded into their remote real‐time Soft PLC Targets.
What is special in DACHSview++ Targets? • The DACHSview++ target system is
open for integration of C/C++, LUA and DLL based applications
• DACHSview++ is a tool for processing ‐ I/O ports ‐ physical memory ‐ fieldbus I/O points ‐ SQL data bases ‐ single pixels on the screen of a visualization
Important design features • DACHSview++ is based on Function Block Display (FBD) and
works strictly event oriented by using system level threads and processes. Polling is just an optional behavior!
• FBD is “Turing complete”, that means every algorithm can be implemented with FBD.
• The usage of system processes and threads allows using the advantages of the services of operating systems, as well as real‐time operating systems together with their real‐time scheduling. This leads e.g. to response times in the range of microseconds!
Advanced Features of DACHSview++ 1. operating in real‐time and event orientation
‐ event oriented processing requests the CPU only when there is something to process, that means no waste of CPU time happens ‐ predictable reaction time in the range of microseconds, not millisec. ‐ blocking function calls are allowed ‐ polling threads are optionally possible
2. distributed systems are supported ‐ applications based on multiple targets can be realized
3. extended support of services of real‐time operating systems ‐ freely integration of C‐coded APIs are supported (e.g. libC, OpenGL/ fieldbus)
4. multicore CPUs are supported ‐ real‐time system threads are scheduled by the operating system, that means multi‐core CPUs are very well supported
5. import of C/C++ code as function block code ‐ every C/C++ code which is compileable by gcc/c++ can be imported
The Real‐Time Target 1. multi‐threaded remote real‐time target system
‐ up to 15 threads, selectable as system threads or polling threads
‐ support of online test and online change of parameters
‐ single step and power trace possible with system threads
‐ consistency of application code is CRC checked after upload, and before autonomous application start
‐ multi‐core support by system threads
2. high performance interprocess communication by message passing
‐ message exchange in micro seconds ‐ allows secure design of multi target, client/server applications ‐ allows also communication with C‐coded tasks
3. import of additional C‐APIs is easily possible
‐ existing C/C++ code can be integrated by a JIT compiler
Graphics Features extended graphics support for 2D and 3D graphic applications
• high efficient subset of OpenGL for non accelerated embedded video interfaces
• thread safe graphics APIs
• object oriented (instantiation) handling of graphics objects
• rich support of standard widgets (buttons, slider, a.s.o)
• graphics applications are working on the remote target system and not on the workbench,
• import of e.g. Qt based graphical C++ applications by embedded JIT compiler
Graphics Features / SDL
Graphics Features / SDGL
Graphics Features / True Type Fonts
Graphics Features / FLTK
Embedded JIT C Compiler
Embedded JIT C++ Compiler
Embedded Scripting by LUA
Message Passing Communication
Dynamic Loading Features
Data Base Features
embedded SQL Database
the complete handling of the embedded data base
SQLite is supported
Process I/O Interfaces ‐ Fieldbus Systems extended support of fieldbus systems
• PROFIBUS master and slave
• INTERBUS master
• MODBUS master and slave
• CAN layer 2
• CANopen master and slave
• Ethernet PowerLink
• EtherCAT master and slave
• PROFINET controller and device
Process I/O Interfaces ‐ Drivers driver for new hardware interfaces can be realized
• interrupt handling by the blocking InterruptWait function block master
• access to physical memory and I/O ports
• access to shared memory allows the fastest communication with other tasks
DACHSview++ is the answer on increasing complexity & development costs
It‘s perfect for
• reliable and event‐oriented industrial automation applications,
• distributed systems,
• multicore CPUs, and
• future based requirements.
DACHSview++ is future based • no need to handle the overhead of a textual language
• integration of C/C++‐code by JIT compiler
• easy to understand and to learn
• excellent support of the design phase by pseudo function blocks
• easy to test by excellent online test support
• very efficient and fast development, means rapid time to market by decreasing costs of the software development
• development of complex real‐time control and HMI applications in a simplified, but powerful environment
• shorter application development time, at least 30% less
DACHSVIEW++ COVERS FUTURE BASED REQUIREMENTS FOR RELIABLE APPLICATIONS IN THE INDUSTRIAL AUTOMATION INDUSTRY
06/2014
© STEINHOFF AUTOMAT ION & F IE LDBUS ‐SYSTEMS
+49 6431 570‐9970 | Fax +49 6431 570‐9980 | info@steinhoff‐automation.com | www.DACHS.info
Partner: GamBit +48 601 486 151 | [email protected] | www.gambit.pl
DACHSview ++ Realtime‐Applications can mix up C/C++‐ and Functionblock Programming STEINHOFF Automation & Fieldbus‐Systems offers now the latest version of the functionblock‐based programming tool DACHSview++ which contains a functionblock library for the full integration of C/C++ code via an embedded JIT Compiler. The compiled code is linked directly into the memory and can be called within functionblocks. It means control algorithms are running at optimal speed, as well as arbitrary C/C++ code can be imported. At start time of the functionblock application, the machine code for execution in functionblocks is generated just‐in‐time within milliseconds.
The full standard of the C/C++ language is supported, there are nearly no restrictions on the takeover of the C/C++ code for the execution within the DACHSview++ Targets for x86 or ARMv7, which are available for QNX and PREEMPT_RT Linux.
The arbitrary mixing of C/C++ code and statically defined function‐blocks of libraries gives a new flexibility for the implementation of control and real‐time applications. Project teams for demanding realtime applications can even work very effective with only one C/C++ developer in the team when the other team members are developing on the abstraction level of functionblocks.
The standard version of DACHSview++ comes with functionblock libraries for embedded C‐ and C/C++ ‐compilers as well as function‐block libraries for 2D and 3D graphics, standard GUI elements, TTF support, a SQL database, and the message‐passing‐based middleware ZeroMQ. Support of Dynamic Link Libraries and the scripting language LUA is included.
Additional offered options are functionblock libraries for many fieldbuses, and an interface for OPC. A functionblock library for the high performance real‐time SCADA‐database Vaccess® for DACHSview‐Vsystem® is a special offering for SCADA customers from Vista Control Systems®. 05/2013 www.dachs.net/DACHSview++_E_flyer.pdf