forked from netdata-be/libnodave
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
112 lines (101 loc) · 6.73 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
08/26/2003 partly unified versions for MPI adapter and IBH NetLink. Common stuff went into
nodaveCommon.c.
It should now work with S7-400 PLCs without a patch, but I've not tested this.
09/19/2003 Found remedy to prevent hangups in nodaveIBH.c
10/04/2003 Added the stuff for S7-200 over PPI cable.
10/05/2003 Wrote a test program for S7-200 over PPI cable.
03/13/2004 New functions to load a program block from the CPU.
03/14/2004 New area type system data (SD), daveArea_SD
03/26/2004 Retry PPI send, when response times out.
05/20/2004 Working ISO/TCP transport with CPs x43
06/14/2004 Fixed a bug regarding initialization of MPI/TS adapter
09/09/2004 Applied patch for variable Profibus speed from Andrew Rostovtsew.
The Profibus speed is a new parameter to daveNewInterface,
so you will need to change existing programs :-(
The parameter is only meaningful for the MPI protocol. It is meaningful for but
not yet supported by nodaveIBH. For all other protocols, any integer will do.
09/09/2004 Partly applied patch for compilation under Windows using Cygwin. Non-inline
data conversion functions replace the inlined ones and the byteswap.h from Linux.
09/12/2004 Implemented the read from multiple addresses.
10/10/2004 Made a unified version for all protocols (not yet IBH)
Added targets: make install, make dynamic to Makefile
12/01/2004 Fixed a bug in nodave.c that made compilers complain.
12/08/2004 Make read of analog inputs and outputs of 2xx work.
12/09/2004 Rmoved some debug printf()s.
12/09/2004 Found and fixed a bug in daveFreeResults(): The result set is provided by the
application and not necessarily dynamic. So we shall not free() it.
12/19/2004 First version for WIN32 and C
01/11/2005 Some code cleanup. Can now load program blocks into CPU 315. Win32 version
COM port settings fixed.
01/16/2005 Fixed reception of SZL-lists and block lists that don't fir into a single PDU.
01/26/2005 Multiple write implemented.
01/31/2005 Fixed isotest4.c, which could not be compiled with most C-compilers but mine,
however.
02/06/2005 Added workarounds to run on ARM processors.
02/12/2005 Integrated code for IBH NetLink.
02/13/2005 Put benchmarks into a separate file.
02/21/2005 Put program download and RUN/STOP functions into main test programs.
03/03/2005 Added fix from Axel Kinting that speeds up connections via IBH-NetLink.
03/03/2005 Added an option to set slot number in testISO_TCP.
03/03/2005 Changed dword to longword in pascal/nodave.pas for Delphi compatibility.
03/18/2005 Added code to access S7-200 with PPI protocol over IBH/MHJ-NetLink gateways.
03/18/2005 Changed unified benchmark code to use different memory areas on 200 or 300/400 CPUs.
04/06/2005 renamed swap functions. When I began libnodave on little endian i386 and Linux, I used
used Linux bswap functions. Then users (and later me) tried other systems without
a bswap. I also cannot use inline functions in Pascal. So I made my own bswaps. Then
I, made the core of my own swaps dependent of LITTLEENDIAN conditional to support also
bigendien systems. Now I want to rename them from bswap to something else to avoid
confusion for LINUX/UNIX users. The new names are swapIed_16 and swapIed_32. This
shall say swap "if endianness differs". While I could have used similar functions
from the network API (htons etc.) on Unix and Win32, they may not be present on
e.g. microcontrollers.
I highly recommend to use these functions even when writing software for big endian
systems, where they effectively do nothing, as it will make your software portable.
04/06/05 removed daveGetByte(), daveGetWORD(), daveGetWORDat(), getByteAt(), getInteger().
I first named these function according to Linux gcc C or PLC data types. But the
problem is that e.g. an INT on Siemens PLCs is a 16bit signed value. That's in turn
a short on gcc, an integer on Turbo Pascal, Is it still an integer in Delphi? So the
newer funtions are named after bit length and signedness of what they transfer to/from
PLC data copies. So daveGetU16 means get an unsigned 16 bit value.
04/10/05 Hope I fixed a bug in daveWriteBytes(), daveWriteBits(): In multiple write, if the
data to be written is of odd length, a 0 byte is appended before further data
follows. Versions 0.6.x appended such a byte to each write request if data length
is odd, but this fails under some circumstances.
This version appends the 0 byte only before further data is appended.
04/11/05 Fixed some bugs in test programs: Test programs (and all other applications) may
only retrieve data from internal buffer (via daveGetU8 etc.) if read result is 0.
Otherwise they would read from an undefined pointer.
04/21/05 renamed LITTLEENDIAN to LITTLE_ENDIAN because it seems to conflict with
another #define in winsock2.h.
04/29/05 Added a function to set Outputs in S7-200 when the PLC is in Stop mode. I called
this function "daveForce", but it DOES not force the values in the sense that the
forced state would override the result of the PLC program. Instead, as soon as you
switch to RUN, these settings are of no more effect. When you switch back to stop,
all outputs will be 0 again.
05/06/05 Because some users reported difficulties to use the prebuilt .dll and .lib file
created with Borland tools, I cared to add a .dll and .lib file compiled with MSVC.
I could download a VCToolkitSetup and the Platform SDK from Microsoft for free.
There is neither an IDE nor a make utility. So I used GNU-make and wine on Linux
to find out how to build the .dll and test programs.
The Makefile for GNU make is MAKEFILE.VC.WINE.
I cannot write a Makefile for MS-make without having it. So, for people which want
to use MSVC but cannot find out how to set options to the IDE or build a Makefile,
I provide a batch file which will just rebuild all.
05/11/05 Added a free function to dispose memory reserved by the library.
08/05/05 Added a string copy function.
08/06/05 Added daveGetProgramBlock() and daveFetMaxPDULen()
08/06/05 Added a PERL interface and example code.
08/07/05 Added a VB interface and example code.
10/06/05 Added usage of Siemens libraries for transport.
03/30/06 Bug fixes for .NET
05/15/06 Applied patch from Ken Wenzel for NETLink PRO
05/15/06 Applied PERL patches from H.-J. Beie
05/29/06 Bug fixes for AS511
Version 0.8.4.5
07/10/09 Changed readISOpacket for Win32 to select() before recv().
07/10/09 Added closeSocket()
07/10/09 Added daveCopyRAMtoROM
07/12/09 Changed flags in setport.c. Older version does not work with recent Linux
kernels.
07/12/09 Removed C-Sharp subdirectory. These were my first experiments with that
language.