mirror of
https://github.com/Binary-Coalescence/motorDSM.git
synced 2025-08-04 21:55:40 -05:00
Update README.md
Clearer explanations
This commit is contained in:
43
README.md
43
README.md
@@ -11,28 +11,38 @@ motorDSM contains an example IOC that is built if ``configure/CONFIG_SITE.local`
|
||||
|
||||
# Running an example IOC
|
||||
|
||||
To run the example IOC, in the ``iocs/dsmIOC/iocBoot/iocDsm`` directory, run
|
||||
To run the example IOC, build the packages listed below, then:
|
||||
|
||||
$ ../../bin/linux-x86_64/dsm st.cmd.md90
|
||||
1. Follow the steps in "Configuring the system for attached controllers" below.
|
||||
2. Set the "EPICS_CA_ADDR_LIST" environment variable to include the IP address of the server.
|
||||
If it's running on the same computer, you can use the loopback IP address.
|
||||
`export EPICS_CA_ADDR_LIST='127.0.0.1`
|
||||
3. In the ``iocs/dsmIOC/iocBoot/iocDsm`` directory, run
|
||||
```
|
||||
$ ../../bin/linux-x86_64/dsm st.cmd.md90
|
||||
```
|
||||
|
||||
for one attached MD-90 controller, or
|
||||
```
|
||||
$ ../../bin/linux-x86_64/dsm st.cmd.md90.multi
|
||||
```
|
||||
for eight attached MD-90 controllers. Edit this file to use more than one unit; simply comment out the ones you don't need.
|
||||
|
||||
$ ../../bin/linux-x86_64/dsm st.cmd.md90.multi
|
||||
4. Test using the `caget` and `caput` arguments as described in the "Example usage" section below.
|
||||
|
||||
for eight attached MD-90 controllers.
|
||||
# Configuring the system for attached controllers
|
||||
-------------------------------------------------
|
||||
|
||||
You will need to set the path(s) for the serial port(s) in ``st.cmd.md90`` (for a single unit) or ``st.cmd.md90.multi`` (for multiple units).
|
||||
You will also need to ensure they match the names used in ``motor.substitutions.md90`` (or ``motor.substitutions.md90.multi``).
|
||||
By default, ports are assumed to be at ``/dev/ttyUSB0``, ``/dev/ttyUSB1``, etc.
|
||||
You will also need to comment or uncomment lines depending on the number of drivers you have connected. For each driver, make sure you uncomment/call the following functions:
|
||||
The following steps must be used in either st.cmd.md90 (for a single unit) or in st.cmd.md90.multiple (for multiple units).
|
||||
st.cmd.md90.multiple includes 8 motors predefined on /dev/ttyUSB0 through /dev/ttyUSB7. Comment out all motors you don't need.
|
||||
|
||||
**1. Define a new serial port named "serial0"**
|
||||
**1. Define a new serial port named "serial0" and set the location of the physical port**
|
||||
`drvAsynSerialPortConfigure([serial name], [device location], 0, 0, 0)`
|
||||
*e.g., `drvAsynSerialPortConfigure("serial0", "/dev/ttyUSB0", 0, 0, 0)`*
|
||||
|
||||
**2. Configure the port**
|
||||
- Baud = 115200<br>
|
||||
- Bits = 8<br>
|
||||
- Baud = 115200
|
||||
- Bits = 8
|
||||
- Parity = none
|
||||
- Stop bits = 1
|
||||
- Input end of message: "\r"
|
||||
@@ -64,7 +74,7 @@ asynOctetDisconnect('initConnection')
|
||||
where `[controller name]` is the name of the motor to assign. Convention is to use "MD90n", starting with n=0.
|
||||
|
||||
**5. Intialize the IOC**
|
||||
After calling `iocInit`, run the following lines for each motor. The example below uses `DSM:m0` but it should be run for each line described in motor.substitutions.md90 (or motor.substitutions.md90.multiple).
|
||||
After the call to `iocInit` (still in the st.cmd.md90[.multiple] file), issue the following commands for each motor. The example below uses `DSM:m0` but it should be run for each line described in motor.substitutions.md90 (or motor.substitutions.md90.multiple).
|
||||
````
|
||||
dbpf("DSM:m0.RTRY", "0") #sets retries to 0; this is automatic on the MD90
|
||||
dbpf("DSM:m0.TWV", "0.1") #Tweak distance
|
||||
@@ -72,6 +82,13 @@ dbpf("DSM:m0.VMAX", "1.0") #Sets max velocity to 1 mm/s
|
||||
dbpf("DSM:m0.HVEL", "1.0") #Sets max velocity to 1 mm/s
|
||||
````
|
||||
|
||||
**6. Update the substitutions file**
|
||||
Save and close the st.cmd file you've been configuring, then open the motor substitutions file (motor.substitutions.md90[.multiple]).
|
||||
Ensure the values in the `pattern` block's `PORT` field match the names used in the std.cmd file.
|
||||
Note that, despite this field being called "Port", they use the names of the MD90 Controller object defined above (by default, MD900, MD901, etc.
|
||||
Do __not__ use the direct serial port names (by default, serial0, serial1, etc.).
|
||||
|
||||
|
||||
# Compiling motorDSM
|
||||
|
||||
------------------------
|
||||
@@ -185,4 +202,4 @@ Moving to a position target:
|
||||
|
||||
Setting a velocity target:
|
||||
`./caput DSM:m0.VELO 0.5 #Sets velocity target to 0.5 mm/s`
|
||||
Note that velocity targets are appropriate only. They adjust the step rate of the motor, and are not guaranteed to be exact.
|
||||
(Note that velocity targets are appropriate only. They adjust the step rate of the motor and are not guaranteed to be exact.)
|
Reference in New Issue
Block a user