RemoteTwinCAT
前述の通り, AUTD3とTwinCATを使う場合はWindows OSと特定のネットワークアダプタが必要になる.
Windows以外のPCで開発したい場合は, RemoteTwinCAT
linkを用いてLinux/macOSから遠隔でTwinCATを操作することができる.
Install
cargo add autd3-link-twincat --features remote
target_link_libraries(<TARGET> PRIVATE autd3::link::twincat)
メインライブラリに含まれている.
メインライブラリに含まれている.
メインライブラリに含まれている.
セットアップ
RemoteTwinCAT
を使用する場合はPCを2台用意する必要がある.
この時, 片方のPCはTwinCAT
が使えるPCである必要がある.
このPCをここでは“サーバ“と呼ぶ.
一方, 開発側のPC, 即ちSDKを使用する側は特に制約はなく, サーバと同じLANに繋がっていれば良い, こちらをここでは“クライアント“と呼ぶ.
まず, サーバとAUTDデバイスを接続する.
この時使うLANのアダプタはTwinCAT
と同じく, TwinCAT対応のアダプタである必要がある.
また, サーバとクライアントを別のLANで繋ぐ.
こちらのLANアダプタはTwinCAT対応である必要はない1.
そして, サーバとクライアント間のLANのIPを確認しておく.
ここでは例えば, サーバ側が172.16.99.104
, クライアント側が172.16.99.62
だったとする.
次に, サーバでAUTD Server
を起動する.
この時, Client IP address
にクライアントのIPアドレス (この例だと172.16.99.62
) を指定する.

右側の画面に, 「Server AmsNetId」と「Client AmsNetId」が表示されるので, これをメモっておく.
NOTE: 「Server AmsNetId」の最初の4桁は必ずしもServerのIPアドレスを意味しているわけではないので注意されたい.
APIs
RemoteTwinCAT
のコンストラクタには「Server AmsNetId」を指定する.
また, server_ip
とclient_ams_net_id
でサーバーのIPアドレスとクライアントのNetIdを指定する.
これらは省略することも可能だが, 基本的には指定することを推奨する.
use autd3_link_twincat::remote::{RemoteTwinCAT, RemoteTwinCATOption};
fn main() {
let _ =
RemoteTwinCAT::new("172.16.99.111.1.1", RemoteTwinCATOption {
server_ip: "172.16.99.104".to_string(),
client_ams_net_id: "172.16.99.62.1.1".to_string(),
});
}
#include "autd3/link/twincat.hpp"
int main() {
using namespace autd3;
link::RemoteTwinCAT("172.16.99.111.1.1",
link::RemoteTwinCATOption{
.server_ip = "172.16.99.104",
.client_ams_net_id = "172.16.99.62.1.1"});
return 0; }
using AUTD3Sharp;
using AUTD3Sharp.Link;
new RemoteTwinCAT(
serverAmsNetId: "172.16.99.111.1.1",
option: new RemoteTwinCATOption
{
ServerIp = "172.16.99.104",
ClientAmsNetId = "172.16.99.62.1.1"
}
);
from pyautd3.link.twincat import RemoteTwinCAT, RemoteTwinCATOption
RemoteTwinCAT(
server_ams_net_id="172.16.99.111.1.1",
option=RemoteTwinCATOption(
server_ip="172.16.99.104",
client_ams_net_id="172.16.99.62.1.1",
),
)
ファイアウォール
TCP関係のエラーが出る場合は, ファイアウォールでADSプロトコルがブロックされている可能性がある. その場合は, ファイアウォールの設定でTCP/UDPの48898番ポートの接続を許可する.
無線LANでも可