chore: PLC 모드 3비트(M70501/2/3) 실사용 여부 진단계측 로그 추가
배경: 2026-08-12 현장 로그에 PLC_AUTO_REQ / PLC_MANUAL_REQ 를 직접 찍는 흔적이 없어,
PLC 가 REQ 를 준 것인지 PC 가 자체 버튼으로 움직인 것인지 사후 판별이 불가능했다.
기존 rising edge 분기는 ON 전이만 찍으므로 OFF 전이·상시 ON 여부도 알 수 없다.
추가:
- CheckPLCCommand 진입부에 M70501(AUTO_STATUS) / M70502(AUTO_REQ) / M70503(MANUAL_REQ)
의 ON/OFF 양방향 전이 로그. ChangeChecker 키를 ON/OFF 2개로 분리해 잡는다.
"AUTO/MANUAL 동시 ON -> return" 가드보다 앞에 두어 동시 ON 구간도 남긴다.
- EVENT_AUTO_RUN_START_REQUEST / STOP_REQUEST 발행 지점에 발행 사실 로그 2줄.
변화가 없으면 한 줄도 남지 않으므로 100ms 주기여도 로그 폭주는 없다.
원복: "[진단계측 2026-08-13]" region 통째로 삭제 + rising edge 분기의 Log.W 2줄 삭제.
PLC 측 회신(REQ 선행 문제 확인요청 3문항)으로 판정이 끝나면 제거할 것.
This commit is contained in:
parent
5be34e612e
commit
5799872867
@ -94,6 +94,27 @@ namespace WeldingCommon.Devices
|
|||||||
var isAutoRequest = ReadBit(eCommonBitInput.PLC_AUTO_REQ).data;
|
var isAutoRequest = ReadBit(eCommonBitInput.PLC_AUTO_REQ).data;
|
||||||
var isManualRequest = ReadBit(eCommonBitInput.PLC_MANUAL_REQ).data;
|
var isManualRequest = ReadBit(eCommonBitInput.PLC_MANUAL_REQ).data;
|
||||||
|
|
||||||
|
#region [진단계측 2026-08-13] 모드 3비트 상태 전이 로그 (원복: 이 region 통째로 삭제)
|
||||||
|
// 목적: PLC 가 M70501(AUTO_STATUS)/M70502(AUTO_REQ)/M70503(MANUAL_REQ) 를 실제로 쓰는지 확정.
|
||||||
|
// · 아래 rising edge 분기는 ON 전이만 찍으므로 OFF 전이·상시 ON 여부를 알 수 없다.
|
||||||
|
// · ChangeChecker 는 "MonitoringValue 로 바뀐 순간"만 true 라, ON/OFF 를 키 2개로 나눠 잡는다.
|
||||||
|
// · 변화가 없으면 한 줄도 남지 않는다(100ms 주기여도 로그 폭주 없음).
|
||||||
|
// 주의: 이 블록은 아래 "AUTO/MANUAL 동시 ON → return" 가드보다 앞에 둔다. 동시 ON 구간도 봐야 한다.
|
||||||
|
var isAutoStatus = ReadBit(eCommonBitInput.PLC_AUTO_STATUS).data;
|
||||||
|
if (ChangeChecker.IsChangedBoolMonitoring("DiagAutoStatusOn", isAutoStatus, MonitoringValue: true))
|
||||||
|
Log.W("[진단계측] M70501 PLC_AUTO_STATUS OFF→ON");
|
||||||
|
if (ChangeChecker.IsChangedBoolMonitoring("DiagAutoStatusOff", isAutoStatus, MonitoringValue: false))
|
||||||
|
Log.W("[진단계측] M70501 PLC_AUTO_STATUS ON→OFF");
|
||||||
|
if (ChangeChecker.IsChangedBoolMonitoring("DiagAutoReqOn", isAutoRequest, MonitoringValue: true))
|
||||||
|
Log.W("[진단계측] M70502 PLC_AUTO_REQ OFF→ON");
|
||||||
|
if (ChangeChecker.IsChangedBoolMonitoring("DiagAutoReqOff", isAutoRequest, MonitoringValue: false))
|
||||||
|
Log.W("[진단계측] M70502 PLC_AUTO_REQ ON→OFF");
|
||||||
|
if (ChangeChecker.IsChangedBoolMonitoring("DiagManualReqOn", isManualRequest, MonitoringValue: true))
|
||||||
|
Log.W("[진단계측] M70503 PLC_MANUAL_REQ OFF→ON");
|
||||||
|
if (ChangeChecker.IsChangedBoolMonitoring("DiagManualReqOff", isManualRequest, MonitoringValue: false))
|
||||||
|
Log.W("[진단계측] M70503 PLC_MANUAL_REQ ON→OFF");
|
||||||
|
#endregion
|
||||||
|
|
||||||
if (isAutoRequest && isManualRequest) {
|
if (isAutoRequest && isManualRequest) {
|
||||||
Log.I("PLC 에서 Auto Run Start 와 Manual 전환 신호가 동시에 들어왔습니다. 신호를 무시합니다.");
|
Log.I("PLC 에서 Auto Run Start 와 Manual 전환 신호가 동시에 들어왔습니다. 신호를 무시합니다.");
|
||||||
return;
|
return;
|
||||||
@ -102,12 +123,17 @@ namespace WeldingCommon.Devices
|
|||||||
#region PLC 신호중에 Command 신호 들어온 것에 대한 처리. rising edge 인 경우에만 반응하도록 코딩할 것
|
#region PLC 신호중에 Command 신호 들어온 것에 대한 처리. rising edge 인 경우에만 반응하도록 코딩할 것
|
||||||
|
|
||||||
if (ChangeChecker.IsChangedBoolMonitoring("MainSeqStart", isAutoRequest, MonitoringValue: true)) {
|
if (ChangeChecker.IsChangedBoolMonitoring("MainSeqStart", isAutoRequest, MonitoringValue: true)) {
|
||||||
|
// [진단계측 2026-08-13] PLC_AUTO_REQ / PLC_MANUAL_REQ 실사용 여부 확인용. 원복: 이 Log 두 줄만 삭제.
|
||||||
|
// 배경: 2026-08-12 현장 로그에 이 두 비트를 직접 찍는 흔적이 없어, PLC 가 REQ 를 주는지
|
||||||
|
// PC 가 자체 버튼으로 움직였는지 사후 판별이 불가능했다.
|
||||||
|
Log.W("[진단계측] PLC_AUTO_REQ rising edge → EVENT_AUTO_RUN_START_REQUEST 발행");
|
||||||
EventPublisher.Publish(new EventMessage("PLC", CommonEventIds.EVENT_AUTO_RUN_START_REQUEST));
|
EventPublisher.Publish(new EventMessage("PLC", CommonEventIds.EVENT_AUTO_RUN_START_REQUEST));
|
||||||
}
|
}
|
||||||
|
|
||||||
//260512 잠시 주석처리
|
//260512 잠시 주석처리
|
||||||
if (ChangeChecker.IsChangedBoolMonitoring("MainSeqStop", isManualRequest, MonitoringValue: true))
|
if (ChangeChecker.IsChangedBoolMonitoring("MainSeqStop", isManualRequest, MonitoringValue: true))
|
||||||
{
|
{
|
||||||
|
Log.W("[진단계측] PLC_MANUAL_REQ rising edge → EVENT_AUTO_RUN_STOP_REQUEST 발행");
|
||||||
EventPublisher.Publish(new EventMessage("PLC", CommonEventIds.EVENT_AUTO_RUN_STOP_REQUEST));
|
EventPublisher.Publish(new EventMessage("PLC", CommonEventIds.EVENT_AUTO_RUN_STOP_REQUEST));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user