Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: Maschienen steuern mit delphi

  1. #1
    Registriert seit
    22.05.2007
    Beiträge
    27
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ich bin noch ziemlich am anfang mit dem programmieren in delphi.
    hab mich bereits etwas eingearbeitet und ein paar kleine pogramme geschrieben.
    ich muss eine maschine mit delphi steuern mittel meines WebIO von W&T und stehe nur vor folgenden problemen:

    wie kann ich eine zyklische abarbeitung eines programms erreichen wie bei einer sps? denn angenommen ich starte ein programm für eine maschine zu steuern(also führe die .exe aus) nun wird der start-button gedrück und abjetzt soll die maschine ja vollständig alleine weiterarbeiten. angenommen mit dem klickereigniss des start-button setze ich einen ausgang, der den antrieb eines förderbandes einschaltet. an schließen, wenn ein sensor betätig wird, soll der antrieb wieder abgeschaltet werden. ich muss also ständig alle eingäge einsehen, dass auf änderungen reagiert werden kann. und angenommen ich schriebe sinngemäß folgendes program(implementationsteil):

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    ClientSocket1.Socket1.SendText(GET /outputaccess0?PW=&Status=ON&)
    // setzt ausgang0 des WebIO

    ClientSocket1.Socket.SendText(GET /input3?PW=&) // ließt dem zustand von eingang 3 ein

    if ClientSocket1.Socket.ReciveText='input3;ON' // dies bedingung wird erfüllt, wenn das WebIO den Text 'input3;ON' zurückliefert, also eingang3 ein 1-signal hat

    then
    ClientSocket1.Socket1.SendText(GET /outputaccess0?PW=&Status=OFF&)
    // setzt den Ausgang0 des WebIO zurück

    end;

    nun wird also beim betätigen des start-button(button1) der ausgang 0 gesetzt. nun aber das programm wird ja dann sofort weiter abgearbeitet. und es dauert ja noch, bis das band den sensor betätigt und der eingang3 ein 1-signal erhält.

    das förderband würde so nicht mehr zum stehen kommen, weil die eingänge nicht städing abgefragt werden und auch nicht drauf reagiert wird.

    liegt ich überhaupt richtig mit der annahme, das eine programm beim starten der .exe einmal ausgeführt wird und wenn dieses beendet ist, geschieht solange nichts mehr, bis ein button oder ein timer eine procedure oder function "startet" ?

    kann man irgendwie herrausfinden, wie lange die bearbeitungszeit einer bestimmten procedure ist?

    ich hoffe man kann verstehen worauf ich hinnaus möchte und hoffe das mir jemand weiterhelfen kann. danke
    Zitieren Zitieren Maschienen steuern mit delphi  

  2. #2
    Registriert seit
    07.07.2004
    Beiträge
    3.285
    Danke
    38
    Erhielt 584 Danke für 382 Beiträge

    Standard

    Hallo,

    Zitat Zitat von tycomatze
    wie kann ich eine zyklische abarbeitung eines programms erreichen wie bei einer sps?
    Überhaupt nicht, ein Windows Rechner mit einer Delphi-Applikation kann keine SPS ersetzen. Man kann zwar mit einer Delphi-Applkation eine Maschine bedienen und visualisieren (also z.B. Förderbänder, Antriebe, Ventile etc. ein/ausschalten), aber die logischen Steuerungsfunktionen (wie z.B. Ausschalten der Antriebe bei Endlage) überlasse bitte einer untergeordneten SPS ....
    Den Notaus machst Du dann auch über das Web, oder

    Zitat Zitat von tycomatze
    ich hoffe man kann verstehen worauf ich hinnaus möchte und hoffe das mir jemand weiterhelfen kann
    Ja, das habe ich verstanden. Lass bloss die Finger davon, oder Du wirst in die Geschichte eingehen als gnadenloser Terminator für Maschinen und Anlagenbediener. Andererseits eine gute Chance, sehr berühmt zu werden

    Zitat Zitat von tycomatze
    wie lange die bearbeitungszeit einer bestimmten procedure ist?
    Ja, google mal nach dem Delphi Profiler von Hrn. Adolphs.

    Und dann google mal danach : "Real time Betriebssystem". In einer Applikation unter Windows ist leider nicht ganz vorhersehbar, ob die Abfrage z.B. eines Endschalters in 10ms oder erst in 5 Sec. erfolgt. Was Du da vorhast, nenne ich mal "Kamikaze-Programmierung"..., also vergess es lieber.

    Gruß

    Question_mark
    ''Ich habe wirklich keine Vorurteile.
    Meine Meinung ist nur die Summe der Erfahrungen" ... (Question_mark)

  3. #3
    tycomatze ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.05.2007
    Beiträge
    27
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    nunja, es ist eigentlich nicht so, dass ich das so vorhabe, sondern dass ich mehr oder weniger den auftrag dazu habe.
    den notaus müsste man so oder so hardwaremäßig ausführen.
    aber trotzdem danke

  4. #4
    Registriert seit
    07.07.2004
    Beiträge
    3.285
    Danke
    38
    Erhielt 584 Danke für 382 Beiträge

    Böse

    Hallo,

    Zitat Zitat von tycomatze
    sondern dass ich mehr oder weniger den auftrag dazu habe
    Mein Beileid, aber handelt es sich bei dem "Auftrag" um ein reales Projekt oder ist das eher eine Schulaufgabe

    Im ersteren Fall darf sich der Auftraggeber einen anderen Programmierer suchen (ich wohne und lebe recht komfortabel und angenehm und habe daher keine Lust, einige Jahre in einer JVA zu vollbringen), im anderen Fall ..., naja.

    In beiden Fällen hat der Auftraggeber nicht alle Latten am Zaun, um solche schwachsinnigen Vorgaben zu machen
    Nochmal : Finger weg davon ...

    Gruß

    Question_mark
    ''Ich habe wirklich keine Vorurteile.
    Meine Meinung ist nur die Summe der Erfahrungen" ... (Question_mark)
    Zitieren Zitieren Was für eine Aufgabe ...  

  5. #5
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.224
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Ich schließ mich qm erstmal an, die ganze Sache ist mit äußerster Vorsicht zu genießen.
    Aber angenommen, es soll zur Demonstration, zum Test oder zur Schulung dienen. Dein Programm muß auf jeden Fall die Eingänge ständig abfragen, die Ausgänge schreiben, also pollen. Dazu würde sich ein eigener Thread wohl kaum umgehen lassen, sonst wird das Programm an sich schlecht zu bedienen sein. Es muß dann immer der vorhergehende mit dem gerade eingelesenen Zustand verglichen werden und, so sich etwas geändert hat, entsprechend reagiert werden. Auch dazu käme ein weiterer Thread in Frage, hier wird das sichere Handeln der einzelnen Threads (main-programm, pollen, logic) schon nicht einfach sein. Echtzeit kann man ohenhin nicht erreichen, dazu benötigt Windows extra Systemzusätze, sie gibts nicht kostenlos und sind sicher áuch nicht mal so ebend eingebunden.

    Billiger, sicherer, schneller, ... wäre es garantiert z.Bsp. Twincat auf dem Rechner zu installieren, die SPS die Logic machen zu lassen und, wenns denn sein soll, mit Delphi die Bedienoberfläche und Datenerfassung zu programmieren.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  6. #6
    Registriert seit
    19.09.2005
    Ort
    Freudenstadt
    Beiträge
    811
    Danke
    64
    Erhielt 101 Danke für 64 Beiträge

    Standard

    Zitat Zitat von Question_mark Beitrag anzeigen
    Überhaupt nicht, ein Windows Rechner mit einer Delphi-Applikation kann keine SPS ersetzen.
    Auf die Gefahr hin, daß Du mich jetzt gleich verbal erschlägst: Es kommt dabei immer darauf an, was man unter einer Maschine versteht. Bei meinem Ex-AG habe ich sowas schon gemacht, das was da aber schon als "Maschine" bezeichnet wurde, bestand gerade mal aus ein paar kleinen Pneumatikzylindern, die man mit dem kleinen Finger anhalten konnte, und einem Schrittmotor, der auch kaum die Wurst vom Butterbrot gezogen hat, an ein Schnitzel vom Teller war gar nicht zu denken.
    Die Hauptaufgabe von dem Konstrukt lag auch vorrangig bei der Meßtechnik.

    Bei solch einer gewaltigen Maschine, bei der auch jegliche Sicherheitstechnik überflüssiger Luxus wäre, kann man es dann schon mal wagen, auf eine SPS zu verzichten. In allen anderen Fällen stimme ich Dir hingegen vollständig zu.


    Gruß Axel
    Man muß sparn wo mn knn!

  7. #7
    Registriert seit
    19.09.2005
    Ort
    Freudenstadt
    Beiträge
    811
    Danke
    64
    Erhielt 101 Danke für 64 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Dein Programm muß auf jeden Fall die Eingänge ständig abfragen, die Ausgänge schreiben, also pollen. Dazu würde sich ein eigener Thread wohl kaum umgehen lassen, sonst wird das Programm an sich schlecht zu bedienen sein. Es muß dann immer der vorhergehende mit dem gerade eingelesenen Zustand verglichen werden und, so sich etwas geändert hat, entsprechend reagiert werden. Auch dazu käme ein weiterer Thread in Frage, hier wird das sichere Handeln der einzelnen Threads (main-programm, pollen, logic) schon nicht einfach sein.
    Mach's doch einem Delphi-Anfänger nicht so schwer, schließlich handelt es sich wohl um ein Azubi-Projekt.

    Im einfachsten Fall kann man eine Timer-Komponente nehmen, und je nach Komplexität einfach alles in deren Event ausprogrammieren (Eingänge auslesen, Schrittkette mit Schrittmerkern in globalen Variablen realisieren, boolsche Verknüpfungen in Pascal umsetzen). Für ein Schulprojekt sollte das eigentlich reichen, und zum Sinn bzw. Unsinn von so einem Projekt hat QM eigentlich schon alles gesagt ...


    Gruß Axel
    Man muß sparn wo mn knn!

  8. #8
    tycomatze ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    22.05.2007
    Beiträge
    27
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    es handelt sich hier bei um ein reales projekt.
    ich hätte vielleicht dazu sagen sollen, dass es sich bei der "Maschine" um nichts großartiges handelt.
    sie wird wahrscheinlich ein förderband haben, das 4 verschiedene postionen anfahren soll und einen türkontaktschalter sowie 4 zylinder mit endlagenabfrage. noch ein paar sensoren, das wars.
    sicherheitstechnische aspekte können auf grund der größe eigentlich vernachlässigt werden.
    das ganze in eine timerkomponete zu programmieren hab bereits versucht. nur bekomm ich da eben schon ne ziemlich lange procedure zusammen, wodruch ich die timerinterval ziemlich hoch setzen müsste, und somit die reaktion auf eingangsänderungen sehr langsam ist oder erst gar nicht zustande kommt.

    liebend gern würde ich eine sps benutzen, 10 minuten und die sache hätte sich erledigt...

    was genau versteht ihr unter einem Thread? wie gesagt, ich bin noch ganz am anfang

  9. #9
    Registriert seit
    19.09.2005
    Ort
    Freudenstadt
    Beiträge
    811
    Danke
    64
    Erhielt 101 Danke für 64 Beiträge

    Standard

    Zitat Zitat von tycomatze Beitrag anzeigen
    sicherheitstechnische aspekte können auf grund der größe eigentlich vernachlässigt werden.
    Ob Sicherheitstechnik benötigt wird, hat mit der Größe der Maschine überhaupt nichts zu tun. Größe zählt bei anderen Dingen, z.B. bei Kugelschreibern ...

    Wenn von der Maschine eine Gefährdung ausgeht (z.B. Quetschgefahr durch die Zylinder), dann muß die durch den Einsatz der entsprechenden Sicherheistechnik eingedämmt werden !


    Zitat Zitat von tycomatze Beitrag anzeigen
    das ganze in eine timerkomponete zu programmieren hab bereits versucht. nur bekomm ich da eben schon ne ziemlich lange procedure zusammen, wodruch ich die timerinterval ziemlich hoch setzen müsste, und somit die reaktion auf eingangsänderungen sehr langsam ist oder erst gar nicht zustande kommt.
    Das Problem wird wohl vermutlich darin liegen, daß das Einlesen der Eingänge von der WebIO einige Zeit in Anspruch nimmt, das macht dein Programm bestimmt so langsam. An der Verknüpfungslogik dürfte das bei der heutigen Rechnerleistung und so einer einfachen Aufgabe IMHO nicht liegen. Der langsame Zugriff auf die WebIO bleibt Dir beim Einsatz von Threads aber erhalten, das dürfte Dein Problem also wohl kaum lösen.

    Bau Dir doch einfach mal ein paar Debug-Meldungen mit Zeitstempel in Deine Procedure ein (such mal in der Hilfe nach OutputDebugString), ggf. hilft Dir das schon weiter bei der Suche nach dem Performance-Killer.


    Gruß Axel
    Man muß sparn wo mn knn!

  10. #10
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo tycomatze,

    also mein Beileid hast du auch. Theoretisch ist es möglich mit Delphi Real-Time zu machen - der Aufwand steht jedoch in keinem Verhältnis zum Nutzen, für einen Delphi-Anfänger schon zweimal nicht.
    Mache deinem Arbeitgeber klar, dass du in Delphi für diese Vorgehensweise minimum ein Halbes Jahr brauchst. Mit der SPS jedoch wenige Tage oder Stunden, Minuten, je nach Geschick!
    Der Weg z.B. mit TwinCat und einem BK ist ja ansich auch ne "günstige" Lösung.

    hth
    kiestumpe

Ähnliche Themen

  1. Delphi 7
    Von enter im Forum Hochsprachen - OPC
    Antworten: 5
    Letzter Beitrag: 21.05.2007, 06:34
  2. Delphi - S7 300 - MPI
    Von gogl im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 13.06.2006, 10:50
  3. Aufstellung von Maschienen mit Schltschrank
    Von Balou im Forum Schaltschrankbau
    Antworten: 7
    Letzter Beitrag: 03.01.2005, 13:38
  4. Delphi und SPS
    Von sfc46 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 08.12.2004, 10:32
  5. Delphi ==> S7-300
    Von Anonymous im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 08.12.2003, 15:12

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •