------------------------------------------------------------------------------
RS485通信モジュール(rs485comm) Ver2.1  by Futaba Corporation
------------------------------------------------------------------------------

・はじめに

	RS485通信モジュールはHot Soup Processor ver3.0以降とともに使用することで、
	弊社製ロボット用コマンド式サーボモータのコントロールに関する様々な機能拡
　　張を提供します。
	詳しい使い方はサンプルスクリプトを参照してください。


・著作権および連絡先

	著作権および、使用の規定についてはRSC-U485サンプルプログラムと同様です。
	また、本サンプルスクリプトも自由に改変、公開していただいて構いません。
	弊社は本プログラムによって生じた、いかなる損害についても保証いたしません。
	自己の責任の範囲で使用してください。


・RS485通信モジュールの概要

	RS485通信モジュールの主な機能は以下の通りです。

	・RS485ポートのオープン、クローズ
	・コマンド式サーボモータのショートパケット送信
	・コマンド式サーボモータのリターンデータ受信
	・メモリーマップバッファのリード/ライト


・更新履歴

	2006/09/29 ( Ver2.0 ) 公開初版
	2006/01/09 ( Ver2.1 ) Ⅱ版
			pMapPresentPosion:	誤記訂正(旧:pMapMapPresentPosion)
			TransmitShort:	InitMemoryMapが動作しない不具合を修正
			WriteFlashRom:	誤記訂正(旧:WrihtFlashRom)
			PresentVolts:	"GetBufPresentVolts(p1)""GetPresentVolts(p1)"の関数追加
			ClrMemoryBuf:	"ClrMemoryBuf p1"の命令追加
			InitMemoryMap:	"InitMemoryMap p1"に変更(旧:InitMemoryMap p1,p2)

・命令一覧

RS485ポートのオープン、クローズ
------------------------------------------------------------------------------
コマンド式サーボモータのコントロールを使う場合には、最初にrs485open命令でポー
トの初期化をする必要があります。rs485open命令では、同時に１つのポートまでしか制
御できません。複数のシリアルポートを同時に監視するソフトを構築することはできま
せんのでご注意ください。
シリアルポートは、一度初期化されると、開放するまで他のアプリケーションが使用で
きなくなってしまうので、必ず最後にポートを開放することを忘れないでください。特
に通信中にクローズボックスを押して終了してしまうことのないようにonexit命令など
で、終了時に注意を促すようなスクリプトを作成してください。

	rs485open  p1, p2, (p3)			RS485ポートのオープン

		p1:	ポート番号 0="COM1", 1="COM2"...n="COMn+1"
		p2: ボーレート 0=9600bps, 1=14400bps...12=1382400bps
		p3: タイムアウト[ms] (省略時は 100ms)

	rs485close						RS485ポートのクローズ

コマンド式サーボモータのショートパケット送信
------------------------------------------------------------------------------

	SetServoID p1,p2				ServoIDのショートパケット送信
	SetBaudRate p1,p2				BaudRateのショートパケット送信
	SetCWAngleLimit p1,p2			CWAngleLimitのショートパケット送信
	SetCCWAngleLimit p1,p2			CCWAngleLimitのショートパケット送信
	SetLoadLimit p1,p2				LoadLimitのショートパケット送信
	SetCWComplianceMargin p1,p2		CWComplianceMarginのショートパケット送信
	SetCCWComplianceMargin p1,p2	CCWComplianceMarginのショートパケット送信
	SetCWComplianceSlope p1,p2		CWComplianceSlopeのショートパケット送信
	SetCCWComplianceSlope p1,p2		CCWComplianceSlopeのショートパケット送信
	SetPunch p1,p2					Punchのショートパケット送信
	SetGlobalPosition p1,p2			GlobalPositionのショートパケット送信
	SetGlobalTime p1,p2				GlobalTimeのショートパケット送信
	SetAccelerationTime p1,p2		AccelerationTimeのショートパケット送信
	SetMaxTorque p1,p2				MaxTorqueのショートパケット送信
	SetTorqueEnable p1,p2			TorqueEnableのショートパケット送信
	　SetTorqueON p1				　Torqueオンのショートパケット送信
	　SetTorqueOFF p1				　Torqueオフのショートパケット送信
	SetLED p1,p2					LEDのショートパケット送信
	　SetLEDON p1					　LEDオンのショートパケット送信
	　SetLEDOFF p1					　LEDオフのショートパケット送信
	SetPIDCoefficient p1,p2			PIDCoefficientのショートパケット送信
	SetLock p1,p2					Lockのショートパケット送信

		p1:	ID番号 0～255
		p2: データ ※SetTorqueON,SetTorqueOFF,SetLEDON,SetLEDOFFは不要
　　　　※メモリーマップバッファにもデータをライトします。

	SetPositionTime p1,p2,p3,(P4)	GlobalPosition,GlobalTimeのショートパケット送信
										(リターンパケットの受信)
		p1:	ID番号 0～255
		p2: GlobalPositionデータ
		p3: GlobalTimeデータ
		p4: リターンパケット番号 0=無,1/3/5/7/9/11/13=有り,15=nop (省略時は 0=無)
　　　　※メモリーマップバッファにもデータをライトします。
		
	TransmitShort p1,p2,p3,p4,p5	ショートパケットの送信

		p1:	ID番号 0～255
		p2: フラグ
		p3: メモリーマップ上のアドレス
		p4: データのバイト数
		p5: カウント

	WriteFlashRom p1,(p2)			フラッシュRomへの書込み

		p1:	ID番号 0～255
		p2: 0=再起動無し, 1=再起動有り (省略時は 0=0=再起動無し)

	RestartServo p1					サーボ再起動

		p1:	ID番号 0～255

	InitMemoryMap p1				メモリーマップ[4-29]の初期化

		p1:	ID番号 0～255

コマンド式サーボモータのリターンデータ受信
------------------------------------------------------------------------------

	GetModelNumber(p1)				GetModelNumberの受信
	GetFirmwareVersion(p1)			GetFirmwareVersionの受信
	GetServoID(p1)					ServoIDの受信
	GetBaudRate(p1)					BaudRateの受信
	GetCWAngleLimit(p1)				CWAngleLimitの受信
	GetCCWAngleLimit(p1)			CCWAngleLimitの受信
	GetLoadLimit(p1)				LoadLimitの受信
	GetTempLimit(p1)				TempLimitの受信
	GetCWComplianceMargin(p1)		CWComplianceMarginの受信
	GetCCWComplianceMargin(p1)		CCWComplianceMarginの受信
	GetCWComplianceSlope(p1)		CWComplianceSlopeの受信
	GetCCWComplianceSlope(p1)		CCWComplianceSlopeの受信
	GetPunch(p1)					Punchの受信
	GetGlobalPosition(p1)			GlobalPositionの受信
	GetGlobalTime(p1)				GlobalTimeの受信
	GetAccelerationTime(p1)			AccelerationTimeの受信
	GetMaxTorque(p1)				MaxTorqueの受信
	GetTorqueEnable(p1)				TorqueEnableの受信
	GetLED(p1)						LEDの受信
	GetPIDCoefficient(p1)			PIDCoefficientの受信
	GetPresentPosion(p1)			PresentPosionの受信
	GetPresentTime(p1)				PresentTimeの受信
	GetPresentSpeed(p1)				PresentSpeedの受信
	GetPresentLoad(p1)				PresentLoadの受信
	GetPresentTemp(p1)				PresentTempの受信
	GetPresentVolts(p1)				PresentVoltsの受信
	GetServoStatus(p1)				ServoStatusの受信
	GetActiveFlag(p1)				ActiveFlagの受信
	GetMoving(p1)					Movingの受信
	GetLock(p1)						Lockの受信

		p1:	ID番号 0～255　※関数型命令(戻り値:データ)
　　　　※メモリーマップバッファにもリターンデータをライトします。

	GetReturnData p1,p2,(p3),(p4)	リターンパケットの受信

		p1:	ID番号 0～255
		p2: リターンパケット番号 1/3/5/7/9/11/13/15
		p3: アドレス (省略時は 0) ※リターンパケット番号15用
		p4: データ長 (省略時は 0) ※リターンパケット番号15用
　　　　※メモリーマップバッファにリターンデータをライトします。


メモリーマップバッファのリード/ライト
------------------------------------------------------------------------------

	GetBufModelNumber(p1)			GetModelNumberのバッファリード
	GetBufFirmwareVersion(p1)       GetFirmwareVersionのバッファリード
	GetBufServoID(p1)				ServoIDのバッファリード
	GetBufBaudRate(p1)				BaudRateのバッファリード
	GetBufCWAngleLimit(p1)			CWAngleLimitのバッファリード
	GetBufCCWAngleLimit(p1)			CCWAngleLimitのバッファリード
	GetBufLoadLimit(p1)				LoadLimitのバッファリード
	GetBufTempLimit(p1)				TempLimitのバッファリード
	GetBufCWComplianceMargin(p1)	CWComplianceMarginのバッファリード
	GetBufCCWComplianceMargin(p1)	CCWComplianceMarginのバッファリード
	GetBufCWComplianceSlope(p1)		CWComplianceSlopeのバッファリード
	GetBufCCWComplianceSlope(p1)	CCWComplianceSlopeのバッファリード
	GetBufPunch(p1)					Punchのバッファリード
	GetBufGlobalPosition(p1)		GlobalPositionのバッファリード
	GetBufGlobalTime(p1)			GlobalTimeのバッファリード
	GetBufAccelerationTime(p1)		AccelerationTimeのバッファリード
	GetBufMaxTorque(p1)				MaxTorqueのバッファリード
	GetBufTorqueEnable(p1)			TorqueEnableのバッファリード
	GetBufLED(p1)					LEDのバッファリード
	GetBufPIDCoefficient(p1)		PIDCoefficientのバッファリード
	GetBufPresentPosion(p1)			PresentPosionのバッファリード
	GetBufPresentTime(p1)			PresentTimeのバッファリード
	GetBufPresentSpeed(p1)			PresentSpeedのバッファリード
	GetBufPresentLoad(p1)			PresentLoadのバッファリード
	GetBufPresentTemp(p1)			PresentTempのバッファリード
	GetBufPresentVolts(p1)			PresentVoltsのバッファリード
	GetBufServoStatus(p1)			ServoStatusのバッファリード
	GetBufActiveFlag(p1)			ActiveFlagのバッファリード
	GetBufMoving(p1)				Movingのバッファリード
	GetBufLock(p1)					Lockのバッファリード

		p1:	ID番号 0～255　※関数型命令(戻り値:データ)

	SetBufServoID p1,p2				ServoIDのバッファにライト
	SetBufBaudRate p1,p2			BaudRateのバッファにライト
	SetBufCWAngleLimit p1,p2		CWAngleLimitのバッファにライト
	SetBufCCWAngleLimit p1,p2		CCWAngleLimitのバッファにライト
	SetBufLoadLimit p1,p2			LoadLimitのバッファにライト
	SetBufCWComplianceMargin p1,p2	CWComplianceMarginのバッファにライト
	SetBufCCWComplianceMargin p1,p2	CCWComplianceMarginのバッファにライト
	SetBufCWComplianceSlope p1,p2	CWComplianceSlopeのバッファにライト
	SetBufCCWComplianceSlope p1,p2	CCWComplianceSlopeのバッファにライト
	SetBufPunch p1,p2				Punchのバッファにライト
	SetBufGlobalPosition p1,p2		GlobalPositionのバッファにライト
	SetBufGlobalTime p1,p2			GlobalTimeのバッファにライト
	SetBufAccelerationTime p1,p2	AccelerationTimeのバッファにライト
	SetBufMaxTorque p1,p2			MaxTorqueのバッファにライト
	SetBufTorqueEnable p1,p2		TorqueEnableのバッファにライト
	SetBufLED p1,p2					LEDのバッファにライト
	SetBufPIDCoefficient p1,p2		PIDCoefficientのバッファにライト
	SetBufLock p1,p2				Lockのバッファにライト

		p1:	ID番号 0～255
		p2: データ

	ClrMemoryBuf p1					メモリーマップバッファの内容を全て消去
		p1:	ID番号 0～255

-------------------------------------------------------------------------------
                                          rs485comm users manual / end of file 
-------------------------------------------------------------------------------
