Beckhoff/TwinCAT PLC 프로그래밍에 집중하려고합니다.Beckhoff TwinCAT : 구조화 된 텍스트 대신 C++ 사용의 단점
저는 C/C++에 비교적 익숙하기 때문에 이것은 좋은 출발점이 될 것입니다. 구조화 된 텍스트 학습에 비해 단점이 있습니까?
Beckhoff/TwinCAT PLC 프로그래밍에 집중하려고합니다.Beckhoff TwinCAT : 구조화 된 텍스트 대신 C++ 사용의 단점
저는 C/C++에 비교적 익숙하기 때문에 이것은 좋은 출발점이 될 것입니다. 구조화 된 텍스트 학습에 비해 단점이 있습니까?
특정 언어를 사용하는 것은 많은 요인에 달려 있습니다. 가 - 객체 지향 및 낮은 수준의 언어 의 다른 전형적인 특징 - - 최종 사용자 입니다 - 대상 시스템 무엇인가 다른 어떤 라이브러리/참조 사용 계획 (상호 호환성)
기본적으로 C++뿐만 아니라 ST (또는 다른 PLC 언어)에서도 코드를 프로그래밍 할 수 있습니다. 학습에 시간 절약을 제외하고는 특별한 이점이 없습니다
작고 간결한 응용 프로그램 인 경우 ST를 사용하는 것이 좋습니다. C/C++과 유사하고 신속하고 디버깅하기 쉬운 문법
저는 TwinCAT 3에서 ST와 C/C++ 모두에 대한 풍부한 경험을 가지고 있습니다. TC3에서 C/C++ 언어 환경은 실수로 OS (BSOD)를 사용하고 디버깅하기가 더 어려워집니다. 이것은 TwinCAT 3에서 사용자 C/C++ 코드가 실시간 운영체제의 드라이버 공간에서 실행되기 때문입니다. 드라이버 컨텍스트는 또한 사용자가 코드를 통해 점프하지 않고 수행 할 수있는 작업이 매우 제한된다는 것을 의미합니다.
C/C++ 항목은 복잡한 알고리즘을 구현하고 지원되지 않는 하드웨어와 인터페이스하는 등 TwinCAT의 IEC 61131 PLC를 사용하여 쉽게 충족되지 않는 요구 사항을 충족시키는 것 같습니다. 개념은 필요한 기능이 C/C++로 구현되었고 제어 응용 프로그램이 ST 또는 다른 IEC 61131-3 언어로 여전히 구현되어 있으며 후자는 시스템 운영의 대부분을 처리하고 응용 프로그램을 통합하기 위해 "접착제"를 제공합니다. 전자의 기능을 더 큰 시스템으로
또한 TC3의 PLC 환경에 대한 설명서가 최고가 아니지만 괜찮습니다. C/C++ 환경의 문서보다 훨씬 뛰어납니다. 나를 틀리게하지 마라. TwinCAT 3을위한 저수준 구성 요소를 작성하는 능력은 정말 훌륭하고 잘 계획되어 있으며 우리가 일상적으로 사용하는 재사용 가능한 소프트웨어 구성 요소를 우리의 제어 시스템에 사용하는 많은 힘을 제공하지만 제어 시스템은 여전히 주로 성.
하나 이상의 CodeSys 또는 IEC 61131 호환 제어 시스템을 사용하거나 사용하는 경우 ST는 좀 더 이식성이 뛰어나므로 C/C++와 비교하여 표준에 없으며 항상 지원됩니다 (항상 동일한 경우는 아님).
@JBC가 말했듯이 ST는 일이 잘못되었을 때 문제를 해결하기가 쉽지만 부분적으로는 컴파일 시간이 더 엄격하기 때문에 부분적으로 IEC-check 라이브러리를 작성하여 배열 범위를 벗어나는 것과 같은 것을 검사 할 수 있기 때문입니다 테스트 중에 0 오류로 나눕니다 (일반적으로 프로덕션 시스템에서 사용 가능하게 유지하는 것은 좋지 않습니다).
물론 ST는 동일한 드라이버 컨텍스트에서 실행되며, 알려진 커널 주소 나 잘못된 포인터에 쓰는 경우 시스템을 충돌시킬 수 있습니다. ST에 Windows 드라이버를 작성할 수도 있습니다. 모험심 이군요. 완전한 드라이버는 아니지만 거의 모든 기능이 ST 구현을 호출하는 작은 스텁을 제외하고는 충분합니다.) –