Advanced Search

Search Results (Searched for: )

  • thomaseg
  • thomaseg
25 Dec 2024 21:44 - 25 Dec 2024 21:48

Physical safety relay and software estop latch working together?

Category: HAL

Hi,

I've been spending the last couple of days trying to figure out how to make the "software estop" work together with my safety relay. But i'm going in circles and i need a kick from someone, maybe you?

First off, i have this physical circuit to handle the emergency stop logic in hardware:
 
...the idea is that estop should work without any software involvement. And everything should be as redundant as could be. I have dual (safety) contactors(KM1 + KM2) that cuts power to all drives and at the same time prevents resetting the estop-circuit in cause of failure. I have a proper estop-button(it's redundant contacts, but only shown as one here in S5). On top of that i have added an inline relay, K13, which can be triggered by software, aswell as the wire "1" which goes to an input in LinuxCNC in order to tell it the state of the safety relay. There is a short delay(~0,5sec) between the two sets of relays in the safety relay, so ideally the signal to LinuxCNC should be able to tell the servos to emergency stop just before the power is killed. 

So far, so good. Everything works just like i want it. The latching works excellent and the signals to and from LinuxCNC also works as expected....

However, i'm totally going in circles when i try to add an estop latch inside LinuxCNC to work in conjunction with the hardware safety relay. I took inspiration from a thread from the user Unlogic  who seem to have it working. But i end up having a latch #1 that depends on latch #2 that depends on latch #1 again....ehh... so currently i'm just having the inputs tied into LinuxCNC like this:
net estop-loopout iocontrol.0.emc-enable-in    <= lcec.0.DI1.din-0     # This is the signal from wire "1"
net estop-relay   iocontrol.0.user-enable-out  => lcec.0.DO1.dout-3   # This is relay K13
..this "sorta works" and prevents anything powering on before LinuxCNC has booted properly. However the UI experience is kinda bad as i have to press a button extra and there is not really any feedback to the user :-(

SO, the question: Has anyone got a combination of a physical safetyrelay and an estop latch to work "like it should"? I'd be very interested in seeing how others have solved this issue...

/Thomas
  • scotta
  • scotta's Avatar
25 Dec 2024 21:32

Remora - ethernet NVEM / EC300 / EC500 cnc board

Category: Computers and Hardware

1. Convert an ST-Link to a CMSIS-DAP probe by using a a second ST-Link and the ST-Link utility to flash the CMSIS-DAP firmware.

mvdlande.wordpress.com/2015/10/05/cmsis-...ink-v2-mini-adapter/

2. Use pyOCD with the newly flashed CMSIS-DAP probe to flash the firmware to the controller board

python -m pip install -U pyocd
pyocd flash .\remora-rt1052-3.1.3.bin --target mimxrt1050_quadspi

github.com/scottalford75/Remora-RT1052-c...ora-rt1052-3.1.3.bin
  • wrhammer
  • wrhammer
25 Dec 2024 21:20 - 25 Dec 2024 21:23
Python commands lag time for remap was created by wrhammer

Python commands lag time for remap

Category: Advanced Configuration

Hello,
I am converting a Biesse Rover 13s over to LinxCNC and am testing the remap functions with Python and the commands take about 5 seconds to process each one. It's nearly instantaneous from MDI and I don't see any errors in the terminal output when the python command runs. It also works just fine when I reference a straight ,ngc file with REMAP=M201 modalgroup=10 ngc=m201.

Any ideas as to why Python is so slow? I can use the direct ngc remaps but would like to experiment with python also.

Terminal output when running Python
is_callable(oword.remap_m201) = FALSE
Executing remap_m201: Loading m201...
Wait 10 seconds
m201 executed successfully.
task: main loop took 65.045437 seconds

toplevel.py
import sys
import remap

My INI file
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
USER_M_PATH = ngc
SUBROUTINE_PATH = ngc
#RS274NGC_STARTUP_CODE = G21 G40 G90 G94 G97 G64 P0.025
#REMAP=M201 modalgroup=10 ngc=m201
REMAP=M201 modalgroup=10 python=remap_m201
#ENABLE_EMBEDDED_PYTHON=1
DEBUG = 5

[PYTHON]
TOPLEVEL=/home/wrhammer/linuxcnc/configs/Rover13s/python/toplevel.py
#PATH_PREPEND=/home/wrhammer/linuxcnc/configs/Rover13s                                   
PATH_APPEND=/home/wrhammer/linuxcnc/configs/Rover13s/python/     
LOG_LEVEL=10


Python Test Scipt:
def remap_m201(prolog, params=None):
    """
    Python-based remap for M201 to manually load and execute m201.ngc.
    """
    print("Executing remap_m201: Loading m201...")

    import linuxcnc
    cmd = linuxcnc.command()

    try:
        cmd.mdi("M64 P0")
        cmd.wait_complete()
        cmd.mdi("M64 P1")
        cmd.wait_complete()
        cmd.mdi("M64 P2")
        cmd.wait_complete()
        print("Wait 10 seconds")
        cmd.mdi("G4 P10")
        cmd.wait_complete()    
        cmd.mdi("M65 P0")
        cmd.wait_complete()  
        cmd.mdi("M65 P1")
        cmd.wait_complete()  
        cmd.mdi("M65 P2")
        print("m201 executed successfully.")

    except Exception as e:
        print(f"Error in remap_m201: {e}")

    return
  • Aciera
  • Aciera's Avatar
25 Dec 2024 21:18

Skew correction/perpendicularity correction (millkins or millkins_xyz)

Category: Basic Configuration

There is a problem with linebreaks in the code above from pasting. I'll post the file tomorrow. Or you can fix it in a text editor in the mean time.
  • Diel
  • Diel
25 Dec 2024 21:16

QtPlasmaC v2.9 do not wait for the time in parameter "Start Fail Timer"

Category: Plasmac

Thank you very much for the reply. I will check the procedure to set lost arc delay. I believe it will be very helpful.
Everything does work fine and I am do have proper grounding and shielding.
What really happens is:
The Hipertherm PowerMax 105, when it turns it off the plasma, it have a overflux cicle for about 20 seconds that sends air pressure through the torch (for colling purpouses). During this overflux cycle of the plasma souce, it does not work to close the contact to turn the plasma ON again. The first try just reduce the air flow but it does not start the arc. It needs to turn the relay off and then ON again to start the plasma (or we have to wait the overflux to end).
When doing some small cuts as little holes arond a circle it takes too much time to wait for the overflux after every little hole. That is why we are trying to get the retries to turn the plasma ON to work.
The tests I was doing were without the plasma source itself. I was using the contact of the relay used to turn on the plasma to indicate arc OK to LinuxCNC. On the other hand I installed a push button in serial conection to avoid the ok signal to be send to Linux. Linux sets the alarm right after reading the M3 and setting the relay. It does not wait to set up the alarm as well it does not retry to turn the relay on again.
Any information on how to use this resource will help a lot.
Thank you.
  • Diel
  • Diel
25 Dec 2024 21:13

QtPlasmaC v2.9 do not wait for the time in parameter "Start Fail Timer"

Category: Plasmac

Thank you very much for the reply.
Everything does work fine and I am do have proper grounding and shielding.
What really happens is:
The Hipertherm PowerMax 105, when it turns it off the plasma, it have a overflux cicle for about 20 seconds that sends air pressure through the torch (for colling purpouses). During this overflux cycle of the plasma souce, it does not work to close the contact to turn the plasma ON again. The first try just reduce the air flow but it does not start the arc. It needs to turn the relay off and then ON again to start the plasma (or we have to wait the overflux to end).
When doing some small cuts as little holes arond a circle it takes too much time to wait for the overflux after every little hole. That is why we are trying to get the retries to turn the plasma ON to work.
The tests I was doing were without the plasma source itself. I was using the contact of the relay used to turn on the plasma to indicate arc OK to LinuxCNC. On the other hand I installed a push button in serial conection to avoid the ok signal to be send to Linux. Linux sets the alarm right after reading the M3 and setting the relay. It does not wait to set up the alarm as well it does not retry to turn the relay on again.
Any information on how to use this resource will help a lot.
Thank you.
  • sin-do-re
  • sin-do-re
25 Dec 2024 20:02 - 25 Dec 2024 20:09

Arc G02 G03 Issue while converting FastNEST Gcode to LinuxCNC

Category: General LinuxCNC Questions

Hello Everyone.
Merry Christmas.

FastCAM/FastNest is a Chinese software for generating G-Code for plasma and other 2d cutting machines.

It features some decent stuff like nesting, cutter compensation (g40,g41), and common cut, so i've decided to buy it and use it.
The way it generates the g-code is quite weird, though, because it doesnt introduce some lines like G01 (...) and G02 (...),
G92X0Y0
G21
G91
G00X377.359Y53.137
G41
M07
G03X-8.486I-4.243J-4.243
X8.132Y-19.632I8.132J-8.132
Y23.I0.J11.5
X-8.132Y-3.368I0.J-11.5
Y-7.071I3.536J-3.536
M08
G40
G00X8.486Y87.071
G41
M07
G03X-8.486I-4.243J-4.243
X8.132Y-19.632I8.132J-8.132
Y23.I0.J11.5
X-8.132Y-3.368I0.J-11.5
Y-7.071I3.536J-3.536
M08
G40
G00X148.486Y7.071
G41
M07
G03X-8.486I-4.243J-4.243
X8.132Y-19.632I8.132J-8.132
Y23.I0.J11.5
X-8.132Y-3.368I0.J-11.5
Y-7.071I3.536J-3.536
M08
G40
G00X8.486Y-72.929
G41
M07
G03X-8.486I-4.243J-4.243
X8.132Y-19.632I8.132J-8.132
Y23.I0.J11.5
X-8.132Y-3.368I0.J-11.5
Y-7.071I3.536J-3.536
M08
G40
G00X80.132Y-30.061
G41
M07
G01Y-6.
X-584.
Y150.
X584.
Y-150.
Y-5.
M08
G40
G00X111.878Y372.359
G41
M07
G03Y-8.486I4.243J-4.243
X19.632Y8.132I8.132J8.132
X-23.I-11.5J0.
X3.368Y-8.132I11.5J0.
X7.071I3.536J3.536
M08
G40
G00X-87.071Y8.486
G41
M07
G03Y-8.486I4.243J-4.243
X19.632Y8.132I8.132J8.132
X-23.I-11.5J0.
X3.368Y-8.132I11.5J0.
X7.071I3.536J3.536
M08
G40
G00X-7.071Y148.486
G41
M07
G03Y-8.486I4.243J-4.243
X19.632Y8.132I8.132J8.132
X-23.I-11.5J0.
X3.368Y-8.132I11.5J0.
X7.071I3.536J3.536
M08
G40
G00X72.929Y8.486
G41
M07
G03Y-8.486I4.243J-4.243
X19.632Y8.132I8.132J8.132
X-23.I-11.5J0.
X3.368Y-8.132I11.5J0.
X7.071I3.536J3.536
M08
G40
G00X30.061Y80.132
G41
M07
G01X6.
Y-584.
X-150.
Y584.
X150.
X5.
M08
G40
G00X-48.132Y377.364
G41
M07
G03Y-8.486I4.243J-4.243
X19.632Y8.132I8.132J8.132
X-23.I-11.5J0.
X3.368Y-8.132I11.5J0.
X7.071I3.536J3.536
M08
G40
G00X-87.071Y8.486
G41
M07
G03Y-8.486I4.243J-4.243
X19.632Y8.132I8.132J8.132
X-23.I-11.5J0.
X3.368Y-8.132I11.5J0.
X7.071I3.536J3.536
M08
G40
G00X-7.071Y148.486
G41
M07
G03Y-8.486I4.243J-4.243
X19.632Y8.132I8.132J8.132
X-23.I-11.5J0.
X3.368Y-8.132I11.5J0.
X7.071I3.536J3.536
M08


the converted code looks like this, below.
the problem, is i still have arc errors where the radius doesn't match from start to end, which is normal as the arcs really dont make sense in the original program.
am i missing something? the referential im using is wrong? 
can anyone point me in the right direction?
thank you

;begin pre-amble
 G21 (units: metric)
 G40 (cutter compensation: off)
 G90 (distance mode: absolute)
 M52 P1 (adaptive feed: on)
 M65 P2 (enable THC)
 M65 P3 (enable torch)
 M68 E3 Q0 (velocity 100%)
 G64 P0.254 Q0.025 (tracking tolerances: 0.254mm)
;end pre-amble
;begin material setup
 T0 M6 (select plasma tool)
 G43 H0 (apply tool offsets)
 M190 P1 (numero do material a utilizar)
 M66 P3 L3 Q2 (wait for valid change)
 F#<_hal[plasmac.cut-feed-rate]>
;end material setup
G00X377.359Y53.137
G41

M3 $0 S1 (plasma start)
G03 X-8.486 Y53.137 I-4.243 J-4.243
G03 X8.132 Y-19.632 I8.132 J-8.132
G02 X8.132 Y23.000 I0.000 J11.500
G03 X-8.132 Y-3.368 I0.000 J-11.500
G03 X-8.132 Y-7.071 I3.536 J-3.536
M5 $0 (plasma end)
G40

G00X8.486Y87.071
G41

M3 $0 S1 (plasma start)
G03 X-8.486 Y87.071 I-4.243 J-4.243
G03 X8.132 Y-19.632 I8.132 J-8.132
G02 X8.132 Y23.000 I0.000 J11.500
G03 X-8.132 Y-3.368 I0.000 J-11.500
G03 X-8.132 Y-7.071 I3.536 J-3.536
M5 $0 (plasma end)
G40

G00X148.486Y7.071
G41

M3 $0 S1 (plasma start)
G03 X-8.486 Y7.071 I-4.243 J-4.243
G03 X8.132 Y-19.632 I8.132 J-8.132
G02 X8.132 Y23.000 I0.000 J11.500
G03 X-8.132 Y-3.368 I0.000 J-11.500
G03 X-8.132 Y-7.071 I3.536 J-3.536
M5 $0 (plasma end)
G40

G00X8.486Y-72.929
G41

M3 $0 S1 (plasma start)
G03 X-8.486 Y-72.929 I-4.243 J-4.243
G02 X8.132 Y-19.632 I8.132 J-8.132
G02 X8.132 Y23.000 I0.000 J11.500
G03 X-8.132 Y-3.368 I0.000 J-11.500
G03 X-8.132 Y-7.071 I3.536 J-3.536
M5 $0 (plasma end)
G40

G00X80.132Y-30.061
G41

M3 $0 S1 (plasma start)
G01 Y-6.000
G01 X-584.000
G01 Y150.000
G01 X584.000
G01 Y-150.000
G01 Y-5.000
M5 $0 (plasma end)
G40

G00X111.878Y372.359
G41

M3 $0 S1 (plasma start)
G03 X111.878 Y-8.486 I4.243 J-4.243
G02 X19.632 Y8.132 I8.132 J8.132
G02 X-23.000 Y8.132 I-11.500 J0.000
G03 X3.368 Y-8.132 I11.500 J0.000
G03 X7.071 Y-8.132 I3.536 J3.536
M5 $0 (plasma end)
G40

G00X-87.071Y8.486
G41

M3 $0 S1 (plasma start)
G03 X-87.071 Y-8.486 I4.243 J-4.243
G03 X19.632 Y8.132 I8.132 J8.132
G02 X-23.000 Y8.132 I-11.500 J0.000
G03 X3.368 Y-8.132 I11.500 J0.000
G03 X7.071 Y-8.132 I3.536 J3.536
M5 $0 (plasma end)
G40

G00X-7.071Y148.486
G41

M3 $0 S1 (plasma start)
G03 X-7.071 Y-8.486 I4.243 J-4.243
G03 X19.632 Y8.132 I8.132 J8.132
G02 X-23.000 Y8.132 I-11.500 J0.000
G03 X3.368 Y-8.132 I11.500 J0.000
G03 X7.071 Y-8.132 I3.536 J3.536
M5 $0 (plasma end)
G40

G00X72.929Y8.486
G41

M3 $0 S1 (plasma start)
G03 X72.929 Y-8.486 I4.243 J-4.243
G02 X19.632 Y8.132 I8.132 J8.132
G02 X-23.000 Y8.132 I-11.500 J0.000
G03 X3.368 Y-8.132 I11.500 J0.000
G03 X7.071 Y-8.132 I3.536 J3.536
M5 $0 (plasma end)
G40

G00X30.061Y80.132
G41

M3 $0 S1 (plasma start)
G01 X6.000
G01 Y-584.000
G01 X-150.000
G01 Y584.000
G01 X150.000
G01 X5.000
M5 $0 (plasma end)
G40

G00X-48.132Y377.364
G41

M3 $0 S1 (plasma start)
G03 X-48.132 Y-8.486 I4.243 J-4.243
G03 X19.632 Y8.132 I8.132 J8.132
G02 X-23.000 Y8.132 I-11.500 J0.000
G03 X3.368 Y-8.132 I11.500 J0.000
G03 X7.071 Y-8.132 I3.536 J3.536
M5 $0 (plasma end)
G40

G00X-87.071Y8.486
G41

M3 $0 S1 (plasma start)
G03 X-87.071 Y-8.486 I4.243 J-4.243
G03 X19.632 Y8.132 I8.132 J8.132
G02 X-23.000 Y8.132 I-11.500 J0.000
G03 X3.368 Y-8.132 I11.500 J0.000
G03 X7.071 Y-8.132 I3.536 J3.536
M5 $0 (plasma end)
G40

G00X-7.071Y148.486
G41

M3 $0 S1 (plasma start)
G03 X-7.071 Y-8.486 I4.243 J-4.243
G03 X19.632 Y8.132 I8.132 J8.132
G02 X-23.000 Y8.132 I-11.500 J0.000
G03 X3.368 Y-8.132 I11.500 J0.000
G03 X7.071 Y-8.132 I3.536 J3.536
M5 $0 (plasma end)
G40

G00X72.929Y8.486
G41

M3 $0 S1 (plasma start)
G03 X72.929 Y-8.486 I4.243 J-4.243
G02 X19.632 Y8.132 I8.132 J8.132
G02 X-23.000 Y8.132 I-11.500 J0.000
G03 X3.368 Y-8.132 I11.500 J0.000
G03 X7.071 Y-8.132 I3.536 J3.536
M5 $0 (plasma end)
G40

G00X30.061Y80.132
G41

M3 $0 S1 (plasma start)
G01 X6.000
G01 Y-584.000
G01 X-150.000
G01 Y584.000
G01 X150.000
G01 X5.000
M5 $0 (plasma end)
G40

G00X-48.132Y377.364
G41

M3 $0 S1 (plasma start)
G03 X-48.132 Y-8.486 I4.243 J-4.243
G03 X19.632 Y8.132 I8.132 J8.132
G02 X-23.000 Y8.132 I-11.500 J0.000
G03 X3.368 Y-8.132 I11.500 J0.000
G03 X7.071 Y-8.132 I3.536 J3.536
M5 $0 (plasma end)
G40

G00X-87.071Y8.486
G41

M3 $0 S1 (plasma start)
G03 X-87.071 Y-8.486 I4.243 J-4.243
G03 X19.632 Y8.132 I8.132 J8.132
G02 X-23.000 Y8.132 I-11.500 J0.000
G03 X3.368 Y-8.132 I11.500 J0.000
G03 X7.071 Y-8.132 I3.536 J3.536
M5 $0 (plasma end)
G40

G00X-7.071Y148.486
G41

M3 $0 S1 (plasma start)
G03 X-7.071 Y-8.486 I4.243 J-4.243
G03 X19.632 Y8.132 I8.132 J8.132
G02 X-23.000 Y8.132 I-11.500 J0.000
G03 X3.368 Y-8.132 I11.500 J0.000
G03 X7.071 Y-8.132 I3.536 J3.536
M5 $0 (plasma end)
G40

G00X72.929Y8.486
G41

M3 $0 S1 (plasma start)
G03 X72.929 Y-8.486 I4.243 J-4.243
G02 X19.632 Y8.132 I8.132 J8.132
G02 X-23.000 Y8.132 I-11.500 J0.000
G03 X3.368 Y-8.132 I11.500 J0.000
G03 X7.071 Y-8.132 I3.536 J3.536
M5 $0 (plasma end)
G40

G00X30.061Y80.132
G41

M3 $0 S1 (plasma start)
G01 X6.000
G01 Y-584.000
G01 X-150.000
G01 Y584.000
G01 X150.000
G01 X5.000
M5 $0 (plasma end)
G40

G00X-48.132Y377.364
G41

M3 $0 S1 (plasma start)
G03 X-48.132 Y-8.486 I4.243 J-4.243
G03 X19.632 Y8.132 I8.132 J8.132
G02 X-23.000 Y8.132 I-11.500 J0.000
G03 X3.368 Y-8.132 I11.500 J0.000
G03 X7.071 Y-8.132 I3.536 J3.536
M5 $0 (plasma end)
G40

G00X-87.071Y8.486
G41

M3 $0 S1 (plasma start)
G03 X-87.071 Y-8.486 I4.243 J-4.243
G03 X19.632 Y8.132 I8.132 J8.132
G02 X-23.000 Y8.132 I-11.500 J0.000
G03 X3.368 Y-8.132 I11.500 J0.000
G03 X7.071 Y-8.132 I3.536 J3.536
M5 $0 (plasma end)
G40

G00X-7.071Y148.486
G41

M3 $0 S1 (plasma start)
G03 X-7.071 Y-8.486 I4.243 J-4.243
G03 X19.632 Y8.132 I8.132 J8.132
G02 X-23.000 Y8.132 I-11.500 J0.000
G03 X3.368 Y-8.132 I11.500 J0.000
G03 X7.071 Y-8.132 I3.536 J3.536
M5 $0 (plasma end)
  • papagno-source
  • papagno-source
25 Dec 2024 19:39
convert 32 bit float in 64 bit float was created by papagno-source

convert 32 bit float in 64 bit float

Category: HAL

Good morning.
If a variable declared as float exceeds the maximum positive limit, adding the value 1 changes its sign to negative. Is there a component that can manage the saturation of a float variable even after its saturation in both positive and negative directions?
  • tommylight
  • tommylight's Avatar
25 Dec 2024 19:33
Replied by tommylight on topic IP Blocked

IP Blocked

Category: Forum Questions

Unblocked your IP, but it wont last, read below please:
No double posting, deleting the other topic.
-
Blocked IP's are unblocked after 1/2 hour for the first incursion (i think), 2 times in 24h, then permanently.
Did you bother to read the above posts as to how to avoid getting blocked?
Using 5 devices in a short period of time might also be considered by the server as a "brute force attack", and those are usually permanently blocked.
-
Yeah, i just checked, you have to stop whatever is trying to log in here, you got 6 rolling blocks in a very short time period today.
  • papagno-source
  • papagno-source
25 Dec 2024 19:14
Replied by papagno-source on topic PDO variable 64 bit

PDO variable 64 bit

Category: EtherCAT

Ok thanks for support , i check the output encoder variable type if 32 or 64 bit.

But remember in some test if impose bitLen=64 have error because 64 bit not can use and this as limit.

I thing remain only gear reducer in drive 1/1 to 1/100.

again Thanks the your time.
Displaying 20791 - 20800 out of 20800 results.
Time to create page: 0.473 seconds
Powered by Kunena Forum