Betingter Aufruf von DBs in s5 geht das?

Kogs

Level-1
Beiträge
23
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hy Leute vielen Dank für eure Hilfen!!

Ich habe deine Frage wie ich das hin bekomme:

Ich habe um Platz zu sparen mir einen FB geschrieben der mir 16 IST Werte(Zähler) mit Sollwerten vergleicht (dw in einem oder mehreren DB s)

Also fahre zu Position 1 --Werte in DB21
Position 2 Werte in DB22

wie kann ich den Aufruf von den DBs Steuern?

Super wäre m120.0 Aufruf bedingt DB21
M120.1 Aufruf bedingt db22

habs schon über fbs und bedingten aufrufen von sb probiert mir geht die cpu(100U)jedesmal in Stop



Also wie kann ich bedingt db aufrufen ..?

Dank euch allen!
 
Bedingte DB-Aufrufe gibts nicht, Du kannst aber den DB-Aufruf bedingt überspringen mit SPB. Ob es das SPB bei einer 100er im Befehlsvorrat git verrät Dir das Handbuch.
Thomas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hmmm

danke für die rasche antwort auch noch bei der Arbeit?

hmm

wie meinst das ?

also laut Handbuch kann sie es...

ich kann keinen fb damit beauftragen das er mir die db aufruft !
dann ist stop bei der cpu

nur ein direkter aufruf im pb Netzwerk 1 funktioniert

hab schon 5 verschiedene fb zum aufruf probiert..

netzwerk 1 : aufruf fb ---in dem steht wenn merker ... spb m001

m001 b db

dann hab ich propiert nur im fb
ohne was A DB

geht alles nicht

dann hab ich propiert die db aufrufe in schrittbausteine zu verlagern und diese über spb zu rufen
auch nicht



netzwerk 2 benötige ich schon den db wegen verarbeitung von DW

Hab schon folgendes Probiert:
 
ja, auch noch bei der Arbeit.
mein Gedanke war,
(mal sehen ob ich 5er Code noch im Kopf hinbekomme)

Code:
     UN M 1.0
     0   M 1.1
     SPB M001
     A DB1
M001: 
     UN M 1.1
     O  M 1.0
     SPB M002
     A DB2
M002:
.
.
.
was auch gehen sollte:

Code:
     UN M 1.0
     0   M 1.1
     SPB M001
     L KF 1
     T MW200
M001: 
     UN M 1.1
     O  M 1.0
     SPB M002
     L KF 2
     T MW200
M002:
.
.
.
B MW200
A DB0
Was davon die 100er versteht :confused:
Thomas
 
Zuletzt bearbeitet:
Hallo,
ich bin mir da im Augenblick nicht 100%ig sicher, meine aber, dass das mit dem bedingten DB-Aufruf doch ging. Was ich in Erinnerung habe ist :
Code:
B MW200   // hier steht die Nr. des aufzuschlagenden DB's drin
A DB0       // anstatt von DB0 wird nun der DB[MW200] aufgerufen ??
... teste das doch mal ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich bin mir da im Augenblick nicht 100%ig sicher, meine aber, dass das mit dem bedingten DB-Aufruf doch ging. Was ich in Erinnerung habe ist :
Code:
B MW200   // hier steht die Nr. des aufzuschlagenden DB's drin
A DB0       // anstatt von DB0 wird nun der DB[MW200] aufgerufen ??
... teste das doch mal ...

Gruß
Larry

gut, ich hatte oben ein = zuviel drinn. Ich würde das eher einen indirekten Aufruf nennen als bedingt, da ja das MW noch vorbesetzt werden muß.

Thomas
 
@Thomas:
ich hatte das gar nicht gesehen, dass du die Sequenz in deinem Beitrag #4 mit drin hattest. Mein Beitrag bezog sich auf deinen Beitrag #2. Dadurch ist es dann jetzt doppelt ... :rolleyes:

Gruß
Larry
 
Hallo,
geht bei der 100 U nicht, ich habe gerade mal in der Befehlsliste nachgeschaut, indirekte Adressierung und Sprünge gehen mit der gar nicht.

Gruß
Mario
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Indirekte Adressierung geht bei der S5-100U, muß jedoch CPU 103 sein. Und wenn ich mich recht an KOGS ersten Beitrag erinnere, hat er eine CPU103.
 
Zuletzt bearbeitet:
Hallo,
@coroscop, ich las das als reine 100er, also auch CPU 100, und wenn die Büchse in Stop geht deutet das auf sowas hin, wenn ich mich dunkel entsinne gab es kein Gemecker beim Laden, es ging nur nicht.

Gruß
Mario
 
Hallo,

der Code von >thomass5< ist o.k. Hierbei aber nicht vergessen, dass überhaupt ein (existierender) DB aufgerufen werden muss.

Code (von thomass5):
UN M 1.0
0 M 1.1
SPB M001
A DB1
M001:
UN M 1.1
O M 1.0
SPB M002
A DB2
M002:
> A DB 3
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
@coroscop, ich las das als reine 100er, also auch CPU 100, und wenn die Büchse in Stop geht deutet das auf sowas hin, wenn ich mich dunkel entsinne gab es kein Gemecker beim Laden, es ging nur nicht.

Gruß
Mario

Hallo Mario,

ich meinte ja auch nur, daß es bei einer CPU103 möglich ist.
Schau Dir mal diesen Beitrag an:

http://www.sps-forum.de/showthread.php?t=41769

Zitat daraus:

Da ich das auf ner 100U 103 realisiert habe
geht mir der Platz aus ...

Welchen Weg gibts die EXT. Zähler zu überwachen?

Zykluszeitüberwachung wäre toll

hab auch einen FB Geschrieben:


un Geber(EXT Zähler)
u Freigabe
u(
o Motor hoch
o Motor tief
)
L KT 100.0
SE T10
U t10
S Stoermeldung
U Stoerung Loeschen(Taster)
U Gesamt StoerungsMerker
RB Stoermeldung
BE

Der Funktioniert auch prima !
Ich habe 16 motoren zu überwachen
 
hy leute

hy leute
Danke für das rege interesse
ja hätt das mit der cp103 gleich mitreinschreiben sollen ... sorry war gestern schon spät!

hab mir jetzt einen fb geschrieben den ich bedingt aufrufe und in dem steht :

un m120.0
Spb =m001
A db21
M001
un m120.1
Spb=m002
A db22
und das bis m121.7

das funktioniert auch in der steuerung........ nur geht die steuerung jetzt in stop wenn ich mit meiner bearbeitung fertig bin und der baustein nicht mehr aufgerufen wird?? bis dahin funktioniert alles..

hatte zuerst pro merker m120.0 aufwerts einen eigenen sb mit dem aufruf eines db und die abarbeitung der vergleicher das ging super
nur durch platzprobleme in meiner cpu wäre es super die aufrufe zu wählen weil die vergleicherei is eh immer das gleiche.....

programm setzt sich folgend zusammen:


im pb

bearbeitung von den merkern 120.0-121.7
kommt einer auf high

so begint der wahnsinn

aufruf bedingt durch diese merker der FB für den db aufruf
dann bedingter aufruf eines schrittbausteines mit der bearbeitung von vergleichern und ausgabe

ausgabe fertig oder abbruch durch den user(rücksetzender merker m120.0-121.7) kein bedingter aufruf der 2 bausteinen und laden von kf 00 um sie uns ausgangsbyte zu schreiben(wegen dem abruch von schrittbausteinen)

hoffe das hilft euch schaue das ich teile des programs hier rein kopieren kann


Danke für eure hilfen

Super forum tolle leute!!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
du mußt bedenken, dass du irgendwann wahrscheinlich keinen DB mehr aufrufst aber vielleicht immer noch "L DW" oder "T DB"-Befehle im Ablauf hast. Die gehen dann ins unkontrollierte. Es sollte für den Fall immer ein Default-DB aufgerufen sein.

Gruß
Larry
 
un m120.0
Spb =m001
A db21
M001
un m120.1
Spb=m002
A db22

und das bis m121.7

Wenn Du Deinen Sprungverteiler so aufgebaut hast, rufst Du , wenn das MW120 komplett 1-Signal führt, 16 DB's nacheinander auf.
Dadurch geht die SPS dann in STOP (max. Bausteinschachteltiefe überschritten).
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
ja eh aber die cpu 103 kann 32 steht in dein pdf

und es funktioniert ja auch bis zum aufrufstop

werd mal propieren aufruf fb für db
aufruf sb für vergleicher
aufruf fb für db
 
Du hast doch geschrieben, daß Du Platz sparen willst und deshalb die DB's bedingt aufrufen willst.
Die 16 DB's hast Du doch trotzdem, deswegen sparst Du doch keinen Platz.
 
ja schon

hatte zuerst 16 aufruffe in sb in dem ein db aufruf statt fand und die 32 vergleicher also 512 vergleicher!!
dann hab ich dafür nen fb geschrieben .. also nur mehr 256 vergleicher

und die bekomm ich nur weg wenn ich 16 db aufrufen kann und dann hab ich nur mehr 16 vergleicher.....
 
Zurück
Oben