SC1 Robot#3는 A8 Reject에 전기동을 한 장씩 내려놓는다. Robot에서 설정한 한계 매수를 넘으면 REJ_FULL을 실행하고 A8에 번들 배출 신호를 보낸다. PLC가 적재 매수를 전송하고 ToTal_Reject 카운터를 0으로 초기화하면 새 번들의 첫 장 조건이 다시 켜진다.
현재 첫 장 조건은 E급과 G급을 리젝트한다. 이번 작업안은 E급을 빼고 G급과 R급을 넣는다.
아래에 기존 RLL 원문과 그 원문을 LD로 변환한 수정 후 래더를 함께 표시한다. 그림은 L5X Ladder Studio ffd5f67으로 다시 보냈다. 번호와 상태는 그림 위쪽에 두고, SVG 안에는 넣지 않았다. 바뀌는 부분은 EQU(z_sc1_R3_Grade,3)과 EQU(z_sc1_R3_Grade,4) 비교다.
[XIC(Reject_Counter_1[0].0),XIC(Reject_Counter_2[0].0),XIC(z_reject_enable_at_bar)XIC(z_Sheet1_CV_Last_Reject),XIC(z_reject_enable_at_last_sc1)XIC(z_Vision_reject_R3),EQU(ToTal_Reject.ACC,0)[EQU(z_sc1_R3_Grade,2),EQU(z_sc1_R3_Grade,3)],XIC(Reject_Start_Cmd)]XIO(i_Reject_End)OTE(Reject_Start_Cmd);| 등급 | 현재 첫 장 처리 | 수정 후 첫 장 처리 |
|---|---|---|
| S급 | 첫 장 조건으로 리젝트하지 않는다. | 기존과 같다. |
| E급 | 첫 장이면 리젝트한다. | 첫 장 조건으로는 리젝트하지 않는다. |
| G급 | 첫 장이면 리젝트한다. | 기존과 같다. |
| R급 | 별도 R급 판정에 따라 리젝트한다. | 첫 장 조건에도 포함한다. |
Studio 5000에서 다음 경로를 연다.
Program: Robot3Routine: RejectRung: 14이 Rung에는 Tracking Reject, Vision R급, 첫 장 등급 조건과 Reject_Start_Cmd 자기유지가 병렬로 들어 있다. 그중에서 ToTal_Reject.ACC=0 뒤에 있는 등급 비교 숫자만 바꾼다.
[XIC(Reject_Counter_1[0].0),XIC(Reject_Counter_2[0].0),XIC(z_reject_enable_at_bar)XIC(z_Sheet1_CV_Last_Reject),XIC(z_reject_enable_at_last_sc1)XIC(z_Vision_reject_R3),EQU(ToTal_Reject.ACC,0)[EQU(z_sc1_R3_Grade,2),EQU(z_sc1_R3_Grade,3)],XIC(Reject_Start_Cmd)]XIO(i_Reject_End)OTE(Reject_Start_Cmd);현재 등급 번호는 다음과 같다.
| 값 | 등급 |
|---|---|
| 1 | S급이다. |
| 2 | E급이다. |
| 3 | G급이다. |
| 4 | R급이다. |
원본은 카운터가 0일 때 등급 2 또는 3을 검사하므로 E급과 G급을 첫 장으로 리젝트한다.
[XIC(Reject_Counter_1[0].0),XIC(Reject_Counter_2[0].0),XIC(z_reject_enable_at_bar)XIC(z_Sheet1_CV_Last_Reject),XIC(z_reject_enable_at_last_sc1)XIC(z_Vision_reject_R3),EQU(ToTal_Reject.ACC,0)[EQU(z_sc1_R3_Grade,3),EQU(z_sc1_R3_Grade,4)],XIC(Reject_Start_Cmd)]XIO(i_Reject_End)OTE(Reject_Start_Cmd);달라지는 부분은 한곳이다.
EQU(ToTal_Reject.ACC,0)[EQU(z_sc1_R3_Grade,2),EQU(z_sc1_R3_Grade,3)]EQU(ToTal_Reject.ACC,0)[EQU(z_sc1_R3_Grade,3),EQU(z_sc1_R3_Grade,4)]수정 후에도 E급이 무조건 통과하는 것은 아니다. 다음 신호 중 하나가 켜지면 기존 Reject 경로가 그대로 동작한다.
Reject_Counter_1[0].0에 Reject 정보가 들어온다.Reject_Counter_2[0].0에 Reject 정보가 들어온다.z_Sheet1_CV_Last_Reject에 Tracking Reject가 들어온다.z_Vision_reject_R3에 Vision R급 신호가 들어온다.Reject_Start_Cmd가 이미 켜져서 자기유지 중이다.첫 E급 통과 시험에서는 z_sc1_R3_Grade=2만 볼 것이 아니라 이 병렬 신호도 함께 확인해야 한다.
번들 배출 조건은 바뀌지 않는다. Robot#3는 전기동을 내려놓을 때 R[35:Next posn Reject]를 1씩 올린다. 이 값이 R[34:Limit Count]보다 커지면 REJ_FULL을 호출한다.
IF R[35:Next posn Reject]>R[34:Limit Count],CALL REJ_FULLREJ_FULL은 DO[101:REJECT FULL]을 1초 동안 켜고 다음 적재 위치를 1로 초기화한다. PLC는 이 신호를 i_Reject_Full로 받아 A8 완료 신호를 보내고, 적재 매수를 전송한 다음 ToTal_Reject를 초기화한다.
따라서 이번 변경은 21매 또는 현장에서 지정한 매수, Robot의 R[34:Limit Count], A8 Export와 데이터 전송을 건드리지 않는다. 카운터가 0인 첫 장에서 어떤 등급을 리젝트할지만 바꾼다.
Reject_Start_Cmd 자기유지와 i_Reject_End 완료 조건을 바꾸지 않는다.z_R3_Reject_First_Grade 기록을 바꾸지 않는다.R[34:Limit Count]를 이번 작업과 함께 바꾸지 않는다.Studio 5000 Trend에는 다음 태그를 넣는다.
ToTal_Reject.ACCz_sc1_R3_Gradez_Sheet1_CV_Last_Rejectz_Vision_reject_R3Reject_Counter_1[0].0Reject_Counter_2[0].0Reject_Start_Cmdpermit_Reject_starto_Reject_Enableo_unload_infeedi_Reject_Endi_Reject_Fullcsm1_o_Robot_Completed_to_A8csm1_o_Robot_Data_Set_to_A8csm1_Robot_R_CurrentCathodescsm1_Robot_R_NumCathodesz_R3_Reject_First_GradeRobot3 → Reject → Rung 14가 원본과 같은지 확인한다.ToTal_Reject.ACC=0을 확인한다.i_Reject_End가 한 번 들어올 때 카운터도 한 번만 증가하는지 확인한다.REJ_FULL, A8 Export, 적재 매수 전송과 카운터 초기화가 기존 순서대로 동작하는지 확인한다.첫 E급이 정상 통과하고, 첫 G급과 R급이 리젝트되며, A8 Export와 적재 매수가 이전과 같을 때 작업을 완료한 것으로 판단한다.
GitHub 계정으로 답니다. 내용은 이 저장소 Discussions에 남습니다.