C# сервис за паралелну EZCAD3 контролу ласерског обележавања

C# сервис за EZCAD3 контролу индустријског ласерског обележавања

Преглед пројекта

Развио сам наменски 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 интеграцију и рад са више контролера.

За сличну интеграцију погледајте услугу прављења програма по мери.