산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

IEC 61131-3의 데이터 로깅:Curl의 성능을 기반으로 하는 SFTP 업로드

몇 주 전에 다음과 같은 질문을 받았습니다. ESM에서 실행되는 프로그램을 사용하여 SFTP 서버에 로깅 파일을 업로드해야 합니다.
SSH 파일 전송 프로토콜(SFTP)은 신뢰할 수 있는 데이터 스트림을 통해 파일 액세스, 파일 전송 및 파일 관리를 제공하는 네트워크 프로토콜입니다. IETF(Internet Engineering Task Force)에서 안전한 파일 전송 기능을 제공하기 위해 SSH(Secure Shell protocol) 버전 2.0의 확장으로 설계했습니다.

SFTP는 PLCnext 펌웨어에 포함되어 있으므로 문제가 되지 않습니다.

1단계:구조화된 텍스트를 사용하여 로깅 파일을 만들기 시작했습니다. 이를 수행하는 방법의 예는 다음에서 찾을 수 있습니다.

https://www.plcnext-community.net/en/hn-maker-blog/438-datalogging-in-iec-61131-3-the-basic-principle.htmlhttps://www.plcnext-community.net/ ko/hn-maker-blog/447-datalogging-in-iec-61131-3-create-your-own-file-manager.html

2단계:PLC 애플리케이션을 테스트하기 위해 SFTP 서버가 필요했습니다. 랩톱에서 실행되는 가상 머신에 설치한 CrushFTP를 사용했습니다.

소프트웨어 설치 후 웹 인터페이스에 대한 관리자를 생성해야 합니다. 이 작업이 완료되면 PLC 액세스를 위한 사용자를 생성할 수 있습니다.

이 예의 경우:사용자 =PLCnext, 암호 =123456789

3단계:명령줄을 사용하여 파일을 업로드합니다.

위의 스크린샷에서 먼저 명령을 내리고 두 번째 단계에서 암호를 입력하는 것을 볼 수 있습니다. "PBCL_SysLinuxShell_1" FB를 사용하여 이 절차를 자동화하려면 한 줄 명령이 필요합니다.

이 FB는 PLCnextBase 라이브러리에서 찾을 수 있습니다. (https://www.plcnextstore.com/#/720)

따라서 파일 업로드를 수행하려면 다른 명령이 필요합니다. Curl을 살펴보겠습니다.

펌웨어 2020.6.1로 설치된 버전은 SFTP를 지원하지 않습니다. Oliver Warneke 덕분에 다른 버전의 Curl을 설치할 수 있었습니다. 우리는 완전한 설치 과정을 거치지 않을 것이지만 결과는 SFTP를 지원하는 버전입니다. 펌웨어 2021.0.0 LTS를 사용하면 다음 버전을 사용할 수 있습니다.

Curl 덕분에 이제 다른 명령을 사용할 수 있습니다.

curl -k -sS -key ~/.ssh/id_rsa -max-time 25 -connect-timeout 10 "sftp://192.168.1.50:22/test/Upload/" -user "PLCnext:12345679" -T "/ opt/plcnext/Test.pdf” –ftp-create-dirs

Shell FB에 이 명령어를 사용하면 다음 로깅 파일에서 프로그램을 확인하는 결과를 볼 수 있습니다.

/opt/plcnext/PLCnextBase.ServiceProvider.log

인수에 대한 설명:

-k, –안전하지 않음

(TLS) 기본적으로 모든 SSL 연결 curl은 안전한 것으로 확인됩니다. 이 옵션을 사용하면 안전하지 않은 것으로 간주되는 서버 연결에 대해서도 curl이 진행되고 작동할 수 있습니다. 서버의 인증서에 올바른 이름이 포함되어 있는지 확인하고 인증서 저장소를 사용하여 성공적으로 확인하여 서버 연결을 확인합니다.

-S, –show-error

-s, –silent와 함께 사용하면 curl이 실패할 경우 오류 메시지를 표시합니다.

-s, -silent

무음 또는 정숙 모드. 진행률 측정기 또는 오류 메시지를 표시하지 마십시오. Curl을 음소거합니다. 리디렉션하지 않는 한 잠재적으로 터미널/stdout에도 요청한 데이터를 계속 출력합니다. 진행률 측정기를 비활성화하지만 여전히 오류 메시지를 표시하려면 이 옵션과 함께 -S, –show-error를 사용하십시오.

-키 <키>

(TLS SSH) 개인 키 파일 이름. 이 별도의 파일에 개인 키를 제공할 수 있습니다. SSH의 경우 지정되지 않은 경우 curl은 '~/.ssh/id_rsa', '~/.ssh/id_dsa', './id_rsa', './id_dsa' 후보를 순서대로 시도합니다.

-m, –max-time <초>

전체 작업에 소요되는 최대 시간(초)입니다. 이는 느린 네트워크나 다운되는 링크로 인해 배치 작업이 몇 시간 동안 중단되는 것을 방지하는 데 유용합니다.

-connect-timeout <초>

curl의 연결을 허용하는 최대 시간(초)입니다. 이것은 연결 단계만 제한하므로 지정된 기간 내에 curl이 연결되면 계속되고 그렇지 않으면 종료됩니다.

-T, –업로드 파일 <파일>

이렇게 하면 지정된 로컬 파일이 원격 URL로 전송됩니다. 지정된 URL에 파일 부분이 없으면 curl이 로컬 파일 이름을 추가합니다.

–ftp-create-dirs

(FTP SFTP) FTP 또는 SFTP URL/작업이 현재 서버에 존재하지 않는 경로를 사용하는 경우 curl의 표준 동작은 실패합니다. 이 옵션을 사용하면 curl은 대신 누락된 디렉토리를 생성하려고 시도합니다.

참조:

https://en.wikipedia.org/wiki/SSH_File_Transfer_Protocolhttps://www.crushftp.com/index.htmlhttps://curl.se/docs/manpage.html

산업기술

  1. 명령줄 인터페이스
  2. 산업용 사물 인터넷의 힘 발휘
  3. 전력 변압기의 효율성을 결정하는 4가지 테스트
  4. 정전:부정적인 영향을 방지하는 5가지 방법
  5. 정전 대 정전:차이점은 무엇입니까?
  6. 디젤 발전기 유지 보수 빈도에 영향을 미치는 요인
  7. 예비 발전기 찾기:4가지 중요한 질문
  8. Teslas 가상 발전소:전력망 재구상
  9. 웨비나:인더스트리 4.0에서 에너지 모니터링의 힘
  10. 공장 관리에서 팀워크의 힘