after reading your question I've just tried it with the 3CB30 cable - for the first time with libnodave and this cable too.
Seems to be working
For compiling in PC I just took an older version of libnodave (V4.2 ...) which doesn't any matter.linux:~ # cd /
linux:/ # cd libno*
linux:/libno42_PCTest # make
cc -O0 -Wall -Winline -DLINUX -c -o testPPI.o testPPI.c
gcc nodaveCommon.o setport.o nodavePPI.o testPPI.o -o testPPI
linux:/libno42_PCTest # ./testPPI
Usage: testPPI [-d] [-w] serial port.
-w will try to write to Flag words. It will overwrite FB0 to FB15 (MB0 to MB15) !
-d will produce a lot of debug messages.
-b will run benchmarks. Specify -b and -w to run write benchmarks.
-l will run a test to determine maximum length of a block in read.
-m will run a test for multiple variable reads.
Example: testPPI -w /dev/ttyS0
linux:/libno42_PCTest # ./testPPI -d /dev/ttyS1
Trying to read 64 bytes (32 words) from data block 1.
This is V memory of the 200.
Press return to continue.
PDU header: 32,01,00,00,00,00,00,0E,00,00,
plen: 14 dlen: 0
I send: 68,1B,1B,68,
There are two points which have to be in the testPPI.c and switched to the PLC similar.
1.) You have to choose really that adress which is given to your PLC - in this case by me No.2dc =daveNewConnection(di,2,0,0); // insert your PPI address (2) here
2.) The choosen baudrate must be same like switched in your PLC.fds.rfd=setPort(argv[adrPos],"19200",'E');
In the newer versions the source looks a little bit other, but in usage you will find the help and must look in the source for the points were you have to fix the code in these both points.