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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: S7 Neuling - etwas frustriert

  1. #11
    augenstern ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.11.2007
    Beiträge
    17
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Unglücklich


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich versuche erfolglos eine inbound TCP-Verbindung aufzubauen und Daten zu lesen.

    Die Daten kommen als structuren von 20 Bytes.

    Das externe (PC) Programm schafft es die Verbindung aufzubauen, schreibt 20 Bytes Daten.

    Der AG_RECV liefert aber bereits nach 10 Bytes DONE als TRUE zurück.
    LEN wird dann auch mit 10 geliefert, ERROR = FALSE.

    Im DB123 stehen aber keinerlei Daten drin.

    Kann mir bitte jemand sagen, was ich da falsch mache?





    TYPE AnyPointer
    STRUCT
    id : BYTE;
    typ : BYTE;
    count : INT;
    db_nummer : INT;
    speicherbereich : DWORD;
    END_STRUCT;
    END_TYPE

    //
    //-------------------------------------------
    //

    DATA_BLOCK Glob
    STRUCT
    tcp_rx_fsm : STRUCT
    myany : AnyPointer;
    bDone : BOOL;
    bError : BOOL;
    wStatus : WORD;
    iLen : INT;
    END_STRUCT;
    END_DATA_BLOCK
    //
    //-------------------------------------------
    //


    //--- Datenblock für RX
    DATA_BLOCK DB123
    STRUCT
    data : ARRAY[0..500] OF BYTE;
    END_STRUCT
    BEGIN
    END_DATA_BLOCK





    Glob.tcp_rx_fsm.myany.id := b#16#10;
    Glob.tcp_rx_fsm.myany.typ := b#16#02;
    Glob.tcp_rx_fsm.myany.count := 20;
    Glob.tcp_rx_fsm.myany.db_nummer := 123;
    Glob.tcp_rx_fsm.myany.speicherbereich := dw#16#84000000;

    AG_RECV ( ID:= 2,
    LADDR := W#16#0100,
    RECV := Glob.tcp_rx_fsm.myany,
    NDR := Glob.tcp_rx_fsm.bDone,
    ERROR := Glob.tcp_rx_fsm.bError,
    STATUS := Glob.tcp_rx_fsm.wStatus,
    LEN := Glob.tcp_rx_fsm.iLen
    );

  2. #12
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Hallo,
    ich sehe in deinem Beispiel nicht wie der ANY-Pointer zustande kommt. Ich denke, der Schlüssel liegt im AT-Befehl. Kannst du die Zuweisung für :
    Code:
    Glob.tcp_rx_fsm.myany.id 
    Glob.tcp_rx_fsm.myany.typ  
    Glob.tcp_rx_fsm.myany.count 
    Glob.tcp_rx_fsm.myany.db_nummer 
    Glob.tcp_rx_fsm.myany.speicherbereich
    nach
    Code:
    Glob.tcp_rx_fsm.myany
    hier mal hereinstellen - nur mal spasseshalber ...

    Gruß
    LL

  3. #13
    augenstern ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.11.2007
    Beiträge
    17
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Rotes Gesicht

    Oh weh, Larry!!

    Du hast mir den entscheidenden Tipp gegeben!!

    Ich bin wohl noch zu sehr auf C ausgerichtet:

    Diese Anypointer MUSS man per AT zuweisen. An die AG_RECV wird dann tatsächlich ein pointer auf die gefüllte struct und nicht die struct übergeben (das war mein Fehler).

    Danke, danke, danke!

    Zitieren Zitieren Hallo LL!  

  4. #14
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    ... immer gerne ...
    dafür ist das Forum doch da ... oder ?

  5. #15
    augenstern ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.11.2007
    Beiträge
    17
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Frage

    Hallo an alle,

    ich will keinen neuen Thread aufmachen.

    Eine generella Frage zur "Portierbarkeit" von Programmen.

    Ich entwickle mit einer Siemens 314er CPU.

    Unser Kunde setzt eine Vipa ein (Typ kenn ich nicht).
    Gestern hatte ich Gelegenheit mit einem anderen Vipa-Programmierer zu unterhalten (bei einem Kunden).
    Der hat mir gesagt, dass die TCP-Kommunikations-Bausteine AG_SEND/AG_RECEIVE bei Vipa SFCxxx Bausteine seien. Kann das sein?

    Inwieweit sind die Vipa-SPSen kompatibel zu denen von Siemens?

    Bei S7 muß ich die entsprechenden Bausteine ja in mein Projekt reinholen, (Vipa-) SFCs sind ja aber doch schon im ROM.

    Ebenfalls: läuft der AWL-Code, den mein Compiler produziert anstandslos auf Vipa? (Ich brauch u.a. z.B. den SFC64 TIME_TCK(), über den ich hier schon manch schlechtes gelesen habe...)


    Für mich stellt sich hier auch die Frage: wie entwickelt man mit der Siemens-Umgebung so, dass der Code auch bei anderen SPSen läuft?

    Ich bin ganz schönn am grübeln....
    Zitieren Zitieren ... nächste Frage ....  

  6. #16
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.227
    Danke
    534
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Hatte bisher mit den VIPA-SPS noch nie große Kompatibilitätsprobleme. Für TCP/IP mußt du die VIPA-Bausteine nehmen, das stimmt. Die Beschaltung ist aber wie bei den Siemens-Bausteinen, wenn ich mich recht entsinne. (Weiß aber nicht mehr ganz genau). Größtes Problem war bisher, daß eine VIPA Speed7 einfach mal zu schnell war . Da kamen ein paar Bausteine (Kommunikation mit Servos) gehörig ins Schwitzen. Das konnte aber alles gelöst werden.
    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

  7. #17
    Registriert seit
    26.10.2007
    Ort
    Dresden
    Beiträge
    34
    Danke
    1
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Ja, Vipa ist wirklich gut, sind ja alles Siemens-Leute, die mal was Gutes entwickeln wollten. Ich setze z.B. die 214 Serie als Alternative zu den 200CPU von Siemens ein, weil man VIPA mit dem S7-Manager programmieren kann und somit dieses "******" MicroWin nicht benutzen muss.

    ..und, der Support antwortet auf Fragen wie die SPEED7 - einfach schneller..

    dp
    Zitieren Zitieren Vipa  

  8. #18
    augenstern ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    08.11.2007
    Beiträge
    17
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Rotes Gesicht


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ralle, Dont_panic,

    wenn man den S7 Manager benutzt um Programme zu entwickeln, muß ich (beim Beispiel AG_SEND & AG_RECV) die Bausteine aus der Bibliothek reinkopieren. Dann findet der Compiler die Bausteine.

    Wenn der Code aber auf Vipa laufen soll, darf ich die S7-Bausteine ja nicht verwenden, sondern die Vipa-SFCs.

    Wie mache ich das im S7-Manager?

    Ich meine, auf meiner Test-S7 will ich das Programm testen, auf der Vipa dann laufen lassen. Da muß ich ja immer wieder (solange ich teste eben) Bausteine raus, Bausteine reinmachen, oder wie macht man das am besten?
    Zitieren Zitieren Ralle, Dont_panic  

Ähnliche Themen

  1. mal etwas anderes als nur Siemens!
    Von rostiger Nagel im Forum Stammtisch
    Antworten: 16
    Letzter Beitrag: 31.07.2011, 11:27
  2. mal etwas nettes zu Bildbausteinen
    Von rostiger Nagel im Forum HMI
    Antworten: 3
    Letzter Beitrag: 17.11.2008, 01:45
  3. Vipa OP3, etwas fehlt?
    Von Mess&Regler im Forum HMI
    Antworten: 1
    Letzter Beitrag: 04.05.2008, 00:03
  4. Suche etwas seltsame SPS
    Von Parallax im Forum Simatic
    Antworten: 45
    Letzter Beitrag: 08.05.2007, 17:03
  5. Habe etwas verpennt...
    Von Pattty im Forum Sonstige Steuerungen
    Antworten: 35
    Letzter Beitrag: 09.02.2007, 10:09

Lesezeichen

Berechtigungen

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