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

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

Thema: Einstieg in Beckhoff ADS

  1. #1
    Registriert seit
    29.09.2010
    Beiträge
    14
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi Leute,

    also hier ein neuer Thread zu folgendem Thema.
    Ich möchte gerne meine Beckhoff CX5010-1111 von extern aus steuern können.
    Ich habe gelesen das geht über Visual Basic und .Net in Verbindung mit ADS. Hat da jemand ein Beispiel dafür um einen Taster aus der Kommandozeile zu betätigen. Das würde mir riesig helfen.
    Zitieren Zitieren Einstieg in Beckhoff ADS  

  2. #2
    Registriert seit
    19.05.2008
    Beiträge
    648
    Danke
    117
    Erhielt 136 Danke für 105 Beiträge

    Idee

    Sieh mal hier oder hier nach…

  3. #3
    entenhausen_dd ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    29.09.2010
    Beiträge
    14
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja,da habe ich mich schon schlau gemacht, aber wie schaut nun das Progamm aus um einen Taster anzusteueren. Das ganze soll dann über eine .exe ablaufen oder über die Kommandozeile

  4. #4
    Registriert seit
    22.07.2007
    Beiträge
    64
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    also wie die Implementrierung unter Visual Basic aussieht, kann ich dir nicht sagen. Ich programmiere nur in C++.
    Ich bilde in meinen C++-Programmen immer die Funktion einer SPS nach. D.h. ich lese zunächst das PAE ein (das sind eben irgendwelche Eingänge, Merker, usw.) Dann folgt die eigentliche Programmbearbeitung. Zum Schluss schreibe ich dann das PAA, gebe also die VKE's auf die Ausgänge oder Merker. Um das ganze unkompliziert hinzukriegen, habe ich die Funktionen für ADS, die es von Beckhoff ja gibt in eine Klasse verpackt. Diese Klasse (CEingabeausgabe) definiert für die Datentypen bool, int, float, und long folgende Methoden:
    - Zustand von der Hardware einlesen
    - Get- und Set-Methoden
    - Zustand auf Hardware ausgeben

    Man kann die Funktionen natürlich auch verwenden, ohne sie zusammen in eine Klasse zu verpacken. Das ist im folgenden Programm z.B. bei den Funktionen zum Öffnen und Schließen des ADS-Ports der Fall.

    Hier mal ein Beispielprogramm

    void main()
    {


    //Ether-CAT - Variablen
    long nErr, nPort;
    AmsAddr Addr;
    PAmsAddr pAddr = &Addr;

    //Benutzervariablen
    CEingabeausgabe Eingang00;
    CEingabeausgabe Eingang01;
    CEingabeausgabe Ausgang00;
    CEingabeausgabe Ausgang01;
    CEingabeausgabe Analogeingang1;
    CEingabeausgabe Analogausgang1;
    CEingabeausgabe Analogeingang2;
    CEingabeausgabe Analogausgang2;


    //Schleife, die das ständige Wiederholen des Programms sicherstellt
    while (1 == 1)
    {

    // Open communication port on the ADS router
    nPort = AdsPortOpen();
    nErr = AdsGetLocalAddress(pAddr);
    if (nErr) cerr << "Error: AdsGetLocalAddress: " << nErr << '\n';
    pAddr->port = AMSPORT_R0_PLC_RTS1;

    //PAE einlesen
    Eingang00.ADSEinganglesenbool(pAddr, 0xF021, 0x190, 0x1);
    Eingang01.ADSEinganglesenbool(pAddr, 0xF021, 0x191, 0x1);
    Analogeingang1.ADSEinganglesenint(pAddr, 0xF020, 0x64, 0x2);
    Analogeingang2.ADSEinganglesenint(pAddr, 0xF020, 0x66, 0x2);

    //Hier muss die Programmlogik hin!

    //PAA schreiben
    Ausgang00.ADSAusgangschreibenbool(pAddr, 0xF031, 0x194, 0x1, Ausgang00.Getboolwert() );
    Analogausgang1.ADSAusgangschreibenint(pAddr, 0xF030, 0x78, 0x2, Analogausgang1.Getintwert() );



    // Close the communication port
    nErr = AdsPortClose();
    if (nErr) cerr << "Error: AdsPortClose: " << nErr << '\n';



    }


  5. #5
    entenhausen_dd ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    29.09.2010
    Beiträge
    14
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Diesla Beitrag anzeigen
    Hallo,

    also wie die Implementrierung unter Visual Basic aussieht, kann ich dir nicht sagen. Ich programmiere nur in C++.
    Ich bilde in meinen C++-Programmen immer die Funktion einer SPS nach. D.h. ich lese zunächst das PAE ein (das sind eben irgendwelche Eingänge, Merker, usw.) Dann folgt die eigentliche Programmbearbeitung. Zum Schluss schreibe ich dann das PAA, gebe also die VKE's auf die Ausgänge oder Merker. Um das ganze unkompliziert hinzukriegen, habe ich die Funktionen für ADS, die es von Beckhoff ja gibt in eine Klasse verpackt. Diese Klasse (CEingabeausgabe) definiert für die Datentypen bool, int, float, und long folgende Methoden:
    - Zustand von der Hardware einlesen
    - Get- und Set-Methoden
    - Zustand auf Hardware ausgeben

    Man kann die Funktionen natürlich auch verwenden, ohne sie zusammen in eine Klasse zu verpacken. Das ist im folgenden Programm z.B. bei den Funktionen zum Öffnen und Schließen des ADS-Ports der Fall.

    Hier mal ein Beispielprogramm

    void main()
    {


    //Ether-CAT - Variablen
    long nErr, nPort;
    AmsAddr Addr;
    PAmsAddr pAddr = &Addr;

    //Benutzervariablen
    CEingabeausgabe Eingang00;
    CEingabeausgabe Eingang01;
    CEingabeausgabe Ausgang00;
    CEingabeausgabe Ausgang01;
    CEingabeausgabe Analogeingang1;
    CEingabeausgabe Analogausgang1;
    CEingabeausgabe Analogeingang2;
    CEingabeausgabe Analogausgang2;


    //Schleife, die das ständige Wiederholen des Programms sicherstellt
    while (1 == 1)
    {

    // Open communication port on the ADS router
    nPort = AdsPortOpen();
    nErr = AdsGetLocalAddress(pAddr);
    if (nErr) cerr << "Error: AdsGetLocalAddress: " << nErr << '\n';
    pAddr->port = AMSPORT_R0_PLC_RTS1;

    //PAE einlesen
    Eingang00.ADSEinganglesenbool(pAddr, 0xF021, 0x190, 0x1);
    Eingang01.ADSEinganglesenbool(pAddr, 0xF021, 0x191, 0x1);
    Analogeingang1.ADSEinganglesenint(pAddr, 0xF020, 0x64, 0x2);
    Analogeingang2.ADSEinganglesenint(pAddr, 0xF020, 0x66, 0x2);

    //Hier muss die Programmlogik hin!

    //PAA schreiben
    Ausgang00.ADSAusgangschreibenbool(pAddr, 0xF031, 0x194, 0x1, Ausgang00.Getboolwert() );
    Analogausgang1.ADSAusgangschreibenint(pAddr, 0xF030, 0x78, 0x2, Analogausgang1.Getintwert() );



    // Close the communication port
    nErr = AdsPortClose();
    if (nErr) cerr << "Error: AdsPortClose: " << nErr << '\n';



    }

    Hallo Diesla,

    kannst du mir für dein Beispielprojekt evtl. das ganze Visual Studio Projekt zukommen lassen. Das Problem, so viel Erfahrung habe ich noch nicht mit Visual Studio. Vielleicht hast du auch ein Beispielprojekt wo du über die Kommandozeile einen bestimmten Taster ansprichst den du dann aktivierst (das gleiche als wenn man auf einen Taster draufdrück und auch als Unterschied diesen mal lange betätigt)
    Danke dir

  6. #6
    Registriert seit
    22.07.2007
    Beiträge
    64
    Danke
    13
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    entschuldige bitte, habe die letzten Wochen nicht mehr in's Forum geschaut. Wenn's dir noch was nutzt, kann ich dir morgen, wenn ich wieder am richtigen Rechner bin was schicken.

  7. #7
    Registriert seit
    24.10.2010
    Beiträge
    52
    Danke
    0
    Erhielt 10 Danke für 9 Beiträge

    Standard

    Wenn du auf die Beckhoff-PLC mit einem Browser (Javascript) zugreifen willst, hätte ich auch was.
    Geändert von tom_x (06.11.2010 um 01:16 Uhr) Grund: Schreibschwäche

  8. #8
    entenhausen_dd ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    29.09.2010
    Beiträge
    14
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Leute,

    bin für jede Hilfe dankbar. Wenn jemand Beispiele für mich hat, nur her damit (evtl. auch ne kleine Hilfe wär net schlecht )
    Damit ihr den Hintergrund versteht:
    Möchte über Sprachsteuerung mein Licht steuern.
    Das heißt:
    Sprachsoftware auf Windows -> Befehlseingabe der Sprache gibt in Windows irgendein Kommando an die Beckhoff das z.B. das Licht einschaltet, dimmt, oder irgendwas.
    Sollte dies nur in Visual Basic gehen, dann wär mir ein Beispiel sehr recht. Eine kleine Hilfe noch dazu wie ich Visual Basic mit der Beckhoff verbinde wär auch net schlecht.

  9. #9
    Registriert seit
    23.08.2009
    Beiträge
    22
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    ich könnte noch ein paar Anfänger- Tips gebrauchen.

    Ich hab das Beispiel ADS mit JavaScript jetzt auf meinen CX zum Laufen gebracht.

    http://infosys.beckhoff.com/content/....html?id=10643

    Er kriegt die Verbindung hin und ruft Daten ab. Allerdings liegt die HTML Seite und die JavaScript - Datei momentan auf dem CX.

    Ich hatte die Hoffnung, dass ich die beiden Dateien bzw. später die gesamte Homepage auf meinem Datenserver im Netzwerk bereitstellen kann (QNAP TS 109). Von da aus will ich dann mit allen Rechnern im Netzwerk, Android - Handys und natürlich dem IPAD auf die Visualisierung surfen.

    Aber: Vom Datenserver ruft die Seite keine Daten ab. Ich bin davon ausgegangen, dass JavaScript Clientseitig arbeitet und der Datenserver für die Bereitstellung nichts können muss.

    Was mache ich falsch? Lässt sich das Problem lösen?

    Gruß

    Ingo
    Zitieren Zitieren Zugriff per JavaScript  

  10. #10
    Registriert seit
    24.10.2010
    Beiträge
    52
    Danke
    0
    Erhielt 10 Danke für 9 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Du machst nichts falsch, es ist sogar alles in bester Ordnung. Ich hab dir auf deine Frage im SPS@Home-Forum was geschrieben. Für Android und Ipad hätte ich auch noch einen Tipp. Du musst dich nur entscheiden, in welchem Forum es weiter gehen soll.

  11. Folgender Benutzer sagt Danke zu tom_x für den nützlichen Beitrag:

    Doofundstinkt (30.03.2011)

Ähnliche Themen

  1. .net Einstieg
    Von sailor im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 21.12.2010, 14:11
  2. Einstieg C#
    Von jensi-7910 im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 10.01.2010, 18:43
  3. Mikrocontroller Einstieg
    Von MRT im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 17.12.2009, 22:56
  4. SCL Einstieg
    Von Febo im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 19.10.2008, 11:18
  5. Einstieg in die FU Steuerungstechnik
    Von Garog im Forum Simatic
    Antworten: 20
    Letzter Beitrag: 26.01.2007, 13:45

Lesezeichen

Berechtigungen

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