Thank you for youre replies.
I am using mBlock 5.4.0 on a windows PC, I guess this is the Application installed locally that Crackel mentions.
I have tested on 2 PCs already, 2 different mBot Neos, S1 and S3 servo ports.
The behaviour is always the same: In live mode (USB cable connected), program works perfectly. The servo moves, this means it is correctly connected, and the port is correctly addressed by the program.
When I upload the program, remove the USB cable, and press the B button, the screen is updated according to my program (Showing “zero”, then “70”, then “120”): this tells me the program has been correctly uploaded and is executing correctly.
However, the servo does not move. it seems that the Servo command are simply ignored.
I did not yet try the “Pocket Shield” extension, but I tried the "servo module " extension and including the servo commands of that extension into my program. They were simply ignored, both in live and in upload mode. My interpretation is that CyberPi ignores commends which are directed at a module (Servo extension in this case) that is not physically present. or, in other words, the mBot2 shield is not accepting commands designed for the servo extension.
Any idea on possible other causes?