SCATECH EV1616DN - Example config

More
23 Aug 2024 15:12 #308469 by jimwhiting
SCATECH EV1616DN - Example config was created by jimwhiting
Hopefully this will assist someone.

I have tested the SCATECH 16 in 16 out EtherCAT board. Below is my config.
    <slave idx="3" type="generic" vid="00000d37" pid="000f0001" configPdos="false" name="EV1616DN-V2.2">
     <dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
     <syncManager idx="2" dir="out">
        <pdo idx="1601">
         <pdoEntry idx="7010" subIdx="01" bitLen="1" halPin="out1" halType="bit"/>
         <pdoEntry idx="7010" subIdx="02" bitLen="1" halPin="out2" halType="bit"/>
         <pdoEntry idx="7010" subIdx="03" bitLen="1" halPin="out3" halType="bit"/>
         <pdoEntry idx="7010" subIdx="04" bitLen="1" halPin="out4" halType="bit"/>
         <pdoEntry idx="7010" subIdx="05" bitLen="1" halPin="out5" halType="bit"/>
         <pdoEntry idx="7010" subIdx="06" bitLen="1" halPin="out6" halType="bit"/>
         <pdoEntry idx="7010" subIdx="07" bitLen="1" halPin="out7" halType="bit"/>
         <pdoEntry idx="7010" subIdx="08" bitLen="1" halPin="out8" halType="bit"/>
         <pdoEntry idx="7010" subIdx="09" bitLen="1" halPin="out9" halType="bit"/>
         <pdoEntry idx="7010" subIdx="0a" bitLen="1" halPin="out10" halType="bit"/>
         <pdoEntry idx="7010" subIdx="0b" bitLen="1" halPin="out11" halType="bit"/>
         <pdoEntry idx="7010" subIdx="0c" bitLen="1" halPin="out12" halType="bit"/>
         <pdoEntry idx="7010" subIdx="0d" bitLen="1" halPin="out13" halType="bit"/>
         <pdoEntry idx="7010" subIdx="0e" bitLen="1" halPin="out14" halType="bit"/>
         <pdoEntry idx="7010" subIdx="0f" bitLen="1" halPin="out15" halType="bit"/>
         <pdoEntry idx="7010" subIdx="10" bitLen="1" halPin="out16" halType="bit"/>
        </pdo>
     </syncManager>
     <syncManager idx="3" dir="in">
        <pdo idx="1a00">
         <pdoEntry idx="6000" subIdx="01" bitLen="1" halPin="e-stop" halType="bit"/>
         <pdoEntry idx="6000" subIdx="02" bitLen="1" halPin="carousel-unlocked" halType="bit"/>
         <pdoEntry idx="6000" subIdx="03" bitLen="1" halPin="carousel-locked" halType="bit"/>
         <pdoEntry idx="6000" subIdx="04" bitLen="1" halPin="input4" halType="bit"/>
         <pdoEntry idx="6000" subIdx="05" bitLen="1" halPin="input5" halType="bit"/>
         <pdoEntry idx="6000" subIdx="06" bitLen="1" halPin="input6" halType="bit"/>
         <pdoEntry idx="6000" subIdx="07" bitLen="1" halPin="input7" halType="bit"/>
         <pdoEntry idx="6000" subIdx="08" bitLen="1" halPin="input8" halType="bit"/>
         <pdoEntry idx="6000" subIdx="09" bitLen="1" halPin="input9" halType="bit"/>
         <pdoEntry idx="6000" subIdx="10" bitLen="1" halPin="input10" halType="bit"/>
         <pdoEntry idx="6000" subIdx="11" bitLen="1" halPin="input11" halType="bit"/>
         <pdoEntry idx="6000" subIdx="12" bitLen="1" halPin="input12" halType="bit"/>
         <pdoEntry idx="6000" subIdx="13" bitLen="1" halPin="input13" halType="bit"/>
         <pdoEntry idx="6000" subIdx="14" bitLen="1" halPin="input14" halType="bit"/>
         <pdoEntry idx="6000" subIdx="15" bitLen="1" halPin="input15" halType="bit"/>
         <pdoEntry idx="6000" subIdx="16" bitLen="1" halPin="input16" halType="bit"/>
        </pdo>
     </syncManager>
    </slave>
 
The following user(s) said Thank You: tommylight, rodw

Please Log in or Create an account to join the conversation.

More
14 Mar 2025 05:48 #323887 by darrylb123
Replied by darrylb123 on topic SCATECH EV1616DN - Example config
I just got a SCATECH EV1616DN module with the view of using it instead of parports. I have the hal operating the module.
I used github.com/pklopping/linuxcnc-ethercat-b...asic_digital_outputs for reference.
I'm lost as to how to integrate this back into a linuxcnc hal file generated by stepconf.
I assumed that I could simply change the parport references to lcec but, for example' there are no -reset pins etc.
Can you point me at an example of a compete configuration using ethercat?

Please Log in or Create an account to join the conversation.

More
14 Mar 2025 06:52 #323889 by unknown
Replied by unknown on topic SCATECH EV1616DN - Example config
The hal_parport driver creates the pins & such and also talks directly to the parallel port hardware. I'm not sure if want you do is possible. I would imagine it would require a very special real time driver. I would also guess you wouldn't get any extra performance over using a parallel port as the step & direction timings would be created by the Linuxcnc software.

Please Log in or Create an account to join the conversation.

More
14 Mar 2025 07:08 #323892 by rodw
Replied by rodw on topic SCATECH EV1616DN - Example config
you need to write your hal by hand. check the stiickies and start with an example config.

Please Log in or Create an account to join the conversation.

More
14 Mar 2025 09:41 #323899 by darrylb123
Replied by darrylb123 on topic SCATECH EV1616DN - Example config
stiickies?
I have a working config using 2 parallel ports. Can I start with that?
I am using closed loop steppers.
I undestand that I will have to add invert pins etc.
The reset pin has me confused. Is it to generate a particular pulse width?

Please Log in or Create an account to join the conversation.

More
14 Mar 2025 09:45 #323900 by darrylb123
Replied by darrylb123 on topic SCATECH EV1616DN - Example config
I'm not chasing better performance. I'm chasing a configuration that will work with modern hardware (no slots or parallel ports). I thought ethercat might be a means of getting there. I saw the above post and assumed that this hardware would do what I wanted.

Please Log in or Create an account to join the conversation.

More
14 Mar 2025 11:51 #323915 by unknown
Replied by unknown on topic SCATECH EV1616DN - Example config
You're just making life hard for yourself if you want a reliable solution. But if you want to go down that path good luck.

Firstly I read this:
linuxcnc.org/docs/html/man/man9/hal_parport.9.html
Then read:
github.com/LinuxCNC/linuxcnc/blob/master...rivers/hal_parport.c

That should give you an insight into the hal parallel port driver works.

Now the task would be writing a realtime driver that mimics the functions of the haL-parport driver and talks to the the ethercat hardware. Once again the limiting factor will be the latency as this will affect the base thread period and the step speed.

Personally I think a Mesa card, 7i92 would be a simple upgrade to a 2 port parallel port system, is the way to go. This is the most mature & supported option.

There are also 2 really well supported & mature projects, Remora & Linuxcnc-RIO that can be used instead of want you want to do.

BTW I have created a couple of boards to use with an FPGA that can be used with Linuxcnc-RIO that will give you about 3x17 pin ports that can be used with a chinese breakout board, 1x12 pin port a 1x6 pin port and a 1x3 pin port.
This can also run modified Mesa 7c81 firmware to either connect to an RPi4/5 or (probably not of interest to you) to a PC via EPP interface.
I'm also toying with the idea of an Ethernet interface as well, but this is just in the "what if" stages.

Please Log in or Create an account to join the conversation.

More
15 Mar 2025 04:45 #323987 by darrylb123
Replied by darrylb123 on topic SCATECH EV1616DN - Example config
Pardon my confusion.
There seem to be a lot of supported modules, I haven't looked at the capabilities of each one. What is the ethercat support for in Linuxcnc if not for IO?
Why would I need to write my own real time driver when the existing one is loaded real time? It seems to work.

I'm fine with creating my own HAL file . Where are the example configs? If I google linuxcnc 3 axis hal example, there are only people on this forum asking similar questions. The documentation only contains snippets. This is why I expected to start with my existing hal file created by stepconf

Please Log in or Create an account to join the conversation.

More
15 Mar 2025 05:26 #323989 by Hakan
Replied by Hakan on topic SCATECH EV1616DN - Example config
Sounds like you want to use this IO board to drive Step/dir signals for a stepper motor driver.
It will work kind of but you will be severly restricted by the slow speed of the servo thread. 
Say 1 ms servo thread, which is normal, and you will get max 500 steps per second. You will need 10 times more than that, easily.
The following user(s) said Thank You: unknown

Please Log in or Create an account to join the conversation.

More
15 Mar 2025 05:37 #323990 by unknown
Replied by unknown on topic SCATECH EV1616DN - Example config
Ethercat will work with Ethercat servo\stepper drives and other Ethercat devices, unfortunately my endeavors and experiments have been in other areas.

Linuxcnc comes with a plethora and sample & simulation configs, but what you want to do may not be even possible or may require more work than you've assumed. Have you explored the Linuxcnc menus, tried a simulation config, read the Linuxcnc docs ?
Did you even bother to have a look at the 2 links I gave you ? One of them explains the reset function.
When you try to run a config that you think will work what errors if any are you gettting ?
Are you getting any output at all ?
Have you got access to a logic analyser or 'scope ?

Does Ethercat hardware support updates every 25000ns, as this would have to match the base thread timing. Otherwise the steppers are going to be very very slow with updates every 1ms.

The best bet would be just to get a single axis moving, as a proof of concept and evaluate the performance.

There is a lot that you may have assumed & expected that may not be the case or possible.
Tho it does sound like a reasonable & unique idea, but I think you may be delving into unknown territory. So you make have to come up with a lot of solutions on your own.
No one would try and shut you down, but there maybe more hurdles than you realise.
In honesty I don't see how it would be an improvement over an external board that generates step & direction timings. Or an ethercat driver servo/stepper driver.

Please Log in or Create an account to join the conversation.

Time to create page: 0.071 seconds
Powered by Kunena Forum