Hi,
sei nachsichtig - ich hab mir des Beispiel nicht angeschaut weil ich es extra laden und hochrüsten müsste, schreib des grad aus dem Kopf
.
Im Prinzip arbeitet Siemens immer mit dem MB_Client-Baustein.
Dort ist der Parameter Connect, daran kommt eine Variablenstruktur mit dem Datentyp TCON_IP_V4.
Darin enthalten sind sämtliche Kommunikationseinstellungen, die Werte werden alle in die Startwerte eingetragen vor dem ersten Laden, dann verschwinden die auch nimmer.
Unter anderem die Hardwareadresse Deiner CPU "Local PN Schnittstelle" z.B. mit 64, sollte HW* heissen
Dann Connection_ID - Diese darf Systemweit nur einmal belegt sein oder aber nur einmal kommunizieren falls man sie nicht verteilen will. Die 0 macht oft Probleme, also z.B. 16#00AA reintippen.
Conn_Established - TRUE wenn Deine Steuerung die Verbindung aufbauen soll (soll sie!, das TRUE durchgehend aktiv lassen, also in den Startwert und danach nimmer antasten)
Dann der Typ der Verbindung mit TCP, UDP, UDP(TCP), wobei ich TCP eintrage, also 11. Im Startwert müsste dann 16#0B stehen.
Du findest dort auch die Adressdaten im IP_V4-Format. Darin stehen als HEX-Code die IPs in den Startwerten. Hab ich immer mit dem Windows-Rechner umgewandelt von 192 nach 16#CB oder so.
Darunter kommt Remote Port - wenn nix geändert wurde steht dort 502
Dann Local Port - der steht dann in der Regel auf 0
Dann sobald der MB_Client im Projekt ist verlangt er unter anderem Mode etc.
Mode: 103
LEN=101 - Anzahl zu lesender Einträge
MB_DATA_PTR = Der Lesebereich. Mach einfach ein mal ein UDT und zieh dort 101 Reihen rein, alle mit Datentyp real. Dann diesen UDT in einem DB angeben und hiermit verlinken. Hier stehen später die Werte alle drin.
Da war nun noch eine Variable die zu vergeben ist mit dem Beginn des Lesebereichs. Das sollte auf 1 stehen glaub ich, evtl. 0. Unsicher, zu probieren.
Was wäre noch...die Error, Disconnect, Status etc. verschalten.
Da hab ich bei mir immer
REQ=NOT MB_CLIENT_ERROR AND Comm_Enable AND NOT MB_CLIENT_BUSY
DISCONNECT=MB_CLIENT_ERROR OR MB_CLIENT_DONE OR NOT Comm_Enable
Im Prinzip sollte das dann so laufen und in dem DB mit dem UDT sollten die Werte gefüllt werden. Natürlich ohne Sinn erstmal.
Aber im Handbuch stehen die Offsets 1,3,5,7,9,.. in 2er-Schritten. In exakt der gleichen Reihenfolge stehen die im UDT. Eventuell noch ein paar real zu word umlegen und das sollte so klappen.
In diesem Beispiel wird im Akkord die Verbindung aufgebaut, gelesen, abgebaut. Der Comm_Enable müsste von Dir dann immer True werden zum lesen und rückgesetzt durch MB_CLIENT_DONE. Dann wird die Leitung nicht so ausgelastet.
Falls des nicht geht kann ich Dir morgen ein 16er-Projekt von mir zusammenschustern, ist vllt. anschaulicher.
Falls Du aber konkrete Fragen zu Deinem Programm hast - kennst des ja - zeig uns was