Subject: Positioner communication From: "David R. Smith" Date: Mon, 17 May 2010 01:36:26 +0000 To: ge_cortes@yahoo.com, phil@naic.edu Hi Phil, The way I talk to the positioner is via telnet to socket 5002. I've controlled it from 'telnet' under linux and from PuTTY under windows. Depending on your line discipline, to interrupt may require a to send it to the controller. The interface is very basic. Commands are all case insensitive. You can put more than one command on a line, and, as written right now, order doesn't matter. They will always evaluate in the order that the command parser looks for them. 'Quit' or 'Exit' take priority, though, so if that is typed anywhere, the program will end. When you connect, the system prompt should read "Positioner Ready>". Unless you are interrupting motion, it's all more robust to wait for an answer before sending the next command. However, it does clear the input buffer when it returns to the prompt. Here is a short list of the current commands: HELP Lists the names of available commands. WHERE Returns the current position of the system (right now, I only have the angle actuator). STATUS Returns position and status bit information. RESET After a motion interrupt, various 'Kill Motion' bits are set. The prompt will then read "Axis Motion DISABLED>" and no motion commands will be sent to the controller until the bits are reset. This command attempts to reset the bits. If there is a hardware condition (e.g., Emergency stop), the system will state that and leave the "Axis Motion DISABLED>" prompt in place. Otherwise, it will clear the bits and return the prompt to "Positioner Ready>". ANGLE= Followed by a number in decimal degrees, this will send the system to the commanded angle. Commands outside the software limit will not generate a motion, but will return an error indicating that the command is outside the allowed range. If the command is in range, the drive is enabled, the system is driven to the commanded position, and the drive is disabled (including setting the brakes). FOCUS= Followed by a number in mm, this will send the system to the commanded focus position. Commands outside the software limit will not generate a motion, but will return an error indicating that the command is outside the allowed range. If the command is in range, the drive is enabled, the system is driven to the commanded position, and the drive is disabled (including setting the brakes). RADIUS= Followed by a number in mm, this will send the system to the commanded radial position. Commands outside the software limit will not generate a motion, but will return an error indicating that the command is outside the allowed range. If the command is in range, the drive is enabled, the system is driven to the commanded position, and the drive is disabled (including setting the brakes). Again, after sending a command, motion can be interrupted by sending ESC. Samples (not an actual log... I have the system disconnected while I'm installing the feedthroughs): telnet 192.168.1.40 5002 Positioner Ready> angle=180 Outside of software limits (-178,178) Positioner Ready> angle=170.1 Driving to 170.1, ESC to abort... Positioner Ready> angle=0 Driving to 0, ESC to abort... Motion killed Axis Motion DISABLED> Axis Motion DISABLED> angle=0 Axis Motion DISABLED> where Angle= 123.45 degrees Axis Motion DISABLED> reset Trying to reset disable bits. EStopPressed = 0 KillAngleAxis = 0 KillAllMovesZero = 0 Positioner Ready> Positioner Ready> angle=0 Driving to 0, ESC to abort... Positioner Ready> Best, David ----------------------------------------------------- David R. Smith, Ph.D., PE David_Smith@merlab.com MERLAB, PC Voice: (404)378-2138 357 S. Candler St. FAX: (404)378-0822 Decatur, GA 30030