# B&R SG3 auf SG4



## Hannes (15 Juni 2007)

Hallo,


ich habe eine tcp- Task, welcher auf einem SG3- Gerät wunderbar funktioniert hat.
Nun wollte ich das Ganze auf einem SG4- target laufen lassen (ich hab die Dateien nur kopiet und nicht exportiert) aber ich bekomme den Fehler: ETHERNET: Generelle OS- Fehler.

Was kanns da haben?
Vielleicht hat damit schon jemand Erfahrungen gemacht!1

lg


----------



## da_kine (15 Juni 2007)

Da musst du mal die Hilfe bemühen...soweit ich weiß, war unter SG3 eine tcpipcfg.dat nötig in der die konfigurationsdaten für's ehternet gespeichert wurden. Denke, dass sich hier die Bibliotheken geändert haben und du das alles umschreiben musst. Bin mir da aber nicht mehr so sicher, is immerhin schon ein paar jahre her mit den SG3's.

MFG

Markus


----------



## Hannes (15 Juni 2007)

kannst du mir den tcp- task für SG4 irgendwie zukommen lassen oder vielleicht hier posten?


----------



## da_kine (15 Juni 2007)

Hannes schrieb:


> kannst du mir den tcp- task für SG4 irgendwie zukommen lassen oder vielleicht hier posten?




ich bin mir jetzt grad net ganz sicher, was du von mir willst...:icon_confused:


----------



## harrylask (15 Juni 2007)

Hallo Hannes,



> kannst du mir den tcp- task für SG4 irgendwie zukommen lassen oder vielleicht hier posten?



poste du mal was :???: 

Folgender Vorschlag zum Eingrenzen des Fehlers:

Alle Tasks deaktivieren - SPS reseten
Tritt der Fehler nicht mehr auf musst du den Task ermitteln in dem der Fehler ausgelöst wird (der Reihe nach die Tasks aktivieren und downloaden).
Hast du den Task gefunden daktiviere im Source die Funktionsaufrufe (ausdokumentieren).
Hast du die Funktion gefunden kannst du
   a) solange probieren bis du den Fehler selber gefunden hast oder
   b) postest den Source im Forum

Ich kann mit der von dir genannten Fehlermeldung auch nicht viel anfangen, ich schliesse mich da_kine an und vermute das an der Konfiguration der Ethernet Schnittstelle was nicht stimmt.

Grüsse, harrylask


----------



## mike_nl (15 Juni 2007)

*Re: SG4*

Hallo Hannes,

poste mal welche SG4 CPU Du verwenden willst oder verwendest.
Auch ware die Version des AutomationStudios wichtig, denn ab
der version 2.5.3.xxx aendert sich die Anwendung der ethernet lib
komplett. Ab da heisst das AsTcp. Ich habe mittlerweile fuer verschiedene
Kunden die Apllikationen umgeschrieben. ist aber nicht mehr so einfach.
Haellt sich sich jetzt mehr an den Standard, sprich socket Funktionen.

Gruss, 

Mike


----------



## Hannes (18 Juni 2007)

Ich verwende das Automation Studio mit der Versionsnummer 2.4.0.11
und das PowerPanel: 4PP220.1043-75 (SG4 -> auf dem gehts eben nicht), auf dem SG3 PowerPanel PP41 funktionierts.


----------



## mike_nl (18 Juni 2007)

*Re:*

Hallo Hannes,

ups Du verwendest noch 2.4.0.11. Da kann ich jetzt auf die schnelle nicht helfen. Muesste erstmal die sehr alte Version von AS installieren. Aber eigentlich ist das ganze sehr einfach.

Sende mir eine private mail, dann bekommst Du von mir eine aneder mail Adresse die mehr Daten Vloumen empfangen kann. Danach schickst Du mir das Projekt und ich sehen es mir mal an.

Besser waere allerdings Du koentest auf die Version 2.5.3.xx oder 2.5.2.108 updaten.

Gruss,

Mike


----------



## da_kine (18 Juni 2007)

Was für Bausteine, bzw. welche Bibliothek in welcher Version verwendest du denn?? Ist das ein C-Task? Oder welche Sprache verwendest du?

Ich denke nicht, dass es sinnvoll ist die AS Version zu verändern, da das einen enormen Rattenschwanz an weiteren änderungen nach sich zieht. Denn zu den nächsten Versionen sind wieder Bibliotheken hinzugekommen, und andere dafür weggefallen.

MFG

Markus


----------



## Hannes (18 Juni 2007)

Ich programmiere in C, es sind im Grunde 2 einfache Tasks, einer, mit welchen ich die Verbindung über TCP herstelle und mit dem 2 werte ich die empfangenen Daten aus, aber leider hängt sich die SPS PP220 (SG4) auf, das PP41 geht hingegen super mit meinen 2 Tasks (da hat es sich noch nie!! aufgehängt), das SG4 hängt sich gleich mal auf, nachdem ich ihm über tcp was gesendet habe.
Auf eine andere Version des AS umzusteigen ist so eine Sache, da der Task ja auf dem SG3 und dem SG4 wiederverwendbar sein soll (bzg. wiederverwendbarkeit)
Mit ist auch die Problematik mit dem Little Endian und big Endian klar aber ich weiß nicht, wo das SG4 da in den Speicher hineinschreiben könnte.

lg und vielen Dank für Eure Antworten!!

lg 
Hannes


----------



## da_kine (18 Juni 2007)

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


----------



## mike_nl (18 Juni 2007)

*Re:*

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


----------



## Hannes (18 Juni 2007)

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


----------



## mike_nl (18 Juni 2007)

*Re:*

Hallo Hannes,

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

Gruss,

Mike


----------



## Hannes (18 Juni 2007)

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


----------



## mike_nl (18 Juni 2007)

*Re:*

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


----------



## EnemyNr1 (29 Juni 2010)

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)]
> ...



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.


----------



## bits'bytes (29 Juni 2010)

Hallo,

was steht dann in 
*TcpServer_0.status*

??

PS: bitte das nächste mal Code innerhalb 


```
this is a code snippet
```
posten, mercy


----------



## EnemyNr1 (30 Juni 2010)

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


----------



## bits'bytes (30 Juni 2010)

EnemyNr1 schrieb:


> 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


----------



## EnemyNr1 (30 Juni 2010)

Es ist immer 65535 und ändert sich nicht.


----------



## bits'bytes (30 Juni 2010)

EnemyNr1 schrieb:


> Es ist immer 65535 und ändert sich nicht.



Aber laut deinem Code würde er bei 65535 im Step=10 stehen bleiben.

Also musst du mal den Status zwischenspeichern 

tmp = ......status
step = 100

Da muss dann was anderes drinnen sein...


----------



## EnemyNr1 (8 Juli 2010)

Ich konnte das Problem mit Hilfe B&R Suport lösen. Im Anhang sind 2 *.TXT für Server und Client. 

Jetzt noch eine Frage:

"bits'bytes"  von wo bezieht der Server die IP Adresse des Client, weil im Programm wird diese nirgendwo deklariert, und wie kann ich das Program für 2 Clients anpassen.


----------



## bits'bytes (9 Juli 2010)

Hi Enemy,

hab das auch noch nicht mit 2 Clients gemacht aber nach meiner Vorstellung sollte das so funktionieren:

IP-Adresse:
-----------
Der Server "lauscht" (bei IP=NULL) auf allen möglichen Ethernet-Verbindungen. Kommt eine Anfrage vom Client so kann er daraus die IP-Adresse des Client auslesen. Die IP Adresse wird von der TCP Verbindung gemanagt und dann (wahrscheinlich) zum Client zurückgegeben.

2 Clients:
---------
- Das Programm darf nicht wie im Bespiel nach kurzer Zeit die Verbindung wieder schließen falls nichts kommt.
- Du musst TCPServer() weiterhin aufrufen, auch nachdem schon ein Client verbunden hat --> ev. 2 Schrittketten, eine für Server, eine weitere für jeden Client...
- Jeder Client der verbindet bekommt eine eigene Ident welche bei Send/Recv zu verwenden sind...

siehe dazu auch angehängtes Bild aus der B&R Doku...

Hoffe das hilft ein bisschen
bg
bb


----------

