2014-11-02 9 views

답변

0

Twincat3에만 C/C++ 통합이 있습니다. 당신이 TC2를 사용하려면 당신은 구조화 된 텍스트하거나 고전 PLC 언어 중 하나가 될 내 경험 가능성이 높습니다에 당신이 우연히 발견하는 경우 [1]

또한 다른 사용 가능한 언어 중 하나를 사용해야합니다 [2]

0

특정 언어를 사용하는 것은 많은 요인에 달려 있습니다. 가 - 객체 지향 및 낮은 수준의 언어 의 다른 전형적인 특징 - - 최종 사용자 입니다 - 대상 시스템 무엇인가 다른 어떤 라이브러리/참조 사용 계획 (상호 호환성)

기본적으로 C++뿐만 아니라 ST (또는 다른 PLC 언어)에서도 코드를 프로그래밍 할 수 있습니다. 학습에 시간 절약을 제외하고는 특별한 이점이 없습니다

작고 간결한 응용 프로그램 인 경우 ST를 사용하는 것이 좋습니다. C/C++과 유사하고 신속하고 디버깅하기 쉬운 문법

7

저는 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을위한 저수준 구성 요소를 작성하는 능력은 정말 훌륭하고 잘 계획되어 있으며 우리가 일상적으로 사용하는 재사용 가능한 소프트웨어 구성 요소를 우리의 제어 시스템에 사용하는 많은 힘을 제공하지만 제어 시스템은 여전히 ​​주로 성.

+0

물론 ST는 동일한 드라이버 컨텍스트에서 실행되며, 알려진 커널 주소 나 잘못된 포인터에 쓰는 경우 시스템을 충돌시킬 수 있습니다. ST에 Windows 드라이버를 작성할 수도 있습니다. 모험심 이군요. 완전한 드라이버는 아니지만 거의 모든 기능이 ST 구현을 호출하는 작은 스텁을 제외하고는 충분합니다.) –

-1

하나 이상의 CodeSys 또는 IEC 61131 호환 제어 시스템을 사용하거나 사용하는 경우 ST는 좀 더 이식성이 뛰어나므로 C/C++와 비교하여 표준에 없으며 항상 지원됩니다 (항상 동일한 경우는 아님).

@JBC가 말했듯이 ST는 일이 잘못되었을 때 문제를 해결하기가 쉽지만 부분적으로는 컴파일 시간이 더 엄격하기 때문에 부분적으로 IEC-check 라이브러리를 작성하여 배열 범위를 벗어나는 것과 같은 것을 검사 할 수 있기 때문입니다 테스트 중에 0 오류로 나눕니다 (일반적으로 프로덕션 시스템에서 사용 가능하게 유지하는 것은 좋지 않습니다).