배치 태그값 쓰기
다중 태그 쓰기
Canvas에선 tag.writeBatch() 스크립트를 사용하여 여러 태그의 값을 한번에 쓸 수 있도록 지원합니다. 이 스크립트는 태그 배열과 값 배열 두개의 매개변수를 필요로 합니다. 해당 스크립트는 첫번째 배열에 두번째 배열의 값을 순서대로 씁니다.
아래는 tag.writeBatch() 스크립트의 예시입니다:
var tags = ["Tag 1", "Tag 2", "Tag 3"]; // 태그 배열
var vals = [0, 100, "Hello"]; // 각 태그에 쓸 값: Tag 1에 0, Tag 2에 100, Tag 3에 "Hello"
tag.writeBatch(tags, vals); // 일괄 쓰기 실행
위 스크립트는 Tag 1에 0, Tag 2에 100, Tag 3에 "Hello" 값을 씁니다.
프로토콜 지원
배치 작성 스크립트는 다양한 I/O 통신 프로토콜을 다룰 때 유용한 도구입니다.
요청
특성
요청은 다음 두 가지 특성으로 분류 할 수 있습니다.:
- 데이터 지정 방식:
- 어드레스 기반: 요청 데이터에 지정된 어드레스만 포함되며, 응답에는 해당 어드레스 각각의 값만을 포함합니다.
- 블록 기반: 요청 데이터에 지정된 어드레스부터 시작하는 범위 또는 크기가 포함되며, 응답에는 시작 어드레스부터 범위 끝까지의 모든 어드레스 값이 포함됩니다.
- 변수 기반: 어드레스가 아닌 PLC에서 정의된 변수를 사용하므로 크기/구조 정보가 더 복잡할 수 있습니다. 일반적으로 하나의 태그는 하나의 변수에 대응하며, 블록처럼 연속적인 변수 개념이 존재하지 않습니다.
- 데이터 구성 요소의 수:
- 단일 컴포넌트: 요청에 단일 어드레스/블록/변수만 포함됩니다.
- 다중 컴포넌트: 요청에 여러 개의 어드레스/블록/변수를 포함할 수 있어, 연속되지 않은 여러 항목을 한 번에 읽을 수 있습니다.
유형
위에서 설명한 특성들은 다양한 방식으로 조합될 수 있으며, 이에 따라 총 6가지 일반적인 요청 유형이 존재합니다 (선호도 순):
- 다중 블록 (블록 기반, 다중 컴포넌트)
- 단일 블록 (블록 기반, 단일 컴포넌트)
- 다중 어드레스 (어드레스 기반, 다중 컴포넌트)
- 단일 어드레스 (어드레스 기반, 단일 컴포넌트)
- 다중 변수 (변수 기반, 다중 컴포넌트)
- 단일 변수 (변수 기반, 단일 컴포넌트)
드라이버
각 드라이버의 쓰기 요청은 아래와 같은 유형에 해당합니다:
다중 블록
- CIMON UA Net Client
- CIMON UA Bus Master
- Fatek FBS Client
- Mitsubishi MELSEC Ethernet Client
- Mitsubishi MELSEC Serial Master
- Siemens S7 Client
단일 블록
- BACnet/IP Client
- LSIS XGT Cnet Master
- LSIS XGT FEnet Client
- Modbus RTU Master
- Modbus TCP Client
- Panasonic FP7 Master
- Proface GPEthernet Client
- Yokogawa FA-M3 Master
단일 변수
- Allen Bradley DF1 Master
- Allen Bradley EtherNet/IP Client (PCCC)
- Allen Bradley EtherNet/IP Client (Tag)
- ODVA EtherNet/IP Client
- Omron FINS Client
- Omron Host Link Master
- OPC UA Client