자동화 기기용 PC 기반 제어 프로그램 개발 순서(18단계)

PC 기반 장치 제어 소프트웨어를 차례로 개발하면서 기본 개발 과정을 설명합니다.

일반적인 순서로 설명하지만 개발자가 여럿인 경우 일부 단계는 순서와 관계없이 동시에 또는 미리 개발할 수 있습니다.
다음 내용은 대략적인 순서대로만 고려하여 각 프로젝트 상황과 개발자 역량, 투입 인원에 따라 개발에 적절히 적용할 것을 권장합니다.

.

.

※ 집

– 기본 IO 라이브러리 또는 모터 라이브러리가 생성되었다고 가정합니다.

– 일반용으로 사용되는 GUI 화면은 개발을 전제로 함

.

.

.

1. 장치 구조를 알아라

장비의 구조를 이해하기 위해서는 먼저 장비 설계자와 논의가 필요하다.

이때 장비의 전체적인 동작 구조를 이해할 필요가 있다.
모든 장비는 액추에이터(모터, 실린더 등)를 이용하여 대상 물질을 가공하거나 이동시키는 기능을 해야 하므로 물질이 어떻게 움직이는지, 각 모터나 실린더가 움직임에 어떤 영향을 미치는지 이해해야 합니다.

모터 축의 수, 각 모터의 방향과 위치, 실린더의 위치와 방향, 작동 구조를 식별합니다.

또한 각 센서를 인식하여 기기 설계상 센서가 장착된 이유와 제어에 필요하지 않은 센서가 있는지 여부를 확인할 수 있다.

장치제어 PC에 장착된 카드의 종류, PC에 연결된 통신의 종류, 인터페이스의 종류를 파악합니다.

.

그러나 소프트웨어 개발자는 장비를 조립한 후 구조를 파악하고 제어가 잘 되는 개념과 컨트롤 관점에서 발생할 수 있는 문제를 해결하는 것보다 장비를 발주하는 개념 단계부터 적극적으로 참여하는 것이 좋습니다.

.

.

.

2. 제어 구조 설계 및 검토

위에서 확인된 장비 구조를 바탕으로 장비를 제어하는 ​​방법에 대한 기본 설계가 이루어집니다.

어떤 부분이 동시에 구동되는지, 소재 정보는 어떤 데이터가 필요한지, 메인 화면에 어떤 정보가 표시되어야 하는지 등을 고민하고 다른 개발자들과 의논하는 것이 좋습니다.

.

.

.

3. 프로젝트 생성

제어 개념을 이해한 후 새 프로젝트를 만듭니다.
Visual Studio를 사용하여 새 프로젝트를 만들거나 공통 요소만 남기고 제거하여 새 프로젝트를 개발할 수 있도록 기존 프로젝트를 구성합니다.

개별 기기 제어 프로젝트에는 기기와 관련된 소스만 포함하고 공유 소스는 별도의 DLL 라이브러리로 개발하는 것을 권장합니다.
제어를 위해 회사에서 일반적으로 사용하는 라이브러리 모음을 프레임워크라고도 합니다.

.

.

.

4. 기본 데이터 작업

.

기본 데이터를 생성합니다.

아이오 카드

실린더 데이터

엔진 데이터

기본 데이터는 각 회사에서 개발한 구조에서 사용하는 형식으로 작성할 수 있습니다.

데이터 없이 소스코드만으로 개발은 가능하나, 설정 데이터가 저장되지 않으면 프로그램 소스를 다시 컴파일(빌드)하고 간단한 파라미터 변경이 가능하도록 실행파일을 수정해야 하며, 하드웨어 사용시에도 동일한 실행파일 쉽게 수정되어 사용하기 어렵습니다.
데이터 파일을 기반으로 기본 컨트롤 개체를 설정할 수 있도록 프레임워크를 만들어 봅시다.

.

.

.

5. Io 실린더 엔진 리뷰

장치와 장치 PC의 전원을 켠 상태에서 io, 실린더 및 모터가 제대로 작동하는지 확인하십시오.

센서가 재료와 실린더 이동 방향을 올바르게 감지하고 센서가 올바르게 복귀하는지 확인하십시오.

모터의 구동방향, 센서상태, 이동거리를 확인합니다.

.

.

.

6. 연동 작업(체크 기능 개발)

전체 시퀀스 개발에 앞서 엔진과 실린더 간의 우발적인 충돌을 방지하기 위해 엄격한 연동 작업이 수행됩니다.

잠금장치 작업은 처음에는 엄격하게 진행하다가 나중에는 상황에 따라 차츰 해결해가며 가능한 한 작업을 진행합니다.
초기에 인터록 조건을 대략적으로 설정하면 시퀀스 작업 시 버그, 오류, 조그 모션 오류 등으로 장치가 충돌하기 쉽습니다.
손상이나 파손으로 인해 큰 손실이 발생할 수 있습니다.
또한 예상치 못한 조작으로 작업자가 다치는 사고가 발생할 수 있으므로 추후 후속작업을 안전하게 진행할 수 있도록 잠금작업에 각별한 주의를 기울여야 합니다.

.

인터록 작업에 심혈을 기울이자!

.

7. 학습 매개변수 쓰기

전체 동작 구조가 파악되면 움직일 모터마다 학습된 값을 쓴다.

GUI에서 학습값을 설정하고 모터를 움직이고 조정할 수 있는 화면을 만들어야 합니다.

그리고 GUI에서 설정한 값을 시퀀스 코드에서 사용할 수 있는 데이터 구조도 만들어야 합니다.

.

.

.

8. 시퀀스 개발

진지하게 시퀀스를 개발하고 연결합니다.

시퀀스는 동시에 작동하는 모듈 단위로 개발되며 각 모듈은 둘 이상의 스레드에서 작동하도록 개발됩니다.

시퀀스 코드는 모터, 실린더, IO 출력 등을 제어하여 재료를 이동 또는 처리하고 재료 정보와 같은 관련 데이터를 업데이트합니다.

.

일반적으로 시퀀스는 오류 처리 구조와 함께 if else 문 또는 switch case 문 구조로 개발됩니다.

Sequence를 제어하는 ​​구조나 방법은 회사마다, 개발자마다 다르기 때문에 표준화가 되지 않으면 디바이스별 제어 코드가 엉망이 될 수 있습니다.

장비 회사에서는 수석 설계자가 제어 흐름 프레임워크를 만들고 이를 공통 라이브러리로 변환하는 것이 중요합니다.

.

.

9. 기본 GUI 개발. 메인 화면

메인 화면에 표시할 정보를 정리하여 표시합니다.
일부는 흐름 제어 개발과 동시에 작동할 수 있습니다.

.

.

10. 시청 알고리즘 및 학습 화면 개발

Vision Align 또는 Inspecton 기능이 있는 기기의 경우 비전 알고리즘 개발 및 비전 티칭 화면 개발이 필요합니다.

별도의 이미지 현상기가 있고 별도의 PC나 별도의 실행 파일로 이미지 프로그램을 제어한다면 이미지 현상기는 장치 제어 프로그램과 작업 및 통신하여 결과를 받아 제어에 사용한다.

.

.

11. 시퀀스 디버깅

기본 시퀀스가 ​​일정 수준에 도달하면 IDLE RUN(DRY RUN)을 실행하여 각 모듈에 구현된 시퀀스가 ​​올바르게 동작하는지, 시퀀스 간의 연결 조건이 정상적으로 동작하는지 테스트합니다.

현재 가장 일반적인 장치 충돌은 버그 또는 오류로 인해 발생합니다.
엄격한 연동 조건은 장치 손상을 방지한다는 점에 유의해야 합니다.

.

.

12. Mes 개발 및 테스트

여러 명의 개발자가 개발에 참여하고 직원을 위한 공간이 있는 경우 다른 작업과 독립적으로 MES 개발을 시작할 수 있습니다.

먼저 MES 사양을 이해하고 기본 프로토콜 및 데이터 구조를 이해하고 시나리오에 따라 개발합니다.

각 시나리오 또는 이벤트에 따라 교환할 데이터를 처리합니다.
이 시점에서 시퀀스 개발 및 GUI 개발을 진행해야 합니다.

MES는 다음 순서로 이를 수행합니다.

– 사양 분석

– 기본 프로토콜 개발

– 개별 데이터 송수신 테스트(이벤트 등)

– 시나리오 개발

– 로컬 서버 로그, 시나리오 테스트

– 양산 서버 테스트

.

.

13. 완전 자동 테스트 및 디버깅

시퀀스 개발이 완료되면 재료를 가져와 최종 작업을 테스트합니다.

재료 입력을 시작하면 예상치 못한 센서 문제, 타이밍 문제 및 기계적 문제가 많이 발생합니다.
또한 소프트웨어 자체의 버그 수정과 소프트웨어로만 개선할 수 있는 부품도 다룹니다.

.

제어 문제를 해결하는 가장 저렴한 방법은 소프트웨어를 사용하는 것입니다.

(하지만 남용될 수 있음)

.

.

14. 수동 기능 및 편의 기능 개발

설정을 용이하게 하기 위해 가능한 한 빨리 수동 운전 기능을 설정하는 것이 좋습니다.

그리고 채용 과정을 유심히 살펴보거나 개발자를 직접 고용해 편의성을 높일 수 있는 기능을 빠르게 찾아낸다.
소프트웨어를 처음 개발하고 세팅할 때는 다른 사람에게 맡기기보다 개발자가 직접 하는 것이 가장 좋습니다.

.

개발자들 개밥 먹자

.

15. 오류 및 메시지 날짜 추가

오류 데이터는 시퀀스 작업과 동시에 정리하는 것이 좋지만 대부분 시퀀스를 실행하는 부분에 초점이 맞춰져 있기 때문에 오류 코드는 나중에 정리하게 됩니다.
시퀀스 디버깅이 완료되면 오류를 더 잘 이해할 수 있도록 오류 코드와 데이터를 정리합니다.
이때 다국어에 따라 다른 언어의 데이터가 포함되어야 한다.

시퀀스를 개발하는 동안 XMachineStudio는

동시에 ERROR 데이터도 쉽게 생성할 수 있습니다.

.

.

16. 다국어 지원 데이터 작업

위에서 설명한 오류 데이터 또는 메시지 데이터와 같은 다국어 지원을 위한 데이터를 생성합니다.

또한 GUI 화면에 대한 다국어 데이터를 생성합니다.

.

.

.

.

17. 소프트웨어 사용 설명서 작성

소프트웨어 설정 및 사용 설명서를 작성하고 필요한 경우 고객이 요구하는 언어로 번역을 요청합니다.

.

.

.

.

18. 양산지원, 버그수정, 유지보수

장비 점검, 납품 후 양산 문제 해결, 유지 보수를 지원합니다.

.