Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Sensor startet Stoppuhr und hält diese auch an

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Sensor startet Stoppuhr und hält diese auch an (2351 mal gelesen)
KidCaddi
Mitglied



Sehen Sie sich das Profil von KidCaddi an!   Senden Sie eine Private Message an KidCaddi  Schreiben Sie einen Gästebucheintrag für KidCaddi

Beiträge: 11
Registriert: 09.07.2011

erstellt am: 18. Aug. 2011 16:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Leute,
habe Förderstrecke, wo zwei sensoren auf genau der gleichen höhe liegen. Sensor 1 misst Bug vom BE, Sensor zwei das Heck vom gleichen BE. Ich habe also eine Variablen A, die auf "1" gesetzt wird, solange BE vor dieser Lichtschranke ist.

Problem: Ich möchte Variable B (typ: time) starten lassen (Stoppuhr), sobald A auf "1" ist. Die fortlaufende Zeit soll permanent mit einer vorgegebenen Zeitgrenze C vergleichen werden.
Ist A auf "1" und die Zeit dafür von B übersteigt C, soll Variable D auf "1" gesetzt werden, ansonsten D auf "0".

Kurz: Liegt mein BE zu lange (Zeit > Variable C)vor Sensor, leitet Variable D mit Signal "1" eine Reaktion ein, ansonsten nicht.

PS: Ich würde gern auch im Netzwerk sehen dass die Stoppuhr läuft, wenn das BE vor Lichtschranke liegt.

Steh da aufm Schlauch. Help, I need some help

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bon Simul
Mitglied
Simulant


Sehen Sie sich das Profil von Bon Simul an!   Senden Sie eine Private Message an Bon Simul  Schreiben Sie einen Gästebucheintrag für Bon Simul

Beiträge: 1250
Registriert: 08.08.2011

Plant Simulation 10.1, 11 ff Professional

erstellt am: 18. Aug. 2011 20:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für KidCaddi 10 Unities + Antwort hilfreich

dafür gibt es den Generator, Sie können durch ihn jede Sekunde eine Methode aufrufen lassen. Den Inhalt der Methode haben Sie schon gut beschrieben.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KidCaddi
Mitglied



Sehen Sie sich das Profil von KidCaddi an!   Senden Sie eine Private Message an KidCaddi  Schreiben Sie einen Gästebucheintrag für KidCaddi

Beiträge: 11
Registriert: 09.07.2011

erstellt am: 19. Aug. 2011 10:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi,
danke für die Antwort, aber ich habe da Probleme mit der Syntax.
Sieht die in etwa so aus (?):

Methode1:
if Variable A = 1 then
Variable B :=Ereignisverwalter.Zeit waituntil -- Start der Stoppuhr?
Variable B >= Variable C;                    -- Stopp der Stoppuhr?
if Variable >= C then Variable D =1 else Variable D = 0   

-- Wie starte und stoppe ich die Uhr für jedes BE aufs neue
-- Sieht die Syntax in etwa so aus? Das Problem ist nicht die Methodik, sondern die Umsetzung(meine Syntaxfehler).

Grüße
kid Caddi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

planty
Mitglied
Dipl.-Ing.


Sehen Sie sich das Profil von planty an!   Senden Sie eine Private Message an planty  Schreiben Sie einen Gästebucheintrag für planty

Beiträge: 139
Registriert: 18.09.2006

erstellt am: 19. Aug. 2011 10:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für KidCaddi 10 Unities + Antwort hilfreich

Hi,

Zu jedem 'If then' auch ein 'end' (zur besseren Lesbarkeit auch gerne ein leeres 'else  /* nothing */ end').
Das steht natürlich auch in der Hilfe UND es gibt ein Code-Template.
'if' strg + leer, erzeugt Dir ein if statement.

Code:

if «condition» then
«then_branch»
end;


P.

------------------
Two hours of trial and error can save ten minutes of manual reading!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KidCaddi
Mitglied



Sehen Sie sich das Profil von KidCaddi an!   Senden Sie eine Private Message an KidCaddi  Schreiben Sie einen Gästebucheintrag für KidCaddi

Beiträge: 11
Registriert: 09.07.2011

erstellt am: 19. Aug. 2011 11:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Wow Plenty,

nach "if ... then" kommt auch noch ein "end". Wahnsinn. Das war nie das Problem.

Aber vielen Dank ;-)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Samson53
Mitglied
Nur noch selten simulierend


Sehen Sie sich das Profil von Samson53 an!   Senden Sie eine Private Message an Samson53  Schreiben Sie einen Gästebucheintrag für Samson53

Beiträge: 119
Registriert: 18.02.2010

Plant Simulation 11
Office 2013

erstellt am: 19. Aug. 2011 11:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für KidCaddi 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von KidCaddi:
Hi Leute,
habe Förderstrecke, wo zwei sensoren auf genau der gleichen höhe liegen. Sensor 1 misst Bug vom BE, Sensor zwei das Heck vom gleichen BE. Ich habe also eine Variablen A, die auf "1" gesetzt wird, solange BE vor dieser Lichtschranke ist.

Warum nicht einen Sensor (keine LS) mit Bug und Heck?

Zitat:

Problem: Ich möchte Variable B (typ: time) starten lassen (Stoppuhr),


Halte in eine Globalen Variablen (Bugzeit) die Simtime vom Bug fest, und wenn das Heck passiert ist die Wartezeit, AktuelleSimtime - Länge(be) / Geschwindigkeit - Bugzeit.

Du kannst auch vom Nachfolger die Bugzeit auswerten um diesen umzuleiten


------------------
Gruß
Samson

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

planty
Mitglied
Dipl.-Ing.


Sehen Sie sich das Profil von planty an!   Senden Sie eine Private Message an planty  Schreiben Sie einen Gästebucheintrag für planty

Beiträge: 139
Registriert: 18.09.2006

erstellt am: 19. Aug. 2011 13:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für KidCaddi 10 Unities + Antwort hilfreich

Hi,

Du hast geschrieben:

Code:

ich habe da Probleme mit der Syntax.
-- Sieht die Syntax in etwa so aus? Das Problem ist nicht die Methodik, sondern die Umsetzung(meine Syntaxfehler).

Wenn wir Dich auf Syntaxfehler hinweisen sollen, dann zeig uns Dein spezifisches Problem und klatsch nicht Codefragmente hin und erwarte dass wir uns lange damit auseinandersetzen um herauszufinden was Du wohl gemeint haben wirst.

Mal angenommen das 'waituntil' ist Dein Problem.
Die Zeile ist natürlich auch Mist, aber auch die Syntax von 'waituntil' steht ebenfalls in der Hilfe (und auch einige Male im Forum).

Code:
waituntil <Bedingung> prio <integer Ausdruck>;

'waituntil' ist kein Operator, braucht also auch kein linksseitiges Argument.

PS Liefert Beispielmodelle mit, in denen ziemlich alles irgendwo verwendet wird. Waituntil z.B. hier:
Materialfluss -> Montagebaustein -> SimTalk Wächter

Unhöflichkeit ist kein Problem, aber da ich offensichtlich etwas falsch verstanden habe, brauche zumindes ich wohl mehr/bessere Informationen. Ohne also Dein wirkliches Problem zu formulieren können wir Dir nicht helfen. Den Trollkommentar kannst Du Dir vielleicht das nächste mal sparen,

Mein Vorschlag, poste die Methode so wie Du sie geschrieben hast.

P.

PS: hilft auch hier: http://www.vogella.de/blog/2010/03/09/asking-community-questions/

------------------
Two  hours of trial and error can save ten minutes of manual reading!

[Diese Nachricht wurde von planty am 19. Aug. 2011 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bon Simul
Mitglied
Simulant


Sehen Sie sich das Profil von Bon Simul an!   Senden Sie eine Private Message an Bon Simul  Schreiben Sie einen Gästebucheintrag für Bon Simul

Beiträge: 1250
Registriert: 08.08.2011

Plant Simulation 10.1, 11 ff Professional

erstellt am: 19. Aug. 2011 21:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für KidCaddi 10 Unities + Antwort hilfreich

Immer ruhig mit den jungen Pferden...

Wenn die Stoppuhr Ihr einziges Problem ist, dann können Sie die Uhr die ganze Zeit laufen lassen, die Zeit wird nur hochgezählt, wenn ein BE sich über dem Sensor aufhält, sonst wird die Uhr permanent auf 0 gesetzt.

Entwurf der Logik war schon okey.

Bauplan: Generator --> ruft jede 10 Sek die Methode auf
globale Variable stoppuhr (Datentyp:time)--> Ihr B

Zitat:
"Problem: Ich möchte Variable B (typ: time) starten lassen (Stoppuhr), sobald A auf "1" ist. Die fortlaufende Zeit soll permanent mit einer vorgegebenen Zeitgrenze C vergleichen werden.
Ist A auf "1" und die Zeit dafür von B übersteigt C, soll Variable D auf "1" gesetzt werden, ansonsten D auf "0"."

Das lässt sich fast 1:1 umsetzen:

Code:

is
do
  --stoppuhr starten
  if A = 1 then
    stoppuhr:=stoppuhr+10;--Generatorintervall
  else
    stoppuhr:=0; -- Uhr ist angehalten
  end;
  -- mit Zeitgrenze vergleichen
  if stoppuhr > B then
    D:=1;
  else
    D:=0;
  end;
end;

Die Zeit werden Sie nur "laufen" sehen, wenn Sie die Simulation in Echtzeit (mal x) ablaufen lassen, sonst "überspringt" Plant Simulation den Stau.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz