드라이버
드라이버란 무엇인지, 드라이버가 어디에 나열되고 어떻게 스테이션에 추가하는지, 장치에 고정되는 드라이버, 이 제품이 아는 모든 드라이버의 표, 드라이버 페이지마다 무엇을 담는지, 그리고 패키지가 싣지 않는 드라이버에 대한 설명.
플레이어는 YouTube에서 제공되며, 재생을 누를 때에만 불러옵니다.
드라이버는 스테이션이 어떤 장비 무리와 이야기할 때 쓰는 프로토콜입니다. TCP 위의 Modbus 레지스터, OPC UA 서버, Siemens PLC 같은 것들입니다. Connector 페이지의 모든 장치는 정확히 하나의 드라이버에 속하며, 드라이버는 장치가 어떤 연결 칸을 보여 주는지, 태그의 주소를 어떻게 적는지, 태그가 어떤 데이터 형식을 담을 수 있는지, 쓰기가 되는지, 드라이버가 장비를 스캔할 수 있는지, 그리고 스테이션이 값을 주기적으로 읽는지 아니면 장비가 밀어 넣는지를 정합니다. 이 묶음에는 드라이버마다 페이지가 하나씩 있고, 이 페이지는 그것들이 공통으로 가지는 것입니다.
등록부
드라이버의 집합은 고정되어 있습니다. 애플리케이션과 함께 실리며 페이지에서 늘릴 수 없습니다. 통신 열 트리 맨 위의 드라이버 폴더는 이 설치본이 싣고 있는 드라이버의 카탈로그를 열며, 각각 설명과 장치 개수와 상태 건전성과 드라이버 추가(추가한 뒤에는 열기와 드라이버 제거)를 함께 보여 줍니다. 카탈로그와 그 규칙은 드라이버 목록과 드라이버 페이지에 있습니다.
패키지에 실린 드라이버는 모두 바로 쓸 수 있으며, 켜고 끄는 스위치는 없습니다. 스테이션은 쓰는 드라이버를 추가합니다. 드라이버 폴더 아래 트리에는 아래에 무엇이 있든 없든 추가한 드라이버가 나열되므로, 열에는 스테이션이 읽을 준비를 한 것이 놓입니다. 드라이버는 카탈로그의 자기 행이나 열의 새로 만들기… 메뉴에 있는 드라이버 추가로 추가하고, 카탈로그의 자기 행, 그 드라이버의 명령 모음, 또는 오른쪽 단추 메뉴에 있는 드라이버 제거로 제거합니다. 제거는 아무것도 삭제하지 않습니다. 드라이버가 장치, 시리얼 회선, 브로커, 폴더 가운데 하나를 가진 동안에는 거부되며, 그 가운데 하나를 가진 드라이버는 언제나 추가된 상태입니다. 새 스테이션에는 추가된 드라이버가 없고, 이전 버전에서 업데이트한 스테이션은 이미 쓰는 드라이버가 추가된 상태로 시작합니다.
장치의 드라이버는 고정됩니다
드라이버는 장치를 만들 때 고릅니다. 열의 새로 만들기… 메뉴에서는 그 드라이버 자신의 항목에서 장치를 만들고, 드라이버 페이지의 장치 추가는 그 드라이버 아래에 만듭니다. 그다음부터 장치 카드는 드라이버를 읽기 전용 문구로 보여 줍니다. 장치를 다른 프로토콜로 옮기려면 다른 드라이버 아래에 새 장치를 만들고 예전 것을 삭제하십시오. 주소가 바뀌므로, 참조는 각 태그의 사용하는 곳 카드를 거쳐 새 태그를 가리키게 해야 합니다.
모든 드라이버
드라이버는 연결하는 장비의 종류별로 묶여 있습니다. 묶음과 그 순서는 드라이버 카탈로그, 그리고 열의 새로 만들기… 메뉴에 있는 드라이버 추가와 같습니다.
PLC
| 드라이버 | 이야기하는 상대 |
|---|---|
| Beckhoff ADS | ADS/AMS로 접속하는 Beckhoff TwinCAT PLC. |
| Mitsubishi MC | MELSEC MC 드라이버로 접속하는 Mitsubishi PLC. |
| Omron | Omron PLC입니다. CJ, CS, CP 컨트롤러는 FINS(UDP, TCP 또는 시리얼 회선의 Host Link)로 메모리 주소를, NJ, NX, NY 컨트롤러는 EtherNet/IP로 변수 이름을 가리켜 읽습니다. |
| Rockwell EtherNet/IP | EtherNet/IP(CIP)로 접속하는 Allen-Bradley / Rockwell PLC. |
| Siemens S7 | S7comm 드라이버로 접속하는 Siemens S7 PLC. |
산업용 프로토콜
| 드라이버 | 이야기하는 상대 |
|---|---|
| BACnet | BACnet/IP 빌딩 자동화 장치. |
| Generic serial and TCP | 계량 지시계나 바코드 리더처럼 고유한 텍스트나 바이트 프로토콜을 쓰는 장비를 시리얼 회선, TCP, UDP로 다룹니다. |
| Modbus RTU | 시리얼 회선(RS-485/232) 위의 Modbus 레지스터. 전송 모드는 RTU 또는 ASCII입니다. |
| Modbus TCP | TCP/IP 위의 Modbus 레지스터. MBAP 프레임, 또는 시리얼-이더넷 변환기를 위한 RTU 프레임으로 보냅니다. 기본 포트 502. |
| MQTT | 외부 MQTT 브로커를 통해 일반 MQTT 또는 Sparkplug B로 발행하는 장치. |
| OCPP | OCPP로 접속하는 전기차 충전기(충전기가 이 스테이션으로 접속해 옵니다). |
| OPC DA | COM/DCOM을 거치는 기존 OPC Data Access 서버. 전용 32비트 보조 프로세스를 거쳐 다룹니다. |
| OPC UA | opc.tcp 위의 OPC Unified Architecture 클라이언트. |
| SNMP | SNMP v1, v2c, v3에 응답하는 네트워크 장비(UPS, PDU, 스위치, 기계실 센서 등)입니다. 서버를 맡는 Redfish와 함께 기계실 전체를 다룹니다. |
계측기와 데이터 수집
| 드라이버 | 이야기하는 상대 |
|---|---|
| Fluke NetDAQ | Fluke NetDAQ(2640A, 2645A)와 2680 Series(2680A, 2686A) 데이터 수집 장치를 태그로 구성하고, 32비트 보조 프로세스에서 Fluke 자체 라이브러리로 읽습니다. |
| NI-DAQmx | 이 컴퓨터에 설치된 NI-DAQmx를 통한 National Instruments 데이터 수집 하드웨어(cDAQ 섀시와 그 모듈, USB와 PCI Express 장치)입니다. 읽을 때마다 샘플 하나를 읽습니다. |
| SCPI instruments | 멀티미터, 전원 공급기, 전자 부하처럼 SCPI를 쓰는 벤치 계측기입니다. TCP, 시리얼 회선, 또는 VISA를 통한 USB와 GPIB로 연결합니다. |
무선
| 드라이버 | 이야기하는 상대 |
|---|---|
| LoRaWAN | 내장 Basics Station 네트워크 서버를 거치는 LoRaWAN 센서와 무선 집중기입니다. |
| Matter | Matter 스마트홈 장치(Bluetooth 커미셔닝). |
웹과 API
| 드라이버 | 이야기하는 상대 |
|---|---|
| AVEVA PI | PI Web API를 거치는 AVEVA PI System 지점이며, 기본은 HTTPS입니다. |
| HTTP | 태그로 주기적으로 읽는 일반 HTTP 및 HTTPS endpoint이며, 자격 증명은 선택입니다. |
| Redfish | 서버와 데이터센터 하드웨어를 위한 Redfish REST API. |
파일과 데이터베이스
| 드라이버 | 이야기하는 상대 |
|---|---|
| Database | 공장 시스템의 데이터베이스 테이블(SQL Server, PostgreSQL, MySQL과 MariaDB, SQLite, 또는 그 ODBC 드라이버를 통한 모든 데이터베이스). 각 태그는 테이블과 열과 행으로 셀을 읽거나 자체 쿼리를 실행합니다. 태그가 지시한 곳에서는 셀이나 태그 자체의 명령으로 씁니다. |
| File | 다른 프로그램이 로컬 폴더나 네트워크 폴더에 쓰는 파일(CSV와 열 형식 텍스트, 자유 텍스트, JSON, XML)이며, 하나씩 또는 수신 폴더에서 읽습니다. 장치가 허용하면 그 프로그램을 위해 줄이나 파일 전체를 씁니다. |
테스트
| 드라이버 | 이야기하는 상대 |
|---|---|
| Simulated | 하드웨어 없이 시험하기 위한, 애플리케이션 안에서 만들어 내는 신호. |
Modbus 서버는 이 표에 없습니다. 드라이버가 아니라, 스테이션 자신이 자기 태그와 Logic 변수를 Modbus TCP로 PLC, HMI, 빌딩 관리 시스템에 제공하는 것이며, 서버 폴더 아래에 있는 자기 행에서 다룹니다.
드라이버가 공통으로 가지는 것과 서로 다른 것
Connector는 모든 드라이버에 하나의 편집기를 그리고, 어느 부분이 나타날지는 드라이버가 정하게 합니다. 이 표는 드라이버의 페이지를 열기 전에 무엇을 예상할 수 있는지 말합니다.
| 드라이버 | 장치 페이지의 연결 칸 | 태그 주소 | 읽기 주기 | 태그 쓰기 | 장치 검색 |
|---|---|---|---|---|---|
| Simulated | 없음 | 태그 이름과 신호 모양 | 있음 | 있음 | 있음(자기 카탈로그) |
| Modbus TCP | 호스트, 포트, 슬레이브 ID, 프레임 형식(MBAP 또는 RTU), 최소 트랜잭션 간격 | 형식 있음: 레지스터 종류와 번호 | 있음 | 있음 | 있음(호스트 또는 CIDR 스캔) |
| Modbus RTU | 시리얼 회선(고정. 전송 모드 RTU 또는 ASCII는 회선이 정합니다), 슬레이브 ID | 형식 있음: 레지스터 종류와 번호 | 있음 | 있음 | 있음(회선 위 슬레이브 ID 탐색) |
| OPC UA | 호스트, 포트, 리소스 경로, 사용자 이름, 비밀번호 | 자유 입력: 노드 id | 있음 | 있음 | 있음(서버 주소) |
| OPC DA | 호스트, 서버 / 키 | 자유 입력: 항목 ID | 있음 | 있음 | 있음(컴퓨터의 서버) |
| Siemens S7 | 호스트, 랙 / 슬롯 | 형식 있음: 영역, DB, 바이트, 비트 | 있음 | 있음 | 없음 |
| Rockwell EtherNet/IP | 호스트, 슬롯 | 자유 입력: 컨트롤러 태그와 오프셋 | 있음 | 있음 | 있음(브로드캐스트) |
| Beckhoff ADS | 호스트, 포트, 로컬 IP(AMS) | 자유 입력: 심볼 | 있음 | 있음 | 없음 |
| Mitsubishi MC | 호스트, 포트 | 자유 입력: 디바이스 주소 | 1 s 고정 | 있음 | 없음 |
| BACnet | 호스트, 포트, 장치 Id | 형식 있음: 객체 종류와 인스턴스 | 1 s 고정 | 있음 | 있음(Who-Is) |
| OCPP | 식별자 | 형식 있음: 커넥터 번호. 태그 이름은 Meter, Status, Transaction 가운데 하나로 끝납니다 | 충전기가 밀어 넣음 | 없음(읽기 전용) | 있음(접속해 있는 충전기) |
| Redfish | 호스트, 포트, 사용자 이름, 비밀번호 | 자유 입력: 리소스 경로와 JSON 포인터 | 있음 | 있음 | 있음(서비스 주소) |
| Matter | 노드 ID(읽기 전용) | 형식 있음: 출력, 클러스터, 특성. 태그는 장치에서 옵니다 | 있음 | 있음(드라이버가 바꾸는 법을 아는 값) | 있음(커미셔닝된 노드와 각 노드가 공개하는 값) |
| LoRaWAN | 식별자(DevEUI), 서버 / 키(앱 키) | 형식 있음: 채널 또는 오프셋, LPP 형식 | 센서가 밀어 넣음 | 없음(읽기 전용) | 없음 |
| AVEVA PI | 호스트, 포트, 리소스 경로, 전송, 사용자 이름, 비밀번호, 베어러 토큰 | 자유 입력: PI 경로 | 있음 | 있음 | 있음(서비스 주소 뒤의 AF 요소) |
| HTTP | 호스트, 포트, 리소스 경로 | 자유 입력: 경로 | 있음 | 있음 | 없음 |
| MQTT | 브로커(고정. 호스트, 포트, 전송 방식, 로그인은 브로커가 가집니다), 프로토콜, Sparkplug B에서는 그룹, 엣지 노드, 장치 ID | 자유 입력: 토픽과 JSON 페이로드 안의 값 경로, 또는 Sparkplug B 메트릭 | 브로커가 전해 줌 | 있음(명령 토픽, 또는 Sparkplug B 명령) | 있음(브로커에서 수신) |
| Generic serial and TCP | 전송 방식(TCP 클라이언트 또는 UDP 수신), 호스트, 포트, 회선 위 장치라면 시리얼 회선(고정). 그다음 메시지와 체크섬 카드 | 형식 있음: 읽기 방식, 요청, 메시지 필터, 메시지 안 값의 위치 | 있음. 수신 대기 태그는 장비가 보내는 것을 간직합니다 | 있음(쓰기 메시지. UDP에서는 없음) | 없음 |
| Omron | 호스트, 프로토콜(FINS 또는 NJ/NX 태그(이름으로 지정)). FINS에서는 포트와 FINS 카드(전송, 네트워크, 노드, 유닛, 응답 제한 시간). 시리얼 회선에서는 시리얼 회선(고정), 유닛 ID(Host Link 유닛 번호), 응답 제한 시간 | 자유 입력: 메모리 주소(FINS) 또는 변수 이름(NJ/NX) | 있음 | 있음 | 있음(PLC 한 대에 대한 FINS 탐색과, NJ/NX 컨트롤러를 찾는 브로드캐스트) |
| SCPI instruments | 전송 방식(TCP(LXI 소켓) 또는 VISA), 호스트와 포트 또는 VISA 리소스, 회선 위 장치라면 시리얼 회선(고정). 그다음 "계측기" 카드(종료 문자, 응답 제한 시간, 쓰기 확인, 초기 설정 명령) | 자유 입력: 쿼리, 그리고 쉼표로 구분된 응답의 어느 값인지와 쓰기 명령 | 있음 | 있음(쓰기 명령. 계측기의 오류 큐로 확인) | 있음(VISA가 나열하는 계측기와, 호스트 한 대에 대한 TCP 탐색) |
| NI-DAQmx | 없음: 그 대신 NI-DAQmx 장치 카드(장치 이름, 그리고 NI-DAQmx가 읽는 제품) | 형식 있음: 물리 채널과 측정, 그리고 측정의 범위, 배선, 열전대, 카운터 설정 | 예 | 예(디지털 출력 라인과 전압 출력) | 예(NI MAX가 아는 모든 장치와 그 채널) |
| Fluke NetDAQ | 호스트, 그다음 계측기 카드(기본 채널, 스캔 속도) | 형식 있음: 포인트(아날로그 채널과 그 기능, 디지털 라인, 릴레이 또는 적산기) | 예. 장비는 장치의 태그 중 가장 짧은 주기로 스캔 | 예(디지털 라인과 릴레이, 그리고 적산기를 0으로) | 아니요 |
| SNMP | 호스트, 포트. 그다음 "SNMP 에이전트" 카드(버전, community 또는 SNMPv3 사용자와 보안, 응답 제한 시간, 재시도 횟수) | 자유 입력: OID(숫자 또는 표준 이름) | 있음 | 있음(에이전트가 받는 SET. MIB가 읽기 전용으로 선언한 표준 객체는 읽기 전용으로 남음) | 있음(에이전트 하나의 표준 하위 트리 탐색) |
| File | 없음: 그 대신 폴더와 파일 카드(폴더 경로, 파일 이름 또는 수신 폴더의 패턴, 읽을 곳, 파일 형식), 이어서 파일 텍스트 카드와 쓰기 카드 | 형식 있음: 태그가 읽는 것(값, 파일 전체, 파일 정보)과, 값이면 열과 행(CSV), 줄과 그 문자(자유 텍스트), 경로(JSON, XML) | 있음 | 있음(쓰기를 허용하는 장치에서: 줄 추가, 파일 전체 교체, 다른 파일 지정) | 있음(파일 하나, 장치의 파일 또는 입력한 파일) |
| Database | 없음: 그 대신 데이터베이스 카드(데이터베이스 종류, 그다음 서버, 포트, 인스턴스 이름, 데이터베이스 이름, 데이터베이스 파일, 또는 데이터 원본 또는 연결 문자열), 이어서 로그인 카드(사용자 이름과 비밀번호, SQL Server에서는 Windows 로그인과 암호화) | 형식 지정: 태그가 읽는 방식(테이블, 값 열, 읽을 행으로 고른 셀, 또는 자체 쿼리의 쿼리 본문) | 예 | 예(읽는 셀, 또는 자체 쓰기 명령) | 예(장치 데이터베이스의 테이블) |
드라이버는 태그가 내놓는 데이터 형식 목록도 자기가 실제로 다룰 수 있는 것으로 좁힙니다. 정확한 목록은 그 드라이버의 페이지에 있습니다. 표에 "1 s 고정"이라고 적힌 곳에서는 드라이버가 설정된 간격을 무시하므로, 장치 페이지와 태그 페이지가 그 드라이버에서는 읽기 주기 칸을 감춥니다. "읽기 전용"이라고 적힌 곳에서는 접근 칸이 읽기 전용만 내놓고 쓰기 칸은 결코 나타나지 않습니다.
드라이버 페이지마다 담는 것
드라이버 페이지는 저마다 같은 절을 같은 순서로 지나갑니다. 장치 카드가 보여 주는 연결 칸과 그것들이 기본 URI를 어떻게 조립하는지, 태그의 주소를 어떻게 적는지(형식 있는 칸이나 자유 입력 토큰, 그리고 패널이 미리 보여 주는 읽기 전용 버스 주소), 내놓는 데이터 형식, 드라이버에 장치 검색이 있을 때 그 스캔, 드라이버가 받아들일 때 그 쓰기, 그리고 드라이버의 특이한 점(자격 증명, 인증서, 타이밍, 스테이션이 돌리는 네트워크 서버, 페어링)입니다.
패키지가 싣지 않는 드라이버
Connector는 실행 중인 패키지가 싣지 않는 드라이버를 결코 목록에 올리지 않고 선택지로 내놓지도 않습니다. 그런 장치를 담고 들어온 구성(복원한 백업이거나 다른 기기에서 온 구성)은 그 장치를 그대로 지킵니다. 그 장치가 있는 동안 드라이버는 카탈로그에도 드라이버 폴더 아래에도 남고, 설명은 "이 패키지에는 이 드라이버가 들어 있지 않습니다."로 읽히며, 드라이버의 페이지와 그 아래 모든 장치에는 같은 말을 하는 알림 띠가 붙습니다. 그 장치들은 오프라인으로 남고 설정을 그대로 간직합니다. 지울 수는 있지만 복제할 수는 없고, 그 드라이버 아래에서는 새 장치도 장치 검색 스캔도 시작할 수 없습니다.
어느 드라이버를 패키지가 싣고 있는지는 Connector의 드라이버 등록부에서 읽으며, 그 등록부는 Connector가 시작된 뒤에야 존재합니다. 그때까지는 모든 드라이버가 있는 것으로 세므로, 카탈로그는 실행 몇 초 뒤에 자리를 잡고 그 뒤로는 세션 내내 그대로 있습니다. Connector를 정지했다가 다시 시작해도 그렇습니다.
드라이버의 코드는 애플리케이션이 도는 동안 한 번만 적재됩니다. 통신을 정지했다가 시작하면 실행 중인 장치와 드라이버 목록이 바로 그 한 번의 적재에서 다시 세워지며, 이것이 하루 종일 다시 시작해도 스테이션의 메모리가 평평하게 유지되는 이유입니다. 그 결과로, 디스크에 있는 드라이버 자신의 파일을 바꾸는 일은 애플리케이션 자체를 다시 시작한 뒤에야 효력을 가집니다.