올바른 SCADA 시스템 선택 방법
압력 밸브가 잘못된 시간에 열렸습니다. 40초 전에 발령되었어야 할 경보가 작동하지 않았습니다. 경고도, 지연된 알림도 없이 HMI 화면의 상태 필드만 비어 있었습니다. 운영자는 세 개의 모니터를 통해 상수도 처리장의 실시간 데이터를 보고 있었고, SCADA 시스템은 모든 것이 정상이라고 알려주고 있었습니다. 사실이 아니었습니다.
그 실패는 하드웨어 불량이나 소프트웨어 버그에서 비롯된 것이 아닙니다. 4년 동안 아무도 건드리지 않은, 시운전 중에 구성된 폴링 간격 때문이었습니다. 3초 만에 안전 범위를 벗어날 수 있는 프로세스에 10초로 설정되어 있었습니다. SCADA 시스템이 편차를 감지했을 때는 이미 개입할 창이 닫힌 후였습니다.
이것이 운영 측면에서 'SCADA란 무엇인가'의 모습입니다. 정의가 아니라, 제때 도착하거나 도착하지 못하는 결정입니다.
SCADA란 무엇인가 - 한 문단 답변
SCADA는 Supervisory Control and Data Acquisition(감독 제어 및 데이터 수집)의 약자입니다. 현장 장치에서 실시간 데이터를 수집하고, 통신 네트워크를 통해 마스터 스테이션으로 전송하며, 휴먼 머신 인터페이스를 통해 표시하고, 분산 또는 원격 사이트 전반에 걸쳐 운영자가 제어 명령을 내릴 수 있도록 하는 하드웨어 및 소프트웨어 시스템입니다. 핵심 단어는 감독(supervisory)입니다. SCADA는 모니터링하고 보고합니다. 직접적인 실시간 기계 제어는 HMI PLC 또는 RTU 레벨에서 발생합니다. SCADA는 해당 장치가 보고하는 내용을 읽고 사람에게 다음에 무슨 일이 일어날지 결정하는 데 필요한 정보를 제공합니다.
SCADA가 아닌 것: PLC, DCS 또는 독립적인 히스토리언. 이러한 각 용어는 조달 대화에서 상호 교환적으로 사용되며, 매번 누군가가 잘못된 시스템을 사양합니다.
SCADA 대 PLC 대 RTU 대 DCS — 하나가 끝나고 다른 하나가 시작되는 지점
이 네 가지 사이의 혼동은 학문적인 것이 아닙니다. DCS가 필요할 때 SCADA 시스템을 사양하면, 프로세스에 필요한 폐쇄 루프 로직을 처리하도록 설계되지 않은 제어 아키텍처 위에 시각화 계층이 놓이게 됩니다.
| 시스템 | 주요 기능 | 결정 속도 | 일반적인 위치 | 주요 산업 |
|---|---|---|---|---|
| SCADA | 감시 모니터링 및 데이터 수집 | 초 ~ 분 | 제어실 / 원격 서버 | 수자원, 석유 및 가스, 전력망 |
| PLC | 실시간 기계 제어 로직 | 밀리초 | 현장, 패널 내부 | 제조, 포장 |
| RTU | 현장 데이터 수집 및 원격 측정 | 초 | 원격 무인 사이트 | 파이프라인, 변전소 |
| DCS | 분산 폐쇄 루프 공정 제어 | 밀리초 ~ 초 | 연속 공정 플랜트 | 정유, 화학, 제약 |
PLC는 머신 레벨에서 밀리초 단위로 래더 로직을 실행합니다. SCADA는 PLC가 보고하는 내용을 읽어 운영자에게 표시합니다. 이 두 가지는 서로 다른 작업이며, 이 둘 사이의 경계에서 대부분의 통합 문제가 발생합니다.
SCADA 시스템의 작동 방식 — 계층별 설명
데이터는 SCADA 시스템에서 물리적 프로세스에서 운영자 화면으로 단방향으로 이동합니다.
현장 센서 — 압력 트랜스미터, 유량계, 온도 프로브 — 는 아날로그 또는 디지털 신호를 생성합니다. 이 신호는 PLC 또는 RTU에 도달하고, PLC 또는 RTU는 이를 디지털 값으로 변환하여 마스터 스테이션이 폴링할 때까지 보유합니다. 통신 네트워크는 폴 요청 및 응답을 전달합니다. 이전 시스템은 직렬 링크를 통해 Modbus RTU 또는 DNP3를 사용했으며, 최신 배포는 이더넷을 통해 Modbus TCP 또는 IEC 60870-5-104를 실행합니다. 마스터 스테이션은 데이터를 수신하고, 타임스탬프를 찍고, 히스토리언에 기록하고, 현재 값을 HMI 디스플레이로 푸시합니다. 운영자는 화면에서 숫자를 봅니다. 터치스크린. 이 숫자가 구성된 임계값을 초과하면 경보가 발생합니다.
이 전체 사이클 — 센서에서 화면까지 — 은 폴 간격, 네트워크 지연 시간 및 HMI 새로 고침 빈도에 따라 1초에서 10초 사이에 소요됩니다. 상태가 3초 안에 변경될 수 있는 프로세스에서 10초 사이클은 모니터링이 아닙니다. 그것은 역사를 검토하는 것입니다.
SCADA 시스템의 5가지 핵심 구성 요소
원격 터미널 장치 및 PLC 현장 데이터를 수집하고 요청 시 전송합니다. RTU가 전원 손실, 통신 두절, 펌웨어 충돌 등으로 인해 조용히 실패하면, 마스터 스테이션은 종종 마지막으로 알려진 값을 계속 표시합니다. 추세 표시기의 평탄한 선은 안정적인 공정을 나타내는 것처럼 보입니다. 이는 센서 고장일 수 있습니다.
감독용 컴퓨터 (마스터 스테이션) 모든 현장 장치로부터 데이터를 수신하고, 경보 로직을 실행하며, 이벤트 로그를 저장합니다. 대규모 설치에서 여러 개의 중복 서버가 이 역할을 공유합니다. 소규모 설치에서는 단일 PC가 모든 것을 처리합니다. 잘못된 시점에 발생한 단일 Windows 업데이트 재부팅은 전체 SCADA 시스템을 오프라인 상태로 만듭니다.
휴먼 머신 인터페이스 운영자가 공정을 실시간으로 볼 수 있는 유일한 창입니다. 느린 HMI는 디스플레이 문제가 아닙니다. 이는 운영상의 맹목이며, 모든 초 단위 지연은 운영자가 오래된 데이터로 의사결정을 내리는 초를 의미합니다.
통신 네트워크 RTU, PLC 및 마스터 스테이션을 연결합니다. 프로토콜 불일치, 대역폭 포화, 잘못 구성된 폴 스케줄은 다른 곳에서 나타나기 전에 여기서 먼저 나타납니다.
히스토리안 프로세스 데이터를 시간에 따라 기록합니다. 이는 사고 조사팀이 사고 후에 읽는 내용입니다. 히스토리언이 "안정된" 데이터를 공격적으로 압축하도록 구성되었다면, 실패 직전의 스파이크는 노이즈로 간주되어 삭제되었을 수 있습니다. 사고 후, 추세는 평탄하게 보입니다. 실제 이벤트는 사라진 것입니다.
SCADA 시스템이 실패하는 지점 — 아무도 쓰지 않는 네 가지 잘못된 구성

대부분의 SCADA 실패는 극적이지 않습니다. 조용하고 점진적이며, 사고가 발생한 지 몇 주 후에 발견됩니다.
폴링 간격이 프로세스 응답 시간보다 김. 이것은 가장 흔한 잘못된 구성이지만 가장 덜 논의되는 것입니다. 통합업체는 시운전 중에 RTU 폴링 간격을 10초로 설정합니다. 당시에는 느리게 움직이는 프로세스에 합리적입니다. 2년 후, 프로세스 조건이 변경됩니다. 시스템은 이제 3~4초 내에 응답합니다. 이벤트 후 10초가 지나야 경보가 울립니다. 운영자는 개입할 기회가 아닌, 확인해야 할 경보로 인식합니다. 폴링 간격이 실제 사고로 이어지기 전까지는 거의 사고를 이것과 연결하지 않습니다.
히스토리언 압축이 너무 공격적으로 설정됨. 대부분의 히스토리언은 데드밴드 압축을 사용합니다. 값이 X% 이상 변경되지 않았다면 기록을 건너뜁니다. 이는 안정적인 프로세스에 효과적이며 스토리지를 절약합니다. 동적인 프로세스에서는 증거를 파괴합니다. 하나의 압축 주기 내에서 상승하고 하강하는 압력 스파이크는 두 개의 동일한 값으로 저장되고 타임스탬프 간격이 발생합니다. 사고 후 분석은 평탄한 선을 보여줍니다. 조사관은 프로세스가 안정적이었다고 결론 내립니다. 실제로는 그렇지 않았습니다. 히스토리언은 데드밴드 내에 포함되어 편차가 발생했기 때문에 이를 삭제했습니다.
플랜트 확장 후 태그 수가 라이선스 제한을 초과함. 500개의 라이선스 태그로 설치된 SCADA 시스템이 5년 후 새로운 생산 라인이 추가되면서 확장됩니다. 통합업체는 120개의 새 계측기를 추가합니다. 태그 라이선스 제한을 확인하는 사람은 아무도 없습니다. SCADA 소프트웨어는 제한 초과를 유발한 계측기(일반적으로 가장 최근에 추가된 것으로, 종종 새 라인의 중요 센서임) 폴링을 조용히 중단합니다. 새 라인은 모니터링 없이 3개월 동안 작동합니다. QA 감사에서 히스토리안의 누락된 데이터를 플래그 지정하기 전까지 아무도 눈치채지 못합니다.
장치 교체 후 프로토콜 버전 불일치. 현장 PLC가 유지보수 시간 동안 교체됩니다. 이전 장치는 RS-485를 통한 Modbus RTU를 실행했습니다. 교체 장치는 이더넷을 통한 Modbus TCP를 실행합니다(동일한 프로토콜 패밀리, 다른 전송). SCADA 폴링 구성이 업데이트되지 않습니다. 마스터 스테이션은 이제 이더넷의 포트 502에서 수신 대기 중인 장치에 시리얼 폴 요청을 계속 보냅니다. 읽기 결과는 0입니다. 운영자는 0 값을 보고 통신이 끊어진 것이 아니라 프로세스가 0이라고 가정합니다. 두 교대 근무 동안 해당 PLC의 모든 값은 0으로 읽힙니다.
잘못된 가정, 그럴듯해 보이는 데이터, 알람 미발생, 지연된 발견이라는 네 단계의 체인이 산업 전반에 걸쳐 반복됩니다. 도구는 작동합니다. 구성이 잘못되었습니다. 그리고 시스템은 그 차이를 표시할 방법이 없습니다.
실제 SCADA - 예상과 다르게 작동하는 두 가지 산업
수처리: 구성되지 않은 히스토리안 동기화.
중소 규모의 지방 자치 단체 유틸리티가 14개의 원격 펌프 스테이션에 처음으로 SCADA를 배포합니다. 이 프로젝트는 수동 현장 방문 및 종이 로그 시트를 대체합니다. 예상 이점: 인건비 절감. 시스템이 가동되어 처음 3개월 동안 잘 작동합니다.
4개월 차에 한 원격 스테이션의 광섬유 링크가 도관 절단으로 인해 6시간 동안 끊어집니다. 링크가 복구되면 마스터 스테이션에서 해당 스테이션의 데이터에 6시간의 누락이 표시됩니다. 교체 시 작성된 알람 절차에 따라 근무 중인 운영자는 해당 누락을 잠재적인 펌프 고장으로 분류하고 기술자 두 명을 파견합니다. 운전 시간: 각 방향 90분. 도착 시 펌프는 정상적으로 작동하고 있었습니다. 누락은 통신 두절이었지 프로세스 고장이 아니었습니다. 원격 RTU의 히스토리안은 정전 기간 동안 로컬에서 데이터를 기록하고 있었지만, 연결이 복원되면 저장된 데이터를 마스터 스테이션으로 다시 재생하도록 동기화 간격을 구성한 사람은 아무도 없었습니다. 수정에는 20분이 걸렸습니다. 출동 비용은 해당 스테이션의 초기 SCADA 통합 예산을 초과했습니다.
돌이켜보면, 동기화 간격은 한 줄의 구성 매개변수였습니다. 커미셔닝 체크리스트에 정의된 적이 없었습니다. 통합업체는 고객이 설정할 것이라고 가정했습니다. 고객은 기본값이라고 가정했습니다. 그렇지 않았습니다.
석유 및 가스 파이프라인: 시대에 뒤떨어진 누출 감지 임계값.
340km의 파이프라인은 11개의 컴프레서 스테이션에서 SCADA 모니터링으로 운영됩니다. 누출 감지 로직은 예상 유량을 측정된 유량과 비교하고 편차가 3%를 초과하면 경보를 발생시킵니다. 이 임계값은 커미셔닝 시 파이프라인의 설계 처리량을 기준으로 보정되었습니다.
커미셔닝 후 3년이 지나고 운영업체는 새로운 공급 계약을 체결합니다. 처리량이 설계 용량의 30% 증가합니다. 아무도 누출 감지 임계값을 업데이트하지 않습니다. 경보 로직은 더 이상 존재하지 않는 유량 체제에 대해 보정되었습니다. 실제 압력 강하 이벤트(소규모 누출과 일치)는 새로운 유량 기준선에 대해 2.1%의 편차를 발생시킵니다. 임계값은 3%입니다. 경보가 발생하지 않습니다.
운영은 7개월 동안 정상적으로 계속됩니다. 예약된 무결성 감사가 이상 징후를 발견합니다. 사후 분석에 따르면 이벤트는 감사 전에 6~8주 동안 존재했던 것으로 추정됩니다. 시스템은 구성된 대로 정확하게 작동했습니다. 처리량이 변경된 날 구성이 잘못되었습니다.
두 경우 모두 동일한 패턴을 따릅니다. SCADA 시스템은 커미셔닝 시 올바르게 작동한 다음 실제 세계가 변경되고 구성을 일치하도록 업데이트하지 않습니다.
배포 전에 SCADA 시스템을 평가하는 방법 - 커미셔닝 전 체크리스트
공장 인수 테스트는 하드웨어 오류 및 명백한 소프트웨어 결함을 감지합니다. FAT 환경은 실제 네트워크 지연 시간, 부분 링크 끊김 또는 폴링 간격보다 빠르게 값을 경보 임계값 이상으로 푸시하는 프로세스 중단을 복제하지 않기 때문에 위에 설명된 실패 모드는 거의 감지하지 못합니다.
컷오버 전에 통합업체의 기본 설정이 아닌 실제 공정 요구사항과 다음의 다섯 가지 매개변수를 비교하여 확인하십시오.
| 매개변수 | 확인 사항 | 합격 임계값 |
|---|---|---|
| 폴링 간격 | 가장 빠른 공정 응답 시간과 비교 | 폴링 간격 ≤ 최소 공정 응답 시간의 50% |
| 히스토리안 동기화 간격 | 30분간 시뮬레이션된 네트워크 중단 하에서 테스트 | 링크 복구 시 저장된 데이터가 마스터 스테이션으로 재생 |
| 태그 라이선스 헤드룸 | 예비 채널을 포함한 모든 I/O 포인트 수 | 라이선스된 태그 수 ≥ 현재 I/O 수의 120% |
| 프로토콜 버전 일치 | 문서 수준이 아닌 장치 수준에서 확인 | SCADA 폴링 구성이 필드 장치 전송과 정확히 일치 |
| 알람 설정값 승인 | SCADA 통합자뿐만 아니라 공정 엔지니어의 검토 | 각 설정값은 공정 안전 또는 품질 요구 사항으로 추적 가능 |
컷오버 전에 실행할 가치가 있는 한 가지 테스트: 마스터 스테이션과 RTU 중 하나 간의 30초 네트워크 장애를 시뮬레이션합니다. 장애 동안 HMI가 표시하는 내용을 확인합니다. 신선하지 않거나 통신이 끊긴 것으로 표시하지 않고 마지막으로 알려진 값을 표시한다면, 시스템은 사일런트 장애 모드를 갖습니다. 운영자는 신선하지 않은 데이터를 실시간 데이터로 잘못 읽을 것입니다. 이는 표시의 미용적 문제가 아닙니다. 안전 격차입니다.
SCADA 아키텍처 세대 — 그리고 실행 중인 버전이 중요한 이유
1세대 SCADA는 외부 네트워크 연결 없이 메인프레임 컴퓨터에서 실행되었습니다. 각 시스템은 독립적으로 작동했습니다. 통신 프로토콜은 독점적이며 공급업체별였습니다. 보안은 물리적이었으며 — 유일한 공격 표면은 컴퓨터가 놓여 있던 방이었습니다.
2세대 시스템은 LAN 연결 워크스테이션에 프로세싱을 분산했습니다. 더 빠르고 확장성이 좋았지만 여전히 독점적이었습니다. 보안 가정은 동일했습니다. 격리가 보호를 제공한다는 것입니다.
3세대 네트워크 SCADA는 개방형 통신 프로토콜과 이더넷 연결을 채택했습니다. Modbus TCP, DNP3 over IP, IEC 60870-5-104 — 모두 공급업체 간 상호 운용을 위해 설계되었습니다. 이는 올바른 기술적 결정이었습니다. 또한 SCADA 시스템을 IT 환경을 위해 설계된 네트워크 인프라에 연결했으며, 이로 인해 발생하는 공격 표면을 가져왔습니다.
최신 웹 기반 SCADA 시스템은 브라우저에서 접근 가능한 HMI, SQL 히스토리안, 클라우드 호스팅 데이터 집계를 실행합니다. HTTPS를 통한 원격 액세스가 표준입니다. 운영상의 이점은 분명합니다. 노출 또한 마찬가지입니다.
2010년에 Stuxnet은 전용 프로토콜로 실행되는 에어 갭(air-gapped) SCADA 시스템도 안전하지 않다는 것을 보여주었습니다. 이 공격은 SCADA 소프트웨어를 직접 겨냥한 것이 아니라, SCADA 통합 계층을 통해 PLC를 겨냥했습니다. 아키텍처의 세대는 공격 표면을 결정합니다. 시스템이 어떤 세대에 속하는지 아는 것은 선택 사항이 아닙니다.
SCADA 보안 — 대부분의 운영자가 잘못 알고 있는 점
세 가지 구체적인 실수, 직접적으로 명시.
VPN은 SCADA 보안이 아닙니다. VPN은 전송 계층을 보호하며, 두 끝점 간의 데이터 전송을 암호화합니다. 만약 한 끝점이 손상된 자격 증명을 가진 노트북이라면, VPN은 공격자를 SCADA 제어 네트워크로 직접 인도합니다. 대부분의 원격 VPN 액세스를 설정한 운영자들은 VPN이 보안 조치라고 믿습니다. 그것은 하나의 제어 계층일 뿐입니다. 터널이 설정되면 네트워크 내부의 어떤 것도 보호하지 못합니다.
RTU의 기본 자격 증명은 공급업체가 공개적으로 인정하는 것보다 훨씬 더 자주 검증 단계를 통과하지 못합니다. 납품 압박 속에서 — 검증 시에는 항상 납품 압박이 있습니다 — RTU 기본 비밀번호 변경 단계가 생략되고, "go-live 후 완료 예정"으로 문서화되며, 절대 완료되지 않습니다. 이러한 기본 자격 증명은 공급업체 매뉴얼에 게시되어 있습니다. RTU 서브넷에 네트워크 액세스 권한이 있는 사람은 누구나 이를 알 수 있습니다.
SCADA와 기업 IT 네트워크 간의 분할이 없는 것은 중소 규모 시설에서 흔히 볼 수 있는 일이며, SCADA 서버가 사무실 워크스테이션으로도 사용됩니다. 이메일, 파일 공유, SCADA 폴링이 같은 컴퓨터, 같은 네트워크 세그먼트에서 실행됩니다. 키로거를 설치하는 피싱 이메일은 SCADA 자격 증명으로 이어지는 경로를 갖게 됩니다. 그 경로는 이론적인 것이 아니라 아키텍처 자체입니다.
심층 방어는 여러 독립적인 계층을 의미합니다: 네트워크 분할, 역할 기반 액세스 제어, 자격 증명 로테이션, 비정상적인 폴링 동작 모니터링. 단일 제어만으로는 충분하지 않습니다. 이 모든 것을 통합하는 것이 시스템을 방어 가능하게 만드는 것입니다.
SCADA 솔루션 선택 — 공급업체와 상담하기 전에 묻는 5가지 질문

이 5가지 질문에 대한 답을 알고 있다면 공급업체와의 대화가 더 빠르고 더 나은 결과를 얻을 수 있습니다.
귀하의 공정에 대한 최대 허용 알람-운영자 지연 시간은 얼마입니까? 이 숫자는 폴링 간격 및 네트워크 설계의 상한선을 설정합니다. 모르면 공급업체가 제안하는 시스템을 검증할 수 없습니다.
몇 개의 원격 사이트를 연결해야 하며 각 사이트의 현실적인 최악의 링크 신뢰성은 얼마입니까? 광섬유로 연결된 사이트를 위해 설계된 SCADA 시스템은 15% 패킷 손실이 있는 셀룰러 링크에서 매우 다르게 작동합니다. 공급업체에 기능 목록을 묻기 전에 링크 중단 시 HMI가 어떻게 표시되는지 물어보십시오.
히스토리안 데이터를 온프레미스, 클라우드 호스팅 또는 둘 다 필요하십니까? 이 답변은 라이선스, 지연 시간 및 히스토리안이 작동해야 하는 규정 준수 프레임워크에 영향을 미칩니다. 일부 산업에는 클라우드 히스토리안 옵션을 완전히 제거하는 데이터 상주 요구 사항이 있습니다.
어떤 필드 장치 및 통신 프로토콜이 이미 설치되어 있습니까? 기존 PLC와 통신하기 위해 미들웨어 번역 계층이 필요한 SCADA 소프트웨어 패키지는 실패 지점을 하나 더 추가하고 문제가 발생했을 때 전화해야 할 공급업체를 하나 더 추가합니다.
시운전 후 구성 업데이트는 누가 담당합니까? 내부 팀입니까, 통합업체입니까? 통합업체의 경우 모든 알람 임계값 업데이트, 모든 새 태그, 모든 폴링 간격 변경은 서비스 티켓을 통해 처리됩니다. 이는 공정 조건이 변경되어 몇 주가 아닌 몇 시간 내에 구성 업데이트가 필요한 경우 중요합니다.
구축 팀을 위해 임베디드 IoT 임베디드 SCADA 단말기 또는 맞춤형 펌웨어 수준의 장치 통합을 통해 50개 이상의 산업 제품을 출시한 숙련된 펌웨어 엔지니어는 통합 주기를 크게 단축할 수 있습니다. 전환 전에 기존 시스템과 함께 30일간 섀도우 테스트를 실행하십시오. 롤백을 한 번 수행하기 전까지는 해당 일정이 보수적으로 느껴질 것입니다.
결론
SCADA는 산업 공정 데이터와 사람의 결정 사이의 계층입니다. 그 가치는 구성이 모니터링하는 공정과 얼마나 잘 일치하는지에 전적으로 달려 있습니다. 공정이 변경되고, 장비가 교체되고, 처리량이 원래 설계 매개변수를 초과하여 확장됨에 따라 시간이 지남에 따라 그 일치가 저하됩니다.
1년 차에 공장 인수 테스트를 통과한 시스템은 4년 차의 시스템과 동일하지 않습니다. 하드웨어는 동일할 수 있습니다. 모니터링하도록 구성된 공정은 그렇지 않을 수 있습니다.
SCADA 구성 문제를 해결하는 엔지니어라면: 경보 설정값 변경 전에 현재 공정 응답 시간에 대한 폴링 간격을 확인하십시오. 시뮬레이션된 링크 중단 시 히스토리안 동기화 동작을 확인하십시오. 예비 채널을 포함한 현재 I/O 카운트에 대한 태그 라이선스 헤드룸을 확인하십시오. 이 세 가지 확인 사항은 하드웨어 변경 없이 설명되지 않은 데이터 누락 및 잘못된 안정적인 판독값의 대다수를 해결합니다.
인도 압박 하에 SCADA 프로젝트를 관리하는 엔지니어라면: 반복적인 원인 불명의 알람 실패, 히스토리언의 데이터 누락 또는 현장 작업자의 부정확한 값 보고는 SCADA 소프트웨어 자체의 문제로 귀결되는 경우는 거의 없습니다. 이는 초기에 맞춰졌지만 이후 검토되지 않은 시운전 구성 설정에서 비롯됩니다. 팀에서 동일한 실패 모드를 두 번 이상 조사하고도 근본 원인을 찾지 못했다면, 시스템이 아니라 구성 설정에서 답을 찾아야 합니다. 운영 SCADA 경험이 있는 외부 엔지니어링 지원팀은 일반적으로 첫날 검토에서 문제를 찾아냅니다.
관련 게시물
카테고리
이것도 좋아하실 수 있습니다…
-
산업 시스템 통합
-
HMI 및 GUI 개발
-
임베디드 및 펌웨어 개발
-
프로젝트 평가
$299.00