Dreamine.PLC.Omron.Fins 1.0.1
Dreamine.PLC.Omron.Fins 산업 자동화 및 I/O 기능을 제공합니다.
로딩중...
검색중...
일치하는것 없음
Dreamine.PLC.Omron.Fins.Clients.OmronFinsPlcClient 클래스 참조sealed

더 자세히 ...

Dreamine.PLC.Omron.Fins.Clients.OmronFinsPlcClient에 대한 상속 다이어그램 :
Dreamine.PLC.Omron.Fins.Clients.OmronFinsPlcClient에 대한 협력 다이어그램:

Public 멤버 함수

 OmronFinsPlcClient (OmronFinsConnectionOptions options)
 OmronFinsPlcClient (OmronFinsConnectionOptions options, IOmronFinsTransport transport, OmronFinsFrameBuilder frameBuilder, OmronFinsResponseParser responseParser)
override async ValueTask DisposeAsync ()

Protected 멤버 함수

override Task< PlcResult > ConnectCoreAsync (CancellationToken cancellationToken)
override Task< PlcResult > DisconnectCoreAsync (CancellationToken cancellationToken)
override async Task< PlcResult< bool[]> > ReadBitsCoreAsync (PlcAddress address, int count, CancellationToken cancellationToken)
override async Task< PlcResult< short[]> > ReadWordsCoreAsync (PlcAddress address, int count, CancellationToken cancellationToken)
override async Task< PlcResult > WriteBitsCoreAsync (PlcAddress address, IReadOnlyList< bool > values, CancellationToken cancellationToken)
override async Task< PlcResult > WriteWordsCoreAsync (PlcAddress address, IReadOnlyList< short > values, CancellationToken cancellationToken)

속성

OmronFinsConnectionOptions Options [get]

정적 Private 멤버 함수

static IOmronFinsTransport CreateTransport (OmronFinsConnectionOptions options)

Private 속성

readonly OmronFinsConnectionOptions _options
readonly IOmronFinsTransport _transport
readonly OmronFinsFrameBuilder _frameBuilder
readonly OmronFinsResponseParser _responseParser

상세한 설명

Dreamine PLC 스택을 위한 Omron FINS PLC 클라이언트 구현을 제공합니다.

OmronFinsPlcClient.cs 파일의 18 번째 라인에서 정의되었습니다.

생성자 & 소멸자 문서화

◆ OmronFinsPlcClient() [1/2]

Dreamine.PLC.Omron.Fins.Clients.OmronFinsPlcClient.OmronFinsPlcClient ( OmronFinsConnectionOptions options)
inline

옵션에 맞는 기본 전송을 사용해 T:Dreamine.PLC.Omron.Fins.Clients.OmronFinsPlcClient 클래스의 새 인스턴스를 초기화합니다.

매개변수
options전송 형식과 네트워크 설정을 포함하는 FINS 연결 옵션입니다.
예외
ArgumentNullExceptionoptionsnull일 때 발생합니다.
ArgumentOutOfRangeException지원되지 않는 전송 형식이 지정된 경우 발생합니다.

OmronFinsPlcClient.cs 파일의 89 번째 라인에서 정의되었습니다.

90 : this(options, CreateTransport(options), new OmronFinsFrameBuilder(), new OmronFinsResponseParser())
91 {
92 }

다음을 참조함 : CreateTransport().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OmronFinsPlcClient() [2/2]

Dreamine.PLC.Omron.Fins.Clients.OmronFinsPlcClient.OmronFinsPlcClient ( OmronFinsConnectionOptions options,
IOmronFinsTransport transport,
OmronFinsFrameBuilder frameBuilder,
OmronFinsResponseParser responseParser )
inline

제공된 구성 요소를 사용해 T:Dreamine.PLC.Omron.Fins.Clients.OmronFinsPlcClient 클래스의 새 인스턴스를 초기화합니다.

매개변수
optionsFINS 연결 옵션입니다.
transport원시 프레임을 송수신할 FINS 전송입니다.
frameBuilder메모리 명령 프레임 생성기입니다.
responseParser응답 페이로드 구문 분석기입니다.
예외
ArgumentNullException인수 중 하나가 null일 때 발생합니다.

OmronFinsPlcClient.cs 파일의 142 번째 라인에서 정의되었습니다.

147 {
148 _options = options ?? throw new ArgumentNullException(nameof(options));
149 _transport = transport ?? throw new ArgumentNullException(nameof(transport));
150 _frameBuilder = frameBuilder ?? throw new ArgumentNullException(nameof(frameBuilder));
151 _responseParser = responseParser ?? throw new ArgumentNullException(nameof(responseParser));
152 }

다음을 참조함 : _frameBuilder, _options, _responseParser, _transport.

멤버 함수 문서화

◆ ConnectCoreAsync()

override Task< PlcResult > Dreamine.PLC.Omron.Fins.Clients.OmronFinsPlcClient.ConnectCoreAsync ( CancellationToken cancellationToken)
inlineprotected

구성된 FINS 전송을 연결합니다.

매개변수
cancellationToken연결 및 전송 잠금 대기를 취소하는 토큰입니다.
반환값
전송 연결 결과 작업입니다.
예외
OperationCanceledException전송 잠금 대기 중 취소되면 구현체에서 발생할 수 있습니다.

OmronFinsPlcClient.cs 파일의 196 번째 라인에서 정의되었습니다.

197 {
198 return _transport.ConnectAsync(cancellationToken);
199 }

다음을 참조함 : _transport.

◆ CreateTransport()

IOmronFinsTransport Dreamine.PLC.Omron.Fins.Clients.OmronFinsPlcClient.CreateTransport ( OmronFinsConnectionOptions options)
inlinestaticprivate

연결 옵션에 지정된 형식에 맞는 기본 FINS 전송을 생성합니다.

매개변수
options전송 형식과 네트워크 설정을 포함하는 연결 옵션입니다.
반환값
TCP 또는 UDP FINS 전송 인스턴스입니다.
예외
ArgumentNullExceptionoptionsnull일 때 발생합니다.
ArgumentOutOfRangeException지원되지 않는 전송 형식이 지정된 경우 발생합니다.

OmronFinsPlcClient.cs 파일의 626 번째 라인에서 정의되었습니다.

627 {
628 ArgumentNullException.ThrowIfNull(options);
629
630 return options.TransportType switch
631 {
632 OmronFinsTransportType.Tcp => new TcpOmronFinsTransport(options),
633 OmronFinsTransportType.Udp => new UdpOmronFinsTransport(options),
634 _ => throw new ArgumentOutOfRangeException(nameof(options), options.TransportType, "Unsupported Omron FINS transport type.")
635 };
636 }

다음을 참조함 : Dreamine.PLC.Omron.Fins.Options.Tcp, Dreamine.PLC.Omron.Fins.Options.OmronFinsConnectionOptions.TransportType, Dreamine.PLC.Omron.Fins.Options.Udp.

다음에 의해서 참조됨 : OmronFinsPlcClient().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ DisconnectCoreAsync()

override Task< PlcResult > Dreamine.PLC.Omron.Fins.Clients.OmronFinsPlcClient.DisconnectCoreAsync ( CancellationToken cancellationToken)
inlineprotected

구성된 FINS 전송의 연결을 해제합니다.

매개변수
cancellationToken전송 잠금 대기를 취소하는 토큰입니다.
반환값
전송 연결 해제 결과 작업입니다.
예외
OperationCanceledException전송 잠금 대기 중 취소되면 구현체에서 발생할 수 있습니다.

OmronFinsPlcClient.cs 파일의 233 번째 라인에서 정의되었습니다.

234 {
235 return _transport.DisconnectAsync(cancellationToken);
236 }

다음을 참조함 : _transport.

◆ DisposeAsync()

override async ValueTask Dreamine.PLC.Omron.Fins.Clients.OmronFinsPlcClient.DisposeAsync ( )
inline

기본 PLC 클라이언트와 소유한 FINS 전송을 비동기로 정리합니다.

반환값
비동기 정리 작업을 나타내는 값 작업입니다.

OmronFinsPlcClient.cs 파일의 580 번째 라인에서 정의되었습니다.

581 {
582 await base.DisposeAsync().ConfigureAwait(false);
583 await _transport.DisposeAsync().ConfigureAwait(false);
584 }

다음을 참조함 : _transport.

◆ ReadBitsCoreAsync()

override async Task< PlcResult< bool[]> > Dreamine.PLC.Omron.Fins.Clients.OmronFinsPlcClient.ReadBitsCoreAsync ( PlcAddress address,
int count,
CancellationToken cancellationToken )
inlineprotected

FINS 메모리 영역에서 비트 값을 읽고 응답 페이로드를 구문 분석합니다.

매개변수
address읽기를 시작할 PLC 주소입니다.
count읽을 비트 수입니다.
cancellationToken전송 작업을 취소하는 토큰입니다.
반환값
비트 배열 또는 프레임·전송·응답 오류를 포함하는 결과 작업입니다.
예외
OperationCanceledException전송 잠금 대기 중 취소되면 구현체에서 발생할 수 있습니다.

OmronFinsPlcClient.cs 파일의 286 번째 라인에서 정의되었습니다.

290 {
291 byte[] request;
292 try
293 {
294 request = _frameBuilder.BuildMemoryAreaRead(_options, address, count, bitAccess: true);
295 }
296 catch (Exception ex)
297 {
298 return PlcResult<bool[]>.Failure(ex.Message);
299 }
300
301 var responseResult = await _transport.SendAndReceiveAsync(
302 request,
303 _options.ReceiveTimeoutMs,
304 _options.RetryCount,
305 cancellationToken).ConfigureAwait(false);
306
307 if (!responseResult.IsSuccess || responseResult.Value is null)
308 {
309 return PlcResult<bool[]>.Failure(responseResult.Message ?? "Failed to receive FINS bit read response.", responseResult.ErrorCode);
310 }
311
312 var payloadResult = _responseParser.ExtractPayload(responseResult.Value);
313 if (!payloadResult.IsSuccess || payloadResult.Value is null)
314 {
315 return PlcResult<bool[]>.Failure(payloadResult.Message ?? "Failed to parse FINS bit read payload.", payloadResult.ErrorCode);
316 }
317
318 return _responseParser.ParseBits(payloadResult.Value, count);
319 }

다음을 참조함 : _frameBuilder, _options, _responseParser, _transport.

◆ ReadWordsCoreAsync()

override async Task< PlcResult< short[]> > Dreamine.PLC.Omron.Fins.Clients.OmronFinsPlcClient.ReadWordsCoreAsync ( PlcAddress address,
int count,
CancellationToken cancellationToken )
inlineprotected

FINS 메모리 영역에서 워드 값을 읽고 응답 페이로드를 구문 분석합니다.

매개변수
address읽기를 시작할 PLC 주소입니다.
count읽을 워드 수입니다.
cancellationToken전송 작업을 취소하는 토큰입니다.
반환값
워드 배열 또는 프레임·전송·응답 오류를 포함하는 결과 작업입니다.
예외
OperationCanceledException전송 잠금 대기 중 취소되면 구현체에서 발생할 수 있습니다.

OmronFinsPlcClient.cs 파일의 369 번째 라인에서 정의되었습니다.

373 {
374 byte[] request;
375 try
376 {
377 request = _frameBuilder.BuildMemoryAreaRead(_options, address, count, bitAccess: false);
378 }
379 catch (Exception ex)
380 {
381 return PlcResult<short[]>.Failure(ex.Message);
382 }
383
384 var responseResult = await _transport.SendAndReceiveAsync(
385 request,
386 _options.ReceiveTimeoutMs,
387 _options.RetryCount,
388 cancellationToken).ConfigureAwait(false);
389
390 if (!responseResult.IsSuccess || responseResult.Value is null)
391 {
392 return PlcResult<short[]>.Failure(responseResult.Message ?? "Failed to receive FINS word read response.", responseResult.ErrorCode);
393 }
394
395 var payloadResult = _responseParser.ExtractPayload(responseResult.Value);
396 if (!payloadResult.IsSuccess || payloadResult.Value is null)
397 {
398 return PlcResult<short[]>.Failure(payloadResult.Message ?? "Failed to parse FINS word read payload.", payloadResult.ErrorCode);
399 }
400
401 return _responseParser.ParseWords(payloadResult.Value, count);
402 }

다음을 참조함 : _frameBuilder, _options, _responseParser, _transport.

◆ WriteBitsCoreAsync()

override async Task< PlcResult > Dreamine.PLC.Omron.Fins.Clients.OmronFinsPlcClient.WriteBitsCoreAsync ( PlcAddress address,
IReadOnlyList< bool > values,
CancellationToken cancellationToken )
inlineprotected

비트 값을 FINS 메모리 영역에 쓰고 응답 종료 코드를 확인합니다.

매개변수
address쓰기를 시작할 PLC 주소입니다.
values쓸 비트 값입니다.
cancellationToken전송 작업을 취소하는 토큰입니다.
반환값
성공 또는 프레임·전송·응답 오류를 포함하는 결과 작업입니다.
예외
OperationCanceledException전송 잠금 대기 중 취소되면 구현체에서 발생할 수 있습니다.

OmronFinsPlcClient.cs 파일의 452 번째 라인에서 정의되었습니다.

456 {
457 byte[] request;
458 try
459 {
460 request = _frameBuilder.BuildMemoryAreaWriteBits(_options, address, values);
461 }
462 catch (Exception ex)
463 {
464 return PlcResult.Failure(ex.Message);
465 }
466
467 var responseResult = await _transport.SendAndReceiveAsync(
468 request,
469 _options.ReceiveTimeoutMs,
470 _options.RetryCount,
471 cancellationToken).ConfigureAwait(false);
472
473 if (!responseResult.IsSuccess || responseResult.Value is null)
474 {
475 return PlcResult.Failure(responseResult.Message ?? "Failed to receive FINS bit write response.", responseResult.ErrorCode);
476 }
477
478 var payloadResult = _responseParser.ExtractPayload(responseResult.Value);
479 return payloadResult.IsSuccess
480 ? PlcResult.Success()
481 : PlcResult.Failure(payloadResult.Message ?? "Failed to parse FINS bit write response.", payloadResult.ErrorCode);
482 }

다음을 참조함 : _frameBuilder, _options, _responseParser, _transport.

◆ WriteWordsCoreAsync()

override async Task< PlcResult > Dreamine.PLC.Omron.Fins.Clients.OmronFinsPlcClient.WriteWordsCoreAsync ( PlcAddress address,
IReadOnlyList< short > values,
CancellationToken cancellationToken )
inlineprotected

워드 값을 FINS 메모리 영역에 쓰고 응답 종료 코드를 확인합니다.

매개변수
address쓰기를 시작할 PLC 주소입니다.
values쓸 워드 값입니다.
cancellationToken전송 작업을 취소하는 토큰입니다.
반환값
성공 또는 프레임·전송·응답 오류를 포함하는 결과 작업입니다.
예외
OperationCanceledException전송 잠금 대기 중 취소되면 구현체에서 발생할 수 있습니다.

OmronFinsPlcClient.cs 파일의 532 번째 라인에서 정의되었습니다.

536 {
537 byte[] request;
538 try
539 {
540 request = _frameBuilder.BuildMemoryAreaWriteWords(_options, address, values);
541 }
542 catch (Exception ex)
543 {
544 return PlcResult.Failure(ex.Message);
545 }
546
547 var responseResult = await _transport.SendAndReceiveAsync(
548 request,
549 _options.ReceiveTimeoutMs,
550 _options.RetryCount,
551 cancellationToken).ConfigureAwait(false);
552
553 if (!responseResult.IsSuccess || responseResult.Value is null)
554 {
555 return PlcResult.Failure(responseResult.Message ?? "Failed to receive FINS word write response.", responseResult.ErrorCode);
556 }
557
558 var payloadResult = _responseParser.ExtractPayload(responseResult.Value);
559 return payloadResult.IsSuccess
560 ? PlcResult.Success()
561 : PlcResult.Failure(payloadResult.Message ?? "Failed to parse FINS word write response.", payloadResult.ErrorCode);
562 }

다음을 참조함 : _frameBuilder, _options, _responseParser, _transport.

멤버 데이터 문서화

◆ _frameBuilder

readonly OmronFinsFrameBuilder Dreamine.PLC.Omron.Fins.Clients.OmronFinsPlcClient._frameBuilder
private

frame Builder 값을 보관합니다.

OmronFinsPlcClient.cs 파일의 46 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : OmronFinsPlcClient(), ReadBitsCoreAsync(), ReadWordsCoreAsync(), WriteBitsCoreAsync(), WriteWordsCoreAsync().

◆ _options

readonly OmronFinsConnectionOptions Dreamine.PLC.Omron.Fins.Clients.OmronFinsPlcClient._options
private

options 값을 보관합니다.

OmronFinsPlcClient.cs 파일의 28 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : OmronFinsPlcClient(), ReadBitsCoreAsync(), ReadWordsCoreAsync(), WriteBitsCoreAsync(), WriteWordsCoreAsync().

◆ _responseParser

readonly OmronFinsResponseParser Dreamine.PLC.Omron.Fins.Clients.OmronFinsPlcClient._responseParser
private

response Parser 값을 보관합니다.

OmronFinsPlcClient.cs 파일의 55 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : OmronFinsPlcClient(), ReadBitsCoreAsync(), ReadWordsCoreAsync(), WriteBitsCoreAsync(), WriteWordsCoreAsync().

◆ _transport

readonly IOmronFinsTransport Dreamine.PLC.Omron.Fins.Clients.OmronFinsPlcClient._transport
private

transport 값을 보관합니다.

OmronFinsPlcClient.cs 파일의 37 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : ConnectCoreAsync(), DisconnectCoreAsync(), DisposeAsync(), OmronFinsPlcClient(), ReadBitsCoreAsync(), ReadWordsCoreAsync(), WriteBitsCoreAsync(), WriteWordsCoreAsync().

속성 문서화

◆ Options

OmronFinsConnectionOptions Dreamine.PLC.Omron.Fins.Clients.OmronFinsPlcClient.Options
get

이 클라이언트가 사용하는 Omron FINS 연결 옵션을 가져옵니다.

OmronFinsPlcClient.cs 파일의 162 번째 라인에서 정의되었습니다.


이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: