Phoenix SPS - WRITE FILE Ausführliches Beispiel

From XennisWiki
Jump to: navigation, search

Dieser Artikel beschreibt, wie zwei Zahlenwerte (im Format WORD) in regelmäßigen Abständen zeilenweise in einer Datei gesichert werden. Der Artikel baut auf dem Artikel Phoenix SPS - WRITE FILE auf.

Verwendete Hard- und Software

Hardware

  • SPS: Phoenix Contact - ILC 130 EHT (Gerätefamile: ILC1xx, Revision: 01/3.70)

Software

Bausteine

words_to_stringline

Der Baustein erhält als Eingabe zwei WORDs (Value1 und Value2). Diese werden jeweils in einen STRING umgeformt und (mit einem Leerzeichen getrennt) aneinandergehängt. An das Ende des STRINGs wird noch ein Zeilenumbruch (BYTE#16#0A) angehängt. Folglich entsteht aus den zwei WORDs ein String in dem Format:

Value1 LEERZEICHEN Value2 ZEILENUMBRUCH

Neben dem String selbst, gibt der Baustein noch die Länge von diesem aus.

SPS - words to stringline Baustein.png

Variablen

Name Typ Verwendung Anfangswert
Value1 WORD VAR_INPUT
Value2 WORD VAR_INPUT
Stringline STRING VAR_OUTPUT
Length INT VAR_OUTPUT

file_writer

Ausführliche Hilfe: Phoenix SPS - WRITE FILE

SPS - file writer Baustein.png

Name Typ Verwendung Anfangswert
FileOpen BOOL VAR_OUTPUT
WriteData BOOL VAR_INPUT
DataLength INT VAR_INPUT
Error BOOL VAR_OUTPUT
dataStream STRING_ARRAY VAR_IN_OUT --
FILE_CLOSE_1 FILE_CLOSE VAR --
FILE_OPEN_1 FILE_OPEN VAR --
FILE_WRITE FILE_WRITE VAR --
StartStop BOOL VAR_INPUT
FileName STRING VAR_INPUT 'data.txt'

file_write_word

Der Baustein erhält als Eingabe die beiden WORDs (Value1, Value2), die in die Datei geschrieben werden sollen. Die SamplingTime gibt vor, in welchem zeitlichen Abstand die beiden Werte in die Datei geschrieben werden.

SPS - file write word Baustein.png

Variablen

Name Typ Verwendung Anfangswert
file_writer_1 file_writer VAR --
SamplingTime TIME VAR_INPUT t#1s
stringStream STRING_ARRAY VAR_EXTERNAL --
words_to_stringline_1 words_to_stringline VAR --
Value1 WORD VAR_INPUT
Value2 WORD VAR_INPUT
data dtStruct VAR
STRING_TO_BUF_1 STRING_TO_BUF VAR --
TP_1 TP VAR --
StartStop BOOL VAR_INPUT
FileName STRING VAR_INPUT 'data.txt'

Datentypen

Links unter Datentypen die Datei sys_flag_types öffnen und das folgende am Ende anfügen

TYPE
   dtStruct:
   STRUCT
      byteElem : BYTE;
      wordElem : WORD;
	  stringElem : STRING;
   END_STRUCT;
END_TYPE

TYPE
   BYTE_ARRAY : ARRAY[0..200] OF BYTE;
   WORD_ARRAY : ARRAY[0..200] OF WORD;
   STRING_ARRAY : ARRAY[0..200] OF STRING;
END_TYPE

Resultat

SPS - file write word Baustein Beispiel.png

Das Programm erzeugt die Datei data.txt, die die Daten der beiden WORDs enthält.

data.txt

22575 1100
22705 1100
22794 1100
22771 1100
22873 1100
22958 1101
23030 1100
23093 1101
23151 1099
21327 15520
21998 5079
22333 5464
22250 5478
21423 11232
21586 5405

Matlab

Diese Datei kann man zum Beispiel mit Matlab einlesen, um die Daten weiterzuverarbeiten: siehe hier für Matlab - Log einlesen und darstellen.

format = '%u %u';
C = readLog('data.txt', format);

value1 = C{1}
value2 = C{2}

Siehe auch