SIMATIC ODK 1500S

Transcription

SIMATIC ODK 1500S
Technische Information
SIMATIC ODK 1500S
Industrie Workshop PC-based Automation Nov. 2015
siemens.com/answers
SIMATIC ODK 1500S
Industrie Workshop PC-based Automation Nov. 2015
Seite 2
siemens.de/pc-based
SIMATIC ODK 1500S Highlights
Engineering Unterstützung
Windows Apps: Visual Studio
Realtime Apps: Eclipse (im Lieferumfang)
Robustheit & Echtzeit
Entkopplung von Windows Anwendungen
über asynchrone Ausführung
ODK
Security
KOP, FUP,
AWL
Unterbrechbarkeit von EchtzeitAnwendungen durch höherpriore OBs
PLCProgramm
Usability
Intuitive Verwendung von S7 FB für den
Aufruf von C-Funktionen
„Sandbox“ Ausführung für ODK RT
Anwendungen
Schutz von Know How und
Kopierschutz in der CPU
Graph7
OB 1
SCL
Funktionen
Ausführung von Echtzeitalgorithmen
C++
Industrie Workshop PC-based Automation Nov. 2015
Seite 3
Ausführen von Code in Windows-DLLs
siemens.de/pc-based
SIMATIC ODK 1500S – C/C++ in einem S7-1500 Software Controller
S7-1500 Software Controller – Unterstützung dynamisch
ladbarer Bibliotheken
PC
Windows
Software Controller
ODKAnwendung
SPSProgramm
FB Fct1
Fct2
• Mehrere Funktionen in einer ODK Anwendung
ODKAnwendung
• Mehrere ODK Anwendungen gleichzeitig
• Sowohl Windows- als auch Echtzeittreiber
Fct1
FB Fct2
dll
so
Siemens-Hypervisor
PC-Hardware
• Entwicklung in C/C++
• Windows: DLL (Dynamic Link Library)
• Entwicklung mit Visual Studio C++ (Express möglich)
• Asynchroner Funktionsaufruf zur Vermeidung von
Echtzeiteinflüssen
• Volle Windows-Funktionalität nutzbar
• Real-time: SO (Shared Object)
• Entwicklung mit Eclipse
• Synchroner Funktionsaufruf (Algorithmen, Regler)
Das ODK 1500S ermöglicht die Entwicklung solcher Anwendungen
Industrie Workshop PC-based Automation Nov. 2015
Seite 4
siemens.de/pc-based
SIMATIC ODK 1500S
Einfacher Aufruf von C Funktionen durch PLC Programm
Automatische Generierung der
Funktionsbausteine für die Verwendung von
ODK-Anwendungen:
§ Real-time ODK-Anwendungen haben ein
synchrones Interface
§ Windows ODK-Anwendungen haben ein
asynchrones Interface
§ Import der Funktionsbausteine über „Externe
Quellen“
Industrie Workshop PC-based Automation Nov. 2015
Seite 5
siemens.de/pc-based
SIMATIC ODK 1500S
Ausführung von Funktionen
Asynchrone Ausführung von Windows Funktionen:
Synchrone Ausführung von Real-time Funktionen:
§ Keine Echtzeiteinflüsse durch die Ausführung von Windows
Funktionen
:§ Synchroner Aufruf von real-time Funktionen
§ First call – first service, unabhängig von der Priorität des
Aufrufers:
§ Jede Funktion wird in einem eigenen Thread ausgeführt;
§ Ausführung der Funktion auf der gleichen Prioritätsebene wie
der aufrufende OB
§ C Funktionen können durch höherpriorisierte FB unterbrochen
werden
§ Alle Threads haben die gleiche Priorität
§ Windows übernimmt das Scheduling zwischen diesen
Threads, eine parallele oder geschachtelte Ausführung ist
möglich; keine Einflussnahme durch die Steuerung möglich;
priority
level C
OB
priority
level C
ODK
OB
priority
level B
OB
priority
level B
ODK
OB
priority
level A
OB
priority
level A
ODK
OB
Windows
ODK
Windows
Industrie Workshop PC-based Automation Nov. 2015
Seite 6
siemens.de/pc-based
SIMATIC ODK 1500S –
Windows Development
Industrie Workshop PC-based Automation Nov. 2015
Seite 8
siemens.de/pc-based
SIMATIC ODK 1500S
Windows ODK-Anwendung – Asynchroner Ablauf
1500S
SIMATIC S7-1500 Software Controller
Windows
C++
OB,
FB,
FC
CALL FB
Nnn_Load()
Load and initialize
DLL
initialize
CALL FB
Nnn_MyFunc()
Par1
Execute
MyFunc(
&Par1, &Par2, &Par3)
{
Par2
execute
...
Par3
polling
Busy
Error
Done
Status
Industrie Workshop PC-based Automation Nov. 2015
Seite 9
Return ODK_SUCCESS;
}
siemens.de/pc-based
SIMATIC ODK 1500S
Windows ODK-Anwendung – Laden der ODK-DLL
§ S7-150xS läuft in eigener Umgebung ohne
direkten Zugriff auf Windows
Windows
§ Auf der Windows-Seite ist „ODK Host“ installiert
ODK Host
ODK
DLL
§ ODK Host unterstützt:
ODK
DLL
§ 32/64 Bit Treiber
§ User / Service Anwendungen
§ Managed / Unmanaged Code
CPU 150xS
Siemens Hypervisor
PC
Industrie Workshop PC-based Automation Nov. 2015
Seite 10
siemens.de/pc-based
SIMATIC ODK 1500S
Workflow – Windows ODK-Entwicklung
Workflow
Engineering
1. Erstellen der Anwendung in MS
Visual Studio:
odk
“Interface.odk”
cpp
““<ProjektName>.cpp
Build
DLL
Interface.odk:
Definition der Funktionen
§
<ProjektName>.cpp:
Implementierung der
Funktionen
2. Übertragen der DLL auf
Zielsystem (USB-Stick,
Netzwerklaufwerk, etc.)
scl
3. SCL-Sourcen für ODK
Funktionen in TIA Portal Projekt
importieren
Target PC
Runtime
§
4. Erstellen des PLC Programms
mit ODK Funktionsaufrufen
CPU 150xS
Industrie Workshop PC-based Automation Nov. 2015
Seite 11
5. Download und Ausführen des
PLC Programms
siemens.de/pc-based
SIMATIC ODK 1500S
Windows ODK-Anwendung – PC-Anlauf
Die Einstellung „User“ / „Service“ beeinflusst den
Zeitpunkt des möglichen Ladens der ODK DLL.
ACHTUNG!
Man muss eine ODK-DLL „verzögert“
laden (siehe nächste Folie)
Industrie Workshop PC-based Automation Nov. 2015
Seite 12
Source: S7-1500S ODK Operator Manual
siemens.de/pc-based
SIMATIC ODK 1500S
Windows ODK-Anwendung – PC-Anlauf
Wenn Laden der ODK-DLL fehlschlägt (Windows noch nicht bereit),
dann erneut versuchen, bis es klappt.
SCL Code, TIA Portal
Industrie Workshop PC-based Automation Nov. 2015
Seite 13
siemens.de/pc-based
SIMATIC ODK 1500S
Windows ODK-Anwendung – .NET Support
• ODK Host der S7-150xS kann direkt Managed Code laden
è Aufruf von .NET Klassen und Methoden aus Managed C++ Code ODK DLL möglich!
Siehe Beispiele auf SIOS: https://support.industry.siemens.com/cs/ww/en/view/106192387
S7-150xS
FB ODK_nnn
Industrie Workshop PC-based Automation Nov. 2015
Seite 14
ODK DLL
.NET DLL
(Managed
C/C++)
(C#, VB.NET,
managed C++)
siemens.de/pc-based
SIMATIC ODK 1500S
Windows ODK-Anwendung – Remote Debugging
Remote Debugging Tools von
MS Visual Studio können verwendet
werden.
MS Visual Studio – Attach to Running Process
Menu >> Debug >> Attach to Process:
• ODK_Host_x86.exe à 32 bit DLL
ODK_Host_x64.exe à 64 bit DLL
Industrie Workshop PC-based Automation Nov. 2015
Seite 15
siemens.de/pc-based
Live Demo
S7-1500S Open Development Kit - Windows
Erstellen und Aufrufen einer C/C++ Funktion in der Software Controller
Applikation als Windows-Treiber
• Erstellen des Visual Studio Projektes
• Laden der DLL auf das Runtime System
• Asynchroner Aufruf einer langsamen Funktion
(z.B. MessageBox)
ACHTUNG!
Für Message-Box aus ODK-DLL muss man den Context=user belassen.
(Context=sytem läuft in session 0 à keine grafischen Elemente!)
Industrie Workshop PC-based Automation Nov. 2015
Seite 16
siemens.de/pc-based
SIMATIC ODK 1500S –
Real-time Development
Industrie Workshop PC-based Automation Nov. 2015
Seite 17
siemens.de/pc-based
SIMATIC ODK 1500S
Realtime ODK-Anwendung – Synchroner Ablauf
1500S
SIMATIC S7-1500 Software Controller
OB,
FB,
FC
Realtime Side
C++
CALL FB
Nnn_Load()
Load and initialize
SO
Initialize
CALL FB
Nnn_MyFunc()
Par1
Execute
Execute
MyFunc(
&Par1, &Par2, &Par3)
{
Par2
...
Par3
Return ODK_SUCCESS;
Status
Industrie Workshop PC-based Automation Nov. 2015
Seite 18
}
siemens.de/pc-based
SIMATIC ODK 1500S
Realtime ODK-Anwendung – Ausführung in „Sandbox“
Real-time Anwendungen laufen in einer
„Sandbox“
PC
Software Controller
OB
ODK Host (Sandbox)
FB Load
copy in
ODK
application
§ Kapselung des ODK Codes
§ Kein Zugriff aus SPS Speicher (Security!)
§ Im Moment kein Zugriff auf Hardware
Fct1
FB Fct1
copy out
FB Fct2
§ Verfügbare Bibliothek:
Fct2
§ NewLib
(außer Abhängigkeiten von Betriebssystem API)
FB Unload
Kein Ausspähen des Software Controller und Anwendungs-Know-How möglich!
Industrie Workshop PC-based Automation Nov. 2015
Seite 19
siemens.de/pc-based
SIMATIC ODK 1500S
Workflow – Real-time ODK – Entwicklung
Workflow
Engineering
1. Erstellen der Anwendung in
Eclipse:
odk
“Interface.odk”
cpp
““<ProjektName>.cpp
Build
SO
Interface.ODK:
Definition der Funktionen
§
<ProjektName>.cpp:
Implementierung der
Funktionen
2. Übertragen der ausführbaren
Datei in den Ladespeicher der
CPU per Webserver
scl
3. Übertragen der SCL-Sourcen
für die ODK Funktionen in das
TIA Portal Projekt
Target PC
Runtime
§
4. Erstellen des PLC Programms
mit ODK Funktionsaufrufen
CPU 150xS
Industrie Workshop PC-based Automation Nov. 2015
Seite 20
5. Download und Ausführen des
PLC Programms
siemens.de/pc-based
SIMATIC ODK 1500S
Real-time ODK-Anwendung – PC-Anlauf
Im Vergleich zu Windows ODK Treibern,
sind Real-time Funktionen sehr früh verfügbar.
ACHTUNG!
Das Laden von Real-time SOs braucht einige Zeit.
Bitte in Startup OB100 ausführen!
Industrie Workshop PC-based Automation Nov. 2015
Seite 21
Source: S7-1500S ODK Operator Manual
siemens.de/pc-based
SIMATIC ODK 1500S
Testen von Real-time Applikationen
Debugging (breakpoints, single steps) mit Windows Test-App.
odk
Enthlät #ifdef Debug:
Main
single step
breakpoint
On
Build
exe
MyProject.exe
Industrie Workshop PC-based Automation Nov. 2015
Seite 22
§ Target Einstellung
“debug”
§ Implementierung der
Testumgebung in
„Main“
§ Der nächste Build
erzeugt eine
ausführbare Windows
Date (exe) mit einer
DLL anstelle eines SO.
§ Die Exe kann unter
Windows ausgeführt
und vollständig
debugged werden.
„TRACE“ auf dem Zielsystem
#include ODK_Functions.h
// #define TRACE_OFF
ODK_RESULT SampleFunction(ODK_INT32
, ODK_BOOL
myBool
, ODK_DOUBLE
myReal)
{
ODK_RESULT MyResult;
/* here comes the user code
MyResult = ODK_SUCCESS;
ODK_TRACE (“return value: %d”,
(int) MyResult);
return MyResult
};
myInt
§ Jede ODK RT Applikation
hat einen Trace Puffer
§ Traces Einträge können mit
dem “ODK_TRACE Macro
eingetragen werden
§ Trace Puffer kann mit der
Funktion „GetTrace ()”
ausgelesen werden
§ Und z.B. in einer Variablen
Tabelle dargestellt werden.
siemens.de/pc-based
SIMATIC ODK 1500S –
Allgemeine Tipps & Tricks
Industrie Workshop PC-based Automation Nov. 2015
Seite 24
siemens.de/pc-based
Schnittstelle von ODK Funktionen – Einzel-Parameter vs. Klassik-DB
Einzel-Parameter
Klassik-DB
Verständlichkeit
Jeder einzelne Parameter ist als
einzelnes Argument sichtbar.
Nur ein Argument für einen ganzen Block
Komplexität
Viele Parameter führen zu großen
Blöcken
Auch große Datenmengen mit nur einem
Argument
Handling auf
C Seite
Einfach Funktionsparameter nutzen
Zugriff auf alle einzelnen Werte über AdressOffsets
(CODK_CpuReadData::ReadS7REAL() etc.)
Optimierte
DBs
Voll unterstützt
Nur Klassik-DBs
Param1
Param2
Param3
Param4
ParamStruct
Output1
Output2
Output3
Output4
Industrie Workshop PC-based Automation Nov. 2015
Seite 25
OutputStruct
siemens.de/pc-based
Datenkonsistenz?
Sowohl Windows-ODK-DLLs als auch Real-time Shared Objects:
• Aufruf ODK FB
à Kopieren der INPUT und INOUT Parameters in den ODK-Speicher
• ODK Funktion arbeitet mit Kopie der SPS Daten
• Beenden der ODK Funktion
à Kopieren von OUTPUT und INOUT zurück in SPS-Speicher
Industrie Workshop PC-based Automation Nov. 2015
Seite 26
siemens.de/pc-based
Verarbeiten von S7-STRINGs
Unterschied S7 String und C/C++ String:
Zwei Byte Header
(max./akt. Länge)
S7 String
254
5
'H'
'e'
'l'
'l'
'o'
C/C++ String
'H'
'e'
'l'
'l'
'o'
'\0'
Null-Terminiert
Funktionsparameter Typ „String“
• ODK_StringHelper für Konvertierung Zeichenketten
Klassik-DB
• Hilfs-Klassen: ODK_CpuReadData / ODK_CpuReadWriteData
CODK_CpuReadData::ReadS7STRING()
liefern Null-terminierte Zeichenkette
Industrie Workshop PC-based Automation Nov. 2015
Seite 27
siemens.de/pc-based
Migration von WinAC ODK Anwendungen
Industrie Workshop PC-based Automation Nov. 2015
Seite 28
siemens.de/pc-based
WinAC RTX (F) 2010 vs. S7-1500 SW-Controller Architekturen
ODK Schnittstellen
WinAC RTX
CPU 150xS
SIMATIC WinAC ODK V4.2
SIMATIC ODK 1500S V1
Ø Windows (VS 2010) oder Echtzeit (IntervalZero’s
SDK + VS 2010) Applikationen möglich:
Ø Windows (VS 2010 SP1, VS2012 oder VS 2013)
oder Echtzeit (Eclipse) Applikationen möglich:
Ø C/C++
(Windows & Echtzeit
Ø C#
(Windows)
Ø VisualBasic (Windows)
)
Ø C/C++ DLLs (Windows)
Ø .NET
(Windows)
Ø C/C++ SOs (Realtime)
PC
Windows
Controller
Management
Interface (CMI)
PC with Windows
CMI App.
STOP RUN
Custom Code
Extension
Interface (CCX)
Shared Memory
Extension
Interface (SMX)
LAB, FBD,
OB 1
CFC
WinAC
program
Graph7,
Higraph
SMX
SCL
WinAC
CCX
CMI
Industrie Workshop PC-based Automation Nov. 2015
Seite 29
C++
OB
dll
ODKapplication
FB Load
PC with Windows
C/C++ App.
STL
Software Controller (Realtime)
so
ODKapplicatio
n
Fct
1
FB Fct1
Fct1
Fct
2
FB Fct2
Fct2
FB
Unload
X
X
OB FB FC
Siemens Hypervisor
WinAC
PC Hardware
siemens.de/pc-based
Übersicht der verfügbaren APIs
WinAC ODK V4.2
Custom Code Extension (CCX)
Shared Memory Extension (SMX)
Controller Management Interface (CMI)
ODK 1500S V1.0
RT
Win
RT
Win
ü
ü
û
ü
ü
ü
ü*1)
û
û
ü*1)
û*2)
û*3)
*1) Reduzierte Funktionalität (siehe nächste Seite)
*2) Auf Anfrage
*3) Teilweise durch spezielle Tools ersetzt (siehe nächste Seite)
Industrie Workshop PC-based Automation Nov. 2015
Seite 30
siemens.de/pc-based
Details zum CCX Interface
WinAC ODK V4.2
ODK 1500S V1.0
RT
Win
RT
Win
Direkter Zugriff auf FB-Parameter im C Code
û
û
ü
ü
Synchrone Aufrufe
ü
ü
ü
û
Unterbrechbarkeit von synchronen Aufrufen
û
û
ü
û
Asynchrone Aufrufe
ü
ü
û
ü
SFB zum Entladen der ODK Funktion
û
û
ü
ü
Betriebssystem API (IPC, Threads, etc.)
ü
ü
û
ü
Debugging
ü
ü
û
ü
OB-Aufruf aus C Code
ü
ü
û
û
Kommunikation zwischen RT und Windows in CAnwendungen
ü
ü
û
û
Größe der FB Schnittstelle
Beliebiger
Zugriff
auf jegliche
SPS-Daten
Industrie
Workshop
PC-based
Automation
Nov. 2015
Seite 31
INPUT max. 64 Kbyte,
OUTPUT max 64 Kbyte
ü
ü
IN, OUT und INOUT Summe
max. 64 Kbyte max. 32 KByte
û
û
siemens.de/pc-based
Ersatz CMI Interface für S7-1500 Software Controller
WinAC RTX Funktion von CMI
Alternative S7-1500 Software Controller
Start / Stopp PLC
CPU_Control.exe / PowerOnCPU
CPU_Control.exe / PowerOffCPU
Diagnosepuffer lesen
–
(alternativ: Web Server)
SPS Betriebszustand ermitteln
–
(alternativ: Web Server)
Laden SPS Programm
ohne SIMATIC Engineering
–
(geplant)
SIMATIC Automation Tool – Unterstützt S7-150xS noch nicht
URL: https://support.industry.siemens.com/cs/ww/en/view/98161300
Industrie Workshop PC-based Automation Nov. 2015
Seite 33
siemens.de/pc-based
Zusammenfassung
• ODK für SIMATIC S7-1500 Software Controller mit Windowsund Echtzeiterweiterungen
• Kein separates SDK für Echtzeiterweiterungen mehr nötig
• Sehr einfacher Einstieg in Entwicklung durch verbesserte
Integration in Visual Studio (Windows) und Eclipse (Echtzeit)
• Durch „Sandbox Konzept“ für Echtzeiterweiterungen höhere
Robustheit, aber auch funktionelle Einschränkungen
(kein Hardwarezugriff, kein Threading, etc.)
Industrie Workshop PC-based Automation Nov. 2015
Seite 34
siemens.de/pc-based