라즈베리파이

Programming Raspberry Pi With CODESYS

기하 2022. 7. 19. 17:05

https://www.instructables.com/Programming-Raspberry-Pi-With-CODESYS/

 

Programming Raspberry Pi With CODESYS

Programming Raspberry Pi With CODESYS: Hello,This instructable is essentially a tutorial to get you going using the CODESYS environment to program a Raspberry Pi.This instructable is aimed not so much to hobbyists, but rather to budding control/automation

www.instructables.com

 

이것은  본질적으로 CODESYS 환경을 사용하여
Raspberry Pi를 프로그래밍하는 방법을 알려주는 자습서입니다.

이는  취미 애호가가 아니라  제어/자동화 엔지니어를 대상으로 합니다. 

CODESYS는 Python을 사용하여 GPIO, I2C 및 Pi의 카메라를 제어하는 ​​훌륭한 대안이기도 합니다.

 

CODESYS는 PLC 프로그래밍 환경이며

Bosch, Beckhoff, Festo, Eaton, Wago 등과 같은 많은 산업 자동화 회사에서 활용하고 있습니다. 

기존의 래더 로직을 사용하여 보다 현대적인 구조화된 텍스트 및

연속 흐름도(IEC 61131-3 표준)로 프로그래밍할 수 있습니다.

 

일반적으로 매우 비싸고 산업 환경을 목표로 하지만

CODESYS는 본질적으로 RPi를 £25 PLC로 바꾸는 목표를 출시했습니다.

 

이 지침서에서는 Pi의 GPIO를 제어하는 ​​방법을 보여 드리겠습니다. 

또한 EtherCat 통신 프로토콜을 통해

비교적 저렴한 Beckhoff I/O와 소형 Technosoft Servomotor를 제어하는 ​​방법과

스마트폰을 통해 IO를 제어하는 ​​웹 시각화를 만드는 방법에 대해서도 설명합니다. 

 

그것은 꽤 많이 다룰 것이지만 그것을 구조화 했으므로

당신이 원하는 것을 선택하고 선택할 수 있기를 바랍니다.

 

IEC 표준 언어를 사용하여 실제로 프로그래밍하는 방법을 깊이 있게 다루지 않을 것입니다.

이동을 위한 몇 가지 필수 사항을 넘어 하드웨어 설정에 더 중점을 둡니다. 

이에 대해 더 알고 싶다면 좋은 동영상이 있는 YouTube를 방문하는 것이 좋습니다.

 

1단계: 필요한 것:

- 라즈베리 파이(B, B+, 2 또는 3)
- 최신 Raspbian Jessie가 있는 SD 카드
- 노트북/PC에 CODESYS 설치(Windows만 해당)
- CODESYS 라즈베리 파이 타겟
- 이더넷 케이블

위와 같이 시스템을 가지고 놀고 GPIO를 제어할 수 있습니다. 

그러나 EtherCat을 사용하여 산업적 측면에 대해 무엇이든 하려면 위의 항목 외에 다음이 필요합니다.

 

- 이더넷-USB 어댑터

- 다른 이더넷 케이블

- 24V DC 전원 공급 장치(최소 2A)

- 산업용 EtherCat IO(EtherCat XML 파일 포함)

 

나는 Beckhoff IO가 익숙하기 때문에 사용했지만 다른 사람들이 호환되는 한 작동할 것입니다. 
이베이에서 저렴한 Beckhoff 장비를 찾을 수 있습니다. 
버스 커플러, EK1100 및 원하는 수의 IO(디지털, 아날로그, 인코더 카드, 스테퍼 모터 드라이버 등)가 필요합니다. 
1x 8 디지털 입력(EL1008)과 1x 8 디지털 출력(EL2008)이 있습니다. 
자세한 내용은 http://www.beckhoff.co.uk/ 를 참조하십시오 .

 

산업용 서보 모터를 제어하려면 산업용 서보 모터와 EtherCat 서보 모터 드라이버가 필요합니다.
이것들은 매우 비쌀 수 있지만 eBay에서 찾을 수 있습니다. 
직장에서 하나를 빌릴 수 있었는데 운이 좋았습니다. 그
렇지 않으면 Pi를 사용하여 제어하는 ​​방법을 배울 기회가 없었을 것입니다.

 

2단계: CODESYS 설치

3S Smart Systems는
Raspberry Pi용 CODESYS를 다운로드하고 원하는 만큼 간단하게 시작 및 실행하는 것을 간단하게 만들지 않습니다. 
그러나 계속 사용하면 사용하기 쉬운 프로그래밍 환경으로 보상을 받을 것입니다.

CoDeSys(컨트롤러 개발 시스템)를 다운로드하려면 다음 링크로 이동하십시오.

https://www.codesys.com/download

 

아래로 스크롤하여 "Codesys 사용자로 센터 다운로드"를 클릭합니다.

프로그램을 실제로 다운로드하기 전에 먼저 몇 가지 로그인 자격 증명을 얻어야 합니다. "등록" 링크(빨간색)를 클릭하면 국가를 선택하고 양식을 작성해야 합니다. 그런 다음 일부 로그인 자격 증명이 포함된 이메일을 받게 됩니다.

다운로드 센터(빨간색 등록 링크를 클릭한 위치)로 돌아가면 사용자 이름과 비밀번호를 입력한 후 최신 CODESYS V3용 exe 파일을 다운로드할 수 있습니다.

파일이 다운로드되면 exe 파일을 열고 Windows에서 차단하려고 하면 "어쨌든 실행"을 선택하십시오. 설치 마법사를 따라 진행합니다. 이 파일을 다운로드할 때 오류가 발생하고 설치 마법사가 시작되지 않는 경우가 종종 있습니다. 이 경우 exe 파일을 다시 다운로드해 보십시오.

공간 확보에 어려움을 겪고 있다면 다음 기능만 설치하면 됩니다.

- 코드시스 V3

- CODESYS 게이트웨이

- CODESYS OPC 서버

 

CODESYS를 설치했으면 이제 여기에 Raspberry Pi 패키지를 추가해야 합니다. 이렇게 하려면 먼저 CODESYS 스토어를 방문하여 패키지를 다운로드해야 합니다. 상점에는 35유로의 가격이 나와 있지만, 이는 2시간 이상 Pi에서 프로그램을 실행하려는 경우에만 해당됩니다. 그렇지 않으면 완전히 무료이며 모든 CODESYS가 업계를 대상으로 한 후에 2시간마다 Pi에 프로그램을 다시 다운로드해야 합니다...

http://store.codesys.com/codesys-control-for-raspb...

불행히도 이것을 다운로드하려면 다른 사용자 이름과 암호가 필요하므로 CODESYS Store에 등록해야 합니다. 다운로드 버튼을 클릭하면 로그인하라는 메시지가 표시되며 이 링크를 따라가면 스토어에 등록할 수 있습니다. 가입 후 다운로드 페이지로 돌아가서 다운로드를 클릭하십시오. 기억에 남는 어딘가에 이것을 다운로드하십시오. 다음 단계에서 필요합니다.

패키지가 다운로드되면 CODESYS를 열고 설치해야 합니다. 다음 단계에서 이 작업을 수행하는 방법을 설명하겠습니다.

팁 추가물어보다논평다운로드

3단계: Pi에 연결

5개 더 많은 이미지

이제 필요한 모든 것을 다운로드했습니다. 이제 CODESYS를 탐색하고 Pi에 연결할 때입니다.

시작 메뉴 또는 바탕 화면 바로 가기에서 CODESYS를 열면 "CODESYS V3.5 SP8 패치 2"(이 Instructable을 작성하기 시작할 당시 SP8 패치 2)라고 표시된 것을 열고 싶을 것입니다. 최신 CODESYS 뉴스 등을 보여주는 시작 페이지와 함께 그림과 같은 것이 제공되어야 합니다.

2단계에서 다운로드한 Raspberry Pi 패키지를 설치합니다.

- 도구 모음에서 도구 > 패키지 관리자...를 선택합니다.

- 새 창 오른쪽 상단의 "설치.."를 클릭합니다.

- 이전에 다운로드한 패키지를 찾아 선택합니다.

- 설치 마법사를 따라 전체 설치를 선택합니다.

이제 드디어 프로젝트를 시작할 준비가 되었습니다.

- 도구 모음에서 파일 > 새 프로젝트...를 선택합니다.

- 표준 프로젝트를 선택하고 이름을 지정한 다음 저장할 위치를 선택하고 확인을 클릭합니다.

- 새 창의 장치에서 "CODESYS Control for Rasperrby Pi"를 선택하고 PLC_PRG에서 "구조화된 텍스트(ST)"를 선택합니다.

화면 왼쪽에 장치 트리가 나타납니다(그림 참조). CODESYS는 기본 프로그램(PLC_PRG)과 PLC_PRG가 호출되는 하나의 작업(MainTask)을 자동으로 생성했습니다. PLC는 서로 다른 주기 시간에 작업을 실행하는 실시간 장치입니다. 작업 관리는 복잡할 수 있으므로 지금은 다루지 않겠지만 CODESYS의 Youtube 자습서에서 다룹니다. 알 필요가 있는 것은 작업이 실행될 때마다(기본적으로 20ms마다) PLC_PRG가 순환되어 입력을 읽고 새 출력을 설정한다는 것입니다. 기본적으로 대규모 연속 루프입니다. 다음 단계에서 Pi의 GPIO를 제어하는 ​​첫 번째 프로그램을 작성합니다. 그러나 먼저 Pi에 연결하는 방법.

- Pi를 부팅하고 이더넷 케이블을 사용하여 라우터(또는 PC의 이더넷 포트, 여기서 중요한 것은 Pi가 PC와 동일한 네트워크에 있다는 것)에 연결합니다. Pi용 이더넷 케이블을 사용해야 합니다. Wi-Fi에서는 작동하지 않습니다(또는 적어도 나와는 호환되지 않음).

- 모니터를 사용하거나 Advanced IP Scanner와 같은 도구를 사용하여 Pi에 부여된 IP 주소를 기록해 둡니다.

- CODESYS > 도구의 도구 모음에서 "라즈베리파이 업데이트"를 클릭합니다.

- 이것이 나타나지 않으면 "사용자 정의"를 클릭하고 도구를 확장하고 "명령 추가..."를 클릭해야 합니다. Raspberry Pi를 찾아 도구 모음 메뉴에 "RaspberryPI 업데이트"를 추가합니다.

- 로그인 정보와 Pi의 IP 주소를 입력합니다.

- Pi가 업데이트되면("Update Finished"라는 메시지와 함께 CODESYS의 화면 왼쪽 하단에 깜박이는 주황색 메시지 탭으로 알림을 받아야 합니다.)

- 장치 트리에서 장치를 더블 클릭합니다.

- 가져온 새 페이지에서 텍스트 입력 필드에 장치 이름이 표시되어야 합니다(그림 참조).

- 여기에 Pi의 IP 주소를 입력하고 Enter 키를 누릅니다.

- 이제 Pi에 연결해야 합니다.

참고: 프로그램을 실행하기 전에 새 프로젝트를 생성할 때마다 이 작업을 수행해야 합니다.

팁 추가물어보다논평다운로드

4단계: GPIO 제어

이제 첫 번째 프로그램을 위한 시간입니다. 이 Instructable을 작성한 방식으로 인해 여기서 미리 사과해야 합니다. 이 정보 중 일부는 다음 단계에서 반복될 수 있지만 그럼에도 불구하고 중요한 내용입니다.

PI의 GPIO에 연결된 LED를 깜박이는 간단한 깜박임 루틴을 만들 것입니다. LED를 연결하는 것은 사용자에게 맡기고 이에 대한 조언을 제공할 수 있는 다른 많은 Instructable을 찾을 수 있습니다. 또는 하드웨어 요소에 대해 걱정할 필요 없이 화면에서 결과를 확인하거나 핀에 멀티미터를 사용하십시오.

- CODESYS에서 새 프로젝트를 시작하고 3단계와 같은 방법으로 Pi에 연결합니다.

- 장치 트리에서 "PLC_PRG(PRG)"를 더블 클릭합니다.

- 이제 내 스크린샷의 텍스트(쉽게 하기 위해 .txt 문서를 첨부했습니다)를 올바른 창으로 복사합니다. 위쪽 창은 변수를 선언하고 아래쪽은 코드를 위한 것입니다. 이것은 본질적으로 GPIO의 핀 4를 깜박이는 두 개의 타이머를 기반으로 하는 깜박임 루틴입니다. 이제 변수 "Output1"을 GPIO에 연결해야 합니다.

- 장치 트리에서 "GPIOs_A_B(GPIOs A/B)"를 두 번 클릭합니다. - "GPIO 매개변수" 탭으로 이동합니다.

- GPIO4 행에서 GPIO를 두 번 클릭하고 "출력"을 선택하여 값 상자를 출력으로 변경하여 출력으로 정의합니다(그림 참조).

- 이제 "GPIO I/O Mapping" 탭을 선택하고 출력 선택을 확장한 다음 "Bit4"의 변수 상자(GPIO의 Pin4용)를 두 번 클릭합니다. (그림 참조) - 이제 상자에 나타난 "..."를 클릭합니다. (그림 참조)

- 이제 변수 Output1을 선택해야 합니다. 이를 찾기 위해 Application > PLC_PRG를 찾은 다음 "Output1"을 두 번 클릭합니다. 이제 해당 출력이 해당 변수에 매핑됩니다.

- 프로그램을 실행하려면:

- 키보드에서 "F11"을 누르면 코드가 빌드/컴파일됩니다. 도구 모음의 "빌드"에서도 찾을 수 있습니다.

- 코드가 컴파일되면 키보드에서 "Alt + F8"을 눌러 Pi(또는 PLC에 올바른 이름을 지정)에 로그인합니다. 도구 모음의 "온라인"에서도 찾을 수 있습니다.

- 팝업창에서 "예"를 클릭하여 프로그램을 다운로드합니다.

- 프로그램 다운로드가 완료되면 "F5" 키를 눌러 프로그램을 실행합니다. 도구 모음의 "디버그"에서도 찾을 수 있습니다.

- 이제 무슨 일이 일어나고 있는지 화면에 라이브 스트림이 표시되어야 하며, 프로그램이 지시하는 대로 코드의 변수가 True에서 False로 깜박여야 합니다. 또한 배선을 선택한 경우 LED가 깜박임을 확인해야 합니다.

- 코드를 중지하려면 키보드에서 " Shift + F8"을 누르십시오. 도구 모음의 "디버그"에서도 찾을 수 있습니다.

이때 '산업용' IO나 모터가 없다면 시각화 단계를 자유롭게 살펴보되, 산업용 IO가 아닌 이 프로젝트에 적용해 보세요.

첨부 파일

팁 추가물어보다논평다운로드

5단계: 산업용 IO 제어

3개 더 많은 이미지

이제 이 단계에서는 1단계에서 설명한 대로 추가 부품이 필요합니다.

시스템 배선:

- 산업용 IO 모듈을 함께 밉니다. (그림 참조)

- 산업용 IO 모듈을 24V 전원 공급 장치에 연결합니다. (그림 참조) (내가 잡고 있는 모든 전선은 테스트를 위해 디지털 출력을 디지털 입력으로 루핑하고 있습니다)

- IO 전원을 켭니다.

또한 Pi를 약간 다르게 연결해야 합니다. USB-이더넷 어댑터를 통해 Pi를 네트워크 연결에 연결해야 합니다. 이것은 아마도 이전과 다른 IP 주소를 제공할 것이며 "ifconfig" 명령을 사용할 때 Pi의 장치 "eth1" 옆에 나타날 것입니다.

- 하나의 이더넷 케이블을 사용하여 어댑터를 통해 Pi를 네트워크에 연결합니다.

- IO(상단 포트 사용)를 다른 이더넷 케이블을 사용하여 Pi의 이더넷 포트에 연결합니다.

- 파이의 전원을 켭니다.

IO를 연결하기 전에 이제 산업용 IO 제조업체의 장치 설명 XML 파일이 있고 이 파일이 CODESYS에 추가되었는지 확인해야 합니다.

- Beckhoff를 사용하는 경우 XML 파일은 여기에서 찾을 수 있습니다.

http://www.beckhoff.co.uk/english.asp?download/elc...

- 안전한 곳에 zip 파일을 다운로드하여 압축을 풉니다.

- CODESYS를 열고 도구 모음에서 도구 > 장치 저장소...를 선택합니다.

- "설치..."를 클릭합니다.

- 압축을 푼 폴더로 이동하여 XML 파일 "EKxxxx"를 선택하고 열기를 클릭하면 CODESYS가 자동으로 장치를 설치합니다.

- 가져온 다른 모든 장치에 대해 위의 2단계를 반복합니다. 제 경우에는 EL1008 및 EL2008의 경우 "EL1xxx" 및 "EL2xxx"를 설치합니다.

이제 CODESYS를 사용하여 산업용 IO에 연결하려면:

- CODESYS에서 새 프로젝트를 시작하고 3단계와 같은 방법으로 Pi에 연결합니다.

- 장치 트리에서 "장치"를 마우스 오른쪽 버튼으로 클릭하고 "장치 추가..."를 선택합니다.

- 새 창(그림 참조)에서 "EtherCAT 마스터"를 선택하고 "장치 추가"를 클릭합니다.

- 창을 닫습니다.

- 장치 트리에서 "EtherCat_Master"를 마우스 오른쪽 버튼으로 클릭하고 "장치 추가..."를 선택합니다.

- EtherCat > 슬레이브 > Beckhoff 자동화 시스템 커플러에서 "EK1100"을 선택하고 "장치 추가..."를 클릭합니다.

- 창을 닫습니다.

- 장치 트리에서 "EK1100"을 마우스 오른쪽 버튼으로 클릭하고 "장치 추가..."를 선택합니다.

- 첫 번째 IO 모듈(제 경우 EtherCat > Slave > Beckhoff Automation Digital Input Terminals에서 "EL1008")을 선택하고 "장치 추가..."를 클릭합니다.

- 시스템 커플러에 연결되는 순서대로 모든 추가 IO에 대해 위 단계를 반복합니다.

모든 IO를 자동으로 추가하는 데 사용할 수 있는 스캔 기능이 있지만 CODESYS가 IO를 구축하는 방법을 이해하는 것이 좋기 때문에 이 지침에서 다루지 않겠습니다.

이제 Pi의 이더넷 포트의 하드웨어(MAC) 주소를 찾아 CODESYS에게 IO를 찾을 위치를 알려야 합니다. 이렇게 하려면 pi를 모니터나 SSH에 연결하고 터미널에서 "ifconfig" 명령을 사용합니다. . eth0 포트에서 HWaddr 옆에 있는 코드를 찾고 있습니다(그림 참조).

주소가 있으면 CODESYS에 추가해야 합니다.

- 장치 트리에서 "EtherCAT_Master"를 더블 클릭합니다.

- 이전의 하드웨어 주소를 "소스 주소(MAC)" 텍스트 입력 필드에 입력합니다.

이제 모든 하드웨어가 설정되었으며 이제 산업용 IO를 제어하기 위한 첫 번째 프로그램을 만들 준비가 되었습니다.

- 장치 트리에서 "PLC_PRG(PRG)"를 더블 클릭합니다.

- 이제 내 스크린샷의 텍스트(쉽게 하기 위해 .txt 문서를 첨부했습니다)를 올바른 창으로 복사합니다. 위쪽 창은 변수를 선언하고 아래쪽은 코드를 위한 것입니다. 이것은 본질적으로 The Beckhoff IO의 출력 1 LED를 깜박이는 두 개의 타이머를 기반으로 하는 깜박이는 루틴입니다.

이제 변수 "Output1"을 Beckhoff IO에 연결해야 합니다.

- 장치 트리에서 "EL2008"을 더블 클릭합니다.

- "EtherCAT I/O 매핑" 탭으로 이동합니다.

- 첫 번째 변수 상자를 더블 클릭합니다. (그림 참조)

- 이제 상자에 나타난 "..."를 클릭합니다. (그림 참조)

- 이제 변수 Output1을 선택해야 합니다. 이를 찾기 위해 Application > PLC_PRG를 찾은 다음 "Output1"을 두 번 클릭합니다. 이제 해당 출력이 해당 변수에 매핑됩니다.

프로그램을 실행하려면:

- 키보드에서 "F11"을 누르면 코드가 빌드/컴파일됩니다. 도구 모음의 "빌드"에서도 찾을 수 있습니다.

- 코드가 컴파일되면 키보드에서 "Alt + F8"을 눌러 Pi(또는 PLC에 올바른 이름을 지정)에 로그인합니다. 도구 모음의 "온라인"에서도 찾을 수 있습니다.

- 팝업창에서 "예"를 클릭하여 프로그램을 다운로드합니다.

- 프로그램 다운로드가 완료되면 "F5" 키를 눌러 프로그램을 실행합니다. 도구 모음의 "디버그"에서도 찾을 수 있습니다.

이제 Beckhoff 터미널의 출력 1 LED가 1초 간격으로 깜박이는 것을 볼 수 있습니다. 코드가 작동하는지 보려면 장치 트리에서 "PLC_PRG"를 두 번 클릭하면 변수의 상태에 대한 라이브 피드가 표시되어야 합니다.

코드를 중지하려면 키보드에서 " Shift + F8"을 누르십시오. 도구 모음의 "디버그"에서도 찾을 수 있습니다.

EL1008에서 입력을 연결하는 것도 같은 방식으로 작동합니다. 출력 1을 입력 1에 연결하고 변수를 추가하여 변수도 거짓과 참 사이에서 전환되는지 확인하십시오.

이제 라즈베리 파이를 사용하여 산업용 등급 IO를 제어할 수 있습니다. 가능성을 생각해 보세요.

몇 가지 예에는 아날로그 입력을 사용하여 다양한 센서를 모니터링하고 PWM 출력을 사용하여 모터를 제어하는 ​​것이 포함될 수 있습니다.

문제가 발생하면 비교를 위해 내 Codesys 프로그램 파일을 Instructable에 추가했습니다.

팁 추가물어보다논평다운로드

6단계: 웹 시각화 만들기

이 장에서는 원격 브라우저(이 경우 내 안드로이드 폰의 구글 크롬)에서 PLC와 연결된 모든 IO를 제어할 수 있는 웹 시각화를 추가할 것입니다.

- 이전 단계의 기존 프로젝트에서 "PLC_PRG"에 "OutputVIS" 및 "Output2"라는 또 다른 두 개의 BOOL 변수를 생성합니다. 그리고 프로그램 맨 아래에 다음 코드 줄을 추가합니다.

출력2 := 출력VIS;

- 이전 단계에서 설명한 대로 Beckhoff IO 장치 또는 Raspberry Pi GPIO의 두 번째 출력에 "Output2"를 할당합니다.

-이제 장치 트리(왼쪽)에서 "응용 프로그램"을 마우스 오른쪽 버튼으로 클릭하고 "개체 추가..." - "시각화"로 이동합니다.

- "활성" 상자를 선택하고 팝업에서 "추가"를 클릭합니다(그림 참조).

- 새 화면이 나타납니다(그림 참조). 이것은 오른쪽에 있는 도구를 사용하여 시각화를 디자인하는 페이지입니다.

- 도구 상자에서 이미지를 작업 공간으로 끌어다 놓아 "로커 스위치"를 추가합니다. 로커 스위치는 도구 상자의 "램프/스위치/비트맵" 탭에서 찾을 수 있습니다.

- 스위치의 크기를 조정하여 약간 더 크게 만듭니다.

- 이제 로커 스위치를 클릭하면 도구 상자 화면이 속성 화면으로 변경되어야 합니다. 이 화면에서 "변수" 옆에 있는 상자를 두 번 클릭합니다(그림 참조). 그런 다음 나타나는 "..."를 클릭하십시오.

- IO 장치에 변수를 할당하는 것과 같은 방법으로 "OutputVis" 변수를 할당합니다.

- 이것은 가장 기본적인 방법으로 완성된 시각화입니다. 원하는 경우 더 많은 스위치, 버튼, 램프 등과 멋진 배경을 추가할 수 있지만 기능을 보여주기 위해 그대로 두겠습니다.

- 이제 마지막 단계에서 보여준 것과 같은 방식으로 로그인하여 프로그램을 실행하면 됩니다. 시각화도 로드되어야 합니다. 로커 스위치를 토글하면 IO의 출력이 켜지고 꺼집니다.

- 이제 휴대전화에서 이 작업을 수행합니다.

- 휴대전화가 Raspberry Pi와 동일한 네트워크에 있는지 확인합니다.

- 브라우저로 이동하여 주소 표시줄에 다음을 입력합니다.

"귀하의 IP":8080/webvisu.htm

"Your IP"를 Raspberry Pi의 IP로 대체합니다.

- 이제 우리가 만든 vis가 표시되고 버튼을 토글할 수 있고 따라서 전화기의 출력을 토글할 수 있어야 합니다. 정말 멋지군요!

문제가 발생하면 첨부된 Codesys 프로젝트 파일을 참조하여 비교하십시오.

4단계에서 생성한 프로젝트에서 GPIO를 제어하는 ​​Vis를 직접 만들어 보세요.

팁 추가물어보다논평다운로드

7단계: 서보 모터 제어

산업 등급 서보(또는 스테퍼) 및 드라이브에 액세스할 수 있을 만큼 운이 좋다면 이 단계에서는 Raspberry Pi PLC를 사용하여 이를 제어하는 ​​방법을 보여줍니다.

나는 하나의 모터와 드라이브가 포함된 Technosoft EtherCat 스타터 키트를 직장에서 구할 수 있었습니다(그림 참조).

자세한 내용은 여기에서 확인할 수 있습니다. http://www.technosoftmotion.com/en/starter-kits-an...

이 튜토리얼에서는 제조업체로부터 Codesys로 가져올 장치 설명 파일(XML)이 있는 한 모든 EtherCat 드라이브 및 모터 조합을 사용할 수 있습니다. (다른 통신 프로토콜과 함께 라즈베리 파이를 사용하여 다른 모터 및 IO를 제어할 수도 있지만 이를 수행하는 구성 및 단계는 이 지침에서 설명한 모든 것과 약간 다릅니다). 드라이브를 설정하려면 일부 독점 소프트웨어를 사용해야 할 수도 있습니다.

안전 참고 사항:

**모터 사용 시 움직이는 부품이 위험할 수 있으니 주의하십시오. 또한 모터 제조업체의 지침을 따르고 특히 고전압 드라이브의 경우 모든 배선이 올바른지 확인하십시오.**

- 첫 번째 단계는 제조업체 지침에 따라 모터와 드라이브를 연결하는 것입니다. 제 경우에는 간단했습니다. 포트의 로직과 전원에 24V를 추가하기만 하면 됩니다(그림에서 빨간색과 파란색의 두꺼운 케이블 참조). , 나머지는 모두 연결되었습니다. 다음으로 모터 드라이브의 EtherCat In 포트와 Raspberry Pi의 이더넷 포트를 이더넷 케이블로 연결해야 합니다. 이것은 5단계에서 Pi를 Industrial IO에 연결하는 것과 동일한 프로세스입니다.

IO와 모터를 모두 사용하려면 IO를 그대로 두고 모터 드라이브의 EtherCat 입력 포트에서 산업용 IO의 EtherCat 출력 포트로 이더넷 케이블을 연결하십시오. 하지만 이렇게 하면 두 장치가 모두 Codesys의 장치 트리에 추가되었는지 확인해야 합니다. EtherCat은 단순한 이더넷 케이블만 사용하여 많은 장치에서 통신을 '데이지 체인'할 수 있게 해주는 뛰어난 필드버스 통신 프로토콜입니다.

그러나 이 Instructable의 경우 모터를 자체적으로 사용할 것입니다.

- 배선이 완료되면 프로그래밍으로 넘어갈 수 있습니다.

- Step 5와 같은 과정을 거쳐 Codesys에서 새 프로젝트를 열고 EtherCat Master와 장치를 추가하되, 이번에는 장치의 모터 드라이브에 해당하는 XML 파일을 선택합니다(추가 후 내 장치 트리 그림 참조). 이것)

- 이제 이 장치에 축을 추가해야 합니다. 이것은 본질적으로 이 EtherCat 장치가 모터를 제어하고 있음을 Codesys에 알릴 것임을 의미합니다. 그리고 그 안에 모터의 매개변수가 있습니다.

- 방금 추가한 장치를 마우스 오른쪽 버튼으로 클릭하고 "SoftMotionLight CiA402 축 추가"를 클릭합니다.

이것은 Raspberry Pi PLC 아이디어가 가장 작은 금액으로 떨어지는 곳입니다. Pi에는 실시간 커널이 없으므로 실시간 기능이 없으므로(Pi의 커널로 감히 플레이할 경우 이러한 기능을 추가할 수 있음) 드라이브에 대한 통신의 전체 기능을 처리할 수 없으므로 'Light ' 버전. 실제로 이것은 프로그램에 대한 모터의 동시성이 적절한 > £500 장치인 것처럼 좋지 않음을 의미합니다. 그러나 그것이 다른 모든 것을 그렇게 잘 할 때 누가 그것을 신경 쓰겠습니까!

- 이제 장치 트리의 새 항목을 마우스 오른쪽 버튼으로 클릭하고 " 리팩토링"으로 이동한 다음 "이름 변경"으로 이동합니다. 축 이름을 "Axis1"로 바꿉니다. Codesys는 올바른 폴더를 찾았는지 확인하는 새 화면을 표시하고 "확인"을 클릭합니다.

- 장치 트리에서 "Axis1"을 두 번 클릭하면 기본 창에 새 탭이 열립니다. 여기에서 회전 수를 선택하여 시스템의 축을 보정해야 합니다. 예를 들어 제가 가지고 있는 모터에는 모터 회전당 2000씩 증가하는 인코더가 있습니다. 기어박스가 없고 mm가 아닌 교대로 작업하고 싶습니다(모터에 선형 축이 있는 경우). 그래서 내 화면은 첨부된 사진처럼 보입니다.

- Codesys는 EtherCat으로 대부분의 일을 처리하므로 이제 모터를 움직이게 하려면 프로그램을 작성하고 내장된 Codesys 기능을 활용하기만 하면 됩니다.

- 이를 쉽게 하기 위해 CFC(Codesys 언어)로 작성된 이 지침에 샘플 프로그램을 업로드했습니다. POU(장치 트리의 "응용 프로그램" 아래에 있음)를 프로그램에 쉽게 복사하여 붙여넣을 수 있습니다. 모터 이동을 처리하는 "MC_Open" Codesys 라이브러리의 일부인 몇 가지 간단한 내장 함수를 사용했는데, 어떤 모터를 얼마나 멀리, 얼마나 빨리 움직이고 싶은지 함수에 알려야 합니다.

- 5단계에서 설명한 대로 프로그램을 다운로드하고 실행 모드에 들어갔을 때. 모터를 이동하려면 "Motor_Control" POU를 열어야 합니다. 이제 "Distance", "Velocity" 및 "Accel" 변수를 클릭해야 합니다. "(그림 참조)를 차례로 입력하고 숫자(예: 60, 60, 100)를 입력합니다. 100revs/s/s의 가속으로 60회전 및 60revs/min을 수행합니다. 이제 파란색 변수 옆에 "True"가 표시될 때까지 "Power_Enable" 변수를 클릭합니다. 이제 "Ctrl + F7"을 클릭하여 이 값을 PLC에 써야 합니다. 이것은 또한 우리가 변경한 다른 변수에 값을 씁니다.

- 이제 모터가 활성화되어야 합니다. 즉, 전원이 켜져 있고 위치를 유지해야 합니다.

- "MC_MoveRelative_SML"(절대값이 아닌 모터 위치의 상대 이동)을 사용하여 모터를 이동하려면 "Move_Motor_Pos" 변수를 "True"로 설정해야 합니다(위와 같은 방식으로). 모터가 움직이는 것을 보려면 이 단계를 두 번 수행해야 할 수도 있습니다. 이것은 제가 잘 이해하지 못하는 버그입니다. 모터가 회전해야 합니다.

이제 모터를 제어할 수 있습니다. 모터를 앞뒤로 회전시키는 프로그램을 작성해 보십시오. ST 언어에서도 MC_Open 기능을 사용할 수 있습니다.

팁 추가물어보다논평다운로드

8단계: 상상력을 발휘하십시오

당신이 잠들지 않고 그 모든 텍스트를 통해 여기까지 왔다면, 나는 당신에게 박수를 보냅니다. 그러나 이제 CODESYS 사용에 대한 지식으로 보상을 받거나 최소한 충분히 익숙해지고 직접 사용하는 아이디어에 매료되어야 합니다. 환경이 마음에 든다면 취미 활동 요소와 산업 요소 모두에서 그것을 사용하여 무엇을 할 수 있는지 확인하는 것이 좋습니다.

다른 도움이 필요한 경우 아래의 좋은 링크를 참조하십시오.

이 instructable의 성공에 따라 다른 RPi 주변 장치와 더 많은 산업 응용 프로그램 및 프로그래밍에 중점을 두어 더 많은 것을 얻는 것을 목표로 할 것입니다