E-box/User manual: Difference between revisions
(12 intermediate revisions by the same user not shown) | |||
Line 12: | Line 12: | ||
== Library == | == Library == | ||
The library can be found by typing <tt>eclib</tt> in the matlab console. The supported modules are: | The library can be found by typing <tt>eclib</tt> in the matlab console. The supported [http://www.beckhoff.com/english.asp?ethercat/ethercat_terminals.htm Beckhoff EtherCAT] modules are: | ||
* EL1008 | * EL1008 - 8 channel digital input terminal 24V | ||
* EL1014 | * EL1014 - 4 channel digital input terminal 24V | ||
* EL1018 | * EL1018 - 8 channel analog input terminal 24V | ||
* EL2004 | * EL2004 - 4 channel digital output 24V | ||
* EL2008 | * EL2008 - 8 channel digital output 24V | ||
* EL3102 | * EL3102 - 2 channel analog input 10V ..10V differential, 16 bits | ||
* EL4038 | * EL3104 - 4 channel analog input 10V ..10V differential, 16 bits | ||
* EL4132 | * EL4038 - 8 channel analog output -10 tot 10V 12-bit | ||
* EL5101 | * EL4132 - 2 channel analog output -10 tot 10V 16-bit | ||
* EL5002 - 2 channel SSI encoder interface | |||
* EL5101 - 1 channel incremental encoder interface TTL | |||
All S-function blocks have 1 parameter, which must be set, called the '''link_id'''. The link_id is a counter, starting at 0 for each different type of module or device in the EtherCAT stack. | |||
[[File:Linkid.png|120px]] | |||
== Building the real-time code == | == Building the real-time code == | ||
Press "CTRL+B" to build the code. | Press "CTRL+B" to build the code or type <tt>rtwbuild('model')</tt> in the Matlab console. | ||
== Executing the real-time code== | == Executing the real-time code== | ||
=== Without Simulink External Mode === | === Without Simulink External Mode === | ||
Line 59: | Line 65: | ||
# Change the make command to <tt>make_rtw OPTS='-DNETIF_ID=<x>'</tt> | # Change the make command to <tt>make_rtw OPTS='-DNETIF_ID=<x>'</tt> | ||
where <tt><x></tt> is the number of the ethernet controller. The correct ethernet port | where <tt><x></tt> is the number of the ethernet controller. The correct ethernet port is 0 by default. | ||
== Program not executed as root == | == Program not executed as root == | ||
When you forgot to execute the real-time programm as root you will see the following output: | When you forgot to execute the real-time programm as root you will see the following output: | ||
<pre> | |||
Waiting for External Mode start... | |||
ECtarget v1.3 SOEM, M.J.G. v.d. Molengraft & IME Technologies, 2009 | |||
Net interface = eth0. | |||
ec_start reports: opening EtherCAT communication. | |||
ec_start reports: master socket bind on eth0 failed. | |||
EtherCAT initialization failed. | |||
</pre> | |||
= Test programs = | |||
== simple_test == | == simple_test == | ||
Line 75: | Line 88: | ||
where <tt><x></tt> is the number of the ethernet controller. | where <tt><x></tt> is the number of the ethernet controller. | ||
This should give an output similar to: | This should give an output similar to: | ||
<pre> | |||
SOEM (Simple Open EtherCAT Master) | |||
Simple test | |||
Starting simple test | |||
ec_init on eth1 succeeded. | |||
3 slaves found and configured. | |||
Request operational state for all slaves | |||
Operational state reached for all slaves. | |||
Processdata cycle 1 , O: 00 00 00 00 00 00 00 00 I: 00 80 fb ff 00 80 fb ff | |||
Processdata cycle 2 , O: 00 00 00 00 00 00 00 00 I: 00 00 fa ff 00 00 f9 ff | |||
Processdata cycle 3 , O: 00 00 00 00 00 00 00 00 I: 00 00 fa ff 00 00 f9 ff | |||
Processdata cycle 4 , O: 00 00 00 00 00 00 00 00 I: 00 00 fa ff 00 00 f9 ff | |||
Processdata cycle 5 , O: 00 00 00 00 00 00 00 00 I: 00 00 fa ff 00 00 f9 ff | |||
Processdata cycle 6 , O: 00 00 00 00 00 00 00 00 I: 00 00 fa ff 00 00 f9 ff | |||
Processdata cycle 7 , O: 00 00 00 00 00 00 00 00 I: 00 00 fa ff 00 00 f9 ff | |||
Processdata cycle 8 , O: 00 00 00 00 00 00 00 00 I: 00 00 fa ff 00 00 f9 ff | |||
Processdata cycle 9 , O: 00 00 00 00 00 00 00 00 I: 00 00 fa ff 00 00 f9 ff | |||
Processdata cycle 10 , O: 00 00 00 00 00 00 00 00 I: 00 00 fa ff 00 00 f9 ff | |||
Request safe operational state for all slaves | |||
End simple test, close socket | |||
End program | |||
</pre> | |||
== slaveinfo == | == slaveinfo == | ||
Line 86: | Line 120: | ||
where <tt><x></tt> is the number of the ethernet controller. | where <tt><x></tt> is the number of the ethernet controller. | ||
This should give an output similar to: [ | This should give an output similar to: | ||
<pre> | |||
SOEM (Simple Open EtherCAT Master) | |||
Slaveinfo | |||
Starting slaveinfo | |||
ec_init on eth0 succeeded. | |||
1 slaves found and configured. | |||
Slave:1 | |||
Name:E/BOX | |||
Output size: 80bits | |||
Input size: 184bits | |||
State: 4 | |||
Delay: 0[ns] | |||
Has DC: 1 | |||
DCParentport:0 | |||
Activeports:1.0.0.0 | |||
Configured address: 1001 | |||
Man: 00000500 ID: 01107001 Rev: 00000003 | |||
SM0 A:1000 L: 128 F:00010026 | |||
SM1 A:1080 L: 128 F:00010022 | |||
SM2 A:1100 L: 10 F:00010024 | |||
SM3 A:1180 L: 23 F:00010020 | |||
SM types 0:0 1:1 2:2 3:3 | |||
FMMU0 Ls:00000000 Ll: 10 Lsb:0 Leb:7 Ps:1100 Psb:0 Ty:02 Act:01 | |||
FMMU1 Ls:0000000a Ll: 23 Lsb:0 Leb:7 Ps:1180 Psb:0 Ty:01 Act:01 | |||
FMMU2 Ls:00000000 Ll: 0 Lsb:0 Leb:0 Ps:0000 Psb:0 Ty:00 Act:00 | |||
FMMUfunc 0:1 1:0 2:0 3:0 | |||
MBX length: 128 MBX protocols : 04 | |||
CoE details: 17 FoE details: 00 EoE details: 00 SoE details: 00 | |||
Ebus current: 0[mA] | |||
only LRD/LWR:0 | |||
End slaveinfo, close socket | |||
End program | |||
</pre> |
Latest revision as of 11:50, 24 April 2012
Starting an experiment
Starting Matlab
- Open a terminal.
- Type sudo matlab
Basic simulink model
The function of ec_test01 is similar to mini01 for the PATO setup with Tu/eDACS. Open ec_test01 and "Save as" under a different file name in your home directory /home/<username>.
Library
The library can be found by typing eclib in the matlab console. The supported Beckhoff EtherCAT modules are:
- EL1008 - 8 channel digital input terminal 24V
- EL1014 - 4 channel digital input terminal 24V
- EL1018 - 8 channel analog input terminal 24V
- EL2004 - 4 channel digital output 24V
- EL2008 - 8 channel digital output 24V
- EL3102 - 2 channel analog input 10V ..10V differential, 16 bits
- EL3104 - 4 channel analog input 10V ..10V differential, 16 bits
- EL4038 - 8 channel analog output -10 tot 10V 12-bit
- EL4132 - 2 channel analog output -10 tot 10V 16-bit
- EL5002 - 2 channel SSI encoder interface
- EL5101 - 1 channel incremental encoder interface TTL
All S-function blocks have 1 parameter, which must be set, called the link_id. The link_id is a counter, starting at 0 for each different type of module or device in the EtherCAT stack.
Building the real-time code
Press "CTRL+B" to build the code or type rtwbuild('model') in the Matlab console.
Executing the real-time code
Without Simulink External Mode
- Open a terminal.
- Go to the directory where the model is saved.
- Type sudo ./model.
With Simulink External Mode
- Open the simulink model.
- Open a terminal.
- Go to the directory where the model is saved.
- Type sudo ./model -w (in the terminal).
- Click Connect to target.
- Click Start real-time code.
Getting the data
After the experiment the file model.mat will be created with the data from the experiment. Type load model.mat in the matlab console to load the data to the workspace. Data will be saved with rt_ prefix.
Errors
This section gives an overview of possible errors
Wrong ethernet port
- Click Simulation
- Click Configuration parameters
- Click Real-Time Workshop
- Change the make command to make_rtw OPTS='-DNETIF_ID=<x>'
where <x> is the number of the ethernet controller. The correct ethernet port is 0 by default.
Program not executed as root
When you forgot to execute the real-time programm as root you will see the following output:
Waiting for External Mode start... ECtarget v1.3 SOEM, M.J.G. v.d. Molengraft & IME Technologies, 2009 Net interface = eth0. ec_start reports: opening EtherCAT communication. ec_start reports: master socket bind on eth0 failed. EtherCAT initialization failed.
Test programs
simple_test
- Open a terminal.
- Type cd /usr/src/soem/.
- Type sudo ./simple_test eth<x>.
where <x> is the number of the ethernet controller.
This should give an output similar to:
SOEM (Simple Open EtherCAT Master) Simple test Starting simple test ec_init on eth1 succeeded. 3 slaves found and configured. Request operational state for all slaves Operational state reached for all slaves. Processdata cycle 1 , O: 00 00 00 00 00 00 00 00 I: 00 80 fb ff 00 80 fb ff Processdata cycle 2 , O: 00 00 00 00 00 00 00 00 I: 00 00 fa ff 00 00 f9 ff Processdata cycle 3 , O: 00 00 00 00 00 00 00 00 I: 00 00 fa ff 00 00 f9 ff Processdata cycle 4 , O: 00 00 00 00 00 00 00 00 I: 00 00 fa ff 00 00 f9 ff Processdata cycle 5 , O: 00 00 00 00 00 00 00 00 I: 00 00 fa ff 00 00 f9 ff Processdata cycle 6 , O: 00 00 00 00 00 00 00 00 I: 00 00 fa ff 00 00 f9 ff Processdata cycle 7 , O: 00 00 00 00 00 00 00 00 I: 00 00 fa ff 00 00 f9 ff Processdata cycle 8 , O: 00 00 00 00 00 00 00 00 I: 00 00 fa ff 00 00 f9 ff Processdata cycle 9 , O: 00 00 00 00 00 00 00 00 I: 00 00 fa ff 00 00 f9 ff Processdata cycle 10 , O: 00 00 00 00 00 00 00 00 I: 00 00 fa ff 00 00 f9 ff Request safe operational state for all slaves End simple test, close socket End program
slaveinfo
- Open a terminal.
- Type cd /usr/src/soem/.
- Type sudo ./slaveinfo eth<x>.
where <x> is the number of the ethernet controller.
This should give an output similar to:
SOEM (Simple Open EtherCAT Master) Slaveinfo Starting slaveinfo ec_init on eth0 succeeded. 1 slaves found and configured. Slave:1 Name:E/BOX Output size: 80bits Input size: 184bits State: 4 Delay: 0[ns] Has DC: 1 DCParentport:0 Activeports:1.0.0.0 Configured address: 1001 Man: 00000500 ID: 01107001 Rev: 00000003 SM0 A:1000 L: 128 F:00010026 SM1 A:1080 L: 128 F:00010022 SM2 A:1100 L: 10 F:00010024 SM3 A:1180 L: 23 F:00010020 SM types 0:0 1:1 2:2 3:3 FMMU0 Ls:00000000 Ll: 10 Lsb:0 Leb:7 Ps:1100 Psb:0 Ty:02 Act:01 FMMU1 Ls:0000000a Ll: 23 Lsb:0 Leb:7 Ps:1180 Psb:0 Ty:01 Act:01 FMMU2 Ls:00000000 Ll: 0 Lsb:0 Leb:0 Ps:0000 Psb:0 Ty:00 Act:00 FMMUfunc 0:1 1:0 2:0 3:0 MBX length: 128 MBX protocols : 04 CoE details: 17 FoE details: 00 EoE details: 00 SoE details: 00 Ebus current: 0[mA] only LRD/LWR:0 End slaveinfo, close socket End program