ABB SDK
ABB 産業用ロボットと通信する .NET および Python アプリケーションを短時間で作成できます。IRC5 でも OmniCore でも動作します。
.NET
Python
Plug & Play
わずか数分でロボットを接続できます。ライセンス マネージャーをインストールしたり、USB キーをインストールしたりする必要はありません。ライブラリのみを参照してください。
ロボットにインストールするプラグインはありません
ロボットコントローラーによって標準として提供されるネットワークプロトコルの使用。
PCSDK ROS
30日間のトライアル
30日間無料で試してみてください、コミットメントなし、登録は必要ありません
一度支払い、永遠に使用してください
ロボット、開発者、または再配布されたソフトウェアの数に関係なく、永続的なライセンス、サブスクリプションは必要ありません
ABB SDK の機能: IRC5 と OmniCore 向けの Robot Web Services
RAPID 変数とプログラム
RAPID の変数と persistent を読み書きし、タスクの開始と停止、プログラムポインタの移動、モジュールのロードと保存を行います。AbbController robot = new AbbController();robot.Connect("192.168.0.1");// Read a RAPID variablevar counter = robot.Rws.Rapid.GetSymbolValue("RAPID/T_ROB1/MainModule/nCounter");Console.WriteLine(counter.Value);// Write it backrobot.Rws.Mastership.Request();robot.Rws.Rapid.SetSymbolValue("RAPID/T_ROB1/MainModule/nCounter", "42");robot.Rws.Mastership.Release();// Start the programrobot.Rws.Rapid.ResetProgramPointer();robot.Rws.Rapid.Start();}}Click to see the full code入力 / 出力
デジタル、アナログ、グループの各信号を一覧表示し、読み書きします。パルス出力や反転、I/O デバイスとネットワークの参照も可能です。AbbController robot = new AbbController();robot.Connect("192.168.0.1");// Read every signal of the controllerforeach (var signal in robot.Rws.Io.GetSignals()){Console.WriteLine($"{signal.Name} = {signal.LogicalValue} ({signal.Type})");}// Read and write one signalvar gripper = robot.Rws.Io.GetSignal("Local", "DRV_1", "DO_Gripper");robot.Rws.Io.SetSignalValue("Local", "DRV_1", "DO_Gripper", 1);// Send 3 pulses of 500 msrobot.Rws.Io.PulseSignal("Local", "DRV_1", "DO_Gripper", 1, 3, 500, 500);}}Click to see the full code位置と運動学
現在の robtarget と jointtarget を取得し、順運動学と逆運動学を計算し、手動でロボットをジョグします。AbbController robot = new AbbController();robot.Connect("192.168.0.1");// Cartesian position of the toolvar robTarget = robot.Rws.MotionSystem.GetRobTarget("ROB_1");Console.WriteLine($"X={robTarget.X} Y={robTarget.Y} Z={robTarget.Z}");// Joint anglesvar jointTarget = robot.Rws.MotionSystem.GetJointTarget("ROB_1");Console.WriteLine($"Axis 1 = {jointTarget.RobotAxes.Axis1}");// Forward kinematics, without moving the robotvar toolFrame = new Pose(0, 0, 100, new Quaternion(1, 0, 0, 0));var pose = robot.Rws.MotionSystem.GetPoseFromJoints("ROB_1", toolFrame, jointTarget);}}Click to see the full codeコントローラとバックアップ
コントローラの識別情報とオプションを取得し、時刻とネットワークを設定し、フルバックアップの作成と復元を行います。AbbController robot = new AbbController();robot.Connect("192.168.0.1");// Who am I talking tovar identity = robot.Rws.Controller.GetIdentity();Console.WriteLine($"{identity.Name} ({identity.Type}, {identity.MacAddress})");// RobotWare version and installed optionsvar system = robot.Rws.System.GetInfo();Console.WriteLine($"RobotWare {system.Version}");Console.WriteLine(robot.Rws.Controller.HasOption("Multitasking"));// Full controller backuprobot.Rws.Controller.CreateBackup("/hd0a/MyBackup");Console.WriteLine(robot.Rws.Controller.GetBackupState());}}Click to see the full codeファイルシステム
コントローラのファイルシステムを参照し、ファイルのダウンロードとアップロード、ファイルとディレクトリの作成、コピー、名前の変更、削除を行います。AbbController robot = new AbbController();robot.Connect("192.168.0.1");// Browse a directory of the controllerDirectoryListing listing = robot.Rws.File.ListDirectory("/hd0a/RobotWare");foreach (FileItem file in listing.Files){Console.WriteLine($"{file.Name} : {file.Size} bytes");}// Download a RAPID module and upload it backstring module = robot.Rws.File.GetFileAsText("/hd0a/MyProgram/MainModule.mod");robot.Rws.File.UploadFileFromText("/hd0a/MyProgram/MainModule.mod", module);}}Click to see the full codeイベントログと状態
イベントログを読み取り、運転モード、コントローラの状態、ロボットの速度比を監視します。AbbController robot = new AbbController();robot.Connect("192.168.0.1");// State of the robotConsole.WriteLine(robot.Rws.Panel.GetOperationMode());Console.WriteLine(robot.Rws.Panel.GetControllerState());Console.WriteLine(robot.Rws.Panel.GetSpeedRatio());// Last events of every domainforeach (var domain in robot.Rws.Elog.GetDomains()){foreach (var message in robot.Rws.Elog.GetMessages(domain.Number, maxCount: 5)){Console.WriteLine($"[{message.Timestamp}] {message.Type} : {message.Title}");}}}}Click to see the full codeIRC5 と OmniCore を 1 つの API で
ABB ロボットは Robot Web Services を 2 つのバージョンで公開しています。本 SDK は両方に対応しているため、同じコードが古い IRC5 でも新しい OmniCore でも動作します。変更するのは接続パラメータ 1 つだけです。
HTTP or HTTPS is a separate setting on the controller, independent of this table.Controller RobotWare Robot Web Services Connection parameter IRC5 RobotWare 6 and earlier RWS 1.0 RwsVersion.Irc5_V1_0OmniCore RobotWare 7 and later RWS 2.0 RwsVersion.OmniCore_V2_0ドキュメントを見る
実践記事
ABB ロボットについて開発者からよく寄せられる質問への短い回答です。
よくある質問
ABB ロボット側に何かインストールする必要はありますか。
ありません。Robot Web Services はコントローラ自身のサービスで、標準システムに備わっています。ロボットがネットワーク上で到達可能で、ユーザーアカウントに必要な権限があれば十分です。
この SDK は IRC5 と OmniCore の両方で動作しますか。
動作します。RobotWare 6 の IRC5 コントローラは RWS 1.0 を、RobotWare 7 の OmniCore コントローラは RWS 2.0 を公開しています。SDK は 1 つの API で両方をカバーし、接続パラメータでバージョンを指定するだけです。
RobotStudio や ABB の PC SDK は必要ですか。
必要ありません。ライブラリは 100% マネージドで、コントローラと直接通信します。RobotStudio が役に立つのは、実機ではなく仮想コントローラでテストしたい場合だけです。
RAPID 変数の読み書きはできますか。
できます。変数、persistent、定数を読み書きでき、robtarget や record 型も扱えます。ロード済みプログラムのシンボル検索も可能です。
対応している .NET のバージョンは何ですか。
.NET Framework 3.5 から .NET 9 まで、さらに .NET Standard 2.0 と 2.1、.NET Core 3.0 に対応しています。非同期メソッドは .NET Framework 3.5 と 4.0 を除くすべてで利用できます。
この SDK でロボットを動かせますか。
手動でのジョグ、目標位置の設定、動作を含む RAPID プログラムの開始と停止ができます。連続したリアルタイムの動作制御は開発中の Externally Guided Motion が担当します。
今後の予定
Robot Web Services は現在利用できます。ABB コントローラのその他のネイティブプロトコル、まず Externally Guided Motion(EGM)が開発中で、同じ SDK に追加されます。
AvailableRobot Web Services
RAPID, I/O, position, controller, file system, event log and mastership, on IRC5 and on OmniCore.
In developmentExternally Guided Motion (EGM)
Low latency motion over UDP: position stream, position guidance and path correction, for sensor and vision driven applications.
ダウンロードして試す
Windowsアプリケーションの例SDKのすべての機能を簡単なインターフェイスでテストできます。 この例は、.NET 8を使用して「Self Conted」および「Single File」でコンパイルされています。アプリケーションはインストールなしでポータブルです。
UnderAutomation.Abb.Showcase.Forms.exeダウンロードすることにより、一般的な使用条件を受け入れます。 利用規約を見る見積依頼と注文
価格
ライブラリは無料でダウンロードでき、30日間テストできます。 この期間の後、トライアル期間を延長するように頼むか、自分に最適なライセンスを購入することができます: サイト (不明瞭なバイナリのみ) またはソース (ソースコード) 。 購入後、1年のメンテナンス期間があり、サポートへの優先アクセスと更新の可能性が得られます。 使用するライセンスを購入する場合、ロボットブランドにリンクされているため、顧客に再配布するロボット、開発者、またはソフトウェアの数に関係なく、繰り返し料金を払うことなく永久に使用できます。 あなたがディストリビューターであり、お客様に当社の製品のいずれかを提供したい場合は、特別な条件と価格について話し合うためにお問い合わせください。
標準サイトライセンス
$1000一生$600大学向け (40% 割引)今すぐ購入産業環境向けに設計されており、生涯にわたる全機能へのアクセスを提供します。1 年間のメンテナンスが含まれています (アップデートへのアクセス)サポートが優先されず、メンテナンスが 1 年間であることを除いて、Pro ライセンスと同じ条件です。内部情報源はありません。 難読化された DLL のみが提供されます。ビデオ会議によるサポートはありません (電子メールのみ)。最も人気のあるプロライセンス
$1400一生$2360$840大学向け (40% 割引)今すぐ購入優先サポートと長期メンテナンスが必要な重要な実稼働環境向け。3 年間のメンテナンスが含まれており (アップデートへのアクセス)、この期間中の更新注文はありません (事務手続きは不要)完全かつ永続的なSDK: 定期的なサブスクリプションは必要ありません。ライセンスは永遠にあなたのものであり、ロボットブランドのすべてのプログラミング言語で機能します。指示された郵便住所で、ライセンスを保持している組織がのみ使用できます。 すべてのチーム開発者は、開発マシンの数に関係なく、同じライセンスを共有します。SDKを使用して開発されたアプリケーションは、接続するロボットの数に関係なく、追加費用なしで顧客の無制限の数に配信できます。ライセンスは、機能のロックを解除するコードを呼び出すためのパスワードの一種です。 インストールする追加のソフトウェアはありません。 USBキーはありません。優先サポート (平均 24 時間未満)リモート アシスタンス (電子メールおよび最大 2 時間のビデオ会議)内部情報源はありません。 難読化された DLL のみが提供されます。いつでもソースにアップグレード (差額を支払う)ソースコードライセンス
$2800一生$1680大学向け (40% 割引)今すぐ購入完全な技術主権、詳細なカスタマイズ、完全な独立性を実現します。プロライセンスと同じ条件C# によるライブラリの完全な内部コード数年かけて開発された数千行のコードを含む Visual Studio ソリューション一般利用規約で定義されている制限内で、このソース コードを変更してアプリケーションで使用できます。完全なソースコードアクセスと付属のコンテキストファイル(AGENTS.md)により、AIコーディングエージェント(Claude、Copilot、Cursor、Codex等)との連携が最適化され、LLMがSDK内部構造を正確に把握できます