iconDreamine
← 목록

Dreamine.PLC.Omron.Fins

stablev1.0.1

옴론 FINS 프로토콜 직접 구현 — UDP/TCP 이중 지원.

#dreamine#fins#industrial-automation#omron#plc#tcp#udp
TFM net8.0Package Dreamine.PLC.Omron.Fins참조 Dreamine.PLC.Abstractions, Dreamine.PLC.Core

Dreamine.PLC.Omron.Fins

English documentation

Dreamine PLC 패키지군을 위한 Omron FINS TCP/UDP PLC 어댑터입니다.

이 패키지는 FINS TCP/UDP Client와 로컬 및 PC-to-PC 검증을 위한 내장 FINS Simulator Server를 제공합니다.

주요 기능

  • Omron FINS TCP Client
  • Omron FINS UDP Client
  • FINS TCP Simulator Server
  • FINS UDP Simulator Server
  • Memory Area Read/Write 지원 경계
  • Word Read/Write 진단
  • 반복 Handshake 검증 흐름
  • UDP Timeout 및 Retry 지원
  • IPlcClient 통합

지원되는 시뮬레이터 테스트 Mode

SampleSmart의 PLC Protocol 페이지는 다음 조합을 지원합니다.

FinsTcp ↔ FinsTcp
FinsUdp ↔ FinsUdp

서버와 클라이언트 Mode는 반드시 같아야 합니다. SimulatorTcp, McTcp, McUdp 서버는 FinsTcp, FinsUdp 클라이언트와 통신할 수 없습니다.

1PC 테스트

로컬 검증은 다음 흐름으로 진행합니다.

Mode: FinsTcp 또는 FinsUdp
Host: 127.0.0.1
Port: 55000
Start Server
Use Client
Connect
Write Words
Read Words
Run Handshake

2PC 테스트

서버 PC:

Mode: FinsTcp 또는 FinsUdp
Host: 0.0.0.0
Port: 55000
Start Server

클라이언트 PC:

Mode: 서버와 동일
Host: 서버 PC IP
Port: 55000
Use Client
Connect
Read/Write 또는 Handshake

PC-to-PC 테스트 방화벽 요구사항

서버 PC의 인바운드 포트를 열어야 합니다.

TCP:

New-NetFirewallRule -DisplayName "Dreamine PLC FINS TCP 55000" -Direction Inbound -Protocol TCP -LocalPort 55000 -Action Allow

UDP:

New-NetFirewallRule -DisplayName "Dreamine PLC FINS UDP 55000" -Direction Inbound -Protocol UDP -LocalPort 55000 -Action Allow

PowerShell은 관리자 권한으로 실행해야 합니다. 이 규칙이 없으면 1PC 테스트는 통과하지만 2PC 테스트는 실패할 수 있습니다.

실제 PLC 테스트 안내

FINS 지원은 현재 내장 Simulator 기준으로 검증되었습니다. 실제 Omron PLC 연동 테스트는 별도로 진행해야 합니다.

실제 Omron PLC 연결 전 확인 항목:

  • PLC 모델 및 Ethernet Module 지원 여부
  • FINS TCP/UDP 설정
  • Port 번호. 많은 FINS 환경에서는 9600 포트를 사용하도록 설정됩니다.
  • Source / Destination Node 설정
  • Network 번호
  • Unit Address
  • Memory Area 매핑
  • PLC Ethernet Module 라우팅 설정
  • 안전한 Polling 주기

FINS/TCP는 장비별 Handshake 또는 Node 설정이 필요할 수 있습니다. Simulator에서 성공했다고 해서 실제 PLC 호환성이 보장되는 것은 아니며, 현장 실기 테스트가 필요합니다.

Polling 및 Write 안전성

실제 PLC에는 1ms Polling을 사용하지 마십시오.

실제 PLC 권장값:

  • 모니터링: 100ms ~ 500ms
  • UI 표시 갱신: 250ms ~ 1000ms
  • Write: 이벤트 기반만 권장
  • Handshake 부하 테스트: 명시적으로 승인된 실제 장비가 아니라면 Simulator 전용

벤더 런타임 정책

이 패키지는 Omron CX-Compolet, SYSMAC Gateway 또는 Omron 런타임 DLL을 포함하지 않습니다.

이 패키지는 FINS TCP/UDP 통신을 직접 구현합니다. CX-Compolet 연동이 필요하면 별도 어댑터 패키지로 분리하고, 벤더 DLL은 재배포하지 않아야 합니다.

검증 상태

검증됨:

  • 1PC FINS TCP Read/Write 및 Handshake
  • 1PC FINS UDP Read/Write 및 Handshake
  • 2PC FINS TCP Read/Write 및 Handshake
  • 2PC FINS UDP Read/Write 및 Handshake
  • WPF Monitor 통합

대기 중:

  • 실제 Omron PLC 검증

라이선스

MIT License.

구조 다이어그램

classDiagram
    class FinsClient {
        -UdpClient _udp
        +string PlcIp
        +int PlcPort
        +byte NetworkNo
        +byte NodeNo
        +byte UnitNo
        +ConnectAsync() Task
        +ReadBitAsync(string) Task~bool~
        +ReadWordAsync(string) Task~short~
        +WriteWordAsync(string, short) Task
        +ReadWordsAsync(string, int) Task~short[]~
        +WriteWordsAsync(string, short[]) Task
    }
    class FinsFrame {
        +BuildReadCommand(FinsAddress, int) byte[]
        +BuildWriteCommand(FinsAddress, short[]) byte[]
        +ParseResponse(byte[]) FinsResponse
        +CalculateHeader(byte, byte, byte) byte[]
    }
    class FinsAddressParser {
        +Parse(string) FinsAddress
        -ParseAreaCode(string) byte
    }
    class FinsAddress {
        +byte AreaCode
        +ushort Word
        +byte Bit
    }
    class PlcClientBase {
        <<abstract>>
    }
    PlcClientBase <|-- FinsClient
    FinsClient --> FinsFrame
    FinsClient --> FinsAddressParser
    FinsAddressParser --> FinsAddress

API 문서

타입

FakeOmronFinsTransport

\if KO Omron FINS 어댑터 단위 테스트를 위한 메모리 기반 가짜 전송을 제공합니다. \endif \if EN Provides an in-memory fake transport for Omron FINS adapter unit tests. \endif

FinsRequest

\if KO 구문 분석된 FINS 메모리 요청을 나타냅니다. \endif \if EN Represents a parsed FINS memory request. \endif

IOmronFinsTransport

\if KO Omron FINS 통신을 위한 전송 계층 계약을 정의합니다. \endif \if EN Defines the transport-layer contract for Omron FINS communication. \endif

OmronFinsCommand

\if KO 지원되는 Omron FINS 명령 코드를 정의합니다. \endif \if EN Defines supported Omron FINS command codes. \endif

OmronFinsConnectionOptions

\if KO Omron FINS 연결 옵션을 나타냅니다. \endif \if EN Represents Omron FINS connection options. \endif

OmronFinsEndian

\if KO FINS 프레임에서 사용하는 빅 엔디언 변환 도우미를 제공합니다. \endif \if EN Provides big-endian conversion helpers used by FINS frames. \endif

OmronFinsFrameBuilder

\if KO 메모리 영역 읽기 및 쓰기 작업을 위한 Omron FINS 명령 프레임을 생성합니다. \endif \if EN Builds Omron FINS command frames for memory-area read and write operations. \endif

OmronFinsMemoryAreaCode

\if KO Omron FINS 메모리 영역 코드 상수를 정의합니다. \endif \if EN Defines Omron FINS memory-area code constants. \endif

OmronFinsMemoryAreaMapper

\if KO Dreamine PLC 장치 형식과 Omron FINS 메모리 영역 코드를 상호 매핑합니다. \endif \if EN Maps between Dreamine PLC device types and Omron FINS memory-area codes. \endif

OmronFinsPlcClient

\if KO Dreamine PLC 스택을 위한 Omron FINS PLC 클라이언트 구현을 제공합니다. \endif \if EN Provides an Omron FINS PLC client implementation for the Dreamine PLC stack. \endif

OmronFinsResponseParser

\if KO Omron FINS 메모리 영역 응답을 구문 분석합니다. \endif \if EN Parses Omron FINS memory-area responses. \endif

OmronFinsSimulatorProtocol

\if KO 메모리 읽기·쓰기 테스트를 위한 최소 Omron FINS 시뮬레이터 프로토콜을 실행합니다. \endif \if EN Executes a minimal Omron FINS simulator protocol for memory read and write tests. \endif

OmronFinsSimulatorServerOptions

\if KO Omron FINS 시뮬레이터 서버 옵션을 나타냅니다. \endif \if EN Represents options for the Omron FINS simulator server. \endif

OmronFinsTcpPacket

\if KO FINS/TCP 패킷을 래핑하고 추출하는 최소 도우미를 제공합니다. \endif \if EN Provides minimal helpers for wrapping and extracting FINS/TCP packets. \endif

OmronFinsTcpSimulatorServer

\if KO 로컬 및 PC 간 테스트를 위한 최소 FINS/TCP 시뮬레이터 서버를 제공합니다. \endif \if EN Provides a minimal FINS/TCP simulator server for local and cross-PC tests. \endif

OmronFinsTransportType

\if KO Omron FINS 전송 형식을 정의합니다. \endif \if EN Defines the Omron FINS transport type. \endif

OmronFinsUdpSimulatorServer

\if KO 로컬 및 PC 간 테스트를 위한 최소 FINS/UDP 시뮬레이터 서버를 제공합니다. \endif \if EN Provides a minimal FINS/UDP simulator server for local and cross-PC tests. \endif

TcpOmronFinsTransport

\if KO Omron FINS 통신을 위한 TCP 전송을 제공합니다. \endif \if EN Provides TCP transport for Omron FINS communication. \endif

UdpOmronFinsTransport

\if KO Omron FINS 통신을 위한 UDP 전송을 제공합니다. \endif \if EN Provides UDP transport for Omron FINS communication. \endif

FakeOmronFinsTransport

ConnectAsync Method

\if KO 가짜 전송을 연결 상태로 표시합니다. \endif \if EN Marks the fake transport as connected. \endif

cancellationToken— \if KO 호환성을 위한 취소 토큰이며 이 구현에서는 사용하지 않습니다. \endif \if EN A compatibility cancellation token that is not observed by this implementation. \endif

반환: \if KO 성공 연결 결과 작업입니다. \endif \if EN A task containing a successful connection result. \endif

DisconnectAsync Method

\if KO 가짜 전송을 연결 해제 상태로 표시합니다. \endif \if EN Marks the fake transport as disconnected. \endif

cancellationToken— \if KO 호환성을 위한 취소 토큰이며 이 구현에서는 사용하지 않습니다. \endif \if EN A compatibility cancellation token that is not observed by this implementation. \endif

반환: \if KO 성공 연결 해제 결과 작업입니다. \endif \if EN A task containing a successful disconnection result. \endif

DisposeAsync Method

\if KO 가짜 전송을 연결 해제 상태로 만들고 비동기 정리를 완료합니다. \endif \if EN Marks the fake transport as disconnected and completes asynchronous disposal. \endif

반환: \if KO 이미 완료된 값 작업입니다. \endif \if EN An already-completed value task. \endif

EnqueueResponse Method

\if KO 다음 요청에서 반환할 응답 프레임을 큐에 추가합니다. \endif \if EN Enqueues a response frame to return for the next request. \endif

response— \if KO 큐에 추가할 응답 프레임입니다. \endif \if EN The response frame to enqueue. \endif
SendAndReceiveAsync Method

\if KO 요청을 기록하고 큐의 다음 가짜 FINS 응답을 반환합니다. \endif \if EN Records a request and returns the next queued fake FINS response. \endif

requestFrame— \if KO 기록할 원시 FINS 요청 프레임입니다. \endif \if EN The raw FINS request frame to record. \endif
receiveTimeoutMs— \if KO 호환성을 위한 수신 제한 시간이며 이 구현에서는 사용하지 않습니다. \endif \if EN A compatibility receive timeout that is not used by this implementation. \endif
retryCount— \if KO 호환성을 위한 재시도 횟수이며 이 구현에서는 사용하지 않습니다. \endif \if EN A compatibility retry count that is not used by this implementation. \endif
cancellationToken— \if KO 호환성을 위한 취소 토큰이며 이 구현에서는 사용하지 않습니다. \endif \if EN A compatibility cancellation token that is not observed by this implementation. \endif

반환: \if KO 큐의 다음 응답 또는 응답 없음 오류를 포함하는 결과 작업입니다. \endif \if EN A task containing the next queued response or a no-response error. \endif

IsConnected Property

\if KO 가짜 전송이 논리적으로 연결되었는지 여부를 가져옵니다. \endif \if EN Gets whether the fake transport is logically connected. \endif

SentRequests Property

\if KO 이 전송으로 보낸 요청 프레임을 가져옵니다. \endif \if EN Gets the request frames sent through this transport. \endif

_responses Field

\if KO responses 값을 보관합니다. \endif \if EN Stores the responses value. \endif

FinsRequest

#ctor Method

\if KO 구문 분석된 FINS 메모리 요청을 나타냅니다. \endif \if EN Represents a parsed FINS memory request. \endif

Command— \if KO FINS 명령 코드입니다. \endif \if EN The FINS command code. \endif
AreaCode— \if KO 메모리 영역 코드입니다. \endif \if EN The memory-area code. \endif
Address— \if KO 변환된 PLC 주소입니다. \endif \if EN The mapped PLC address. \endif
Count— \if KO 처리할 포인트 수입니다. \endif \if EN The number of points to process. \endif
Data— \if KO 요청 데이터 페이로드입니다. \endif \if EN The request data payload. \endif
Address Property

\if KO 변환된 PLC 주소입니다. \endif \if EN The mapped PLC address. \endif

AreaCode Property

\if KO 메모리 영역 코드입니다. \endif \if EN The memory-area code. \endif

Command Property

\if KO FINS 명령 코드입니다. \endif \if EN The FINS command code. \endif

Count Property

\if KO 처리할 포인트 수입니다. \endif \if EN The number of points to process. \endif

Data Property

\if KO 요청 데이터 페이로드입니다. \endif \if EN The request data payload. \endif

IsBitAccess Property

\if KO 요청 영역이 비트 접근을 나타내는지 여부를 가져옵니다. \endif \if EN Gets whether the requested area represents bit access. \endif

IOmronFinsTransport

ConnectAsync Method

\if KO 전송 계층을 연결하거나 엽니다. \endif \if EN Connects or opens the transport. \endif

cancellationToken— \if KO 연결 작업을 취소하는 토큰입니다. \endif \if EN A token that cancels the connection operation. \endif

반환: \if KO PLC 연결 작업 결과입니다. \endif \if EN The PLC connection operation result. \endif

DisconnectAsync Method

\if KO 전송 계층의 연결을 해제하거나 닫습니다. \endif \if EN Disconnects or closes the transport. \endif

cancellationToken— \if KO 연결 해제 작업을 취소하는 토큰입니다. \endif \if EN A token that cancels the disconnection operation. \endif

반환: \if KO PLC 연결 해제 작업 결과입니다. \endif \if EN The PLC disconnection operation result. \endif

SendAndReceiveAsync Method

\if KO 원시 FINS 프레임을 전송하고 원시 응답 프레임을 수신합니다. \endif \if EN Sends a raw FINS frame and receives a raw FINS response frame. \endif

requestFrame— \if KO 전송할 원시 FINS 요청 프레임입니다. \endif \if EN The raw FINS request frame to send. \endif
receiveTimeoutMs— \if KO 밀리초 단위 수신 제한 시간입니다. \endif \if EN The receive timeout in milliseconds. \endif
retryCount— \if KO 실패 후 재시도 횟수입니다. \endif \if EN The number of retries after a failed attempt. \endif
cancellationToken— \if KO 송수신 작업을 취소하는 토큰입니다. \endif \if EN A token that cancels the send-and-receive operation. \endif

반환: \if KO 원시 FINS 응답 프레임 또는 전송 오류를 포함하는 결과 작업입니다. \endif \if EN A task containing the raw FINS response frame or a transport error. \endif

IsConnected Property

\if KO 전송 계층이 논리적으로 연결되었거나 통신 준비가 되었는지 여부를 가져옵니다. \endif \if EN Gets whether the transport is logically connected or ready for communication. \endif

OmronFinsCommand

MemoryAreaRead Field

\if KO 메모리 영역 읽기 명령입니다. \endif \if EN Memory-area read command. \endif

MemoryAreaWrite Field

\if KO 메모리 영역 쓰기 명령입니다. \endif \if EN Memory-area write command. \endif

OmronFinsConnectionOptions

ConnectTimeoutMs Property

\if KO 밀리초 단위 연결 제한 시간을 가져오거나 설정합니다. \endif \if EN Gets or sets the connection timeout in milliseconds. \endif

DestinationNetwork Property

\if KO 목적지 네트워크 주소를 가져오거나 설정합니다. \endif \if EN Gets or sets the destination network address. \endif

DestinationNode Property

\if KO 목적지 노드 주소를 가져오거나 설정합니다. \endif \if EN Gets or sets the destination node address. \endif

DestinationUnit Property

\if KO 목적지 유닛 주소를 가져오거나 설정합니다. \endif \if EN Gets or sets the destination unit address. \endif

Host Property

\if KO 대상 PLC 호스트를 가져오거나 설정합니다. \endif \if EN Gets or sets the target PLC host. \endif

Port Property

\if KO 대상 포트를 가져오거나 설정합니다. 기본 FINS 포트는 9600입니다. \endif \if EN Gets or sets the target port. The default FINS port is 9600. \endif

ReceiveTimeoutMs Property

\if KO 밀리초 단위 수신 제한 시간을 가져오거나 설정합니다. \endif \if EN Gets or sets the receive timeout in milliseconds. \endif

RetryCount Property

\if KO 송수신 재시도 횟수를 가져오거나 설정합니다. \endif \if EN Gets or sets the send-and-receive retry count. \endif

SourceNetwork Property

\if KO 송신자 네트워크 주소를 가져오거나 설정합니다. \endif \if EN Gets or sets the source network address. \endif

SourceNode Property

\if KO 송신자 노드 주소를 가져오거나 설정합니다. \endif \if EN Gets or sets the source node address. \endif

SourceUnit Property

\if KO 송신자 유닛 주소를 가져오거나 설정합니다. \endif \if EN Gets or sets the source unit address. \endif

TransportType Property

\if KO 사용할 FINS 전송 형식을 가져오거나 설정합니다. \endif \if EN Gets or sets the FINS transport type to use. \endif

OmronFinsEndian

ReadInt16 Method

\if KO 빅 엔디언 부호 있는 16비트 정수를 읽습니다. \endif \if EN Reads a big-endian signed 16-bit integer. \endif

buffer— \if KO 원본 버퍼입니다. \endif \if EN The source buffer. \endif
offset— \if KO 읽기를 시작할 0부터 시작하는 오프셋입니다. \endif \if EN The zero-based offset at which to begin reading. \endif

반환: \if KO 읽은 부호 있는 16비트 정수입니다. \endif \if EN The signed 16-bit integer read from the buffer. \endif

ReadInt32 Method

\if KO 빅 엔디언 부호 있는 32비트 정수를 읽습니다. \endif \if EN Reads a big-endian signed 32-bit integer. \endif

buffer— \if KO 원본 버퍼입니다. \endif \if EN The source buffer. \endif
offset— \if KO 읽기를 시작할 0부터 시작하는 오프셋입니다. \endif \if EN The zero-based offset at which to begin reading. \endif

반환: \if KO 읽은 부호 있는 32비트 정수입니다. \endif \if EN The signed 32-bit integer read from the buffer. \endif

ReadUInt16 Method

\if KO 빅 엔디언 부호 없는 16비트 정수를 읽습니다. \endif \if EN Reads a big-endian unsigned 16-bit integer. \endif

buffer— \if KO 원본 버퍼입니다. \endif \if EN The source buffer. \endif
offset— \if KO 읽기를 시작할 0부터 시작하는 오프셋입니다. \endif \if EN The zero-based offset at which to begin reading. \endif

반환: \if KO 읽은 부호 없는 16비트 정수입니다. \endif \if EN The unsigned 16-bit integer read from the buffer. \endif

WriteInt16 Method

\if KO 부호 있는 16비트 정수를 빅 엔디언으로 씁니다. \endif \if EN Writes a signed 16-bit integer in big-endian order. \endif

buffer— \if KO 대상 버퍼입니다. \endif \if EN The destination buffer. \endif
offset— \if KO 쓰기를 시작할 0부터 시작하는 오프셋입니다. \endif \if EN The zero-based offset at which to begin writing. \endif
value— \if KO 쓸 값입니다. \endif \if EN The value to write. \endif
WriteInt32 Method

\if KO 부호 있는 32비트 정수를 빅 엔디언으로 씁니다. \endif \if EN Writes a signed 32-bit integer in big-endian order. \endif

buffer— \if KO 대상 버퍼입니다. \endif \if EN The destination buffer. \endif
offset— \if KO 쓰기를 시작할 0부터 시작하는 오프셋입니다. \endif \if EN The zero-based offset at which to begin writing. \endif
value— \if KO 쓸 값입니다. \endif \if EN The value to write. \endif
WriteUInt16 Method

\if KO 부호 없는 16비트 정수를 빅 엔디언으로 씁니다. \endif \if EN Writes an unsigned 16-bit integer in big-endian order. \endif

buffer— \if KO 대상 버퍼입니다. \endif \if EN The destination buffer. \endif
offset— \if KO 쓰기를 시작할 0부터 시작하는 오프셋입니다. \endif \if EN The zero-based offset at which to begin writing. \endif
value— \if KO 쓸 값입니다. \endif \if EN The value to write. \endif

OmronFinsFrameBuilder

BuildFrame Method

\if KO FINS 헤더와 명령 본문을 결합하고 다음 서비스 ID를 할당합니다. \endif \if EN Combines a FINS header with a command body and assigns the next service ID. \endif

options— \if KO 네트워크·노드·유닛 주소를 제공하는 연결 옵션입니다. \endif \if EN The connection options supplying network, node, and unit addresses. \endif
command— \if KO 헤더 뒤에 복사할 명령 본문입니다. \endif \if EN The command body to copy after the header. \endif

반환: \if KO 완성된 원시 FINS 프레임입니다. \endif \if EN The completed raw FINS frame. \endif

BuildMemoryAreaRead Method

\if KO FINS 메모리 영역 읽기 프레임을 생성합니다. \endif \if EN Builds a FINS memory-area read frame. \endif

options— \if KO 프레임 헤더에 사용할 FINS 연결 옵션입니다. \endif \if EN The FINS connection options used for the frame header. \endif
address— \if KO 읽기를 시작할 PLC 주소입니다. \endif \if EN The PLC address at which to begin reading. \endif
count— \if KO 읽을 요소 수입니다. \endif \if EN The number of elements to read. \endif
bitAccess— \if KO 요청이 비트 영역 접근인지 여부입니다. \endif \if EN Whether the request targets bit-area access. \endif

반환: \if KO 생성된 원시 FINS 요청 프레임입니다. \endif \if EN The generated raw FINS request frame. \endif

BuildMemoryAreaWriteBits Method

\if KO 비트 값용 FINS 메모리 영역 쓰기 프레임을 생성합니다. \endif \if EN Builds a FINS memory-area write frame for bit values. \endif

options— \if KO 프레임 헤더에 사용할 FINS 연결 옵션입니다. \endif \if EN The FINS connection options used for the frame header. \endif
address— \if KO 쓰기를 시작할 PLC 주소입니다. \endif \if EN The PLC address at which to begin writing. \endif
values— \if KO 0 또는 1 바이트로 기록할 비트 값입니다. \endif \if EN The bit values to encode as zero or one bytes. \endif

반환: \if KO 생성된 원시 FINS 요청 프레임입니다. \endif \if EN The generated raw FINS request frame. \endif

BuildMemoryAreaWriteWords Method

\if KO 워드 값용 FINS 메모리 영역 쓰기 프레임을 생성합니다. \endif \if EN Builds a FINS memory-area write frame for word values. \endif

options— \if KO 프레임 헤더에 사용할 FINS 연결 옵션입니다. \endif \if EN The FINS connection options used for the frame header. \endif
address— \if KO 쓰기를 시작할 PLC 주소입니다. \endif \if EN The PLC address at which to begin writing. \endif
values— \if KO 빅 엔디언 페이로드로 기록할 워드 값입니다. \endif \if EN The word values to encode in the big-endian payload. \endif

반환: \if KO 생성된 원시 FINS 요청 프레임입니다. \endif \if EN The generated raw FINS request frame. \endif

BuildMemoryCommandBody Method

\if KO 메모리 영역 명령, 주소, 개수 및 선택적 페이로드를 FINS 명령 본문으로 인코딩합니다. \endif \if EN Encodes a memory-area command, address, count, and optional payload as a FINS command body. \endif

command— \if KO 인코딩할 FINS 명령 코드입니다. \endif \if EN The FINS command code to encode. \endif
address— \if KO 명령의 시작 PLC 주소입니다. \endif \if EN The starting PLC address for the command. \endif
count— \if KO 처리할 포인트 수입니다. \endif \if EN The number of points to process. \endif
bitAccess— \if KO 비트 영역 코드를 사용할지 여부입니다. \endif \if EN Whether to use a bit-area code. \endif
payload— \if KO 본문 뒤에 추가할 선택적 쓰기 페이로드입니다. \endif \if EN The optional write payload to append to the body. \endif

반환: \if KO 인코딩된 FINS 명령 본문입니다. \endif \if EN The encoded FINS command body. \endif

_sid Field

\if KO sid 값을 보관합니다. \endif \if EN Stores the sid value. \endif

OmronFinsMemoryAreaCode

CioBit Field

\if KO CIO 비트 영역입니다. \endif \if EN CIO bit area. \endif

CioWord Field

\if KO CIO 워드 영역입니다. \endif \if EN CIO word area. \endif

DmBit Field

\if KO DM 비트 영역입니다. \endif \if EN DM bit area. \endif

DmWord Field

\if KO DM 워드 영역입니다. \endif \if EN DM word area. \endif

HoldingBit Field

\if KO 홀딩 비트 영역입니다. \endif \if EN Holding bit area. \endif

HoldingWord Field

\if KO 홀딩 워드 영역입니다. \endif \if EN Holding word area. \endif

WorkBit Field

\if KO 작업 비트 영역입니다. \endif \if EN Work bit area. \endif

WorkWord Field

\if KO 작업 워드 영역입니다. \endif \if EN Work word area. \endif

OmronFinsMemoryAreaMapper

IsBitArea Method

\if KO 메모리 영역 코드가 비트 접근을 나타내는지 확인합니다. \endif \if EN Determines whether the memory-area code represents bit access. \endif

areaCode— \if KO 검사할 FINS 메모리 영역 코드입니다. \endif \if EN The FINS memory-area code to inspect. \endif

반환: \if KO 비트 영역이면 , 아니면 입니다. \endif \if EN for a bit area; otherwise, . \endif

Map Method

\if KO PLC 주소를 FINS 메모리 영역 코드로 매핑합니다. \endif \if EN Maps a PLC address to a FINS memory-area code. \endif

address— \if KO 매핑할 PLC 주소입니다. \endif \if EN The PLC address to map. \endif
bitAccess— \if KO 비트 접근 코드가 필요한지 여부입니다. \endif \if EN Whether a bit-access code is requested. \endif

반환: \if KO 대응하는 FINS 메모리 영역 코드입니다. \endif \if EN The corresponding FINS memory-area code. \endif

ToDeviceType Method

\if KO FINS 메모리 영역 코드를 Dreamine PLC 장치 형식으로 매핑합니다. \endif \if EN Maps a FINS memory-area code to a Dreamine PLC device type. \endif

areaCode— \if KO 매핑할 FINS 메모리 영역 코드입니다. \endif \if EN The FINS memory-area code to map. \endif

반환: \if KO 대응하는 PLC 장치 형식이며 알 수 없는 코드는 입니다. \endif \if EN The corresponding PLC device type, or for an unrecognized code. \endif

OmronFinsPlcClient

#ctor Method

\if KO 옵션에 맞는 기본 전송을 사용해 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of using the default transport selected by the options. \endif

options— \if KO 전송 형식과 네트워크 설정을 포함하는 FINS 연결 옵션입니다. \endif \if EN The FINS connection options containing transport and network settings. \endif
#ctor Method

\if KO 제공된 구성 요소를 사용해 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of using the supplied components. \endif

options— \if KO FINS 연결 옵션입니다. \endif \if EN The FINS connection options. \endif
transport— \if KO 원시 프레임을 송수신할 FINS 전송입니다. \endif \if EN The FINS transport used to send and receive raw frames. \endif
frameBuilder— \if KO 메모리 명령 프레임 생성기입니다. \endif \if EN The memory-command frame builder. \endif
responseParser— \if KO 응답 페이로드 구문 분석기입니다. \endif \if EN The response-payload parser. \endif
ConnectCoreAsync Method

\if KO 구성된 FINS 전송을 연결합니다. \endif \if EN Connects the configured FINS transport. \endif

cancellationToken— \if KO 연결 및 전송 잠금 대기를 취소하는 토큰입니다. \endif \if EN A token that cancels connection and transport-lock acquisition. \endif

반환: \if KO 전송 연결 결과 작업입니다. \endif \if EN A task containing the transport connection result. \endif

CreateTransport Method

\if KO 연결 옵션에 지정된 형식에 맞는 기본 FINS 전송을 생성합니다. \endif \if EN Creates the default FINS transport matching the type selected in the connection options. \endif

options— \if KO 전송 형식과 네트워크 설정을 포함하는 연결 옵션입니다. \endif \if EN The connection options containing transport and network settings. \endif

반환: \if KO TCP 또는 UDP FINS 전송 인스턴스입니다. \endif \if EN A TCP or UDP FINS transport instance. \endif

DisconnectCoreAsync Method

\if KO 구성된 FINS 전송의 연결을 해제합니다. \endif \if EN Disconnects the configured FINS transport. \endif

cancellationToken— \if KO 전송 잠금 대기를 취소하는 토큰입니다. \endif \if EN A token that cancels transport-lock acquisition. \endif

반환: \if KO 전송 연결 해제 결과 작업입니다. \endif \if EN A task containing the transport disconnection result. \endif

DisposeAsync Method

\if KO 기본 PLC 클라이언트와 소유한 FINS 전송을 비동기로 정리합니다. \endif \if EN Asynchronously disposes the base PLC client and owned FINS transport. \endif

반환: \if KO 비동기 정리 작업을 나타내는 값 작업입니다. \endif \if EN A value task representing asynchronous disposal. \endif

ReadBitsCoreAsync Method

\if KO FINS 메모리 영역에서 비트 값을 읽고 응답 페이로드를 구문 분석합니다. \endif \if EN Reads bit values from a FINS memory area and parses the response payload. \endif

address— \if KO 읽기를 시작할 PLC 주소입니다. \endif \if EN The PLC address at which to begin reading. \endif
count— \if KO 읽을 비트 수입니다. \endif \if EN The number of bits to read. \endif
cancellationToken— \if KO 전송 작업을 취소하는 토큰입니다. \endif \if EN A token that cancels the transport operation. \endif

반환: \if KO 비트 배열 또는 프레임·전송·응답 오류를 포함하는 결과 작업입니다. \endif \if EN A task containing the bit array or a frame, transport, or response error. \endif

ReadWordsCoreAsync Method

\if KO FINS 메모리 영역에서 워드 값을 읽고 응답 페이로드를 구문 분석합니다. \endif \if EN Reads word values from a FINS memory area and parses the response payload. \endif

address— \if KO 읽기를 시작할 PLC 주소입니다. \endif \if EN The PLC address at which to begin reading. \endif
count— \if KO 읽을 워드 수입니다. \endif \if EN The number of words to read. \endif
cancellationToken— \if KO 전송 작업을 취소하는 토큰입니다. \endif \if EN A token that cancels the transport operation. \endif

반환: \if KO 워드 배열 또는 프레임·전송·응답 오류를 포함하는 결과 작업입니다. \endif \if EN A task containing the word array or a frame, transport, or response error. \endif

WriteBitsCoreAsync Method

\if KO 비트 값을 FINS 메모리 영역에 쓰고 응답 종료 코드를 확인합니다. \endif \if EN Writes bit values to a FINS memory area and validates the response end code. \endif

address— \if KO 쓰기를 시작할 PLC 주소입니다. \endif \if EN The PLC address at which to begin writing. \endif
values— \if KO 쓸 비트 값입니다. \endif \if EN The bit values to write. \endif
cancellationToken— \if KO 전송 작업을 취소하는 토큰입니다. \endif \if EN A token that cancels the transport operation. \endif

반환: \if KO 성공 또는 프레임·전송·응답 오류를 포함하는 결과 작업입니다. \endif \if EN A task containing success or a frame, transport, or response error. \endif

WriteWordsCoreAsync Method

\if KO 워드 값을 FINS 메모리 영역에 쓰고 응답 종료 코드를 확인합니다. \endif \if EN Writes word values to a FINS memory area and validates the response end code. \endif

address— \if KO 쓰기를 시작할 PLC 주소입니다. \endif \if EN The PLC address at which to begin writing. \endif
values— \if KO 쓸 워드 값입니다. \endif \if EN The word values to write. \endif
cancellationToken— \if KO 전송 작업을 취소하는 토큰입니다. \endif \if EN A token that cancels the transport operation. \endif

반환: \if KO 성공 또는 프레임·전송·응답 오류를 포함하는 결과 작업입니다. \endif \if EN A task containing success or a frame, transport, or response error. \endif

Options Property

\if KO 이 클라이언트가 사용하는 Omron FINS 연결 옵션을 가져옵니다. \endif \if EN Gets the Omron FINS connection options used by this client. \endif

_frameBuilder Field

\if KO frame Builder 값을 보관합니다. \endif \if EN Stores the frame builder value. \endif

_options Field

\if KO options 값을 보관합니다. \endif \if EN Stores the options value. \endif

_responseParser Field

\if KO response Parser 값을 보관합니다. \endif \if EN Stores the response parser value. \endif

_transport Field

\if KO transport 값을 보관합니다. \endif \if EN Stores the transport value. \endif

OmronFinsResponseParser

ExtractPayload Method

\if KO FINS 응답 프레임을 검증하고 페이로드 바이트를 추출합니다. \endif \if EN Validates a FINS response frame and extracts its payload bytes. \endif

frame— \if KO 검사할 FINS 응답 프레임입니다. \endif \if EN The FINS response frame to inspect. \endif

반환: \if KO 추출된 페이로드 또는 프레임·종료 코드 오류를 포함하는 결과입니다. \endif \if EN A result containing the extracted payload or a frame or end-code error. \endif

ParseBits Method

\if KO FINS 페이로드 바이트에서 비트 값을 구문 분석합니다. \endif \if EN Parses bit values from FINS payload bytes. \endif

payload— \if KO 구문 분석할 페이로드 바이트입니다. \endif \if EN The payload bytes to parse. \endif
count— \if KO 기대하는 비트 수입니다. \endif \if EN The expected number of bits. \endif

반환: \if KO 구문 분석된 비트 값 또는 길이 오류를 포함하는 결과입니다. \endif \if EN A result containing the parsed bit values or a length error. \endif

ParseWords Method

\if KO FINS 페이로드 바이트에서 빅 엔디언 워드 값을 구문 분석합니다. \endif \if EN Parses big-endian word values from FINS payload bytes. \endif

payload— \if KO 구문 분석할 페이로드 바이트입니다. \endif \if EN The payload bytes to parse. \endif
count— \if KO 기대하는 워드 수입니다. \endif \if EN The expected number of words. \endif

반환: \if KO 구문 분석된 워드 값 또는 길이 오류를 포함하는 결과입니다. \endif \if EN A result containing the parsed word values or a length error. \endif

OmronFinsSimulatorProtocol

#ctor Method

\if KO 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of . \endif

memory— \if KO 요청 간에 공유할 PLC 메모리입니다. \endif \if EN The PLC memory shared across requests. \endif
options— \if KO 자동 응답 동작을 포함하는 시뮬레이터 옵션입니다. \endif \if EN The simulator options, including automatic-response behavior. \endif
ApplyAutoWordResponse Method

\if KO 구성된 트리거 주소의 단일 워드 쓰기에 자동 응답 값을 적용합니다. \endif \if EN Applies an automatic response value for a single-word write to the configured trigger address. \endif

writeAddress— \if KO 원래 쓰기 대상 주소입니다. \endif \if EN The original write destination address. \endif
values— \if KO 기록된 워드 값입니다. \endif \if EN The word values that were written. \endif
BuildErrorResponse Method

\if KO 요청 프레임을 기반으로 지정한 종료 코드의 오류 응답을 생성합니다. \endif \if EN Builds an error response with the specified end code from a request frame. \endif

requestFrame— \if KO 응답 주소와 명령을 가져올 요청 프레임입니다. \endif \if EN The request frame from which response addresses and command are derived. \endif
endCode— \if KO 응답에 기록할 FINS 종료 코드입니다. \endif \if EN The FINS end code to write to the response. \endif

반환: \if KO 페이로드가 없는 FINS 오류 응답입니다. \endif \if EN A FINS error response without a payload. \endif

BuildResponse Method

\if KO 요청의 주소를 반전하고 명령·종료 코드·페이로드를 포함하는 FINS 응답을 생성합니다. \endif \if EN Builds a FINS response by reversing request addresses and appending the command, end code, and payload. \endif

requestFrame— \if KO 헤더 값을 가져올 원본 요청 프레임입니다. \endif \if EN The original request frame from which header values are derived. \endif
command— \if KO 응답에 에코할 명령 코드입니다. \endif \if EN The command code to echo in the response. \endif
endCode— \if KO FINS 종료 코드입니다. \endif \if EN The FINS end code. \endif
payload— \if KO 응답 뒤에 추가할 페이로드입니다. \endif \if EN The payload to append to the response. \endif

반환: \if KO 생성된 원시 FINS 응답 프레임입니다. \endif \if EN The generated raw FINS response frame. \endif

HandleRead Method

\if KO 구문 분석된 메모리 영역 읽기 요청을 공유 메모리에서 실행합니다. \endif \if EN Executes a parsed memory-area read request against shared memory. \endif

requestFrame— \if KO 응답 헤더 생성에 사용할 원본 요청 프레임입니다. \endif \if EN The original request frame used to construct the response header. \endif
request— \if KO 구문 분석된 읽기 요청입니다. \endif \if EN The parsed read request. \endif

반환: \if KO 비트 또는 워드 페이로드를 포함하는 FINS 응답입니다. \endif \if EN A FINS response containing a bit or word payload. \endif

HandleRequest Method

\if KO 원시 FINS 요청 프레임을 처리하고 대응하는 원시 응답 프레임을 반환합니다. \endif \if EN Handles a raw FINS request frame and returns the corresponding raw response frame. \endif

requestFrame— \if KO 처리할 원시 FINS 요청 프레임입니다. \endif \if EN The raw FINS request frame to process. \endif

반환: \if KO 성공 페이로드 또는 FINS 종료 코드를 포함하는 원시 응답 프레임입니다. \endif \if EN A raw response frame containing a success payload or FINS end code. \endif

HandleWrite Method

\if KO 구문 분석된 메모리 영역 쓰기 요청을 공유 메모리에 실행합니다. \endif \if EN Executes a parsed memory-area write request against shared memory. \endif

requestFrame— \if KO 응답 헤더 생성에 사용할 원본 요청 프레임입니다. \endif \if EN The original request frame used to construct the response header. \endif
request— \if KO 구문 분석된 쓰기 요청입니다. \endif \if EN The parsed write request. \endif

반환: \if KO 성공 또는 유효성·메모리 오류 종료 코드를 포함하는 FINS 응답입니다. \endif \if EN A FINS response containing success or a validation or memory-error end code. \endif

TryParseRequest Method

\if KO 원시 FINS 요청 프레임의 명령·영역·주소·개수·데이터를 구문 분석합니다. \endif \if EN Parses the command, area, address, count, and data from a raw FINS request frame. \endif

frame— \if KO 구문 분석할 요청 프레임입니다. \endif \if EN The request frame to parse. \endif
request— \if KO 성공 시 구문 분석된 요청을 받습니다. \endif \if EN Receives the parsed request on success. \endif
errorMessage— \if KO 실패 시 진단 메시지를 받습니다. \endif \if EN Receives a diagnostic message on failure. \endif

반환: \if KO 프레임이 유효하고 지원되는 메모리 영역을 사용하면 입니다. \endif \if EN when the frame is valid and uses a supported memory area. \endif

_memory Field

\if KO memory 값을 보관합니다. \endif \if EN Stores the memory value. \endif

_options Field

\if KO options 값을 보관합니다. \endif \if EN Stores the options value. \endif

StatusChanged Event

\if KO 시뮬레이터 상태 또는 자동 응답 정보가 변경될 때 발생합니다. \endif \if EN Occurs when simulator status or automatic-response information changes. \endif

OmronFinsSimulatorServerOptions

AutoResponseIncrement Property

\if KO 자동 응답 값에 더할 증분을 가져오거나 설정합니다. \endif \if EN Gets or sets the increment added to the automatic response value. \endif

AutoResponseOffset Property

\if KO 자동 응답을 기록할 메모리 오프셋을 가져오거나 설정합니다. \endif \if EN Gets or sets the memory offset to which the automatic response is written. \endif

AutoResponseTriggerOffset Property

\if KO 자동 응답을 시작하는 메모리 오프셋을 가져오거나 설정합니다. \endif \if EN Gets or sets the memory offset that triggers an automatic response. \endif

EnableAutoWordResponse Property

\if KO D100 단일 워드 쓰기에서 D101 자동 응답을 생성할지 여부를 가져오거나 설정합니다. \endif \if EN Gets or sets whether D100 single-word writes produce an automatic D101 response. \endif

Host Property

\if KO 서버가 바인딩할 호스트를 가져오거나 설정합니다. \endif \if EN Gets or sets the host to which the server binds. \endif

Port Property

\if KO 서버가 바인딩할 포트를 가져오거나 설정합니다. \endif \if EN Gets or sets the port to which the server binds. \endif

OmronFinsTcpPacket

Extract Method

\if KO FINS/TCP 패킷에서 원시 FINS 프레임을 추출합니다. \endif \if EN Extracts the raw FINS frame from a FINS/TCP packet. \endif

packet— \if KO 검사하고 추출할 FINS/TCP 패킷입니다. \endif \if EN The FINS/TCP packet to validate and extract. \endif

반환: \if KO 헤더가 제거된 원시 FINS 프레임입니다. \endif \if EN The raw FINS frame without the TCP header. \endif

Wrap Method

\if KO 원시 FINS 명령 프레임을 FINS/TCP 패킷으로 래핑합니다. \endif \if EN Wraps a raw FINS command frame in a FINS/TCP packet. \endif

finsFrame— \if KO 래핑할 원시 FINS 프레임입니다. \endif \if EN The raw FINS frame to wrap. \endif

반환: \if KO FINS/TCP 헤더가 추가된 새 패킷입니다. \endif \if EN A new packet containing the FINS/TCP header. \endif

Signature Field

\if KO Signature 값을 보관합니다. \endif \if EN Stores the signature value. \endif

OmronFinsTcpSimulatorServer

#ctor Method

\if KO 새 메모리를 사용해 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of using new PLC memory. \endif

options— \if KO 바인딩 및 자동 응답 서버 옵션입니다. \endif \if EN The server binding and automatic-response options. \endif
#ctor Method

\if KO 지정한 공유 메모리를 사용해 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of using the specified shared memory. \endif

options— \if KO 바인딩 및 자동 응답 서버 옵션입니다. \endif \if EN The server binding and automatic-response options. \endif
memory— \if KO 요청 간에 공유할 PLC 메모리입니다. \endif \if EN The PLC memory shared across requests. \endif
AcceptLoopAsync Method

\if KO TCP 클라이언트 연결을 수락하고 각각의 처리 루프를 백그라운드에서 시작합니다. \endif \if EN Accepts TCP client connections and starts a background processing loop for each client. \endif

cancellationToken— \if KO 연결 수락을 중지하는 토큰입니다. \endif \if EN A token that stops accepting connections. \endif

반환: \if KO 수락 루프 수명 동안 실행되는 작업입니다. \endif \if EN A task that runs for the lifetime of the accept loop. \endif

ClientLoopAsync Method

\if KO 단일 TCP 클라이언트의 FINS/TCP 요청을 수신·처리·응답합니다. \endif \if EN Receives, processes, and responds to FINS/TCP requests for one TCP client. \endif

client— \if KO 처리할 연결된 TCP 클라이언트입니다. \endif \if EN The connected TCP client to process. \endif
cancellationToken— \if KO 클라이언트 루프를 중지하는 토큰입니다. \endif \if EN A token that stops the client loop. \endif

반환: \if KO 클라이언트 연결 수명 동안 실행되는 작업입니다. \endif \if EN A task that runs for the lifetime of the client connection. \endif

DisposeAsync Method

\if KO 서버를 중지해 비동기로 정리합니다. \endif \if EN Asynchronously disposes the server by stopping it. \endif

반환: \if KO 비동기 정리 작업을 나타내는 값 작업입니다. \endif \if EN A value task representing asynchronous disposal. \endif

ParseAddress Method

\if KO 구성된 바인딩 호스트를 IP 주소로 변환하며 와일드카드와 잘못된 값은 모든 인터페이스로 처리합니다. \endif \if EN Converts a configured binding host to an IP address, treating wildcards and invalid values as all interfaces. \endif

host— \if KO 변환할 호스트 또는 와일드카드 문자열입니다. \endif \if EN The host or wildcard string to convert. \endif

반환: \if KO 구문 분석된 주소 또는 입니다. \endif \if EN The parsed address or . \endif

ReadExactlyAsync Method

\if KO 네트워크 스트림에서 대상 버퍼를 끝까지 채웁니다. \endif \if EN Fills the destination buffer completely from the network stream. \endif

stream— \if KO 읽을 네트워크 스트림입니다. \endif \if EN The network stream to read. \endif
buffer— \if KO 완전히 채울 대상 버퍼입니다. \endif \if EN The destination buffer to fill completely. \endif
cancellationToken— \if KO 읽기를 취소하는 토큰입니다. \endif \if EN A token that cancels reading. \endif

반환: \if KO 비동기 읽기 작업입니다. \endif \if EN A task representing the asynchronous read operation. \endif

ReceiveFinsTcpPacketAsync Method

\if KO FINS/TCP 헤더와 선언된 본문 길이를 기준으로 패킷 하나를 정확히 수신합니다. \endif \if EN Receives exactly one packet based on the FINS/TCP header and declared body length. \endif

stream— \if KO 읽을 클라이언트 네트워크 스트림입니다. \endif \if EN The client network stream to read. \endif
cancellationToken— \if KO 수신을 취소하는 토큰입니다. \endif \if EN A token that cancels receiving. \endif

반환: \if KO 헤더와 본문을 포함한 완전한 FINS/TCP 패킷입니다. \endif \if EN The complete FINS/TCP packet containing header and body. \endif

StartAsync Method

\if KO 구성된 주소와 포트에서 TCP 수신을 시작하고 연결 수락 루프를 실행합니다. \endif \if EN Starts TCP listening at the configured address and port and runs the accept loop. \endif

반환: \if KO 서버가 이미 실행 중이거나 시작이 완료되면 완료되는 작업입니다. \endif \if EN A task completed when the server is already running or startup is complete. \endif

StopAsync Method

\if KO TCP 수신기와 모든 클라이언트를 닫고 수락 루프를 종료합니다. \endif \if EN Stops the TCP listener, closes all clients, and terminates the accept loop. \endif

반환: \if KO 연결과 수락 루프의 종료 및 자원 정리를 나타내는 작업입니다. \endif \if EN A task representing connection and accept-loop termination and cleanup. \endif

IsRunning Property

\if KO TCP 수신기가 생성되어 서버가 실행 중인지 여부를 가져옵니다. \endif \if EN Gets whether the TCP listener exists and the server is running. \endif

_acceptTask Field

\if KO accept Task 값을 보관합니다. \endif \if EN Stores the accept task value. \endif

_clients Field

\if KO clients 값을 보관합니다. \endif \if EN Stores the clients value. \endif

_cts Field

\if KO cts 값을 보관합니다. \endif \if EN Stores the cts value. \endif

_listener Field

\if KO listener 값을 보관합니다. \endif \if EN Stores the listener value. \endif

_memory Field

\if KO memory 값을 보관합니다. \endif \if EN Stores the memory value. \endif

_options Field

\if KO options 값을 보관합니다. \endif \if EN Stores the options value. \endif

_protocol Field

\if KO protocol 값을 보관합니다. \endif \if EN Stores the protocol value. \endif

_syncRoot Field

\if KO sync Root 값을 보관합니다. \endif \if EN Stores the sync root value. \endif

StatusChanged Event

\if KO 서버 상태 또는 프로토콜 상태가 변경될 때 발생합니다. \endif \if EN Occurs when server or protocol status changes. \endif

OmronFinsTransportType

Tcp Field

\if KO FINS/TCP 전송을 사용합니다. \endif \if EN Uses FINS/TCP transport. \endif

Udp Field

\if KO FINS/UDP 전송을 사용합니다. \endif \if EN Uses FINS/UDP transport. \endif

OmronFinsUdpSimulatorServer

#ctor Method

\if KO 새 메모리를 사용해 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of using new PLC memory. \endif

options— \if KO 바인딩 및 자동 응답 서버 옵션입니다. \endif \if EN The server binding and automatic-response options. \endif
#ctor Method

\if KO 지정한 공유 메모리를 사용해 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of using the specified shared memory. \endif

options— \if KO 바인딩 및 자동 응답 서버 옵션입니다. \endif \if EN The server binding and automatic-response options. \endif
memory— \if KO 요청 간에 공유할 PLC 메모리입니다. \endif \if EN The PLC memory shared across requests. \endif
DisposeAsync Method

\if KO 서버를 중지해 비동기로 정리합니다. \endif \if EN Asynchronously disposes the server by stopping it. \endif

반환: \if KO 비동기 정리 작업을 나타내는 값 작업입니다. \endif \if EN A value task representing asynchronous disposal. \endif

ParseAddress Method

\if KO 구성된 바인딩 호스트를 IP 주소로 변환하며 와일드카드와 잘못된 값은 모든 인터페이스로 처리합니다. \endif \if EN Converts a configured binding host to an IP address, treating wildcards and invalid values as all interfaces. \endif

host— \if KO 변환할 호스트 또는 와일드카드 문자열입니다. \endif \if EN The host or wildcard string to convert. \endif

반환: \if KO 구문 분석된 주소 또는 입니다. \endif \if EN The parsed address or . \endif

ReceiveLoopAsync Method

\if KO UDP 요청을 수신해 프로토콜로 처리하고 원격 끝점에 응답하는 루프를 실행합니다. \endif \if EN Runs the loop that receives UDP requests, processes them through the protocol, and replies to each remote endpoint. \endif

cancellationToken— \if KO 수신 루프를 중지하는 토큰입니다. \endif \if EN A token that stops the receive loop. \endif

반환: \if KO 수신 루프 수명 동안 실행되는 작업입니다. \endif \if EN A task that runs for the lifetime of the receive loop. \endif

StartAsync Method

\if KO 구성된 주소와 포트에 UDP 소켓을 바인딩하고 수신 루프를 시작합니다. \endif \if EN Binds a UDP socket to the configured address and port and starts the receive loop. \endif

반환: \if KO 서버가 이미 실행 중이거나 시작이 완료되면 완료되는 작업입니다. \endif \if EN A task completed when the server is already running or startup is complete. \endif

StopAsync Method

\if KO UDP 소켓과 수신 루프를 중지하고 서버 자원을 정리합니다. \endif \if EN Stops the UDP socket and receive loop and releases server resources. \endif

반환: \if KO 수신 루프의 종료와 자원 정리를 나타내는 작업입니다. \endif \if EN A task representing receive-loop termination and resource cleanup. \endif

IsRunning Property

\if KO UDP 소켓이 생성되어 서버가 실행 중인지 여부를 가져옵니다. \endif \if EN Gets whether the UDP socket exists and the server is running. \endif

_cts Field

\if KO cts 값을 보관합니다. \endif \if EN Stores the cts value. \endif

_memory Field

\if KO memory 값을 보관합니다. \endif \if EN Stores the memory value. \endif

_options Field

\if KO options 값을 보관합니다. \endif \if EN Stores the options value. \endif

_protocol Field

\if KO protocol 값을 보관합니다. \endif \if EN Stores the protocol value. \endif

_receiveTask Field

\if KO receive Task 값을 보관합니다. \endif \if EN Stores the receive task value. \endif

_udpClient Field

\if KO udp Client 값을 보관합니다. \endif \if EN Stores the udp client value. \endif

StatusChanged Event

\if KO 서버 상태 또는 프로토콜 상태가 변경될 때 발생합니다. \endif \if EN Occurs when server or protocol status changes. \endif

TcpOmronFinsTransport

#ctor Method

\if KO 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of . \endif

options— \if KO 대상과 제한 시간을 지정하는 FINS 연결 옵션입니다. \endif \if EN The FINS connection options specifying the endpoint and timeouts. \endif
CloseCoreAsync Method

\if KO 현재 네트워크 스트림과 TCP 클라이언트를 닫고 참조를 초기화합니다. \endif \if EN Closes the current network stream and TCP client and clears their references. \endif

반환: \if KO 닫기 작업을 나타내는 완료 작업입니다. \endif \if EN A completed task representing the close operation. \endif

ConnectAsync Method

\if KO 구성된 제한 시간 안에 FINS TCP 대상에 연결합니다. \endif \if EN Connects to the configured FINS TCP endpoint within the configured timeout. \endif

cancellationToken— \if KO 연결 및 잠금 대기를 취소하는 토큰입니다. \endif \if EN A token that cancels connection and lock acquisition. \endif

반환: \if KO 연결 성공 또는 포착된 네트워크·제한 시간 오류를 포함하는 결과 작업입니다. \endif \if EN A task containing success or a captured network or timeout error. \endif

DisconnectAsync Method

\if KO 네트워크 스트림과 TCP 클라이언트를 닫아 FINS 연결을 해제합니다. \endif \if EN Disconnects FINS by closing the network stream and TCP client. \endif

cancellationToken— \if KO 잠금 대기를 취소하는 토큰입니다. \endif \if EN A token that cancels lock acquisition. \endif

반환: \if KO 연결 해제 성공 결과 작업입니다. \endif \if EN A task containing a successful disconnection result. \endif

DisposeAsync Method

\if KO 연결을 닫고 동기화 자원을 비동기로 정리합니다. \endif \if EN Closes the connection and asynchronously disposes synchronization resources. \endif

반환: \if KO 비동기 정리 작업을 나타내는 값 작업입니다. \endif \if EN A value task representing asynchronous disposal. \endif

ReadExactlyAsync Method

\if KO 네트워크 스트림에서 대상 버퍼를 끝까지 채웁니다. \endif \if EN Fills the destination buffer completely from the network stream. \endif

stream— \if KO 읽을 네트워크 스트림입니다. \endif \if EN The network stream to read. \endif
buffer— \if KO 완전히 채울 대상 버퍼입니다. \endif \if EN The destination buffer to fill completely. \endif
cancellationToken— \if KO 읽기를 취소하는 토큰입니다. \endif \if EN A token that cancels reading. \endif

반환: \if KO 비동기 읽기 작업입니다. \endif \if EN A task representing the asynchronous read operation. \endif

ReceiveFinsTcpPacketAsync Method

\if KO FINS/TCP 헤더와 선언된 본문 길이를 기준으로 패킷 하나를 정확히 수신합니다. \endif \if EN Receives exactly one packet based on the FINS/TCP header and declared body length. \endif

stream— \if KO 읽을 연결된 네트워크 스트림입니다. \endif \if EN The connected network stream to read. \endif
cancellationToken— \if KO 수신을 취소하는 토큰입니다. \endif \if EN A token that cancels receiving. \endif

반환: \if KO 헤더와 본문을 포함한 완전한 FINS/TCP 패킷입니다. \endif \if EN The complete FINS/TCP packet containing header and body. \endif

SendAndReceiveAsync Method

\if KO 원시 FINS 프레임을 TCP 패킷으로 전송하고 완전한 응답 패킷을 수신합니다. \endif \if EN Sends a raw FINS frame as a TCP packet and receives one complete response packet. \endif

requestFrame— \if KO 전송할 원시 FINS 요청 프레임입니다. \endif \if EN The raw FINS request frame to send. \endif
receiveTimeoutMs— \if KO 밀리초 단위 송수신 제한 시간입니다. \endif \if EN The send-and-receive timeout in milliseconds. \endif
retryCount— \if KO 인터페이스 호환성을 위한 재시도 횟수이며 TCP 구현에서는 사용하지 않습니다. \endif \if EN A retry count retained for interface compatibility; this TCP implementation does not use it. \endif
cancellationToken— \if KO 잠금과 송수신을 취소하는 토큰입니다. \endif \if EN A token that cancels lock acquisition and I/O. \endif

반환: \if KO 원시 FINS 응답 프레임 또는 연결·전송·프로토콜 오류를 포함하는 결과 작업입니다. \endif \if EN A task containing the raw FINS response frame or a connection, transport, or protocol error. \endif

ThrowIfDisposed Method

\if KO 이 전송 인스턴스가 아직 정리되지 않았는지 확인합니다. \endif \if EN Verifies that this transport instance has not been disposed. \endif

IsConnected Property

\if KO TCP 클라이언트가 연결되고 네트워크 스트림이 준비되었는지 여부를 가져옵니다. \endif \if EN Gets whether the TCP client is connected and its network stream is ready. \endif

_disposed Field

\if KO disposed 값을 보관합니다. \endif \if EN Stores the disposed value. \endif

_options Field

\if KO options 값을 보관합니다. \endif \if EN Stores the options value. \endif

_stream Field

\if KO stream 값을 보관합니다. \endif \if EN Stores the stream value. \endif

_syncLock Field

\if KO sync Lock 값을 보관합니다. \endif \if EN Stores the sync lock value. \endif

_tcpClient Field

\if KO tcp Client 값을 보관합니다. \endif \if EN Stores the tcp client value. \endif

UdpOmronFinsTransport

#ctor Method

\if KO 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of . \endif

options— \if KO 대상과 제한 시간을 지정하는 FINS 연결 옵션입니다. \endif \if EN The FINS connection options specifying the endpoint and timeouts. \endif
CloseCore Method

\if KO 현재 UDP 클라이언트를 닫고 연결 상태를 초기화합니다. \endif \if EN Closes the current UDP client and clears the connection state. \endif

ConnectAsync Method

\if KO 대상 호스트를 확인하고 연결된 UDP 클라이언트를 준비합니다. \endif \if EN Resolves the target host and prepares a connected UDP client. \endif

cancellationToken— \if KO DNS 확인과 잠금 대기를 취소하는 토큰입니다. \endif \if EN A token that cancels DNS resolution and lock acquisition. \endif

반환: \if KO 성공 또는 유효성·DNS·소켓 오류를 포함하는 연결 결과 작업입니다. \endif \if EN A task containing success or a validation, DNS, or socket error. \endif

DisconnectAsync Method

\if KO UDP 클라이언트를 닫고 원격 끝점 정보를 초기화합니다. \endif \if EN Closes the UDP client and clears the remote endpoint information. \endif

cancellationToken— \if KO 잠금 대기를 취소하는 토큰입니다. \endif \if EN A token that cancels lock acquisition. \endif

반환: \if KO 연결 해제 성공 결과 작업입니다. \endif \if EN A task containing a successful disconnection result. \endif

DisposeAsync Method

\if KO UDP 연결을 닫고 동기화 자원을 비동기로 정리합니다. \endif \if EN Closes the UDP connection and asynchronously disposes synchronization resources. \endif

반환: \if KO 비동기 정리 작업을 나타내는 값 작업입니다. \endif \if EN A value task representing asynchronous disposal. \endif

SendAndReceiveAsync Method

\if KO 원시 FINS UDP 프레임을 보내고 구성된 횟수만큼 응답 수신을 재시도합니다. \endif \if EN Sends a raw FINS UDP frame and retries response reception for the configured number of attempts. \endif

requestFrame— \if KO 전송할 원시 FINS 요청 프레임입니다. \endif \if EN The raw FINS request frame to send. \endif
receiveTimeoutMs— \if KO 각 시도의 밀리초 단위 수신 제한 시간입니다. \endif \if EN The receive timeout in milliseconds for each attempt. \endif
retryCount— \if KO 총 시도 횟수이며 1보다 작으면 한 번 시도합니다. \endif \if EN The total attempt count; values below one result in one attempt. \endif
cancellationToken— \if KO 잠금과 송수신을 취소하는 토큰입니다. \endif \if EN A token that cancels lock acquisition and I/O. \endif

반환: \if KO 수신된 원시 FINS 응답 또는 마지막 전송 오류를 포함하는 결과 작업입니다. \endif \if EN A task containing the received raw FINS response or the last transport error. \endif

ThrowIfDisposed Method

\if KO 이 전송 인스턴스가 아직 정리되지 않았는지 확인합니다. \endif \if EN Verifies that this transport instance has not been disposed. \endif

IsConnected Property

\if KO UDP 클라이언트와 원격 끝점이 준비되었는지 여부를 가져옵니다. \endif \if EN Gets whether the UDP client and remote endpoint are ready. \endif

_disposed Field

\if KO disposed 값을 보관합니다. \endif \if EN Stores the disposed value. \endif

_options Field

\if KO options 값을 보관합니다. \endif \if EN Stores the options value. \endif

_remoteEndPoint Field

\if KO remote End Point 값을 보관합니다. \endif \if EN Stores the remote end point value. \endif

_syncLock Field

\if KO sync Lock 값을 보관합니다. \endif \if EN Stores the sync lock value. \endif

_udpClient Field

\if KO udp Client 값을 보관합니다. \endif \if EN Stores the udp client value. \endif