- 商品検索:カテゴリ
- 3Dセンサ・システム
- ネットワークサーボモータ
PLC不要・PCで直接制御(C#/Python対応)
ネットワークサーボモータ
シリーズ名
HDriveシリーズ
シリーズ名
HDriveシリーズ
エンコーダ・アンプ・ドライバを統合した一体型サーボシステム
- イーサネット通信に対応したコンパクトサーボモータ
- 制御機器が統合された一体型のサーボシステム
- ウェブサーバ経由で遠隔からモーターの設定・操作が可能
- PCで操作が可能、PLC機器は不要
- 各種プログラミング言語(Python , C# , MATLABなど)に対応
- CANスレーブ/マスタとして利用可能(スレーブ最大8台)
- 省配線、小型で省スペース
Henschel-Robotics社のネットワークサーボモータは、モータ・エンコーダ・サーボアンプ・ドライバ・入出力を統合した一体型のサーボシステムです。一体型でありながら小型のため、省配線、省スペースを実現しています。多極ステッピングモーターをベースに、クローズドループ制御とフィールド指向制御(FOC)が実装されており、効率的に最大トルクまで到達、トルクリップルはほとんど発生しません。位置、速度、トルクの3つのモードで利用でき、位置データは、工場出荷時にキャリブレーション済みの14ビット磁気式エンコーダで取得します。
ネットワーク接続のため、PCのOSを気にする必要がなく、ソフトウェアやドライバのインストールも不要です。PCと接続するだけの簡単なセットアップで使用開始できます。WEBサーバーが統合されており、モーターの状況や制御設定、加速度傾斜などの各種パラメータが設定・確認できます。遠隔からのメンテナンス管理も容易で、IoTデバイスとして利用可能です。
複数のプログラミング言語(Python , C# , MATLABなど)に対応しており、簡単な数行のコードを記述するだけでTCP/IPを介してコマンドを送ることができます。PLCが不要のため、自由度の高いプログラミングが可能です。
最高回転速度 | 600r/min |
---|---|
ホールディングトルク(保持トルク) | 最大0.5Nm |
シングルターンアブソリュートエンコーダ (絶対値エンコーダ) |
14bit |
絶対精度 | ±0.2grad |
トルク係数 | 200mNm/A |
電流制御周期 | 24kHz |
位置/速度制御周期 | 4kHz |
起動時間 | 2s |
位置データ出力(TCP) | 最大0.5kHz |
位置データ出力(UDP) | 最大2kHz |
インターフェース | イーサネット、CAN、デジタルI/O |
動作電圧 | DC 12V - 24V |
サイズ | 42 × 42 × 112.7mm(コネクタ部除く) |
シャフト径 | Φ5 ±0.012mm |
重量 | 470g |
使用環境温度 | –10℃ ~ 40℃、結露がないこと |
寸法図(単位:mm)
回転速度トルク特性
ピンアサイン
コネクタ | X1 | X2 | X3 | |||
---|---|---|---|---|---|---|
タイプ | M8メス | M8オス | M8オス | |||
コーディング | なし | A-coded | なし | |||
説明 | イーサネット | デジタルI/O | 電源、CAN | |||
ピン数 | 4 | 6 | 4 | |||
ピン詳細 | ||||||
PIN | 機能 | PIN | 機能 | PIN | 機能 | |
1 | ETH TX+ | 1 | VCC(100mA) | 1 | VCC | |
2 | ETH RX+ | 2 | デジタルI/O 1 | 2 | CAN_H | |
3 | ETH RX- | 3 | GND | 3 | GND | |
4 | ETH TX- | 4 | デジタルI/O 2 | 4 | CAN_L | |
5 | デジタルI/O 3 | |||||
6 | デジタルI/O 4 |
HDriveはWEBサーバーを搭載しており、モーター情報はWEBブラウザでリアルタイムに確認することができます。
コントローラー設定、電流値、加減速カーブなどの全てのパラメーターが設定可能です。
また、ファームウェアの更新やカスタムWEB GUIを反映することも可能です。
HDriveは複数のプログラミング言語で制御が可能です。以下が、チュートリアルとサンプルコードです。
イーサネット接続の場合は、TCPクライアント/サーバー接続を推奨します。この接続方法では、TCPソケットの生成が必要となります。HDriveはサーバーとして機能し、1つのクライアント接続を扱えます。同時にWEB GUIからTCP接続の確認が可能です。
Python example
import socket
import time
# Configure Socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Connect to motor
s.connect(('192.168.1.103', 1000))
# Send control command
s.sendall(b'<control pos=\"1000\" speed=\"500\" torque=\"200\" mode=\"129\" acc=\"1000\" decc=\"1000\" />')
# Wait 5 seconds before closing the socket again
time.sleep(5
C# example
using System;
using System.Net.Sockets;
using System.Text;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
//create instance from TCPClient Object
var client = new TcpClient("192.168.1.102", 1000);
//if a client has found, the program continues
Console.WriteLine("client found!");
//create an instance of the C# Stream class and get the Stream to the client
var networkStream = client.GetStream();
byte[] encodedBytes = System.Text.Encoding.ASCII.GetBytes("<control pos=\"1000\" speed=\"500\" torque=\"200\" mode=\"129\" acc=\"1000\" decc=\"1000\" />");
//send the drive order to the HDrive
networkStream.Write(encodedBytes, 0, encodedBytes.Length);
//continuously read data comming from the HDrive
byte[] buffer = new byte[85]; // read in chunks of 85 Byte
int bytesRead;
while ((bytesRead = networkStream.Read(buffer, 0, buffer.Length)) > 0)
{
Console.WriteLine(Encoding.Default.GetString(buffer));
}
}
}
}
Matlab example
HDriveチケットを送信する
t=tcpip('192.168.1.102', 20000, 'NetworkRole', 'client'); %configure TCP Client and Port
fopen(t); % open TCP Connection
fwrite(t, '<control pos=\"1000\" speed=\"500\" torque=\"200\" mode=\"129\" acc=\"1000\" decc=\"1000\" />') % send XML drive order
pause( 5 ) % wait 5 seconds ( because the motor would stop if you close the connection before )
fclose(t);
HDriveチケットを受信する(TCPモード)
HDriveは最大2kHzでチケットを送るため、最新のチケットを受け取るには非常に早く読み込む必要があります。
ループ処理でチケット読み込むか、WEB GUIから送信頻度を減らすことをお勧めします。
clear all;
t=tcpip('192.168.1.102', 1000, 'NetworkRole', 'client'); %configure TCP Client and Port
fopen(t);%open TCP Connection
A = fread(t, 150); %receive one HDrive ticket
% convert received bytes into string
recieved_string = sprintf('
% interpret string
time_ms = str2num(recieved_string(137:146));
position = str2num(recieved_string(23:32));
calibration = str2num(recieved_string(59:62));
speed_RPM = str2num(recieved_string(42:49));
% close connection
fclose(t);
HDriveチケットを受信する(UDPモード)
HDriveをホストに対してUDPチケットを送るよう設定する必要があります。WEB GUIから設定可能です。
hold on;
clear all;
%configure and open UDP Connection
u=udp('192.168.1.102','RemotePort',2000,'Localport',1001);
set(u,'DatagramTerminateMode','off');
u.ByteOrder = 'littleEndian';
fopen(u);
% read UDP data and convert to 32bit integers
data = fread(u, 3, 'int32');
%store data to local variables
time = data(1);
position = data(2);
speed = data(3);
% close connection
fclose(u);
円滑で複雑な制御が可能
HDriveは最新のARMマイクロコンピュータと高性能な位置センサを搭載しています。
フィールド指向制御(FOC)の複雑な制御アルゴリズムによって、DCサーボモータと同様の円滑なモータ動作を実現しています。
加速度、減速度、速度はそれぞれ個別に設定でき、モータの状態に応じて最適な値を計算します。
最大8つのスレーブモータを制御
接続はイーサネットだけでなく、CANスレーブ/マスターとしても利用できます。
HDriveをCANマスタとして設定すると、CANスレーブは自動的に認識され、ローカルのCANネットワークを構築します。 イーサネット接続されたマスターからすべてのスレーブにコマンドを送ることができるので、スレーブ間の通信は気にする必要がありません。同期信号によって自動的にトリガーがかかるので、マスタとスレーブは同時に動作を開始します。
接続例
接続はイーサネットだけでなく、CANスレーブ/マスターとしても利用できます。
イーサネット接続されたマスターからすべてのスレーブにコマンドを送ることができるので、スレーブ間の通信は気にする必要がありません。
動画
- 商品検索:カテゴリ
- 3Dセンサ・システム
- ネットワークサーボモータ