Dreamine.PLC.Wpf
Dreamine PLC 통신을 위한 WPF 모니터링 및 진단 UI 컴포넌트입니다.
이 패키지는 Dreamine PLC 패키지군의 모든 IPlcClient 구현체와 바인딩 가능한 재사용 PLC Monitor View를 제공합니다.
주요 기능
- PLC 연결 상태 표시
- 선택 가능한 Client 바인딩 흐름
- Bit Read/Write 진단
- Word Read/Write 진단
- 동작 로그 표시
- Faulted / Disconnected 상태 처리
- 재사용 가능한 WPF Monitor Control
샘플에서 검증된 Client 타입
Monitor는 모든 IPlcClient와 사용할 수 있습니다. 현재 SampleSmart에서는 다음 Client 흐름이 검증되었습니다.
- InMemory PLC Client
- Dreamine Simulator TCP Client
- Mitsubishi MC TCP Client
- Mitsubishi MC UDP Client
- Omron FINS TCP Client
- Omron FINS UDP Client
샘플 Mode 매칭 규칙
샘플은 하나의 통합 PLC Protocol 페이지를 사용합니다. 시뮬레이터 기반 테스트에서는 서버와 클라이언트 Mode가 반드시 같아야 합니다.
SimulatorTcp ↔ SimulatorTcp
McTcp ↔ McTcp
McUdp ↔ McUdp
FinsTcp ↔ FinsTcp
FinsUdp ↔ FinsUdp
Mode가 다르면 통신 실패가 정상입니다.
PC-to-PC 테스트 요구사항
두 PC 간 테스트를 진행할 때는 서버 PC의 해당 프로토콜 포트를 열어야 합니다.
예: 55000 포트 사용 시
New-NetFirewallRule -DisplayName "Dreamine PLC TCP 55000" -Direction Inbound -Protocol TCP -LocalPort 55000 -Action Allow
New-NetFirewallRule -DisplayName "Dreamine PLC UDP 55000" -Direction Inbound -Protocol UDP -LocalPort 55000 -Action Allow
PowerShell은 관리자 권한으로 실행해야 합니다. 클라이언트 PC는 일반적으로 서버 역할을 하지 않으면 인바운드 규칙이 필요 없습니다.
실제 PLC 테스트 안내
WPF Monitor는 실제 PLC Client와 연결할 수 있지만, 실제 PLC 검증은 별도로 진행해야 합니다.
실제 PLC 연결 전 확인 항목:
- PLC IP 주소와 Port
- 프로토콜 Mode
- TCP/UDP 방화벽 경로
- PLC Ethernet Module 설정
- PLC Memory 영역 매핑
- 안전한 Polling 주기
- Write 동작 안전성
실제 PLC에는 1ms Polling을 사용하지 마십시오. 모니터링은 100ms ~ 500ms, 제어 신호 Write는 이벤트 기반을 권장합니다.
패키지 범위
이 패키지는 벤더 프로토콜을 직접 구현하지 않습니다. UI 컴포넌트와 ViewModel만 제공합니다.
벤더 프로토콜 구현은 다음 패키지에 둡니다.
Dreamine.PLC.Mitsubishi.MCDreamine.PLC.Omron.Fins- 향후 벤더 패키지
라이선스
MIT License.
구조 다이어그램
classDiagram
class PlcConnectionPanel {
+IPlcClient Client
+bool IsConnected
+string StatusText
+IRelayCommand ConnectCommand
+IRelayCommand DisconnectCommand
}
class PlcAddressMonitorView {
+IPlcClient Client
+ObservableCollection~MonitorRow~ Rows
+bool IsRunning
+int RefreshMs
+AddAddress(string, PlcDataType) void
+RemoveAddress(string) void
+StartMonitoring() void
+StopMonitoring() void
}
class PlcSignalLamp {
+string Address
+IPlcClient Client
+bool Value
+Color OnColor
+Color OffColor
}
class PlcValueDisplay {
+string Address
+IPlcClient Client
+object Value
+string Format
+string Unit
}
class MonitorRow {
+string Address
+PlcDataType DataType
+object Value
+DateTime LastRead
}
UserControl <|-- PlcConnectionPanel
UserControl <|-- PlcAddressMonitorView
UserControl <|-- PlcSignalLamp
UserControl <|-- PlcValueDisplay
PlcAddressMonitorView o-- MonitorRowAPI 문서
타입
\if KO 명령 매개변수를 전달받는 구현을 제공합니다. \endif \if EN Provides an implementation that accepts the command parameter. \endif
\if KO PLC 모니터 ViewModel을 애플리케이션에 노출하는 서비스 계약을 정의합니다. \endif \if EN Defines an application-facing service contract for a PLC monitor view model. \endif
\if KO PLC 모니터 UI에 표시되는 주소 행을 나타냅니다. \endif \if EN Represents an address row displayed by PLC monitor UI surfaces. \endif
\if KO PLC 모니터 UI에 표시되는 채널 행을 나타냅니다. \endif \if EN Represents a PLC channel row displayed by monitor UI surfaces. \endif
\if KO PLC 연결 상태 값을 표시용 브러시로 변환합니다. \endif \if EN Converts PLC connection-state values to display brushes. \endif
\if KO 기본 PLC 모니터 서비스 구현을 제공합니다. \endif \if EN Provides the default PLC monitor service implementation. \endif
\if KO PlcMonitorView의 WPF 상호 작용 논리를 제공합니다. \endif \if EN Provides WPF interaction logic for PlcMonitorView. \endif
\if KO 제조사에 독립적인 PLC 모니터 ViewModel을 제공합니다. \endif \if EN Provides a vendor-neutral PLC monitor view model. \endif
\if KO PLC 모니터 작업 로그 항목을 나타냅니다. \endif \if EN Represents a PLC monitor operation-log item. \endif
DelegateCommand
\if KO 실행 및 선택적 실행 가능 조건을 사용해 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of with execution and optional can-execute delegates. \endif
execute— \if KO 명령 실행 시 호출할 대리자입니다. \endif \if EN The delegate invoked when the command executes. \endifcanExecute— \if KO 실행 가능 여부를 평가할 선택적 대리자입니다. \endif \if EN The optional delegate that evaluates whether execution is allowed. \endif\if KO 현재 매개변수로 명령을 실행할 수 있는지 확인합니다. \endif \if EN Determines whether the command can execute with the current parameter. \endif
parameter— \if KO 실행 가능 조건에 전달할 명령 매개변수입니다. \endif \if EN The command parameter passed to the can-execute predicate. \endif반환: \if KO 조건이 없거나 조건이 허용하면 입니다. \endif \if EN when no predicate exists or the predicate permits execution. \endif
\if KO 실행 가능 조건이 허용하는 경우 명령 대리자를 호출합니다. \endif \if EN Invokes the command delegate when the can-execute condition permits it. \endif
parameter— \if KO 실행 가능 조건과 실행 대리자에 전달할 매개변수입니다. \endif \if EN The parameter passed to the can-execute predicate and execution delegate. \endif\if KO 이벤트를 발생시킵니다. \endif \if EN Raises the event. \endif
\if KO can Execute 값을 보관합니다. \endif \if EN Stores the can execute value. \endif
\if KO execute 값을 보관합니다. \endif \if EN Stores the execute value. \endif
\if KO 명령의 실행 가능 상태가 변경되었음을 알릴 때 발생합니다. \endif \if EN Occurs when the command's ability to execute may have changed. \endif
IPlcMonitorService
\if KO PLC 모니터에 진단 로그 항목을 추가합니다. \endif \if EN Adds a diagnostic log entry to the PLC monitor. \endif
operation— \if KO 작업 이름입니다. \endif \if EN The operation name. \endifaddress— \if KO PLC 주소 텍스트입니다. \endif \if EN The PLC address text. \endifvalues— \if KO 작업 값 텍스트입니다. \endif \if EN The operation-values text. \endifisSuccess— \if KO 작업 성공 여부입니다. \endif \if EN Whether the operation succeeded. \endifmessage— \if KO 진단 메시지입니다. \endif \if EN The diagnostic message. \endif\if KO 모니터링할 PLC 클라이언트와 채널 이름을 교체합니다. \endif \if EN Replaces the monitored PLC client and channel name. \endif
client— \if KO 모니터링할 PLC 클라이언트입니다. \endif \if EN The PLC client to monitor. \endifchannelName— \if KO UI에 표시할 채널 이름입니다. \endif \if EN The channel name displayed in the UI. \endif\if KO 뷰에 노출되는 모니터 ViewModel을 가져옵니다. \endif \if EN Gets the monitor view model exposed to the view. \endif
PlcAddressViewItem
\if KO 필드 값이 달라진 경우 값을 갱신하고 속성 변경 이벤트를 발생시킵니다. \endif \if EN Updates a field and raises the property-change event when the value differs. \endif
field— \if KO 갱신할 필드 참조입니다. \endif \if EN A reference to the field to update. \endifvalue— \if KO 새 값입니다. \endif \if EN The new value. \endifpropertyName— \if KO 변경 이벤트에 사용할 속성 이름입니다. \endif \if EN The property name used for the change event. \endif반환: \if KO 값이 변경되었으면 입니다. \endif \if EN when the value changed. \endif
\if KO 현재 행 값을 PLC 주소로 변환합니다. \endif \if EN Converts the current row values to a PLC address. \endif
반환: \if KO 장치 형식과 오프셋을 포함한 PLC 주소입니다. \endif \if EN The PLC address containing the device type and offsets. \endif
\if KO 선택적 비트 오프셋을 가져오거나 설정합니다. 은 워드 주소를 나타냅니다. \endif \if EN Gets or sets the optional bit offset. represents a word address. \endif
\if KO PLC 장치 형식을 가져오거나 설정합니다. \endif \if EN Gets or sets the PLC device type. \endif
\if KO 사용자에게 표시할 주소 레이블을 가져오거나 설정합니다. \endif \if EN Gets or sets the user-facing address label. \endif
\if KO PLC 주소 오프셋을 가져오거나 설정합니다. \endif \if EN Gets or sets the PLC address offset. \endif
\if KO bit Offset 값을 보관합니다. \endif \if EN Stores the bit offset value. \endif
\if KO device Type 값을 보관합니다. \endif \if EN Stores the device type value. \endif
\if KO display Name 값을 보관합니다. \endif \if EN Stores the display name value. \endif
\if KO offset 값을 보관합니다. \endif \if EN Stores the offset value. \endif
\if KO 속성 값이 변경될 때 발생합니다. \endif \if EN Occurs when a property value changes. \endif
PlcChannelViewItem
\if KO 필드 값이 달라진 경우 값을 갱신하고 속성 변경 이벤트를 발생시킵니다. \endif \if EN Updates a field and raises the property-change event when the value differs. \endif
field— \if KO 갱신할 필드 참조입니다. \endif \if EN A reference to the field to update. \endifvalue— \if KO 새 값입니다. \endif \if EN The new value. \endifpropertyName— \if KO 변경 이벤트에 사용할 속성 이름입니다. \endif \if EN The property name used for the change event. \endif반환: \if KO 값이 변경되었으면 입니다. \endif \if EN when the value changed. \endif
\if KO 채널 설명을 가져오거나 설정합니다. \endif \if EN Gets or sets the channel description. \endif
\if KO 채널 표시 이름을 가져오거나 설정합니다. \endif \if EN Gets or sets the channel display name. \endif
\if KO 현재 채널 연결 상태를 가져오거나 설정합니다. \endif \if EN Gets or sets the current channel connection state. \endif
\if KO description 값을 보관합니다. \endif \if EN Stores the description value. \endif
\if KO name 값을 보관합니다. \endif \if EN Stores the name value. \endif
\if KO state 값을 보관합니다. \endif \if EN Stores the state value. \endif
\if KO 속성 값이 변경될 때 발생합니다. \endif \if EN Occurs when a property value changes. \endif
PlcConnectionStateBrushConverter
\if KO PLC 연결 상태를 해당 상태 색상의 WPF 브러시로 변환합니다. \endif \if EN Converts a PLC connection state to the WPF brush representing that state. \endif
value— \if KO 변환할 연결 상태 값입니다. \endif \if EN The connection-state value to convert. \endiftargetType— \if KO 바인딩 대상 형식이며 이 변환기에서는 사용하지 않습니다. \endif \if EN The binding target type, which this converter does not use. \endifparameter— \if KO 선택적 변환 매개변수이며 이 변환기에서는 사용하지 않습니다. \endif \if EN An optional conversion parameter, which this converter does not use. \endifculture— \if KO 변환 문화권이며 이 변환기에서는 사용하지 않습니다. \endif \if EN The conversion culture, which this converter does not use. \endif반환: \if KO 상태별 브러시이며 알 수 없는 값은 회색 브러시입니다. \endif \if EN The state-specific brush, or a gray brush for an unrecognized value. \endif
\if KO 단방향 변환기이므로 역변환하지 않고 을 반환합니다. \endif \if EN This is a one-way converter; it does not convert back and returns . \endif
value— \if KO 역변환할 값이며 사용하지 않습니다. \endif \if EN The value to convert back, which is ignored. \endiftargetType— \if KO 대상 형식이며 사용하지 않습니다. \endif \if EN The target type, which is ignored. \endifparameter— \if KO 변환 매개변수이며 사용하지 않습니다. \endif \if EN The conversion parameter, which is ignored. \endifculture— \if KO 변환 문화권이며 사용하지 않습니다. \endif \if EN The conversion culture, which is ignored. \endif반환: \if KO 항상 입니다. \endif \if EN Always . \endif
PlcMonitorService
\if KO 새 ViewModel을 사용해 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of using a new view model. \endif
\if KO 지정한 ViewModel을 사용해 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of using the specified view model. \endif
viewModel— \if KO 서비스에서 노출할 모니터 ViewModel입니다. \endif \if EN The monitor view model exposed by the service. \endif\if KO ViewModel의 작업 로그에 진단 항목을 추가합니다. \endif \if EN Adds a diagnostic entry to the view model's operation log. \endif
operation— \if KO 작업 이름입니다. \endif \if EN The operation name. \endifaddress— \if KO PLC 주소 텍스트입니다. \endif \if EN The PLC address text. \endifvalues— \if KO 작업 값 텍스트입니다. \endif \if EN The operation-values text. \endifisSuccess— \if KO 성공 여부입니다. \endif \if EN Whether the operation succeeded. \endifmessage— \if KO 진단 메시지입니다. \endif \if EN The diagnostic message. \endif\if KO 소유한 ViewModel을 비동기로 정리합니다. \endif \if EN Asynchronously disposes the owned view model. \endif
반환: \if KO ViewModel의 비동기 정리 작업입니다. \endif \if EN The view model's asynchronous disposal operation. \endif
\if KO ViewModel이 모니터링할 PLC 클라이언트를 교체합니다. \endif \if EN Replaces the PLC client monitored by the view model. \endif
client— \if KO 모니터링할 PLC 클라이언트입니다. \endif \if EN The PLC client to monitor. \endifchannelName— \if KO 표시할 채널 이름입니다. \endif \if EN The channel name to display. \endif\if KO 뷰에 노출되는 PLC 모니터 ViewModel을 가져옵니다. \endif \if EN Gets the PLC monitor view model exposed to the view. \endif
PlcMonitorView
\if KO XAML 구성 요소를 로드해 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of by loading its XAML components. \endif
InitializeComponent
PlcMonitorViewModel
\if KO 메모리 PLC 클라이언트를 사용해 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of using an in-memory PLC client. \endif
\if KO 지정한 PLC 클라이언트를 사용해 클래스의 새 인스턴스를 초기화합니다. \endif \if EN Initializes a new instance of using the specified PLC client. \endif
client— \if KO 모니터링할 PLC 클라이언트입니다. \endif \if EN The PLC client to monitor. \endifchannelName— \if KO UI에 표시할 채널 이름입니다. \endif \if EN The channel name displayed in the UI. \endif\if KO 작업 로그의 앞에 항목을 추가하고 최대 500개로 제한합니다. \endif \if EN Inserts an operation-log item at the front and limits the collection to 500 entries. \endif
operation— \if KO 작업 이름입니다. \endif \if EN The operation name. \endifaddress— \if KO PLC 주소 텍스트입니다. \endif \if EN The PLC address text. \endifvalues— \if KO 값 텍스트입니다. \endif \if EN The values text. \endifisSuccess— \if KO 작업 성공 여부입니다. \endif \if EN Whether the operation succeeded. \endifmessage— \if KO 결과 메시지입니다. \endif \if EN The result message. \endif\if KO 외부 진단 로그 항목을 PLC 모니터에 추가합니다. \endif \if EN Adds an external diagnostic log entry to the PLC monitor. \endif
operation— \if KO 작업 이름입니다. \endif \if EN The operation name. \endifaddress— \if KO PLC 주소 텍스트입니다. \endif \if EN The PLC address text. \endifvalues— \if KO 작업 값 텍스트입니다. \endif \if EN The operation-values text. \endifisSuccess— \if KO 작업 성공 여부입니다. \endif \if EN Whether the operation succeeded. \endifmessage— \if KO 진단 메시지입니다. \endif \if EN The diagnostic message. \endif\if KO 모든 작업 로그를 지우고 상태 메시지를 갱신합니다. \endif \if EN Clears all operation logs and updates the status message. \endif
\if KO 현재 PLC 클라이언트를 연결하고 상태와 로그를 갱신합니다. \endif \if EN Connects the current PLC client and updates status and logging. \endif
반환: \if KO 비동기 연결 및 UI 갱신 작업입니다. \endif \if EN A task representing asynchronous connection and UI updates. \endif
\if KO 현재 PLC 클라이언트의 연결을 해제하고 상태와 로그를 갱신합니다. \endif \if EN Disconnects the current PLC client and updates status and logging. \endif
반환: \if KO 비동기 연결 해제 및 UI 갱신 작업입니다. \endif \if EN A task representing asynchronous disconnection and UI updates. \endif
\if KO 상태 이벤트 구독을 해제하고 현재 PLC 클라이언트를 비동기로 정리합니다. \endif \if EN Unsubscribes from state events and asynchronously disposes the current PLC client. \endif
반환: \if KO 클라이언트의 비동기 정리 작업입니다. \endif \if EN The client's asynchronous disposal operation. \endif
\if KO PLC 클라이언트 상태 변경을 ViewModel의 상태 속성에 반영합니다. \endif \if EN Reflects a PLC client state change in the view model's state property. \endif
sender— \if KO 상태 이벤트를 발생시킨 클라이언트입니다. \endif \if EN The client that raised the state event. \endife— \if KO 새 PLC 연결 상태입니다. \endif \if EN The new PLC connection state. \endif\if KO 지정한 속성 이름으로 이벤트를 발생시킵니다. \endif \if EN Raises for the specified property name. \endif
propertyName— \if KO 변경된 속성 이름입니다. \endif \if EN The changed property name. \endif\if KO 단일 비트 텍스트를 부울 값으로 변환합니다. \endif \if EN Converts one bit-value token to a Boolean value. \endif
text— \if KO 0, 1 또는 부울 문자열입니다. \endif \if EN A 0, 1, or Boolean string. \endif반환: \if KO 구문 분석된 비트 값입니다. \endif \if EN The parsed bit value. \endif
\if KO UI 입력에서 비트 읽기 요청을 만들고 결과를 상태와 로그에 표시합니다. \endif \if EN Builds a bit-read request from UI input and displays its result in status and logging. \endif
반환: \if KO 비동기 비트 읽기 및 UI 갱신 작업입니다. \endif \if EN A task representing asynchronous bit reading and UI updates. \endif
\if KO UI 입력에서 워드 읽기 요청을 만들고 결과를 상태와 로그에 표시합니다. \endif \if EN Builds a word-read request from UI input and displays its result in status and logging. \endif
반환: \if KO 비동기 워드 읽기 및 UI 갱신 작업입니다. \endif \if EN A task representing asynchronous word reading and UI updates. \endif
\if KO 현재 PLC 클라이언트와 상태 이벤트 구독을 새 클라이언트로 교체합니다. \endif \if EN Replaces the current PLC client and state-event subscription with a new client. \endif
client— \if KO 새로 모니터링할 PLC 클라이언트입니다. \endif \if EN The new PLC client to monitor. \endifchannelName— \if KO 새 채널 표시 이름입니다. \endif \if EN The new channel display name. \endif\if KO 필드 값이 달라진 경우 값을 갱신하고 속성 변경 알림을 발생시킵니다. \endif \if EN Updates a field and raises property-change notification when the value differs. \endif
field— \if KO 갱신할 필드 참조입니다. \endif \if EN A reference to the field to update. \endifvalue— \if KO 새 값입니다. \endif \if EN The new value. \endifpropertyName— \if KO 알림에 사용할 속성 이름입니다. \endif \if EN The property name used for notification. \endif반환: \if KO 값이 변경되었으면 입니다. \endif \if EN when the value changed. \endif
\if KO 주소와 양수 개수 텍스트를 읽기 요청 값으로 구문 분석합니다. \endif \if EN Parses the address and positive count text into read-request values. \endif
address— \if KO 성공 시 구문 분석된 PLC 주소를 받습니다. \endif \if EN Receives the parsed PLC address on success. \endifcount— \if KO 성공 시 양수 읽기 개수를 받습니다. \endif \if EN Receives the positive read count on success. \endif반환: \if KO 두 입력이 모두 유효하면 입니다. \endif \if EN when both inputs are valid. \endif
\if KO 현재 주소 텍스트를 PLC 주소로 구문 분석하고 실패 상태를 기록합니다. \endif \if EN Parses the current address text into a PLC address and records validation failure state. \endif
address— \if KO 성공 시 구문 분석된 PLC 주소를 받습니다. \endif \if EN Receives the parsed PLC address on success. \endif반환: \if KO 주소가 유효하면 입니다. \endif \if EN when the address is valid. \endif
\if KO 쉼표 구분 비트 텍스트를 부울 배열로 구문 분석하고 오류를 로그에 기록합니다. \endif \if EN Parses comma-separated bit text into a Boolean array and logs validation errors. \endif
text— \if KO 구문 분석할 비트 값 텍스트입니다. \endif \if EN The bit-values text to parse. \endifvalues— \if KO 성공 시 구문 분석된 비트 배열을 받습니다. \endif \if EN Receives the parsed bit array on success. \endif반환: \if KO 하나 이상의 값이 유효하게 구문 분석되면 입니다. \endif \if EN when one or more values are parsed successfully. \endif
\if KO 쉼표 구분 워드 텍스트를 16비트 정수 배열로 구문 분석하고 오류를 로그에 기록합니다. \endif \if EN Parses comma-separated word text into a 16-bit integer array and logs validation errors. \endif
text— \if KO 구문 분석할 워드 값 텍스트입니다. \endif \if EN The word-values text to parse. \endifvalues— \if KO 성공 시 구문 분석된 워드 배열을 받습니다. \endif \if EN Receives the parsed word array on success. \endif반환: \if KO 하나 이상의 값이 유효하게 구문 분석되면 입니다. \endif \if EN when one or more values are parsed successfully. \endif
\if KO UI 입력의 비트 값을 구문 분석해 PLC에 쓰고 결과를 표시합니다. \endif \if EN Parses bit values from UI input, writes them to the PLC, and displays the result. \endif
반환: \if KO 비동기 비트 쓰기 및 UI 갱신 작업입니다. \endif \if EN A task representing asynchronous bit writing and UI updates. \endif
\if KO UI 입력의 워드 값을 구문 분석해 PLC에 쓰고 결과를 표시합니다. \endif \if EN Parses word values from UI input, writes them to the PLC, and displays the result. \endif
반환: \if KO 비동기 워드 쓰기 및 UI 갱신 작업입니다. \endif \if EN A task representing asynchronous word writing and UI updates. \endif
\if KO 입력된 PLC 주소 텍스트를 가져오거나 설정합니다. \endif \if EN Gets or sets the entered PLC address text. \endif
\if KO 쓸 비트 값의 쉼표 구분 텍스트를 가져오거나 설정합니다. \endif \if EN Gets or sets the comma-separated bit-values text to write. \endif
\if KO 채널 표시 이름을 가져오거나 설정합니다. \endif \if EN Gets or sets the channel display name. \endif
\if KO 작업 로그 지우기 명령을 가져옵니다. \endif \if EN Gets the operation-log clear command. \endif
\if KO PLC 연결 명령을 가져옵니다. \endif \if EN Gets the PLC connection command. \endif
\if KO 읽기 개수 입력 텍스트를 가져오거나 설정합니다. \endif \if EN Gets or sets the read-count input text. \endif
\if KO PLC 연결 해제 명령을 가져옵니다. \endif \if EN Gets the PLC disconnection command. \endif
\if KO 최신 항목이 앞에 위치하는 PLC 작업 로그를 가져옵니다. \endif \if EN Gets the PLC operation log with newest entries first. \endif
\if KO PLC 비트 읽기 명령을 가져옵니다. \endif \if EN Gets the PLC bit-read command. \endif
\if KO PLC 워드 읽기 명령을 가져옵니다. \endif \if EN Gets the PLC word-read command. \endif
\if KO 현재 PLC 연결 상태를 가져옵니다. \endif \if EN Gets the current PLC connection state. \endif
\if KO 사용자에게 표시할 상태 메시지를 가져오거나 설정합니다. \endif \if EN Gets or sets the status message displayed to the user. \endif
\if KO 쓸 워드 값의 쉼표 구분 텍스트를 가져오거나 설정합니다. \endif \if EN Gets or sets the comma-separated word-values text to write. \endif
\if KO PLC 비트 쓰기 명령을 가져옵니다. \endif \if EN Gets the PLC bit-write command. \endif
\if KO PLC 워드 쓰기 명령을 가져옵니다. \endif \if EN Gets the PLC word-write command. \endif
\if KO address Parser 값을 보관합니다. \endif \if EN Stores the address parser value. \endif
\if KO address Text 값을 보관합니다. \endif \if EN Stores the address text value. \endif
\if KO bit Values Text 값을 보관합니다. \endif \if EN Stores the bit values text value. \endif
\if KO channel Name 값을 보관합니다. \endif \if EN Stores the channel name value. \endif
\if KO client 값을 보관합니다. \endif \if EN Stores the client value. \endif
\if KO count Text 값을 보관합니다. \endif \if EN Stores the count text value. \endif
\if KO state 값을 보관합니다. \endif \if EN Stores the state value. \endif
\if KO status Message 값을 보관합니다. \endif \if EN Stores the status message value. \endif
\if KO word Values Text 값을 보관합니다. \endif \if EN Stores the word values text value. \endif
\if KO ViewModel 속성 값이 변경될 때 발생합니다. \endif \if EN Occurs when a view-model property value changes. \endif
PlcOperationLogItem
\if KO PLC 주소 텍스트를 가져오거나 설정합니다. \endif \if EN Gets or sets the PLC address text. \endif
\if KO 작업 성공 여부를 가져오거나 설정합니다. \endif \if EN Gets or sets whether the operation succeeded. \endif
\if KO 결과 메시지를 가져오거나 설정합니다. \endif \if EN Gets or sets the result message. \endif
\if KO 작업 이름을 가져오거나 설정합니다. \endif \if EN Gets or sets the operation name. \endif
\if KO 작업 시각을 가져오거나 설정합니다. \endif \if EN Gets or sets the operation timestamp. \endif
\if KO 작업 값 텍스트를 가져오거나 설정합니다. \endif \if EN Gets or sets the operation-values text. \endif