Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Einsetzen von Captures Kategorie: Programmierung (von Newbie - 15.09.2011 10:06)
Ich nutze:
C-Control II Station, OSOPT V3.1
Ich vernetze 2 CC2 über RS232 (CAN ist nicht möglich in dem Umfeld)

Dabei funktioniert alles eigentlich ganz gut, ausser das ich konkurrenzierende Zugriffe habe. Also muss
ich dies wohl über Captures in den Griff bekommen.

Die eine CC2 sendet regelmässig Statusanfragen, getaktet mit ca. 1 Sekunde

Ab und zu sollen dann Kommandos ausgeführt werden.

Die Struktur ist folgende:

Modul Global:

long Antwort;


Modul Kommunikation:


function Kommando1 returns long
{hwcom send&receive stuff....;return timer}

function Kommando2 returns long
{hwcom send&receive stuff....;return timer}

function Status
{hwcom send&receive stuff....;return timer}

thread main

loop
{
cap.Capture(0);
Global.Antwort=Status();
cap.Release(0);

sleep 1000;
}


Modul Regelung:


thread main
loop
{if x==Event
{cap.Capture(0);
Global.Antwort=Kommunikation.Kommando1();
cap.Release(0);}

if x=Event2
{cap.Capture(0);
Global.Antwort=Kommunikation.Kommando1();
cap.Release(0);}
sleep 1000;

}



Wenn ich jetzt mit einem Terminalprogramm dies manuell teste, dann senden die Threads trotzdem
durcheinander..  Was habe ich falsch gemacht? cap.init() wurde ausgeführt.

Ich habe das Problem hier strukturell beschrieben und nicht den detailierten Code.



    Antwort schreiben


Antworten:

Re: Einsetzen von Captures (von André H. - 15.09.2011 11:31)