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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 24

Thema: B&R SG3 auf SG4

  1. #11
    Registriert seit
    28.04.2005
    Beiträge
    206
    Danke
    22
    Erhielt 17 Danke für 14 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Den gleichen Ethernet-Task auf SG3 & 4 zu verwenden ist nicht möglich denke ich. Die SG3's sind soweit ich weiß Motorola CPU's und die 4er sind Intel. Lies dir mal die Hilfe zur Bibliothek "Ethernet" durch. Ich denke du wirst nicht umhin kommen 2 Verschiedene Bausteine zu schreiben. Je nach dem auf was für ein Zielsystem du überträgst, kannst du dann ja aktivieren/deaktivieren.

    MFG

    Markus

  2. Folgender Benutzer sagt Danke zu da_kine für den nützlichen Beitrag:

    Hannes (18.06.2007)

  3. #12
    Registriert seit
    22.03.2007
    Ort
    Niederlande
    Beiträge
    45
    Danke
    3
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Hallo Hannes,

    ein paar Worte zur Erklaerung:

    1. As2.4.0.11 arbeitet noch mit SG3 Visualisierung, soweit ich das im Kopf habe. Und Du hast wahrscheinlich (sagt meine Glaskugel ) eine VIS mit SG3 aufgebaut.
    2. Wiederverwendbarkeit is OK. Es gibt jedoch ein paar unterschiede zwischen SG3 (motorola) und SG4 (intel, geode, x86 kompatibel) Systemen, was die Konfiguration des Systems betrifft.
    Das einfachste ist Du koenntest irgendwo den SourceCode als Textfile uploaden oder sende Ihn per PM/Mail an uns. Dann koennen wir Dir helfen.

    Gruss,

    Mike
    Geändert von mike_nl (18.06.2007 um 11:03 Uhr)
    Alles ist (un)moeglich, letztendlich bist Du selbst der (un)Faktor
    Zitieren Zitieren Re:  

  4. Folgender Benutzer sagt Danke zu mike_nl für den nützlichen Beitrag:

    Hannes (18.06.2007)

  5. #13
    Hannes ist offline Benutzer
    Themenstarter
    Registriert seit
    26.03.2007
    Beiträge
    67
    Danke
    6
    Erhielt 2 Danke für 2 Beiträge

    Standard

    ich hab mein Problem gelöst, ich habe zur SPS 2 Bytes geschickt, wieviel Einträge ich von einem Array auf der SPS in den Sendebuffer kopieren will, bei SG3 hat das funktioniert aber bei SG4 musste ich die 2 Bytes umdrehen (Little/Big Endian!!!) jetzt funktionierts.

    Vielen Dank für Eure Unterstützung!!!

    liebe Grüße aus OberÖsterreich

    Hannes

  6. #14
    Registriert seit
    22.03.2007
    Ort
    Niederlande
    Beiträge
    45
    Danke
    3
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Hallo Hannes,

    ja genau das ist es....hat der Tip mit dem SG3 b.z.w. SG4 geholfen?

    Gruss,

    Mike
    Alles ist (un)moeglich, letztendlich bist Du selbst der (un)Faktor
    Zitieren Zitieren Re:  

  7. Folgender Benutzer sagt Danke zu mike_nl für den nützlichen Beitrag:

    Hannes (18.06.2007)

  8. #15
    Hannes ist offline Benutzer
    Themenstarter
    Registriert seit
    26.03.2007
    Beiträge
    67
    Danke
    6
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Ja, vielen Dank, meine Task für SG3 und SG4 schauen jetzt gleich aus, für SG4 setzt ich nur eine BOOL Variable auf 1.

    Vielen Dank,

    lg
    Hannes

  9. #16
    Registriert seit
    22.03.2007
    Ort
    Niederlande
    Beiträge
    45
    Danke
    3
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Hallo Hannes,

    selbst DAS BIT kannst Du automatisieren um nicht jedesmal
    von Hand ein Bit stezen zu muessen. Schau Dir mal in der Hilfe
    die Funktionen 'RTINFO' und 'TARGETInfo' in der BRSystem Library an.

    Also ein leichtes das ganze vollautomatisch zu erledeigen. Spart Zeit
    und man(n / frau) vergisst es nicht......

    Gruss,

    Mike
    Geändert von mike_nl (18.06.2007 um 14:02 Uhr)
    Alles ist (un)moeglich, letztendlich bist Du selbst der (un)Faktor
    Zitieren Zitieren Re:  

  10. #17
    Registriert seit
    17.11.2008
    Beiträge
    28
    Danke
    19
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo, habe auch ein Problem mit AsTCP und SG4.

    Es sind 2 CPU ( x20 cp1484) einer ist Server der andere Klient.
    mein Quellcode:

    SERVER_________________________
    Deklaration: IP 192.168.10.124 [String(80)]



    (* init program *)
    sStep:= 0;
    Zeiger:=ADR(IP);



    (* cyclic program *)
    CASE sStep OF

    0:
    TcpOpen_0.enable:=1;
    TcpOpen_0.pIfAddr:=Zeiger;
    TcpOpen_0.port:=0;
    TcpOpen_0.options:= 0;
    TcpOpen_0; (*Call the function*)

    IF TcpOpen_0.status = 0 THEN
    sStep := 10;
    ELSIF TcpOpen_0.status = ERR_FUB_BUSY THEN
    sStep := 0;
    ELSE
    sStep:= 100;
    END_IF

    (*5:
    linger_opt.lLinger:=0;
    linger_opt.lOnOff:=1;

    Tcploctl_0.enable:=1;
    Tcploctl_0.ident:=TcpOpen_0.ident;
    Tcploctl_0.ioctl:=tcpSO_LINGER_SET;
    Tcploctl_0.pData:=ADR(linger_opt);
    Tcploctl_0.datalen:=SIZEOF(linger_opt);
    Tcploctl_0;

    IF Tcploctl_0.status = 0 THEN
    sStep := 10;
    ELSIF Tcploctl_0.status = ERR_FUB_BUSY THEN
    sStep := 5;
    ELSE
    sStep:= 100;
    END_IF
    *)

    10:
    TcpServer_0.enable:=1;
    TcpServer_0.ident:=TcpOpen_0.ident;
    TcpServer_0.backlog:=1;
    TcpServer_0.pIpAddr:=Zeiger;
    TcpServer_0; (*Call the function*)

    IF TcpServer_0.status = 0 THEN
    sStep := 15;
    ELSIF TcpServer_0.status = ERR_FUB_BUSY THEN
    sStep := 10;
    ELSE
    sStep:= 100;
    END_IF


    15:
    TcpRecv_0.enable:=1;
    TcpRecv_0.ident:=TcpServer_0.identclnt;
    TcpRecv_0.pData:=ADR(Data_in);
    TcpRecv_0.datamax:=SIZEOF(Data_in);
    TcpRecv_0.flags:=0;
    TcpRecv_0;

    IF TcpRecv_0.status = 0 THEN
    sStep := 20;
    ELSIF TcpRecv_0.status = ERR_FUB_BUSY THEN
    sStep :=15;
    ELSE
    sStep:= 100;
    END_IF


    20:
    TcpSend_0.enable:=1;
    TcpSend_0.ident:=TcpServer_0.identclnt;
    TcpSend_0.pData:=ADR(Data_out);
    TcpSend_0.datalen:=SIZEOF(Data_out);
    TcpSend_0.flags:=0;
    TcpSend_0;

    IF TcpSend_0.status = 0 THEN
    sStep := 25;
    ELSIF TcpSend_0.status = ERR_FUB_BUSY THEN
    sStep :=20;
    ELSE
    sStep:= 100;
    END_IF


    25:
    TcpClose_0.enable:=1;
    TcpClose_0.ident:=TcpServer_0.identclnt;
    TcpClose_0.how:=0;
    TcpClose_0;

    IF TcpClose_0.status = 0 THEN
    sStep := 0;
    ELSIF TcpClose_0.status = ERR_FUB_BUSY THEN
    sStep :=25;
    ELSE
    sStep:= 100;
    END_IF


    100:
    IF QUITT =0 THEN
    sStep:= 0;
    END_IF



    END_CASE

    **********************************************

    CLIENT_________________



    Deklaration: IP 192.168.10.123 [String(80)]



    (* init program *)
    sStep:= 0;
    Zeiger:=ADR(IP);



    * cyclic program *)
    CASE sStep OF

    0:
    TcpOpen_0.enable:=1;
    TcpOpen_0.pIfAddr:= Zeiger;
    TcpOpen_0.port:=0;
    TcpOpen_0.options:= 0;
    TcpOpen_0; (*Call the function*)


    IF TcpOpen_0.status = 0 THEN
    sStep := 10;
    ELSIF TcpOpen_0.status = ERR_FUB_BUSY THEN
    sStep := 0;
    ELSE
    sStep:= 100;
    END_IF


    10:
    TcpClient_0.enable:=1;
    TcpClient_0.ident:=TcpOpen_0.ident;
    TcpClient_0.pServer:=Zeiger;
    TcpClient_0.portserv:=0;
    TcpServer_0; (*Call the function*)

    IF TcpServer_0.status = 0 THEN
    sStep := 15;
    ELSIF TcpServer_0.status = ERR_FUB_BUSY THEN
    sStep := 10;
    ELSE
    sStep:= 100;
    END_IF


    15:
    TcpSend_0.enable:=1;
    TcpSend_0.ident:=TcpOpen_0.ident;
    TcpSend_0.pData:=ADR(Data_out);
    TcpSend_0.datalen:=SIZEOF(Data_out);
    TcpSend_0.flags:=0;
    TcpSend_0;

    IF TcpSend_0.status = 0 THEN
    sStep := 25;
    ELSIF TcpSend_0.status = ERR_FUB_BUSY THEN
    sStep :=20;
    ELSE
    sStep:= 100;
    END_IF


    20:
    TcpRecv_0.enable:=1;
    TcpRecv_0.ident:=TcpOpen_0.ident;
    TcpRecv_0.pData:=ADR(Data_in);
    TcpRecv_0.datamax:=SIZEOF(Data_in);
    TcpRecv_0.flags:=0;
    TcpRecv_0;

    IF TcpRecv_0.status = 0 THEN
    sStep := 20;
    ELSIF TcpRecv_0.status = ERR_FUB_BUSY THEN
    sStep :=15;
    ELSE
    sStep:= 100;
    END_IF


    25:
    TcpClose_0.enable:=1;
    TcpClose_0.ident:=TcpOpen_0.ident;
    TcpClose_0.how:=0;
    TcpClose_0;

    IF TcpClose_0.status = 0 THEN
    sStep := 0;
    ELSIF TcpClose_0.status = ERR_FUB_BUSY THEN
    sStep :=25;
    ELSE
    sStep:= 100;
    END_IF


    100:
    IF QUITT =0 THEN
    sStep:= 0;
    END_IF



    END_CASE
    ********************************
    Bei mir komt der SERVER in die Sprungmarke 10 und dann gleich in 100 ohne Send und Rcive Funktionen zu bearbeiten.

    Würde mich freuen wenn mir jemand helfen kann.
    Geändert von EnemyNr1 (29.06.2010 um 22:56 Uhr)

  11. #18
    Registriert seit
    12.04.2010
    Beiträge
    300
    Danke
    22
    Erhielt 54 Danke für 52 Beiträge

    Standard

    Hallo,

    was steht dann in
    TcpServer_0.status

    ??

    PS: bitte das nächste mal Code innerhalb

    Code:
    this is a code snippet
    posten, mercy

  12. #19
    Registriert seit
    17.11.2008
    Beiträge
    28
    Danke
    19
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Also der TcpServer_0.status = 65xxx (entspricht " In bearbeitung" laut B&R Hilfe ) und es springt nie auf 0 ( "Status OK")!

  13. #20
    Registriert seit
    12.04.2010
    Beiträge
    300
    Danke
    22
    Erhielt 54 Danke für 52 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von EnemyNr1 Beitrag anzeigen
    Also der TcpServer_0.status = 65xxx (entspricht " In bearbeitung" laut B&R Hilfe ) und es springt nie auf 0 ( "Status OK")!
    Hallo,
    also es gibt nur 2 65xxx Nummern
    siehe Bild

    entweder er ist busy, dann bleibt er aber im Schritt und wechselt nicht auf 100 (siehe deinen Code) oder das enable geht --> 0
    Angehängte Grafiken Angehängte Grafiken

Lesezeichen

Berechtigungen

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