Hilfe!Was ist hier falsch?Anfänger braucht Hilfe!!

A

Anonymous

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich möchte folgendes programmieren:
U E 0.0
L MD 10
L 20
+D
T MD 10

Ich möchte bei Signal 1 auf Eingang 0.0 jedesmal zu MD 10 20 dazu addieren
doch sobald ich den Baustein beobachte,zählt MD 10 wie eine Stopuhr hoch,ohne das ein Eingang gesetzt wurde!
Wie kommt das?


Rainer
 
lade und transferbefehle sind vke-unabhängig.
d.h. die addition findet bei dir in jeden zyklus statt.

soll das nur bei steigender flanke passieren?

machs so:
Code:
UN E 0.0 
O M 1.0
SPB M001

S M 1.0
L MD 10 
L 20 
+D 
T MD 10 

M001: NOP 0
UN E 0.0
R M 1.0
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hallöchen

lade und transfer befehle sind vke unabhängige befehle darum wird es immer gezählt

Code:
Un E 0.0 
fp m50.0  //falls du nur bei der positiven flanke zählen willst
spb rech
spa ende

rech:L MD 10 
L 20 
+D 
T MD 10 

ende:nop 0
[/code]
 
Ich komm damit nicht klar.Hab das so programmiert wie oben vorgeschlagen,entweder wurde gar nichts addiert oder bei 80 war schluß und nach drei Zählimpulsen gehts dann bei 100 weiter.
Was klappt da nicht?



Rainer
 
Folgendes hab ich programmiert:

U DB1.FlankeMotor
SPB rech
SPA ende
rech:NOP1
L C#020
L AW 10
+I ( oder +D)
T AW 10
ende:NOP0
 
Du kannst keine Mathe mit BCD ausführen, Du musst es mit INT, DINT oder REAL machen.
 
Integer: L 20
DoubleInteger: L L#20
REAL: L 20.0 // wird automatisch gewandelt in :L 2.000000e+001

Gruß
raika
 
so gemeint:

U DB1.FlankeMotor
SPB rech
SPA ende
rech:NOP1
L 20
L AW 10
+I
T AW 10
ende:NOP0

mfg thomas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
mit dem befehl c# sagst du du möchtest dual 20 nach bcd codiert bekommen , so wird dann das ganze bitmuster geändert. bcd= 4 bit sind eine zahl dualcodiert bedeutet du nutzt das ganze bitmuster für eine zahl

1100=12 dualcodiert
1100= existiert bcd codiert nicht weil 10 ( 1010 ) max. sind
 
sorry, so´n quatsch
9 ist natürlich das höchste 1001
0 das niedrigste 0000
mfg thomas
 
Zurück
Oben