Commit 91289240 LN

增加获取伺服速度的方法

1 个父辈 2235d361
...@@ -63,7 +63,15 @@ namespace DeviceLib ...@@ -63,7 +63,15 @@ namespace DeviceLib
/// 实际位置=600F /// 实际位置=600F
/// </summary> /// </summary>
internal static string ActualPosition = "600F"; internal static string ActualPosition = "600F";
/// <summary>
/// 内部指令速度=601A
/// </summary>
internal static string TargetSpeed = "601A";
/// <summary>
/// 电机速度=601C
/// </summary>
internal static string ActualSpeed = "601C";
/// <summary> /// <summary>
/// BUSY状态=0140,0140h 动作执行状态 (BUSY) ReadOnly 0:未执行 1:执行中 /// BUSY状态=0140,0140h 动作执行状态 (BUSY) ReadOnly 0:未执行 1:执行中
internal static string BUSYStatus = "0140"; internal static string BUSYStatus = "0140";
...@@ -83,6 +91,10 @@ namespace DeviceLib ...@@ -83,6 +91,10 @@ namespace DeviceLib
/// 指定BlockNo=4414 /// 指定BlockNo=4414
/// </summary> /// </summary>
internal static string BlockNo = "4414"; internal static string BlockNo = "4414";
///// <summary>
///// 实际速度=4D06
///// </summary>
//internal static string ActualSpeed = "4D06";
/// <summary> /// <summary>
/// 读线圈01 /// 读线圈01
/// </summary> /// </summary>
......
...@@ -600,6 +600,33 @@ namespace DeviceLib ...@@ -600,6 +600,33 @@ namespace DeviceLib
byte[] reviceData = SendCommand(portName, dataArray, ReviceOutTimeMS, 6); byte[] reviceData = SendCommand(portName, dataArray, ReviceOutTimeMS, 6);
return GetCoilData(portName, reviceData, ACCMDManager.Limit_Positive_Single); return GetCoilData(portName, reviceData, ACCMDManager.Limit_Positive_Single);
} }
/// <summary>
/// 获取伺服目标速度
/// </summary>
/// <param name="portName"></param>
/// <param name="slvAddr"></param>
/// <returns></returns>
public static int GetTargetSpeed(string portName, int slvAddr)
{
PreReadAddr = ACCMDManager.TargetSpeed;
byte[] dataArray = ACCMDManager.GetWriteData(slvAddr, ACCMDManager.CMD_ReadRegisters, ACCMDManager.TargetSpeed, "0000", 2);
byte[] reviceData = SendCommand(portName, dataArray, ReviceOutTimeMS, 9);
return GetRegisterData(portName, reviceData, ACCMDManager.TargetSpeed);
}
/// <summary>
/// 获取伺服实际速度
/// </summary>
/// <param name="portName"></param>
/// <param name="slvAddr"></param>
/// <returns></returns>
public static int GetActualSpeed(string portName, int slvAddr)
{
PreReadAddr = ACCMDManager.ActualSpeed;
byte[] dataArray = ACCMDManager.GetWriteData(slvAddr, ACCMDManager.CMD_ReadRegisters, ACCMDManager.ActualSpeed, "0000", 2);
byte[] reviceData = SendCommand(portName, dataArray, ReviceOutTimeMS, 9);
return GetRegisterData(portName, reviceData, ACCMDManager.ActualSpeed);
}
private static int GetAddrValue(string portName, int slvAddr, string addr) private static int GetAddrValue(string portName, int slvAddr, string addr)
{ {
int value = -1; int value = -1;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!