PmxArdinoLib 1.0.2
読み取り中…
検索中…
一致する文字列を見つけられません
PmxBaseClass.h
[詳解]
1
36#ifndef __Pmx_Base_Class_h__
37#define __Pmx_Base_Class_h__
38
39#include "Arduino.h"
40
43namespace PMX
44{
45
46 static constexpr byte ErrorByteData = 0xFF;
47 static constexpr unsigned short ErrorUint16Data = 0x7FFF;
48 static constexpr unsigned long ErrorUint32Data = 0x7FFFFFFF;
49
53 namespace RamAddrList
54 {
55
56
57 constexpr unsigned short PositionKp = 0;
58
59 constexpr unsigned short PositionKi = 4;
60
61 constexpr unsigned short PositionKd = 8;
62
63 constexpr unsigned short PositionSt = 12;
64
65
66 constexpr unsigned short SpeedKp = 16;
67
68 constexpr unsigned short SpeedKi = 20;
69
70 constexpr unsigned short SpeedKd = 24;
71
72
73 constexpr unsigned short CurrentKp = 32;
74
75 constexpr unsigned short CurrentKi = 36;
76
77 constexpr unsigned short CurrentKd = 40;
78
79
80 constexpr unsigned short TorqueKp = 48;
81
82 constexpr unsigned short TorqueKi = 52;
83
84 constexpr unsigned short TorqueKd = 56;
85
86
87 constexpr unsigned short PositionDeadBand = 64;
88
89 constexpr unsigned short SpeedDeadBand = 66;
90
91 constexpr unsigned short CurrentDeadBand = 68;
92
93 constexpr unsigned short TorqueDeadBand = 70;
94
95
96 constexpr unsigned short CenterOffset = 72;
97
98 constexpr unsigned short CloneReverse = 74;
99
100
101 constexpr unsigned short MinVoltageLimit = 76;
102
103 constexpr unsigned short MinVoltageLimitPower = 78;
104
105 constexpr unsigned short MaxVoltageLimit = 80;
106
107 constexpr unsigned short MaxVoltageLimitPower = 82;
108
109 constexpr unsigned short CurrentLimit = 84;
110
111 constexpr unsigned short CurrentLimitPower = 86;
112
113 constexpr unsigned short MotorTempLimit = 88;
114
115 constexpr unsigned short MotorTempLimitPower = 90;
116
117 constexpr unsigned short CpuTempLimit = 92;
118
119 constexpr unsigned short CpuTempLimitPower = 94;
120
121
122 constexpr unsigned short CwPositionLimit = 96;
123
124 constexpr unsigned short CwPositionLimitPower = 98;
125
126 constexpr unsigned short CcwPositionLimit = 100;
127
128 constexpr unsigned short CcwPositionLimitPower = 102;
129
130 constexpr unsigned short MaxGoalSpeed = 104;
131
132 constexpr unsigned short MaxGoalCurrent = 106;
133
134 constexpr unsigned short MaxGoalTorque = 108;
135
136 constexpr unsigned short TotalPowerRate = 110;
137
138 constexpr unsigned short LockDetectTime = 112;
139
140 constexpr unsigned short LockThresholdPower = 114;
141
142 constexpr unsigned short LockDetectOutputPower = 116;
143
144
145 constexpr unsigned short NowPosition = 300;
146
147 constexpr unsigned short NowSpeed = 302;
148
149 constexpr unsigned short NowCurrent = 304;
150
151 constexpr unsigned short NowTorque = 306;
152
153 constexpr unsigned short NowPwm = 308;
154
155 constexpr unsigned short MotorTemp = 310;
156
157 constexpr unsigned short CPUTemp = 312;
158
159 constexpr unsigned short InputVoltage = 314;
160
161 constexpr unsigned short TrajectoryTime = 316;
162
163 constexpr unsigned short EncoderValue = 318;
164
165 constexpr unsigned short EncoderTotalCount = 320;
166
167
168 constexpr unsigned short ErrorStatus = 400;
169
170 constexpr unsigned short ErrorSystem = 401;
171
172 constexpr unsigned short ErrorMotor = 402;
173
174 constexpr unsigned short ErrorRamAccess = 404;
175
176
177 constexpr unsigned short TorqueSwitch = 500;
178
179 constexpr unsigned short ControlMode = 501;
180
181 constexpr unsigned short MotorReceiveData = 502;
182
183 constexpr unsigned short Trajectory = 503;
184
185 constexpr unsigned short GoalPosition = 506;
186
187 constexpr unsigned short GoalSpeed = 508;
188
189 constexpr unsigned short GoalCurrent = 510;
190
191 constexpr unsigned short GoalTorque = 512;
192
193 constexpr unsigned short GoalPwm = 514;
194
195 constexpr unsigned short GoalTime = 516;
196
198 constexpr unsigned short ShortBrakeCurrent = 530;
199
201 constexpr unsigned short ShortBrakeTorque = 531;
202
204 constexpr unsigned short ShortBrakePWM = 532;
205
206
207 constexpr unsigned short CenterOffsetMinRange = 600;
208
209 constexpr unsigned short CenterOffsetMaxRange = 602;
210
211 constexpr unsigned short MinVoltageMinRange = 604;
212
213 constexpr unsigned short MinVoltageMaxRange = 606;
214
215 constexpr unsigned short MaxVoltageMinRange = 608;
216
217 constexpr unsigned short MaxVoltageMaxRange = 610;
218
219 constexpr unsigned short FailSafeVoltageMinRange = 612;
220
221 constexpr unsigned short FailSafeVoltageMaxRange = 614;
222
223 constexpr unsigned short CurrentMinRange = 616;
224
225 constexpr unsigned short CurrentMaxRange = 618;
226
227 constexpr unsigned short MotorTempMinRange = 620;
228
229 constexpr unsigned short MotorTempMaxRange = 622;
230
231 constexpr unsigned short CpuTempMinRange = 624;
232
233 constexpr unsigned short CpuTempMaxRange = 626;
234
235 constexpr unsigned short CwPositionMinRange = 628;
236
237 constexpr unsigned short CwPositionMaxRange = 630;
238
239 constexpr unsigned short CcwPositionMinRange = 632;
240
241 constexpr unsigned short CcwPositionMaxRange = 634;
242
243 constexpr unsigned short MaxGoalSpeedMinRange = 636;
244
245 constexpr unsigned short MaxGoalSpeedMaxRange = 638;
246
247 constexpr unsigned short MaxGoalCurrentMinRange = 640;
248
249 constexpr unsigned short MaxGoalCurrentMaxRange = 642;
250
251 constexpr unsigned short MaxGoalTorqueMinRange = 644;
252
253 constexpr unsigned short MaxGoalTorqueMaxRange = 646;
254
256 constexpr unsigned short GoalCommandValue1 = 700;
257
259 constexpr unsigned short GoalCommandValue2 = 702;
260
262 constexpr unsigned short GoalCommandValue3 = 704;
263 }
264
269 namespace ControlMode
270 {
271
272 constexpr byte Position = 0x01;
273
274 constexpr byte Speed = 0x02;
275
276 // // constexpr byte PositionSpeed = 0x03
277
278
279 constexpr byte Current = 0x04;
280
281 constexpr byte PositionCurrent = 0x05;
282
283 constexpr byte Torque = 0x08;
284
285 constexpr byte PositionTorque = 0x09;
286
287 constexpr byte PWM = 0x10;
288
289 constexpr byte Time = 0x20;
290
291 constexpr byte PositionTime = 0x21;
292
293 // // constexpr byte SpeedTime = 0x22
294 // // constexpr byte CurrentTime = 0x24
295
296
297 constexpr byte PositionCurrentTime = 0x25;
298
299 // // TorqueTime = 0x28
300
301 constexpr byte PositionTorqueTime = 0x29;
302 }
303
305 namespace TrajectoryType
306 {
307
308
309 constexpr byte Even = 0x01;
310
311 constexpr byte FifthPoly = 0x05;
312
313 constexpr byte Error = 0xFF;
314 }
315
320 namespace EditBaudrate
321 {
322
323 constexpr byte _57600 = 0x00;
324
325 constexpr byte _115200 = 0x01;
326
327 constexpr byte _625000 = 0x02;
328
329 constexpr byte _1000000 = 0x03;
330
331 constexpr byte _1250000 = 0x04;
332
333 constexpr byte _1500000 = 0x05;
334
335 constexpr byte _2000000 = 0x06;
336
337 constexpr byte _3000000 = 0x07;
338 }
339
341 namespace EditParity
342 {
343 constexpr byte ParityNone = 0x00;
344 constexpr byte Odd = 0x01;
345 constexpr byte Even = 0x02;
346 constexpr byte Error = 0xFF;
347 }
348
349
351 namespace SendCmd
352 {
353 constexpr byte MemREAD = 0xa0;
354
355 constexpr byte MemWRITE = 0xa1;
356
357 constexpr byte LOAD = 0xa2;
358
359 constexpr byte SAVE = 0xa3;
360
361 constexpr byte MotorREAD = 0xa4;
362
363 constexpr byte MotorWRITE = 0xa5;
364
365 constexpr byte SystemREAD = 0xbb;
366
367 constexpr byte SystemWRITE = 0xbc;
368
369 constexpr byte ReBoot = 0xbd;
370
371 constexpr byte FactoryReset = 0xbe;
372
373 constexpr byte SystemINIT = 0xbf;
374
375 }
376
377
379 namespace BuffPter
380 {
381 //''' 送受信データ位置 '''
382 constexpr int Header = 0;
383 constexpr int Header1 = 1;
384 constexpr int ID = 2;
385 constexpr int Length = 3;
386 constexpr int CMD = 4;
387 constexpr int Option = 5;
388 constexpr int Status = 5;
389 constexpr int Data = 6;
390 constexpr int ACK = 6;
391 }
392
400 namespace ReceiveDataOption
401 {
402 constexpr byte NoReturn = 0x00;
403 constexpr byte Position = 0x01;
404 constexpr byte Speed = 0x02;
405 constexpr byte Current = 0x04;
406 constexpr byte Torque = 0x08;
407 constexpr byte Pwm = 0x10;
408 constexpr byte MotorTemp = 0x20;
409 constexpr byte CpuTemp = 0x40;
410 constexpr byte Voltage = 0x80;
411 constexpr byte Full = 0xFF;
412 }
413
421 namespace ComError
422 {
423
424 constexpr unsigned short OK = 0;
425
426 constexpr unsigned short TimeOut = 0xFF00;
427
428 constexpr unsigned short CrcError = 0xFE00;
429
430 constexpr unsigned short FormatError = 0xFD00;
431
432 constexpr unsigned short SendError = 0xFC00;
433
434 constexpr unsigned short ReceiveError = 0xFB00;
435
436 constexpr unsigned short MotorREADConvertError = 0xFA00;
437
438
439 // NAKエラー
440 // NakError = 0xFB00
441
442
443 constexpr unsigned short NG = 0xFA00;
444
445 constexpr unsigned short ErrorMask = 0xFF00;
446
447 }
448
450 namespace MinimumLength
451 {
452
453 constexpr byte Send = 8;
454 // Header(2),id(1),length(1),cmd(1),st(1),crc(2)
455
456 constexpr byte Receive = 8;
457 // Header(2),id(1),length(1),cmd(1),st(1),crc(2)
458 }
459
461 namespace PmxStatusErrorList
462 {
463
464 constexpr byte SystemError = 0x01;
465 constexpr byte MotorError = 0x02;
466 constexpr byte CommunicationError = 0x04;
467 constexpr byte CommandError = 0x08;
468 constexpr byte RamAccessError = 0x10;
469 constexpr byte ModeError = 0x20;
470 constexpr byte DataError = 0x40;
471 }
472
474 namespace TorqueSwitchType
475 {
476 constexpr byte Control = 0x00;
477
478 constexpr byte TorqueOn = 0x01;
479
480 constexpr byte Free = 0x02;
481
482 constexpr byte Brake = 0x04;
483
484 constexpr byte Hold = 0x08;
485
486 constexpr byte Mask = 0x0F;
487
488 // // constexpr byte NoReply = 0x10; //!< 返事なし
489
490 // // constexpr byte WaitTact = 0x80; //!< TACT待ち
491
492 // エラー
493 constexpr byte Error = 0xFF;
494 }
495
497 namespace CloneReverseType
498 {
499 constexpr byte Clone = 0x01;
500
501 constexpr byte Reverse = 0x02;
502
503 }
504};
505
517{
518 static constexpr int Version = 1000;
519
520 //データ送受信 (ここだけソースに無いので記載)///////////////////////////////////////////////////////////////////
533 virtual bool synchronize(byte txBuf[],byte txLen,byte rxBuf[],byte rxLen); //インターフェイス、子クラスで定義すること
534 virtual bool synchronizeVariableRead(byte *txBuf, byte txLen, byte *rxBuf, byte *rxLen);
535 //virtual bool setSerialParameters(long baudrate = PMX::ErrorUint32Data,byte parity=PMX::ErrorByteData,unsigned int timeout=PMX::ErrorUint16Data);
536
537 //送受信ログの処理
538 public:
541 virtual void setLogSerial(HardwareSerial *logSerial);
542
543
544
545 protected:
546 virtual HardwareSerial *getLogSerial();
547 virtual void logOutputPrint(byte outputBytes[],int outputLength);
548
549
550
551 public:
552
553 unsigned short MemREAD(byte id, unsigned short addr, int readDataSize, byte rxData[]);
554 unsigned short MemREADToByte(byte id, unsigned short addr , byte *byteData);
555 unsigned short MemREADToInt16(byte id, unsigned short addr , short *int16Data);
556 unsigned short MemREADToUint16(byte id, unsigned short addr , unsigned short *uint16Data);
557 unsigned short MemREADToInt32(byte id, unsigned short addr , long *int32Data);
558 unsigned short MemREADToUint32(byte id, unsigned short addr , unsigned long *uint32Data);
559
560 unsigned short MemWRITE(byte id, unsigned short addr, byte txDataArray[], int txDataSize, byte writeOpt=0);
561 unsigned short MemWRITEToByte(byte id, unsigned short addr,byte byteData,byte writeOpt=0);
562 unsigned short MemWRITEToInt16(byte id, unsigned short addr, short int16Data, byte writeOpt=0);
563 unsigned short MemWRITEToUint16(byte id, unsigned short addr, unsigned short uint16Data, byte writeOpt=0);
564 unsigned short MemWRITEToInt32(byte id, unsigned short addr, long int32Data, byte writeOpt=0);
565 unsigned short MemWRITEToUint32(byte id, unsigned short addr, unsigned long uint32Data, byte writeOpt=0);
566
567
568 unsigned short MotorREAD(byte id, byte receiveMode, long receiveData[8], byte controlMode=0x01, byte *torqueSw = nullptr);
569
570 unsigned short MotorWRITE(byte id, byte toruqeOnSw);
571 unsigned short MotorWRITE(byte id, byte toruqeOnSw, byte receiveMode, long receiveData[8], byte controlMode=0x01);
572 unsigned short MotorWRITE(byte id, long writeDatas[], int writeDataCount);
573 unsigned short MotorWRITE(byte id, long writeDatas[], int writeDataCount,byte receiveMode, long receiveData[8], byte controlMode=0x01);
574
575 unsigned short MotorWRITESingle(byte id, long targetVal);
576 unsigned short MotorWRITESingle(byte id, long targetVal,byte receiveMode, long receiveData[8], byte controlMode=0x01);
577 unsigned short MotorWRITEDouble(byte id, long targetVal1, long targetVal2);
578 unsigned short MotorWRITEDouble(byte id, long targetVal1, long targetVal2,byte receiveMode, long receiveData[8], byte controlMode=0x01);
579 unsigned short MotorWRITETriple(byte id, long targetVal1, long targetVal2, long targetVal3);
580 unsigned short MotorWRITETriple(byte id, long targetVal1, long targetVal2, long targetVal3,byte receiveMode, long receiveData[8], byte controlMode=0x01);
581
582
583
584 unsigned short LOAD(byte id);
585 unsigned short SAVE(byte id);
586 unsigned short SystemREAD(byte id, byte rxData[]);
587
588 //SystemWriteを利用したデータのget関数一覧
589 unsigned short getSerialNumber(byte id,unsigned long *serialLongNum);
590 unsigned short getSerialNumber(byte id,byte serialByteNum[4]);
591 unsigned short getModelNum(byte id,unsigned long *modelFullNum);
592 unsigned short getModelNum(byte id, unsigned short *modelNum, unsigned short *seriesNum);
593 unsigned short getVersion(byte id,byte verData[4]);
594 unsigned short getResponseTime(byte id,byte *respTime);
595
596 unsigned short SystemWRITE(byte id, byte serialNum[4], byte option, byte newId, byte newBaudrateVal, byte newParityVal, byte newResponseTime);
597 unsigned short SystemWRITE(byte id, unsigned long serialNum, byte option, byte newId, byte newBaudrateVal, byte newParityVal, byte newResponseTime);
598 unsigned short SystemWRITE(byte id, byte option, byte newId, byte newBaudrateVal, byte newParityVal, byte newResponseTime);
599
600 //SystemWriteを利用したデータのset関数一覧
601 unsigned short setId(byte id, byte newId);
602 unsigned short setBaudrate(byte id, byte newBaudRate);
603 unsigned short setParity(byte id, byte newParityNum);
604 unsigned short setResponseTime(byte id, byte respTime);
605
606 unsigned short ReBoot(byte id, int resetTime = 0);
607 unsigned short FactoryReset(byte id, byte serialNum[4] = NULL);
608
609 //MemREADを利用したデータのget関数一覧
610 //アドレス0~
611 unsigned short getPositionKpGain(byte id, unsigned long *data);
612 unsigned short getPositionKiGain(byte id, unsigned long *data);
613 unsigned short getPositionKdGain(byte id, unsigned long *data);
614 unsigned short getPositionGain(byte id, unsigned long *kpdata, unsigned long *kidata, unsigned long *kddata);
615 unsigned short getPositionStretchGain(byte id, unsigned long *data);
616 unsigned short getSpeedKpGain(byte id, unsigned long *data);
617 unsigned short getSpeedKiGain(byte id, unsigned long *data);
618 unsigned short getSpeedKdGain(byte id, unsigned long *data);
619 unsigned short getSpeedGain(byte id, unsigned long *kpdata, unsigned long *kidata, unsigned long *kddata);
620 unsigned short getCurrentKpGain(byte id, unsigned long *data);
621 unsigned short getCurrentKiGain(byte id, unsigned long *data);
622 unsigned short getCurrentKdGain(byte id, unsigned long *data);
623 unsigned short getCurrentGain(byte id, unsigned long *kpdata, unsigned long *kidata, unsigned long *kddata);
624 unsigned short getTorqueKpGain(byte id, unsigned long *data);
625 unsigned short getTorqueKiGain(byte id, unsigned long *data);
626 unsigned short getTorqueKdGain(byte id, unsigned long *data);
627 unsigned short getTorqueGain(byte id, unsigned long *kpdata, unsigned long *kidata, unsigned long *kddata);
628 unsigned short getCenterOffset(byte id, short *offsetData);
629 // unsigned short getReverse(byte id, byte *data);
630 unsigned short getCloneReverse(byte id, byte *data);
631 unsigned short getMinVoltageLimit(byte id, unsigned short *data);
632 unsigned short getMinVoltageLimitPower(byte id, unsigned short *data);
633 unsigned short getMaxVoltageLimit(byte id, unsigned short *data);
634 unsigned short getMaxVoltageLimitPower(byte id, unsigned short *data);
635 unsigned short getCurrentLimit(byte id, unsigned short *data);
636 unsigned short getCurrentLimitPower(byte id, unsigned short *data);
637 unsigned short getMotorTempLimit(byte id, unsigned short *data);
638 unsigned short getMotorTempLimitPower(byte id, unsigned short *data);
639 unsigned short getCpuTempLimit(byte id, unsigned short *data);
640 unsigned short getCpuTempLimitPower(byte id, unsigned short *data);
641 unsigned short getCwPositionLimit(byte id, short *data);
642 unsigned short getCwPositionLimitPower(byte id, unsigned short *data);
643 unsigned short getCcwPositionLimit(byte id, short *data);
644 unsigned short getCcwPositionLimitPower(byte id, unsigned short *data);
645 unsigned short getMaxGoalSpeed(byte id, short *data);
646 unsigned short getMaxGoalCurrent(byte id, short *data);
647 unsigned short getMaxGoalTorque(byte id, short *data);
648 unsigned short getTotalPowerRate(byte id, unsigned short *data);
649 unsigned short getLockDetectTime(byte id, unsigned short *data);
650 unsigned short getLockThresholdPower(byte id, unsigned short *data);
651 unsigned short getLockDetectOutputPower(byte id, unsigned short *data);
652
653 //アドレス300番台
654 unsigned short getPosition(byte id, short *posData);
655 unsigned short getPosition(byte id, unsigned short *posData);
656 unsigned short getPosition(byte id, long *posData, byte controlMode = 0x01);
657 unsigned short getSpeed(byte id, short *spdData);
658 unsigned short getCurrent(byte id, short *curData);
659 unsigned short getTorque(byte id, short *trqData);
660 unsigned short getPwm(byte id, short *pwmData);
661 unsigned short getMotorTemp(byte id, short *motTempData);
662 unsigned short getCPUTemp(byte id, short *cpuTempData);
663 unsigned short getInputVoltage(byte id, unsigned short *volData);
664 unsigned short getTrajectoryTime(byte id, unsigned short *traTimeData);
665 unsigned short getEncoder(byte id, unsigned short *encData);
666
667 //アドレス400番台
668 unsigned short getStatus(byte id, byte *stData);
669 unsigned short getSystemStatus(byte id, byte *sysStaData);
670 unsigned short getMotorStatus(byte id, byte *motStaData);
671 unsigned short getRamAccessStatus(byte id, unsigned short *ramStaData);
672 unsigned short getFullStatus(byte id, byte *sysSt, byte *motorSt, unsigned short *ramSt);
673 unsigned short resetFullStatus(byte id);
674
675 //アドレス500番台
676 unsigned short getTorqueSwitch(byte id, byte *trqSwitchData);
677 unsigned short getControlMode(byte id, byte *controlMode);
678 unsigned short getMotorReceive(byte id, byte *receiveMode);
679 unsigned short getTrajectory(byte id, byte *traData);
680
681 /*//要確認
682 unsigned short getGoalPosition(byte id, short *data);
683 unsigned short getGoalSpeed(byte id, short *data);
684 unsigned short getGoalCurrent(byte id, short *data);
685 unsigned short getGoalTorque(byte id, short *data);
686 unsigned short getGoalPwm(byte id, short *data);
687 unsigned short getGoalTime(byte id, unsigned short *data);
688 */
689
690 //アドレス600番台
691 unsigned short getCenterOffsetRange(byte id, short *minData, short *maxData);
692 unsigned short getMinVoltageLimitRange(byte id, unsigned short *minData, unsigned short *maxData);
693 unsigned short getMaxVoltageLimitRange(byte id, unsigned short *minData, unsigned short *maxData);
694 unsigned short getCurrentLimitRange(byte id, unsigned short *minData, unsigned short *maxData);
695 unsigned short getMotorTempLimitRange(byte id, short *minData, short *maxData);
696 unsigned short getCpuTempLimitRange(byte id, short *minData, short *maxData);
697 unsigned short getMaxGoalSpeedRange(byte id, short *minData, short *maxData);
698 unsigned short getMaxGoalCurrentRange(byte id, short *minData, short *maxData);
699 unsigned short getMaxGoalTorqueRange(byte id, short *minData, short *maxData);
700 unsigned short getCwPositionLimitRange(byte id, short *minData, short *maxData);
701 unsigned short getCcwPositionLimitRange(byte id, short *minData, short *maxData);
702
703
704 //MemWriteを利用したデータのset関数一覧
705 //アドレス0~
706 unsigned short setPositionKpGain(byte id, unsigned long data, byte writeOpt=0);
707 unsigned short setPositionKiGain(byte id, unsigned long data, byte writeOpt=0);
708 unsigned short setPositionKdGain(byte id, unsigned long data, byte writeOpt=0);
709 unsigned short setPositionGain(byte id, unsigned long kpdata, unsigned long kidata, unsigned long kddata, byte writeOpt=0);
710 unsigned short setPositionStretchGain(byte id, unsigned long data, byte writeOpt=0);
711 unsigned short setSpeedKpGain(byte id, unsigned long data, byte writeOpt=0);
712 unsigned short setSpeedKiGain(byte id, unsigned long data, byte writeOpt=0);
713 unsigned short setSpeedKdGain(byte id, unsigned long data, byte writeOpt=0);
714 unsigned short setSpeedGain(byte id, unsigned long kpdata, unsigned long kidata, unsigned long kddata, byte writeOpt=0);
715 unsigned short setCurrentKpGain(byte id, unsigned long data, byte writeOpt=0);
716 unsigned short setCurrentKiGain(byte id, unsigned long data, byte writeOpt=0);
717 unsigned short setCurrentKdGain(byte id, unsigned long data, byte writeOpt=0);
718 unsigned short setCurrentGain(byte id, unsigned long kpdata, unsigned long kidata, unsigned long kddata, byte writeOpt=0);
719 unsigned short setTorqueKpGain(byte id, unsigned long data, byte writeOpt=0);
720 unsigned short setTorqueKiGain(byte id, unsigned long data, byte writeOpt=0);
721 unsigned short setTorqueKdGain(byte id, unsigned long data, byte writeOpt=0);
722 unsigned short setTorqueGain(byte id, unsigned long kpdata, unsigned long kidata, unsigned long kddata, byte writeOpt=0);
723 unsigned short setCenterOffset(byte id,short offsetData);
724 unsigned short setCloneReverse(byte id,byte data);
725 unsigned short setMinVoltageLimit(byte id,unsigned short minVol, unsigned short limPower ,byte writeOpt=0);
726 unsigned short setMaxVoltageLimit(byte id,unsigned short maxVol, unsigned short limPower ,byte writeOpt=0);
727 unsigned short setCurrentLimit(byte id, short maxCur, unsigned short limPower ,byte writeOpt=0);
728 unsigned short setMotorTempLimit(byte id, short motorTemp, unsigned short limPower ,byte writeOpt=0);
729 unsigned short setCpuTempLimit(byte id, short cpuTemp, unsigned short limPower ,byte writeOpt=0);
730 unsigned short setPositionLimit(byte id, short cwPos, short ccwPos, unsigned short limPower ,byte writeOpt=0);
731 unsigned short setMaxGoalSpeed(byte id, short maxGoalSpd, byte writeOpt=0);
732 unsigned short setMaxGoalCurrent(byte id, short maxGoalCur, byte writeOpt=0);
733 unsigned short setMaxGoalTorque(byte id, short maxGoalTrq, byte writeOpt=0);
734 unsigned short setTotalPowerRate(byte id,unsigned short rate, byte writeOpt=0);
735 unsigned short setLockDetect(byte id, unsigned short time, unsigned short power, unsigned short outputPower, byte writeOpt=0);
736
737 //アドレス500番台
738 unsigned short setTorqueSwitch(byte id, byte data, byte writeOpt=1);
739 unsigned short setControlMode(byte id, byte controlMode,byte writeOpt=0);
740 unsigned short setMotorReceive(byte id, byte receiveMode,byte writeOpt=0);
741 unsigned short setTrajectory(byte id, byte trajecrotyData, byte writeOpt=0);
742
743 //MotorWRITEを利用したデータのset関数一覧
744 unsigned short setMotorTorqueOn(byte id);
745 unsigned short setMotorTorqueOn(byte id,byte receiveMode, long receiveData[8], byte controlMode=0x01);
746 unsigned short setMotorFree(byte id);
747 unsigned short setMotorFree(byte id,byte receiveMode, long receiveData[8], byte controlMode=0x01);
748 unsigned short setMotorBrake(byte id);
749 unsigned short setMotorBrake(byte id,byte receiveMode, long receiveData[8], byte controlMode=0x01);
750 unsigned short setMotorHold(byte id);
751 unsigned short setMotorHold(byte id,byte receiveMode, long receiveData[8], byte controlMode=0x01);
752 unsigned short setPosition(byte id, short pos);
753 unsigned short setPosition(byte id, short pos, byte receiveMode, long receiveData[8]);
754
755
756 protected:
757
758 bool defaultMakeCmd(byte id, byte cmd,byte txData[],byte *txDataSize ,byte header=0xfe);
759
760 unsigned short checkRecv(byte rxBuff[],byte cmd,byte header=0xfe);
761
762 static unsigned int __byteCounter(byte val);
763
764 static bool __convReceiveMotorData(byte receiveMode, byte returnDataBytes[], byte receiveBytesSize, long reData[], byte controlMode=0x01);
765
766
767
768
769
770};
771
772
773
774
775
776#endif
777
778
PMXで使用する関数や定義をひとまとまりにしたものです
Definition: PmxBaseClass.h:517
unsigned short MemREADToUint16(byte id, unsigned short addr, unsigned short *uint16Data)
MemREADで取得したデータをUint16(符号なし2byte)に変換して取得します。
Definition: PmxBaseClass.cpp:198
unsigned short getCenterOffset(byte id, short *offsetData)
指定した ID の中央値オフセット値を取得します。
Definition: PmxBaseClass.cpp:2130
unsigned short setPosition(byte id, short pos)
指定した ID のモータの位置パラメーターを設定し、データをモーター コントローラーに送信します。
Definition: PmxBaseClass.cpp:3987
unsigned short LOAD(byte id)
PMXサーボモータのLOADコマンドを発行し、ステータス結果を取得します。
Definition: PmxBaseClass.cpp:444
unsigned short getInputVoltage(byte id, unsigned short *volData)
指定された ID の現在の電圧を取得します。
Definition: PmxBaseClass.cpp:2608
unsigned short MemWRITEToUint16(byte id, unsigned short addr, unsigned short uint16Data, byte writeOpt=0)
MemWRITEでUint16(符号なし2byte)のデータを書き込みます。その結果のステータス情報を返信します。
Definition: PmxBaseClass.cpp:387
unsigned short getCurrentKiGain(byte id, unsigned long *data)
指定した ID の電流制御のIゲインを取得します。
Definition: PmxBaseClass.cpp:1984
unsigned short setTorqueKpGain(byte id, unsigned long data, byte writeOpt=0)
指定した ID のトルク制御のPゲインを変更します。
Definition: PmxBaseClass.cpp:3472
unsigned short setCenterOffset(byte id, short offsetData)
指定した ID の中央値オフセット値を設定します。
Definition: PmxBaseClass.cpp:3555
unsigned short setPositionKdGain(byte id, unsigned long data, byte writeOpt=0)
指定した ID の位置制御のDゲインを変更します。
Definition: PmxBaseClass.cpp:3245
unsigned short setMinVoltageLimit(byte id, unsigned short minVol, unsigned short limPower, byte writeOpt=0)
指定した ID の下限電圧を下回った時の挙動を設定します。
Definition: PmxBaseClass.cpp:3586
unsigned short MotorWRITESingle(byte id, long targetVal)
MotorWRITEでデータ指示一つの場合に使用します
Definition: PmxBaseClass.cpp:1111
unsigned short setMaxGoalCurrent(byte id, short maxGoalCur, byte writeOpt=0)
指定した ID の最大電流指令値を設定します。
Definition: PmxBaseClass.cpp:3735
unsigned short setPositionKiGain(byte id, unsigned long data, byte writeOpt=0)
指定した ID の位置制御のIゲインを変更します。
Definition: PmxBaseClass.cpp:3230
unsigned short setLockDetect(byte id, unsigned short time, unsigned short power, unsigned short outputPower, byte writeOpt=0)
指定した ID のロック時間、ロックと認識される出力割合、およびロック時間の出力%値を設定します。
Definition: PmxBaseClass.cpp:3782
unsigned short getCpuTempLimitRange(byte id, short *minData, short *maxData)
指定した ID のCPU温度の範囲(CpuTemp)を取得します。
Definition: PmxBaseClass.cpp:3000
unsigned short getEncoder(byte id, unsigned short *encData)
指定された ID のエンコーダを取得します。
Definition: PmxBaseClass.cpp:2636
unsigned short setTorqueKdGain(byte id, unsigned long data, byte writeOpt=0)
指定した ID のトルク制御のDゲインを変更します。
Definition: PmxBaseClass.cpp:3502
unsigned short MemWRITEToByte(byte id, unsigned short addr, byte byteData, byte writeOpt=0)
MemWRITEでbyte(符号なし1byte)のデータを書き込みます。その結果のステータス情報を返信します。
Definition: PmxBaseClass.cpp:349
unsigned short MemREADToByte(byte id, unsigned short addr, byte *byteData)
MemREADで取得したデータをbyte(符号なし1byte)に変換して取得します。
Definition: PmxBaseClass.cpp:151
unsigned short getCurrentLimitRange(byte id, unsigned short *minData, unsigned short *maxData)
指定した ID の電流(Current)の設定可能な範囲を取得します。
Definition: PmxBaseClass.cpp:2929
unsigned short setPositionLimit(byte id, short cwPos, short ccwPos, unsigned short limPower, byte writeOpt=0)
指定した ID の最大角を上回った時の挙動を設定します。
Definition: PmxBaseClass.cpp:3696
unsigned short getMaxGoalCurrent(byte id, short *data)
指定したIDの指令可能な最大電流値を取得します。
Definition: PmxBaseClass.cpp:2372
unsigned short getModelNum(byte id, unsigned long *modelFullNum)
指定したIDのサーボからモデル番号を取得します。
Definition: PmxBaseClass.cpp:1337
unsigned short getVersion(byte id, byte verData[4])
指定したIDからファームウェアのバージョン番号を取得します。
Definition: PmxBaseClass.cpp:1408
unsigned short checkRecv(byte rxBuff[], byte cmd, byte header=0xfe)
checkRecv関数は、受信パケットのヘッダー、パケット長、およびコマンドをチェックします。
Definition: PmxBaseClass.cpp:35
unsigned short setMaxVoltageLimit(byte id, unsigned short maxVol, unsigned short limPower, byte writeOpt=0)
指定した ID の上限電圧を上回った時の挙動を設定します。
Definition: PmxBaseClass.cpp:3608
unsigned short getPositionGain(byte id, unsigned long *kpdata, unsigned long *kidata, unsigned long *kddata)
指定した ID の位置制御のPIDゲインを取得します。
Definition: PmxBaseClass.cpp:1840
unsigned short setSpeedGain(byte id, unsigned long kpdata, unsigned long kidata, unsigned long kddata, byte writeOpt=0)
指定した ID の速度制御のPIDゲインを変更します。
Definition: PmxBaseClass.cpp:3356
unsigned short getCpuTempLimit(byte id, unsigned short *data)
指定したIDのCPU温度リミット値を取得します。
Definition: PmxBaseClass.cpp:2270
unsigned short getCurrentLimitPower(byte id, unsigned short *data)
指定したIDの電流リミットを超えた時の出力割合を取得します。
Definition: PmxBaseClass.cpp:2228
unsigned short ReBoot(byte id, int resetTime=0)
サーボモータを再起動させます。
Definition: PmxBaseClass.cpp:1685
unsigned short MemREADToInt16(byte id, unsigned short addr, short *int16Data)
MemREADで取得したデータをint16(符号あり2byte)に変換して取得します。
Definition: PmxBaseClass.cpp:173
unsigned short setCurrentKpGain(byte id, unsigned long data, byte writeOpt=0)
指定した ID の電流制御のPゲインを変更します。
Definition: PmxBaseClass.cpp:3389
unsigned short getMinVoltageLimitRange(byte id, unsigned short *minData, unsigned short *maxData)
指定したIDの入力最小電圧リミット値(MinVoltageLimit)の設定可能な最小/最大の範囲を取得します。
Definition: PmxBaseClass.cpp:2860
unsigned short setParity(byte id, byte newParityNum)
指定したIDのパリティを設定します
Definition: PmxBaseClass.cpp:1644
unsigned short SystemWRITE(byte id, byte serialNum[4], byte option, byte newId, byte newBaudrateVal, byte newParityVal, byte newResponseTime)
SystemWRITEコマンドを使用してID、ボーレート、パリティ、および応答時間を設定します。
Definition: PmxBaseClass.cpp:1480
unsigned short getLockDetectTime(byte id, unsigned short *data)
指定したIDのロック検知を認識するまでの時間を取得します。
Definition: PmxBaseClass.cpp:2418
unsigned short getSpeedKiGain(byte id, unsigned long *data)
指定した ID の速度制御のIゲインを取得します。
Definition: PmxBaseClass.cpp:1905
unsigned short MemWRITEToUint32(byte id, unsigned short addr, unsigned long uint32Data, byte writeOpt=0)
MemWRITEでUint32(符号なし4byte)のデータを書き込みます。その結果のステータス情報を返信します。
Definition: PmxBaseClass.cpp:427
unsigned short getMotorReceive(byte id, byte *receiveMode)
指定した ID の応答データ指定値を取得します。
Definition: PmxBaseClass.cpp:2793
unsigned short getPosition(byte id, short *posData)
指定したIDの現在指示位置を取得します。
Definition: PmxBaseClass.cpp:2462
unsigned short getTrajectoryTime(byte id, unsigned short *traTimeData)
指定された ID の現在の補間時間を取得します。
Definition: PmxBaseClass.cpp:2622
unsigned short getTorqueGain(byte id, unsigned long *kpdata, unsigned long *kidata, unsigned long *kddata)
指定した ID のトルク制御のDゲインを取得します。
Definition: PmxBaseClass.cpp:2088
unsigned short getCcwPositionLimitPower(byte id, unsigned short *data)
指定したIDのCCW側の角度を超えた時の出力の割合を取得します。
Definition: PmxBaseClass.cpp:2340
unsigned short getCenterOffsetRange(byte id, short *minData, short *maxData)
指定したIDの中央値オフセット(CenterOffset)の設定可能な最小/最大の範囲を取得します。
Definition: PmxBaseClass.cpp:2824
unsigned short setMotorTempLimit(byte id, short motorTemp, unsigned short limPower, byte writeOpt=0)
指定した ID のモータ温度最大値を上回った時の挙動を設定します。
Definition: PmxBaseClass.cpp:3651
unsigned short setCurrentKdGain(byte id, unsigned long data, byte writeOpt=0)
指定した ID の電流制御のDゲインを変更します。
Definition: PmxBaseClass.cpp:3419
unsigned short setCurrentKiGain(byte id, unsigned long data, byte writeOpt=0)
指定した ID の電流制御のIゲインを変更します。
Definition: PmxBaseClass.cpp:3404
unsigned short getMotorTemp(byte id, short *motTempData)
指定したIDの現在のモータ温度を取得します。
Definition: PmxBaseClass.cpp:2580
unsigned short setTorqueGain(byte id, unsigned long kpdata, unsigned long kidata, unsigned long kddata, byte writeOpt=0)
指定した ID のトルク制御のPIDゲインを変更します。
Definition: PmxBaseClass.cpp:3519
unsigned short setMotorBrake(byte id)
指定した ID のモータをブレーキにし、ステータス、モータのON/OFF、受信データを取得します。
Definition: PmxBaseClass.cpp:3930
unsigned short getCwPositionLimit(byte id, short *data)
指定したIDのCW方向の動作角度リミット値を取得します。
Definition: PmxBaseClass.cpp:2298
unsigned short setTorqueKiGain(byte id, unsigned long data, byte writeOpt=0)
指定した ID のトルク制御のIゲインを変更します。
Definition: PmxBaseClass.cpp:3487
unsigned short setTrajectory(byte id, byte trajecrotyData, byte writeOpt=0)
指定した ID の補間制御軌道生成タイプ指定を設定します。
Definition: PmxBaseClass.cpp:3855
unsigned short getRamAccessStatus(byte id, unsigned short *ramStaData)
指定された ID のRAMアクセスステータスを取得します。
Definition: PmxBaseClass.cpp:2704
unsigned short getStatus(byte id, byte *stData)
指定したIDのステータスを取得します。
Definition: PmxBaseClass.cpp:2653
unsigned short getMaxGoalTorqueRange(byte id, short *minData, short *maxData)
指定した ID の最大トルク指令値(MaxGoalTorque)の設定可能な範囲を取得します。
Definition: PmxBaseClass.cpp:3176
unsigned short getTorque(byte id, short *trqData)
指定した ID の現在のトルクを取得します。
Definition: PmxBaseClass.cpp:2552
unsigned short getMotorStatus(byte id, byte *motStaData)
指定したIDのモータステータスを取得します。
Definition: PmxBaseClass.cpp:2687
unsigned short getMaxVoltageLimitRange(byte id, unsigned short *minData, unsigned short *maxData)
指定した ID の最大電圧(MaxVoltage)の設定可能な範囲を取得します。
Definition: PmxBaseClass.cpp:2895
unsigned short getSpeedKpGain(byte id, unsigned long *data)
指定した ID の速度制御のPゲインを取得します。
Definition: PmxBaseClass.cpp:1892
unsigned short setBaudrate(byte id, byte newBaudRate)
指定したIDの通信速度を設定します
Definition: PmxBaseClass.cpp:1626
unsigned short getMaxGoalTorque(byte id, short *data)
指定したIDの指令可能な最大推定トルク値を取得します。
Definition: PmxBaseClass.cpp:2388
unsigned short MotorWRITETriple(byte id, long targetVal1, long targetVal2, long targetVal3)
MotorWRITEを使用して3変数を指示するときに使用します。
Definition: PmxBaseClass.cpp:1178
unsigned short getPositionKpGain(byte id, unsigned long *data)
指定した ID の位置制御のPゲインを取得します。
Definition: PmxBaseClass.cpp:1801
unsigned short getCloneReverse(byte id, byte *data)
指定した ID のクローン/リバース値を取得します。
Definition: PmxBaseClass.cpp:2144
unsigned short setSpeedKiGain(byte id, unsigned long data, byte writeOpt=0)
指定した ID の速度制御のIゲインを変更します。
Definition: PmxBaseClass.cpp:3324
unsigned short getResponseTime(byte id, byte *respTime)
システム読み取り操作のステータスと応答時間を取得します。
Definition: PmxBaseClass.cpp:1441
unsigned short MotorWRITE(byte id, byte toruqeOnSw)
MotorWRITE 機能は、モータの制御やトルクのオン/オフを切り替えるコマンドを送信し、モーターからステータスとデータを受信します。
Definition: PmxBaseClass.cpp:792
unsigned short getCurrentLimit(byte id, unsigned short *data)
指定したIDの電流リミット値を取得します。
Definition: PmxBaseClass.cpp:2214
unsigned short setMaxGoalSpeed(byte id, short maxGoalSpd, byte writeOpt=0)
指定した ID の最大速度指令値を設定します。
Definition: PmxBaseClass.cpp:3718
static unsigned int __byteCounter(byte val)
制御モード、応答モードを基に必要とするデータが合計何byteになるのか計算をします。
Definition: PmxBaseClass.cpp:652
unsigned short getCurrentKdGain(byte id, unsigned long *data)
指定した ID の電流制御のDゲインを取得します。
Definition: PmxBaseClass.cpp:1996
unsigned short getSystemStatus(byte id, byte *sysStaData)
指定された ID のシステムステータスを取得します。
Definition: PmxBaseClass.cpp:2670
unsigned short setCurrentLimit(byte id, short maxCur, unsigned short limPower, byte writeOpt=0)
指定した ID のモータ消費電流最大値を上回った時の挙動を設定します。
Definition: PmxBaseClass.cpp:3629
unsigned short getSpeedGain(byte id, unsigned long *kpdata, unsigned long *kidata, unsigned long *kddata)
指定した ID の速度制御のPIDゲインを取得します。
Definition: PmxBaseClass.cpp:1931
unsigned short getMinVoltageLimit(byte id, unsigned short *data)
指定したIDの下限電圧リミット値を取得します。
Definition: PmxBaseClass.cpp:2158
unsigned short getMotorTempLimitPower(byte id, unsigned short *data)
指定したIDのモータ温度リミットを超えた時の出力割合を取得します。
Definition: PmxBaseClass.cpp:2256
unsigned short setMotorHold(byte id)
指定した ID のモータをホールドにし、ステータス、モータのON/OFF、受信データを取得します。
Definition: PmxBaseClass.cpp:3959
unsigned short getMaxGoalSpeedRange(byte id, short *minData, short *maxData)
指定した ID の最大速度指令値(MaxGoalSpeed)の設定可能な範囲を取得します。
Definition: PmxBaseClass.cpp:3105
unsigned short resetFullStatus(byte id)
指定された ID の全てのステータス情報をリセットします。
Definition: PmxBaseClass.cpp:2748
unsigned short setMotorTorqueOn(byte id)
指定した ID のモータをトルクオンにし、ステータス、モータのON/OFF、受信データを取得します。
Definition: PmxBaseClass.cpp:3873
unsigned short getPwm(byte id, short *pwmData)
指定したIDの現在のPWMを取得します。
Definition: PmxBaseClass.cpp:2566
unsigned short setPositionGain(byte id, unsigned long kpdata, unsigned long kidata, unsigned long kddata, byte writeOpt=0)
指定した ID の位置制御のPIDゲインを変更します。
Definition: PmxBaseClass.cpp:3261
unsigned short getCPUTemp(byte id, short *cpuTempData)
指定された ID の現在のCPU温度を取得します。
Definition: PmxBaseClass.cpp:2594
unsigned short MemWRITEToInt32(byte id, unsigned short addr, long int32Data, byte writeOpt=0)
MemWRITEでint32(符号あり4byte)のデータを書き込みます。その結果のステータス情報を返信します。
Definition: PmxBaseClass.cpp:407
unsigned short setMotorReceive(byte id, byte receiveMode, byte writeOpt=0)
指定したIDのmotorREADやmotorWRITEから返信される応答モードを設定します。
Definition: PmxBaseClass.cpp:3841
unsigned short getTorqueKdGain(byte id, unsigned long *data)
指定した ID のトルク制御のDゲインを取得します。
Definition: PmxBaseClass.cpp:2073
unsigned short getLockDetectOutputPower(byte id, unsigned short *data)
指定したIDがロック検知が起きた時の出力の割合を取得します。
Definition: PmxBaseClass.cpp:2448
static bool __convReceiveMotorData(byte receiveMode, byte returnDataBytes[], byte receiveBytesSize, long reData[], byte controlMode=0x01)
受信モードに基づいてMotorWRITE/Readで送られて来たデータを変換します。
Definition: PmxBaseClass.cpp:680
unsigned short SAVE(byte id)
PMXサーボモータのSAVEコマンドを発行し、ステータス結果を取得します。
Definition: PmxBaseClass.cpp:495
unsigned short setMotorFree(byte id)
指定した ID のモータをフリーにし、ステータス、モータのON/OFF、受信データを取得します。
Definition: PmxBaseClass.cpp:3901
unsigned short SystemREAD(byte id, byte rxData[])
SystemREAD 関数は、サーボからシステム情報を読み取ります。
Definition: PmxBaseClass.cpp:1219
unsigned short getCurrent(byte id, short *curData)
指定した ID の現在の電流を取得します。
Definition: PmxBaseClass.cpp:2538
unsigned short getLockThresholdPower(byte id, unsigned short *data)
指定したIDのロック検知を開始する出力指示の閾値を取得します。
Definition: PmxBaseClass.cpp:2434
unsigned short getCcwPositionLimitRange(byte id, short *minData, short *maxData)
指定したIDの指定したCCW方向の動作角度リミット値(CcwPosition)の設定可能な範囲を取得します。
Definition: PmxBaseClass.cpp:3071
unsigned short MotorREAD(byte id, byte receiveMode, long receiveData[8], byte controlMode=0x01, byte *torqueSw=nullptr)
MotorREAD関数を発行し、応答モードに応じてデータを取得します。
Definition: PmxBaseClass.cpp:552
unsigned short getCurrentKpGain(byte id, unsigned long *data)
指定した ID の電流制御のPゲインを取得します。
Definition: PmxBaseClass.cpp:1972
unsigned short getMotorTempLimit(byte id, unsigned short *data)
指定したIDのモータ温度リミット値を取得します。
Definition: PmxBaseClass.cpp:2242
unsigned short FactoryReset(byte id, byte serialNum[4]=NULL)
サーボを工場出荷時の設定にリセットします
Definition: PmxBaseClass.cpp:1741
unsigned short getMaxVoltageLimit(byte id, unsigned short *data)
指定したIDの上限リミット電圧を取得します。
Definition: PmxBaseClass.cpp:2186
unsigned short getMaxGoalCurrentRange(byte id, short *minData, short *maxData)
指定した ID の最大電流指令値(MaxGoalCurrent)の設定可能な範囲を取得します。
Definition: PmxBaseClass.cpp:3140
unsigned short getTotalPowerRate(byte id, unsigned short *data)
指定したIDのモータに出力する割合を取得します。
Definition: PmxBaseClass.cpp:2404
unsigned short setTotalPowerRate(byte id, unsigned short rate, byte writeOpt=0)
指定した ID のモータ出力制限%値を設定します。
Definition: PmxBaseClass.cpp:3766
unsigned short getPositionStretchGain(byte id, unsigned long *data)
指定した ID の位置制御のストレッチゲインを取得します。
Definition: PmxBaseClass.cpp:1879
unsigned short setCurrentGain(byte id, unsigned long kpdata, unsigned long kidata, unsigned long kddata, byte writeOpt=0)
指定した ID の電流制御のPIDゲインを変更します。
Definition: PmxBaseClass.cpp:3436
unsigned short getSerialNumber(byte id, unsigned long *serialLongNum)
指定したIDのサーボからシリアル番号を取得します。
Definition: PmxBaseClass.cpp:1282
unsigned short MemWRITEToInt16(byte id, unsigned short addr, short int16Data, byte writeOpt=0)
MemWRITEでint16(符号あり2byte)のデータを書き込みます。その結果のステータス情報を返信します。
Definition: PmxBaseClass.cpp:367
unsigned short getCurrentGain(byte id, unsigned long *kpdata, unsigned long *kidata, unsigned long *kddata)
指定した ID の電流制御のPIDゲインを取得します。
Definition: PmxBaseClass.cpp:2010
unsigned short getTorqueSwitch(byte id, byte *trqSwitchData)
指定した ID のトルク ON 値を取得します。
Definition: PmxBaseClass.cpp:2764
unsigned short setSpeedKdGain(byte id, unsigned long data, byte writeOpt=0)
指定した ID の速度制御のDゲインを変更します。
Definition: PmxBaseClass.cpp:3339
unsigned short getTorqueKpGain(byte id, unsigned long *data)
指定した ID のトルク制御のPゲインを取得します。
Definition: PmxBaseClass.cpp:2049
unsigned short MemREAD(byte id, unsigned short addr, int readDataSize, byte rxData[])
MemREADコマンドでPMXサーボモータからデータを取得します。
Definition: PmxBaseClass.cpp:75
unsigned short setResponseTime(byte id, byte respTime)
指定したIDの応答時間を設定します
Definition: PmxBaseClass.cpp:1663
unsigned short setPositionKpGain(byte id, unsigned long data, byte writeOpt=0)
指定した ID の位置制御のPゲインを変更します。
Definition: PmxBaseClass.cpp:3215
unsigned short setId(byte id, byte newId)
指定したIDを新しい ID に設定します。
Definition: PmxBaseClass.cpp:1606
unsigned short getMaxVoltageLimitPower(byte id, unsigned short *data)
指定したIDの上限リミット電圧を超えた場合の出力割合を取得します。
Definition: PmxBaseClass.cpp:2200
unsigned short setMaxGoalTorque(byte id, short maxGoalTrq, byte writeOpt=0)
指定した ID の最大動推定トルク指令値を設定します。
Definition: PmxBaseClass.cpp:3752
unsigned short setSpeedKpGain(byte id, unsigned long data, byte writeOpt=0)
指定した ID の速度制御のPゲインを変更します。
Definition: PmxBaseClass.cpp:3309
unsigned short getPositionKiGain(byte id, unsigned long *data)
指定した ID の位置制御のIゲインを取得します。
Definition: PmxBaseClass.cpp:1813
unsigned short MemREADToUint32(byte id, unsigned short addr, unsigned long *uint32Data)
MemREADで取得したデータをUint32(符号なし4byte)に変換して取得します。
Definition: PmxBaseClass.cpp:249
unsigned short setCpuTempLimit(byte id, short cpuTemp, unsigned short limPower, byte writeOpt=0)
指定した ID のCPU温度最大値を上回った時の挙動を設定します。
Definition: PmxBaseClass.cpp:3673
unsigned short MemREADToInt32(byte id, unsigned short addr, long *int32Data)
MemREADで取得したデータをint32(符号あり4byte)に変換して取得します。
Definition: PmxBaseClass.cpp:224
unsigned short getCpuTempLimitPower(byte id, unsigned short *data)
指定したIDのCPU温度リミットを超えた時の出力割合を取得します。
Definition: PmxBaseClass.cpp:2284
unsigned short setPositionStretchGain(byte id, unsigned long data, byte writeOpt=0)
指定した ID の位置制御のストレッチゲインを変更します。
Definition: PmxBaseClass.cpp:3295
unsigned short getSpeed(byte id, short *spdData)
 指定した ID の現在の速度を取得します。
Definition: PmxBaseClass.cpp:2524
unsigned short MotorWRITEDouble(byte id, long targetVal1, long targetVal2)
MotorWRITEを使用して2変数を指示するときに使用します。
Definition: PmxBaseClass.cpp:1145
unsigned short setTorqueSwitch(byte id, byte data, byte writeOpt=1)
指定された ID のトルクスイッチを設定します。(TorqueON / Free / Brake / Hold)
Definition: PmxBaseClass.cpp:3813
virtual void setLogSerial(HardwareSerial *logSerial)
Logを出力するシリアルポートの設定をします。
unsigned short getMotorTempLimitRange(byte id, short *minData, short *maxData)
指定した ID のモータ温度(MotorTemp)の範囲を取得します。
Definition: PmxBaseClass.cpp:2964
unsigned short getFullStatus(byte id, byte *sysSt, byte *motorSt, unsigned short *ramSt)
指定した ID の全てのステータス情報を取得します。
Definition: PmxBaseClass.cpp:2724
unsigned short getControlMode(byte id, byte *controlMode)
指定した ID の制御モードを取得します。
Definition: PmxBaseClass.cpp:2779
unsigned short getTorqueKiGain(byte id, unsigned long *data)
指定した ID のトルク制御のIゲインを取得します。
Definition: PmxBaseClass.cpp:2061
unsigned short getCwPositionLimitRange(byte id, short *minData, short *maxData)
指定したIDの指定したCW方向の動作角度リミット値(CwPosition)の設定可能な範囲を取得します。
Definition: PmxBaseClass.cpp:3036
unsigned short getTrajectory(byte id, byte *traData)
指定した ID の補間制御軌道生成タイプ指定を取得します。
Definition: PmxBaseClass.cpp:2807
unsigned short getCcwPositionLimit(byte id, short *data)
指定したIDのCCW方向の動作角度リミット値を取得します。
Definition: PmxBaseClass.cpp:2326
unsigned short getMinVoltageLimitPower(byte id, unsigned short *data)
指定したIDの下限リミット電圧を下回った場合の出力割合を取得します。
Definition: PmxBaseClass.cpp:2172
unsigned short getMaxGoalSpeed(byte id, short *data)
指定したIDの指令可能な最大速度値を取得します。
Definition: PmxBaseClass.cpp:2356
unsigned short setCloneReverse(byte id, byte data)
指定した ID のクローン/リバースを設定します。
Definition: PmxBaseClass.cpp:3568
unsigned short getCwPositionLimitPower(byte id, unsigned short *data)
指定したIDのCW側の角度を超えた時の出力の割合を取得します。
Definition: PmxBaseClass.cpp:2312
unsigned short getSpeedKdGain(byte id, unsigned long *data)
指定した ID の速度制御のDゲインを取得します。
Definition: PmxBaseClass.cpp:1917
unsigned short getPositionKdGain(byte id, unsigned long *data)
指定した ID の位置制御のDゲインを取得します。
Definition: PmxBaseClass.cpp:1825
unsigned short setControlMode(byte id, byte controlMode, byte writeOpt=0)
指定された ID の位置制御などの制御モードを設定します。
Definition: PmxBaseClass.cpp:3827
unsigned short MemWRITE(byte id, unsigned short addr, byte txDataArray[], int txDataSize, byte writeOpt=0)
PMXサーボモータにMemWRITEコマンドを発行し、結果を取得します。
Definition: PmxBaseClass.cpp:278
constexpr byte Reverse
ReverseOnの設定値
Definition: PmxBaseClass.h:501
constexpr byte Clone
cloneOnの設定値
Definition: PmxBaseClass.h:499
constexpr unsigned short FormatError
作られたデータのフォーマットに異常があった
Definition: PmxBaseClass.h:430
constexpr unsigned short ErrorMask
マスク用のデータ
Definition: PmxBaseClass.h:445
constexpr unsigned short TimeOut
無応答/Timeoutエラー
Definition: PmxBaseClass.h:426
constexpr unsigned short ReceiveError
受信したデータに異常があった
Definition: PmxBaseClass.h:434
constexpr unsigned short MotorREADConvertError
MotorREADのデータ変換に異常があった
Definition: PmxBaseClass.h:436
constexpr unsigned short NG
上記以外のエラー
Definition: PmxBaseClass.h:443
constexpr unsigned short OK
正常
Definition: PmxBaseClass.h:424
constexpr unsigned short SendError
送信する際に異常があった
Definition: PmxBaseClass.h:432
constexpr unsigned short CrcError
CRCエラー
Definition: PmxBaseClass.h:428
constexpr byte PositionTorqueTime
位置/トルク/時間制御
Definition: PmxBaseClass.h:301
constexpr byte PositionTorque
位置/トルク制御
Definition: PmxBaseClass.h:285
constexpr byte PositionCurrent
位置/電流制御
Definition: PmxBaseClass.h:281
constexpr byte Position
位置制御
Definition: PmxBaseClass.h:272
constexpr byte PositionTime
位置/時間制御
Definition: PmxBaseClass.h:291
constexpr byte Current
電流制御
Definition: PmxBaseClass.h:279
constexpr byte Time
時間(単体制御はないので定義のみ)
Definition: PmxBaseClass.h:289
constexpr byte PositionCurrentTime
位置/電流/時間制御
Definition: PmxBaseClass.h:297
constexpr byte Speed
速度制御
Definition: PmxBaseClass.h:274
constexpr byte Torque
トルク制御
Definition: PmxBaseClass.h:283
constexpr byte PWM
PWM制御
Definition: PmxBaseClass.h:287
constexpr byte _57600
57600bps
Definition: PmxBaseClass.h:323
constexpr byte _1500000
1.5Mbps
Definition: PmxBaseClass.h:333
constexpr byte _625000
625000bps
Definition: PmxBaseClass.h:327
constexpr byte _1250000
1.25Mbps
Definition: PmxBaseClass.h:331
constexpr byte _115200
115200bps
Definition: PmxBaseClass.h:325
constexpr byte _1000000
1Mbps
Definition: PmxBaseClass.h:329
constexpr byte _2000000
2Mbps
Definition: PmxBaseClass.h:335
constexpr byte _3000000
3Mbps
Definition: PmxBaseClass.h:337
constexpr byte Receive
受信コマンドの最低サイズ
Definition: PmxBaseClass.h:456
constexpr byte Send
送信コマンドの最低サイズ
Definition: PmxBaseClass.h:453
constexpr byte MotorError
Motor Error
Definition: PmxBaseClass.h:465
constexpr byte CommunicationError
Communication Error
Definition: PmxBaseClass.h:466
constexpr byte ModeError
Mode Error
Definition: PmxBaseClass.h:469
constexpr byte CommandError
Command Error
Definition: PmxBaseClass.h:467
constexpr byte SystemError
System Error
Definition: PmxBaseClass.h:464
constexpr byte DataError
Data Error
Definition: PmxBaseClass.h:470
constexpr byte RamAccessError
RAM Access Error
Definition: PmxBaseClass.h:468
constexpr unsigned short SpeedKi
速度制御のIゲイン
Definition: PmxBaseClass.h:68
constexpr unsigned short SpeedKp
速度制御のPゲイン
Definition: PmxBaseClass.h:66
constexpr unsigned short NowCurrent
現在電流
Definition: PmxBaseClass.h:149
constexpr unsigned short GoalPosition
目標位置
Definition: PmxBaseClass.h:185
constexpr unsigned short MaxVoltageLimitPower
入力電圧最大時の出力%値
Definition: PmxBaseClass.h:107
constexpr unsigned short CPUTemp
CPU温度
Definition: PmxBaseClass.h:157
constexpr unsigned short EncoderTotalCount
エンコーダのトータルカウント
Definition: PmxBaseClass.h:165
constexpr unsigned short CurrentDeadBand
電流制御 不感帯
Definition: PmxBaseClass.h:91
constexpr unsigned short ShortBrakeTorque
トルク制御時のショートブレーキ指定(PMXのV1.0.1.x~)
Definition: PmxBaseClass.h:201
constexpr unsigned short CurrentMaxRange
モータ消費電流設定値 最大値
Definition: PmxBaseClass.h:225
constexpr unsigned short PositionKp
位置制御のPゲイン
Definition: PmxBaseClass.h:57
constexpr unsigned short MaxGoalCurrentMaxRange
最大電流設定値 最大値
Definition: PmxBaseClass.h:249
constexpr unsigned short InputVoltage
入力電圧
Definition: PmxBaseClass.h:159
constexpr unsigned short TrajectoryTime
現在の補間時間
Definition: PmxBaseClass.h:161
constexpr unsigned short MotorTempMinRange
モータ温度設定値 最小値
Definition: PmxBaseClass.h:227
constexpr unsigned short CloneReverse
クローン/リバース
Definition: PmxBaseClass.h:98
constexpr unsigned short CpuTempLimit
CPU温度最大値
Definition: PmxBaseClass.h:117
constexpr unsigned short GoalTime
補間時間指示
Definition: PmxBaseClass.h:195
constexpr unsigned short MotorReceiveData
応答データフラグ
Definition: PmxBaseClass.h:181
constexpr unsigned short ErrorSystem
システムエラー
Definition: PmxBaseClass.h:170
constexpr unsigned short MinVoltageMinRange
入力電圧最小制限値 最小値
Definition: PmxBaseClass.h:211
constexpr unsigned short MinVoltageMaxRange
入力電圧最小制限値 最大値
Definition: PmxBaseClass.h:213
constexpr unsigned short EncoderValue
エンコーダの現在値
Definition: PmxBaseClass.h:163
constexpr unsigned short GoalCommandValue3
目標指令値3(PMXのV1.0.1.x~)
Definition: PmxBaseClass.h:262
constexpr unsigned short PositionSt
位置制御のストレッチ
Definition: PmxBaseClass.h:63
constexpr unsigned short CurrentMinRange
モータ消費電流設定値 最小値
Definition: PmxBaseClass.h:223
constexpr unsigned short NowSpeed
現在速度
Definition: PmxBaseClass.h:147
constexpr unsigned short CurrentKd
電流制御のDゲイン
Definition: PmxBaseClass.h:77
constexpr unsigned short MaxGoalTorqueMinRange
最大トルク設定値 最小値
Definition: PmxBaseClass.h:251
constexpr unsigned short FailSafeVoltageMaxRange
フェールセーフ電圧 最大値
Definition: PmxBaseClass.h:221
constexpr unsigned short TorqueDeadBand
トルク制御 不感帯
Definition: PmxBaseClass.h:93
constexpr unsigned short PositionKd
位置制御のDゲイン
Definition: PmxBaseClass.h:61
constexpr unsigned short MaxGoalCurrent
最大電流指令値
Definition: PmxBaseClass.h:132
constexpr unsigned short CwPositionLimitPower
CW方向最大角閾値外時の出力%値
Definition: PmxBaseClass.h:124
constexpr unsigned short ErrorStatus
エラーステータス
Definition: PmxBaseClass.h:168
constexpr unsigned short CurrentLimitPower
モータ消費電流最大時の出力%値
Definition: PmxBaseClass.h:111
constexpr unsigned short FailSafeVoltageMinRange
フェールセーフ電圧 最小値
Definition: PmxBaseClass.h:219
constexpr unsigned short CcwPositionMaxRange
CCW方向最大値 最大値
Definition: PmxBaseClass.h:241
constexpr unsigned short CurrentKp
電流制御のPゲイン
Definition: PmxBaseClass.h:73
constexpr unsigned short CurrentLimit
モータ消費電流最大値
Definition: PmxBaseClass.h:109
constexpr unsigned short MaxGoalSpeedMinRange
最大速度設定値 最小値
Definition: PmxBaseClass.h:243
constexpr unsigned short TorqueSwitch
トルクスイッチ
Definition: PmxBaseClass.h:177
constexpr unsigned short PositionKi
位置制御のIゲイン
Definition: PmxBaseClass.h:59
constexpr unsigned short CenterOffsetMinRange
中央値オフセット 最小値
Definition: PmxBaseClass.h:207
constexpr unsigned short MotorTempLimit
モータ温度最大値
Definition: PmxBaseClass.h:113
constexpr unsigned short TotalPowerRate
モータ出力制限%値
Definition: PmxBaseClass.h:136
constexpr unsigned short LockThresholdPower
ロックと認識される出力割合
Definition: PmxBaseClass.h:140
constexpr unsigned short SpeedDeadBand
速度制御 不感帯
Definition: PmxBaseClass.h:89
constexpr unsigned short MotorTempMaxRange
モータ温度設定値 最大値
Definition: PmxBaseClass.h:229
constexpr unsigned short ErrorRamAccess
RAMアクセスエラー時のアドレス
Definition: PmxBaseClass.h:174
constexpr unsigned short LockDetectOutputPower
ロック時間の出力%値
Definition: PmxBaseClass.h:142
constexpr unsigned short MinVoltageLimitPower
入力電圧最小時の出力%値
Definition: PmxBaseClass.h:103
constexpr unsigned short MaxGoalSpeedMaxRange
最大速度設定値 最大値
Definition: PmxBaseClass.h:245
constexpr unsigned short TorqueKi
トルク制御のIゲイン
Definition: PmxBaseClass.h:82
constexpr unsigned short MaxGoalSpeed
最大速度指令値
Definition: PmxBaseClass.h:130
constexpr unsigned short MotorTempLimitPower
モータ温度最大時の出力%値
Definition: PmxBaseClass.h:115
constexpr unsigned short MotorTemp
モータ温度
Definition: PmxBaseClass.h:155
constexpr unsigned short TorqueKp
トルク制御のPゲイン
Definition: PmxBaseClass.h:80
constexpr unsigned short GoalSpeed
目標速度
Definition: PmxBaseClass.h:187
constexpr unsigned short CurrentKi
電流制御のIゲイン
Definition: PmxBaseClass.h:75
constexpr unsigned short CwPositionMaxRange
CW方向最大値 最大値
Definition: PmxBaseClass.h:237
constexpr unsigned short GoalTorque
目標トルク値
Definition: PmxBaseClass.h:191
constexpr unsigned short TorqueKd
トルク制御のDゲイン
Definition: PmxBaseClass.h:84
constexpr unsigned short CpuTempLimitPower
CPU温度最大時の出力%値
Definition: PmxBaseClass.h:119
constexpr unsigned short LockDetectTime
ロック時間
Definition: PmxBaseClass.h:138
constexpr unsigned short PositionDeadBand
位置制御 不感帯
Definition: PmxBaseClass.h:87
constexpr unsigned short NowTorque
出力推定トルク
Definition: PmxBaseClass.h:151
constexpr unsigned short CwPositionLimit
CW方向最大角値
Definition: PmxBaseClass.h:122
constexpr unsigned short ShortBrakePWM
PWM制御時のショートブレーキ指定(PMXのV1.0.1.x~)
Definition: PmxBaseClass.h:204
constexpr unsigned short MaxGoalTorque
最大動推定トルク指令値
Definition: PmxBaseClass.h:134
constexpr unsigned short CcwPositionMinRange
CCW方向最大値 最小値
Definition: PmxBaseClass.h:239
constexpr unsigned short ControlMode
制御モード
Definition: PmxBaseClass.h:179
constexpr unsigned short MaxGoalTorqueMaxRange
最大トルク設定値 最大値
Definition: PmxBaseClass.h:253
constexpr unsigned short CenterOffset
中央値オフセット
Definition: PmxBaseClass.h:96
constexpr unsigned short GoalPwm
PWM出力値
Definition: PmxBaseClass.h:193
constexpr unsigned short CpuTempMinRange
CPU温度設定値 最小値
Definition: PmxBaseClass.h:231
constexpr unsigned short CcwPositionLimitPower
CCW方向最大角閾値外時の出力%値
Definition: PmxBaseClass.h:128
constexpr unsigned short GoalCommandValue2
目標指令値2(PMXのV1.0.1.x~)
Definition: PmxBaseClass.h:259
constexpr unsigned short CpuTempMaxRange
CPU温度設定値 最大値
Definition: PmxBaseClass.h:233
constexpr unsigned short MaxGoalCurrentMinRange
最大電流設定値 最小値
Definition: PmxBaseClass.h:247
constexpr unsigned short NowPosition
現在位置
Definition: PmxBaseClass.h:145
constexpr unsigned short CcwPositionLimit
CCW方向最大角値
Definition: PmxBaseClass.h:126
constexpr unsigned short MaxVoltageLimit
入力電圧最大値
Definition: PmxBaseClass.h:105
constexpr unsigned short MaxVoltageMinRange
入力電圧最大制限値 最小値
Definition: PmxBaseClass.h:215
constexpr unsigned short ErrorMotor
モータエラー
Definition: PmxBaseClass.h:172
constexpr unsigned short GoalCommandValue1
目標指令値1(PMXのV1.0.1.x~)
Definition: PmxBaseClass.h:256
constexpr unsigned short CwPositionMinRange
CW方向最大値 最小値
Definition: PmxBaseClass.h:235
constexpr unsigned short CenterOffsetMaxRange
中央値オフセット 最大値
Definition: PmxBaseClass.h:209
constexpr unsigned short Trajectory
補間制御起動生成タイプ指定
Definition: PmxBaseClass.h:183
constexpr unsigned short NowPwm
現在のPWM割合
Definition: PmxBaseClass.h:153
constexpr unsigned short ShortBrakeCurrent
電流制御時のショートブレーキ指定(PMXのV1.0.1.x~)
Definition: PmxBaseClass.h:198
constexpr unsigned short SpeedKd
速度制御のDゲイン
Definition: PmxBaseClass.h:70
constexpr unsigned short GoalCurrent
目標電流値
Definition: PmxBaseClass.h:189
constexpr unsigned short MaxVoltageMaxRange
入力電圧最大制限値 最大値
Definition: PmxBaseClass.h:217
constexpr unsigned short MinVoltageLimit
入力電圧最小値
Definition: PmxBaseClass.h:101
constexpr byte SAVE
RAMのデータをフラッシュメモリーに保存する
Definition: PmxBaseClass.h:359
constexpr byte FactoryReset
工場出荷時設定へ戻す
Definition: PmxBaseClass.h:371
constexpr byte SystemWRITE
ID・通信速度・パリティ書き込み
Definition: PmxBaseClass.h:367
constexpr byte SystemINIT
工場出荷時設定へ戻す(特殊処理)
Definition: PmxBaseClass.h:373
constexpr byte SystemREAD
IDシリアル番号等の読み込み
Definition: PmxBaseClass.h:365
constexpr byte ReBoot
リセットコマンド
Definition: PmxBaseClass.h:369
constexpr byte MotorREAD
ポジション指定コマンド
Definition: PmxBaseClass.h:361
constexpr byte MemWRITE
RAM上へデータを書き込む
Definition: PmxBaseClass.h:355
constexpr byte LOAD
フラッシュメモリーに保存されているデータをRAMへ展開する
Definition: PmxBaseClass.h:357
constexpr byte MemREAD
RAM上のデータを読み取る
Definition: PmxBaseClass.h:353
constexpr byte MotorWRITE
RAM上へデータを書き込む
Definition: PmxBaseClass.h:363
constexpr byte Hold
Holdモード
Definition: PmxBaseClass.h:484
constexpr byte Error
エラー
Definition: PmxBaseClass.h:493
constexpr byte TorqueOn
トルクON
Definition: PmxBaseClass.h:478
constexpr byte Mask
トルクON/OFFを抜き出すためのマスクする値
Definition: PmxBaseClass.h:486
constexpr byte Free
フリーモード
Definition: PmxBaseClass.h:480
constexpr byte Brake
ショートブレーキモード
Definition: PmxBaseClass.h:482
constexpr byte Control
MotorWriteのオプションで使用
Definition: PmxBaseClass.h:476
constexpr byte FifthPoly
5次多項式補間
Definition: PmxBaseClass.h:311
constexpr byte Even
均等補間
Definition: PmxBaseClass.h:309
constexpr byte Error
エラー
Definition: PmxBaseClass.h:313
PMXの固有値の定義
Definition: PmxBaseClass.h:44
static constexpr unsigned long ErrorUint32Data
byte型のエラー値の定義
Definition: PmxBaseClass.h:48
static constexpr byte ErrorByteData
byte型のエラー値の定義
Definition: PmxBaseClass.h:46
static constexpr unsigned short ErrorUint16Data
byte型のエラー値の定義
Definition: PmxBaseClass.h:47