* betrifft nur die ARM-Version
beim Lesen von Realwerten wurden wg. ALIGNMENT falsche Werte gelesen
* IPS7RdW
Offset bei Start != 0 wurde mit Faktor 4 statt 2 berechnet
* Lite Version für Privatanwender generiert
* neue Funktionen:
IPS7GetPLCName(long Ref, char *Str);
IPS7GetModuleName(long Ref, char *Str);
IPS7GetPlantIdName(long Ref, char *Str);
IPS7GetCopyrightEntry(long Ref, char *Str);
IPS7GetModuleSNr(long Ref, char *Str);
IPS7GetModuleTypeName(long Ref, char *Str);
IPS7GetMMCSNr(long Ref, char *Str);
IPS7GetOEMId(long Ref, char *Str);
IPS7GetLocationDesignation (long Ref, char *Str); LPCSTR in LPCTSTR geändert wg. WINCE
* LPCSTR in LPCTSTR geändert wg. WINCE
* S7-200 / Logo -Zugriff eingebaut, bei Logo immer TSAP 02.00 verwenden
* purer S7-200 Logo Lizenz eingeführt, kann mit S7-LAN-LINK kombiniert werden
* bei S7-LAN-LINK wurde bei nichtvorhanden sein des S7-LAN oder S5-LAN socket nicht geschlossen
* Setzen / lesen der SPS-Urzeit implementiert
* IPS7GetPLCTime (long Ref, long *pYear, long *pMonth, long
*pDay, long *pHour, long *pMin, long *pSec, long *pMs); // 1.54
* IPS7SetPLCTime (long Ref, long Year, long Month, long Day, long Hour, long Min, long Sec, long Ms); // 1.54
* RdMultiSimplex, wenn z.B. während Debug die IP-Verbindung zurückgesetzt wurde
wurde evtl. ein nicht definierter positiver Fehler zurückgemeldet
* IPS7RdBit, Bit-Lesen ab 1.51 es wurde immer Bit 0 gelesen
* Im Source Änderungen für IAR-Compiler eingefügt
* bei 1.50 MultiRead Fehler (PDUSize)
* MultiRead mit Counter war nicht korrekt
* Anpassungen für Embedded Systeme gemacht
* Leseroutinen optimiert
* Bei Linux wird für Critial Sections nun pthreads verwendet
* für S7-LAN-LINK auch S5-LAN integriert
* unter Linux für Erstellung shared Libs mit Compileroption -"fPIC"
übersetzt
* Unterstützung für ARM-Processoren implementiert (Alignment-Trap
behoben)
* Bit-Zugriffe mit MultiRead Funktion
Beim lesen von Bit's mit Start-Bitadresse > 0 trat kam bei einigen SPS der Fehler
Datenbereich nicht vorhanden auf (Bitadresse wurde bei Bytezugriff
mit übergeben)
* PDU-Size für CPU 400 etc. optimiert
* Unterstützung / Erkennung S5-LAN mit S7-TCP/IP
Bei MultiRead-Zugriff auf S5-LAN wird die Real-Konvertierung nicht inm S5-LAN.
sondern im Treiber vorgenommen. Der Treiber muss jedoch wissen, ob ein S5-LAN angeschlossen ist.
- ab S5-LAN ++ V 1.20 kann dies der Treiber automatisch erkennen.
- bei Modulen < 1.20 bei der Funktion IPS7OpenEx als AccessMode
"20" angeben.
* MultiReadzugriff: Demoversion eingebaut
sizeof - Vergleiche berichtigt
* MultiReadzugriff:
Trat vor ausführen des ersten Read-Auftrags ein Fehler auf (z.B Timeout etc.)
Wurde im Auftrag als Result -88 /Auftrag nicht bearbeitet gesetzt
nun wird dort der tatsächliche Fehlerwert angegeben.
* Linux: war kein connect möglich, so wurde Fehler -5 (genereller Fehler) gesetzt
nun wird Socketfehler gesetzt, so kann die eigentioche Ursache mit errno bwz. strerrno()
ermittelt werden
* MultiReadzugriff: lesen von Ausgängen wurde nicht unterstützt
* MultiReadzugriff: bei Blöcken > 220 Byte kam es zu Überschreibungen
*.Net MultiReadzugriff: Da der da Garbage Collection die Variablen unvorhergesehen verschieben kann,
musste die Zugriffsweise überarbeitet werden.
Programme in c# oder VB.Net sollten die Funktiion RdMultiBuffered
verwenden. Näheres in der .chm Datei!
* MultiReadzugriff: neue Funktion " IPS7RdMultiCalcPacketCnt"
Liefert die Anzahl der benötigten Pakete zum lesen aller angegebenen
MultiRead-Aufträge
* MultiReadzugriff: . Int16 und Int32 (signed) wurde bei übergabe von PC_INT32, und PC:DWORD in einen unsigned konvertiert
nun erfolgt die Konvertiereung richtig in enen signed-Wert
* .Net-Interface: für Multiread-Zugriff, Int16 und Int32 (signed) Zugriff implementiert.
* .Net-Interface: für Multiread-Zugriff, bei verwenden von Arrays, wird die Grösse geprüft,
Ist ein Array zu klein, wird der Fehler -20 erzeugt.
* MultiReadzugriff: Umwandlung von Bit in DWORD oder Real
führte zur Schutzverletzung
* IPS7RdMulti, Kopierfehler es kam zur Schutzverletzung
* Demo für Delphi überarbeitet, Outfit wie C++/C#/VB.net
* Neu Funktionen:
- IPS7Connect -- führt explezite IP-Verbindung aus
- IPS7GetConnectStatus -- prüft den IP-Verbindungsstatus
- IPS7SetKeepAlive -- setzt individuelle KeepAlive-Zeiten
-
IPS7RdMulti
-- liest verschiedene Datenbereich an einem Stück aus der SPS
* Zwischenverison
* beim lesen der Timer konnte es bei laufendem Timer zu falschen
Ergebnissen kommen. Die Basis wurde falsch berechnet.
* Lesen / Schreiben der Real / Float-Werte mit S7-Code so ist auch
ein Betrib an S5-Lan++ mit Realwerten möglich.
* in den .Net-Assemblies Strong-Names eingefügt (20.8.09)
* V 1.29 auf Linux portiert, S7-LAN-Link hat jetzt selbes Interface wie IP-S7-LINK, läuft aber nur mit S7-LAN,
so ist der Umstieg auf IP-S7-LINK für den Anwender einfacher.
(17.7.09)
* Assembly Interface zu .Net Rd Methode mit 32 Bit
Integer hat Bit gelesen, nun 32 Bit
* ips7lnk.lib verweiste auf s7lanlnk.dll, dadurch kam es zu
Linkfehlern
beim VC++ Compiler, bzw. zur Medlung, S7lanknk.dll wird nciht gefunden
* Zusätzliche Prüfungen für gültigen Speicher eingefügt. Behandlung
der Critical Sections verbessert
* IPS7WrBit war nicht exportiert
* Beim Aufruf von IPS7Open mit mehreren Threads gleichzeitig
kam
es gelegentlich zu Traps. Porblem mit CriticalSection behoben
* .Net und PHP Eingepflegt
* Zugriff über Routing per SubnetID eingefügt
* Betrieb mit Slot-SPS und Soft-SPS ging nicht (FAST-ACK wurde nicht korrekt verarbeitet)
* Probleme beim Empfang von fragmentierten Daten
* Betrieb mit CP 243 (S7 200) implementiert
* Sonderversion für Fachhochschule begrenzt auf DB1 und DB2 erzeugt
* Die Änderung 1.18 war nur für IPS7RdPlcW und IPS7WrPlcW bei Blöcken > 111 Worte
gedacht. Mit 1.18.funktionerten IPS7RdW und IPS7WrW in diesen
Bereichen nicht mehr
* falsche Berechnung der StartAdresse bei IPS7RdW und IPS7WrW bei Blöcken > 111 Worte
Die Startadresse der Folgeblöcke wurde falsch bestimmt
* Neue Funktion eingefügt IPOpenPG, damit ist es möglich, eine Verbindung über den PG-Kanal der SPS herzustellen,
Sinnvoll, wenn keine OP-Kanäle mehr frei sind.
* zum worteweise Lesen und Schreiben mit ungeraden Startadressen
Funktion IPS7RdPlcW und S7WrPlcW
* Wir hatten grundsätzlich den PG.Kanal verwendet, ab nun wird der
HMI/OP-Kanal verwendet
* Timeoutüberwachung zum Empfang des gesamten Blocks eingefügt. U.u.
kam es zu Problemen mit Berthel SPS
* Maximale Anzahl geöffneter Kanäle auf 256 erhöht
* Maximale Anzahl geöffneter Kanäle auf 128 erhöht
* Um höhere Performance zu erreichen wurde der Nagle-Algorithmus
ausgeschaltet. D.h. TCP_NODELAY wurd auf 1 gesetzt.
* Beim 'close' der Sockets hat Windows den gewünschten Port teils erst nach 20 Minuten wieder freigegeben.
Dabei kam es zum Effekt, daß erst nach Neustart der SPS oder des PC
eine neue Verbindung zu SPS möglich war
* Maximale Anzahl geöffneter Kanäle auf 64 erhöht
* Schreiben in Eingänge erlaubt
* Beim Verbindungsversuch mit Teilnehmern, die nicht im Netz waren, wurden Handles im System belegt und nicht mehr freigegeben.
Problem behoben!
* DLL-Aufruf von mehreren Applikationen aus gab Fehler nun beseitigt
* Timer / ZählerFunktionen eingefügt
* Doppelwortfunktionen eingefügt
* Realzahlenzugriffe (Fließpunktarithmetik) eingefügt
* Bit-Lese und Schreibfunktionen eingefügt
* Byteweise Lesen und Schreiben bei DB eingefügt
* Beim Lesen von Blöcken, die durch 222 teilbar sind
z.B. 444 Byte oder 222 Worte
z.B. 666 Byte oder 333 Worte ..
wurde der letzten 222 Byte nicht gelesen, es erfolgte keine Fehlermeldung
* Beim Schreiben von Blöcken, die durch 212 teilbar sind
z.B. 424 Byte oder 212 Worte
z.B. 636 Byte oder 318 Worte ..
wurde der letzten 212 Byte nicht geschrieben, es erfolgte keine
Fehlermeldung
Fehlernummer -6 eingefügt
Funktion IPS7GetSockErr eingefügt (siehe Dokumentation)
Lesen von Bausteinbereichen, die nicht exisitierten
wurden als OK bestätigt, obwohl der angegebene Bereich nicht existierte
Dies trat auf bei DB > 111 Worte