Relacje katalogowe
Obsługiwane urządzenia
- T&J / TJXBIO — rodziny bioreaktorów i fermentorów współpracujące z D2MS
- T&J Bioengineering / TJXBIO ATOM HT / ATOM HT-50
- T&J Bioengineering / TJXBIO CloudReady — Intelli-Ferm / Opti-Cell
- T&J Bioengineering / TJXBIO Endura SUB C/F
- T&J Bioengineering / TJXBIO Intelli-Ferm A G2
- T&J Bioengineering / TJXBIO Intelli-Ferm A G3
- T&J Bioengineering / TJXBIO Intelli-Ferm B G2/G3 Twin
- T&J Bioengineering / TJXBIO Intelli-Ferm C/D
- T&J Bioengineering / TJXBIO Intelli-Ferm mini
- T&J Bioengineering / TJXBIO Intelli-Ferm Q
- T&J Bioengineering / TJXBIO T&J-Minibox — generacje 1–5
- T&J Bioengineering / TJXBIO Miniwave HT T25/T75
- T&J Bioengineering / TJXBIO Opti-Cell C/D
- T&J Bioengineering / TJXBIO Opti-Cell mini
T&J D2MS (Device and Data Management System) jest platformą operatorską i warstwą nadrzędnego zarządzania procesem dla bioreaktorów T&J Bioengineering/TJXBIO. Łączy konfigurację urządzeń i parametrów, prowadzenie serii fermentacji, rejestrację danych, analizę przebiegów, raportowanie, zarządzanie użytkownikami oraz automatyzację wielu stanowisk. Główny program operatorski w pakietach instalacyjnych nazywa się OAJ — Operator Action Journal.
D2MS nie zastępuje sterownika czasu rzeczywistego. W architekturze producenta przemysłowy PLC utrzymuje pętle regulacji, a OAJ działa na komputerze Windows jako warstwa supervisory. Oddzielny Data Logger pobiera wartości ze sterowników i zapisuje je w Microsoft SQL Server. Dzięki temu jedna instalacja może nadzorować wiele niezależnych reaktorów, ale komputer OAJ, logger, baza i PLC tworzą wspólną powierzchnię bezpieczeństwa.
| Parametr | Potwierdzona wartość |
|---|---|
| Producent | T&J Bioengineering / TJXBIO |
| Pełna nazwa | Device and Data Management System |
| Program operatorski | OAJ — Operator Action Journal |
| Edycje | Community Edition, Native Basic, Native Pro |
| Najnowszy zestaw wymieniony na oficjalnej stronie wydań | OAJ 2.6.9, D2MS Updater 2.6.9, Native Data Logger 2.3.6; stan potwierdzony ponownie w 2026 r. |
| System hosta dla pełnego pakietu Community 2.6.2.13 | 64-bitowy Windows 8.1 lub nowszy |
| Baza danych | Microsoft SQL Server 2017; instancja \.\tnj, baza DB |
| Runtime aplikacji | NI LabVIEW Runtime 2018 SP1, 32-bit |
| Integracja urządzeń obcych | OPC DA i NI DataSocket w Community Edition |
| Automatyzacja | profile, APC, Python UDF, import CSV, DoE |
| Podstawowe formaty | XML-owe .tjp, .tjc, .udf, .tjd, .tjs, .tjmp, .tjrc; CSV i PDF |
| Model licencji Community | bezpłatnie do zastosowań non-profit, z aktywacją zależną od identyfikatora komputera |
| Bieżące etykiety zgodności urządzeń | Native Pro, Native Basic i All; strona Intelli-Ferm A G3 używa również nazwy D2MS Pro |
Edycje i granice funkcjonalne
Community Edition służy do współpracy z urządzeniami różnych producentów. T&J udostępniło ją bezpłatnie do zastosowań non-profit. W tej edycji logger pobiera dane z serwera OPC DA, a konfiguracja wymaga mapowania urządzeń i parametrów. Community oraz Native współdzielą znaczną część kodu OAJ, dlatego układ zarządzania eksperymentami i analizy danych jest podobny.
Native Basic jest dostarczany z urządzeniami T&J i korzysta z przygotowanej przez producenta konfiguracji sterowników oraz parametrów. Operator nie musi budować warstwy mapowania OPC dla każdego tagu. Gałąź 1.x została zastąpiona właśnie przez Native Basic.
Native Pro obejmuje funkcje rozwijane dla platformy CloudReady: pracę wielu stanowisk przez sieć, rozbudowaną automatyzację, zdalny monitoring, kamery, WebAccess i mocniejszy audit trail. Oficjalny opis CloudReady wskazuje Native Pro jako część zintegrowanego systemu sprzętowo-programowego.
Rozróżnienie edycji jest istotne przy analizie konkretnej instalacji. Funkcja opisana w historii OAJ może być wspólna dla edycji, ograniczona do Native albo wymagać określonej wersji Data Loggera i poprawki bazy.
Chronologia OAJ i D2MS
Numery OAJ, D2MS Updatera i Native Data Loggera zmieniają się niezależnie. Sam zapis „D2MS 2.6” nie identyfikuje pełnego stanu instalacji.
| Wersja | Potwierdzona zmiana i zakres |
|---|---|
| 1.2.x | import historycznych danych urządzeń innych producentów |
| 1.3.0 | zdalny podgląd obrazu z kamer opartych na Raspberry Pi; front-end i aktualizacja bazy; viewer wymagał .NET Core 3.1 |
| 1.3.1 | status zezwolenia na zdalne sterowanie na ekranie mini HMI; wymagana baza co najmniej 1.3.0 |
| 1.3.2 | edycja profili i obsługa pliku diagnostycznego diagnostic.data |
| 1.4.2 | poprawka niepełnego wysyłania profilu zawierającego ponad 30 wierszy, zmiany bezpieczeństwa bazy i osie Y po obu stronach wykresu |
| 1.4.3 | poprawka nakładających się osi Y w głównym trendzie; wymagała wcześniejszej aktualizacji 1.4.2 |
| 1.4.3.8 | poprawka dla instalacji 1.4.3.x: osie Y oraz nagłówki kolumn Profile Playera podczas sterowania wieloma reaktorami |
| 2.6.2 / Community 2.6.2.13 | nowy mechanizm aktywacji, przebudowany podgląd Data Management i poprawka nagłówków Profile Playera; aktualizacja wymagała ponownej aktywacji |
| 2.6.3 | paczki rozdzielone według edycji, eksport raportu batch do PDF, zachowanie układu wykresu oraz zmiana pola Description na Batch Number |
| 2.6.4 + Updater 2.6.3 | wspólna poprawka bazy dla Community, Native Basic i Native Pro; funkcja Data > Data Validation do kontroli eksportów |
| 2.6.5 + Updater 2.6.4 | rozszerzony audit trail i eksport śladu do PDF/CSV |
| 2.6.6 | raport batch PDF, raport audit trail poza Community Edition, walidacja danych i pionowy kursor na wykresach |
| 2.6.7 | dalsze wzmocnienie audit trail; zmiana parametrów w Native wymaga podania hasła |
| 2.6.8 + Updater 2.6.6 + Native Logger 2.3.4 | mocniejszy audit trail w Native Basic/Pro oraz poprawka przesunięcia wierszy loggera przy nieudanym połączeniu; logger wymagał poprawki kont użytkowników |
| 2.6.9 + Updater 2.6.9 + Native Logger 2.3.6 | szybkie uruchamianie HMI i kamer z menu OAJ, graficzna edycja podpisów kontrolek HMI, tryb okna loggera „zawsze na wierzchu” i podgląd stanu systemu |
Producent oznacza linię 1.x jako maintenance-only. Ta gałąź nie była publicznym wydaniem ogólnym: odnośniki aktualizacyjne są przeznaczone dla wcześniejszych klientów T&J. Publiczna dystrybucja Community koncentruje się na linii 2.6.x.
Skład pełnego pakietu Community 2.6.2.13
Analiza oficjalnego pełnego archiwum pozwala rozdzielić elementy, które na stronie producenta bywają zbiorczo nazywane D2MS.
| Katalog lub program | Rola |
|---|---|
Deployment/Database_Deployment.exe |
utworzenie i inicjalizacja bazy D2MS |
Logger/OPC_Logger.exe |
pobieranie danych z OPC DA i zapis do SQL Server |
OAJ/OAJ.exe |
główny interfejs operatorski, zarządzanie urządzeniami, eksperymentami i danymi |
OAJ/Registration.exe |
rejestracja i aktywacja online |
OAJ/QR_Registration.exe |
aktywacja w trybie z kodem QR |
OAJ/MJPEG_Viewer.exe |
podgląd strumienia MJPEG z kamer |
OPC Server Simulator |
źródło danych testowych dla konfiguracji Community |
D2MS_Updater.exe |
migracja lub poprawka schematu bazy podczas aktualizacji |
katalog data |
profile, reguły, style, mapowania i dane konfiguracyjne OAJ |
Główne programy są 32-bitowymi aplikacjami PE zbudowanymi przy użyciu LabVIEW. Pełna paczka zawiera również narzędzia .NET używane do rejestracji QR i obrazu MJPEG. Moduły mogą działać na jednym komputerze, ale producent opisuje również architekturę rozproszoną, w której baza, logger i program użytkownika pracują na różnych hostach.
Wymagania hosta i zależności
Oficjalna instrukcja wdrożenia Community 2.6.2.13 wskazuje 64-bitowy Windows 8.1 lub nowszy; producent rekomenduje edycję Pro. Sprawdzony przez T&J wariant Windows 10 Home wymaga pełnej wersji wielojęzycznej — wydanie Home Single Language nie przechodziło instalacji pakietu.
| Komponent | Wersja potwierdzona w dokumentacji lub paczce |
|---|---|
| NI LabVIEW Runtime | 2018 SP1, 32-bit |
| NI License Manager | pakiet przygotowany względem linii 4.7; identyfikator hosta generuje generateComputerId.exe |
| Microsoft SQL Server | 2017 |
| Python | 3.6.2, wpisany w OAJ/settings.ini |
| .NET Framework | składnik instalacji hosta |
| .NET Core | aplikacje framework-dependent: MJPEG Viewer żąda Microsoft.WindowsDesktop.App 3.1.0, a narzędzie QR Microsoft.NETCore.App 3.1.0; paczka nie zawiera własnego hostfxr ani coreclr |
| QrCodeGenerator | ProductVersion 2.0.1, AssemblyVersion 1.6.0 |
| System.Drawing.Common | pakiet NuGet 5.0.3; plik 5.0.1221.52207, AssemblyVersion 5.0.0.2 |
| Microsoft.Win32.SystemEvents | pakiet 5.0.0 |
| HtmlAgilityPack | 1.11.30 |
| AES_NET | 1.0.0.3 |
| MJPEG Viewer | 1.0.0 |
| iTextSharp | 4.1.6 w paczkach aktualizacyjnych 2.6.3 i 2.6.6 |
| OPC Core Components i NI DataSocket | wymagane przez Community Edition |
LabVIEW Runtime jest 32-bitowy mimo 64-bitowego systemu Windows. Ma to znaczenie dla zgodności sterowników OPC, bibliotek COM i narzędzi uruchamianych w tym samym środowisku.
Architektura PLC, loggera i OAJ
T&J rozdziela sterowanie na dwie warstwy. Przemysłowe PLC odpowiadają za regulatory control: cykliczne odczyty, wyjścia i pętle PID. D2MS realizuje supervisory control: wybór urządzeń, zarządzanie RunID, profile, trendy, zdarzenia użytkowników, raporty oraz komendy obejmujące pojedynczy reaktor lub grupę reaktorów.
W Native parametry urządzeń i mapowanie komunikacji są przygotowane fabrycznie. Native Data Logger korzysta z protokołu warstwy sterowników T&J. W Community rolę adaptera pełni OPC DA: serwer OPC wystawia tagi urządzenia, OPC Logger je odczytuje, a OAJ pracuje na ujednoliconym modelu urządzeń i parametrów.
Producent zaleca uruchamianie D2MS i serwera OPC na tym samym komputerze oraz w kontekście tego samego użytkownika Windows. Powodem jest złożoność konfiguracji DCOM. Takie wdrożenie upraszcza komunikację, lecz powoduje, że konto hosta OAJ staje się również granicą dostępu do serwera OPC.
Domyślna konfiguracja loggera w pełnym pakiecie Community ma interwał 60 sekund, cztery przykładowe identyfikatory urządzeń 86–89, tryb OnChange=true i wyłączone alarmy. Są to wartości demonstracyjnej paczki, nie stałe ograniczenia platformy.
Model danych i formaty plików
Pakiet tworzy instancję SQL Server \.\tnj i bazę DB. Aplikacje łączą się przez SQLOLEDB.1. Logger zapisuje wartości procesowe, a OAJ wiąże je z urządzeniem, kanałem, użytkownikiem, RunID, czasem i konfiguracją eksperymentu.
Konfiguracje użytkownika nie są zamkniętym formatem binarnym. Następujące rozszerzenia są plikami XML i można je wersjonować oraz porównywać narzędziami tekstowymi:
| Rozszerzenie | Zastosowanie |
|---|---|
.tjp |
profile procesu i sekwencje wartości zadanych |
.tjc |
reguły Advanced Process Control |
.udf |
definicje funkcji użytkownika i automatyzacji Python |
.tjd |
projekty Design of Experiments |
.tjs |
style wykresów i prezentacji danych |
.tjmp |
mapowania kolumn i parametrów przy imporcie |
.tjrc |
definicje porównania przebiegów |
Dane pomiarowe i raporty mogą być eksportowane do CSV i PDF. Tabele inicjalizacyjne znajdujące się w pakiecie wdrożeniowym są zapisane jako Microsoft XML rowset. Zasób DB.OBJ używany przy inicjalizacji bazy ma zakodowaną postać i nie jest zwykłym eksportem SQL.
Zarządzanie seriami i analiza danych
OAJ porządkuje pracę wokół urządzenia i numeru przebiegu RunID. Operator może oglądać bieżące wartości, otwierać historię, zestawiać wiele serii, zapisywać układ osi i krzywych, prowadzić komentarze oraz wprowadzać wartości laboratoryjne. Wbudowany import łączy kolumny zewnętrznego CSV z parametrami D2MS; znacznik czasu jest polem obowiązkowym, a mapowanie można zapisać do ponownego użycia.

Import danych innego systemu: kolumny Date and Time, Agit, QG i pH są parowane z parametrami D2MS. Kadr z oficjalnej demonstracji „D2MS 3rd Party Data Import”, interfejs OAJ z 2021 r.; źródło: galeria TJXBIO.
Moduł Design of Experiments przyjmuje plan z CSV lub pliku T&J, przypisuje czynniki i odpowiedzi, a następnie prezentuje dopasowanie powierzchni odpowiedzi w widoku 3D. Pokaz producenta demonstruje algorytm Levenberg–Marquardt i rozkład LU dla modelu drugiego rzędu.

Projekt eksperymentu i inspekcja powierzchni odpowiedzi w OAJ Native; kadr z oficjalnej demonstracji „D2MS Built-in 3D Visual DoE”, interfejs z 2022 r.; źródło: galeria TJXBIO.
Profile, APC i Python UDF
Profile pozwalają zapisać przebieg wartości zadanych i odtworzyć go na jednym albo wielu reaktorach. Historia wersji 1.4.2 dokumentuje praktyczny szczegół tej funkcji: w wydaniach 1.3.3–1.4.1 profile dłuższe niż 30 wierszy mogły nie zostać wysłane w całości, co naprawiono w 1.4.2.
Advanced Process Control buduje sekwencje z warunków czasowych i procesowych oraz akcji na parametrach. Oficjalny przykład uruchamia akcję dopiero po określonym czasie, po przekroczeniu progu DO i utrzymaniu warunku przez ustaloną liczbę sekund, a następnie przełącza regulator DO do trybu automatycznego z nowym setpointem. Dispatcher pokazuje niezależny stan wykonania tej samej strategii dla kilku reaktorów.

Reguła APC sterująca DO równolegle w reaktorach Twin1 i Twin2; kadr z oficjalnej demonstracji „APC (Advanced Process Control) Demo”, interfejs z 2023 r.; źródło: galeria TJXBIO.
UDF rozszerza tę automatykę o skrypty Python. Producent opisuje wykonywanie pełnej serii z profilu CSV albo skryptu oraz stosowanie Python UDF do zaawansowanego sterowania. W pełnej paczce Community 2.6.2.13 interpreter jest oznaczony jako Python 3.6.2, dlatego ocena kodu UDF musi obejmować zarówno sam skrypt, jak i nieobsługiwaną już linię runtime.
Sterowanie wieloma reaktorami
Lista urządzeń w OAJ pozwala zaznaczyć kilka reaktorów i wykonywać wspólne operacje. Zrzut demonstracyjny Native Pro pokazuje jednoczesną zmianę wartości zadanych dla R1–R4 oraz tabelę zdarzeń z czasem, RunID, użytkownikiem, poprzednią i nową wartością. Ten mechanizm jest podstawą pracy wysokoprzepustowej: jedno polecenie może objąć dziesiątki stanowisk zamiast wymagać ręcznej obsługi każdego HMI.

Zmiana nastaw R1–R4 i lista zdarzeń operatorskich w Native Pro; kadr z oficjalnej demonstracji „D2MS Audit Trail Support”, interfejs z 2022 r.; źródło: galeria TJXBIO.
Kamery i monitoring procesu
Obsługa kamer pojawiła się w gałęzi 1.3.0. Producent zastosował Raspberry Pi po stronie obrazu oraz viewer wymagający .NET Core 3.1 na hoście OAJ. Pełny pakiet 2.6.2.13 zawiera MJPEG_Viewer.exe; przykładowy plik uruchomieniowy wywołuje go z adresem 192.168.0.99, portem 8000 i nazwą kamery TEST.
Paczka demonstracyjna urządzeń przechowuje osobno Camera IP. Przykładowa konfiguracja wskazuje 192.168.1.19:8000. OAJ Native Basic potrafi otworzyć równocześnie osobne okna obrazu dla wielu kanałów; 2.6.9 dodał szybkie uruchamianie monitoringu z głównego menu.

Dwanaście okien Live Video otwartych nad interfejsem Native Basic; kadr z oficjalnej demonstracji „D2MS Live Stream Cameras”, interfejs z 2022 r.; źródło: galeria TJXBIO.
WebAccess i warianty zdalnego dostępu
Podstawowym modelem wdrożenia opisanym w FAQ jest sieć lokalna bez wymaganego dostępu do Internetu. CloudReady rozszerza ten model o pracę zespołów z innych lokalizacji. Producent wymienia pięć sposobów zestawienia zdalnego dostępu:
- statyczny publiczny adres IP i domena dla serwera brzegowego;
- przekierowanie portów, jeśli organizacja posiada już publiczny adres;
- reverse proxy
frpz publicznym serwerem, np. Ubuntu Linux; - TeamViewer lub AnyDesk;
- VPN oraz własny pulpit zdalny albo serwer VNC.
D2MS WebAccess udostępnia w przeglądarce wybór urządzeń, bieżące wartości i wykresy. Oficjalny kadr pokazuje adres http://192.168.56.101/pagedisplay/index, czyli usługę HTTP w prywatnej podsieci, bez TLS na tym stanowisku demonstracyjnym. Interfejs pozwala wybrać Twin1–Twin4, ustawić tryb Digital+Graph, interwał odświeżania w milisekundach i długość historii w godzinach.

Strona konfiguracji D2MS WebAccess na hoście 192.168.56.101; kadr z oficjalnej demonstracji „D2MS WebAccess Feature Demo”; źródło: galeria TJXBIO.
Konta startowe, połączenie SQL i token tunelu
Pełny pakiet Community 2.6.2.13 zawiera konkretne wartości startowe. Należą one do instalatora i konfiguracji demonstracyjnej tej wersji; nie są uniwersalnym opisem każdej instalacji Native.
| Miejsce | Identyfikator | Wartość | Znaczenie |
|---|---|---|---|
instrukcja Deployment/Readme |
Admin |
123456 |
pierwsze logowanie do aplikacji po wdrożeniu bazy |
Logger/settings/sql.udl |
remote_user |
123456 |
login SQL zapisany jawnym tekstem w connection stringu |
OAJ/settings/sql.udl |
remote_user |
123456 |
ten sam login SQL używany przez OAJ |
OAJ/sql.ini |
token |
PSWRD_54321 |
token klienta tunelu TCP do wskazanego serwera |
OAJ/settings.ini |
admin |
zaszyfrowany lub zakodowany ciąg | zapis poświadczenia administratora w konfiguracji OAJ |
Pliki UDL mają ustawione Persist Security Info=True, bazę DB, instancję \.\tnj i provider SQLOLEDB.1. Oznacza to, że dostęp do katalogów aplikacji daje również dostęp do connection stringa z hasłem SQL w wersji 2.6.2.13.
Role i poziomy dostępu
Tabele inicjalizacyjne bazy definiują dziewięć grup. Wartości liczbowe są częścią seedów Community 2.6.2.13.
| Grupa | Poziom zapisany w paczce |
|---|---|
| Admin | 255 |
| OEM | 255 |
| Team Leader | 129 |
| Manager | 129 |
| Engineer | 128 |
| Operator | 127 |
| Technician | 126 |
| Pending | 0 |
| Customer | 0 |
Dostęp do parametrów jest dodatkowo klasyfikowany jako Read albo Read-Write. FAQ opisuje siedem poziomów dostępu oraz dwa tryby pracy polityki — Strict i Sloppy. Zestaw nazw w seedach i siedmiopoziomowy model z FAQ odnoszą się do różnych warstw konfiguracji: grup użytkowników oraz egzekwowanych poziomów uprawnień.
Porty, endpointy i usługi widoczne w paczce
| Port lub mechanizm | Zakres i potwierdzona rola |
|---|---|
| OPC DA / DCOM | integracja Community z serwerem OPC; negocjacja RPC/DCOM nie sprowadza się do jednego stałego portu aplikacyjnego |
| TCP/102 | przykładowe urządzenia Bench, R1–R4 w Devices.tbl; port typowy dla ISO-on-TCP/S7, tutaj potwierdzony jako wartość konfiguracji demonstracyjnej |
| TCP/8000 | strumień MJPEG kamery w przykładach Devices.tbl i viewer.bat |
| TCP/1433 | docelowy port SQL Server po stronie tunelu z sql.ini |
127.0.0.1:2433 |
lokalny endpoint klienta tunelu SQL |
47.105.113.123:8050 |
serwer i port klienta tunelu zapisane w dostarczonym sql.ini |
| HTTP | WebAccess; demonstracja producenta używa http://192.168.56.101/pagedisplay/index |
| VNC / RDP | opcjonalny dostęp do hosta D2MS przez VPN według wariantów CloudReady |
frp |
opcjonalny reverse proxy do publikacji instalacji przez serwer z publicznym IP |
Konfiguracje aplikacji LabVIEW w pełnym pakiecie mają server.app.propertiesEnabled=True, server.ole.enabled=True i server.tcp.paranoid=True. Usługa VI Server jest nazwana My Computer/VI Server, a dostęp do wywołań i właściwości jest włączony. Reguły Web Server zapisane w plikach konfiguracyjnych to WebServer.TcpAccess="c+*" oraz WebServer.ViAccess="+*". Są to ustawienia dostarczonych plików aplikacji; faktyczne nasłuchiwanie zależy od uruchomionych modułów i konfiguracji hosta.
Licencjonowanie, aktywacja i zabezpieczenie fizyczne
Community Edition jest bezpłatna do zastosowań non-profit. Producent nie obejmuje jej standardowym wsparciem poza procedurą rejestracji i aktywacji. Rejestracja może być wykonana online albo przez kod QR, a zgłoszenie jest zatwierdzane po stronie T&J. Po zatwierdzeniu użytkownik ponownie uruchamia narzędzie rejestracyjne, aby zakończyć aktywację.
Licencja jest wiązana z identyfikatorem komputera generowanym przez narzędzie NI generateComputerId.exe i obsługiwana przez NI License Manager. Community 2.6.2.13 nie wymaga fizycznego dongla USB. Zabezpieczeniem jest identyfikator hosta oraz stan aktywacji przechowywany przez mechanizmy NI.
FAQ opisuje zakupione licencje jako bezterminowe z bezpłatnymi aktualizacjami. EULA T&J z 1 czerwca 2021 r. precyzuje jednak, że liczbę kopii, czas użycia i prawo do upgrade'ów wyznacza indywidualny Entitlement lub Usage Term; dopuszcza subskrypcję z odnowieniem, a domyślny okres wersji próbnej wynosi 90 dni. Dla wdrożenia komercyjnego obowiązuje więc dokument zamówienia. Native Basic i Native Pro są licencjonowane wraz z konfiguracją urządzeń lub platformą CloudReady, a nie jako produkt z publicznym cennikiem pudełkowym.
Bieżąca strona główna TJXBIO reklamuje dodatkowo, przez ograniczony czas, bezpłatną wersję D2MS „dla każdego do wypróbowania”. Jest to oferta testowa: nie zmienia opublikowanej zasady Community Edition „free of charge for non-profit purposes” ani warunku EULA, według którego bezpłatna wersja evaluation bez indywidualnie wskazanego terminu wygasa po 90 dniach. Status konkretnej instalacji trzeba zatem wiązać z jej entitlementem i stanem aktywacji, a nie wyłącznie z nazwą pliku OAJ.
Oficjalne pliki do pobrania
| Pakiet | Oficjalny odnośnik | Zawartość lub zastosowanie |
|---|---|---|
| pełny D2MS Community 2.6.2.13 | Google Drive | baza, logger OPC, OAJ, rejestracja, simulator i pliki demonstracyjne |
| D2MS Community 2.6.3 | Google Drive | aktualizacja OAJ dla edycji Community |
| D2MS Updater 2.6.2 | Google Drive | migracja bazy |
| D2MS Community 2.6.6 | Google Drive | paczka Community z funkcjami 2.6.6 |
| D2MS Updater 2.6.4 | Google Drive | migracja bazy dla aktualizacji 2.6.5 |
| D2MS/OAJ 2.6.7 | Google Drive | paczka OAJ 2.6.7 |
| OAJ 2.6.9 + Updater 2.6.9 + Native Logger 2.3.6 | Baidu, kod TJX5 |
bieżący zestaw wskazany na stronie wydań |
| OAJ 2.6.8 + Updater 2.6.6 + Native Logger 2.3.4 | Baidu, kod TJX9 |
wydanie Native i poprawki loggera |
| OAJ 2.6.5 + Updater 2.6.4 | Baidu, kod TJX9 |
audit trail i eksport PDF/CSV |
| OAJ 2.6.4 + Updater 2.6.3 | Baidu, kod TJX9 |
data validation i poprawka bazy |
| Native Pro OAJ 2.6.2.1 | Baidu, kod TJX5 |
aktualizacja Native Pro i mechanizmu aktywacji |
| Native Data Logger 2.3.2 | Baidu, kod TJX6 |
logger dla Native |
| SQL Server i Python — pakiet zależności | Baidu, kod drfp |
instalacja silnika bazy i Pythona |
| NI Package Manager | Baidu, kod TJX1 |
instalator komponentów NI |
| NI License Manager | Baidu, kod TJX1 |
obsługa licencji i aktywacji |
| LabVIEW Runtime 2018 SP1 | Baidu, kod TJX0 |
wymagany 32-bitowy runtime |
Oficjalna strona wydań dm.parallel-bioreactor.com przedstawia historię i odnośniki, lecz 6 września 2026 r. jej certyfikat TLS był wygasły. Archiwa Google Drive pozostają niezależnymi celami pobrania.
Aktualizacja i integralność pakietów
Procedura 2.6.x składa się z trzech operacji: uruchomienia odpowiedniego D2MS_Updater.exe, zastąpienia pliku OAJ.exe oraz scalenia katalogu data. Aktualizacja 2.6.3 wymaga wyboru paczki zgodnej z edycją. Wydania 2.6.8 i 2.6.9 pozwalają przejść bezpośrednio z OAJ 2.6.5, z pominięciem wydań pośrednich. Native Logger 2.3.4 wymaga dodatkowej poprawki kont użytkowników.
T&J opublikowało sumy MD5 pięciu głównych programów pełnej paczki Community 2.6.2.13. Wartości plików pobranych z oficjalnego archiwum są zgodne:
| Plik | MD5 |
|---|---|
Database_Deployment.exe |
c8c4ac3846a27ee3d44799bb3c3ddc10 |
OPC_Logger.exe |
c979fdd2f534bb71c421bfb32a6adc10 |
OAJ.exe |
e7d852d56c6fa1d003621b7f5bc01a65 |
Registration.exe |
f7f59ceb0f24a1c022675a7904d620ce |
QR_Registration.exe |
cd0cf7abfc1ccacc18a92aa671031a85 |
Każdy z tych plików ma pusty wpis PE Security Directory (00000000/00000000), czyli nie zawiera podpisu Authenticode. MD5 pozwala porównać pobraną paczkę z wartością podaną przez producenta, ale nie zapewnia kryptograficznego potwierdzenia wydawcy takiego jak ważny podpis kodu. Wszystkie zarchiwizowane ZIP-y przechodzą test integralności struktury unzip -t.
Audit trail, raporty i walidacja
Gałąź 2.6.5 dodała eksport audit trail do PDF i CSV. W 2.6.6 rozszerzono raporty batch oraz narzędzia inspekcji danych. W 2.6.7 zmiana parametrów w Native zaczęła wymagać ponownego podania hasła, a 2.6.8 wzmocniła śledzenie operacji w Native Basic i Native Pro.
Audit trail zapisuje co najmniej czas, urządzenie, RunID, działanie, użytkownika oraz wartości związane z operacją. Oficjalna demonstracja pokazuje zdarzenia takie jak uruchomienie mieszania, zmiana Agit_SP, zmiana DO_SP i komentarz operatora. Funkcja Data Validation służy do sprawdzenia, czy plik CSV lub raport PDF wyeksportowany przez OAJ został później zmieniony poza D2MS.
Community Edition nie ma automatycznego backupu. Kopia bezpieczeństwa instancji SQL i katalogu data jest więc oddzielną funkcją administracyjną hosta, a nie usługą zapewnianą przez bezpłatną edycję OAJ.
Bezpieczeństwo komponentów i CVE
Zapytania NVD dla nazw T&J D2MS i TJXBIO zwracają po 0 rekordów. Nie oznacza to braku podatnych składników: pełna paczka Community 2.6.2.13 wskazuje dokładnie Python 3.6.2, a zapytanie NVD dla tego CPE zwraca 69 rekordów. Python Software Foundation zakończyła wsparcie linii 3.6 dnia 23 grudnia 2021 r.; ostatnim wydaniem bezpieczeństwa było 3.6.15.
Poniżej zestawiono podatności reprezentujące klasy istotne dla funkcji UDF. Sam fakt obecności runtime nie dowodzi osiągalności: warunkiem jest użycie wskazanego modułu przez skrypt i doprowadzenie do niego kontrolowanego wejścia.
| CVE | Typ | Warunek istotny dla D2MS |
|---|---|---|
| CVE-2007-4559 | path traversal w tarfile.extract/extractall |
UDF rozpakowuje niezaufane archiwum TAR bez walidacji ścieżek |
| CVE-2018-1000117 | przepełnienie bufora i wykonanie kodu w os.symlink() na Windows |
skrypt tworzy dowiązanie z kontrolowaną nazwą lub ścieżką; 3.6.2 należy do podatnego zakresu |
| CVE-2018-14647 | wyczerpanie CPU/RAM przez kolizje hashy XML | UDF parsuje kontrolowany XML przez akcelerator ElementTree/Expat |
| CVE-2019-9636, CVE-2019-10160 | błędna normalizacja i parsowanie adresu URL, możliwe ujawnienie informacji | skrypt podejmuje decyzje o hoście, cookies lub poświadczeniach na podstawie niezaufanego URL |
| CVE-2019-9740, CVE-2019-9947, CVE-2019-18348 | CRLF injection w urllib |
UDF przekazuje kontrolowany query/path/host do urllib.request.urlopen |
| CVE-2018-20852 | ujawnienie cookies wskutek błędnego dopasowania domeny | skrypt używa http.cookiejar.DefaultPolicy i łączy się z hostem kontrolowanym przez atakującego |
| CVE-2020-8492 | ReDoS w obsłudze Basic Auth | klient HTTP UDF przetwarza spreparowane wyzwanie uwierzytelniające serwera |
| CVE-2020-15523 | DLL search-order hijacking w osadzonym CPythonie | dotyczy tylko wariantu osadzającego CPython i używającego Py_SetPath; paczka D2MS wskazuje zewnętrzny interpreter, więc warunek trzeba potwierdzić w instalacji |
| CVE-2021-3177 | przepełnienie bufora w ctypes (PyCArg_repr) |
UDF przekazuje kontrolowane wartości zmiennoprzecinkowe do podatnej ścieżki ctypes |
| CVE-2021-23336 | web cache poisoning w urllib.parse.parse_qs/parse_qsl |
UDF przetwarza URL-e w układzie z cache'em lub proxy |
| CVE-2022-0391 | CRLF injection przez znaki sterujące w ścieżce URL | skrypt używa urllib.parse dla kontrolowanych adresów |
| CVE-2022-26488 | lokalne podniesienie uprawnień przez modyfikację PATH instalatora Windows | Python zainstalowano dla wszystkich użytkowników z wpisami PATH, a lokalny użytkownik może uruchomić naprawę instalacji |
| CVE-2022-48565 | XXE w plistlib |
UDF parsuje kontrolowany plik XML plist |
| CVE-2023-24329 | obejście blokady URL przez początkowe białe znaki | skrypt filtruje adresy na podstawie wyniku starego urllib.parse |
| CVE-2024-6232, CVE-2024-7592 | ReDoS w parserze TAR i cookies | UDF przetwarza spreparowane nagłówki archiwum lub wartości cookies |
Narzędzia MJPEG i QR są aplikacjami framework-dependent dla .NET Core 3.1. Microsoft zakończył wsparcie tej linii 13 grudnia 2022 r.; ostatni patch to 3.1.32. Pliki runtimeconfig.json żądają co najmniej 3.1.0, ale nie zapisują wersji faktycznie zainstalowanej na hoście. Dlatego 21 rekordów NVD dla rodziny .NET Core 3.1 nie zostało automatycznie przypisanych D2MS. Dołączony System.Drawing.Common ma wersję pakietu 5.0.3, czyli pierwszą wersję naprawiającą CVE-2021-24112; podatność ta dotyczyła ponadto parsowania grafik na macOS/Linux, podczas gdy D2MS jest wdrażany na Windows.
Analogicznie określenie „SQL Server 2017” nie zawiera numeru builda/CU. Dziesięć rekordów NVD dla tej generacji jest materiałem do porównania z konkretnym hostem, a nie podstawą do przypisania ich wszystkim instalacjom. Własne programy D2MS w analizowanym pakiecie nie mają podpisów Authenticode, a konfiguracja przechowuje jawne poświadczenie SQL i stały token tunelu. Zdalne warianty frp, port forwarding, TeamViewer, AnyDesk, VPN/VNC oraz WebAccess tworzą odrębne ścieżki ekspozycji.
Źródła
- T&J — oficjalna strona pobierania, wymagań i historii D2MS
- TJXBIO — wprowadzenie do D2MS Community, architektura i wymagania
- TJXBIO — demonstracja D2MS Community 2.6.3, OPC Logger i RunID
- TJXBIO — aktualizacja D2MS/OAJ 2.6.6–2.6.7
- TJXBIO — CloudReady: Python UDF, profile CSV i warianty dostępu zdalnego
- TJXBIO — galeria demonstracji interfejsu D2MS
- TJXBIO — FAQ: izolowany LAN, architektura rozproszona, role i licencje
- TJXBIO — bieżąca strona D2MS i czasowa oferta testowa
- T&J — D2MS End User License Agreement, 1 czerwca 2021 r.
- Python Software Foundation — Python 3.6.2 i status zakończenia wsparcia
- PEP 494 — harmonogram i koniec wsparcia Pythona 3.6
- Microsoft — cykl wsparcia .NET i koniec wsparcia .NET Core 3.1
- Microsoft — CVE-2021-24112 i wersje naprawcze .NET Core 3.1/System.Drawing.Common