Beckhoff ADS

ADS/AMS で Beckhoff TwinCAT の PLC につなぎます。AMS の経路、ランタイムのポート、シンボルのパス、読み取り長。

Markdown で表示

Beckhoff ADS のドライバーは、AMS の経路に載る TwinCAT の自動化のプロトコル、ADS で Beckhoff TwinCAT の PLC と話します。値は PLC のプログラムの中のシンボルのパスで指すので、入力するものは TwinCAT のプロジェクトが宣言しているそのままです。Connector の Beckhoff ADS のドライバーの下に機器を追加してください。パネルは、このプロトコルが使う項目だけを見せます。

接続

項目 意味 既定
ホスト PLC の IP アドレス。その AMS ネット ID は、このアドレスから {ip}.1.1 として導かれます。
ポート 相手のランタイムの AMS のポート。0 は 851、つまり TwinCAT 3 の PLC ランタイム 1 を使います。それ以降の TwinCAT 3 のランタイムは、そこから順に上がります(852、853、…)。 0
ローカル IP(AMS) このステーション自身の IP アドレスで、そこから AMS ネット ID が {ip}.1.1 として導かれます。PLC に設定した AMS の経路と一致している必要があります。空のままにするとホストの値が使い回されますが、それは両端が同じアドレスを共有するときしか働かないので、実際には入力してください。
読み出し周期(ms) 上書きしないタグに対する、機器全体の読み取りの周期。 1,000

機器の見出しは、組み立てられた接続先を見せます。たとえば ads://192.168.0.1:192.168.0.50:851(ローカル IP、PLC の IP、AMS のポート)です。各タグは自分の読み出し周期(ms)を持てます。タグの値が 0 のときは、機器の周期に戻ります。

ADS は、PLC が知っているステーションにしか答えません。PLC に静的な AMS の経路を追加してください(TwinCAT Engineering の SYSTEM → Routes か、TwinCAT の通知領域のアイコンから)。そのアドレスをこのステーションの IP に、AMS ネット ID をその IP に .1.1 を続けたものにし、ドライバーがローカル IP(AMS)から導くものと一致させます。経路がないと、ネットワークの経路に問題がなくても接続は失敗します。

アドレス指定

Beckhoff のタグは、タグの「取得元」のカードの 2 つの項目でアドレスを取ります。

項目 意味 受け付ける値 既定
シンボル PLC のプログラムの中の変数のシンボルのパス。必須です。 自由記述、たとえば MAIN.fValue
読み取り長(バイト、空欄なら自動) 1 回の読み取りで運ぶバイト数。空欄ならデータ型から大きさを決めます。 1 以上、または空欄 空欄

シンボルのパスは、TwinCAT が見せているそのままです。プログラムの変数は MAIN.fValue、グローバル変数リストは GVL.MachineSpeedGVL_Settings.rSetpoint のようになります。ドライバーは PLC 上でシンボルを名前から解決し、その生のバイトを読みます。自動の読み取り長は次のとおりです。

データ型 自動の読み取り長
Boolean 1 バイト
Int32 4 バイト
Float 4 バイト
String 16 バイト

16 文字より長い文字列では、宣言した大きさに届くよう読み取り長を設定してください(TwinCAT の STRING(80) には文字に 80 バイト必要です)。「取得元」のカードの読み取り専用の取得元のアドレス(バス上)の行が、編集しているそばから組み立てられたアドレスを見せます。

データ型

データ型の選択肢には、このドライバーが扱う 4 つの型が出ます。

データ型 PLC 側の対応 備考
Boolean BOOL 1 バイト。0 でなければ true
Int32 DINT PLC に合わせたリトルエンディアン
Float REAL PLC に合わせたリトルエンディアン
String STRING 読み取りの中身の、最初の NUL までの文字

バイト順は PLC 自身のリトルエンディアンで、自動的に扱われます。バイト順の選択肢はありません。文字列の読み取りは、返ってきた中身を最初の NUL の終端まで解釈するので、短い文字列の後ろの詰め物が値に混じることはありません。ほかの TwinCAT の幅(INT、LREAL、WORD、…)は出ません。そういう変数をここで読むには、PLC のプログラムで上の 4 つの型のどれかとして公開してください。

書き込み

アクセスが読み書きか書き込みのみのタグは書き込めます。書き込みは同じシンボルを解決し、その値のバイトを書きます。ブール値は 1 バイト、Int32 と Float は 4 バイトです。文字列の書き込みは、そのタグの読み取り長の全体を置きます。前に文字の UTF-8 のバイトを、その後ろに 0 を並べるので、長い文字列の上に短い文字列を書くと値が丸ごと置き換わり、古いものは何も残りません。宣言した長さに収まらない文字は、切り詰められるのではなく、長さを診断ログに残して拒否されます。新しいタグは読み取りのみから始まります。

機器検出

このドライバーの ADS には同報による機器検出がないので、Connector は機器検出のボタンを出しません。機器とそのシンボルは手で追加してください。

知っておくとよいこと

  • 最初の接続が失敗する理由としていちばん多いのは AMS の経路です。PLC 側の経路の AMS ネット ID は、ステーションの IP に .1.1 を続けたものでなければなりません。
  • シンボルは読み取りのたびに名前で解決されるので、PLC へのダウンロードでシンボルの名前が変わったり消えたりすると、そのタグは名前がふたたび一致するまで品質が悪くなります。
  • 届かない PLC があっても起動時の損はありません。機器は背後で再試行を続け、接続がつながるまでそのタグは品質が悪いものとして読まれます。