|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
satelitko Član
Pridružen-a: Pon 19 Apr 2004 13:27 Prispevkov: 1753 Aktiv.: 7.86 Kraj: Radovljica
|
Objavljeno: Tor Dec 20, 2016 8:30 pm Naslov sporočila: Froling - branje in obdelava podatkov |
|
|
Iz kotla na polena Froling S4 iz COM 2 stalno špricajo podatki v smislu:
$ Ogenj ugasnjen;0005;1;1;zst;Kesseltemp.;0050;2 ;2;°C;Abgastemp.;0031;3;1;°C;Abgastemp S;0041;11;1;°C;Kesselstrg ;0100;4;1;%;Primärluft ;0100;5;1;%;Rest O2 ist;0019;6;10;%;O2 Regler ;0000;7;1;%;Sekundärluft;0000;8;1;%;Sau gzug Soll;0000;9;1;%;Saugzug Ist;0000;10;1;U;Einschub Ist;0000;12;1;%;O2 Regler Pell ;0100;13;1;%;Füllstand: ;0000;14;207;%;Ansauggeschw.;0000;15;100 ;m/s;Strom Austrags;0000;16;1000;A;Fühler 1;0254;17;2;°C;Kesselsoll ;0000;18;2;°C;Pufferoben ;0123;20;2;°C;Pufferunten ;0092;21;2;°C;Pufferpumpe ;0000;22;1;%;Boiler 1;0096;23;2;°C;Vorlauf 1;0053;24;2;°C;Vorlauf 2;0050;25;2;°C;HK Pumpe 1;0000;26;1; ;HK Pumpe 2;0000;27;1; ;Aussentemp;0039;28;2;°C;Kollektortemp; 0000;29;2;°C;Betriebsstunden;0009;30;1; h;Fehler;Kein Fehler ;99;1; ;$ Ogenj ugasnjen;0005;1;1;zst;
.......pa spet enako naprej.
Kako bi bilo najenostavneje te podatke stalno osvežene "ujeti" in sortirati v pregledno obliko na monitorju da recimo dobim takole obliko:
Ogenj ugasnjen; 1;zst;
Kesseltemp.; 2;°C;
Abgastemp.; 1;°C;
Abgastemp S; 1;°C;
Kesselstrg ; 4;1;%;
Primärluft ; 5;1;%;
Rest O2 ist; 10;%;
O2 Regler ; 1;%;
Sekundärluft; 1;%;
Saugzug Soll; 1;%;
Saugzug Ist; 1;U;
Einschub Ist; 1;%;
O2 Regler Pell ; 1;%;
Füllstand: ; 207;%;
Ansauggeschw.; 100 ;m/s;
Strom Austrags; 1000;A;
Fühler 1 ;2;°C;
Kesselsoll ; 2;°C;
Pufferoben ; 2;°C;
Pufferunten ; 2;°C;
Pufferpumpe ; 1;%;
Boiler 1; 2;°C;
Vorlauf 1; 2;°C;
Vorlauf 2; 2;°C;
HK Pumpe 1; 1; ;
HK Pumpe 2; 1; ;
Aussentemp; 2;°C;
Kollektortemp; 2;°C;
Betriebsstunden; 1; h;
Fehler;Kein Fehler ; 1;
Seveda bo naslednji korak shranjevanje odčitkov in risanje grafov...
Debata o tem je sicer pred leti tekla na enem drugem forumu, pa je tam vse zamrlo, linki ne delujejo več in bo očitno treba začet od nule.
|
|
Nazaj na vrh |
|
|
frenki Moderator
Pridružen-a: Ned 23 Feb 2003 21:26 Prispevkov: 6555 Aktiv.: 29.40 Kraj: Ljubljana (JN76GB)
|
Objavljeno: Tor Dec 20, 2016 9:17 pm Naslov sporočila: |
|
|
Tole tvojo obliko si že malce predelal? Če prav vidim, imaš za posamezno obvestilo podatke v petih poljih ločeno s podpičji?
Koda: |
1A2420
Ogenj ugasnjen;0005;1;1;zst;
Kesseltemp.;0050;2 ;2;°C;
Abgastemp.;0031;3;1;°C;
Abgastemp S;0041;11;1;°C;
Kesselstrg ;0100;4;1;%;
Primärluft ;0100;5;1;%;
Rest O2 ist;0019;6;10;%;
O2 Regler ;0000;7;1;%;
Sekundärluft;0000;8;1;%;
Sau gzug Soll;0000;9;1;%;
Saugzug Ist;0000;10;1;U;
Einschub Ist;0000;12;1;%;
O2 Regler Pell ;0100;13;1;%;
Füllstand: ;0000;14;207;%;
Ansauggeschw.;0000;15;100 ;m/s;
Strom Austrags;0000;16;1000;A;
Fühler 1;0254;17;2;°C;
Kesselsoll ;0000;18;2;°C;
Pufferoben ;0123;20;2;°C;
Pufferunten ;0092;21;2;°C;
Pufferpumpe ;0000;22;1;%;
Boiler 1;0096;23;2;°C;
Vorlauf 1;0053;24;2;°C;
Vorlauf 2;0050;25;2;°C;
HK Pumpe 1;0000;26;1; ;
HK Pumpe 2;0000;27;1; ;
Aussentemp;0039;28;2;°C;
Kollektortemp; 0000;29;2;°C;
Betriebsstunden;0009;30;1; h;
Fehler;Kein Fehler ;99;1; ;
1A2420 |
|
|
Nazaj na vrh |
|
|
satelitko Član
Pridružen-a: Pon 19 Apr 2004 13:27 Prispevkov: 1753 Aktiv.: 7.86 Kraj: Radovljica
|
Objavljeno: Tor Dec 20, 2016 10:17 pm Naslov sporočila: |
|
|
Ja, hotel sem pokazat, da bi rad podatke, ki priletijo "v kepi" nekako razrezal, ločil in jih prikazoval vsakega posebej, sproti osveženega.
Bo držalo, vsak podatek ima 5 polj.
|
|
Nazaj na vrh |
|
|
tom_II Član
Pridružen-a: Pon 03 Dec 2007 14:08 Prispevkov: 71 Aktiv.: 0.36 Kraj: Primorska
|
|
Nazaj na vrh |
|
|
satelitko Član
Pridružen-a: Pon 19 Apr 2004 13:27 Prispevkov: 1753 Aktiv.: 7.86 Kraj: Radovljica
|
Objavljeno: Sre Dec 21, 2016 8:57 am Naslov sporočila: |
|
|
Ne bo koristilo, ker o tem pišem v prvem postu, pa je vse mrtvo... Očitno vsem vse dela...
|
|
Nazaj na vrh |
|
|
blay44 Član
Pridružen-a: Ned 19 Dec 2010 18:17 Prispevkov: 603 Aktiv.: 3.71
|
Objavljeno: Sre Dec 21, 2016 1:54 pm Naslov sporočila: |
|
|
Zanimivo je tole.
Verjetno ima pec kako softverski (xon/xoff) ali pa strojni protokol.
Sicer je potrebno paziti na zabitost seriskega medpomnilnika.
Malo sem se med malico poigral z razbijanjem podatka.
Koda v basicu pa je taka:
Koda: |
Public Class Form1
' postavitev odvisno od projekta
Dim podatek As String
Dim kontrolnaDolzina As Integer
Dim start As Integer
Dim pozicija As Integer
Dim dolzina As Integer
Dim vrsta As String
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' mimo grede postavi sprejemljivke
start = 1
podatek = "$ Ogenj ugasnjen;0005;1;1;zst;Kesseltemp.;0050;2 ;2;°C;Abgastemp.;0031;3;1;°C;Abgastemp S;0041;11;1;°C;Kesselstrg ;0100;4;1;%;Primärluft ;0100;5;1;%;Rest O2 ist;0019;6;10;%;O2 Regler ;0000;7;1;%;Sekundärluft;0000;8;1;%;Sau gzug Soll;0000;9;1;%;Saugzug Ist;0000;10;1;U;Einschub Ist;0000;12;1;%;O2 Regler Pell ;0100;13;1;%;Füllstand: ;0000;14;207;%;Ansauggeschw.;0000;15;100 ;m/s;Strom Austrags;0000;16;1000;A;Fühler 1;0254;17;2;°C;Kesselsoll ;0000;18;2;°C;Pufferoben ;0123;20;2;°C;Pufferunten ;0092;21;2;°C;Pufferpumpe ;0000;22;1;%;Boiler 1;0096;23;2;°C;Vorlauf 1;0053;24;2;°C;Vorlauf 2;0050;25;2;°C;HK Pumpe 1;0000;26;1; ;HK Pumpe 2;0000;27;1; ;Aussentemp;0039;28;2;°C;Kollektortemp; 0000;29;2;°C;Betriebsstunden;0009;30;1; h;Fehler;Kein Fehler ;99;1; ;"
podatek = Trim(podatek)
kontrolnaDolzina = Len(podatek)
TextBox1.Text = podatek
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'moja rutina
Dim stevnik As Byte
If pozicija < kontrolnaDolzina Then 'vzame vrsto
For stevnik = 1 To 5 'zajemanje petih podatkov
pozicija = InStr(start, podatek, ";", 1) 'izracun pozicije zajema
dolzina = pozicija - start 'izracun dolzine posameznega podatka
'izluscitev posameznega podatka in priprava za vpis TextBox
vrsta = vrsta & Mid(podatek, start, dolzina) & " "
TextBox2.Text = vrsta 'vpis v TexBox
start = pozicija + 1 'kazalec naslednje pozicije iskanja
Next stevnik
vrsta = vrsta + vbCrLf 'priprava za vpis nasljednijih petih posameznih
'podatkov v novo vrsto
End If
'cela vrsta je prebrana
End Sub
End Class
|
Seveda se zadeva prilagodi po svojih potrebah. To je spisano na hitro.
V kakšnem javi, c, itd.. pa zdajle nimam casa. Je prevec vejic, oklepajev, knjiznic.
LP
Opis: |
|
Velikost datoteke: |
126.11 KB |
Pogledana: |
15 krat |
|
|
|
Nazaj na vrh |
|
|
frke Član
Pridružen-a: Ned 18 Sep 2005 14:41 Prispevkov: 212 Aktiv.: 0.95 Kraj: Logatec
|
Objavljeno: Sre Dec 21, 2016 11:51 pm Naslov sporočila: |
|
|
Jaz bi se lotil tega z regex izrazom.
".*?;.*?;.*?;.*?;.*?;" - pet izrazov, ločenih z vejico je ena vrstica
Ravnotako potem razrežeš besede znotraj vrstice, nato jih spraviš v bazo itd,itd
Primer v php:
Koda: |
<?php
$string='Ogenj ugasnjen;0005;1;1;zst;Kesseltemp.;0050;2 ;2;°C;Abgastemp.;0031;3;1;°C;Abgastemp S;0041;11;1;°C;Kesselstrg ;0100;4;1;%;Primärluft ;0100;5;1;%;Rest O2 ist;0019;6;10;%;O2 Regler ;0000;7;1;%;Sekundärluft;0000;8;1;%;Sau gzug Soll;0000;9;1;%;Saugzug Ist;0000;10;1;U;Einschub Ist;0000;12;1;%;O2 Regler Pell ;0100;13;1;%;Füllstand: ;0000;14;207;%;Ansauggeschw.;0000;15;100 ;m/s;Strom Austrags;0000;16;1000;A;Fühler 1;0254;17;2;°C;Kesselsoll ;0000;18;2;°C;Pufferoben ;0123;20;2;°C;Pufferunten ;0092;21;2;°C;Pufferpumpe ;0000;22;1;%;Boiler 1;0096;23;2;°C;Vorlauf 1;0053;24;2;°C;Vorlauf 2;0050;25;2;°C;HK Pumpe 1;0000;26;1; ;HK Pumpe 2;0000;27;1; ;Aussentemp;0039;28;2;°C;Kollektortemp; 0000;29;2;°C;Betriebsstunden;0009;30;1; h;Fehler;Kein Fehler ;99;1; ;';
preg_match_all("/.*?;.*?;.*?;.*?;.*?;/", $string, $output_array);
var_dump($output_array);
?>
|
rezultat:
Koda: |
array(1) {
[0]=>
array(30) {
[0]=>
string(28) "Ogenj ugasnjen;0005;1;1;zst;"
[1]=>
string(25) "Kesseltemp.;0050;2 ;2;░C;"
[2]=>
string(23) "Abgastemp.;0031;3;1;░C;"
[3]=>
string(25) "Abgastemp S;0041;11;1;░C;"
[4]=>
string(23) "Kesselstrg ;0100;4;1;%;"
[5]=>
string(23) "Primńrluft ;0100;5;1;%;"
[6]=>
string(24) "Rest O2 ist;0019;6;10;%;"
[7]=>
string(22) "O2 Regler ;0000;7;1;%;"
[8]=>
string(24) "Sekundńrluft;0000;8;1;%;"
[9]=>
string(25) "Sau gzug Soll;0000;9;1;%;"
[10]=>
string(24) "Saugzug Ist;0000;10;1;U;"
[11]=>
string(25) "Einschub Ist;0000;12;1;%;"
[12]=>
string(28) "O2 Regler Pell ;0100;13;1;%;"
[13]=>
string(26) "FŘllstand: ;0000;14;207;%;"
[14]=>
string(31) "Ansauggeschw.;0000;15;100 ;m/s;"
[15]=>
string(30) "Strom Austrags;0000;16;1000;A;"
[16]=>
string(22) "FŘhler 1;0254;17;2;░C;"
[17]=>
string(25) "Kesselsoll ;0000;18;2;░C;"
[18]=>
string(25) "Pufferoben ;0123;20;2;░C;"
[19]=>
string(26) "Pufferunten ;0092;21;2;░C;"
[20]=>
string(25) "Pufferpumpe ;0000;22;1;%;"
[21]=>
string(22) "Boiler 1;0096;23;2;░C;"
[22]=>
string(23) "Vorlauf 1;0053;24;2;░C;"
[23]=>
string(23) "Vorlauf 2;0050;25;2;░C;"
[24]=>
string(23) "HK Pumpe 1;0000;26;1; ;"
[25]=>
string(23) "HK Pumpe 2;0000;27;1; ;"
[26]=>
string(24) "Aussentemp;0039;28;2;░C;"
[27]=>
string(28) "Kollektortemp; 0000;29;2;░C;"
[28]=>
string(29) "Betriebsstunden;0009;30;1; h;"
[29]=>
string(27) "Fehler;Kein Fehler ;99;1; ;"
}
}
|
|
|
Nazaj na vrh |
|
|
blay44 Član
Pridružen-a: Ned 19 Dec 2010 18:17 Prispevkov: 603 Aktiv.: 3.71
|
Objavljeno: Tor Jan 03, 2017 8:05 pm Naslov sporočila: |
|
|
Dobra Frke. Podobna je SPLIT funkcija v bejziku.
Če pa se gre na server, pa itak php zmaga.
LP
|
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 75 dni
Powered by phpBB © 2001, 2005 phpBB Group
|