Skip to main content
Submitted by Warren on Mon, 11/14/2016 - 10:18

Is there a command available to determine the number of execution threads available in any given controller?
Within the DMC-30K series of controllers, the number and partial (busy or idle but not tripoint wait) states of the 6 available execution threads can be found in the data record. Unfortunately, the data record for the DMC-21xx controllers does not have similar information for the 8 available threads in that controller.
For a DMC-2143 I have tried issuing commands (while idle) like MG _HXnn where nn can be any value from 0 to 99 and the response is always "0" even though I would expect values of 8 and greater to fail with an error. About the only way I've found so far to sniff this out programmatically is to execute some piddly little piece of code with something like XQ #Piddly,nn where nn varies from 0 to 7 or more and in the case of this test, values of 8 or more do indeed cause an error return. But all these methods seem rather complex given that I'd think this would be something that that the controller would self-report like it does for "number of labels", "number of axes", "number of arrays", "number of available handles", "number of variables" and so forth.

Comments 1

AndrewS on 12/20/2016 - 09:26

Hi Warren,
The number of available threads is fixed per controller, and the specification can be found in the User Manual. Operands that are undefined may not return an error, but the value is undefined if the operand is out of range. It is up to the user to write code knowing how many threads are available per controller.

This is standard operation, but we are not limited to this. Is there an application that requires knowing how many available threads there are? If so, can you please give a call or email support@galil.com and add "Please forward to Andrew" at the top? This way we can review your application details and requirements.

Regards,
Andrew