# 1. はじめに

ORiNは、ロボットを始めとする各種FA機器や、データベースなどさまざまなリソースの標準的なインターフェイスを提供するミドルウェアです。このORiNを利用することにより、メーカや機種に依存しないアプリケーションを開発することができるようになります。
1999年から開始されたORiNプロジェクトの成果として2002年にORiN version1、2005年にORiN version2(以降ORiN2)、そして2020年にはより多種多様な業種で活用できるようにORiN version3(以降ORiN3)が制定されました。
ORiN3の動作イメージを図に示します。ORiN3は、これまでのORiNの思想を踏襲したクライアント向けのインターフェイスを提供しています。

ORiNの動作イメージ

このドキュメントでは、ORiN3 Runtimeに関する基本的な情報として、ORiN3 Runtimeの概要、ORiN3 Runtimeを利用するためのガイドラインを解説します。

# 2. ORiN3 Runtime 概要

ORiN3 Runtimeは株式会社デンソーウェーブが開発したORiN3を使用するためのプロバイダや各種ライブラリおよびツールを含んだミドルウェア製品です。
ORiN3 Runtimeには2つのバリエーションがあり、使用可能なプロバイダが異なります。

バリエーション | 概要 | 利用可能プロバイダ数
--- | --- | ---
ORiN3 Runtime | さまざまなメーカのデバイスを対象としたプロバイダが使用できます。 | 19
ORiN3 Runtime for DENSO Products | デンソー製品に対応したプロバイダが使用できます。 | 4

各バリエーションを使用するには対応するライセンスの購入とアクティベーションが必要です。

バリエーション | ライセンス名
--- | ---
ORiN3 Runtime | ORiN3 Runtime License および ORiN3 Runtime Network Edition
ORiN3 Runtime for DENSO Products | ORiN3 Runtime for DENSO Products License

ORiN3 Runtime Network Editionについて

ORiN3 Runtime Network Editionはネットワーク接続環境が必須のライセンスとなっています。
Docker環境でORiN3 Runtimeを使用する場合はこちらのライセンスを適用してください。

## 2.1. プロバイダ一覧

各ライセンスで使用できる具体的なプロバイダは以下のとおりです。最新情報は弊社Webサイトから確認できます。

注釈

ORiN3 Runtimeのご利用開始から90日間はライセンスにかかわらずすべてのプロバイダが使用できます。

カテゴリ | メーカ | プロバイダ | ORiN3 Runtime License | ORiN3 Runtime for DENSO Products License
--- | --- | --- | --- | ---
ゲートウェイ | デンソーウェーブ | IoTDSプロバイダ | ✓ | ✓
| - | ORiN2 Gatewayプロバイダ | ✓ | -
| - | Modbusプロバイダ | ✓ | -
ユーティリティ | - | Mockプロバイダ(注1) | ✓ | ✓
ロボット | デンソー | RC8プロバイダ | ✓ | ✓
| デンソー | RC9プロバイダ | ✓ | ✓
PLC | オムロン | CJプロバイダ | ✓ | -
| オムロン | NJプロバイダ | ✓ | -
| ジェイテクト | CMP-LINKプロバイダ | ✓ | -
| 安川電機 | ExMEMOBUSプロバイダ | ✓ | -
| キーエンス | KVプロバイダ | ✓ | -
| ロックウェル・オートメーション | Logix5000プロバイダ | ✓ | -
| シーメンス | S7プロバイダ | ✓ | -
| - | SLMPプロバイダ | ✓ | -
NC & MC | - | MTConnect Clientプロバイダ | ✓ | -
視覚 | - | RTSP Clientプロバイダ | ✓ | -
その他 | パトライト | WDRプロバイダ | ✓ | -
| パトライト | PNSプロバイダ | ✓ | -
| 明京電機 | REBOOTERプロバイダ | ✓ | -

注1

Mockプロバイダはライセンスの種類によらず使用できます。また、すべてのライセンスの有効期間外であっても使用できます。

プロバイダを使用する場合にいくつかのモジュールが必要です。用途ごとに必要なモジュールが異なります。
プロバイダを使ったORiN3アプリケーションを開発する場合はリンクを参照してください。
ORiN3アプリケーションを運用する場合はリンクを参照してください。

## 2.2. 関連モジュール概要

本章ではORiN3 Runtimeに含まれるライブラリやツールなどの概要を説明します。各モジュールのセットアップについてはリンクを参照してください。

### 2.2.1. ORiN3アプリケーションを開発する場合

ORiN3プロバイダを使ってデバイスからデータを取得するなどの用途でアプリケーション開発をする場合に必要なモジュールを紹介します。モジュールの構成図は以下のとおりです。

ORiN3アプリケーション開発におけるモジュールの構成図

ORiN3アプリケーションを開発する場合に必要なモジュールは`ORiN3 Remote Engine`、`ORiN3プロバイダ`、`ORiN3 Configurator`、さらに開発に使用するプログラミング言語に応じて、`ORiN3 Message Client (C#)`、`ORiN3 Message Client (Python)`、`ORiN3 protoファイル` のいずれかが必要です。

- ORiN3 Remote Engine

ORiN3のコアになるモジュールです。アプリケーションはこのモジュールを経由してORiN3プロバイダを起動し、デバイスにアクセスできるようになります。
ORiN3 Remote EngineはgRPC(Google Remote Procedure Call)サーバとして動作しており、アプリケーションはgRPCクライアントとして実装することになります。
セットアップ方法はORiN3 RuntimeやORiN3 Remote Engineを参照してください。

- ORiN3 Message ClientとORiN3 protoファイル

ORiN3 Remote Engineのインターフェイスを実装したgRPCクライアントライブラリです。C#とPythonで利用できます。
ORiN3 protoファイルはORiN3 Remote Engineと通信するためのgRPCインターフェイスを定義しています。gRPCに対応しているプログラミング言語を使ってアプリケーションを開発する場合に使用します。 セットアップ方法はORiN3 Message ClientやORiN3 protoファイルを参照してください。

- ORiN3プロバイダ

実際にデバイスと通信するライブラリです。Nugetパッケージとして公開されています。
弊社が公開しているプロバイダはプロバイダ一覧を参照してください。
セットアップ方法はORiN3 プロバイダを参照してください。

- ORiN3 Configurator

ORiN3 ConfiguratorはORiN3 Remote EngineおよびORiN3プロバイダに対して、ライセンスの入力および管理、ORiN3プロバイダのインストールなどができるWindowsアプリケーションです。
また、ORiN3 Configurator上で行ったORiN3プロバイダの生成や値の取得などの動作をC#およびPythonのソースコードに出力することもでき、アプリケーション開発の補助ツールとしても使用できます。

下記はソースコード出力の一例です。

    // Create object
    var variableObject = await parentObject.CreateVariableAsync<bool>(
        name: "BoolVariable",
        typeName: "ORiN3.Provider.ORiNConsortium.Mock.O3Object.Variable.BoolVariable, ORiN3.Provider.ORiNConsortium.Mock",
        option: "{\"@Version\":\"1.0.85\"}",
        token: cts.Token).ConfigureAwait(false);

    // Get value
    var value = await variableObject.GetValueAsync(cts.Token).ConfigureAwait(false);

    // Delete object
    await variableObject.DeleteAsync(cts.Token).ConfigureAwait(false);

セットアップ方法はORiN3 Configuratorを参照してください。

#### 2.2.1.1. 補助ツール

- ORiN3 Dockerイメージ

ORiN3 Remote EngineがインストールされているコンテナとしてDockerイメージを公開しています。コンテナを使ってORiN3を運用する場合にご利用いただけます。 セットアップ方法はORiN3 dockerイメージを参照してください。

### 2.2.2. ORiN3アプリケーションを運用する場合

開発したアプリケーションの運用にはORiN3 Remote Engineとそのアプリケーションで使用するORiN3プロバイダが必要です。
運用環境上でのライセンスの入力やプロバイダのインストールにORiN3 Configuratorが使用できます。また、コンテナで運用する場合にはORiN3 Dockerイメージを使用できます。