Ethercat HAL driver
04 Oct 2016 09:45 #81207
by cgc
Replied by cgc on topic Ethercat HAL driver
Hi Jolli,
is it possible to send the parameters with CoE?
regards Frank
is it possible to send the parameters with CoE?
regards Frank
Please Log in or Create an account to join the conversation.
06 Oct 2016 12:10 - 06 Oct 2016 12:12 #81298
by jolli
Replied by jolli on topic Ethercat HAL driver
Hi,
CoE doesn't seem to be an option for configuration link , only for synchronization.
I had missed an error message while uploading parameters, a problem that has been mentioned a couple times in etherlab-users mailing list. IDN P-0-0150, encoder configuration, is longer than others (228B), and should be sent in two parts. Snooping on TwinCAT, first packet is sent just as SoE packet with FragmentsLeft, and the second one sends rest of data with IDN headers; then, the servo driver acknowledges the transfer. Etherlab-master sends the first part, but second is left out, and when next configuration packet comes the servo driver responds with 7003 Malformed Packet - rightly so.
The mailing list discussions never came to any conclusion on the error, so I'll have to dig on this - any clues?
BR, Jolli
CoE doesn't seem to be an option for configuration link , only for synchronization.
I had missed an error message while uploading parameters, a problem that has been mentioned a couple times in etherlab-users mailing list. IDN P-0-0150, encoder configuration, is longer than others (228B), and should be sent in two parts. Snooping on TwinCAT, first packet is sent just as SoE packet with FragmentsLeft, and the second one sends rest of data with IDN headers; then, the servo driver acknowledges the transfer. Etherlab-master sends the first part, but second is left out, and when next configuration packet comes the servo driver responds with 7003 Malformed Packet - rightly so.
The mailing list discussions never came to any conclusion on the error, so I'll have to dig on this - any clues?
BR, Jolli
Last edit: 06 Oct 2016 12:12 by jolli.
Please Log in or Create an account to join the conversation.
15 Oct 2016 21:39 #81673
by jolli
Replied by jolli on topic Ethercat HAL driver
Update regarding IDN writing:
As the first part was sent a-ok with ethercat-tool but second part never
appeared, I tried sending first more than fragment-length of the data, and
then the second part in another call. The first part quits with timeout,
but after second part the write can be confirmed full and successful with
'ethercat soe_read'. (ethercat-tool has been patched to accept hex-ascii)
Following part is for reference for anyone else dealing with this:
Commands, data cut:
dmesg, rather intresting value for timeout:
As the first part was sent a-ok with ethercat-tool but second part never
appeared, I tried sending first more than fragment-length of the data, and
then the second part in another call. The first part quits with timeout,
but after second part the write can be confirmed full and successful with
'ethercat soe_read'. (ethercat-tool has been patched to accept hex-ascii)
Following part is for reference for anyone else dealing with this:
Commands, data cut:
ethercat soe_write -t hex_ascii 0 S-0-0150 e000e000070000004861.... ;more than 118 bytes
ethercat soe_write -t hex_ascii 0 S-0-0150 00000000000000000200... ;final 110 bytes
dmesg, rather intresting value for timeout:
[ 8279.973142] EtherCAT DEBUG 0-0: Scheduling SoE write request.
[ 8279.975524] EtherCAT DEBUG 0-0: Processing SoE request...
[ 8279.975535] EtherCAT DEBUG 0-0: Writing IDN 0x8096 of drive 0 (228 byte).
[ 8279.975544] EtherCAT DEBUG 0-0: SCC write request:
--- 8< data cut 8< ---
[ 8279.983531] EtherCAT ERROR 0-0: Timeout after 17179717 ms while waiting for write response.
[ 8279.983544] EtherCAT ERROR 0-0: Writing IDN 0x8096 failed.
[ 8279.983567] EtherCAT ERROR 0-0: Failed to process SoE request.
[ 8279.983575] EtherCAT DEBUG 0-0: Processing register request...
[ 8279.985273] EtherCAT DEBUG 0-0: Scheduling SoE write request.
[ 8279.987517] EtherCAT DEBUG 0-0: Register request successful.
[ 8279.987537] EtherCAT DEBUG 0-0: Processing SoE request...
[ 8279.987547] EtherCAT DEBUG 0-0: Writing IDN 0x8096 of drive 0 (110 byte).
[ 8279.987565] EtherCAT DEBUG 0-0: SCC write request:
--- 8< data cut 8< ---
[ 8279.999492] EtherCAT DEBUG 0-0: SCC write response:
[ 8279.999499] EtherCAT DEBUG: 04 40 96 80
[ 8279.999512] EtherCAT DEBUG 0-0: Finished SoE request.
[ 8279.999544] EtherCAT DEBUG 0: Finished SoE write request.
Please Log in or Create an account to join the conversation.
15 Oct 2016 21:46 - 15 Oct 2016 21:51 #81674
by jolli
Replied by jolli on topic Ethercat HAL driver
Moving on:
Although the configuration data is (should be) ok, servos still don't go OP. After configuring with ethercat-tool and starting system (start halrun, load modules, load lcec_conf, start) everything else seems to work according to dmesg (ec_master debuglevel set to 1) but synchronising.. well, it's interesting. I plotted all "EtherCAT DEBUG 0-0: Sync after x ms: y ns" output in following picture:
Looks like the system doesn't even try to synchronize? From what I see, I guess the servo configuration is reset and DC is simply not running?
dmesg from the run, until sync messages start:
Although the configuration data is (should be) ok, servos still don't go OP. After configuring with ethercat-tool and starting system (start halrun, load modules, load lcec_conf, start) everything else seems to work according to dmesg (ec_master debuglevel set to 1) but synchronising.. well, it's interesting. I plotted all "EtherCAT DEBUG 0-0: Sync after x ms: y ns" output in following picture:
Looks like the system doesn't even try to synchronize? From what I see, I guess the servo configuration is reset and DC is simply not running?
dmesg from the run, until sync messages start:
EtherCAT: Requesting master 0...
EtherCAT DEBUG 0: IDLE -> OPERATION.
EtherCAT: Successfully requested master 0.
EtherCAT DEBUG 0: ecrt_master_callbacks(master = 0xf3788000, send_cb = 0xfafcd029, receive_cb = 0xfafcd02e, cb_data = 0xf26de640)
EtherCAT DEBUG 0: ecrt_master_create_domain(master = 0xf3788000)
EtherCAT DEBUG 0: Created domain 0.
EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xf3788000, alias = 0, position = 0, vendor_id = 0x00000002, product_code = 0x14516012)
EtherCAT DEBUG 0: Creating slave configuration for 0:0, 0x00000002/0x14516012.
EtherCAT DEBUG 0 0:0: Attached slave 0.
EtherCAT DEBUG 0 0:0: ecrt_slave_config_dc(sc = 0xf419c000, assign_activate = 0x0730, sync0_cycle = 250000, sync0_shift = 50000, sync1_cycle = 2000000, sync1_shift = 0
EtherCAT DEBUG 0: ecrt_domain_reg_pdo_entry_list(domain = 0xf2ff9fc0, regs = 0xf2e5b0c0)
EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xf3788000, alias = 0, position = 0, vendor_id = 0x00000002, product_code = 0x14516012)
EtherCAT DEBUG 0 0:0: ecrt_slave_config_reg_pdo_entry(sc = 0xf419c000, index = 0x0086, subindex = 0x00, domain = 0xf2ff9fc0, bit_position = 0xfaf811c8)
EtherCAT DEBUG 0: Domain 0: Added 12 bytes, total 12.
EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xf3788000, alias = 0, position = 0, vendor_id = 0x00000002, product_code = 0x14516012)
EtherCAT DEBUG 0 0:0: ecrt_slave_config_reg_pdo_entry(sc = 0xf419c000, index = 0x0024, subindex = 0x00, domain = 0xf2ff9fc0, bit_position = 0xfaf812a8)
EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xf3788000, alias = 0, position = 0, vendor_id = 0x00000002, product_code = 0x14516012)
EtherCAT DEBUG 0 0:0: ecrt_slave_config_reg_pdo_entry(sc = 0xf419c000, index = 0x0086, subindex = 0x00, domain = 0xf2ff9fc0, bit_position = 0xfaf81388)
EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xf3788000, alias = 0, position = 0, vendor_id = 0x00000002, product_code = 0x14516012)
EtherCAT DEBUG 0 0:0: ecrt_slave_config_reg_pdo_entry(sc = 0xf419c000, index = 0x0024, subindex = 0x00, domain = 0xf2ff9fc0, bit_position = 0xfaf81468)
EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xf3788000, alias = 0, position = 0, vendor_id = 0x00000002, product_code = 0x14516012)
EtherCAT DEBUG 0 0:0: ecrt_slave_config_reg_pdo_entry(sc = 0xf419c000, index = 0x0087, subindex = 0x00, domain = 0xf2ff9fc0, bit_position = 0xfaf81548)
EtherCAT DEBUG 0: Domain 0: Added 12 bytes, total 24.
EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xf3788000, alias = 0, position = 0, vendor_id = 0x00000002, product_code = 0x14516012)
EtherCAT DEBUG 0 0:0: ecrt_slave_config_reg_pdo_entry(sc = 0xf419c000, index = 0x0033, subindex = 0x00, domain = 0xf2ff9fc0, bit_position = 0xfaf81628)
EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xf3788000, alias = 0, position = 0, vendor_id = 0x00000002, product_code = 0x14516012)
EtherCAT DEBUG 0 0:0: ecrt_slave_config_reg_pdo_entry(sc = 0xf419c000, index = 0x0087, subindex = 0x00, domain = 0xf2ff9fc0, bit_position = 0xfaf81708)
EtherCAT DEBUG 0: ecrt_master_slave_config(master = 0xf3788000, alias = 0, position = 0, vendor_id = 0x00000002, product_code = 0x14516012)
EtherCAT DEBUG 0 0:0: ecrt_slave_config_reg_pdo_entry(sc = 0xf419c000, index = 0x0033, subindex = 0x00, domain = 0xf2ff9fc0, bit_position = 0xfaf817e8)
EtherCAT DEBUG 0: ecrt_master_activate(master = 0xf3788000)
EtherCAT DEBUG 0: Adding datagram pair with expected WC 3.
EtherCAT 0: Domain0: Logical address 0x00000000, 24 byte, expected working counter 3.
EtherCAT 0: Datagram domain0-0-main: Logical offset 0x00000000, 24 byte, type LRW.
EtherCAT DEBUG 0: Stopping master thread.
EtherCAT DEBUG 0: Master IDLE thread exiting...
EtherCAT 0: Master thread exited.
EtherCAT DEBUG 0: FSM datagram is f3788488.
EtherCAT 0: Starting EtherCAT-OP thread.
EtherCAT DEBUG 0: Operation thread running with fsm interval = 4000 us, max data size=45000
EtherCAT WARNING 0: 248 datagrams UNMATCHED!
EtherCAT DEBUG 0-0: Processing register request...
RTAPI: ERROR: Unexpected realtime delay on task 1
This Message will only display once per session.
Run the Latency Test and resolve before continuing.
EtherCAT DEBUG 0: Datagram f3788520 already queued (skipping).
--- repeated 15 times ---
EtherCAT DEBUG 0: UNMATCHED datagram:
EtherCAT DEBUG: 05 18 01 00 10 09 04 80 00 00 E8 B9 25 04 01 00
--- type repeated 15 times ---
EtherCAT DEBUG 0: Configuration changed (aborting state check).
EtherCAT DEBUG 0-0: Checking system time offset.
EtherCAT DEBUG 0-0: Register request successful.
EtherCAT DEBUG 0-0: DC 32 bit system time offset calculation: system_time=3933703680 (corrected with 4000000), app_time=529501164825473000, diff=454844904
EtherCAT DEBUG 0-0: Setting time offset to 454844904 (was 0)
EtherCAT DEBUG 0: Requesting OP...
EtherCAT DEBUG 0-0: Changing state from PREOP to OP.
EtherCAT DEBUG 0-0: Configuring...
EtherCAT DEBUG 0-0: Now in INIT.
EtherCAT DEBUG 0-0: Clearing FMMU configurations...
EtherCAT DEBUG 0-0: Clearing sync manager configurations...
EtherCAT DEBUG 0-0: Clearing DC assignment...
EtherCAT DEBUG 0-0: Configuring mailbox sync managers...
EtherCAT DEBUG 0-0: SM0: Addr 0x1800, Size 128, Ctrl 0x26, En 1
EtherCAT DEBUG 0-0: SM1: Addr 0x1A00, Size 128, Ctrl 0x22, En 1
EtherCAT DEBUG 0-0: Assigning SII access to PDI.
EtherCAT DEBUG 0-0: Now in PREOP.
EtherCAT DEBUG 0-0: Assigning SII access back to EtherCAT.
EtherCAT DEBUG 0-0: SM2: Addr 0x1000, Size 12, Ctrl 0x24, En 1
EtherCAT DEBUG 0-0: SM3: Addr 0x1100, Size 12, Ctrl 0x22, En 1
EtherCAT DEBUG 0 0:0: FMMU: LogAddr 0x00000000, Size 12, PhysAddr 0x1000, SM2, Dir out
EtherCAT DEBUG 0 0:0: FMMU: LogAddr 0x0000000C, Size 12, PhysAddr 0x1100, SM3, Dir in
EtherCAT DEBUG 0-0: Setting DC cycle times to 250000 / 2000000.
EtherCAT DEBUG 0-0: Checking for synchrony.
EtherCAT DEBUG 0-0: Sync after 0 ms: 48281492 ns
Last edit: 15 Oct 2016 21:51 by jolli.
Please Log in or Create an account to join the conversation.
08 Nov 2016 01:45 #82576
by Lixiaohui
I have encountered the same problem with you, so whether you have resolved this or not?
Replied by Lixiaohui on topic Ethercat HAL driver
hello
I tried several times with the mentioned steps, but I failed to get the whole thing to work, please help me to understand what I am missing. I am a newbie in linuxcnc, and my experience with linux itself is limited . The following are the steps that I made:
Step 0 : you need to install Debian Linuxcnc with RTAI core (I failed to do the following procedure when I tried Linux with
RT Preemption). The following procedure was fully tested with Linux Debian-7.9'-'3.4-9-rtai-686-pae' linuxcnc.
First Part: Intallation of Eathercatlab Hal Component
1st Download ethercat master from IgH from here:
www.etherlab.org/download/ethercat/ethercat-1.5.2.tar.bz2
2nd Open a shellTerminal, and go to the folder that contains the ethercat master, and Untar the file
3rd download debian folder from sittner from here:
github.com/sittner/ec-debianize/archive/master.zip
4th Unzip the file "ec-debianize-master.zip"
5th copy debian folder (the was produced in 4th step) to /ethercat-1.5.2/ (that was produced 2nd step)
6th now in the shell terminal, use the following instructions:
cd ethercat-1.5.2
cd debian
./configure -a
cd ..
sudo apt-get update
dpkg-checkbuilddeps
(I was missing dpatch package)
dpkg-buildpackage
wait until it finishes building. use command "cd .." in the shell to go to the parent directory.
You will find two files : etherlabmaster-dev_1.5.2+hg4b0b90_i386.deb , etherlabmaster_1.5.2+hg4b0b90_i386.deb
7th sudo dpkg -i etherlabmaster_1.5.2+hg4b0b90_i386.deb
8th edit the file : "/etc/default/ethercat"
9th sudo update-ethercat-config
10th sudo dpkg -i etherlabmaster-dev_1.5.2+hg4b0b90_i386.deb
11th restart the machine to get the driver loaded at start. After that you can execute # ethercat master in terminal
Second Part : Installation of linuxcnc with lcec Hal Driver
1st Download sittner linuxcnc modification with lcec inside:
# git clone github.com/sittner/linuxcnc-ethercat.git linuxcnc-ethercat
# cd linuxcnc-ethercat
2nd # make
3rd # sudo make install
4th cd linuxcnc-ethercat/src
5th Build
6th make
7th sudo make install
8th . Copy the built binary to the ethercat directory : sudo cp lcec_conf /usr/bin/
9th restart
after all of this I get the following error when I run the example CDP17_x:
Debug file information:
Error: could not insert module /usr/realtime-3.4-9-rtai-686-pae/modules/linuxcnc/lcec.ko: Invalid parameters
./cpd17_x.hal:2: exit value: 1
./cpd17_x.hal:2: insmod for lcec failed, returned -1
See the output of 'dmesg' for more information.
4645
PID TTY STAT TIME COMMAND
Stopping realtime threads
Unloading hal components
how can I resolve this??
I have encountered the same problem with you, so whether you have resolved this or not?
Please Log in or Create an account to join the conversation.
08 Nov 2016 11:43 #82582
by Lixiaohui
Replied by Lixiaohui on topic Ethercat HAL driver
Maybe you have to confirm that you have connected the master and corresponding slave in the XML file.
Please Log in or Create an account to join the conversation.
09 Nov 2016 06:24 #82602
by cgc
Replied by cgc on topic Ethercat HAL driver
Hi,
what is your hardware?
regards Frank
what is your hardware?
regards Frank
Please Log in or Create an account to join the conversation.
02 Dec 2016 15:36 - 02 Dec 2016 20:13 #83580
by jerryCNC
Replied by jerryCNC on topic Ethercat HAL driver
Hi, Jolli:
I am studying AX5000 drive too, but fall far behind than you. When you wrote:
"...As linuxcnc-ethercat doesn't support SoE init configuration, I've tried to upload the data with a script using "ethercat soe_write" or by plugging ethercat cable to a machine running TwinCAT in config/freerun state. ..."
For so-called "ethercat soe_write", I guess you are calling "ecrt_master_write_idn()" from "lcec_write_master()", right?
Could you please provide the complete file for using "ethercat soe_write"?
Thanks
Jerry
I am studying AX5000 drive too, but fall far behind than you. When you wrote:
"...As linuxcnc-ethercat doesn't support SoE init configuration, I've tried to upload the data with a script using "ethercat soe_write" or by plugging ethercat cable to a machine running TwinCAT in config/freerun state. ..."
For so-called "ethercat soe_write", I guess you are calling "ecrt_master_write_idn()" from "lcec_write_master()", right?
Could you please provide the complete file for using "ethercat soe_write"?
Thanks
Jerry
Last edit: 02 Dec 2016 20:13 by jerryCNC.
Please Log in or Create an account to join the conversation.
08 Feb 2017 16:43 - 08 Feb 2017 16:46 #87582
by LinuxBen
Replied by LinuxBen on topic Ethercat HAL driver
Hello
I'm new to LinuxCNC and at the foot of steep learning curve as it seems.
My Beckhoff Devices/Modules:
- EK1101 Bus coupler, unsupported (the same as EK1100 which is supported, but the EK1101 has a selectable address)
- BK1250 K-Bus Translator, unsupported, enables to use of "old" K-Bus Devices on the EtherCat bus. Probably no own functionality but it maps any number of K-Bus-Devices.
- KL1104, 4 Inputs
- KL2114, 4 Outputs
- 4 pieces of KL2531, Stepper Drivers
What worked on Linux:
- LinuxCNC 2.7 wheezy installed.
- EtherCat Hal driver installed : wiki.linuxcnc.org/cgi-bin/wiki.pl?EtherCatDriver
- I can see the connected devices
user@phywe:~/linuxcnc/configs/phywe$ ethercat slaves
0 0:0 PREOP + EK1101 EtherCAT-Koppler (2A E-Bus, ID-Switch)
1 0:1 PREOP + BK1250 Koppler zwischen E-Bus- und K-Bus-Klemmen
What worked on Windows:
- Visual Studio install
- Twincat 3
- I can connect the Windows Box to the Beckhoff device and see the nodes of the devices.
So far so good.
But as you maybe know, the Beckhoff devices from my setup are not supported by the ethercat driver. So I assume I have to use generic type in XML configuration.
Questions:
1. If the EtherCatDriver does not support the Beckhoff Modules I have, then I still can use them by creating a "generic type" XML file for them?
2. I struggled to find a way to extract the "sdo" and "syncmaster" stuff. Where can I do it? I only found the option "Export XML Description" under the "TwinCat" Tab in Visual Studio. Please see the attached files.
3. If I will be able to compile that XML file, what is the way to test it? Is it ok to load the XML with
halrun
and then
halcmd: loadusr -W lcec_conf /home/user/linuxcnc/configs/phywe/ethercat-conf.xml
and some more commands? I'm still investigating this...sorry
Unfortunately I don't have any of the already implemented devices found on the web, so I cannot compare XML outputs.
If somebody has a pro-tip, you are welcome!
Ben
I'm new to LinuxCNC and at the foot of steep learning curve as it seems.
My Beckhoff Devices/Modules:
- EK1101 Bus coupler, unsupported (the same as EK1100 which is supported, but the EK1101 has a selectable address)
- BK1250 K-Bus Translator, unsupported, enables to use of "old" K-Bus Devices on the EtherCat bus. Probably no own functionality but it maps any number of K-Bus-Devices.
- KL1104, 4 Inputs
- KL2114, 4 Outputs
- 4 pieces of KL2531, Stepper Drivers
What worked on Linux:
- LinuxCNC 2.7 wheezy installed.
- EtherCat Hal driver installed : wiki.linuxcnc.org/cgi-bin/wiki.pl?EtherCatDriver
- I can see the connected devices
user@phywe:~/linuxcnc/configs/phywe$ ethercat slaves
0 0:0 PREOP + EK1101 EtherCAT-Koppler (2A E-Bus, ID-Switch)
1 0:1 PREOP + BK1250 Koppler zwischen E-Bus- und K-Bus-Klemmen
What worked on Windows:
- Visual Studio install
- Twincat 3
- I can connect the Windows Box to the Beckhoff device and see the nodes of the devices.
So far so good.
But as you maybe know, the Beckhoff devices from my setup are not supported by the ethercat driver. So I assume I have to use generic type in XML configuration.
Questions:
1. If the EtherCatDriver does not support the Beckhoff Modules I have, then I still can use them by creating a "generic type" XML file for them?
2. I struggled to find a way to extract the "sdo" and "syncmaster" stuff. Where can I do it? I only found the option "Export XML Description" under the "TwinCat" Tab in Visual Studio. Please see the attached files.
3. If I will be able to compile that XML file, what is the way to test it? Is it ok to load the XML with
halrun
and then
halcmd: loadusr -W lcec_conf /home/user/linuxcnc/configs/phywe/ethercat-conf.xml
and some more commands? I'm still investigating this...sorry
Unfortunately I don't have any of the already implemented devices found on the web, so I cannot compare XML outputs.
If somebody has a pro-tip, you are welcome!
Ben
Last edit: 08 Feb 2017 16:46 by LinuxBen. Reason: Attachments are in the middle of the text, sorry for this.
Please Log in or Create an account to join the conversation.
08 Feb 2017 16:58 - 08 Feb 2017 16:59 #87586
by sirop
1. Yes, you can.
2. linuxcnc-ethercat uses the so called raw SDO. It is a toil. So rather preconfigure your slaves with a bash scripts consisting ofSee, for instance, github.com/sirop/linuxcnc-ethercat/blob/...pley/setPDO_FAULT.sh .
What do you mean by "syncmaster" stuff? A Hex value for DC configuration? This can be read out from your ESI xml file.
3. Yes, that's right.
Replied by sirop on topic Ethercat HAL driver
Questions:
1. If the EtherCatDriver does not support the Beckhoff Modules I have, then I still can use them by creating a "generic type" XML file for them?
2. I struggled to find a way to extract the "sdo" and "syncmaster" stuff. Where can I do it? I only found the option "Export XML Description" under the "TwinCat" Tab in Visual Studio. Please see the attached files.
3. If I will be able to compile that XML file, what is the way to test it? Is it ok to load the XML with
halrun
and then
halcmd: loadusr -W lcec_conf /home/user/linuxcnc/configs/phywe/ethercat-conf.xml
and some more commands? I'm still investigating this...sorry
Unfortunately I don't have any of the already implemented devices found on the web, so I cannot compare XML outputs.
If somebody has a pro-tip, you are welcome!
Ben
1. Yes, you can.
2. linuxcnc-ethercat uses the so called raw SDO. It is a toil. So rather preconfigure your slaves with a bash scripts consisting of
ethercat download -PNumber -tType Index Subindex Value
What do you mean by "syncmaster" stuff? A Hex value for DC configuration? This can be read out from your ESI xml file.
3. Yes, that's right.
Last edit: 08 Feb 2017 16:59 by sirop. Reason: typo
The following user(s) said Thank You: Nico2017
Please Log in or Create an account to join the conversation.
Time to create page: 0.192 seconds