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

더 자세히 ...

Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol에 대한 협력 다이어그램:

Public 멤버 함수

 MitsubishiMcBinary3ESimulatorProtocol (InMemoryPlcMemory memory, MitsubishiMcSimulatorServerOptions options)
byte[] Execute (ReadOnlySpan< byte > requestFrame)

이벤트

EventHandler< string >? StatusChanged

Private 멤버 함수

byte[] ExecuteRead (McRequest request)
byte[] ExecuteWrite (McRequest request)
void ApplyAutoWordResponse (McRequest request, IReadOnlyList< short > values)

정적 Private 멤버 함수

static bool TryParseRequest (ReadOnlySpan< byte > frame, out McRequest request, out string? errorMessage)
static byte[] BuildErrorResponse (ReadOnlySpan< byte > requestFrame, ushort endCode)
static byte[] BuildResponse (IReadOnlyList< byte > requestHeader, ushort endCode, IReadOnlyList< byte > data)
static byte[] PackBits (IReadOnlyList< bool > values)
static bool[] UnpackBits (ReadOnlySpan< byte > data, int count)
static ushort ReadUInt16LittleEndian (ReadOnlySpan< byte > buffer, int offset)
static int ReadUInt24LittleEndian (ReadOnlySpan< byte > buffer, int offset)
static bool IsSupportedDeviceCode (byte deviceCode)
static PlcDeviceType ToDeviceType (byte deviceCode)

Private 속성

readonly InMemoryPlcMemory _memory
readonly MitsubishiMcSimulatorServerOptions _options
readonly record struct McRequest (byte[] Header, ushort Command, ushort SubCommand, int DeviceOffset, byte DeviceCode, int Points, byte[] Data)

정적 Private 속성

const ushort RequestSubHeader = 0x5000
const ushort ResponseSubHeader = 0xD000

상세한 설명

읽기·쓰기 테스트용 최소 Mitsubishi MC Binary 3E 시뮬레이션을 실행합니다.

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

생성자 & 소멸자 문서화

◆ MitsubishiMcBinary3ESimulatorProtocol()

Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol.MitsubishiMcBinary3ESimulatorProtocol ( InMemoryPlcMemory memory,
MitsubishiMcSimulatorServerOptions options )
inline

공유 PLC 메모리와 옵션으로 시뮬레이터 프로토콜을 초기화합니다.

매개변수
memory공유 PLC 메모리입니다.
options시뮬레이터 옵션입니다.
예외
ArgumentNullException메모리 또는 옵션이 null인 경우 발생합니다.

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

88 {
89 _memory = memory ?? throw new ArgumentNullException(nameof(memory));
90 _options = options ?? throw new ArgumentNullException(nameof(options));
91 }

다음을 참조함 : _memory, _options.

멤버 함수 문서화

◆ ApplyAutoWordResponse()

void Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol.ApplyAutoWordResponse ( McRequest request,
IReadOnlyList< short > values )
inlineprivate

트리거 요청에 대해 증가된 자동 워드 응답을 메모리에 씁니다.

매개변수
request쓰기 요청입니다.
values쓴 값입니다.

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

301 {
302 if (!_options.EnableAutoWordResponse || values.Count != 1)
303 {
304 return;
305 }
306
307 if (request.DeviceCode != _options.AutoResponseTriggerDeviceCode ||
308 request.DeviceOffset != _options.AutoResponseTriggerOffset)
309 {
310 return;
311 }
312
313 var rawResponseValue = values[0] + _options.AutoResponseIncrement;
314 if (rawResponseValue is < short.MinValue or > short.MaxValue)
315 {
316 StatusChanged?.Invoke(this, $"MC auto response skipped: value overflow. value={rawResponseValue}");
317 return;
318 }
319
320 var responseValue = (short)rawResponseValue;
321 var responseAddress = new PlcAddress(ToDeviceType(_options.AutoResponseDeviceCode), _options.AutoResponseOffset);
322 _memory.WriteWords(responseAddress, [responseValue]);
323 StatusChanged?.Invoke(this, $"MC auto response: D{_options.AutoResponseOffset}={responseValue}");
324 }

다음을 참조함 : _memory, _options, McRequest, StatusChanged, ToDeviceType().

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

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

◆ BuildErrorResponse()

byte[] Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol.BuildErrorResponse ( ReadOnlySpan< byte > requestFrame,
ushort endCode )
inlinestaticprivate

가능한 요청 라우팅 정보를 보존해 오류 응답을 만듭니다.

매개변수
requestFrame원본 요청입니다.
endCode오류 종료 코드입니다.
반환값
오류 응답입니다.

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

441 {
442 var header = new byte[7];
443 if (requestFrame.Length >= 7)
444 {
445 requestFrame[..7].CopyTo(header);
446 }
447 else
448 {
449 header[0] = 0x00;
450 header[1] = 0x50;
451 }
452
453 return BuildResponse(header, endCode, []);
454 }

다음을 참조함 : BuildResponse().

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

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

◆ BuildResponse()

byte[] Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol.BuildResponse ( IReadOnlyList< byte > requestHeader,
ushort endCode,
IReadOnlyList< byte > data )
inlinestaticprivate

요청 라우팅 헤더, 종료 코드 및 데이터로 Binary 3E 응답을 만듭니다.

매개변수
requestHeader요청 헤더입니다.
endCode종료 코드입니다.
data응답 데이터입니다.
반환값
응답 프레임입니다.
예외
OverflowException응답 데이터 길이가 프로토콜 범위를 벗어난 경우 발생합니다.

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

500 {
501 var frame = new List<byte>(11 + data.Count);
502 MitsubishiMcEndian.WriteUInt16LittleEndian(frame, ResponseSubHeader);
503
504 frame.Add(requestHeader.Count > 2 ? requestHeader[2] : (byte)0x00);
505 frame.Add(requestHeader.Count > 3 ? requestHeader[3] : (byte)0xFF);
506 frame.Add(requestHeader.Count > 4 ? requestHeader[4] : (byte)0xFF);
507 frame.Add(requestHeader.Count > 5 ? requestHeader[5] : (byte)0x03);
508 frame.Add(requestHeader.Count > 6 ? requestHeader[6] : (byte)0x00);
509
510 var responseDataLength = checked((ushort)(data.Count + 2));
511 MitsubishiMcEndian.WriteUInt16LittleEndian(frame, responseDataLength);
512 MitsubishiMcEndian.WriteUInt16LittleEndian(frame, endCode);
513 foreach (var item in data)
514 {
515 frame.Add(item);
516 }
517
518 return frame.ToArray();
519 }

다음을 참조함 : ResponseSubHeader, Dreamine.PLC.Mitsubishi.MC.Protocol.MitsubishiMcEndian.WriteUInt16LittleEndian().

다음에 의해서 참조됨 : BuildErrorResponse(), Execute(), ExecuteRead(), ExecuteWrite().

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

◆ Execute()

byte[] Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol.Execute ( ReadOnlySpan< byte > requestFrame)
inline

Binary 3E 요청 프레임 하나를 실행하고 응답 프레임을 반환합니다.

매개변수
requestFrameMC 요청 프레임입니다.
반환값
MC 응답 프레임입니다.

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

127 {
128 if (!TryParseRequest(requestFrame, out var request, out var errorMessage))
129 {
130 StatusChanged?.Invoke(this, errorMessage ?? "Invalid MC request frame.");
131 return BuildErrorResponse(requestFrame, 0xC051);
132 }
133
134 return request.Command switch
135 {
136 (ushort)MitsubishiMcCommand.BatchRead => ExecuteRead(request),
137 (ushort)MitsubishiMcCommand.BatchWrite => ExecuteWrite(request),
138 _ => BuildResponse(request.Header, 0xC059, [])
139 };
140 }

다음을 참조함 : BuildErrorResponse(), BuildResponse(), ExecuteRead(), ExecuteWrite(), StatusChanged, TryParseRequest().

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

◆ ExecuteRead()

byte[] Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol.ExecuteRead ( McRequest request)
inlineprivate

워드 또는 비트 일괄 읽기 요청을 실행합니다.

매개변수
request구문 분석된 요청입니다.
반환값
응답 프레임입니다.

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

165 {
166 if (request.Points <= 0)
167 {
168 return BuildResponse(request.Header, 0xC051, []);
169 }
170
171 var address = new PlcAddress(ToDeviceType(request.DeviceCode), request.DeviceOffset);
172
173 if (request.SubCommand == (ushort)MitsubishiMcSubCommand.Word)
174 {
175 var readResult = _memory.ReadWords(address, request.Points);
176 if (!readResult.IsSuccess || readResult.Value is null)
177 {
178 return BuildResponse(request.Header, 0xC051, []);
179 }
180
181 var data = new List<byte>(request.Points * 2);
182 foreach (var value in readResult.Value)
183 {
184 MitsubishiMcEndian.WriteUInt16LittleEndian(data, unchecked((ushort)value));
185 }
186
187 return BuildResponse(request.Header, 0x0000, data);
188 }
189
190 if (request.SubCommand == (ushort)MitsubishiMcSubCommand.Bit)
191 {
192 var readResult = _memory.ReadBits(address, request.Points);
193 if (!readResult.IsSuccess || readResult.Value is null)
194 {
195 return BuildResponse(request.Header, 0xC051, []);
196 }
197
198 var data = PackBits(readResult.Value);
199 return BuildResponse(request.Header, 0x0000, data);
200 }
201
202 return BuildResponse(request.Header, 0xC059, []);
203 }

다음을 참조함 : _memory, BuildResponse(), McRequest, PackBits(), ToDeviceType(), Dreamine.PLC.Mitsubishi.MC.Protocol.MitsubishiMcEndian.WriteUInt16LittleEndian().

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

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

◆ ExecuteWrite()

byte[] Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol.ExecuteWrite ( McRequest request)
inlineprivate

워드 또는 비트 일괄 쓰기 요청을 실행합니다.

매개변수
request구문 분석된 요청입니다.
반환값
응답 프레임입니다.

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

228 {
229 if (request.Points <= 0)
230 {
231 return BuildResponse(request.Header, 0xC051, []);
232 }
233
234 var address = new PlcAddress(ToDeviceType(request.DeviceCode), request.DeviceOffset);
235
236 if (request.SubCommand == (ushort)MitsubishiMcSubCommand.Word)
237 {
238 var requiredLength = request.Points * 2;
239 if (request.Data.Length < requiredLength)
240 {
241 return BuildResponse(request.Header, 0xC051, []);
242 }
243
244 var values = new short[request.Points];
245 for (var i = 0; i < request.Points; i++)
246 {
247 values[i] = unchecked((short)ReadUInt16LittleEndian(request.Data, i * 2));
248 }
249
250 var writeResult = _memory.WriteWords(address, values);
251 if (!writeResult.IsSuccess)
252 {
253 return BuildResponse(request.Header, 0xC051, []);
254 }
255
256 ApplyAutoWordResponse(request, values);
257 return BuildResponse(request.Header, 0x0000, []);
258 }
259
260 if (request.SubCommand == (ushort)MitsubishiMcSubCommand.Bit)
261 {
262 var requiredLength = (request.Points + 1) / 2;
263 if (request.Data.Length < requiredLength)
264 {
265 return BuildResponse(request.Header, 0xC051, []);
266 }
267
268 var values = UnpackBits(request.Data, request.Points);
269 var writeResult = _memory.WriteBits(address, values);
270 return writeResult.IsSuccess
271 ? BuildResponse(request.Header, 0x0000, [])
272 : BuildResponse(request.Header, 0xC051, []);
273 }
274
275 return BuildResponse(request.Header, 0xC059, []);
276 }

다음을 참조함 : _memory, ApplyAutoWordResponse(), BuildResponse(), McRequest, ReadUInt16LittleEndian(), ToDeviceType(), UnpackBits().

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

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

◆ IsSupportedDeviceCode()

bool Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol.IsSupportedDeviceCode ( byte deviceCode)
inlinestaticprivate

시뮬레이터가 디바이스 코드를 지원하는지 확인합니다.

매개변수
deviceCode디바이스 코드입니다.
반환값
지원하면 true입니다.

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

700 {
701 return deviceCode is 0xA8 or 0x90 or 0x9C or 0x9D or 0xA0 or 0xB4 or 0xAF or 0xB0;
702 }

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

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

◆ PackBits()

byte[] Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol.PackBits ( IReadOnlyList< bool > values)
inlinestaticprivate

두 비트씩 상·하위 니블에 압축합니다.

매개변수
values비트 값입니다.
반환값
압축된 바이트입니다.

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

544 {
545 var bytes = new byte[(values.Count + 1) / 2];
546 for (var i = 0; i < values.Count; i++)
547 {
548 if (!values[i])
549 {
550 continue;
551 }
552
553 if (i % 2 == 0)
554 {
555 bytes[i / 2] |= 0x10;
556 }
557 else
558 {
559 bytes[i / 2] |= 0x01;
560 }
561 }
562
563 return bytes;
564 }

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

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

◆ ReadUInt16LittleEndian()

ushort Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol.ReadUInt16LittleEndian ( ReadOnlySpan< byte > buffer,
int offset )
inlinestaticprivate

리틀 엔디언 16비트 값을 읽습니다.

매개변수
buffer버퍼입니다.
offset오프셋입니다.
반환값
읽은 값입니다.

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

639 {
640 return (ushort)(buffer[offset] | (buffer[offset + 1] << 8));
641 }

다음에 의해서 참조됨 : ExecuteWrite(), TryParseRequest().

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

◆ ReadUInt24LittleEndian()

int Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol.ReadUInt24LittleEndian ( ReadOnlySpan< byte > buffer,
int offset )
inlinestaticprivate

리틀 엔디언 24비트 값을 읽습니다.

매개변수
buffer버퍼입니다.
offset오프셋입니다.
반환값
읽은 값입니다.

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

673 {
674 return buffer[offset] | (buffer[offset + 1] << 8) | (buffer[offset + 2] << 16);
675 }

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

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

◆ ToDeviceType()

PlcDeviceType Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol.ToDeviceType ( byte deviceCode)
inlinestaticprivate

MC 디바이스 코드를 공통 PLC 타입으로 변환합니다.

매개변수
deviceCode디바이스 코드입니다.
반환값
공통 디바이스 타입입니다.

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

727 {
728 return deviceCode switch
729 {
730 0xA8 => PlcDeviceType.D,
731 0x90 => PlcDeviceType.M,
732 0x9C => PlcDeviceType.X,
733 0x9D => PlcDeviceType.Y,
734 0xA0 => PlcDeviceType.B,
735 0xB4 => PlcDeviceType.W,
736 0xAF => PlcDeviceType.R,
737 0xB0 => PlcDeviceType.ZR,
738 _ => PlcDeviceType.Unknown
739 };
740 }

다음에 의해서 참조됨 : ApplyAutoWordResponse(), ExecuteRead(), ExecuteWrite().

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

◆ TryParseRequest()

bool Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol.TryParseRequest ( ReadOnlySpan< byte > frame,
out McRequest request,
out string? errorMessage )
inlinestaticprivate

Binary 3E 요청 헤더, 명령, 주소, 점 수 및 데이터를 구문 분석합니다.

매개변수
frame요청 프레임입니다.
request구문 분석된 요청입니다.
errorMessage실패 메시지입니다.
반환값
성공하면 true입니다.

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

366 {
367 request = default;
368 errorMessage = null;
369
370 if (frame.Length < 21)
371 {
372 errorMessage = $"The MC request frame is too short. Length={frame.Length}.";
373 return false;
374 }
375
376 var subHeader = ReadUInt16LittleEndian(frame, 0);
377 if (subHeader != RequestSubHeader)
378 {
379 errorMessage = $"Invalid MC request sub-header: 0x{subHeader:X4}.";
380 return false;
381 }
382
383 var requestDataLength = ReadUInt16LittleEndian(frame, 7);
384 var expectedFrameLength = 9 + requestDataLength;
385 if (frame.Length < expectedFrameLength)
386 {
387 errorMessage = $"The MC request frame is incomplete. Expected={expectedFrameLength}, Actual={frame.Length}.";
388 return false;
389 }
390
391 var header = frame[..7].ToArray();
392 var command = ReadUInt16LittleEndian(frame, 11);
393 var subCommand = ReadUInt16LittleEndian(frame, 13);
394 var deviceOffset = ReadUInt24LittleEndian(frame, 15);
395 var deviceCode = frame[18];
396 var points = ReadUInt16LittleEndian(frame, 19);
397 var dataStart = 21;
398 var dataLength = expectedFrameLength - dataStart;
399 var data = dataLength > 0 ? frame.Slice(dataStart, dataLength).ToArray() : [];
400
401 if (!IsSupportedDeviceCode(deviceCode))
402 {
403 errorMessage = $"Unsupported MC device code: 0x{deviceCode:X2}.";
404 return false;
405 }
406
407 request = new McRequest(header, command, subCommand, deviceOffset, deviceCode, points, data);
408 return true;
409 }

다음을 참조함 : IsSupportedDeviceCode(), McRequest, ReadUInt16LittleEndian(), ReadUInt24LittleEndian(), RequestSubHeader.

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

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

◆ UnpackBits()

bool[] Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol.UnpackBits ( ReadOnlySpan< byte > data,
int count )
inlinestaticprivate

니블로 압축된 데이터를 비트 배열로 풉니다.

매개변수
data압축 데이터입니다.
count풀 비트 수입니다.
반환값
비트 배열입니다.

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

596 {
597 var values = new bool[count];
598 for (var i = 0; i < count; i++)
599 {
600 var packed = data[i / 2];
601 values[i] = i % 2 == 0
602 ? (packed & 0x10) != 0
603 : (packed & 0x01) != 0;
604 }
605
606 return values;
607 }

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

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

멤버 데이터 문서화

◆ _memory

readonly InMemoryPlcMemory Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol._memory
private

memory 값을 보관합니다.

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

다음에 의해서 참조됨 : ApplyAutoWordResponse(), ExecuteRead(), ExecuteWrite(), MitsubishiMcBinary3ESimulatorProtocol().

◆ _options

readonly MitsubishiMcSimulatorServerOptions Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol._options
private

options 값을 보관합니다.

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

다음에 의해서 참조됨 : ApplyAutoWordResponse(), MitsubishiMcBinary3ESimulatorProtocol().

◆ McRequest

readonly record struct Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol.McRequest(byte[] Header, ushort Command, ushort SubCommand, int DeviceOffset, byte DeviceCode, int Points, byte[] Data)
private

구문 분석된 MC 요청 필드를 보관합니다.

매개변수
Header라우팅 헤더입니다.
Command명령입니다.
SubCommand하위 명령입니다.
DeviceOffset디바이스 오프셋입니다.
DeviceCode디바이스 코드입니다.
Points점 수입니다.
Data요청 데이터입니다.

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

다음에 의해서 참조됨 : ApplyAutoWordResponse(), ExecuteRead(), ExecuteWrite(), TryParseRequest().

◆ RequestSubHeader

const ushort Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol.RequestSubHeader = 0x5000
staticprivate

Request Sub Header 값을 보관합니다.

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

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

◆ ResponseSubHeader

const ushort Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol.ResponseSubHeader = 0xD000
staticprivate

Response Sub Header 값을 보관합니다.

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

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

이벤트 문서화

◆ StatusChanged

EventHandler<string>? Dreamine.PLC.Mitsubishi.MC.Simulation.MitsubishiMcBinary3ESimulatorProtocol.StatusChanged

시뮬레이터 진단 상태 메시지가 발생할 때 발생합니다.

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

다음에 의해서 참조됨 : ApplyAutoWordResponse(), Execute().


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