Identyfikacja pracowników w narzędziowni - po co potwierdzać osobę
Dokument wypożyczenia przypisuje narzędzie do osoby, a odpowiedzialność za sprzęt ma sens tylko wtedy, gdy osoba została rozpoznana poprawnie. Ręczne wpisywanie nazwiska lub numeru zajmuje czas przy okienku i daje pomyłki, zwłaszcza gdy w kolejce stoi kilka osób. Automatyczna identyfikacja zastępuje wpis jednym odczytem nośnika.
Według opisu Studio TCS.net program pozwala przypisać odpowiedzialnych pracowników do narzędzi, a identyfikacja pracowników kodami kreskowymi jest funkcją dodatkową, którą można zintegrować z systemem. Kartoteki osób opisuje tekst o modułach ewidencji pracowników w Studio TCS.net.
| Element wydania | Bez identyfikacji | Z odczytem nośnika |
|---|---|---|
| Rozpoznanie osoby | ręczny wpis nazwiska lub numeru | odczyt kodu przy czytniku |
| Ryzyko pomyłki | literówka albo zamiana osób | kod przypisany do jednego pracownika |
| Czas przy okienku | zależy od szybkości pisania | jeden odczyt |
| Ślad zdarzenia | zależy od dyscypliny magazyniera | zapis czasu i stanowiska |
Reguła: nośnik identyfikuje osobę, a nie uprawnienie. To, co osoba może pobrać, wynika z jej kartoteki i kwalifikacji, a nie z samej karty.
Ten tekst dotyczy okienka narzędziowni. Identyfikację pod kątem czasu pracy i kontroli dostępu opisuje strona automatyczna identyfikacja pracowników, a pracę z etykietami w paśmie UHF - artykuł identyfikacja pracowników z etykietami RFID UHF.
Nośniki identyfikacji i ich parametry
Narzędziownia ma do wyboru cztery rodzaje nośników. Różnią się technologią odczytu, odpornością na zużycie i łatwością skopiowania, co przekłada się na dobór do konkretnego stanowiska.
| Nośnik | Technologia odczytu | Sposób odczytu | Ograniczenie |
|---|---|---|---|
| Karta zbliżeniowa RFID | fale radiowe, najczęściej 125 kHz lub 13,56 MHz | zbliżenie do czytnika na odległość do kilkunastu centymetrów | czytnik musi obsługiwać technologię karty |
| Brelok RFID | ta sama co karta | zbliżenie do czytnika | łatwo go zgubić razem z kluczami |
| Karta magnetyczna | pasek magnetyczny | przesunięcie przez szczelinę czytnika | zużycie paska i prostsze kopiowanie |
| Kod kreskowy | odczyt optyczny | skan z linii wzroku | najłatwiejszy do skopiowania, wrażliwy na zabrudzenie |
Karty i breloki zbliżeniowe RFID
Karta zbliżeniowa zawiera pasywny transponder zasilany polem czytnika, więc nie potrzebuje baterii. Czytnik odbiera numer identyfikacyjny, a system szuka go w bazie. Niektóre karty w paśmie 13,56 MHz mają pamięć chronioną kluczem, inne udostępniają tylko stały numer. W narzędziowni zwykle wystarcza numer używany jako klucz wyszukiwania pracownika.
Odczyt nie wymaga linii wzroku, więc karta w kieszeni kombinezonu albo brelok w dłoni przechodzą przez brud bez problemu. Brelok korzysta z tej samej technologii, a różni się tylko obudową. Do oznaczania samych narzędzi służą inne tagi, o których pisze artykuł o tagach RFID na metal.
Karta magnetyczna i kod kreskowy
Karta magnetyczna ma sens tam, gdzie zakład ma już czytniki i identyfikatory z paskiem, bo pozwala wykorzystać istniejącą infrastrukturę kontroli dostępu. Pasek ściera się przy codziennym przesuwaniu, a dane na nim da się skopiować prostym sprzętem.
Kod kreskowy jest najtańszy, bo wystarczy wydrukować identyfikator. Ta sama drukarka i ten sam format kodu obsługują też etykiety narzędzi, co opisuje strona o kodach kreskowych w magazynie. Cena tej prostoty to podatność na kopiowanie i zabrudzenie, więc przy narzędziach o dużej wartości kod uzupełnia się kodem PIN.

Telefon jako nośnik
Pytanie o telefony pojawia się przy każdym wdrożeniu. Telefon z Androidem potrafi w trybie emulacji karty odpowiadać czytnikowi NFC tak, jak karta zbliżeniowa; mechanizm opisuje dokumentacja emulacji karty opartej na hoście. Czytnik musi obsługiwać NFC, a aplikacja przechowuje identyfikator, który wysyła w odpowiedzi.
Telefon ma też wady na hali: rozładowuje się, bywa zostawiany w szafce i łatwo go uszkodzić. Nie zastępuje więc w pełni karty. Czy dany wariant obsługuje wdrażany system, potwierdza się w specyfikacji wdrożenia, bo sama możliwość techniczna nie oznacza gotowej funkcji programu.
Dobór nośnika do stanowiska
Wybór zaczyna się od warunków pracy, a nie od ceny czytnika. W hali, gdzie pracownicy noszą rękawice i pracują w oleju, karta RFID w kieszeni albo brelok przy pasie są wygodniejsze niż identyfikator z kodem, który trzeba wyciągnąć i ustawić przed skanerem. W małej narzędziowni z drukarką etykiet kod kreskowy uruchamia się jednego dnia i nie wymaga zakupu kart.
Trzecim kryterium jest to, co zakład ma już w użyciu. Jeżeli pracownicy noszą karty do bramek, ta sama karta może posłużyć w narzędziowni, o ile czytnik obsługuje jej technologię. Mieszanie nośników na jednym stanowisku wymaga czytnika wielotechnologicznego albo dwóch urządzeń podłączonych równolegle.
Powiązanie nośnika z pracownikiem w bazie
Jeden pracownik może mieć kilka nośników, na przykład kartę i brelok, ale każdy kod może być aktywny tylko u jednej osoby. Tę regułę najlepiej wymusić w bazie, a nie w aplikacji. Unikalny indeks filtrowany obejmuje wyłącznie wiersze aktywne, więc wycofana karta nie blokuje kodu, gdy zostanie kiedyś użyty ponownie. Mechanizm opisuje dokumentacja indeksów filtrowanych w SQL Server.
CREATE TABLE dbo.nosnik_identyfikacji (
id_nosnika int IDENTITY PRIMARY KEY,
id_pracownika int NOT NULL,
typ_nosnika varchar(20) NOT NULL,
kod_nosnika varchar(64) NOT NULL,
aktywny bit NOT NULL DEFAULT 1,
data_dezaktywacji datetime2(0) NULL
);
CREATE UNIQUE INDEX ux_nosnik_aktywny
ON dbo.nosnik_identyfikacji (kod_nosnika)
WHERE aktywny = 1;
- Kod nośnika - numer odczytany z nośnika, bez danych osobowych zapisanych na samym nośniku.
- Typ nośnika - rodzaj identyfikatora, potrzebny do raportów o zużyciu i wymianie.
- Status aktywności - wycofanie nośnika ustawia znacznik, zamiast usuwać wiersz, więc stare dokumenty zachowują odwołanie.
- Data dezaktywacji - moment wycofania, który pozwala odtworzyć, kto był właścicielem kodu w danym dniu.
Wyszukanie osoby po odczycie sprowadza się do jednego zapytania. Nazwy tabel i kolumn są przykładowe.
SELECT p.id_pracownika, p.nazwisko
FROM dbo.nosnik_identyfikacji AS n
JOIN dbo.pracownik AS p ON p.id_pracownika = n.id_pracownika
WHERE n.kod_nosnika = @kod
AND n.aktywny = 1;
Import numerów z istniejących kart
Zakład, który ma już karty w systemie kontroli dostępu, zwykle chce je wykorzystać w narzędziowni. Ten sam numer karty bywa raportowany jako liczba dziesiętna, zapis szesnastkowy albo ciąg bajtów w odwróconej kolejności, zależnie od czytnika. Przed importem trzeba ustalić format, który zwraca czytnik na stanowisku, i przeliczyć wszystkie numery do jednej postaci, bo inaczej karta zadziała w jednym systemie, a w drugim zostanie odrzucona.
Stanowisko wydawania - czytnik i przebieg wydania
Większość czytników działa jak klawiatura: kod trafia do aktywnego pola jako ciąg znaków zakończony klawiszem Enter. Strona stanowiska nie musi więc znać sterownika czytnika, tylko rozpoznać serię znaków, która przyszła szybciej, niż pisze człowiek. Skrypt poniżej zbiera znaki do bufora, a zerowanie po przerwie dłuższej niż 80 ms odróżnia odczyt od ręcznego pisania.
let bufor = '';
let ostatni = 0;
document.addEventListener('keydown', (e) => {
const teraz = performance.now();
if (teraz - ostatni > 80) bufor = '';
ostatni = teraz;
if (e.key === 'Enter') {
if (bufor.length >= 4) wyslijKod(bufor);
bufor = '';
} else if (e.key.length === 1) {
bufor += e.key;
}
});
async function wyslijKod(kod) {
const odp = await fetch('/api/nosnik/rozpoznaj', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ kod })
});
if (odp.ok) pokazPracownika(await odp.json());
}
Po rozpoznaniu osoby magazynier skanuje narzędzia, a każda pozycja trafia do dokumentu wypożyczenia. Opis Studio TCS.net wspomina o trybie bufora dokumentu, automatycznym nadawaniu numeru referencyjnego oraz podpisie elektronicznym lub tradycyjnym. Przebieg dokumentu wyjaśnia tekst o dokumentach wypożyczeń w Studio TCS.net.
| Krok | Zdarzenie | Zapis w systemie |
|---|---|---|
| 1. Odczyt karty | rozpoznanie pracownika | wpis o odczycie z czasem i stanowiskiem |
| 2. Skan narzędzia | dopisanie pozycji do dokumentu | pozycja w buforze dokumentu |
| 3. Zatwierdzenie | zmiana statusu narzędzi na wydane | numer referencyjny dokumentu |
| 4. Potwierdzenie | podpis elektroniczny lub tradycyjny | ślad potwierdzenia przy dokumencie |
Zwrot przebiega w odwrotnej kolejności i korzysta z tej samej identyfikacji. Reguły zwrotów opisuje strona o zwrotach narzędzi w Studio TCS.net, a wypożyczenia realizowane przez samych pracowników - tekst o wypożyczalni narzędzi przez pracowników.
Odrzucone odczyty
Nieznany kod, kod wycofanego nośnika i kod przypisany do innej osoby kończą się komunikatem na stanowisku, a nie cichym pominięciem. Każdy taki odczyt trafia do dziennika z czasem i numerem stanowiska. Powtarzające się próby użycia wycofanej karty są sygnałem, że ktoś nadal jej używa, więc warto je zestawić z raportem zgubionych identyfikatorów.
Zabezpieczenie odczytu - kopiowanie i kod PIN
Stały numer karty zbliżeniowej da się skopiować na inny nośnik prostym sprzętem, a kod kreskowy wystarczy sfotografować. Sam odczyt nie dowodzi więc, że przy okienku stoi właściciel karty. Przy narzędziach o dużej wartości dokłada się drugi składnik, czyli kod PIN wpisywany po odczycie.
PIN nie może leżeć w bazie jawnie. Zapisuje się jego skrót policzony funkcją wyprowadzania klucza z losową solą, a przy weryfikacji porównuje się skróty. Krótki PIN i tak ma niewielką przestrzeń kluczy, dlatego skrót chroni przed odczytem z bazy, ale nie zastępuje blokady po kilku błędnych próbach.
using System.Security.Cryptography;
static byte[] HashPin(string pin, byte[] sol)
{
return Rfc2898DeriveBytes.Pbkdf2(pin, sol, 100_000, HashAlgorithmName.SHA256, 32);
}
Liczbę iteracji dobiera się do mocy serwera, a sól zapisuje obok skrótu, osobno dla każdego pracownika. Blokadę po błędnych próbach realizuje się po stronie serwera, bo skrypt w przeglądarce można ominąć.
Uprawnienia i katalog użytkowników
Identyfikacja fizyczna przy okienku i logowanie do aplikacji to dwa osobne mechanizmy. Karta odpowiada na pytanie, kto odbiera narzędzie. Konto użytkownika odpowiada na pytanie, kto obsługuje system i co w nim może zmienić. Mieszanie obu funkcji w jednym identyfikatorze utrudnia późniejszy audyt.

Opis programu dla magazynu BHP wymienia integrację z Active Directory, która upraszcza administrację kontami. Katalog usług domenowych przechowuje konta i grupy oraz obsługuje uwierzytelnianie w sieci firmowej; przegląd usługi podaje dokumentacja Active Directory Domain Services. Logowanie do aplikacji magazynowych omawia też strona o logowaniu i autoryzacji.
Uprawnienia do pobierania określonych typów narzędzi wynikają z kwalifikacji zapisanych w kartotece pracownika. Raport uprawnień pokazuje, kto może pobrać dany typ narzędzia, a kto nie, co ułatwia audyt wewnętrzny. Więcej o tym, jak narzędziownia porządkuje obieg sprzętu, znajduje się w tekście o magazynie narzędzi w Studio TCS.net.

Eksploatacja nośników i dane osobowe
Utrata karty jest zdarzeniem, które system musi obsłużyć od razu. Nośnik dezaktywuje się w bazie, a pracownik dostaje nowy, więc stary kod przestaje działać, choć historia wypożyczeń pozostaje nienaruszona. Zapas pustych kart i breloków warto trzymać przy stanowisku wydawania, żeby wymiana nie zatrzymywała pracy.
Raz na kwartał warto sprawdzić, które aktywne nośniki od dawna nie były użyte. Nieużywana karta aktywnego pracownika bywa zgubiona albo leży w szafce, a nieużywana karta osoby, która odeszła, jest luką w zabezpieczeniach. Zapytanie wskazuje nośniki bez odczytu w ostatnich dziewięćdziesięciu dniach.
SELECT n.id_nosnika, p.nazwisko, MAX(o.data_odczytu) AS ostatni_odczyt
FROM dbo.nosnik_identyfikacji AS n
JOIN dbo.pracownik AS p ON p.id_pracownika = n.id_pracownika
LEFT JOIN dbo.odczyt_nosnika AS o ON o.id_nosnika = n.id_nosnika
WHERE n.aktywny = 1
GROUP BY n.id_nosnika, p.nazwisko
HAVING MAX(o.data_odczytu) IS NULL
OR MAX(o.data_odczytu) < DATEADD(DAY, -90, SYSDATETIME());
Reguła: karta pracownika, który odchodzi, zostaje dezaktywowana dopiero po zwrocie wszystkich narzędzi zapisanych na jego nazwisko.
Kod nośnika staje się daną osobową, gdy da się go powiązać z konkretnym człowiekiem, więc obowiązuje zasada minimalizacji: na karcie zapisuje się sam numer, a dane osoby oraz uprawnienia pozostają w bazie. Taka konstrukcja ogranicza skutki zgubienia karty, bo znalazca nie odczyta z niej nic poza numerem.
Nośniki identyfikacji pracowników łączą się z oznaczaniem samych narzędzi, opisanym w tekście o narzędziowni i tagach RFID. Podejście do identyfikacji w logistyce przedstawia też strona o automatycznej identyfikacji w logistyce.


