
Преглед пројекта
Развио сам наменски Windows сервис који повезује производни софтвер са више EZCAD3 контролера за ласерско обележавање. Апликација прима задатке преко локалног HTTP/JSON API-ја, припрема сваки контролер независно и покреће активне ласерске јединице паралелно.
Програмерски изазов
Главни изазов било је поуздано повезивање управљаног C# кода са изворним 64-битним EZCAD3 SDK-ом. Интеграција је изведена преко P/Invoke слоја, уз јасно управљање животним циклусом SDK ресурса, проверу повратних кодова и изоловано извршавање команди за сваки контролер.
Како је решење организовано
- Одвојени слојеви – HTTP API, ток извршавања и EZCAD3 драјвер раздвојени су тако да се сваки део може засебно тестирати и мењати.
- Контролисана стања – сервис прати припрему, извршавање, завршетак, отказивање и грешке, без преклапања недозвољених команди.
- Паралелна обрада – сваки контролер има сопствени радни контекст, док оркестратор координира заједнички почетак и чека завршетак свих активних јединица.
- Симулација без хардвера – исти ток могао је да се провери помоћу симулатора пре удаљеног тестирања на стварној Windows машини и повезаној опреми.
- Дијагностика – структурирани логови бележе промене стања, трајање операција и грешке, што поједностављује пуштање у рад и касније одржавање.
Поузданост и тестирање
Имплементирани су валидација улаза, безбедно заустављање, временска ограничења за позиве ка SDK-у и предвидив повратак система у почетно стање. Аутоматизовани тестови покривају API и ток рада у симулацији, док је интеграција са стварним контролерима проверавана постепено: прво на једној јединици, а затим у паралелном режиму.
Софтвер управља процесом и сигналима, али не замењује независне хардверске безбедносне склопове индустријске машине.
Коришћене технологије
C#, .NET, ASP.NET Core, Windows Service, HTTP/JSON API, P/Invoke, EZCAD3 SDK, асинхроно и паралелно програмирање, аутоматизовани тестови и структурирано логовање.
Резултат
Клијент је добио модуларан сервис који уклања потребу да главни производни софтвер директно управља EZCAD3 апликацијом. Решење може да припреми више контролера, координира извршавање, пријави стање и пружи довољно техничких података за поуздану дијагностику, без излагања детаља производног процеса.
Повратне информације клијента
★★★★★5/5“Изузетан рад! Веома је организован и одлично комуницира. Веома сам задовољан његовим радом.”
Ово је засебан наставак искуства приказаног у пројекту EZCAD3 апликације са скенирањем бар-кода, са фокусом на серверску архитектуру, директну SDK интеграцију и рад са више контролера.
За сличну интеграцију погледајте услугу прављења програма по мери.
Оставите одговор