bernhardjunk
Level-1
- Beiträge
- 6
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo,
ich habe hier ein Programm in AWL geschrieben und getestet.
Jetzt verlangt der Kunde aber SCL oder KOP.
Gibt es eine Möglichkeit die Quelldatei nach SCL zu konvertieren
oder kann mir das einer machen?
Bin leider nicht fit in SCL
Danke Bernd
FUNCTION "02FC_Calib_Data" : VOID
TITLE =Kalibrierdaten ablegen
//Kalibrierdaten ablegen und Speicher löschen.
//Die Kalibrierdaten werden mit Eintrag >0 im Speicher abgelegt
AUTHOR : BJu
VERSION : 0.1
VAR_INPUT
Reset : BOOL ; //Daten löschen
Datenbaustein : BLOCK_DB ; //Datenbaustein
Datenwort : INT ; //1. Datenwort ab wo abgelegt wird
Zeiger : INT ; //Pointer
Value : DINT ; //Ablegewert
Anzahl : INT ; //Anzahl Messdaten
END_VAR
VAR_OUTPUT
fertig : BOOL ; //Datenablage erfolgt
END_VAR
VAR_TEMP
Zeiger1 : INT ;
Anzahl1 : INT ;
END_VAR
BEGIN
NETWORK
TITLE =Leer
NETWORK
TITLE =Daten in Register schreiben / Register löschen
U #Reset;
SPB rest;
AUF #Datenbaustein; // DB aufrufen
U( ;
L #Anzahl;
L #Zeiger;
<I ;
) ;
O( ;
L 0;
==I ;
) ;
BEB ;
L #Zeiger;
SLW 2;
T #Zeiger1;
L #Datenwort;
L 4;
-I ;
L #Zeiger1;
+I ;
SLW 3; //Absolutadresse aufrufen
LAR1 ;
L #Value; // Inhalt
T DBD [AR1,P#0.0]; // Wert in Tabelle eintragen
BEA ;
rest: NOP 0;
AUF #Datenbaustein;
L #Anzahl;
T #Anzahl1;
loop: NOP 0;
SLW 2;
T #Zeiger1; // Multiplikation mit 4
L #Datenwort; // 1. Adresse
L 4;
-I ;
L #Zeiger1; // Für Pointer aufaddieren
+I ;
SLW 3; //Absolutadresse aufrufen
LAR1 ;
L L#0; // löschen
T DBD [AR1,P#0.0]; // 0-Wert eintragen
L 0;
L #Anzahl1; // Anzahl erreicht?
==I ;
BEB ; // Bausteinende
DEC 1; // Anzahl 1 um 1 dekrementieren
T #Anzahl1;
SPA loop; // nächster Datensatz
END_FUNCTION
ich habe hier ein Programm in AWL geschrieben und getestet.
Jetzt verlangt der Kunde aber SCL oder KOP.
Gibt es eine Möglichkeit die Quelldatei nach SCL zu konvertieren
oder kann mir das einer machen?
Bin leider nicht fit in SCL
Danke Bernd
FUNCTION "02FC_Calib_Data" : VOID
TITLE =Kalibrierdaten ablegen
//Kalibrierdaten ablegen und Speicher löschen.
//Die Kalibrierdaten werden mit Eintrag >0 im Speicher abgelegt
AUTHOR : BJu
VERSION : 0.1
VAR_INPUT
Reset : BOOL ; //Daten löschen
Datenbaustein : BLOCK_DB ; //Datenbaustein
Datenwort : INT ; //1. Datenwort ab wo abgelegt wird
Zeiger : INT ; //Pointer
Value : DINT ; //Ablegewert
Anzahl : INT ; //Anzahl Messdaten
END_VAR
VAR_OUTPUT
fertig : BOOL ; //Datenablage erfolgt
END_VAR
VAR_TEMP
Zeiger1 : INT ;
Anzahl1 : INT ;
END_VAR
BEGIN
NETWORK
TITLE =Leer
NETWORK
TITLE =Daten in Register schreiben / Register löschen
U #Reset;
SPB rest;
AUF #Datenbaustein; // DB aufrufen
U( ;
L #Anzahl;
L #Zeiger;
<I ;
) ;
O( ;
L 0;
==I ;
) ;
BEB ;
L #Zeiger;
SLW 2;
T #Zeiger1;
L #Datenwort;
L 4;
-I ;
L #Zeiger1;
+I ;
SLW 3; //Absolutadresse aufrufen
LAR1 ;
L #Value; // Inhalt
T DBD [AR1,P#0.0]; // Wert in Tabelle eintragen
BEA ;
rest: NOP 0;
AUF #Datenbaustein;
L #Anzahl;
T #Anzahl1;
loop: NOP 0;
SLW 2;
T #Zeiger1; // Multiplikation mit 4
L #Datenwort; // 1. Adresse
L 4;
-I ;
L #Zeiger1; // Für Pointer aufaddieren
+I ;
SLW 3; //Absolutadresse aufrufen
LAR1 ;
L L#0; // löschen
T DBD [AR1,P#0.0]; // 0-Wert eintragen
L 0;
L #Anzahl1; // Anzahl erreicht?
==I ;
BEB ; // Bausteinende
DEC 1; // Anzahl 1 um 1 dekrementieren
T #Anzahl1;
SPA loop; // nächster Datensatz
END_FUNCTION