@Hans ist da noch ein Fehler in meiner Lib?
Dann habe ich aber noch eine Aufzeichnung "NC_File_Big_Download2", bei dem vor dem Download noch eine Upload Anforderung ist, da stehen in der Dateilänge wiederum nur Leerzeichen. Der Inhalt sieht dann auch nicht nach Datei aus, sondern nach einer Art Verzeichnisauflistung. Gibt es sowas?
Wenn man einen Upload auf einen Ordner/Verzeichnis macht, schickt die NC ein File mit den Namen der Dateien und Ordner in diesem Pfad.
Ich glaube du hattest in diesem Thread mal geschrieben, die Pfadangabe könne maximal 32 Zeichen lang sein. So viel Platz habe ich in der ergänzten Funktion die ich hier gepostet habe auch vorgesehen.
Für den Up- oder Download muss zunächst ein PI-Dienst mit der Pfadangabe ausgeführt werden. Im Up/Download selbst wird nur der Dateiname angegeben. In diesem Fall 27 Zeichen + \0.Bei der Verzeichnisanfrage sind aber laut einem Logfile was ich von dir habe auch längere Angaben möglich. In einer Aufzeichnung mit einem Upload und ;$PATH=/_N_wks_dir/_N_G_GQ_TEST_SWITCH_VCS_WPD sind es 40 Zeichen. Es wäre also sinnvoll das auch in der Funktion zu erweitern, andernfalls wird die Pfadangabe abgeschnitten und es kommt vermutlich ein Fehler zurück.
Hat das denn schon einmal funktioniert, oder wurden bisher nur noch keine Dateien geladen die mehr als 20 PDUs benötigen und es ist darum nicht aufgefallen?
@Hans54216
danke für das super code snippet!
Das laden und interpretieren der unterschiedlichen ACX-Files klappt hervorragend!
Das lesen von selbst angelegten GUD's => MGUD, UGUD, GD4-GD9 sowohl Global und Kanalspezifisch funktioniert.
Beim versuch z.B. GUD's aus dem Bereich Global SGUD oder denen die über MD18660 im Baustein MGUD (SYG_RM) angelegten wurden zu lesen wird im PLCNckTag ItemDoesNotExist=true gesetzt.
Das Lesen über die PLC mit FB5 klappt normal.
Hast Du in dem Bereich auch schon mal versucht was zu lesen?
Ich werd mal ne anfrage bei Siemens starten. Die Theorie is das es irgend welche Zugriffsrechte setzt, wobei er nicht dokumentiert ist. Das HMI startet ihn auf alle möglichen Dateien, wobei er immer wieder negativ (Fehlerhaft) quittiert wird.Apropos PI-Dienste: Wozu dient eigentlich _N_F_PROR?
Dazu gab es schon mal einen Thread, aber ergebnislos.
Ich werd mal ne anfrage bei Siemens starten. Die Theorie is das es irgend welche Zugriffsrechte setzt, wobei er nicht dokumentiert ist. Das HMI startet ihn auf alle möglichen Dateien, wobei er immer wieder negativ (Fehlerhaft) quittiert wird.
Ich hab schon alle Größen geladen, jedoch nur von echten Programmen (PI-Dienst F_XFER). Hab letztens ja geschrieben, dass der wireshark anders aussieht wie vom HMI. Bei Programmen ist die NC da wohl nicht so gleinlich.
Upload mit Anpassung:Bisher:
-> Request Start Upload (0x11, 0x7f, 0x06)
<- Response Start Upload (0x12, 0xbf, 0x06)
<- Dann NC Push-Response Upload (0x12, 0x3f, 0x07) und diese Anzahl muss gezählt werden, so wie es jetzt gemacht wurde und der Aufzeichnung nach auch funktioniert.
Upload mit Anpassung:Deine neue Aufzeichnung
-> Request Start Upload (0x11, 0x7f, 0x06)
<- Direkt NC Push-Response (0x12, 0x3f, 0x07) und dann ab hier zählen
Sollte das noch rein?Ich habe überhaupt nicht überprüft ob der Funktionscode in der Antwort richtig ist. Das sollte man aber wohl tun, und nur wenn in der ersten Antwort (0x12, 0x3f, 0x07) dann unackcount um 1 inkrementieren. Es ließe sich auch anstelle die Telegramme zu zählen auf die Nummer reagieren die mitgeschickt wird, aber letztlich kommt es auf das gleiche raus.
@Hans54216
danke für das super code snippet!
Das laden und interpretieren der unterschiedlichen ACX-Files klappt hervorragend!
Das lesen von selbst angelegten GUD's => MGUD, UGUD, GD4-GD9 sowohl Global und Kanalspezifisch funktioniert.
Beim versuch z.B. GUD's aus dem Bereich Global SGUD
SGUD = 0x36,
PGUD = 0x36, //= SGUD
GUD1 = 0x36 //= SGUD
Kannst du die SYG_RM per FB5 lesen? Wenn ja, was steht auf der Struktur "VarToken"?oder denen die über MD18660 im Baustein MGUD (SYG_RM) angelegten wurden zu lesen wird im PLCNckTag ItemDoesNotExist=true gesetzt.
Das Lesen über die PLC mit FB5 klappt normal.
Hast Du in dem Bereich auch schon mal versucht was zu lesen?
Ich schätze mal ja, denn ich vermute mal mit deiner Änderung jetzt wird es an der alten Steuerung nicht mehr funktionieren.Sollte das noch rein?
_N_NC_GD1_ACX, _N_CH_GD1_ACXCode:SGUD = 0x36, PGUD = 0x36, //= SGUD GUD1 = 0x36 //= SGUD
Funktioniert bei mir genau so wie die anderen Bereiche.
Kannst du die SYG_RM per FB5 lesen? Wenn ja, was steht auf der Struktur "VarToken"?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?