Hi members,
with the attached program below I have trouble when I start report A with the internal keyboard. Sporadic the SW exeption occur with our without connected sensors.
I tested also to set the 3 serial commando strings between the analog section but without improvement.
Thanks for your comments
Begin"HTW_26"
'setzen der Parameter
P15=1 'erlaubt den Schlafmodus, nicht wenn Ethernet oder USB verbunden
'P17=10 'Zeit [s] bis low power mode
'P31=1 'Datumsformat DD/MM/YYYY
P32=8 'number of significant digits in unload
P38=44 ' Komma als dezimaltrenner
P39=0 'Zeitformat HH:MM:SS.TTT (TTT P41)
'P41=0 '0 nachkommastellen bei der Sekunde (Zeit)
P53=2 ' Zeit [s] für timeout bei seriellen Sensoren
'/E 'enable echomode
'/R ' enable realtime data to hostcomputer
'Setzen von Profileinstellungen
PROFILE ETHERNET ENABLE=NO 'Schaltet ethernetschittstelle ab wegen Stromverbtrauch
PROFILE SERSEN_PORT FUNCTION=Serial
PROFILE SERSEN_PORT MODE=RS485
PROFILE SERSEN_PORT BPS=9600
PROFILE MODEM PIN=xxxx '!!!!PIN der SIM-Karte
PROFILE MODEM MIN_SIGNAL_FOR_DATA_DBM=-93
PROFILE MODEM_session SMTP_SERVER=talsperre.de
PROFILE MODEM_session SMTP_ACCOUNT=xxxx
PROFILE MODEM_session SMTP_PASSWORD=xxxx
PROFILE MODEM_session RETURN_ADDRESS=xxxx@talsperre.de
PROFILE MODEM_session SENDER_NAME=DT80M
PROFILE MODEM_session min_idle_s=15 'wenn 15 Sekunden kein Verkehr baue Verbindung ab
PROFILE LOCALE TIME_ZONE=+1H ' Zeitversatz zu UTC
PROFILE STARTUP run =CURRENT_JOB ' wenn Neustart des Loggers führe letzten Job wieder aus
'setzen der Tastenbelegung
PROFILE FUNCTION F3_LABEL="PWD+WEG"
PROFILE FUNCTION F3_COMMAND="XA"
PROFILE FUNCTION F4_LABEL="Spannung+Temp"
PROFILE FUNCTION F4_COMMAND="XB"
PROFILE FUNCTION F5_LABEL="TESTSMS"
PROFILE FUNCTION F5_COMMAND="ETHERNET ENABLE=YES"
PROFILE FUNCTION F6_LABEL="email Werte -1 TAG"
PROFILE FUNCTION F6_COMMAND="DO{copyd dest=mailto:xxxx@gmx.de?interface=modem&priotity=high&body=Daten_DT80M&Subject=?(timestamp)_Datenauslesung start=-1T}"
PROFILE FUNCTION F7_LABEL="Send report"
PROFILE FUNCTION F7_COMMAND="XD"
PROFILE FUNCTION F1_LABEL="start all Reports"
PROFILE FUNCTION F1_COMMAND="{G LOGON}"
S1=0,2,4,20"bar" 'Span für die PWD
S2=0,50,4,20"mm" 'Span fuer die Weggeber
'Report Porenwasserdruck und Weg
RA1H 'Messe stuendlich
1RELAY(W)=1 'Schalte Relais ein
1I(100,MD250,S1,"K1: PWD1",FF3) 'Channel 1 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
1+I(100,MD250,S1,"K2: PWD2",FF3) 'Channel 1 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
1-I(100,MD250,S1,"K3: PWD3",FF3) 'Channel 1 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
2I(100,MD250,S1,"K4: PWD4",FF3) 'Channel 2 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
2+I(100,MD250,S1,"K5: PWD5",FF3) 'Channel 2 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
2-I(100,MD250,S1,"K6: PWD6",FF3) 'Channel 2 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
3I(100,MD250,S1,"K7: PWD7",FF3) 'Channel 3 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
3+I(100,MD250,S1,"K8: PWD8",FF3) 'Channel 3 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
3-I(100,MD250,S2,"K9: Weg1",FF2) 'Channel 3 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
4I(100,MD250,S2,"K10: Weg2",FF2) 'Channel 4 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
4+I(100,MD250,S2,"K11: Weg3",FF2) 'Channel 4 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
1SERIAL(w,"\e{\250\48\4\67}%b[1CV]%b[2CV]%b[3CV]%b[4CV]%b[5CV]%b[6CV]%b[7CV]%b[8CV]%b[9CV]%b[10CV]") 1..10CV(FF0,W) 'init Luftdrucksensor mit Adresse250
1..10CV(W)=0 'Ruecksetzen der Variablen
1SERIAL(w,"\e{\250\74\01\81\167}%b[1CV]%b[2CV]%b[3CV]%b[4CV]%b[5CV]%b[6CV]%b[7CV]%b[8CV]%b[9CV]") 10CV("Luftdruck~mbar")=(3CV16777216+4CV65536+5CV256+6CV)/100 '1..10CV '[Druck mbar]
1..10CV(W)=0 'Ruecksetzen der Variablen
1SERIAL(w,"\e{\250\74\04\82\103}%b[1CV]%b[2CV]%b[3CV]%b[4CV]%b[5CV]%b[6CV]%b[7CV]%b[8CV]%b[9CV]") 10CV("Schranktemp~GradC")=(3CV16777216+4CV65536+5CV256+6CV)/100 '1..10CV 'Temp [Grad C]
1RELAY(W)=0 'Schalte Relais aus
'Report Spannung und interne Temperatur
RB1H 'Messe stuendlich
VEXT(=20CV,"Accu~V",FF2) 'Messe die anliegende Speisespannung
REFT(=21CV,"Temp_Logger",FF1) ' Messe die interne Temperatur
ALARM1(20CV<10.5)"Spannung:?N=?V?U"[mailto:xxxx@gmx.de?interface=modem] 'Wenn die Spannung kleiner als 10,5V ist, schicke eine mail
RC[0:30:7:::1] 'starte jeden Montag 7:30Uhr einen Datenversand
DO{copyd dest=mailto:xxxx@gmx.de?interface=modem&priotity=high&body=Daten_DT80M&Subject=?(timestamp)_Datenauslesung start=new id=12}
100CV(W)=100cv+1 'erhöhe die Variable
if(100cv>3){session start GE 100CV=0} ' wenn 4 Wochen vergangen starte Internetverbindung; starte Report E; setze Variable 0
RDX '[0:30:7:1:*] 'starte jeden 1. des Monats 7:30Uhr einen Reportversand
Do{copy \events\event.log ftp://xxxx:xxxx@talsperre.de}
cevtlog 'löscht die eventlog-Datei
'DO{copy servicedata dest=ftp://xxxx:xxxx@talsperre.de?interface=modem}
RE3S 'führe aller 3 Sekunden aus
if(80SV==9){copy \events\event.log ftp://xxxx:xxxx@talsperre.de copy \events\error.log ftp://xxxx:xxxx@talsperre.de NTP HE} 'wenn Internetverbindung steht; sende logdatei zu FTP-Server; aktualisiere Uhrzeit; Halte Register E an
LOGON ' starte logging aller reports
G ' starte alle Reports
HE ' halte report E an
END ' Ende des Programmes
Hi members,
with the attached program below I have trouble when I start report A with the internal keyboard. Sporadic the SW exeption occur with our without connected sensors.
I tested also to set the 3 serial commando strings between the analog section but without improvement.
Thanks for your comments
Begin"HTW_26"
'setzen der Parameter
P15=1 'erlaubt den Schlafmodus, nicht wenn Ethernet oder USB verbunden
'P17=10 'Zeit [s] bis low power mode
'P31=1 'Datumsformat DD/MM/YYYY
P32=8 'number of significant digits in unload
P38=44 ' Komma als dezimaltrenner
P39=0 'Zeitformat HH:MM:SS.TTT (TTT P41)
'P41=0 '0 nachkommastellen bei der Sekunde (Zeit)
P53=2 ' Zeit [s] für timeout bei seriellen Sensoren
'/E 'enable echomode
'/R ' enable realtime data to hostcomputer
'Setzen von Profileinstellungen
PROFILE ETHERNET ENABLE=NO 'Schaltet ethernetschittstelle ab wegen Stromverbtrauch
PROFILE SERSEN_PORT FUNCTION=Serial
PROFILE SERSEN_PORT MODE=RS485
PROFILE SERSEN_PORT BPS=9600
PROFILE MODEM PIN=xxxx '!!!!PIN der SIM-Karte
PROFILE MODEM MIN_SIGNAL_FOR_DATA_DBM=-93
PROFILE MODEM_session SMTP_SERVER=talsperre.de
PROFILE MODEM_session SMTP_ACCOUNT=xxxx
PROFILE MODEM_session SMTP_PASSWORD=xxxx
PROFILE MODEM_session RETURN_ADDRESS=xxxx@talsperre.de
PROFILE MODEM_session SENDER_NAME=DT80M
PROFILE MODEM_session min_idle_s=15 'wenn 15 Sekunden kein Verkehr baue Verbindung ab
PROFILE LOCALE TIME_ZONE=+1H ' Zeitversatz zu UTC
PROFILE STARTUP run =CURRENT_JOB ' wenn Neustart des Loggers führe letzten Job wieder aus
'setzen der Tastenbelegung
PROFILE FUNCTION F3_LABEL="PWD+WEG"
PROFILE FUNCTION F3_COMMAND="XA"
PROFILE FUNCTION F4_LABEL="Spannung+Temp"
PROFILE FUNCTION F4_COMMAND="XB"
PROFILE FUNCTION F5_LABEL="TESTSMS"
PROFILE FUNCTION F5_COMMAND="ETHERNET ENABLE=YES"
PROFILE FUNCTION F6_LABEL="email Werte -1 TAG"
PROFILE FUNCTION F6_COMMAND="DO{copyd dest=mailto:xxxx@gmx.de?interface=modem&priotity=high&body=Daten_DT80M&Subject=?(timestamp)_Datenauslesung start=-1T}"
PROFILE FUNCTION F7_LABEL="Send report"
PROFILE FUNCTION F7_COMMAND="XD"
PROFILE FUNCTION F1_LABEL="start all Reports"
PROFILE FUNCTION F1_COMMAND="{G LOGON}"
S1=0,2,4,20"bar" 'Span für die PWD
S2=0,50,4,20"mm" 'Span fuer die Weggeber
'Report Porenwasserdruck und Weg
RA1H 'Messe stuendlich
1RELAY(W)=1 'Schalte Relais ein
1*I(100,MD250,S1,"K1: PWD1",FF3) 'Channel 1 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
1+I(100,MD250,S1,"K2: PWD2",FF3) 'Channel 1 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
1-I(100,MD250,S1,"K3: PWD3",FF3) 'Channel 1 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
2*I(100,MD250,S1,"K4: PWD4",FF3) 'Channel 2 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
2+I(100,MD250,S1,"K5: PWD5",FF3) 'Channel 2 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
2-I(100,MD250,S1,"K6: PWD6",FF3) 'Channel 2 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
3*I(100,MD250,S1,"K7: PWD7",FF3) 'Channel 3 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
3+I(100,MD250,S1,"K8: PWD8",FF3) 'Channel 3 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
3-I(100,MD250,S2,"K9: Weg1",FF2) 'Channel 3 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
4*I(100,MD250,S2,"K10: Weg2",FF2) 'Channel 4 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
4+I(100,MD250,S2,"K11: Weg3",FF2) 'Channel 4 "Strommessung über externen shunt 100Ohm, 250ms Einschwingen
1SERIAL(w,"\\e{\\250\\48\\4\\67}%b[1CV]%b[2CV]%b[3CV]%b[4CV]%b[5CV]%b[6CV]%b[7CV]%b[8CV]%b[9CV]%b[10CV]") 1..10CV(FF0,W) 'init Luftdrucksensor mit Adresse250
1..10CV(W)=0 'Ruecksetzen der Variablen
1SERIAL(w,"\\e{\\250\\74\\01\\81\\167}%b[1CV]%b[2CV]%b[3CV]%b[4CV]%b[5CV]%b[6CV]%b[7CV]%b[8CV]%b[9CV]") 10CV("Luftdruck~mbar")=(3CV*16777216+4CV*65536+5CV*256+6CV)/100 '1..10CV '[Druck mbar]
1..10CV(W)=0 'Ruecksetzen der Variablen
1SERIAL(w,"\\e{\\250\\74\\04\\82\\103}%b[1CV]%b[2CV]%b[3CV]%b[4CV]%b[5CV]%b[6CV]%b[7CV]%b[8CV]%b[9CV]") 10CV("Schranktemp~GradC")=(3CV*16777216+4CV*65536+5CV*256+6CV)/100 '1..10CV 'Temp [Grad C]
1RELAY(W)=0 'Schalte Relais aus
'Report Spannung und interne Temperatur
RB1H 'Messe stuendlich
VEXT(=20CV,"Accu~V",FF2) 'Messe die anliegende Speisespannung
REFT(=21CV,"Temp_Logger",FF1) ' Messe die interne Temperatur
ALARM1(20CV<10.5)"Spannung:?N=?V?U"[mailto:xxxx@gmx.de?interface=modem] 'Wenn die Spannung kleiner als 10,5V ist, schicke eine mail
RC[0:30:7:*:*:1] 'starte jeden Montag 7:30Uhr einen Datenversand
DO{copyd dest=mailto:xxxx@gmx.de?interface=modem&priotity=high&body=Daten_DT80M&Subject=?(timestamp)_Datenauslesung start=new id=12}
100CV(W)=100cv+1 'erhöhe die Variable
if(100cv>3){session start GE 100CV=0} ' wenn 4 Wochen vergangen starte Internetverbindung; starte Report E; setze Variable 0
RDX '[0:30:7:1:*] 'starte jeden 1. des Monats 7:30Uhr einen Reportversand
Do{copy \\events\\event.log ftp://xxxx:xxxx@talsperre.de}
cevtlog 'löscht die eventlog-Datei
'DO{copy servicedata dest=ftp://xxxx:xxxx@talsperre.de?interface=modem}
RE3S 'führe aller 3 Sekunden aus
if(80SV==9){copy \\events\\event.log ftp://xxxx:xxxx@talsperre.de copy \\events\\error.log ftp://xxxx:xxxx@talsperre.de NTP HE} 'wenn Internetverbindung steht; sende logdatei zu FTP-Server; aktualisiere Uhrzeit; Halte Register E an
LOGON ' starte logging aller reports
G ' starte alle Reports
HE ' halte report E an
END ' Ende des Programmes