Step 5 DB-Verarbeitung

Limberg24

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Schönen guten Morgen Zusammen,
ich hoffe, daß ich mich klar genug ausdrücke bei all den Cracks hier. ;)

Ich habe folgende Problematik.

In unserem Unternehmen wird ein Betriebsdatenerfassungs System aufgebaut. Ich bin mit der Hardware und in bestimmten
Umfang auch mit der Software beauftragt.

An den Maschinen mit S7-Steuerungen habe ich immer einen FC und einen DB verwendet, der über Ethernet an den Rechnern verarbeitet wird.

Ich rufe im FC bestimmte Betriebszustände ab und transferiere sie in einen DB.
Ich habe einen Screenshot gemacht. Vielleicht ist es verständlicher.


DB120_KVM_A-T.JPG









FC13_KVM_A-T_Teil_1.JPG













FC13_KVM_A-T_Teil_2.JPG
Diese Art der Verarbeitung will ich jetzt auch in den Maschinen mit S5-Steuerung realisieren.
Hat jemand von Ihnen eine Lösung für mich.

Bis jetzt bin ich soweit, daß ich die Zustände in einem PB verarbeite und in einen DB transferiere
Also. A DBxx
U M xx.x
= M xx.x

L MB xx.x
T DW xx
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
der Grundsatz ist richtig, ober in der S5 müßte es so aussehen.
A DBxx

UM xx.x
=M xx.x

L MB xx
T DR xx

oder

T DL xx

Bei der S5 wird unterschieden zwischen linken und rechten Byte eines Wortes.

Gruß
Joe
 
Hallo,
das Beispiel von Thomass5 funktioniert erst ab der U135.
U95, U100 bzw. U115 können den Befehl "=D X.Y" nicht.
Ein bedingtes Setzen (VKE abhängig) eines Bits in einem DB ist bei den kleineren Steuerungen
nicht möglch. Ein unbedingtes setzen geht. z.b. "SU DX.Y"

Gruß
Joe

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wass Thomas schreib geht z.b. bei ein 135U aber bei ein 115u geht das bei die meiste cpu's nicht. Bei dieser SPS n kan man besser in (schmier-)merker schreiben und dan das merkerword in das data word transferieren
 
Mahlzeit Zusammen,
erst einmal herzlichen Dank für die Antworten. Ist ja super hier.
Jetzt zum Thema:
Ich habe vergessen zu erwähnen, das es sich um 115 CPU´s handelt. Es ist aber auch eine 100U dabei.Habe ich vergessen. Mein Fehler.

Jetzt nochmal zum besseren Verständnis für mich

Es ist also durchaus möglich in den DB ganze Zahlen zu schreiben, wie !, 2, 3 usw. ?

Müsste doch bei dieser Programmierung gehen wie Ihr mir erklärt habt, oder?

A DB XX

U M X.Y
= D X.Y
.
.

L KZ 1
T DW Y

Wobei " A DB XX" dann bedeutet Auf DB120 zum Beispiel?
Aber was rufe ich denn dann mit dem Befehl "= D X.Y" auf?
 
Es ist also durchaus möglich in den DB ganze Zahlen zu schreiben, wie !, 2, 3 usw. ?
Ja ... aber der dafür korrekte Befehl wäre dann "L KF 1234" um die Ganzzahl 1234 zu laden.
"L KZ ..." lädt eine Zähler-kompatible Zahl

Wobei " A DB 120" dann bedeutet Auf DB120 zum Beispiel?
Ja !

Aber was rufe ich denn dann mit dem Befehl "= D X.Y" auf?
Du weißt dem Datenbyte X und dem Bit Y den vorherigen Zustand zu.
Beispiel "= D12.5" - Byte 12 Bit 5 daraus auf den zuvor erstellten Zustand bringen.

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
nochmals zum Verständnis:

U M X.Y
= D X.Y

Dieser Befehl funktioniert nicht bei einer 115U, Du must den Weg über Merker gehen.

UM xx.x
=M xx.x

L MB xx
T DR xx

oder

T DL xx

Du Kannst bei der 115U keine einzelnen Bits mit einer Bedingung in einem DW setzen.
Beim Transferbefehl eines Byts mußt Du auch der S5 sagen ob ins Linke oder Rechte Byte des DW geschrieben werden soll.
Ganze Zahlen kannst Du natürlich in ein DW’s schreiben.

z.B.
A DB XX

L KF 123
T DW1
od.
L KH ff01
T DW2

od.

L MW XX
T DW3

Noch zum Verständnis: Ein DW einer S5 umfaßt immer 2 Byte, die man nur mit DL(Datum links) oder DR(Datum rechts) ansprechen Kann.
Eine direkte Adressierungnder Einzelnen Byts ist nicht möglich.(Zugriff über DR bzw. DL)
z.B.
DW 1 //besteht aus 2 Bytes
DW 2 //besteht auch aus 2 Bytes
usw.

Gruß
Joe
 
Zuletzt bearbeitet:
Hallo nochmal Zusammen.
Ich habe es jetzt hinbekommen. Hat zwar was gedauert, aber jetzt klappt es.
Ich wollte Euch nur eben noch schreiben, wie ich es gelöst habe.
Also, Problem eins war, das man einen FB bauen muss.
Bei den 115 und 100 CPU´s klappt das wohl nur da.
Auch muss man mit Sprüngen arbeitet, da man nicht so ohne weiters
auf DW´s schreiben kann.
Hier also die Programmierung, die auch funktioniert:

FB 13
NETZWERK 1
NAME :STOERUNG

:A DB 120
:
:UN M 211.1
:UN M 58.2
:UN M 20.2
:UN M 62.3
:UN M 62.4
:= M 15.7
:
:U M 15.7
:SPB =M001
:
:U M 211.1
:SPB =M002
:
:U M 58.2
:UN M 20.2
:SPB =M003
:
:
:U M 20.2
:SPB =M004
:
M001 :L KF +0
:T DW 22
:
:SPA =M007
:
:
:
M002 :L KF +1
:T DW 22
:
:SPA =M007
:
:
M003 :L KF +2
:T DW 22
:
:SPA =M007
:
:
M004 :L KF +3
:T DW 22
:
:
:SPA =M007
M007 :BE


Nochmal vielen Dank für Eure Hilfen und Anregungen. War bestimmt nicht das letzte mal.

Bis denne
 

Anhänge

  • FB13.JPG
    FB13.JPG
    36 KB · Aufrufe: 7
Zurück
Oben