Experimental Physics and
| |||||||||||||||
|
Hello tech-talkers, I have 5 SC-410 motor controllers daisy chained to a NI PCIe GPIB controller. The motor controllers are used to control a total of 18 kohzu positioning stages. In the start-up file, I set up the kohzu controllers to poll at 60Hz # Kohzu SC-800 motor controller setup parameters: # (1) maximum number of controllers in system # (2) motor task polling rate (min=1Hz,max=60Hz) SC800Setup(5, 60) However the max polling rate I see is ~ 22Hz. I am not sure why the motors are not being polled at 60Hz. camonitor -tIs VPFI:KOHZU:m1.RBV VPFI:KOHZU:m1.RBV 2016-03-08 17:54:02.824819 -1.5 VPFI:KOHZU:m1.RBV +57.093353 -1.48 VPFI:KOHZU:m1.RBV +0.043757 -1.46825 VPFI:KOHZU:m1.RBV +0.045044 -1.457 VPFI:KOHZU:m1.RBV +0.046047 -1.4455 VPFI:KOHZU:m1.RBV +0.044958 -1.43425 VPFI:KOHZU:m1.RBV +0.045999 -1.42275 VPFI:KOHZU:m1.RBV +0.045986 -1.41125 VPFI:KOHZU:m1.RBV +0.045030 -1.4025 VPFI:KOHZU:m1.RBV +0.045986 -1.4 I have tried removing all but one SC-410 controller, to see if it is because of the GPIB cable. I have also tried just having one SC-410 controller with one axis connected (each controller can supports a max of 4 axes), but I don’t see a change in the polling rate. I also don’t think it is the GPIB controller card, since I have tested two cards (Agilent 82350b and NI PCI-e GPIB) now, and in both cases the max polling rate is see is 20Hz. Also I don’t really see a big difference in the polling rate when the cpu is under high load vs. low load. I am not sure if it is the controller limit at this point (I could not find any documentation regarding how fast the controllers can poll, maybe I need to look harder) I am using linux-gpib-4.0.2, asyn-4-26, motor-6-9, base-3.14.12.5. Any help is appreciated on this. Also some of the stages, we have do not have an origin sensor on the motor shaft, so the origin return sequence 3 for homing the stages no longer works. I temporarily changed it to look for the NORG (origin proximity sensor) case HOME_FOR: case HOME_REV: rtnval = write_parms(pbuff, signal, cntrl, motor_call, command, mr); sprintf(buff, "ORG%d/2/0/0/4/1", axis); break; but then I need to change it back for the one’s that do have an origin sensor. Is there a better way to do this. Maybe have a record for home search? For the time being i just use HOME_FOR to use method 4 (look for NORG) and then HOM_REV stays as is. Best, Ali
| ||||||||||||||
ANJ, 15 Jul 2016 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |