Skip to content

Latest commit

 

History

25 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ACNC

Analyzer for Computer Numerical Control Machines

ACNC is a Python/Kivy application for documenting, analyzing, and safely working with legacy CNC machine interfaces. It focuses on machine sessions, protocol drivers, parameter and memory handling, alarm catalogs, and reconstruction support for machines with incomplete documentation.

This repository contains the free Python demo/community edition. It is beta-stage software and is not a production safety system.

Current Status

Active version: 0.94

Current implemented areas:

  • Kivy/KivyMD desktop UI with 11 registered screens.
  • Protocol selection UI for RS232, RS485, Modbus, CAN, TCP, TCP/IP, and USB.
  • Protocol driver abstractions with safe imports when hardware libraries are unavailable.
  • Session layer with persistent SQLite-backed data model.
  • Two-step write workflow with confidence gates, dry run behavior, verification, and rollback support.
  • Parameter profiles and connection profiles.
  • Backend support for memory comparison, signal relation detection, and memory restore planning.
  • FTA alarm catalog search with exact documented cause/solution links where the source files support them.
  • Geometric reconstruction wizard shell for review-only topology and generated parameter work.
  • English requirements, traceability, FMEA/FTA, and block-diagram documentation included in the repository.

Known limitations:

  • Real CNC hardware has not been tested in this repository state.
  • Physical adapters, electrical isolation, and voltage protection must be validated before any machine connection.
  • G-code editor screen exists, but file open/save buttons are still placeholder-level.
  • This is not the commercial ACNC Next or ACNC MES product.

See ACNC_Funkcionalna_lista.md and ACNC_Porocilo_delovanja_in_funkcionalnosti.md for the latest local verification report.

Safety First

Do not connect a PC port directly to CNC machine signal lines.

Use an isolated hardware interface appropriate for the target signal and protocol. For physical testing, the interface must provide the required galvanic isolation, voltage protection, and power-domain separation. Software safeguards do not replace electrical safety.

ACNC intentionally separates read, dry-run, prepare, and confirm flows. Write paths are gated and must not be bypassed for convenience.

Read more in docs/SAFETY_AND_HARDWARE.md.

Quick Start

Windows

py -3.10 -m venv .venv
.\.venv\Scripts\python.exe -m pip install --upgrade pip
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe acnc.py

In the current Dromation workspace, the tested interpreter is:

D:\Dromation\org\apps\virt\Scripts\python.exe acnc.py

Linux

python3.10 -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python acnc.py

For full UI tests on a headless Linux environment, use a virtual display:

xvfb-run -a python3 -m unittest discover -s tests -v

Tests

The latest verification run:

python -m unittest discover -s tests -v
Ran 106 tests
OK

Important Kivy note: do not run the full UI test suite while another ACNC/Kivy application process is open. Close the live app first, then run the tests.

More detail: docs/DEVELOPMENT_AND_TESTING.md.

Repository Layout

acnc.py                         Application entry point
data/                           Persistence, settings, command runner, helper modules
protocols/                      Protocol driver abstractions and concrete drivers
screens/                        Kivy/KivyMD screens and KV files
ftas/                           Alarm, cause, solution, and failure catalogs
machine/                        Legacy/helper machine modules
tests/                          Unit and UI smoke tests
docs/                           Human-readable explanations

Documentation

Requirements and traceability documents are included at the repository root:

License

This repository is distributed under the ACNC Limited Source-Available Demo License. Personal, non-commercial, and educational use is permitted under the terms in LICENSE. Commercial use requires a separate written agreement with Dromation.

Security

Report suspected vulnerabilities privately to info@acnc.dromation.com. See SECURITY.md.

About

Analyzer for Computer Numerical Control Machines

Topics

Resources

Security policy

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages