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

Ergebnis 1 bis 10 von 10

Thema: Einfaches Schalten der S7-300 via Ptp und PC

  1. #1
    Registriert seit
    21.05.2007
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi,

    habe hier eine S7-314C-2 Ptp. ich möchte mit meiner Software per Ptp Verbindung einen Ascii String senden der mir dann die Ausgänge ein bzw. wieder ausschaltet..

    Wie kann ich das Softwareseitig bewerkstelligen..

    Danke
    Zitieren Zitieren Einfaches Schalten der S7-300 via Ptp und PC  

  2. #2
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Zitat Zitat von ChrisC. Beitrag anzeigen
    Hi,

    habe hier eine S7-314C-2 Ptp. ich möchte mit meiner Software per Ptp Verbindung einen Ascii String senden der mir dann die Ausgänge ein bzw. wieder ausschaltet..

    Wie kann ich das Softwareseitig bewerkstelligen..

    Danke
    Ja Du musst eben auf der SPS-Seite die Strings empfangen und dem entsprechend auswerten.
    Alle nötigen Bausteine sind vorhanden aber es ist schon etwas arbeit.

    Steht Dir SCL zur Verfügung?
    If you open your Mind too much, your Brain will fall out.

  3. #3
    ChrisC. ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.05.2007
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von zotos Beitrag anzeigen
    Ja Du musst eben auf der SPS-Seite die Strings empfangen und dem entsprechend auswerten.
    Alle nötigen Bausteine sind vorhanden aber es ist schon etwas arbeit.

    Steht Dir SCL zur Verfügung?
    Was ist SCL..

    Gibt es da keinen fertigen Beispielprojekte?


    Grüße

  4. #4
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Zitat Zitat von ChrisC. Beitrag anzeigen
    Was ist SCL..
    http://www.automation.siemens.com/si...are-s7-scl.htm

    Zitat Zitat von ChrisC. Beitrag anzeigen
    Gibt es da keinen fertigen Beispielprojekte?
    ...
    Mir nicht bekannt.

    Für Geld bekommt man so ein Programm aber auch vom Programmierer Ihres Vertrauens ;o)
    If you open your Mind too much, your Brain will fall out.

  5. #5
    Registriert seit
    16.07.2004
    Beiträge
    42
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Moin
    wenn du die Kommunikation (eifachstenfalls anhand Siemens Beispielprojekt zur CPU314C-P2P) hinbekommst dann gehts ganz einfach. Die Telegramme sollten am Anfang maximal Doppelwortlänge haben, dann meinetwegen das DW von der Schnittstelle lesen in den Speicher transferieren und vergleichen. Wenn DW 5678 == 'SIMA' denn A124.0 = 1.
    Kannst natürlich auch ganze ABs, AWs oder ADs setzen - DW5678 == AW124.
    Problem ist die Zeichen über die Schnittstelle einzufangen, ich erinnere mich gerne daran als das bei meiner 314C-PTP entlich klappte ....

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.402 Danke für 2.001 Beiträge

    Standard

    Hallo,
    was willst du denn wohin schicken ?
    Also : Welchen String-Inhalt an welche SPS-Adresse ?
    Auf welche Inhalte soll der String verglichen werden ?

  7. #7
    Registriert seit
    16.07.2004
    Beiträge
    42
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also : Welchen String-Inhalt an welche SPS-Adresse ?
    PTP --- das ist per Kabel direkt verbunden, Adresse brauchtst da keine !

    Der String (wenn ASCII) -Inhalt, oder das Byte (wenn binär) kannste dir selber ausdenken und darauf muß auch verglichen werden. Wenn Du festlegts 'EIN1' ist 124.1 == ON denn vergleicht man halt eben ob das eintreffende (und der Schnittstelle 'entlockte') 'Telegramm' 'EIN1' lautet.
    Kommt 'AUS1' an denn vergleicht halt auf 124.1 == OFF.
    Das ist der einfachste Weg - besser gehts immer, funktioniert aber ersteinmal. Geht übrigens als 'PtP-BUS' auch eine Adresse mit einzubauen. Stootert dann aber ziemlich und ist alles andere als sicher weil alle Meldungen in voller Länge überall ausgewertet werden

  8. #8
    Registriert seit
    16.07.2004
    Beiträge
    42
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Moin
    kurzer Suche, langer Sinn: ich fand was anno 2002.
    Lies es durchlaufen und ging. Leider verschob sich dann beim kopieren des Bsp.-Codes von einem auf de anderen PC die Stellung im Quelltext etwas. Sollte aber ungefähr hinkommen. Zugehöriges Simatic Beispiel ist als zDT26_01_TF____ 31xC_PtP benannt. Ca. von 2002 - Hardwarekonfig der 314C-2PtP ist AB1023 == PtP Schnittstelle; onboard Ein/Ausgänge xB124; ASCI Konfig und Vollduplex mit 38400 (zumindest Vollduplex das höchste ....). Die vollständigen Bausteine sind im Beispiel alle angelegt - das muß natürlich vollständig sein. Die PtP ist natürlich reines RS485 nach Bauanleitung zu belegen !
    /*******************Kommentar only Anfang
    Begin OB1
    Beispiel S7300C
    ASCII Send Recv
    Komponenten:
    OB 1 Zyklus OB
    OB 100 Anlauf OB
    FC 21 FC fuer SEND
    FC 22 FC fuer RECV

    DB 40 Arbeits-DB fuer SEND
    DB 41 Arbeits-DB fuer RECV
    DB 42 Quell-DB for SEND
    DB 43 Ziel -DB for RECV

    DB 21 Instanz-DB fuer SEND
    DB 22 Instanz-DB fuer RECV
    ****************** Kommentar Ende *********/
    // Spielt von hier keine Rolle
    // UN M 30.7
    // SPB ERNA
    //L DB43.DBD 0
    // L DW#16#53494D41
    // ==D
    // = A 124.0
    // Spielt bis hier keine Rolle weis jezz auch nich was das war


    // UC "SEND" //Aufruf des FC zum Bearbeiten des Sende-Auftrags
    U M 30.7
    = A 124.7
    U A 124.7
    CC "RECV" //Aufruf des FC zum Bearbeiten des Empfangs-Auftrags
    ===========================================================
    Begin FC22
    // -------------------------------
    // Pruefen "Empfang mit Fehler"
    // -------------------------------
    CHER: UN "RECV WORK DB".RCV_ERROR //pruefen RECV_ERROR
    BEB //falls kein Fehler aufgetreten, Baustein beenden
    // -------------------------------
    // "Empfang mit Fehler"
    // -------------------------------
    L "RECV WORK DB".RCV_WORK_COUNTER_ERR // "Durchlauf mit Fehler"
    + 1 //inkrementieren des Zaehlers
    T "RECV WORK DB".RCV_WORK_COUNTER_ERR

    L 1023 //LADDR
    T "RECV WORK DB".RCV_WORK_LADDR
    L W#16#1002 //Typ BYTE
    T LW 0
    L 43 //DB_NO
    T "RECV WORK DB".RCV_WORK_DB_NO
    T LW 4
    L 0 //DBB_NO
    T "RECV WORK DB".RCV_WORK_DBB_NO
    SLD 3
    OD DW#16#84000000
    T LD 6
    // ------------------------
    // Freigabe des Empfangs
    // ------------------------
    SET
    = "RECV WORK DB".RCV_EN_R //RECV mit RECV_EN_R=TRUE
    // ------------------------
    // RECV mit Instanz-DB
    // -------------------------
    CALL "RCV_PTP" , "RECV IDB"
    EN_R :="RECV WORK DB".RCV_EN_R
    R :=
    LADDR :="RECV WORK DB".RCV_WORK_LADDR
    NDR :="RECV WORK DB".RCV_NDR
    ERROR :="RECV WORK DB".RCV_ERROR
    STATUS:="RECV WORK DB".RCV_WORK_STATUS
    RD_1 :=#ZIEL_ZEIGER
    LEN :="RECV WORK DB".RCV_WORK_LEN
    // -------------------------------
    // Pruefen von RECV_NDR ("Empfang ohne Fehler")
    // -------------------------------------------
    UN "RECV WORK DB".RCV_NDR //pruefen von RECV_NDR
    SPB CHER //falls RECV_NDR gleich FALSE, springe nach CHER
    //und pruefen von RECV_ERROR
    // -------------------------------
    // RECV_NDR = 1 ("Empfang ohne Fehler")
    // ------------------------------------------
    L "RECV WORK DB".RCV_WORK_COUNTER_OK //"Empfang ohne Fehler"
    + 1 //inkrementieren des Zaehlers
    T "RECV WORK DB".RCV_WORK_COUNTER_OK
    L "RECV WORK DB".RCV_WORK_LEN //sichern der Empfangs-Laenge
    T "RECV WORK DB".RCV_WORK_SAVE_LEN
    //ichb (von hier setzte ichs ins Beispiel ein
    L DB43.DBD 0
    L 'SIMA'
    ==D
    = A 124.0
    U A 124.0
    S A 125.0
    L DB43.DBD 0
    L 'OTTO'
    ==D
    R A 125.0
    //iche bis hier ins Beispiel eingesetzt )
    // ----------------------------
    // Sichern "RECV_STATUS"
    // ----------------------------
    L "RECV WORK DB".RCV_WORK_STATUS
    T "RECV WORK DB".RCV_WORK_STATUS_SAV //sichern des STATUS
    BE

  9. #9
    ChrisC. ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.05.2007
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für deine Hilfe..

    Wo finde ich dieses Projekt bzw. kann ich diesen Text einfach importieren?

    Danke

  10. #10
    ChrisC. ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.05.2007
    Beiträge
    4
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hat sich soweit erledigt! Das Programm habe ich direkt von Siemens bekommen.

    Jetzt zum neuen Problem. Ich möchte ja via Hyperterminal Zeichen zur SPS schicken diese intern vergleichen lassen um dann entsprechend die Ausgänge zu schalten. Das oben genannte Programm habe ich 1:1 übernommen für deinen extraeintrag zum Vergleichen. Angebunden ist die SPS an den Rechner via RS422.
    Öffne ich Hyperterminal Empfange ich dauerhaft wirres Zeug von der SPS.

    Was kann das sein? evtl. falsche Schnittstellenparameter?

    Danke

    --------------------------------------------------------------------
    Quell-DBs zum Beispiel Send Recv Byte 0384 bis 0511
    --- Ende Block 4!~~Fuenfter Block des Quell-DBs zum Beispiel Send Rec
    v Byte 0512 bis 0639 --- Ende Block 5!~~Se
    chster Block des Quell-DBs zum Beispiel Send Recv Byte 0640 bis 0767
    --- Ende Block 6!~~Siebter Block des Quell-DBs zum B
    eispiel Send Recv Byte 0768 bis 0895 --- E
    nde Block 7!~~Achter Block des Quell-DBs zum Beispiel Send Recv Byte 0896 b
    is 1021 --- Ende Block 8!?6Ù*ppErster Blo
    ck des Quell-DBs zum Beispiel Send Recv Byte 0000 bis 0127 ---
    Ende Block 1!~~Zweiter Block des Quell-DBs zum Beispiel Send Recv Byt
    e 0128 bis 0255 --- Ende Block 2!~~Dritter B
    lock des Quell-DBs zum Beispiel Send Recv Byte 0256 bis 0383
    --- Ende Block 3!~~Vierter Block des Quell-DBs zum Beispiel
    Send Recv Byte 0384 bis 0511 --- Ende Bloc
    k 4!~~Fuenfter Block des Quell-DBs zum Beispiel Send Recv Byte 0512 bis 0639
    --- Ende Block 5!~~Sechster Block des Quell-D
    --------------------------------------------------------------------------

Ähnliche Themen

  1. Sinamic, einfaches Programm
    Von Servernexus im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 26.05.2011, 16:27
  2. Einfaches SPS Programm erstellen
    Von KeinPlan im Forum Programmierstrategien
    Antworten: 9
    Letzter Beitrag: 13.06.2010, 14:07
  3. [S] einfaches Beispiel SCL
    Von kevi66 im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 18.04.2010, 19:34
  4. Suche einfaches Textdisplay
    Von ToBo im Forum HMI
    Antworten: 8
    Letzter Beitrag: 19.06.2008, 05:30
  5. einfaches AWL Programm
    Von beo im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 14.02.2008, 17:13

Lesezeichen

Berechtigungen

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