Advanced Search

Search Results (Searched for: )

  • Marcos DC
  • Marcos DC's Avatar
Today 02:17

PLC + LinuxCNC for industrial machine with simple HMI (non-G-code operators)

Category: General LinuxCNC Questions

@NWE
Thanks for the clarification — that helps a lot, and I appreciate you explicitly calling out the difference in perspective.Your comments are very helpful in terms of transport robustness (discrete I/O vs EtherCAT vs Modbus), and that’s valuable input for narrowing down implementation options.Just to make sure the discussion is clear for readers: when we talk about a PLC supervising LinuxCNC, we’re referring to logical authority over machine state, sequencing, and operator workflow, rather than mastership of the physical communication layer.As you noted, with EtherCAT today LinuxCNC often ends up as the technical bus master, even in architectures where the PLC is the higher-level controller issuing commands and consuming status. These two roles tend to get conflated, but they’re separate concerns in industrial systems.Your insight on which transports have proven more or less fragile in practice is very useful, even though the PLC→LinuxCNC authority model itself is something we’ll have to implement largely on our side.
  • EdWorks
  • EdWorks's Avatar
Today 02:01

Running LinuxCNC on a Raspbery Pi5 using the Byte2Bot daughter board

Category: Installing LinuxCNC

My system is running beautifully. My goal is to make "Running LinuxCNC on a Raspbery Pi5 using the Byte2Bot daughter board" simpler, more successful with fewer "Gotchas" than other options.
  • NWE
  • NWE
Today 01:43 - Today 01:59

PLC + LinuxCNC for industrial machine with simple HMI (non-G-code operators)

Category: General LinuxCNC Questions

@NWE
In your experience, when LinuxCNC is treated as a subordinate motion controller,
 

 

I can see potentially doing it this way, and I agree, for your use case, this must be necessary, however, I have not used LinuxCNC as subordinate to a PLC in any project. I have used LinuxCNC controlling 6 PLCs via mqtt messaging on a larger project. Above all that in the chain of command I have the safety system, and due to the nature of the system, we have one single discrete signal wired from an output in the safety system to an input on one of the PLC's, through which LinuxCNC reads whether the safety system has disabled the entire plant. During most abnormalities, the program running in LinuxCNC initiates a controlled shutdown of the plant. If the safety system has tripped, it is a foregone conclusion, the plant is already shut down.

Most of the machines on that project are interdependent in various ways, so we have not included the capability to disable part of the system while other parts are in operation, except for the fact that each machine has individual lockout switches. However, It is not possible to complete the automatic startup sequence programmed in LinuxCNC when the locked-out machine fails to start. It does have a service mode where the repair tech has start/stop control of each individual machine during down time.

I can see doing it the other way, where the PLC commands LinuxCNC, but I have not done it that way yet.
  • NWE
  • NWE
Today 01:24

PLC + LinuxCNC for industrial machine with simple HMI (non-G-code operators)

Category: General LinuxCNC Questions

@NWE
Following up on the interface question above:Given that LinuxCNC does not currently provide a standardized, PLC-facing external API, 

Sorry, I was misunderstanding you in this respect. I was on a different page, thinking low level I/O.
  • NWE
  • NWE
Today 01:00

PLC + LinuxCNC for industrial machine with simple HMI (non-G-code operators)

Category: General LinuxCNC Questions

@NWE
Following up on the interface question above:Given that LinuxCNC does not currently provide a standardized, PLC-facing external API, I’m trying to understand what has proven to be the least fragile approach in real production systems.In your experience, when LinuxCNC is treated as a subordinate motion controller, what has held up better long-term:
• discrete I/O with explicit handshaking, or
• a register-based interface (e.g. Modbus TCP/RTU or similar)?I’m mainly interested in maintainability and field robustness rather than theoretical capability.

I consider discrete I/O or ethercat similarly less fragile, and modbus has been quite fragile from my experience.
  • NWE
  • NWE
Today 00:57

PLC + LinuxCNC for industrial machine with simple HMI (non-G-code operators)

Category: General LinuxCNC Questions

For keeping it simple, I think I would look at discrete signals using Mesa cards or maybe ethercat. Ethercat is somewhat more complicated to get started, but you get to replace all that discrete wiring with one robust ethernet connection, which you can not route through an ethernet switch, but I saw Beckhoff has ethercat hubs for this purpose.

I used to like modbus but the more I use it, the more I despise it. Compared to the other options, modbus seems slower and less reliable. Probably depends on the application. I am moving away from modbus entirely.

If you want RS232 or RS485, ask someone else, my opinion is it can be done (I use them if I have to interface with something that gives me no other choice) but... its a pain. Except... Mesa has what I think runs on RS422 called SSerial (SmartSerial) which I think is a joy to use. It is stable and it is plug-and-play. To use that, you start with a Mesa board that has SSerial host, then you can connect additional I/O SSerial daughter cards to it via SSerial.

If going with ethercat, LinuxCNC does only master that I'm aware or. You would want to use a PLC that exposes an ethercat slave to LinuxCNC for transferring data/commands between PLC and ethercat. What I mean, is the ethercat link would be LinuxCNC = master, PLC = slave, however, linuxcnc would be listening on this connection for commands from its real master, the PLC. I admit I'm a bit of a newby with ethercat, been using it barely a year. Been tinkering with linuxcnc 10+ years and just recently majorly included it in my toolset.

Whether discrete or ethercat, this would amount to hal pins that you would connect to control signals in the hal configuration text file(s). How clean the implementation would be would probably depend a lot on how well you organize the hal files.

When I'm programming my LinuxCNC "plc" controllers, I'm doing most of it in a linux program that looks and works a lot like notepad with some additional bells and whistles.
  • Marcos DC
  • Marcos DC's Avatar
Today 00:35 - Today 00:36

PLC + LinuxCNC for industrial machine with simple HMI (non-G-code operators)

Category: General LinuxCNC Questions

@NWE
Following up on the interface question above:Given that LinuxCNC does not currently provide a standardized, PLC-facing external API, I’m trying to understand what has proven to be the least fragile approach in real production systems.In your experience, when LinuxCNC is treated as a subordinate motion controller, what has held up better long-term:
• discrete I/O with explicit handshaking, or
• a register-based interface (e.g. Modbus TCP/RTU or similar)?I’m mainly interested in maintainability and field robustness rather than theoretical capability.
  • Marcos DC
  • Marcos DC's Avatar
Today 00:17

PLC + LinuxCNC for industrial machine with simple HMI (non-G-code operators)

Category: General LinuxCNC Questions

@NWE

Thanks — that clears it up. I now understand that you meant the PLC driving LinuxCNC, not LinuxCNC driving the PLC.
That is exactly the architecture we are aiming for: PLC as the authority for machine state, sequencing, and operator workflow, with LinuxCNC acting as a subordinate motion controller responsible for trajectory planning, interpolation, and coordinated motion.

Where we are still looking for practical guidance is the shape of the interface between the PLC and LinuxCNC — in other words, what has proven to be a clean, maintainable, industrial-friendly command/status boundary without turning into a large custom integration project.

From your experience, do you see this working best as:

Discrete I/O + handshaking
(cycle start, feed hold, abort/reset, mode select, jog enable, plus status bits like ready/running/done/fault), with parameters passed via registers; or

A fieldbus/protocol approach
(e.g. EtherCAT, Modbus TCP/RTU, etc.) with a defined command/status register map.

For safety, we fully agree with your description: E-stop, STO, door interlocks, and power isolation are all handled by dedicated hardwired safety hardware, independent of both PLC and LinuxCNC. Software only receives “safety OK / safety tripped” status and never has authority to energize the safety chain.

If you have examples of a minimal but robust command/status block that has worked well for you (which bits/words you expose, how you handle “busy/done/fault”, parameter latching, etc.), that would be extremely helpful.
  • NWE
  • NWE
Today 23:39

PLC + LinuxCNC for industrial machine with simple HMI (non-G-code operators)

Category: General LinuxCNC Questions

@NWE
Thanks for the explanation. In our case, the PLC cannot be a “drive-by-wire” remote control for LinuxCNC. The PLC must be the authority of machine state, sequencing, and safety, independent of the PC. LinuxCNC is treated as a subordinate motion controller, similar to how a PLC supervises an industrial robot controller.

That is the key architectural requirement we are trying to address.

I meant the other way around. PLC driving linuxcnc
  • NWE
  • NWE
Today 23:35

PLC + LinuxCNC for industrial machine with simple HMI (non-G-code operators)

Category: General LinuxCNC Questions

Most PLC's and touchscreen HMIs do pretty much everything in their software. For workcell controllers intended for operator safety, you need a combination of hardwired safety controllers and power disconnects that can be locked. LinuxCNC has many available interfaces for communicating with PLCs. Ethercat, discrete I/O, analog, RS232, RS485, CAN, Modbus TCP, Modbus RTU. Probably more. Safety controlling is outside the domain of LinuxCNC.

On systems where the PLC/computer automatically start/stop 250HP machines or even 1/4HP machines, every machine on the premises has a dedicated power disconnect switch that can be locked. If that disconnect switch is on, the machine must be assumed to be running, whether or not it is making noise. Everything is prominently labeled with danger signs, reminding personel that the process equipment starts/stops automatically.

Plus we have the hard wired safety circuit that disables everything and only communicates to LinuxCNC that it has been disabled. LinuxCNC cannot activate this safety circuit. Not even an industrial PLC is qualified to run this safety circuit, only dedicated fail-safe safety controllers do that.
  • NWE
  • NWE
Today 22:43 - Today 23:07

MAC address not retrieved (after 2 years stop)

Category: Driver Boards

Jocman post=342013 userid=24026
As I've 2 lan cards (the onboard and a second PCI board), I tried to launch
ip a
when connected to both, and this is what I get:
connected to Mesa (onboard card):

joccnc@JocCnc:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
-- snip --
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether e8:4e:06:84:dc:c9 brd ff:ff:ff:ff:ff:ff
    inet 10.10.10.11/8 brd 10.255.255.255 scope global eth0
-- snip --
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 70:85:c2:6a:f0:3d brd ff:ff:ff:ff:ff:ff
joccnc@JocCnc:~$

and pinging  my router:

joccnc@JocCnc:~$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
ping: sending packet: Network is unreachable



connected to WEB:

joccnc@JocCnc:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
-- snip --
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether e8:4e:06:84:dc:c9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.245/24 brd 192.168.1.255 scope global dynamic eth0
-- snip --
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 70:85:c2:6a:f0:3d brd ff:ff:ff:ff:ff:ff
joccnc@JocCnc:~$

and pinging my router:

joccnc@JocCnc:~$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: icmp_seq=0 ttl=64 time=0.651 ms
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.488 ms

[\quote]

 

Going by your most recent answer I interpret the above:

It appears to me you have two network configurations "Web" and "Mesa 7i76e" In both configurations you appear to have the first network port selected. This means, when you click on the "Mesa 7i76e" network, the pc tries to connect to the Mesa card via the network port that is connected to your LAN.

To fix, right-click on the network icon, click "edit connections", click on "Mesa 7i76e", click on the little gear at bottom "edit the selected connection", click on the "Device" dropdown, and select the correct device, click on "IPv4 Settings" tab, make sure the "Gateway" field is empty. click "Save", close the network edit window, and try reconnecting to both networks. On my system, I have both networks connected at the same time.

Don't change settings for the "Web" connection, from what I see, that one is likely configured correctly.
  • Hakan
  • Hakan
Today 21:46
Replied by Hakan on topic Cia402 no connection

Cia402 no connection

Category: EtherCAT

Sounds like you forgot to enable ethercat service and it didn't start at boot.
Some 30 lines down in this post
forum.linuxcnc.org/ethercat/45336-etherc...step-by-step?start=0
tells you how to check status of the ethercat service and, if needed, enable it for automatic start at boot.
  • grzester
  • grzester
Today 21:32
Replied by grzester on topic Cia402 no connection

Cia402 no connection

Category: EtherCAT

...when Beckhoff EK1100 is connected terminal give such information 
  • grzester
  • grzester
Today 21:24
Replied by grzester on topic Cia402 no connection

Cia402 no connection

Category: EtherCAT

Hallo, a litle explanation and  update. Altough LCNC is starting but ethercat connection is not activated.Normaly when I work with Beckhoff EK1100 i see small icon ethercat up on the screen and also i can write terminal command Ethercat Slaves it showing me active participiants.
 
Also when I try   ...ip link set dev ... down / up   it doesnt work to.It looks like driver dont try to start at all when I try to connect oriental motor.
 
What can I do more ,how to test why eth driver dont start/trying to run.
Thanks.
  • tar_san
  • tar_san
Today 21:16
JOG with mechanical switch was created by tar_san

JOG with mechanical switch

Category: Basic Configuration

I'm trying to configure an existing LinuxCNC machine in manual mode using physical mechanical switches for axis selection and Jog Plus/Jog Minus. But it's not working properly.

From the PC screen (AXIS GUI), Jog operation is functioning , and I have confirmed manual mode is active.

I operated same things from using HAL Pin manually without wireing configuration, but I got the same result.
What I did using HAL Pin was..
1) confirm manual mode in LCNC. (all axis homed )
2) Turn on/off some pins in Show Hal configuration (N=axis char)

halui.axis.jog-speed ( set to 500 )
halui.axis.N.selected
halui.axis.N.is-selected
halui.axis.N.plus/minus

from the begining,
halui.axis.x.is-selected was on, and halui.axis.selected was 0.

I tried to change to another axis, make halui.axis.y.selected ON,
but, halui.axis.y.is-selected didn't turn on.

I tried to move x axis, make halui.axis.x.plus( or minus) on,
but motor or x coordinate didn't move.

I tried another method using halui.axis.selected.plus/minus, but same.

What am I missing ?
Which pin should I check ?
Could you guys help me solve this problem, please ?
Displaying 1 - 15 out of 19631 results.
Time to create page: 0.307 seconds
Powered by Kunena Forum