-> Hier kostenlos registrieren
Hallo Leuts,
ich bin dabei so ca. 240 Elektrozähler an ein Gebäudeleitsystem zu hängen. Zur Erfassung der einzelnen Zählerstände werden S7 Baugruppen benutzt. Über CP`s geht es dann auf FMS zum Leitrechner.
Ich muß die Zählerstände von der GLT aus überschreiben können. Außerdem muß ich Parameter ( Anzahl der Stellen des Zählers und Impulse/Kwh) in die Siemens CPU schreiben können. Diese Werte stehen in Datenbausteinen. Da die GLT - Software nicht von Siemens ist und feste Routinen zum Beschreiben von Analogwerten fordert habe ich mich mit der indirekten Adressierung befasst und auch einige FC`s gebastelt die das Handling übernehmen. (funktioniert tadellos)
Nun tut sich folgendes Problem auf:
Die Zählimpulse werden über digitale Eingänge eingelesen (Flanken).
Um zu vermeiden für jeden der 240 Zähler einen Bausteinaufruf zu tippen müßte es doch möglich sein, einen Eingangsbereich (z.B. EW32) in den Lokaldaten eines FC (FB) zu parametrieren und abhängig vom Bit (z.B. E32.0) die weitere Verarbeitung und damit auch das Abspeichern in die richtigen Datenwörter meiner Daten bausteine zu handeln.
Für einen Zähler sieht die Verarbeitung der Zählimpulse so aus:
Der Aufruf:
und der Baustein:
Kann mir da wer auf "die Sprünge" helfen?
freundliche Grüße
Hannes
ich bin dabei so ca. 240 Elektrozähler an ein Gebäudeleitsystem zu hängen. Zur Erfassung der einzelnen Zählerstände werden S7 Baugruppen benutzt. Über CP`s geht es dann auf FMS zum Leitrechner.
Ich muß die Zählerstände von der GLT aus überschreiben können. Außerdem muß ich Parameter ( Anzahl der Stellen des Zählers und Impulse/Kwh) in die Siemens CPU schreiben können. Diese Werte stehen in Datenbausteinen. Da die GLT - Software nicht von Siemens ist und feste Routinen zum Beschreiben von Analogwerten fordert habe ich mich mit der indirekten Adressierung befasst und auch einige FC`s gebastelt die das Handling übernehmen. (funktioniert tadellos)
Code:
L 0
T #ZAEHLER
LOOP: L #ZAEHLER
L 64
>=I
SPB ENDE
AUF #STAT_DB
L DBW [AR1,P#0.0]
T #ZSP
UN L 1.3
UN L 1.2
U L 0.2
S L 1.1
UN L 0.2
R L 1.1
U L 0.2
U L 1.1
SPB SWIW
SPA PASS
SWIW: AUF #SW_DB
L DBD [AR1,P#0.0]
AUF #IW_DB
T DBD [AR1,P#0.0]
PASS: L #ZSP
AUF #STAT_DB
T DBW [AR1,P#0.0]
L #ZAEHLER
L 1
+I
T #ZAEHLER
L P#2.0
+AR1
SPA LOOP
ENDE: NOP 0
L 0
LAR1
Nun tut sich folgendes Problem auf:
Die Zählimpulse werden über digitale Eingänge eingelesen (Flanken).
Um zu vermeiden für jeden der 240 Zähler einen Bausteinaufruf zu tippen müßte es doch möglich sein, einen Eingangsbereich (z.B. EW32) in den Lokaldaten eines FC (FB) zu parametrieren und abhängig vom Bit (z.B. E32.0) die weitere Verarbeitung und damit auch das Abspeichern in die richtigen Datenwörter meiner Daten bausteine zu handeln.
Für einen Zähler sieht die Verarbeitung der Zählimpulse so aus:
Der Aufruf:
Code:
UN(
U E 4.0
FP "FM_Z1"
)
SPB PAS1
CALL "ZAHL_ST"
ND :="IW_ND_Z".IW_ND_Z1
FAKTOR:="IW_F_Z".IW_F_Z1
STAND :="IW_ZS".ZS_Z1
PAS1: NOP 0
und der Baustein:
Code:
L #ZAEHLER
L 1
+I
T #ZAEHLER
L #ZAEHLER
L #FAKTOR
<>I
SPB m1
L #STAND
L L#1
+D
T #STAND
m1: L #STAND
L #ND
<D
SPB m2
L L#0
T #STAND
m2: NOP 0
L #ZAEHLER
L #FAKTOR
>I
SPM m3
L 0
T #ZAEHLER
m3: NOP 0
NOP 0
Kann mir da wer auf "die Sprünge" helfen?
freundliche Grüße
Hannes
Zuletzt bearbeitet: