sbrun Posted March 27, 2013 Share Posted March 27, 2013 The running of Programs with rotary buffer works perfectly in normal case. I need stop it suddenly when running (on Emergency stop for example). In this case, i send with a plc the followings commands : "lh\ 1" and, when motors are stopped, "abort 1" and "&1 clear rotary" Problem: the thread gpascii (which sends the program) is still running !! To stop it the only way i found is to do : "&1 delete rotary" "&1 define rotary 2048" (to recreate the buffer) Is it the only way to stop the gpascii thread or is there a best one ? Thanks, Stephane Link to comment Share on other sites More sharing options...
bradp Posted April 3, 2013 Share Posted April 3, 2013 This is not clear because I do not know how you making a rotary buffer. One way is to just open a normal GPASCII and send the commands open rotary. The other is using Gpascii -i switch. You have not said what you did. For the first you have just a normal ascii communications thread and I do not see why you would want to stop that thread. Your host should know when to stop sending data and how to handel this situation. When using GPASCII -i the thread is dedicated and must be killed from either the host or a CAPP. Most people who use this have to open another telnet or SSH link and when they want to stop the gpascii must kill the application from that other session. Link to comment Share on other sites More sharing options...
sbrun Posted April 17, 2013 Author Share Posted April 17, 2013 Thank you Brad, I understood that, as i work with Gpascii -i, i have to kill the thread. I initialize my rotary Gpascii with the command: "gpascii -2 -i/media/shared/_rotary.56k" In order to kill this gpascii thread from Linux, the only way i found is : - send a linux command: ps –ef | grep "gpascii -2 -i" - parse the answer for seek the PID of the thread (the number of a thread is named PID under Linux) . - kill the thread with the command linux "kill xx" (xx= n° PID found) Have you a better way to found the number of this thread ? For information, i found two other ways to kill this thread : - From the connection who send the gpascii -i command, send a character Ctrl-C (=$03) - From a script Plc send: cmd "&n delete rotary" Thanks. Link to comment Share on other sites More sharing options...
Recommended Posts