CODESYS - das IEC 61131-3 Programmiersystem

Willkommen im offiziellen CODESYS - Forum von 3S-Smart Software Solutions
Deutsche Version English version russian version 
Aktuelle Zeit: Fr Dez 15, 2017 8:09 am

Alle Zeiten sind UTC




Ein neues Thema erstellen  Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: GELÖST: Semaphore
BeitragVerfasst: Fr Sep 15, 2017 9:19 am 
Offline

Registriert: Mi Feb 15, 2017 8:35 pm
Beiträge: 6
Hallo zusammen,
könnte mir jemand mal generell bzw. am besten mit BeispielCode das Thema Semaphore näher bringen. Ich habe das Prob, dass ich von 2 Tasken aus auf eine Queue zugreiefn muss und zwar von der einen Task lesend und von der anderen Task schreibend.
Danke im Voraus.

Kurzes Update:
Ich verwende die Lib SysSem. Der Ablauf sieht folgendermassen aus:

Ích habe ein GVL.Semaphore den ich mittels Create erstelle, dann über Try und Enter diesen Belege und mit Leave den Smeaphore wieder freigebe. In der zweiten Task wird mir dieser aber noch als Belegt ( Rückgabewert von ...Try = 1 ) markiert, obwohl ich den Semaphore über ....Leave freigegeben habe. Oder ...Muss ich diesen Semaphore löschen und den Semaphore bei der nächsten Aktion wieder über Create neu erstellen ???

Gruß
Michael


Zuletzt geändert von Michael W am Do Sep 21, 2017 7:45 am, insgesamt 1-mal geändert.

Nach oben
   
 Betreff des Beitrags: Re: Semaphore
BeitragVerfasst: Fr Sep 15, 2017 1:18 pm 
Offline

Registriert: Mi Okt 12, 2016 11:28 am
Beiträge: 6
Moin,
ein paar Dinge sind zubeachten:

SysSemTry: Wenn es möglich ist die Sektion zu öffnen, erfolgt dies auch direkt.
Der Unterschied zu SysSemEnter liegt somit darin, das wenn es nicht möglich ist der Code weiterausgeführt wird, während SysSemEnter steht.

Das hat zur Folge, dass wenn Du erst Try und dann Enter ausführst, Du auch zweimal Leave ausführen mußt.


PS: Stell sicher, dass das Handle gültig ist, sonst Exception


Beispiel hängt an.

Viel Erfolg


Dateianhänge:
SysSem.project [107.06 KiB]
18-mal heruntergeladen
Nach oben
   
 Betreff des Beitrags: Re: Semaphore
BeitragVerfasst: Di Sep 19, 2017 5:42 am 
Offline

Registriert: Mi Feb 15, 2017 8:35 pm
Beiträge: 6
Hallo ThK,
vielen Dank für deinen Beispielcode. Habe es getestet in meiner Umgebung und es funktioniert.
Thread kann als gelöst geschlossen werden !

Gruß
Michael


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

Alle Zeiten sind UTC


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de