TwinCAT 3 C/C++の基礎

TwinCAT 3 – C/C++

TwinCAT3 におけるC/C++言語利用の特長

  • C/C++言語を習得している技術者はPC制御への移行が容易

  • TwinCAT PLCやMATLAB/Simulinkで開発した機能モジュールとの連携が容易

  • EtherCATデバイスとの連携が容易

  • 定周期(cyclic)タスクとジョブ(job)タスクを利用可能

  • C/C++のサンプルコードを無償利用可能(ホームページからダウンロード)

▶︎ Windowsユーザアプリケーションとの通信(ADS)

▶︎ モジュール間通信

▶︎ ファイル IO…


PLCを使わない開発者の方々にもおすすめです

各種信号処理、ロボット制御、計測・解析など



TwinCAT 3 C/C++開発環境(XAE)

1. Microsoft OS (Windows 7 またはWindow10)、x86またはx64プラットフォームを使用してください

2. Microsoft Visual Studio 2017あるいは2019の製品版をインストールしてください

 - Visual Studio Express や Visual Studio Communityでの動作は保証されません *

 - 英語環境での使用を推奨します

3. TwinCAT 3最新版をwebから取得し、インストールしてください

  (ダウンロード元: https://www.beckhoff.com/en-en/support/download-finder/software-and-tools/)

4. 実行環境XARが64bit OSの場合は、実行用の署名を設定してください

 →テスト用署名(開発-評価時)/ベッコフまたは認証機関から取得した署名(リリース時)を設定します

 (手順:https://infosys.beckhoff.com/content/1033/tc3_c/110691083.html)


※その他詳細については、TC3 C++マニュアル TC1300_C_EN.pdf のChapter 5をご参照ください

*: Visual Studio Communityには利用時の制約があります。マイクロソフト社のソフトウェアライセンス条項をご確認ください。

  ベッコフとしてサポート可能なのは、Visual Studioの製品版をお使いの場合のみです





TwinCAT3開発環境をインストールする際に表示される下記ダイアログでは、

使用するVisual Studioバージョンの

・ Integrate TwinCAT

・ Activate TC Settings

の両方にチェックを入れて次に進んでください。


TwinCAT 3 C/C++実行環境(XAR)

  • Beckhoff製 Industrial PC(IPC)またはEmbedded PC(EPC)をご使用ください

  • TwinCAT実行環境(XAR)をインストールしてください

  • 継続使用するには、下記いずれかのランタイムライセンスをご購入の上、設定して下さい

TC 1300 : TwinCAT 3 C++

TC 1320 : TwinCAT 3 C++/Matlab

TC 1210 : TwinCAT 3 PLC/C++

TC 1220 : TwinCAT 3 PLC/C++/Matlab


カーネルモード (Kernel Mode)

C/C++使用時の制限事項(参考)

  • Win32 APIは使用できません

  • Windows kernel mode APIを直接使用しないでください。代わりにTwinCAT SDKが提供されます

  • ユーザーモードライブラリ(DLL)は使用できません

  • 動的に確保可能なメモリ容量はルータメモリで制限されます(設定で容量変更可能)

  • C++ Runtime Library (CRT)には一部のみ対応しています (memcpy, strcatなど)

対応分はC:\TwinCAT\3.1\sdk\Include\RtlR0.hを参照してご確認ください

  • C++例外には非対応ですが、代替手段が用意されています

   https://infosys.beckhoff.com/content/1033/tc3_c/897005195.html

  • Standard Template Library (STL)には一部のみ対応しています

https://infosys.beckhoff.com/content/1033/tc3_c/1298172427.html

  • dynamic_castには非対応です

  • 浮動小数点演算は可能ですが、標準SDKが提供する関数ではなく、TwinCAT SDKを使用してください

関数一覧は以下に記載されています:

https://infosys.beckhoff.com/content/1033/tc3_c/110751243.html

例. Math.hのsin(), cos()関数の代わりにTcMath.hをincludeし、sin_(), cos_()を使用してください



※その他、詳細については電子マニュアルや下記URL記載の内容をご確認ください。

https://infosys.beckhoff.com/content/1033/tc3_c/674760331.html



TwinCAT3 C/C++ メモリ管理

  • 独自のメモリ管理機能により、Windowsが提供する非ページプールから実行用メモリを取得します

  • オブジェクト生成やメモリ確保は、周期タスク実行前に完了する実装を推奨します

(リアルタイム性に影響)