-> Hier kostenlos registrieren
Hallo Alle,
ich habe ein Problem mit einer Zahlen Wert Konvertierung. Eine S5- 100U arbeitet mit einem Lauer Bedienfeld zusammen.
Kommunikation erfolgt über DB50. Eine Uralt Anlage von 1999. Danke schon mal für eure Antworten.
Aufgabe ist es einen Dezimalwert ( 0- 9999 ) über das Bedienfeld in die S5 zu übergeben und mit einem Zähler Wert zu vergleichen,
um eine Alarmlampe zu schalten. Weiterhin soll von dem eingegeben Dezimalwert zur Vorwarnung ein um ( hier ) 2 kleinerer Wert mit dem Zähler verglichen werden um eine Warnlampe zu schalten.
Nun habe ich 2 Probleme:
1. der BCD Wert vom Bedienfeld wird in DB50 DW182 geschrieben, wird aber als Hexwert von der S5 interpretiert.
Beispiel Eingabe in Bedienfeld "400" Anzeige in DB50 DW182 ebenso "400" aber als HexWert. Wie bekomme ich die 400 als Dezimalwert hin?
Befehle DUF und DEF funktionieren nicht ( führen zum AG stop )
Ich habe das Format im DB50 für das DW 182 schon auf KZ eingestellt. Hat nichts gebracht.
Aus S5 Programm ( evtl. Syntaxfehler weil aus dem Gedächtnis heraus) :
A DB50 ; Aufruf Komunikationsbaustein mit Bedienfeld
L DW182
T MW90
Hat jemand ne Idee dazu, ich hörte was von FB241 zum Wandeln des Wertes, aber bitte mit konkreter Parametrierung
2tes Problem:
Der Zähler Zählwert wird in hex dargestellt. Wenn ich versuche MW90 ( ebenfals Hexwert ) um KF2 zu subtrahieren
kommt ein falsches Ergebnis raus. Sollte ich hier weil es sich um ( natürliche Zahlen 0- 9999 ) handelt nicht KF verwenden?
Aus S5 Programm ( evtl. Syntaxfehler weil aus dem Gedächtnis heraus) :
L -Z3 ; ZählerWert wird in Hex angegeben
L MW90 ; Grenzwert Alarm
>F
SPB =NOALARM
U M0.1 ; Log1
= A105.7 ; Alarmlampe
NOALARM
L MW90 ; Grenzwert Alarm
L +KF2
-F
T MW92 ; Grenzwert Voralarm; hier wird ein "falsches" Ergebnis reingeladen
L -Z3 ; ZählerWert wird in Hex angegeben
L MW92 ; Grenzwert Voralarm
>F
SPB =NOVORALARM
U M0.1 ; Log1
= A105.6 ; VorAlarmlampe
NOVORALARM
ich habe ein Problem mit einer Zahlen Wert Konvertierung. Eine S5- 100U arbeitet mit einem Lauer Bedienfeld zusammen.
Kommunikation erfolgt über DB50. Eine Uralt Anlage von 1999. Danke schon mal für eure Antworten.
Aufgabe ist es einen Dezimalwert ( 0- 9999 ) über das Bedienfeld in die S5 zu übergeben und mit einem Zähler Wert zu vergleichen,
um eine Alarmlampe zu schalten. Weiterhin soll von dem eingegeben Dezimalwert zur Vorwarnung ein um ( hier ) 2 kleinerer Wert mit dem Zähler verglichen werden um eine Warnlampe zu schalten.
Nun habe ich 2 Probleme:
1. der BCD Wert vom Bedienfeld wird in DB50 DW182 geschrieben, wird aber als Hexwert von der S5 interpretiert.
Beispiel Eingabe in Bedienfeld "400" Anzeige in DB50 DW182 ebenso "400" aber als HexWert. Wie bekomme ich die 400 als Dezimalwert hin?
Befehle DUF und DEF funktionieren nicht ( führen zum AG stop )
Ich habe das Format im DB50 für das DW 182 schon auf KZ eingestellt. Hat nichts gebracht.
Aus S5 Programm ( evtl. Syntaxfehler weil aus dem Gedächtnis heraus) :
A DB50 ; Aufruf Komunikationsbaustein mit Bedienfeld
L DW182
T MW90
Hat jemand ne Idee dazu, ich hörte was von FB241 zum Wandeln des Wertes, aber bitte mit konkreter Parametrierung
2tes Problem:
Der Zähler Zählwert wird in hex dargestellt. Wenn ich versuche MW90 ( ebenfals Hexwert ) um KF2 zu subtrahieren
kommt ein falsches Ergebnis raus. Sollte ich hier weil es sich um ( natürliche Zahlen 0- 9999 ) handelt nicht KF verwenden?
Aus S5 Programm ( evtl. Syntaxfehler weil aus dem Gedächtnis heraus) :
L -Z3 ; ZählerWert wird in Hex angegeben
L MW90 ; Grenzwert Alarm
>F
SPB =NOALARM
U M0.1 ; Log1
= A105.7 ; Alarmlampe
NOALARM
L MW90 ; Grenzwert Alarm
L +KF2
-F
T MW92 ; Grenzwert Voralarm; hier wird ein "falsches" Ergebnis reingeladen
L -Z3 ; ZählerWert wird in Hex angegeben
L MW92 ; Grenzwert Voralarm
>F
SPB =NOVORALARM
U M0.1 ; Log1
= A105.6 ; VorAlarmlampe
NOVORALARM
Zuletzt bearbeitet: