easyFish

ftComputing : Programme für die fischertechnik-Interfaces und -konstruktionskästen
  
ftComputing.de
Home
Back
Sitemap
Index
Links
Impressum
Mail
leer.gif (810 Byte)

easyFish für Delphi

easyFish Delphi4 Programmierumgebungist eine offene in Delphi4 geschriebene Programmierumgebung für Delphi4 und die fischertechnik-Interfaces. Gedacht für Programmieranfänger oder Umsteiger von TurboPascal, die noch mit den Feinheiten von Delphi und ObjectPascal zu kämpfen haben. Deswegen eine weitgehend komplette Umgebung, die einen Großteil der Arbeit übernimmt. Für den Anwendungsprogrammierer bleibt bleibt eine einzelne (als Beispiel vorliegende) Unit, die entsprechend den Modellanforderungen modifiziert oder umgeschrieben werden muß. Das erstellte Programm läuft immer im Rahmen der nebenstehenden Form ab, die Texte können dabei einfach geändert werden.

easyFish besteht aus folgenden Komponenten fisch.gif (1718 Byte):

  1. easyMain : der oben abgebildeten Form, die den gesamten Programmablauf steuert.
    Auswahl und Öffnen der Schnittstelle (COM1 - 9, LPT1 - 3 und LPT für WinNT) über eine KomboBox. Die Status des Interfaces wird im"LED" daneben angezeigt. Das Größe Feld bildet das InterfacePanel, das den Zustand der Ein- und Ausgänge des Interfaces anzeigt, die Motorausgänge können per MausKlick geschaltet werden (Strg+L oder Strg+R Dauer, sonst nur bei MouseDown). Im blauen Feld können Statusausgaben der ablaufenden Anwendung gemacht werden, die Werte-Felder können von der Anwendung zugegriffen werden. Über START kann die Anwendung gestartet werden und während des Ablaufs mit HALT wieder angehalten werden.
  2. easyRun : eine einfache Delphi4 Unit, die das eigentliche Anwendungsprogramm aufnimmt. easyRun hat ein einfaches feststehendes Format, das man durch einfaches Kopieren übernehmen kann :
    • const für die Beschriftung von easyMain.
    • const zur Bezeichnung der Ein- und Ausgänge.
    • var für die gesamte Anwendung
    • procedure fishMain, das Hauptprogramm, das über den START-Button von easyMain gestartet wird. In fishMain können die Routinen von umFishEx zur Steuerung des Interfaces verwendet werden.
    • beliebige weitere Delphi procedures und functions (die ebenfalls umFishEx-Routinen verwenden können
    • wert := Werte(Nr); zur Übernahme von numerischen Werten aus den Werte-Feldern von easyMain.
    • printStatus('text'); Schreiben von Statusmeldungen in das Status-Feld von easyMain.
  3. umFishEx im Zusammenspiel mit umFish.DLL enthalten die Funktionen zu Steuerung des Interfaces :
    • [inputstatus :=] ftiGetInputs;
      Abfrage aller Digitaleingänge.
    • boolean := ftiGetInput(InputNr);
      Abfrage eines bestimmten Digital(E)Einganges
    • wert := ftiGetAnalog(AnalogNr);
      Abfrage eines Analogeinganges
    • [inputstatus :=] ftiSetMotors(MotorStatus);
      Setzen aller Digitalausgänge gleichzeitig.
    • [inputstatus :=]  ftiSetMotor(MotorNr, Richtung);
      Setzen eines bestimmten Digital(M)Ausganges
      ZB. Schalten von Motoren (Links, Rechts, Aus) oder Lampen/Magneten (An/Aus).
    • [inputstatus :=] ftiClearMotors;
      Löschen aller Digitalausgänge gleichzeitig.
    • [inputstatus :=] ftiSetLamp(LampNr, OnOff);
      Setzen eines "halben" Digitalausganges (ein M-Pol und Masse)
      ZB. zum Schalten von bis zu acht Lampen oder Magneten an einem Interface.
    • [inputstatus :=] ftiWaitForInput(InputNr [, OnOff]);
      Warten auf das Schließen (OnOff = true) eines bestimmten Digitaleinganges oder sein Öffnen
      ZB. Erreichen oder Verlassen eines Taster, aber auch Unterbrechen einer Lichtschranke.
    • [inputstatus :=] ftiWaitForChange(InputNr, NrOfChanges, TermInput);
      Warten auf eine bestimmte Zahl von Wechseln (NrOfChanges) eines Digitalausganges (InputNr) oder auf das Schließen des Digitalausganges TermInput (Endschalter).
      ZB Messen einer Fahrstrecke durch ein Impusrädchen/Taster auf der Motorwelle
    • [inputstatus :=] ftiWaitForLow(InputNr);
      Warten auf das Schließen/Öffnen eines Digitalausganges
      zB : Überfahren eines Tasters.
    • ftiWaitForTime(mSek);
      Warten für eine bestimmte Zeit (Millisekunden).
    • boolean := ftiFinish(InputNr); Warten auf einen Ende-Wunsch (ftiNotHalt, Escape-Taste, Eingang = true).

      inputstatus ist wahlweise anzugeben, es enthält des aktuellen Status aller Digitaleingänge oder einen Fehlercode (ftiFehler).

    Alles was man zum Starten braucht ist in delphiFish20Setup.EXE enthalten (und natürlich jede Menge fischertechnik und Delphi4 (mit Delphi5 wirds wohl auch gehen, ich habs nicht getestet)). Es reicht, die enthaltenen Dateien in ein neues Verzeichnis zu entpacken (easyRun.PAS vorsichtshalber kopieren) und Delphi starten.