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

더 자세히 ...

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

Public 멤버 함수

 OmronCxComponentPlcClient (OmronCxComponentOptions options)
 OmronCxComponentPlcClient (OmronCxComponentOptions options, IComObjectFactory factory)
override async ValueTask DisposeAsync ()

Protected 멤버 함수

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

속성

OmronCxComponentOptions Options [get]

Private 멤버 함수

object RequireComponent ()
void ReleaseComponent ()

정적 Private 멤버 함수

static void TrySetProperty (object target, string name, object? value)

Private 속성

readonly OmronCxComponentOptions _options
readonly IComObjectFactory _factory
object? _component

상세한 설명

Omron CX-Compolet/CX-Component COM 인터페이스를 사용하는 PLC 클라이언트를 제공합니다.

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

생성자 & 소멸자 문서화

◆ OmronCxComponentPlcClient() [1/2]

Dreamine.PLC.Omron.CxComponent.Clients.OmronCxComponentPlcClient.OmronCxComponentPlcClient ( OmronCxComponentOptions options)
inline

기본 COM 개체 팩터리를 사용해 OmronCxComponentPlcClient 클래스의 새 인스턴스를 초기화합니다.

매개변수
optionsCX-Compolet 연결 및 메서드 설정입니다.
예외
ArgumentNullExceptionoptionsnull일 때 발생합니다.

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

75 : this(options, new DefaultComObjectFactory())
76 {
77 }

◆ OmronCxComponentPlcClient() [2/2]

Dreamine.PLC.Omron.CxComponent.Clients.OmronCxComponentPlcClient.OmronCxComponentPlcClient ( OmronCxComponentOptions options,
IComObjectFactory factory )
inline

지정한 COM 개체 팩터리를 사용해 OmronCxComponentPlcClient 클래스의 새 인스턴스를 초기화합니다.

매개변수
optionsCX-Compolet 연결 및 메서드 설정입니다.
factory후기 바인딩 COM 개체를 생성할 팩터리입니다.
예외
ArgumentNullExceptionoptions 또는 factorynull일 때 발생합니다.

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

112 {
113 _options = options ?? throw new ArgumentNullException(nameof(options));
114 _factory = factory ?? throw new ArgumentNullException(nameof(factory));
115 }

다음을 참조함 : _factory, _options.

멤버 함수 문서화

◆ ConnectCoreAsync()

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

COM 개체를 생성하고 상대 주소와 활성 상태를 설정해 CX-Compolet 연결을 엽니다.

매개변수
cancellationToken연결 작업을 취소하는 토큰입니다.
반환값
연결 성공 결과를 포함하는 작업입니다.
예외
OperationCanceledException취소 토큰이 취소된 경우 발생합니다.
PlatformNotSupportedException기본 팩터리를 Windows가 아닌 플랫폼에서 사용할 때 발생합니다.
InvalidOperationExceptionCOM 개체 생성 또는 필수 활성 속성 설정이 실패할 때 발생할 수 있습니다.

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

176 {
177 cancellationToken.ThrowIfCancellationRequested();
178
179 _component = _factory.Create(_options.ProgId);
180 TrySetProperty(_component, _options.PeerAddressPropertyName, _options.PeerAddress);
181 ComInvoker.SetProperty(_component, _options.ActivePropertyName, true);
182
183 return Task.FromResult(PlcResult.Success());
184 }

다음을 참조함 : _component, _factory, _options, TrySetProperty().

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

◆ DisconnectCoreAsync()

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

가능한 경우 활성 속성을 해제하고 보유한 CX-Compolet COM 개체를 해제합니다.

매개변수
cancellationToken연결 해제 작업을 취소하는 토큰입니다.
반환값
연결 해제 성공 결과를 포함하는 작업입니다.
예외
OperationCanceledException취소 토큰이 취소된 경우 발생합니다.
InvalidOperationException활성 속성 설정자가 존재하지만 내부 COM 오류가 발생할 때 발생할 수 있습니다.

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

227 {
228 cancellationToken.ThrowIfCancellationRequested();
229
230 if (_component is null)
231 {
232 return Task.FromResult(PlcResult.Success());
233 }
234
235 TrySetProperty(_component, _options.ActivePropertyName, false);
236 ReleaseComponent();
237 return Task.FromResult(PlcResult.Success());
238 }

다음을 참조함 : _component, _options, ReleaseComponent(), TrySetProperty().

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

◆ DisposeAsync()

override async ValueTask Dreamine.PLC.Omron.CxComponent.Clients.OmronCxComponentPlcClient.DisposeAsync ( )
inline

기본 PLC 클라이언트 자원을 비동기로 정리하고 CX-Compolet COM 개체를 해제합니다.

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

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

597 {
598 await base.DisposeAsync().ConfigureAwait(false);
599 ReleaseComponent();
600 }

다음을 참조함 : ReleaseComponent().

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

◆ ReadBitsCoreAsync()

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

연속된 PLC 비트 변수를 CX-Compolet 단건 호출로 읽습니다.

매개변수
address읽기를 시작할 PLC 주소입니다.
count읽을 비트 수입니다.
cancellationToken읽기 작업을 취소하는 토큰입니다.
반환값
읽은 비트 배열 또는 포착된 호출 오류를 포함하는 결과 작업입니다.
예외
InvalidOperationException클라이언트가 연결되지 않았을 때 발생합니다.
OperationCanceledException취소 토큰이 취소된 경우 발생합니다.

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

300 {
301 var component = RequireComponent();
302 var values = new bool[count];
303
304 try
305 {
306 for (var index = 0; index < count; index++)
307 {
308 cancellationToken.ThrowIfCancellationRequested();
309
310 var raw = ComInvoker.Invoke(
311 component,
312 _options.ReadVariableMethodName,
313 OmronCxAddressNameFormatter.FormatOffset(address, index));
314
315 values[index] = Convert.ToInt32(raw, CultureInfo.InvariantCulture) != 0;
316 }
317 }
318 catch (Exception ex) when (ex is not OperationCanceledException)
319 {
320 return Task.FromResult(PlcResult<bool[]>.Failure($"CX-Compolet bit read failed. {ex.Message}"));
321 }
322
323 return Task.FromResult(PlcResult<bool[]>.Success(values));
324 }

다음을 참조함 : _options, Dreamine.PLC.Omron.CxComponent.Devices.OmronCxAddressNameFormatter.FormatOffset(), RequireComponent().

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

◆ ReadWordsCoreAsync()

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

연속된 PLC 워드 변수를 CX-Compolet 단건 호출로 읽습니다.

매개변수
address읽기를 시작할 PLC 주소입니다.
count읽을 워드 수입니다.
cancellationToken읽기 작업을 취소하는 토큰입니다.
반환값
읽은 워드 배열 또는 포착된 호출 오류를 포함하는 결과 작업입니다.
예외
InvalidOperationException클라이언트가 연결되지 않았을 때 발생합니다.
OperationCanceledException취소 토큰이 취소된 경우 발생합니다.

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

386 {
387 var component = RequireComponent();
388 var values = new short[count];
389
390 try
391 {
392 for (var index = 0; index < count; index++)
393 {
394 cancellationToken.ThrowIfCancellationRequested();
395
396 var raw = ComInvoker.Invoke(
397 component,
398 _options.ReadVariableMethodName,
399 OmronCxAddressNameFormatter.FormatOffset(address, index));
400
401 values[index] = Convert.ToInt16(raw, CultureInfo.InvariantCulture);
402 }
403 }
404 catch (Exception ex) when (ex is not OperationCanceledException)
405 {
406 return Task.FromResult(PlcResult<short[]>.Failure($"CX-Compolet word read failed. {ex.Message}"));
407 }
408
409 return Task.FromResult(PlcResult<short[]>.Success(values));
410 }

다음을 참조함 : _options, Dreamine.PLC.Omron.CxComponent.Devices.OmronCxAddressNameFormatter.FormatOffset(), RequireComponent().

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

◆ ReleaseComponent()

void Dreamine.PLC.Omron.CxComponent.Clients.OmronCxComponentPlcClient.ReleaseComponent ( )
inlineprivate

보유한 CX-Compolet COM 개체의 참조를 최종 해제하고 연결 상태를 초기화합니다.

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

692 {
693 if (_component is null)
694 {
695 return;
696 }
697
698 if (OperatingSystem.IsWindows() && Marshal.IsComObject(_component))
699 {
700 Marshal.FinalReleaseComObject(_component);
701 }
702
703 _component = null;
704 }

다음을 참조함 : _component.

다음에 의해서 참조됨 : DisconnectCoreAsync(), DisposeAsync().

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

◆ RequireComponent()

object Dreamine.PLC.Omron.CxComponent.Clients.OmronCxComponentPlcClient.RequireComponent ( )
inlineprivate

현재 연결된 CX-Compolet COM 개체를 반환합니다.

반환값
연결된 COM 개체입니다.
예외
InvalidOperationException클라이언트가 연결되지 않았을 때 발생합니다.

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

679 {
680 return _component ?? throw new InvalidOperationException("CX-Compolet is not connected.");
681 }

다음을 참조함 : _component.

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

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

◆ TrySetProperty()

void Dreamine.PLC.Omron.CxComponent.Clients.OmronCxComponentPlcClient.TrySetProperty ( object target,
string name,
object? value )
inlinestaticprivate

PLC 제품군에 따라 선택적인 COM 속성을 설정하며 속성이 없으면 무시합니다.

매개변수
target속성을 소유한 COM 대상입니다.
name설정할 선택적 속성 이름입니다.
value설정할 값입니다.
예외
InvalidOperationException속성 설정자가 존재하지만 내부 COM 오류가 발생할 때 발생할 수 있습니다.

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

643 {
644 try
645 {
646 ComInvoker.SetProperty(target, name, value);
647 }
648 catch (MissingMethodException)
649 {
650 // CX-Compolet controls vary by PLC family; optional properties are intentionally ignored.
651 }
652 }

다음에 의해서 참조됨 : ConnectCoreAsync(), DisconnectCoreAsync().

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

◆ WriteBitsCoreAsync()

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

연속된 PLC 비트 변수를 CX-Compolet 단건 호출로 씁니다.

매개변수
address쓰기를 시작할 PLC 주소입니다.
values쓸 비트 값입니다.
cancellationToken쓰기 작업을 취소하는 토큰입니다.
반환값
성공 또는 포착된 호출 오류를 포함하는 결과 작업입니다.
예외
InvalidOperationException클라이언트가 연결되지 않았을 때 발생합니다.
OperationCanceledException취소 토큰이 취소된 경우 발생합니다.

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

472 {
473 var component = RequireComponent();
474
475 try
476 {
477 for (var index = 0; index < values.Count; index++)
478 {
479 cancellationToken.ThrowIfCancellationRequested();
480
481 ComInvoker.Invoke(
482 component,
483 _options.WriteVariableMethodName,
484 OmronCxAddressNameFormatter.FormatOffset(address, index),
485 values[index] ? 1 : 0);
486 }
487 }
488 catch (Exception ex) when (ex is not OperationCanceledException)
489 {
490 return Task.FromResult(PlcResult.Failure($"CX-Compolet bit write failed. {ex.Message}"));
491 }
492
493 return Task.FromResult(PlcResult.Success());
494 }

다음을 참조함 : _options, Dreamine.PLC.Omron.CxComponent.Devices.OmronCxAddressNameFormatter.FormatOffset(), RequireComponent().

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

◆ WriteWordsCoreAsync()

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

연속된 PLC 워드 변수를 CX-Compolet 단건 호출로 씁니다.

매개변수
address쓰기를 시작할 PLC 주소입니다.
values쓸 워드 값입니다.
cancellationToken쓰기 작업을 취소하는 토큰입니다.
반환값
성공 또는 포착된 호출 오류를 포함하는 결과 작업입니다.
예외
InvalidOperationException클라이언트가 연결되지 않았을 때 발생합니다.
OperationCanceledException취소 토큰이 취소된 경우 발생합니다.

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

556 {
557 var component = RequireComponent();
558
559 try
560 {
561 for (var index = 0; index < values.Count; index++)
562 {
563 cancellationToken.ThrowIfCancellationRequested();
564
565 ComInvoker.Invoke(
566 component,
567 _options.WriteVariableMethodName,
568 OmronCxAddressNameFormatter.FormatOffset(address, index),
569 values[index]);
570 }
571 }
572 catch (Exception ex) when (ex is not OperationCanceledException)
573 {
574 return Task.FromResult(PlcResult.Failure($"CX-Compolet word write failed. {ex.Message}"));
575 }
576
577 return Task.FromResult(PlcResult.Success());
578 }

다음을 참조함 : _options, Dreamine.PLC.Omron.CxComponent.Devices.OmronCxAddressNameFormatter.FormatOffset(), RequireComponent().

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

멤버 데이터 문서화

◆ _component

object? Dreamine.PLC.Omron.CxComponent.Clients.OmronCxComponentPlcClient._component
private

component 값을 보관합니다.

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

다음에 의해서 참조됨 : ConnectCoreAsync(), DisconnectCoreAsync(), ReleaseComponent(), RequireComponent().

◆ _factory

readonly IComObjectFactory Dreamine.PLC.Omron.CxComponent.Clients.OmronCxComponentPlcClient._factory
private

factory 값을 보관합니다.

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

다음에 의해서 참조됨 : ConnectCoreAsync(), OmronCxComponentPlcClient().

◆ _options

readonly OmronCxComponentOptions Dreamine.PLC.Omron.CxComponent.Clients.OmronCxComponentPlcClient._options
private

options 값을 보관합니다.

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

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

속성 문서화

◆ Options

OmronCxComponentOptions Dreamine.PLC.Omron.CxComponent.Clients.OmronCxComponentPlcClient.Options
get

이 클라이언트가 사용하는 CX-Compolet 옵션을 가져옵니다.

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


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