CODESYS - das IEC 61131-3 Programmiersystem

Willkommen im offiziellen CODESYS - Forum von 3S-Smart Software Solutions | A member of the CODESYS Group
Deutsche Version English version russian version 
Aktuelle Zeit: Sa Sep 21, 2019 1:03 am

Alle Zeiten sind UTC




Ein neues Thema erstellen  Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Sa Sep 29, 2012 3:01 pm 
Offline

Registriert: Di Mär 20, 2007 6:35 am
Beiträge: 8
Hallo,

wer kann mir helfen, diesen Code zu optimieren ?? VIELEN DANK !!

IF %MX0.0 THEN
IF %QX0.0 THEN
%QX0.0 := FALSE;
ELSE
%QX0.0 := TRUE;
END_IF
%MX0.0 := FALSE;
END_IF

IF %MX0.1 THEN
IF %QX0.1 THEN
%QX0.1 := FALSE;
ELSE
%QX0.1 := TRUE;
END_IF
%MX0.1 := FALSE;
END_IF

IF %MX0.2 THEN
IF %QX0.2 THEN
%QX0.2 := FALSE;
ELSE
%QX0.2 := TRUE;
END_IF
%MX0.2 := FALSE;
END_IF

IF %MX0.3 THEN
IF %QX0.3 THEN
%QX0.3 := FALSE;
ELSE
%QX0.3 := TRUE;
END_IF
%MX0.3 := FALSE;
END_IF

IF %MX0.4 THEN
IF %QX0.4 THEN
%QX0.4 := FALSE;
ELSE
%QX0.4 := TRUE;
END_IF
%MX0.4 := FALSE;
END_IF

.......

IF %MX0.15 THEN
IF %QX0.15 THEN
%QX0.15 := FALSE;
ELSE
%QX0.15 := TRUE;
END_IF
%MX0.15 := FALSE;
END_IF



Also immer die gleiche Abfrage für %MX0.0 bis %MX0.15

%MX0.value und value von 0 bis 15 hochzählen mag er wohl nicht....


Das ganze ist Teil eines Programms (PRG) welche Werte Abfragt die eine HTML Webseite setzen kann.


Das hier müsste also in brauchbare Syntax umgesetzt werden:

For value= 0 to 15

IF %MX0.value THEN
IF %QX0.value THEN
%QX0.value := FALSE;
ELSE
%QX0.value := TRUE;
END_IF
%MX0.value := FALSE;
END_IF

Next value


sorry.... sehr laienhaft....

_________________
Wago 750-841

Webvisu auf:
Wincor-Nixdorf Touchscreen (1024x768) WindowsXP
Fujitsu-Siemens N560 Loox PDA WM5


Nach oben
   
BeitragVerfasst: Sa Sep 29, 2012 6:50 pm 
Offline

Registriert: Mi Feb 07, 2007 7:28 pm
Beiträge: 5
Hallo Alex,

ich denke so sollte es funktionieren:

Gruß
Freddy


Dateianhänge:
Beispiel.JPG
Beispiel.JPG [ 32.76 KiB | 1971 mal betrachtet ]
Nach oben
   
BeitragVerfasst: So Sep 30, 2012 8:29 am 
Offline

Registriert: Di Mär 20, 2007 6:35 am
Beiträge: 8
Vielen Dank.. werde ich gleich mal testen !

_________________
Wago 750-841



Webvisu auf:

Wincor-Nixdorf Touchscreen (1024x768) WindowsXP

Fujitsu-Siemens N560 Loox PDA WM5


Nach oben
   
BeitragVerfasst: Mi Okt 03, 2012 1:11 pm 
Offline

Registriert: Di Mär 20, 2007 6:35 am
Beiträge: 8
Freddy hat geschrieben:
Hallo Alex,

ich denke so sollte es funktionieren:

Gruß
Freddy


Hi ! Leider stimmt noch etwas nicht mit dem Code.
Ich kann zwar jeden "schalter" einmal schalten, danach jedoch nicht mehr.

Irgendwas wird da nicht zurückgesetzt....

Der Merker (%MW0) wird zwar auf 0 gesetzt aber nicht der Wert

z.B. wenn %MX0.3 der auf der HTML-Seite auf "TRUE" gesetzt wurde.



Wäre schön wenn jemand den Fehler findet !

_________________
Wago 750-841



Webvisu auf:

Wincor-Nixdorf Touchscreen (1024x768) WindowsXP

Fujitsu-Siemens N560 Loox PDA WM5


Zuletzt geändert von Alex1971 am Mi Okt 03, 2012 4:06 pm, insgesamt 2-mal geändert.

Nach oben
   
BeitragVerfasst: Mi Okt 03, 2012 2:12 pm 
Offline

Registriert: Di Mär 20, 2007 6:35 am
Beiträge: 8
Abgefragt werden soll auch nicht nur

MX0.0 bis MX0.15 sondern auch

MX1.0 bis MX1.15

So ganz verstehe ich den optimierten Code noch nicht... :-(

Habe das erstmal so gelöst in dem ich die Variabeln und Schleifen gedoppelt habe..

PROGRAM Web
VAR
h0 : WORD;
h1 : WORD;
i : INT;
Merker0 AT %MW0 : WORD;
Merker1 AT %MW1 : WORD;
Ausgang0 AT %QW0 : WORD;
Ausgang1 AT %QW1 : WORD;
END_VAR


h0:=1;
FOR i:=0 TO 15 DO
IF (Merker0 AND h0) > 0 THEN
Ausgang0:=Ausgang0 XOR h0;
Merker0:=0;
END_IF
h0:=h0*2;
END_FOR


h1:=1;
FOR i:=0 TO 15 DO
IF (Merker1 AND h1) > 0 THEN
Ausgang1:=Ausgang1 XOR h1;
Merker1:=0;
END_IF
h1:=h1*2;
END_FOR


Trotzdem funktioniert nach Neuem Laden der HTML-Seite jeder Button genau 1x


Der Code in meinem 1. Post funktionierte einwandfrei, war aber viel zu "lang"... keine Ahnung weshalb das mit dem neuen Code nicht will....


EDIT:

Totalabgedreht, der neue Code funktioniert nur 1x je Taste wenn man die Steuerseite mit CHROME aufruft.

Habe nun Firefox genommen > Nun funktioniert es einwandfrei... jeder Taster auf der HTML-Seite funktioniert beliebig oft...

Sehr merkwürdig...

Witzig, dass der alte Code auch "CHROME-kompatibel" ist......

Hauptsache es geht nun mit meinem Android 4.03 Tablet und dem Standardbrowser einwandfrei......

_________________
Wago 750-841



Webvisu auf:

Wincor-Nixdorf Touchscreen (1024x768) WindowsXP

Fujitsu-Siemens N560 Loox PDA WM5


Nach oben
   
BeitragVerfasst: Mi Okt 03, 2012 5:57 pm 
Offline

Registriert: Mi Feb 07, 2007 7:28 pm
Beiträge: 5
Hallo Alex,

das Beispiel wurde leider nicht 1:1 umgesetzt.
Die Befehlszeile "Merker0:=0;" muss außerhalb der FOR-Schleife aufgerufen werden.

Ich kann mir nicht vorstellen, dass der verwendete Browser einen Einfluß auf die Funktion hat!?

Gruß
Freddy


Nach oben
   
BeitragVerfasst: Mi Okt 03, 2012 7:47 pm 
Offline

Registriert: Di Mär 20, 2007 6:35 am
Beiträge: 8
Freddy hat geschrieben:
Hallo Alex,

das Beispiel wurde leider nicht 1:1 umgesetzt.
Die Befehlszeile "Merker0:=0;" muss außerhalb der FOR-Schleife aufgerufen werden.

Ich kann mir nicht vorstellen, dass der verwendete Browser einen Einfluß auf die Funktion hat!?

Gruß
Freddy


Hatte ich zuerst so gemacht.. half auch nicht... dachte dann es wäre besser es in die Schleife zu bauen.

Kein Unterschied.

Wie gesagt es funktioniert so wie zuletzt geschrieben... aber eben nicht mit Chrome....

Einwandfrei mit Firefox und OPERA unter Win7 64Bit und unter dem Standardbrowser von Android 4.03 !

Habe auch noch keineAhnung woran das liegt... irgendwie wird die Schnittstelle per Chrome wohl nicht regelmäßig aktualisiert..

Ein Button setztl %MX1.3=TRUE das landet bei ersten mal in %MW1 und somit in %QW1
%MW1 wird dann auf 0 gesetzt und bekommt dann nichts mehr mit,
egal wie oft ich per Buton auf der Webseite wieder %MX1.3=TRUE setzte.
(Im alten Code wo %MX1.3=False gesetzt wurde lief es in Chrome problemlos...)

Schließe ich die URL jedoch ganz und rufe sie per Chrome erneut auf, funktioniert jeder %MX1.x Wert wieder genau 1x. Eine Refresh (F5) reicht jedoch NICHT aus !

Beim Firefox/OPERA muss ich dazu nichts schließen und neu aufrufen ! Es geht einfach so wie es soll..

_________________
Wago 750-841



Webvisu auf:

Wincor-Nixdorf Touchscreen (1024x768) WindowsXP

Fujitsu-Siemens N560 Loox PDA WM5


Nach oben
   
BeitragVerfasst: Di Okt 16, 2012 8:30 pm 
Offline

Registriert: Di Aug 23, 2005 7:12 am
Beiträge: 15
viel zu kompliziert:


Code:
   Merkerwort AT %MW0: WORD;
   Ausgangwort AT %QW0: WORD;


Code:
Ausgangwort:=Ausgangwort XOR Merkerwort;
Merkerwort:=0;


geht natürlich auch mit 32-Bit anstatt 16 Bit


Nach oben
   
BeitragVerfasst: Sa Okt 20, 2012 9:15 am 
Offline

Registriert: Di Mär 20, 2007 6:35 am
Beiträge: 8
Hmmm... so einfach ginge das ?....

Werde das gleich mal testen.... vielen Dank !

_________________
Wago 750-841



Webvisu auf:

Wincor-Nixdorf Touchscreen (1024x768) WindowsXP

Fujitsu-Siemens N560 Loox PDA WM5


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

Alle Zeiten sind UTC


Wer ist online?

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


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de