SpecMES

Na bazie około 18mc doświadczeń w opracowywaniu rozwiązania pod nazwą SimpleMES powstała finalna kompilacja pod nazwą SpecMES. Idea pozostała ciągle ta sama – ma to być lekkie rozwiązanie klasy MES (Manufacturing Execution System), zaprojektowane z myślą o lokalnej pracy w środowisku produkcyjnym bez konieczności korzystania z usług chmurowych. System oparty na lokalnym serwerze PostgreSQL i rozwijany w technologii C# wspiera zarządzanie zleceniami produkcyjnymi oraz nadzorowanie realizacji procesów na stanowiskach pracy. Jego kluczową cechą jest pełna identyfikowalność produkcji opartej na numerach seryjnych, co pozwala dokładnie śledzić historię każdego wyrobu, operatora oraz użytych narzędzi.

Dzięki możliwości integracji z urządzeniami pomiarowymi, w tym sprzętem wykorzystującym protokół AGILENT, SpecMES umożliwia automatyczne gromadzenie danych z testów i procesów produkcyjnych. Takie podejście nie tylko zwiększa kontrolę jakości, ale również wspiera analizę i dokumentowanie wyników pomiarów. System został stworzony z myślą o przedsiębiorstwach wymagających wysokiego poziomu nadzoru nad procesem produkcyjnym i zgodności z normami jakościowymi, takimi jak ISO 22163 czy IATF 16949. SpecMES wspiera realizację wymagań dotyczących identyfikowalności, jakości i zgodności regulacyjnej, stanowiąc praktyczne narzędzie dla nowoczesnych zakładów produkcyjnych. Źródła rozwiązania są dostępne pod tym linkiem na GIT hubie.

Obecne rozwiązania LLM świetnie potrafią zsyntetyzować kod więc zakres dokumentacji jest pokryty w bardzo wysokim stopniu względem kodu -> opis w języku PL i ENG w formie tekstu lub pliku Word dostępny pod tym linkiem. W dalszej części znajduje się kilka skopiowanych elementów z opisu aby można było się zapoznać ze sposobem pracy systemu oraz jego architekturą. Co warto podkreślić – terminale produkcyjne utworzono z pomocą elementów graficznych dostępnych pod Windows jak i Linux -> rozwiązanie na produkcje nie jest przypisane na sztywno do jednego systemu. Kod jest na licencji BSD więc można go samemu skompilować i wyregulować do swoich potrzeb, jeżeli potrzebujesz pliku wykonywalnego – daj znać.

Poniżej kilka screenów z pracującej aplikacji – moduł zarządzania

Moduł pracujący na linuxie (Lubuntu) – SpecAPP (terminal produkcyjny)

I element w trakcie pracy na systemie windows po zalogowaniu

Przeznaczenie i zakres

System rejestruje przebieg produkcji każdej sztuki wyrobu (traceability): kto, kiedy, na którym stanowisku, jakim narzędziem i z jakim wynikiem wykonał każdy krok procesu, jakie materiały i części składowe zostały użyte oraz jakie decyzje podjął dział jakości.

System składa się z trzech programów:

ProgramDla kogoDo czego służy
SpecInstalladministratorjednorazowe założenie struktury bazy danych i wygenerowanie plików konfiguracyjnych setup.ini
SpecManagmentplanista, technolog, jakość, administrator danychdefiniowanie wyrobów, marszrut, zleceń, materiałów, narzędzi i użytkowników; decyzje jakości; KPI; eksport
SpecAPPoperator produkcjipraca na stanowisku: skan numeru seryjnego, wykonanie kroku, zapis wyniku OK/NOK

Poza zakresem systemu są: drukowanie etykiet z numerami seryjnymi, sam program pomiarowy (np. pomiar.exe – dostarcza go użytkownik) oraz integracja z systemem ERP (pole „WARTOŚĆ ERP” jest wpisywane ręcznie).

Architektura systemu

Rysunek 1. Architektura systemu

Najważniejsze zasady działania:

•     Jedna baza, jeden schemat na firmę. Każda instalacja tworzy w bazie PostgreSQL osobny schemat o 5-znakowej nazwie (np. prod1). Na jednym serwerze może działać wiele niezależnych instalacji.

•     Trzy role bazodanowe. <prefiks>_owner (właściciel tabel, bez prawa logowania), <prefiks>_mgmt (SpecManagment) i <prefiks>_prod (SpecAPP – tylko odczyt konfiguracji, dopisywanie wyników i zmiana stanu sztuki).

•     Marszruta zamrażana przy starcie zlecenia. W chwili „Start produkcji” bieżąca marszruta wyrobu jest kopiowana do zlecenia. Późniejsze zmiany marszruty dotyczą dopiero kolejnych zleceń.

•     Formularz stanowiska powstaje z konfiguracji kroku. SpecAPP nie ma ekranów „na sztywno” – pola materiałów, pomiaru i części składowej pojawiają się zgodnie z definicją kroku.

•     Wyniki są tylko dopisywane. Wyniku kroku ani wpisu audytu nie można zmienić ani usunąć; korekta to zawsze nowy wpis.

Role i uprawnienia

Każdy użytkownik ma dokładnie jedną rolę. Rola decyduje, do którego programu można się zalogować i które zakładki SpecManagment są widoczne.

ModułProdukcjaPlanistaTechnologJakośćMasterDATA
SpecAPP (stanowisko)✔–––✔
Wyroby–zapispodglądpodglądzapis
Marszruty–podglądzapispodglądzapis
Zlecenia–zapispodglądpodglądzapis
Dashboard KPI–✔✔✔✔
Jakość–––zapiszapis
Eksport–✔✔✔✔
Materiały–zapiszapispodglądzapis
Narzędzia–podglądzapiszapiszapis
Użytkownicy––––zapis

„Podgląd” oznacza, że zakładka jest widoczna (z dopiskiem „(podgląd)”), ale przyciski zapisu są nieaktywne. „–” oznacza brak zakładki.

Zasady logowania:

•     Po 5 nieudanych próbach konto jest blokowane na 5 minut. Zapisanie użytkownika w zakładce „Użytkownicy” zdejmuje blokadę.

•     Nowe lub zresetowane hasło wymusza zmianę przy pierwszym logowaniu. Hasło musi mieć co najmniej 4 znaki i różnić się od poprzedniego.

•     W systemie musi pozostać co najmniej jeden aktywny użytkownik o roli MasterDATA.

Słownik pojęć i opis pól

Numer seryjny i definicja wyrobu

Każdy wyrób ma własny wzorzec numeru seryjnego:

[PREFIX][WARTOŚĆ ERP][Num++][SUFIX]

PoleObowiązkoweDługośćOpis
PREFIXtak1–50 znakówStała część początkowa numeru, zwykle nazwa rodziny wyrobu wraz z separatorem, np. TELEFON/ lub TELEFON-. Separator (ukośnik, myślnik) jest częścią PREFIX-u – system niczego nie dokleja sam.
WARTOŚĆ ERPnie0–50 znakówStała część środkowa, zwykle indeks lub oznaczenie wariantu z systemu ERP, np. NOKIA10/. Wpisywana ręcznie.
Num++tak3–6 cyfrLicznik sztuk. Podaje się tylko liczbę cyfr; numer jest uzupełniany zerami z lewej (0001). Licznik zaczyna od 1 i rośnie o 1 dla każdej sztuki.
SUFIXnie0–50 znakówStała część końcowa, np. wersja oprogramowania  FW1.00. Spacje są dozwolone i są częścią numeru.

Przykłady:

PREFIXWARTOŚĆ ERPNum++SUFIXPierwszy numer
TELEFON/NOKIA10/4 FW1.00TELEFON/NOKIA10/0001 FW1.00
TELEFON-(puste)4(puste)TELEFON-0001

Zasady, o których trzeba pamiętać:

•     Znaki niedozwolone we wszystkich polach tekstowych: $ % ^ & ; # oraz znaki sterujące.

•     Pojemność licznika wynosi 10^n − 1 sztuk: 3 cyfry = 999, 4 cyfry = 9 999, 5 cyfr = 99 999, 6 cyfr = 999 999. Licznik jest wspólny dla wszystkich zleceń danego wyrobu i nigdy się nie cofa. Zlecenia, które przekroczyłoby pojemność, system nie utworzy – trzeba zdefiniować nowy wyrób (np. z innym PREFIX-em lub dłuższym Num++).

•     Wyrobu nie można zmienić ani usunąć. Wybranie wyrobu z listy kopiuje jego dane do formularza; po zmianie zapisuje się go jako nowy wyrób. Kombinacja PREFIX + WARTOŚĆ ERP + SUFIX + długość Num++ musi być unikalna.

•     Numer seryjny jest unikalny w całym systemie. Jeśli dwa wyroby dałyby ten sam numer, zlecenie nie zostanie utworzone.

•     Skan numeru na stanowisku usuwa wyłącznie końcowe CR/LF. Spacje – także końcowe – są częścią numeru, więc etykieta musi odwzorować numer co do znaku.

Zlecenie produkcyjne

PoleOpis
Numer zleceniaNadawany automatycznie: ZP-RRRRMMDD-NNN (data utworzenia i kolejny numer w danym dniu), np. ZP-20261110-001.
WyróbNa liście są tylko wyroby ze zdefiniowaną marszrutą.
Wersja BOMObowiązkowa, do 25 znaków. Informacja opisowa o wersji listy materiałowej, zapisywana przy zleceniu i widoczna na stanowisku oraz w eksporcie.
Ilość do produkcjiLiczba sztuk > 0. Tyle numerów seryjnych zostanie wygenerowanych od razu przy tworzeniu zlecenia.
Przewidywana data startu / ukończeniaInformacyjne; data startu nie może być późniejsza niż data ukończenia.
NotatkiDo 1000 znaków.

Stany zlecenia:

Rysunek 2. Stany zlecenia produkcyjnego

•     Utworzone – numery seryjne istnieją, ale stanowiska odrzucają ich skan („zlecenie nie zostało jeszcze wystartowane”).

•     Aktywne – jedyny stan, w którym można pracować nad sztukami i podejmować decyzje jakości.

•     Zamknięte / Anulowane – operacja nieodwracalna. Niedokończone sztuki zamkniętego zlecenia są trwale zablokowane.

Marszruta i krok

Marszruta to uporządkowana lista kroków wyrobu. Kroki wykonuje się kolejno według numerów; nie ma rozgałęzień.

Pole krokuOpis
Numer krokuLiczba > 0. Zaleca się wielokrotności 10 (10, 20, 30 …), aby można było wstawić krok pomiędzy; przycisk „Nowy krok – podpowiedz numer” proponuje kolejną dziesiątkę.
Opis krokuObowiązkowy tytuł, do 50 znaków.
Treść krokuInstrukcja dla operatora wyświetlana na stanowisku, do 500 znaków.
Step duration [s]Planowany czas kroku w sekundach. Służy wyłącznie do porównania plan/rzeczywistość w KPI.
Work InstructionsŚcieżka do pliku instrukcji widziana ze stanowiska (do 500 znaków). Na stanowisku pojawia się przycisk „Instrukcja stanowiskowa…”, który otwiera plik domyślnym programem systemu.
Manual measurementPomiar ręczny jednej wartości. Wymaga: LSL ≤ USL, wskazania narzędzia; jednostka (Unit) do 10 znaków. Operator skanuje numer miernika i wpisuje wartość.
Automatic MeasurementPomiar wykonywany przez zewnętrzny program (rozdz. 9). Wymaga: ścieżki programu, timeoutu > 0 s, narzędzia oraz 1–10 zdefiniowanych wyników. Wyklucza pomiar ręczny, materiały i Consumes.
NarzędziePrzy pomiarze ręcznym – miernik, którego numer operator musi zeskanować. Przy pomiarze automatycznym – ToolID, który musi zwrócić program pomiarowy.
Wyniki 1–10Tylko dla pomiaru automatycznego, wypełniane kolejno od 1 bez przerw. Typ „Liczba”: wymagane LSL ≤ USL. Typ „Tekst”: wymagany tekst oczekiwany; porównanie jest dokładne, z rozróżnieniem wielkości liter.
Material declarationDo 10 materiałów w kroku: zaznaczenie „Is used?”, materiał z listy, ilość > 0.
ConsumesOperator skanuje numer części składowej wbudowywanej w sztukę (np. numer PCB).
Repeatable Step?Krok powtarzalny: wynik NOK nie blokuje sztuki, operator od razu ponawia krok.
Final Step?Krok finalny: wynik OK kończy produkcję sztuki. Marszruta musi mieć dokładnie jeden krok finalny i musi on mieć najwyższy numer.

Ograniczenia: granice LSL/USL są traktowane włącznie (wartość równa granicy jest poprawna). Łączna liczba akcji w kroku (materiały + pomiar ręczny + Consumes) nie może przekroczyć 10.

Przyciski: Add dodaje nowy krok (numer nie może już istnieć), Update aktualizuje istniejący krok o podanym numerze, Usuń krok usuwa go z marszruty bieżącej. Kroku finalnego nie da się usunąć, dopóki inny krok nie zostanie oznaczony jako finalny.

Materiał

PoleOpis
NazwaObowiązkowa, unikalna, do 100 znaków.
Jednostka miaryDo 10 znaków, np. g, szt.
Ilość domyślnaPodpowiadana przy dodawaniu materiału do kroku.
Wzorzec partiiOpcjonalny wzorzec numeru partii: * zastępuje dowolny ciąg znaków, ? jeden znak. Przykład: KLEJ* przyjmie KLEJ-2026-11, odrzuci SR-4471. Pusty wzorzec = dowolny numer partii. Wielkość liter ma znaczenie.