Seite 1 von 1
Neue Funktionen NumInputsEx und NumOutputsEx
Verfasst: Freitag 12. Februar 2010, 11:45
von BKGMX
Hallo liebe Mitstreiter,
beim Test der neuen Funktionen (NumInputsEx, NumOutputsEx) ist mir folgendes aufgefallen:
- die Funktionen werden im RUN-Modus permanent aufgerufen, ist das gewollt und sinnvoll ?
- beim Umschalten zwischen Schaltung und Frontplatte im Entwurfsmodus werden die Funktionen nicht aufgerufen, das schränkt die Funktionen unnötig ein
- beim löschen einer DLL aus der Schaltung fehlt mir der Aufruf ebenfalls, hier wäre eventuell eine function DeleteEx(PUser: PDLLParams): Byte; sehr hilfreich
Hintergrund ist die Darstellung der MGR.DLL auch im Entwurfsmodus. Ich will hier keine Kritik üben, vielleicht ist das ja auch erst eine Anregung für PL 5.0.
Gruß BKGMX
Re: Neue Funktionen NumInputsEx und NumOutputsEx
Verfasst: Freitag 12. Februar 2010, 12:17
von abacom
"Die Funktionen werden im RUN-Modus permanent aufgerufen, ist das gewollt und sinnvoll ?"
- Nein, das muss ich mir anschauen. Darauf sollte man sich also nicht verlassen.
"beim Umschalten zwischen Schaltung und Frontplatte im Entwurfsmodus werden die Funktionen nicht aufgerufen, das schränkt die Funktionen unnötig ein"
- Die Funktionen machen nur beim Laden/Speichern, Kopieren/Einfügen und nach dem Konfigurationsdialog Sinn.
"beim löschen einer DLL aus der Schaltung fehlt mir der Aufruf ebenfalls, hier wäre eventuell eine function DeleteEx(PUser: PDLLParams): Byte; sehr hilfreich"
- Gelöscht ist gelöscht. Was soll da noch passieren?
Re: Neue Funktionen NumInputsEx und NumOutputsEx
Verfasst: Freitag 12. Februar 2010, 12:55
von abacom
Die Funktionen werden im RUN-Modus permanent aufgerufen, ist das gewollt und sinnvoll ?
So, jetzt bin ich schlauer. Die vermeintlichen Aufrufe kommen nicht aus ProfiLab, sondern aus der Counter-DLL selbst.
In dem Counter-Beispiel wird in der CALCULATE-Procedure für die Berechnung die Anzahl der Ausgänge benötigt:
Code: Alles auswählen
Procedure Calculate(PInput,POutput,PUser: PDLLParams); //called regularly from ProfiLab
var i: Integer;
NumBits: Integer;
MaxCount: Word;
begin
NumBits:=NumOutputsEx(PUser); ///////// DLL-Interner Aufruf ///////////
(...)
end;
Das kann man natürlich auf anders lösen.

Re: Neue Funktionen NumInputsEx und NumOutputsEx
Verfasst: Freitag 12. Februar 2010, 14:33
von BKGMX
Danke für die schnelle Antwort,
vielleicht habe ich mich zu kurz ausgedrückt.
zu Punkt 1:
ist also erledigt. NumBits:=NumOutputsEx..., das hatte ich inzwischen auch gesehen. Wer lesen kann, ist klar im Vorteil, also Sorry.
zu Punkt 2:
Beim Einfügen einer neuen DLL und anschließender Configuration ist alles ok. Der neue DLLIndex wird angezeigt.
Beim Kopieren/Einfügen bzw. Duplizieren wird NumOutputsEx in der neu eingefügten DLL nicht aufgerufen, der aktuelle DLLIndex bleibt bei 1 stehen, egal welche DLL ich dupliziere.
(Siehe Anhang, einfach mal die DLL duplizieren und die Ausgabe anschauen)
Ein neues graphisches Element kann ich dann also nicht auf der Frontplatte einfügen.
Kein DLLIndex -> welche Nummer soll das neue Bauteil bekommen?
zu Punkt 3:
Wird die DLL im Entwurfsmodus gelöscht, muß ja auch das zugehörige Bauteil auf der Frontplatte gelöscht werden. Keine Nachricht -> kein DLLIndex -> welches Bauteil soll ich dann löschen?
Re: Neue Funktionen NumInputsEx und NumOutputsEx
Verfasst: Freitag 12. Februar 2010, 15:01
von Mike D
zu Punkt 2 und 3:
evtl. auch zur Verwaltung von Indizierten Einträgen in eine Ini-Datei.
Mike
Re: Neue Funktionen NumInputsEx und NumOutputsEx
Verfasst: Freitag 12. Februar 2010, 15:50
von BKGMX
@Mike D
Ini-Datei ist schwierig, da ich ja DLLs im Entwurfsmodus löschen und hinzufügen kann und sich dadurch die Nummerierung der DLL ändert. Mit Namen versehen kann man sie ja nicht. Bei compilierten Dateien an Kunden sicher kein Problem, daß würde die Konfiguration erheblich erleichtern, da eventuell einfach nur die Ini-Datei getauscht werden muß.
Gruß BKGMX