文書バージョン 202405-01
本書は、MOS関数で扱う軸(モータ軸)、デジタル/アナログポート、共有変数、PLCデータレジスタの各リソースについて記します。
ロボットと軸(モータ軸)
デジタル入出力ポート
アナログ入出力ポート
シリアル通信(COM)ポート
TCP/IP通信ポート
共有変数
PLCデータレジスタ
弊社モーションコントロールシステム(MOTIWARE)は単軸または複数軸で構成されるロボットを単位としてモーション制御を行います。
PCベースコントローラではロボットは1~40まで、InterMotionではロボットは1~24まで定義でき、1つのロボットは1~8軸で構成することができます。
ロボットと軸の構成の定義は、コンフィギュレーションファイル(MotiwareConfig.iniまたはMotiwareConfigAmx.iniファイル)のRobot Config セクションにあるAxisパラメータによって行います。
MOS関数ではコンフィギュレーションファイルに基づいて、PCベースコントローラでは1~40のロボット番号、InterMotionでは1~24のロボット番号、1~8の論理軸で軸資源を扱います。
ロボット番号
MOS関数の引数で多用されるロボット番号(=ロボットインデックス)は、コンフィギュレーションファイルのRobot Config セクションで定義されたロボット番号と一致します。
例えば、コンフィギュレーションファイルで[Robot Config 1]と定義されたロボットは、ロボット番号=ロボットインデックス=1です。
ロボット番号 | PCベースコントローラ | InterMotion |
---|---|
1~40 | 1~24 |
論理軸
各ロボットの論理軸は、Axisパラメータの「Axis=」に続くの8つの数字の並び順で、左から順に論理軸1、論理軸2、…、論理軸8のように並んでいます。
MOS関数の引数で多用されるポジション配列の要素[0]~[7]は、この論理軸1~8に対応します。すなわち、ポジション配列の要素[0]には論理軸1の位置情報を、要素[1]には論理軸2の位置情報を、…というように格納していきます。
論理軸番号 | 対応するポジション配列の要素 |
---|---|
1 | [0] |
2 | [1] |
3 | [2] |
4 | [3] |
5 | [4] |
6 | [5] |
7 | [6] |
8 | [7] |
例)コンフィギュレーションファイルで「Axis=9 10 0 0 0 0 0 0」と定義されたロボットは、論理軸1に物理軸9が、論理軸2に物理軸10がアサインされていることを示します。
このロボットをMOS関数で扱う場合、ポジション配列の要素[0]に論理軸1を介して物理軸9の位置情報を、要素[1]に論理軸2を介して物理軸10の位置情報を格納します。0がアサインされた論理軸、この例では要素[2]~[7]は考慮されません。
この記述は、「ロボット1は2軸構成で、論理軸1には物理軸9を、論理軸2には物理軸10をアサインする」という意味です。
この場合、
・ポジション配列の要素[0]が、物理軸9のデバイスの位置情報を、
・ポジション配列の要素[1]が、物理軸10のデバイスの位置情報を、
格納、保持することになります。
MOS関数では、2049~6144のポート番号が与えられたデジタル入出力ポートを扱うことができます。
デジタル入出力ポート | 名称 | 点数 | ポート番号 | 説明 |
---|---|---|---|
ロボットI/O | 1024 | 2049~3072 | 物理的な入出力ポート領域 |
リモートIN | 1024 | 3073~4096 | リモートIO機器の入力ポート領域 |
リモートOUT | 1024 | 4097~5120 | リモートIO機器の出力ポート領域 |
バーチャルI/O | 1024 | 5121~6144 | 仮想的な入出力ポート領域 |
ロボットI/O(ポート番号2049~3072)は次のようにバンクに細分化されています。
デジタル入出力ポート | 名称 | バンク | 点数 | ポート番号 | 説明 |
---|---|---|---|---|---|
ロボットI/O | ロボットIN | 1 | 64 | 2049~2112 | 物理的なデジタル入力ポート、ポート連動モーション対応 |
ロボットOUT | 64 | 2113~2176 | 物理的なデジタル出力ポート、ポート連動モーション対応 | ||
ロボットIN | 2 | 64 | 2177~2240 | 物理的なデジタル入力ポート | |
ロボットOUT | 64 | 2241~2304 | 物理的なデジタル出力ポート | ||
ロボットIN | 3 | 64 | 2305~2368 | 物理的なデジタル入力ポート | |
ロボットOUT | 64 | 2369~2432 | 物理的なデジタル出力ポート | ||
ロボットIN | 4 | 64 | 2433~2496 | 物理的なデジタル入力ポート | |
ロボットOUT | 64 | 2497~2560 | 物理的なデジタル出力ポート | ||
ロボットIN | 5 | 64 | 2561~2624 | 物理的なデジタル入力ポート | |
ロボットOUT | 64 | 2625~2688 | 物理的なデジタル出力ポート | ||
ロボットIN | 6 | 64 | 2689~2752 | 物理的なデジタル入力ポート | |
ロボットOUT | 64 | 2753~2816 | 物理的なデジタル出力ポート | ||
ロボットIN | 7 | 64 | 2817~2880 | 物理的なデジタル入力ポート | |
ロボットOUT | 64 | 2881~2944 | 物理的なデジタル入力ポート | ||
ロボットIN | 8 | 64 | 2945~3008 | 物理的なデジタル入力ポート | |
ロボットOUT | 64 | 3009~3072 | 物理的なデジタル出力ポート |
デジタル入出力ポートの実装は、ハードウエアによって異なります。操作が可能なポート番号は、各ハードウエアの取扱説明書に明記されています。
MOSBenchIDEのI/Oモニタにおいて、各ハードウエアで操作が可能なポート番号の入出力状態をモニタしたり、値を更新することができます。
※注意
MotiwareManagerのDI/DOモニタのポート番号の割付は、MOS関数のポートリソースに対するポート番号の割付とは異なりますので注意してください。
MOS関数では、1~32のチャネル番号が与えられたアナログ入力ポートと、1~16のチャネル番号が与えられたアナログ出力ポートを扱うことができます。
アナログ入出力ポート | 名称 | チャネル数 | チャネル番号 | 説明 |
---|---|---|---|
アナログIN | 32 | 1~32 | アナログ入力ポート |
アナログOUT | 16 | 1~16 | アナログ出力ポート |
アナログ入出力ポートの実装は、ハードウエアによって異なります。操作が可能なチャネル番号は、各ハードウエアの取扱説明書に明記されています。
MOSBenchIDEのアナログ入力モニタ、アナログ出力モニタにおいて、各ハードウエアで操作が可能なチャネル番号の入出力状態をモニタしたり、値を更新することができます。
MOS関数では、101~116のポート番号が与えられたシリアル通信(COM)ポートを扱うことができます。
シリアル通信ポート | 名称 | チャネル数 | チャネル番号 | 説明 |
---|---|---|---|
シリアル通信ポート | 16 | 101~116 | RS-232Cシリアル通信ポート |
COMポートの実装は、ハードウエアによって異なります。操作が可能なポート番号は、各ハードウエアの取扱説明書に明記されています。
MOS関数では、1~8のチャネル番号が与えられたTCP/IP通信チャネルを扱うことができます。
TCP/IP通信チャネル | 名称 | チャネル数 | チャネル番号 | 説明 |
---|---|---|---|
TCP/IP通信チャネル | 8 | 1~8 | TCP/IP通信チャネル |
TCP/IP通信チャネルの実装は、ハードウエアによって異なります。
InterMotionでは、実装されているETポートがTCP/IP通信チャネルの対象ハードウエアとなります。
PCベースコントローラでは、リアルタイム拡張※したPCのLANポートが対象ハードウエアとなります。
※RTX64 RT-TCP/IPをアクティブ化し、RTXドライバをあてたネットワークデバイスを適切にセットアップすることにより、リアルタイム拡張されます。
MOS関数では、0~65535のインデックス番号が与えられた共有変数を扱うことができます。共有変数のデータ型は、WriteSharedVariable関数やWriteSharedVarArray関数でライトする際に指定するデータ型に依存します。これをvariantと表現します。
インデックスごとに異なるデータ型であっても構いません。同じインデックスの共有変数に対して異なる型のデータで更新しても構いません。この場合、最後に更新したデータ型となります。
共有変数 | 名称 | 変数の数 | インデックス番号 | 説明 |
---|---|---|---|
共有変数インデックス | 65536 | 0~65535 | 複数のプロセスの共有リソースとして 使用可能なvariant型変数 |
共有変数は、MwControllerで実行されている複数のプロセスの共有リソースで、short型、long(int)型、float型、double型を扱うことができます。また、インデックス番号が58000~58999の範囲の共有変数は、文字列(Null終端のchar型配列)を扱うことができます。文字列の最大文字数は、Null終端を含まず256バイトです。
MOS関数では、0~16,777,215のレジスタ番号が与えられたPLCデータレジスタを扱うことができます。
弊社モーションコントローラの一部機種は、MCPプロトコル通信を使用して、回線上にあるPLC内部のデータレジスタをアクセスすることが可能です。アクセスサイズはshort型に限られます。
PLCデータレジスタ | 名称 | レジスタの数 | レジスタ番号 | 説明 |
---|---|---|---|
PLCデータレジスタ | 2^24(=16,777,216) | 0~2^24-1(=16,777,215) | PLCデータレジスタを指定する |
実際に使用できるレジスタの数およびレジスタ番号は、通信相手となるPLCが保有しているデータレジスタ資源の範囲内です。