the graphical programming environment for ...+features.pdfadvanced features of dachsview++ 1....

4
© STEINHOFF Automation & FieldbusSystems www.steinhoffautomation.com COMBINING THE 2 WORLDS OF FUNCTION BLOCK- & C/C++ PROGRAMMING THE GRAPHICAL PROGRAMMING ENVIRONMENT FOR REAL-TIME- AND GUI-APPLICATIONS PowerPoint online: www.DACHS.net/DACHSview++features.pps Function Block Programming is part of IEC611313 What is IEC611313? The IEC611313 standard with its 5 programming languages defines a programming environment for Programmable Logic Controllers (PLCs). The first draft standard of IEC11313 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 IEC611313? The roots of IEC611313 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 C03190) (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 IEC611313 today? The 5 standard IEC611313 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 IEC611313 : event oriented processing (only polling support by IEC611313!) 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 IEC611313 today: threads as system threads realtime 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 realtime Soft PLC supporting the newest generation of multicore PC hardware running in hard realtime w/o all restrictions, introduced by the IEC611313 standard ! seamless allinone IDE for the graphical development of realtime 2D/3D graphics and realtime 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 realtime 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 realtime operating systems together with their realtime scheduling. This leads e.g. to response times in the range of microseconds!

Upload: others

Post on 15-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: THE GRAPHICAL PROGRAMMING ENVIRONMENT FOR ...+features.pdfAdvanced Features of DACHSview++ 1. operating in real‐time and event orientation ‐ event oriented processing requests

 

© 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!  

   

Page 2: THE GRAPHICAL PROGRAMMING ENVIRONMENT FOR ...+features.pdfAdvanced Features of DACHSview++ 1. operating in real‐time and event orientation ‐ event oriented processing requests

 

 

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  

   

Page 3: THE GRAPHICAL PROGRAMMING ENVIRONMENT FOR ...+features.pdfAdvanced Features of DACHSview++ 1. operating in real‐time and event orientation ‐ event oriented processing requests

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

Page 4: THE GRAPHICAL PROGRAMMING ENVIRONMENT FOR ...+features.pdfAdvanced Features of DACHSview++ 1. operating in real‐time and event orientation ‐ event oriented processing requests

 

© 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