メインコンテンツまでスキップ

Beckhoff TwinCAT/ADS

ADS (Automation Device Specification) は、ドイツ Beckhoff の TwinCAT ランタイムが使用する通信規約です。TwinCAT 2 / 3 が動作する産業用 PC (IPC) と EtherCAT マスタ環境で主に使われます。

自動車ライン / 半導体 / 風力 / モーションコントロールなど PC ベースの制御環境であれば、ほぼ間違いなく ADS です。


登録フォームの入力値

入力欄何を記入するか
IP アドレスTwinCAT が動作する IPC の IP192.168.0.80
ポートADS TCP ポート48898 (標準 / 変更は非推奨)
Target AMS NetId (target-netid)対象 IPC の AMS NetId — 空欄にすると IP주소.1.1 から自動生成192.168.0.80.1.1
Target AMS ポート (target-port)TwinCAT ランタイムポート851 (TwinCAT 3 PLC) / 801 (TwinCAT 2 PLC1)

その他のオプション: source-netid / source-port (ゲートウェイ側の AMS 識別子 — デフォルト 32905)、 connect-timeout / read-timeout (ms、デフォルト 3000)。旧オプションキー表記 (ams-net-id / ams-port / target-ams-net-id / timeout-request) は廃止されました。

AmsNetId の形式

a.b.c.d.1.1 の形で 6 オクテットです。通常は IPC の IP アドレスの後ろに .1.1 を付けた値ですが、TwinCAT System Manager に表示された NetId が正解 です。確認場所はシステムトレイの TwinCAT アイコン → Properties → AMS NetId。

Route の登録 (必須)

ADS は双方が相手の NetId を把握していないと通信できません。ゲートウェイが PLC を初めて呼び出すと、PLC 側で Add Route Dialog が表示されるか、自動的に拒否されます。TwinCAT System Manager → RoutesAdd でゲートウェイの IP / NetId を追加し、TwinCAT ライセンスが valid であることを確認してください。

ライセンス期限切れ時は通信拒否

TwinCAT 3 では 30 日間の評価版が期限切れになると ADS 応答が停止します。License Manager でライセンス状態をまず点検してください。


タグの PLC アドレス表記

ADS は 2 種類のアクセス方式に対応します。

1. メモリ領域の直接指定 (Indexed)

表記意味
M0:4メモリ領域 (M%) offset 0、4 byte
I0:2入力領域 offset 0、2 byte
Q0:2出力領域 offset 0、2 byte

<area>:<offset>:<size> 形式。size は byte 単位です。

2. シンボリック (Symbolic)

表記意味
MAIN.fCounterMAIN プログラムの fCounter 変数
MAIN.fCounter:REALデータ型を明示 (32-bit 実数)
GVL.bRunning:BOOLGlobal Variable List の bRunning

シンボリック表記を使うには、PLC 側に TPY (TwinCAT 2) または シンボルのダウンロード (TwinCAT 3 → Build → Activate Configuration) が実施されている必要があります。


データ形式のマッチング

PLC の値データ形式形式補助PLC アドレス例
BOOLBoolean(空欄)GVL.bRunning:BOOL
BYTE / SINTIntegerBMAIN.bByte:BYTE
INT (16-bit)Integer(空欄)MAIN.nCount:INT
DINT (32-bit)IntegerDWMAIN.nTotal:DINT
REAL (32-bit 実数)FloatREALMAIN.fTemp:REAL
LREAL (64-bit 実数)DoubleLREALMAIN.fPos:LREAL
STRING(80)StringSTR[80]MAIN.sName:STRING

よくある問題と解決

症状 / メッセージ考えられる原因解決
"No route to host"Route が未登録TwinCAT System Manager → Routes でゲートウェイを追加
"Target port not found"AmsPort がシリーズと不一致TC2 = 801、TC3 = 851 を再確認
"Symbol not found"シンボルのダウンロード未実行TwinCAT 3 で Activate Configuration を実行後に再試行
すべての値が 0TwinCAT が RUN ではなく STOP / CONFIG モードSystem Manager で RUN に切り替え
ライセンスエラー評価版の期限切れLicense Manager でライセンスを更新

よく使う例

タグ名PLC アドレスデータ形式形式補助
運転中フラグGVL.bRunning:BOOLBoolean(空欄)
カウンタMAIN.nCount:DINTIntegerDW
温度MAIN.fTemp:REALFloatREAL
バッチ名MAIN.sBatch:STRINGStringSTR[80]

より詳しい例 / 自動登録

高度な設定 — REST API の ADS 例を参照してください。