CP343 IT FTP Anbindung an UNIX

A

Anonymous

Guest
Zuviel Werbung?
->Hier kostenlos registrieren
Wer kann mir Helfen ???

Wir versuchen aus einem Verzeichnis auf der CP eine Datei auszulesen. Nach aufruf des Verzeichnisses und der Eingabe des Befehls "dir" hängt sich die Verbindung auf .......

[a739s001:/home/asimpsg] ftp xx.xxx.xxx.xxx (IP Adresse)
Connected to xx.xxx.xxx.xxx. (IP Adresse)
220 CP 343-1 IT FTP-Server V1.02 Ready for new user
331 User name okay, need password.
230 User logged in, proceed.
Remote system type is CP.
ftp> cd /user
250 Requested file action okay, completed.
ftp> dir
200 Command okay.
150 File status okay; about to open data connection.
 

Zottel

Well-known member
Beiträge
2.299
Punkte Reaktionen
277
FTP öffnet eine zweite Verbindung für das Versenden von Daten. Wegen der letzten Meldung scheint es mir da zu hängen.
Du kannst mal die logs anschauen, ob dein UNIX-System das verweigert. Eventuell hilft dir dir "paasives" FTP:
[quote man ftp]
Options may be specified at the command line, or to the command interpreter.

-p Use passive mode for data transfers. Allows use of ftp in environments where a firewall prevents connections from the outside world back to the client machine. Requires
that the ftp server support the PASV command. This is the default if invoked as pftp.
[/quote]
Funktionieren andere Kommandos, eventuell ls oder nlist statt dir? Funktioniert get <filename>? Ist das Verzeichnis /user vorgegeben? Oder könnte der name mit dem Kommando "user" kollidieren?
[/quote]
 
OP
A

Anonymous

Guest
Zuviel Werbung?
->Hier kostenlos registrieren
super danke der tip mit dem passiv mode war super

Zottel schrieb:
FTP öffnet eine zweite Verbindung für das Versenden von Daten. Wegen der letzten Meldung scheint es mir da zu hängen.
Du kannst mal die logs anschauen, ob dein UNIX-System das verweigert. Eventuell hilft dir dir "paasives" FTP:
[quote man ftp]
Options may be specified at the command line, or to the command interpreter.

-p Use passive mode for data transfers. Allows use of ftp in environments where a firewall prevents connections from the outside world back to the client machine. Requires
that the ftp server support the PASV command. This is the default if invoked as pftp.
Funktionieren andere Kommandos, eventuell ls oder nlist statt dir? Funktioniert get <filename>? Ist das Verzeichnis /user vorgegeben? Oder könnte der name mit dem Kommando "user" kollidieren?
[/quote][/quote] :lol:
 
OP
A

Anonymous

Guest
Daten direkt in DB schreiben und auslesen

hi zottel, evtl. hast du auch zu meiner aufgabenstellung eine gute idee.... wir müssen mit einem mes system produktionsaufträge in einen db legen und nach erfolgter produktion (in der produktion werden daten zum auftrag zugeordnet z.b. airbag nummer) dann aus einem db auslesen und im mes ablegen.... was meinst du wie wir die kommunikation am eifachsten aufbauen sollten ?????
 

Zottel

Well-known member
Beiträge
2.299
Punkte Reaktionen
277
Zuviel Werbung?
->Hier kostenlos registrieren
Libnodave gestattet euch, beliebige DBs oder Bereiche daraus zu lesen und zu schreiben.
Das kann aus einem kleinen C-Programm erfolgen, das die Werte aus der Datenbank entnimmt und in die CPU schreibt oder umgekehrt.
Die Kommunikation würde über ISO over TCP erfolgen, der CP müßte dazu nicht notwendigerweise ein -IT sein.
Generell ist bei dieser Art von Screiben/Lesen damit zu rechnen, dass es asynchron zum SPS-Zyklus erfolgt. Daher würde ich einen Auftrag in den DB schreiben. Ein Datenwort sagt dass der Auftrag gültig ist. Dies lässt du zunächst auf 0. Nachdem Du den Block geschrieben hast, setzt du nur dieses Wort auf 1. Im SPS Programm schaust du nach, ob dort eine 1 steht (=neuer Auftrag). Wenn die SPS ihn bearbeitet hat, schreibt das SPS-Programm z.B. eine 2. Die fragt dein C-Programm ab und kann dann den nächsten Auftrag schicken oder die Ergebnisse abholen. Wenn du noch mehr Sicherheit brauchst, dass z.B. nach Netzwerkstörungen nichts verlorengeht oder doppelt ausgeführt/gespeichert wird gibst du jedem Datenblock noch eine laufende Nummer. So kann das neu startende C-Programm durch Rücklesen der Nummer "synchronisiert" werden.
Wenn Du kein C programmieren willst, sodern eine andere Sprache, lass es mich wissen.
 
Oben