Registrieren    Anmelden    Forum    Suche    FAQ

Foren-Übersicht » Alarm Modem Projektierung » Webserver




Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Beitrag Verfasst: Do Aug 24, 2006 2:25 pm 
Erfahrener

Registriert: Mo Jul 25, 2005 11:18 am
Beiträge: 25
Wohnort: Berlin
Die hier angeschnittene Thematik ist sehr komplex.
Ich möchte auf zwei neue Beiträge verweisen, die einen
Teil der angeschnittenen Probleme lösen:

Aktualisierung von Prozessvariablen
http://www.tixi.com/phpBB2/viewtopic.php?t=175

Im Beitrag 'Zeitsynchronisation per Webseite' ist das Setzen
von Variablen per Java-Script zu sehen.
http://www.tixi.com/phpBB2/viewtopic.php?t=174


Nach oben 
   
Mit Zitat antworten  
 Betreff des Beitrags:
 Beitrag Verfasst: Mi Aug 23, 2006 3:39 pm 
Tixi-Support-Team

Registriert: Mo Jul 11, 2005 5:50 pm
Beiträge: 1351
Wohnort: Berlin
wka1 hat geschrieben:
Gibt es keine Möglichkeit die Variablen neu zu holen?

Grundsätzlich liefert der direkte HTTP-Request über cgi-bin/readVal.exe den aktuellen Wert. Sie müssen es quasi nur schaffen, diesen zyklisch über ein Skript aufzurufen, und den Wert zu übernehmen.

In diese Richtung haben wir aber selbst noch keine Versuche unternommen. Wir stellen nur die Basisbibliothek der Web-Templates zur Verfügung, den Rest kann sich der Anwender selbständig aus den zahlreichen Skriptsammlungen im WWW zusammensuchen.

wka1 hat geschrieben:
Ein Refresh eines ganzen Frames belastet die (schlechte) GSM Verbindung ziemlich, sodass ich mir eben gedacht habe, nur die Werte neu zu senden.

Wenn in dem Frame nur die Referenz auf die Variable steht, dann belastet es die Verbindung nur minimal. Ich würde dort z.B. Inlineframes empfehlen. Ein kurzes Beispiel (ungetestet):

Iframe in der Hautpseite:
<iframe src="Q2.html" width="50" height="50" name="Response" frameborder="yes" scrolling="no"></iframe>

Inhalt der Iframe-Datei q2.html:
<html>
<head>
<!--Autorefresh, 3s-->
<meta http-equiv="refresh" content="3; URL=q2.html">
</head>
<body>
&#xae;Q2;
</body>
</html>

Im Frame wird dadurch alle 3s der Wert aktualisiert.

wka1 hat geschrieben:
Da einige Plausibilitätsabfragen in Javascript geschrieben sind, wäre es für mich eben am einfachsten, wenn man dann direkt von der Javascriptfunktion aus die Werte setzen könnte, da sie wie gesagt zuerst geprüft werden, was in html nur schwehr möglich wäre.

Wie wärs, wenn Sie die CGI im Form aufrufen, und die Plausibilitätsabfrage über ein JavaScript machen, z.B.:

<script language="JavaScript">
function checknumber(v) {
if (/[^0-9]/.test(v.value)) {
alert("Nur 0-9 erlaubt !");
return false;
}
return true;
}
</script>

Und im Body:
<FORM action="../cgi-bin/writeVal.exe" method="get" target="NullDevice">
<INPUT type="text" name="Variable_9" maxlength="5" value="" onKeyUp="return checknumber(this)"/>
</FORM>
<iframe width="0" height="0" name="NullDevice" frameborder="NO"></iframe>

_________________
Tixi Support Team

E-Mail-Support, Mo-Fr, 9:00 - 17:00: Tixi-Support@tixi.com
techn. Hotline, Mo-Fr, 9:00 - 12:00 und 13:00 - 17:00: 0900-100 90 11 für 2€/min


Nach oben 
   
Mit Zitat antworten  
 Betreff des Beitrags:
 Beitrag Verfasst: Mi Aug 23, 2006 3:16 pm 
Neuling

Registriert: Mi Aug 23, 2006 2:21 pm
Beiträge: 2
Gibt es keine Möglichkeit die Variablen neu zu holen?
Ein Refresh eines ganzen Frames belastet die (schlechte) GSM Verbindung ziemlich, sodass ich mir eben gedacht habe, nur die Werte neu zu senden.
Da einige Plausibilitätsabfragen in Javascript geschrieben sind, wäre es für mich eben am einfachsten, wenn man dann direkt von der Javascriptfunktion aus die Werte setzen könnte, da sie wie gesagt zuerst geprüft werden, was in html nur schwehr möglich wäre.


Nach oben 
   
Mit Zitat antworten  
 Beitrag Verfasst: Mi Aug 23, 2006 3:10 pm 
Tixi-Support-Team

Registriert: Mo Jul 11, 2005 5:50 pm
Beiträge: 1351
Wohnort: Berlin
wka1 hat geschrieben:
Hallo erstmal!
Ich möchte eine Webseite erstellen, welche Messwerte dynamisch darstellt. Dazu habe ich in Javascript folgende Funktion erstellt:

function Anzeigen() {
Text1.value = ®/Process/Bus1/Device_0/Variable_1;
Text2.value = ®/Process/Bus1/Device_0/Variable_2;
[...]
window.setTimeout('Anzeigen()',1000);
}

Text1 usw. sind Textfelder.
window.setTimeout ruft die Funktion jede 1000ms neu auf, was lokal auch wunderbar funktioniert.
Auch beim Laden der Seite wird diese Funktion aufgerufen.
Lade ich die Seite jedoch auf den Webserver, werden die Werte nicht jede Sekunde aktualisiert, sondern erst, wenn die Seite neu geladen wird.
Die Funktion wird aber korrekt jede Sekunde aufgerufen, was ich mit einer alertbox überprüft habe. Nur die Werte aktualisieren sich nicht.

Einfacher Denkfehler: Die im HTML-Code eingebetteten Referenzen (&#xae;Variable;) werden vom Alarm Modem bei der Übergabe des HTML-Codes an den Browser aufgelöst, d.h. der Browser erhält immer folgendes Script (angenommen beim Lesen waren beide Werte 0):

function Anzeigen() {
Text1.value = 0;
Text2.value = 0;
[...]
window.setTimeout('Anzeigen()',1000);
}

Das Java-Skript wird also demnach jede Sekunde mit dem gleichen Wert ausgeführt. Es reicht also nicht das Skript zyklsich aufzurufem sondern vielmehr müsste der komplette Skriptcode zyklisch eingelesen werden.
Ein automatisches Refresh der kompletten Seite, oder noch besser ein Refresh eines Miniframes mit der Variablenreferenz macht mehr Sinn.

wka1 hat geschrieben:
Das 2. Problem ist, das ich es nicht schaffe, in einer Javascriptfunktion einen Variablenwert zu setzen.
auf der Webseite gibt es einige Buttons, mit denen ich eine Variable aktualisieren möchte.

Haben Sie unserer Web-Templates angeschaut ? Dort sind Beispiele mit Button ohne JavaSkript enthalten.

wka1 hat geschrieben:
function Button1_onclick() {
Hier soll Variable ®/Process/Bus1/Device_0/Variable_9 auf einen bestimmten Wert gesetzt werden.
}

cgi-bin/writeval.exe?STATUS+0 funktioniert mit Javascript nicht.

STATUS ist ein alias
<STATUS _="/Process/Bus1/Device_0/Variable_9" acc="RW" />


Funktioniert denn der Aufruf in der Browser-Adresszeile ?
http://192.168.0.1/cgi-bin/writeVal.exe?STATUS+0

_________________
Tixi Support Team

E-Mail-Support, Mo-Fr, 9:00 - 17:00: Tixi-Support@tixi.com
techn. Hotline, Mo-Fr, 9:00 - 12:00 und 13:00 - 17:00: 0900-100 90 11 für 2€/min


Nach oben 
   
Mit Zitat antworten  
 Beitrag Verfasst: Mi Aug 23, 2006 2:56 pm 
Neuling

Registriert: Mi Aug 23, 2006 2:21 pm
Beiträge: 2
Hallo erstmal!
Ich möchte eine Webseite erstellen, welche Messwerte dynamisch darstellt. Dazu habe ich in Javascript folgende Funktion erstellt:

function Anzeigen() {
Text1.value = ®/Process/Bus1/Device_0/Variable_1;
Text2.value = ®/Process/Bus1/Device_0/Variable_2;
[...]
window.setTimeout('Anzeigen()',1000);
}

Text1 usw. sind Textfelder.
window.setTimeout ruft die Funktion jede 1000ms neu auf, was lokal auch wunderbar funktioniert.
Auch beim Laden der Seite wird diese Funktion aufgerufen.
Lade ich die Seite jedoch auf den Webserver, werden die Werte nicht jede Sekunde aktualisiert, sondern erst, wenn die Seite neu geladen wird.
Die Funktion wird aber korrekt jede Sekunde aufgerufen, was ich mit einer alertbox überprüft habe. Nur die Werte aktualisieren sich nicht.

Das 2. Problem ist, das ich es nicht schaffe, in einer Javascriptfunktion einen Variablenwert zu setzen.
auf der Webseite gibt es einige Buttons, mit denen ich eine Variable aktualisieren möchte.
function Button1_onclick() {
Hier soll Variable ®/Process/Bus1/Device_0/Variable_9 auf einen bestimmten Wert gesetzt werden.
}

cgi-bin/writeval.exe?STATUS+0 funktioniert mit Javascript nicht.

STATUS ist ein alias
<STATUS _="/Process/Bus1/Device_0/Variable_9" acc="RW" />

Danke für die Hilfe!


Nach oben 
   
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
 
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 

Foren-Übersicht » Alarm Modem Projektierung » Webserver


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

 
 

 
Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Deutsche Übersetzung durch phpBB.de