anfängerfrage bzgl. step7-microwin und libnodave

A

Anonymous

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo,
nachdem ich nun ein bissl' mit beiden o.g. dingen rumprobiert habe wollte ich nunmal ein kleines programm schreiben, was einfach einen timer hochlaufen lässt (wenn M0.0 gesetzt ist) und dann den merker nach 8sec wieder nullt, da ich leider keine taster oder sonstige sachen habe.
muss aber dazu sagen, das ich absoluter step7 anfänger bin und hier auch nur ein büchlein habe aus dem ich mein (nichtvorhandenes) wissen ziehe.

also hier das step programm:
Netzwerk1:
Code:
LD     M0.0
TON    T37, +80
Netzwerk2:
Code:
LD     T37
S      M0.0, 0

und hier das schnipsel aus dem c code:
Code:
//first read, should be 0
res=daveReadBits(dc, daveFlags, 0, 0, 1,NULL);
if (res==0)
{	
	a=daveGetU8(dc);		
	printf("1 - load M0.0:\t%d\tstatus:½%s\n", a, daveStrerror(res));
}
	
//set m0.0 to 1
b=1;
res=daveWriteBits(dc, daveFlags, 0, 0, 1, &b);
if (res==0)
{
	printf("wrote 1 to M0.0!\n");
}

sleep(2);
//second read, should be 1
res=daveReadBits(dc, daveFlags, 0, 0, 1,NULL);
if (res==0)
{	
	a=daveGetU8(dc);		
	printf("2 - load M0.0:\t%d\tstatus:½%s\n", a, daveStrerror(res));
}

//third read, should be 0 again
sleep(10);
res=daveReadBits(dc, daveFlags, 0, 0, 1,NULL);
if (res==0)
{	
	a=daveGetU8(dc);		
	printf("3 - load M0.0:\t%d\tstatus:½%s\n", a, daveStrerror(res));
}
sollte doch eigentlich rennen, oder mach ich da n denkfehler??

gruss und danke
andi
 
Was macht es denn? Was soll es machen?

Du solltest die Sache in zwei Teilprobleme zerlegen:
1. Das mit dem Timer. Ich bin nicht so gut in S7-200 Timern. Wenn ich sie gebraucht habe, habe ich probiert, bis sie das machten, was ich wollte. Auch wenn du keine Taster hast, jede CPU 2xx hat doch integrierte Ein- und Ausgänge. Die kannst du mit den LEDs beobachten und die Eingänge mit einem losen Draht ansteuern. Ferner kannst du alles mit MicroWin beobachten oder auch forcen.

2. Das mit Libnodave. Am Besten ist es, du läßt z.B. ein Merkerwort hochzählen. Dann kansst du leicht verfolgen, ob du die richtigen und aktuellen Daten liest.

Wenn Beides funktioniert, kannst du an das Zusammenspiel denken. Dabei ist zu beachten, daß Libnodave zu irgendeinem Zeitpunkt mitten im Zyklus (und nicht irgendwie synchronisiert) in die Steuerung schreibt.
 
Zurück
Oben