Autor Beitrag
grisu2611
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28


C/C++; C# (neu)
BeitragVerfasst: Sa 06.10.07 15:35 
Hallo!

Habe eine Anwendung mit drei Buttons: "Spannung Ein" "Daten lesen" "Stop"

Wenn ich jetzt meine Anwendung starten möchte nur um die Spannung und Ströme zu messen und anschließend nur Stoppen will ohne Daten zu lesen geht das nicht!
Muss immer erst die Reihenfolge der Buttons nehmen wie sie oben steht!
Warum muss ich meine Anwendung immer wieder neu starten bevor ich wieder Spannung einschalten kann!

Bitte helft mir!

Danke!
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 06.10.07 15:58 
Meine Kopie des Bundestrojaners scheint ein bisschen fehlerhaft zu sein und war daher nicht in der Lage, mir den relevanten Sourcecode von Deiner Festplatte zu liefern. Du wirst ihn also leider hier posten müssen :(

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
grisu2611 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28


C/C++; C# (neu)
BeitragVerfasst: Sa 06.10.07 16:10 
Werd ich da hochgenommen? nicht böse sein aber was sprichst du mit mir?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 06.10.07 16:14 
user profile icongrisu2611 hat folgendes geschrieben:
Werd ich da hochgenommen?

Ein bisschen ;-)

user profile icongrisu2611 hat folgendes geschrieben:
nicht böse sein aber was sprichst du mit mir?

Lies Dir Dein Posting von oben mal durch. Wie soll man Dir helfen? Woher sollen wir wissen, wie Dein Programm arbeitet? Daher: Du musst uns die relevanten Teile Deines Quellcodes zeigen!

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
grisu2611 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28


C/C++; C# (neu)
BeitragVerfasst: Sa 06.10.07 16:29 
naja is klar mit den greenhorns kann mans machen!!! :( :wink:

also hier der Code für die drei Buttons aus dem Programm herraus:

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
private void spannungEinButton_Click(object sender, EventArgs e)
        {
            // Netzgerät ansteuern
            kanal = 0;
            spannung = 4.4;
            ausgabeSpg(kanal, spannung);
             
            // Bremse ansteuern
            kanal = 1;
            spannung = 0;
            ausgabeSpg(kanal, spannung);

            // Schütze schalten (Motor Ein, Links-/Rechtslauf)
            digitalAusgabe(digitalKanal);
        }

        private void datenEinlesneButton_Click(object sender, EventArgs e)
        {
            BuffersCompleted = 0;

            // Setzt alle vorher zugewiesenen Buffer frei falls wir die Zahl oder die Größe 
            // der Buffer erhöhen
            ainSS.BufferQueue.FreeAllQueuedBuffers();

            daqBuffers = new OlBuffer[anzahlVonBuffern];

            // Erstellt die Buffers zum speichern der Roh Daten
            // Plaziert die Buffers in der Schlange vom Analog Input Subsystem
            for (int i = 0; i < anzahlVonBuffern; ++i)
            {
                daqBuffers[i] = new OlBuffer(1250, ainSS); //1250= Anzahl der Samples pro Buffer

                ainSS.BufferQueue.QueueBuffer(daqBuffers[i]);
            }

            // Setzt den Datenfluß auf Kontinuierlich für den buffered I/O
            ainSS.DataFlow = DataFlow.Continuous;

            // Aktualisieren des internen Frequenzgebers
            ainSS.Clock.Frequency = 5000;

            // Reinigen der AnalogInputSubsystem Kanal Liste
            ainSS.ChannelList.Clear();

            
            // Fügt einen Kanal der Kanal Liste hinzu
            ainSS.ChannelList.Add(0);
            ainSS.ChannelList.Add(1);
            ainSS.ChannelList.Add(8);

            ainSS.ChannelType = ChannelType.SingleEnded;

            // Das Subsystem wird mit den vorhergegangen Einstellungen konfiguriert
            ainSS.Config();

            // If a buffer is not in the BufferQueue, queue it otherwise
            // skip it.
            for (int i = 0; i < anzahlVonBuffern; i++)
            {
                if ((daqBuffers[i].State == OlBuffer.BufferState.Idle) ||
                    (daqBuffers[i].State == OlBuffer.BufferState.Completed))
                    ainSS.BufferQueue.QueueBuffer(daqBuffers[i]);
            }

            // Startet einlesen der Daten
            ainSS.Start();

            // Bremse ansteuern
            kanal = 1;
            spannung = 0;
            ausgabeSpg(kanal, spannung);
            
        }
        
        private void stopButton_Click(object sender, EventArgs e)
        {
            try
            {
                // Stopt das Einlesen der Daten
                ainSS.Stop();

                // Relais ansteuern (ausschalten)
                digitalKanal = 0;
                digitalAusgabe(digitalKanal);

                // Netzteil ausschalten
                kanal = 0;
                spannung = 0;
                ausgabeSpg(kanal, spannung);

            }
            catch (OlException ex)
            {
                string err = ex.Message;
                statusBarPanel.Text = err;
                return;
            }    
        }
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 06.10.07 16:39 
In der Methode zum Lesen der Daten wird ja anscheinend ainSS.Config(); und ainSS.Start(); aufgerufen. Ich könnte mir vorstellen, der Aufruf von ainSS.Stop(); in der Methode zum Stoppen wird fehlschlagen, wenn das nicht geschehen ist.

Ist aber nur ins Blaue geraten, weil ich die Komponente nicht kenne.

Helfen würde noch, wenn Du schreibst, was für ein Fehler kommt (z.B. welche Exception ausgelöst wird).

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
grisu2611 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28


C/C++; C# (neu)
BeitragVerfasst: Mo 08.10.07 07:57 
Ein Fehler taucht leider nicht auf, es wird halt nur den Prüfstand nicht abgeschaltet! Erst wenn ich die Reihenfolge der Buttons betätige wie sie im Programmablauf sind!
Ist denn irgendwo die Reihenfolge festgelegt?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 08.10.07 10:24 
Du hast doch bestimmt 'ne Doku zu der ainSS-Klasse bekommen, guck da doch mal rein.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
mutterholzbein
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 47
Erhaltene Danke: 1

[Win XP pro,Win 7pro, Ubuntu 10.04]
[MS Visual Studio 2008 pro TeamSystem,VS-2010-Ultimate [C, C++ (u.a. mit QT4), C#, PHP]
BeitragVerfasst: Do 17.01.08 15:26 
user profile iconChristian S. hat folgendes geschrieben:
Meine Kopie des Bundestrojaners scheint ein bisschen fehlerhaft zu sein und war daher nicht in der Lage, mir den relevanten Sourcecode von Deiner Festplatte zu liefern. Du wirst ihn also leider hier posten müssen :(


*fg*
Sehe das ähnlich,gruß mhb
mutterholzbein
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 47
Erhaltene Danke: 1

[Win XP pro,Win 7pro, Ubuntu 10.04]
[MS Visual Studio 2008 pro TeamSystem,VS-2010-Ultimate [C, C++ (u.a. mit QT4), C#, PHP]
BeitragVerfasst: Do 17.01.08 15:50 
user profile icongrisu2611 hat folgendes geschrieben:
Ein Fehler taucht leider nicht auf, es wird halt nur den Prüfstand nicht abgeschaltet! Erst wenn ich die Reihenfolge der Buttons betätige wie sie im Programmablauf sind!
Ist denn irgendwo die Reihenfolge festgelegt?

FALLS du immernoch nicht wissen solltest(bei dem alter des beitrags eher unwahrscheinlich ;) )
...ja die lässt sich festlegen:
->View[Anzeigen]->Aktivreihenfolge
dann nacheinander die str-elemente anklicken um die reihenfolge festlegen...

p.s. ich kann mir irgendwie auch nicht vorstellen das ainSS.Stop() funktioniert(wo ist aniSS eigentlich definiert?!). vielleicht solltest du es zusätzlich mit ner break-anweisung versuchen... aber das beste wäre wirklich sich die doku zu der klasse durchzulesen.

mal nebenbei, dass sieht sehr nach automatisierung(technik) aus, warum machst du das nicht mit Siemens-Step7? in der sprache gibt es vorgefertigte module die sich solcher probleme annehmen... :wink:

naja, trotzdem viel glück->greetz mhb