I will send some detailed comments and recommendations tomorrow.
Mark
Sent from my iPhone
On Feb 8, 2017, at 9:16 PM, Paramveer Jain <[email protected]<mailto:[email protected]>> wrote:
Hello all,
I have gone through the documentation you suggested. After understanding most of the coding I am here with some doubts.
1 > what are controller specific parameters. ? How can I get my controller specific Parameters ?
2> in method
asynStatus PXAxis::move(double position, int relative, double minVelocity, double maxVelocity, double acceleration)
{
asynStatus status;
// static const char *functionName = "moveAxis";
sprintf(pC_->outString_, "%s STX P1 %f %f CR", axisName_, maxVelocity/pulsesPerUnit_, position/pulsesPerUnit_);
status = pC_->writeController();
return status;
}
How will I assign value for maxVelocity and position ???
3> which method in .cpp is responsible for communication between database(.db files) and driver. ?
4> What is importance of following code.?
asynStatus PXController::readBinaryIO()
{
asynStatus status;
// Read the binary inputs
sprintf(outString_, "?P%d", binaryInReg_);
status = writeReadController();
if (!status) {
binaryIn_ = atoi(inString_);
setUIntDigitalParam(0, PXBinaryIn_, binaryIn_, 0xFFFFFFFF);
}
// Read the binary outputs
sprintf(outString_, "?P%d", binaryOutReg_);
status = writeReadController();
if (!status) {
binaryOutRBV_ = atoi(inString_);
setUIntDigitalParam(0, PXBinaryOutRBV_, binaryOutRBV_, 0xFFFFFFFF);
}
callParamCallbacks(0);
return status;
}
I am attaching my .cpp and .h files.
thank you in advance.
On Tue, Feb 7, 2017 at 11:55 PM, Rod Nussbaumer <[email protected]<mailto:[email protected]>> wrote:
We've gone that route (streamDevice) for the relatively pedestrian requirements for the Galil motor controllers we use. No coordinated motion, or programmed movements; just discrete single axis motion with switches at each limit. The polling generates a lot of traffic, so we put the controllers on dedicated LANs. We did attempt to provide functionality that is similar to the motor record functions that we previously used in older applications with OMS VME motor controllers, by using logic in EPICS base records.
So far, we've only encountered a few hiccups and were able to address them easily.
Rod Nussbaumer
TRIUMF
Vancouver, Canada
On 02/07/2017 09:04 AM, Kevin Peterson wrote:
In general, the recommendation to write a model 3 driver is a good one.
Under some circumstances, however, that is far from the easiest option.
If the controller doesn't have a status command that allows queries of
the moving state, it can be awkward and inefficient to make the model 3
driver work well with the motor record, which expects the driver to
reliably set the done bit of the MSTA field.
If the goal is EPICS support and the motor record is not required, I
have found that StreamDevice support
(http://epics.web.psi.ch/software/streamdevice/) is a much better fit
and significantly easier to write.
Kevin
On 2/7/17 3:53 AM, Ralph Lange wrote:
Dear motion specialists,
I am writing on behalf of Paramveer Jain (in CC) who has contacted me
with this issue, but as I have never done motion control integration
with EPICS, I'd rather throw this ball up than send him into the wrong
direction.
He is being tasked with developing EPICS support for a locally developed
motor controller.
The hardware setup can be summarized as:
* Moxa embedded TCP-to-serial converter (NE4110S)
* Serial connection (RS-232)
* Homemade motor controller (based on an AT89C52)
* Ark Motion AMS 3630 stepper motor driver.
The controller software talks ASCII in command/response fashion, e.g.:
* Read position (rotary encoder)
Command: STX U<CR>
Response: STX U pppppp<CR>
pppppp = six digit hex (divide by 640 to get millimeter)
* Go to position (rotary encoder)
Command: STX P1 sss pppppp<CR>
Response: \06 (ACK)
sss = three digit hex (speed in mm/s multiplied by 240)
pppppp = six digit hex (millimeter multiplied by 640)
* ...
What's the best/easiest way to do this? What are the caveats?
Is there a tutorial he could follow?
Is there existing support for another motor that he could start from?
Thanks a lot for your help!
~Ralph
--
With Regards,
Paramveer Jain
<PXMotorDriver.cpp>
<PXMotorDriver.h>
- Replies:
- Re: How to support a new stepper motor controller? Torsten Bögershausen
- References:
- How to support a new stepper motor controller? Ralph Lange
- Re: How to support a new stepper motor controller? Kevin Peterson
- Re: How to support a new stepper motor controller? Rod Nussbaumer
- Re: How to support a new stepper motor controller? Paramveer Jain
- Navigate by Date:
- Prev:
Re: How to support a new stepper motor controller? Paramveer Jain
- Next:
Re: How to support a new stepper motor controller? Torsten Bögershausen
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
<2017>
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: How to support a new stepper motor controller? Paramveer Jain
- Next:
Re: How to support a new stepper motor controller? Torsten Bögershausen
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
<2017>
2018
2019
2020
2021
2022
2023
2024
|