コンテンツにスキップ
関数 > モーターLSI直接制御関数 >

YduPmcsWriteRegister

機能

モーターコントロールLSIへレジスタデータを書き込みます。

書式

INT YduPmcsWriteRegister(
    WORD unitId,
    WORD axis,
    BYTE byRegNo,
    DWORD dwData
);

パラメータ

unitId

ユニットのID番号を指定します。

言語 C# VB(.NET2002以降) VB6.0/VBA C++/CLI C/C++
ushort Short Integer unsigned short WORD

axis

レジスタデータを書き込む軸を指定します。
複数の軸を指定することができます。

定義
PMC_AXIS_X0 0x01 X0軸
PMC_AXIS_Y0 0x02 Y0軸
PMC_AXIS_Z0 0x04 Z0軸
PMC_AXIS_U0 0x08 U0軸
PMC_AXIS_X1 0x10 X1軸
PMC_AXIS_Y1 0x20 Y1軸
PMC_AXIS_Z1 0x40 Z1軸
PMC_AXIS_U1 0x80 U1軸
言語 C# VB(.NET2002以降) VB6.0/VBA C++/CLI C/C++
ushort Short Integer unsigned short WORD

byRegNo

データを書き込むレジスタ番号を指定します。

定義 書き込むレジスタ
PMC_REG_0 0 R0
PMC_REG_1 1 R1
PMC_REG_2 2 R2
PMC_REG_3 3 R3
PMC_REG_4 4 R4
PMC_REG_5 5 R5
PMC_REG_6 6 R6
PMC_REG_7 7 R7
PMC_REG_RMV(※) 16 RMV
PMC_REG_RFL(※) 17 RFL
PMC_REG_RFH(※) 18 RFH
PMC_REG_RUD(※) 19 RUD
PMC_REG_RMG(※) 20 RMG
PMC_REG_RDP(※) 21 RDP
PMC_REG_RIDL(※) 22 RIDL
PMC_REG_RENV(※) 23 RENV
PMC_REG_RCUN(※) 24 RCUN
PMC_REG_RIOP(※) 26 RIOP

※ RMV以降のレジスタについて

シリアルNo.299999以下のユニットでは使用できません。
また、Ver.3.01以下のドライバでは使用できません。

言語 C# VB(.NET2002以降) VB6.0/VBA C++/CLI C/C++
byte Byte Byte unsigned char BYTE

dwData

レジスタへ書き込むデータを指定します。

Note

データについては、モーターコントロールLSIのマニュアルを参照してください。

言語 C# VB(.NET2002以降) VB6.0/VBA C++/CLI C/C++
uint Integer Long unsigned long DWORD

戻り値

関数が正常に終了した場合は0(YDU_RESULT_SUCCESS)が返ります。
正常に終了しなかった場合は0以外が返りますので、その場合はエラーコードを参照してください。

言語 C# VB(.NET2002以降) VB6.0/VBA C++/CLI C/C++
int Integer Long int INT

使用例

ユニットIDが0のユニットの、X0軸とZ0軸のレジスタ1へ0xFFを書き込みます。

C#

var result = YduPmcs.WriteRegister(0, YduPmcs.PMC_AXIS_X0 + YduPmcs.PMC_AXIS_Z0, 1, 0xFF);

VB(.NET2002以降)

Dim result As Integer = YduPmcsWriteRegister(0, PMC_AXIS_X0 + PMC_AXIS_Z0, 1, &HFF)

VB6.0/VBA

Dim result As Long
result = YduPmcsWriteRegister(0, PMC_AXIS_X0 + PMC_AXIS_Z0, PMC_REG_1, &HFF)

C++/CLI

int result = YduPmcsWriteRegister(0, PMC_AXIS_X0 + PMC_AXIS_Z0, PMC_REG_1, 0xFF);

C/C++

INT result = YduPmcsWriteRegister(0, PMC_AXIS_X0 + PMC_AXIS_Z0, PMC_REG_1, 0xFF);