Ich habe in FUP ein Programm geschrieben, das mittels Modbus TCP bestimmte Register eines Slaves ausliest. Ursprünglich hatte ich die naive Hoffnung so einfach einen Block von 7000 Datenpunkten auslesen zu können. Wie ich nun festgestellt habe, kann ich in einem Lese-Schritt leider nur um die 120 Register auslesen - vrmtl. sind es dann genau 128.
Nun möchte ich das Programm gerne so abändern, dass die Variable Mw_StartReadAddress sich innerhalb einer Schleife befindet und mit jedem Schleifen-Durchgang um 120 hochgezählt wird (von 0 bis 7000 etwa). Ich nehme an, dass dies nur mit strukturiertem Text möglich ist. Müsste ich dann also ein Programm in ST schreiben, welches innerhalb einer Schleife Mw_StartReadAddress ändert und danach dann das Programm modbusMaster aufruft? Oder muss ich modbusMaster in einen Funktionsbaustein ändern?
So in etwa:
Nun möchte ich das Programm gerne so abändern, dass die Variable Mw_StartReadAddress sich innerhalb einer Schleife befindet und mit jedem Schleifen-Durchgang um 120 hochgezählt wird (von 0 bis 7000 etwa). Ich nehme an, dass dies nur mit strukturiertem Text möglich ist. Müsste ich dann also ein Programm in ST schreiben, welches innerhalb einer Schleife Mw_StartReadAddress ändert und danach dann das Programm modbusMaster aufruft? Oder muss ich modbusMaster in einen Funktionsbaustein ändern?
So in etwa:
Code:
FOR i:=0 TO 60 DO:
modbusMaster(PRG);
Mw_StartReadAddress := Mw_StartReadAddress + 120;
END_FOR