Change-Log der Kithara »RealTime Suite«

Die »RealTime Suite« wird nun schon seit 15 Jahren erfolgreich entwickelt und ständig um neue Funktionalitäten erweitert. Folgende Verbesserungen und Funktionserweiterungen ergeben sich mit den verschiedenen Versionen:

18.01.2012 — Version 9.24

Innovations/Advances:

  • Support of Gigabit-Ethernet-Controllern mit Intel 82566/67, 82577/78/79, 82583 und i350 RealTek 8168E/8111E
  • Improvement of Distributed Clocks support in EtherCAT
  • New function KS_enumEcatDcModes to list all DC Modes of an EtherCAT slave
  • Replacement of the old USB API by the new USB API in the USB Module (smarter, faster, fully real-time capable, 64-bit)
  • Improvement using multiple CAN cards simultaneously
  • Better support of computers with missing MP table
  • Better recognition and handling of some developer's program failures

Revisions/Corrections:

  • Fixed problem with newest version of McAfee
  • Fixed endless loop timer in some rare cases
  • Fixed Intel-Pro/100 communication on 64 bit systems
  • Fixed handling of floating point context on CPUs with AVX
  • Fixed USB time stamps on PEAK PCAN USB modules
  • Fixed handling of data type REAL in EtherCAT

28.10.2011 — Version 9.23

Neuheiten/Verbesserungen:

  • Ausführung von 32-Bit-Echtzeit-Code auf 64-Bit-Systemen "Kithara32-in-Kithara64" => genannt "KiK64" (diese Betriebsart ist ursprünglich in Windows 7 nicht vorgesehen, ermöglicht nun jedoch, die selbe 32-Bit-Anwendung auch auf Windows 7 (64 Bit) zu betreiben).
  • Unterstützung neuer CPUs: AMD "Bulldozer"
  • neues Echtzeit-Timer-Konzept (geringeres Jitter, ohne Drift)
  • Unterstützung von Gigabit-Ethernet-Controllern mit Intel 82574/75/76 und 82580
  • neue Funktionen: KS_getSystemInformation & KS_getCurrentContext
  • Unterstützung der EtherCAT-Klemme EL6751 von Beckhoff für CAN und CANopen
  • Ablösung des alten Serial API durch das neue "UART Module"-API im Serial Module (einfacher, schneller, voll echtzeittauglich, 64 Bit)
  • Kithara-eigene Runtime-Library mit trigonometrisch/mathematischen und String-Funktionen für den Echtzeit-Kontext (unterstützt 32-Bit und 64-Bit, KiK64 jedoch noch nicht)

Überarbeitung/Korrekturen:

  • insgesamt verbesserte Unterstützung von Windows 7 mit 64 Bit
  • Echtzeit-Verhalten auf Rechnern mit Intel Core i7

Issues/Known Problems:

  • BSOD with newest version of McAfee

30.08.2011 — Version 9.22

Innovations/Advances:

  • 64-bit support of modules: RealTime, Packet, Socket, EtherCAT, CAN, CANopen
  • Special support of EL6751 CANopen Master embedded in EtherCAT
  • KS_CPU_LEVEL & KS_RTX_LEVEL for QuickMutexes have changed!
  • Added support of RealTek 8168D/8168DP and Intel 82575/82576/82580 network cards
  • Local-APIC hardware timer: better calibration and adjustment
  • APIC systems needed for real-time
  • Extension for support of more than 8 CPUs (or CPU cores) for real-time
  • New distinct shot real-timer (when appropriate hardware available)
  • EtherCAT: DC start time improvement
  • EtherCAT: Firmware download supported
  • EtherCAT: support of slaves where CoE information is contained in EDS files
  • Master Monitor: added adjustable real-time timer for PDO communication (default: 10 ms)
  • Physical memory improvement for real-time Ethernet communication
  • Extended hardware support: "Sandy Bridge" CPUs
  • Improvement of Update Manager (supports Runtime-Installation too)
  • RTX bytewise relocation improvement
  • Improvement on security attributes for tracing under Windows 7
  • Support of VirtualBox 4 guests

Revisions/Corrections:

  • Fixed creation/destruction order for objects in EtherCAT DC
  • Fixed retriggering TX on RealTek gigabit controllers
  • Better consideration of EtherCAT state change timeouts from XML
  • Fixed KS_setBusData/KS_getBusData
  • Fixed Serial hangup bug after breaking due to a user error code
  • EtherCAT Master always starts with INIT state after startup
  • Fixed bad alignment for Serial data structure due to changed global alignment
  • Fixed fast I/O port access (not implemented in Vista, supported on Windows 7)
  • Fixed BSOD in EtherCAT
  • Fixed USB receive with timeout & USB timeout bug
  • Fixed shift time in EtherCAT DC mode
  • Fixed USB time stamps on PEAK PCAN USB modules
  • Fixed EtherCAT sending multiple datagrams
  • Fixed Intel-Pro/100 Ethernet card access
  • Fixed adding user error strings with KS_addErrorString
  • Fixed EtherCAT datasets consisting of multiple datagrams
  • Compatibility with Windows 2000 SP 4 (before SP 4 not supported)
  • Fixed adding new error codes in ErrorMgr
  • Support for Windows 7 SP 1
  • Fixed syntax error in BAS file for VB6, "const*" issues in Kxxx_dyn.cpp (dynamic loading of the DLL), "const" issues in C#

Issues/Known Problems:

  • Running in VirtualBox 4.1 guests currently not tested
  • Not running in VMware guests

17.02.2011 — Version 9.21

Neuerungen/Verbesserungen:

  • Schnelle I/O-Port-Zugriffe auf neueren Betriebssystemen (Windows 7, Vista, 2008 R2, XP SP3)
  • CANopen Module mit Echtzeit-Master-Funktionalität
  • Verwendung von SSE-Registern und -befehlen bei den Funktionen KS_memCpy/KS_memMove/KS_memSet (Flag KSF_USE_SSE setzen)
  • 64-Bit-Support jetzt für folgende Module: Base, Kernel, IoPort, Memory, Interrupt, Clock (RealTime, MultiTasking, Packet, Socket, EtherCAT, CANopen in Kürze)
  • Pseudo-SyncManager KS_ECAT_SYNC_ALL, .._INPUT und .._OUTPUT erlaubt für KS_setEcatPdoAssign
  • Packet Module unterstützt jetzt generell Gigabit
  • Neues Programm Ksetup9.exe für Runtime-Setup (unterstützt 32- und 64-Bit-Plattformen)
  • Neue Interface-Datei für Fortran 90
  • EtherCAT: Funktionen KS_[query/enum]Ecat[Slave/DataObj/DataVar]Info in Echtzeit-Kontext ausführbar
  • Erweiterter Hardware-Support (Intel "Sandy Bridge" CPUs, Intel Pro/1000 82545/82546)

Überarbeitung/Korrekturen:

  • Fehler von Clock-Sprüngen auf 64-Bit-Systemen beseitigt
  • Einfrieren beim Öffnen/Schließen von RealTek 1000 unter Kommunikationslast
  • Funktion KS_memCpy erhält jetzt 4. Parameter 'flags' für eventuelles KSF_USE_SSE
  • EtherCAT: Fehler bei KS_queryEcatDataObj bei Auswahl von nur PDO- oder SDO-Objekten
  • EtherCAT erfordert jetzt Netzwerkadapter-Interrupt als Real-Time angemeldet (es sei denn KSF_FORCE_OVERRIDE ist gesetzt bei KS_createEcatMaster)
  • Real-time-Netzwerkadapter-Interrupt erfordert expliziten IRQ oder PCI-Express (es sei denn KSF_FORCE_OVERRIDE ist gesetzt bei KS_openAdapter)
  • Fehler auf Single-Core-PCs ohne APIC-Modus behoben
  • Automatische Baudratenmessung bei seriellen Ports auf manchen Rechnern
  • Korrigierte Neuinitialisierung der Echtzeit nach System-Schlafmodus
  • Weniger restriktive Hardware-Benutzung bei Nicht-Echtzeittreibern

Bekannte Probleme:

  • Software unterstützt derzeit kein VirtualBox 4 Gastsystem, verwenden Sie VirtualBox 3 statt dessen
  • Software unterstützt derzeit kein VMware-Gastsystem

10.12.2010 — Version 9.13k

Neuerungen/Verbesserungen:

  • 64-Bit-Unterstützung jetzt für folgende Module: Base, Kernel, IoPort, Memory, Interrupt
  • Effizientere Task-Umschaltung
  • Berücksichtigung der SSE-Register bei KSF_SAVE_FPU
  • “Distinct shot real-timer” ermöglicht exaktere Echtzeit-Events außerhalb eines Rasters
  • Erweiterung der Code-Relozierung bei KS_createCallBack
  • Aufhebung von Beschränkungen der Anzahl von Shared-Memory-Bereichen
  • EtherCAT: effizientere Mailbox-Kommunikation
  • MultiTasking Moduleunterstützt jetzt auch Anwendungsebene
  • Echtzeit-Tasks können gezielt bestimmten CPU-Kernen zugewiesen werden
  • Neue Funktionen KS_setTargetProcessor/KS_getCurrentProcessorzur Auswahl von CPU-Kernen
  • Echtzeit-Timer-Callbacks auf Anwendungsebene mit Zyklen unterhalb 1 ms
  • Neue Funktion KS_yieldTask zur Umschaltung auf andere Task
  • Erweiterte Hardware-Unterstützung (Intel Atom Z350, Intel Pro/1000 82546)

Überarbeitung/Korrekturen:

  • Verbesserte Unterstützung mehrerer CPU-Kerne durch Clock-Funktionen
  • Robustere Akzeptanz von Windows-Funktionen bei Ausführung auf der Kernel-Ebene
  • EtherCAT: angepasste Task-Prioritäten bei Mailbox-Kommunikation
  • Verbesserter Zeitstempel in CAN-Messages bei USB-Geräten von PEAK Systems
  • Verarbeitung von USB-Gerätenamen bei mehreren gleichen Devices verbessert

23.08.2010 — Version 9.12h

Neuerungen/Verbesserungen:

  • Neues CANopen Module als Teil der »RealTime Suite«
  • EtherCAT: Functionen read/post erweitert für direkten Zugriff auf PDOs
  • EtherCAT: SDO-Information kann von Slaves gelesen werden, die nicht online sind
  • Erweiterung des MultiFunction Moduls - Heidenhain IK220
  • Neue Funktionen zur Ermittlung von EtherCAT-Objekt- & -Variablen-Infos
  • Neue Funktionen zur Ermittlung von Profibus-Objekt- & -Variablen-Infos
  • Jetzt auch Unterstützung von PEAK PCAN PCI-Express-Karten (1 & 2-Port Echtzeit-CAN)
  • Erweiterung des MultiFunction Moduls - AddiData APCI-035, APCI-3701
  • Unterstützung der VMware Virtual Machine
  • CPP & PAS Dateien für dynamischen Zugang zur DLL (C++, Delphi)
  • CAN Module unterstützt jetzt auch Kvaser PCI-Express-Karten
  • KS_postMessage basiert jetzt auf internen Pipes & wurde auf 4096 Messages erweitert
  • Packet Module unterstützt jetzt auch Intel Pro/1000 NICs mit 82574 & 82583
  • Gigabit NICs können auf 100MBit oder auf Masterbetrieb gezwungen werden

Überarbeitung/Korrekturen:

  • Test auf bereits verwendete HPET
  • Verbessertes Test auf Unterstützung von RDTSCP bei Intel-CPUs
  • EtherCAT: korrigierter Index-Bereichstest
  • EtherCAT: Fehler beim Lesen der SDO-Info beseitigt
  • Verbesserung auf RealTek Gigabit-NICs
  • Fehlerbeseitigung in Relocation-Fixups beim Laden einer DLL auf die Kernel-Ebene
  • Beispielprojekte umbenannt - jetzt mit Modulnamen beginnend
  • Physischer Speicher konnte BSOD bewirken wenn aus mehreren Kerneln benutzt
  • Verbesserte Unterstützung für die Synchronisation aller Hardware-Zeitgeber
  • Bessere Erkennung, wann die EtherCAT-SDD-Cache-Dateien neu geladen werden müssen
  • EtherCAT: verbessertes Parsen der XML-SDD-Dateien
  • Verschiedene Fehlerbereinigungen im USB Module
  • Linker-Fehler beseitigt im Beispielprojekt “VS2005or08_CSharp_with_WPF”
  • Möglicher BSOD beim Schließen des Kernels oder Entfernen eines Kernel-Events
  • 2 Fehlende Datentypen für PAS-Datei definiert
  • Funktionen KS_calibrateMachineTime ist obsolet, aber misst dennoch effektive CPU-Frequenz

21.06.2010 — Version 9.11m

Neuerungen/Verbesserungen:

  • Neues Profibus Module als Teil der »RealTime Suite«
  • Echtzeit-Speicherverwaltung basierend auf internem Memory-Management
  • Neue Funktionen KS_malloc/KS_free für Echtzeit-Speicherverwaltung
  • Verändertes Hardware-ID-Schema für Geräte, vereinheitlicht für alle Funktionen
  • Namen gleicher Geräte sind jetzt ...\#1, ...\#2 etc.
  • Allgemeine Unterstützung des PM-Timers wenn der PC über ACPI verfügt
  • Allgemeine Unterstützung des High-Performance Event Timer (HPET) wenn verfügbar
  • Veränderte automatische Hardware-Zeitgeber-Anpassung
  • EtherCAT jetzt mit voller Unterstützung von Distributed Clocks (DC), 3 neue Funktionen
  • DC-Zeitgeber synchronisiert mit interner Echtzeit-Uhr
  • EtherCAT-Slave-Register können direkt über Slave-Memory-Read/-Write angesprochen werden
  • CAN Module unterstützt jetzt CAN-Karten von Kvaser & esd in Echtzeit
  • Verbesserte TSC-Angleichung auf Multi-Core-CPUs
  • Verbessertes Semaphore-Handling im Task Module
  • Delphi-Quelldatei unterstützt jetzt dynamischen Zugriff auf DLL (..._dyn.pas)
  • Synchronisierte One-shot-Echtzeit-Timer für die weitere Reduzierung des Jitters
  • Neues MultiFunction Module unterstützt A/D-I/O-Karten verschiedener Hersteller
  • Neue Funktion KS_startTimerDelayed für synchronisiertes Timer-Regime
  • Master Monitor verwendet EtherCAT API 2.0 als Standard
  • Erweiterung zur Unterstützung von mehr als 8 CPU-Kernen (bis zu 32)
  • Packet-Handler kann zusätzlich zu Sockets installiert werden
  • Erweiterung zur Unterstützung von mehr als 4 Ethernet-Ports
  • CAN speichert jetzt exakten Zeitstempel (in 0.1-µs-Auflösung) mit jedem empfangenen Telegramm

Überarbeitung/Korrekturen:

  • Optimierte Sperrungen (Locks) im Task Module
  • Mögliches Einfrieren des Systems durch EtherCAT Master
  • NOLRW-Attribute wird in EtherCAT-XMLDatei berücksichtigt
  • Interrupt-Behandlung arbeitet jetzt round-robin bei mehreren CAN-Karten
  • EtherCAT: LWR-LRD Fehler bereinigt
  • EtherCAT: Virtual-Sync-Manager
  • I/O-APIC kann auch "write-only" sein!
  • Patch zur Umgehung des "Intel-Pro/1000 MAC-loss bug"
  • Benutzung von RDTSCP für den TSC auf Mehrkern-CPUs
  • Alte Ksetup.exe wird nicht installiert - verwenden Sie die INF-Datei zur Installation!
  • Vermeidung von NIC-Interrupts in der Initialisierungsphase

18.01.2010 — Version 9.10c

Neuerungen/Verbesserungen:

  • Verbesserte Unterstützung von Windows 7
  • Verwendung von MSI-Interrupts für Echtzeit-Ethernet
  • MSI-Interrupts wählbar bei KS_create(Device)Interrupt
  • Neue Funktion KS_createDeviceInterruptEx öffnet anhand Device-Namen
  • Echtzeit-TCP/-UDP kann Broadcast-Messages empfangen
  • MultiFunction Module unterstützt weitere I/O-Karten (WASCO, AddiData)
  • Zugang zu EtherCAT 1 nur über gesonderte Header-Datei
  • EtherCAT 1 API wird auf EtherCAT 2 umgelenkt - intern stets EtherCAT 2
  • EtherCAT 2: Verbesserte Unterstützung von Slaves mit DC-Synchronisation
  • Optimierung der Scheduler-Mechanismen im Task Module
  • Unterstützung von RealTek Gigabit-Netzwerkadaptern (8110, 8169, ...)
  • Steuerung von Sende- und Empfangs-Interrupts bei Netzwerkadaptern
  • Erweiterte CPU-Unterstützung (Core i7, ...)

Überarbeitung/Korrekturen:

  • Kompatibilität zwischen ResourceInfo und …Ex
  • Setup/Runtime-Setup unter Windows 7
  • Möglicher Fehler beim Schließen eines Netzwerkadapters
  • Möglicher Fehler "Ungültiges Handle" beim Öffnen eines Netzwerkadapters
  • Anpassungen in Master Monitor für EtherCAT 2
  • Anpassung beim EtherCAT-Datagramm-Timeout
  • Clock-Kalibrierung und Langzeit-Synchronisierung
  • Unterstützung von Intel Dual-/Quad-Port-Netzwerkadaptern
  • Möglicher Deadlock bei Echtzeit-Timern

14.10.2009 — Version 9.00a

Neuerungen/Verbesserungen:

  • Unterstützung von Windows 7
  • EtherCAT Master in neuer Version 2 - erweitertes API
  • EtherCAT Master 2: PDO-Mapping/PDO-Assignment ändern vereinfacht
  • EtherCAT Master 2 mit Datentyp “BIT”
  • KS_openAdapter: Netzwerkadapter auch mit offener Leitung zu öffnen
  • Kompatibilität zwischen ResourceInfo und …Ex
  • Kernel Tracer speichert jetzt auch Windows-CrashDump
  • Geschwindigkeitsverbesserungen bei USB-Datenverkehr
  • Ring3-Ring0-Kommunikation beschleunigt

Überarbeitung/Korrekturen:

  • nicht Interrupt-synchrone Ausführung bei KS_execSyncFunction
  • Entfernen von "locked memory"
  • EtherCAT: Auswertung von XML-Gerätedateien
  • Echtzeit-CAN mit USB-"Peak-Dongle": beim Öffnen ohne CAN-Devices

03.08.2009 — Version 8.22d

Neuheiten/Verbesserungen:

  • Clock-Funktionen jetzt auch mit HPET (High Performance Event Timer)
  • alle Hardware-Zeitgeber langzeit-synchronisiert, einheitliche Zeiten
  • Erkennung unstetiger Hardware-Zeitgeber durch dynamische Taktanpassung
  • Stetigkeit der "Windows-Uhr" verbessert
  • Echtzeit-CAN jetzt auch über USB: mit PCAN-USB von PEAK System
  • CAN mit zusätzlicher Hardware-Unterstützung: CPC-104P von EMS Dr. Wünsche
  • Erweiterung auf 256 physikalische Speicherblöcke
  • verbesserte Erkennung von PCI-Geräten
  • RealTime-Interrupts lassen sich als exklusiv erzwingen
  • System Freeze Kill im Kernel Tracer zur verbesserten Fehlersuche
  • Kernel Tracer mit verbesserten Filter- und Anzeigemechanismen
  • Darstellung von CAN-Messages im Kernel Tracer
  • EtherCAT Master, Version 1.5 (Beta-Version, zu finden in KrtsBeta)
  • Anpassung des Master Monitor für EtherCAT Master 1.5, Vorbereitung auf 2.0
  • Unterstützung von Windows 7 in der Beta-Version (KrtsBeta)

Überarbeitung/Korrekturen:

  • Thread-Local-Storage unter Windows Vista
  • auf Local-APIC basierende Echtzeit-Timer fehlerhaft
  • inkorrekte Task-Umschaltung

05.05.2009 — Version 8.21c

Neuheiten/Verbesserungen:

  • Performance-Verbesserung bei Gigabit-Netzwerk-Adaptern
  • Laden mehrerer verbundener DLLs auf Kernel-Ebene möglich zur Treibererweiterung
  • beschleunigte Ausführung von I/O-Port-Zugriffen unter Windows Vista
  • neues CAN Module als Teil der RealTime Suite, Echtzeit-CAN-Kommunikation
  • CAN Module unterstützt zunächst CAN-Karten von Peak, EMS und IXXAT (weitere geplant) mit Hersteller-unabhängigem API
  • Langzeit-Synchronisierung der Zeitmessung mit Windows-Systemzeit
  • Umgehung der Windows-Race-Condition beim Laden von Programmen in Autostart
  • Kernel Tracer wesentlich erweitert (USB Messages, CAN Messages)

Überarbeitung/Korrekturen:

  • Verbesserte Device-Enumeration unter Windows 2000 und Windows 7
  • KS_calibrateMachineTime schaltet nur auf TSC wenn keine dynamische Taktanpassung

05.02.2009 — Version 8.20b

Neuheiten/Verbesserungen:

  • Kernel Tracer wesentlich erweitert (Drag&Drop, Memory Viewer, PCI Viewer)
  • Kernel Tracer unterstützt Message-Maskierung und -Filterung vor dem Senden

Überarbeitung/Korrekturen:

  • Serial Module: nach Setzen von Line-Control falsche Baudrate
  • Verbesserung bei der Freigabe von physikalischem Speicher

30.10.2008 — Version 8.13d

Neuheiten/Verbesserungen:

  • Kithara Master Monitor für EtherCAT-Topologien
  • EtherCAT-Master jetzt mit EThernet-over-EtherCAT (EoE)
  • Besuch des 6. EtherCAT-PlugFests: EtherCAT-Master mit vielen Verbesserungen
  • EtherCAT unterstützt nun auch "Logical Read/Write"
  • neues Tool "Kithara Update Manager" zum einfachen Versionswechsel
  • Kithara Update Manager berücksichtigt auch vorhandene Installationen
  • verbesserte Synchronsation des MultiTasking Modules unter Windows Vista

21.08.2008 — Version 8.12d

Neuheiten/Verbesserungen:

  • mehrere Echtzeit-Tasks auf der gleichen Prioritätsstufe ("Round robin")
  • dynamische Prioritätsanpassung im Task Module
  • Realtime-Scheduler jetzt mit Prioritätenvererbung
  • weitere Verbesserung der APIC-Timer
  • alle kernel-tauglichen EtherCAT-Funktionen aus Task-Kontext möglich
  • Update Manager für einfachen Versionswechsel von Kernel-Dateien
  • neuer Kernel Tracer mit automatischer Kompression der Log-Dateien

Überarbeitung/Korrekturen:

  • I/O-APIC-Zugriffe unter Windows Vista
  • Echtzeit-Timer auf Legacy-Hardware (PIC)
  • mehrfaches Öffnen des Treibers

02.06.2008 — Version 8.11i

Neuheiten/Verbesserungen:

  • Gleitkomma-Verarbeitung im MultiTasking Module
  • EtherCAT Master mit Unterstützung der XML-Slave-Dokumentation
  • Unterstützung von Windows XP SP3 und Windows Vista SP1
  • EtherCAT Master basiert vollständig auf MultiTasking Module
  • Synchronisation von Echtzeit-Tasks mit Semaphoren

Überarbeitung/Korrekturen:

  • Allokation des physischen Speichers
  • nicht geschlossener Thread bei Beenden der Anwendung
  • gleichzeitiges Starten mehrerer Anwendungen
  • automatische Ressourcenbereinigung bei Programmende
  • Synchronisation mehrerer Tasks auf Dual-Core-CPUs
  • Echtzeit-Timer auf Legacy-Hardware (PIC)
  • bessere Unterstützung von PCs mit unvollständiger MP-Tabelle