Commit 57fcc6e2 LN

增加伺服ON输入信号读取

1 个父辈 a5ff6dbd
...@@ -1107,6 +1107,7 @@ namespace OnlineStore.ACSingleStore ...@@ -1107,6 +1107,7 @@ namespace OnlineStore.ACSingleStore
{ {
string PortName = txtAxisDeviceName.Text; string PortName = txtAxisDeviceName.Text;
short SlvAddr = FormUtil.GetShortValue(txtAxisValue); short SlvAddr = FormUtil.GetShortValue(txtAxisValue);
txtServoStatue.Text = ACServerManager.SRV_ON(PortName, SlvAddr) ? "✔" : "✘";
txtServoStatue.Text = ACServerManager.ServerOnStatus(PortName, SlvAddr) ? "✔" : "✘"; txtServoStatue.Text = ACServerManager.ServerOnStatus(PortName, SlvAddr) ? "✔" : "✘";
this.txtAlarmStatus.Text = ACServerManager.GetAlarmStatus(PortName, SlvAddr).ToString(); this.txtAlarmStatus.Text = ACServerManager.GetAlarmStatus(PortName, SlvAddr).ToString();
this.txtBusyStatus.Text = ACServerManager.GetBusyStatus(PortName, SlvAddr).ToString(); this.txtBusyStatus.Text = ACServerManager.GetBusyStatus(PortName, SlvAddr).ToString();
......
...@@ -7,6 +7,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -7,6 +7,11 @@ namespace OnlineStore.DeviceLibrary
{ {
public class ACCMDManager public class ACCMDManager
{ {
/// <summary>
/// 0020h 伺服 On 输入(SRV-ON) ReadOnly 0:输入 OFF、1:输入 ON
/// </summary>
public static string SRV_ON = "0020";
/// <summary> /// <summary>
/// 0132h 原点接近传感器输入 (HOME) 状态 ReadOnly 0: 输入 OFF 1: 输入 ON /// 0132h 原点接近传感器输入 (HOME) 状态 ReadOnly 0: 输入 OFF 1: 输入 ON
/// </summary> /// </summary>
......
...@@ -137,8 +137,24 @@ namespace OnlineStore.DeviceLibrary ...@@ -137,8 +137,24 @@ namespace OnlineStore.DeviceLibrary
ColsePort(key); ColsePort(key);
} }
} }
/// <summary>
/// 是否有伺服使能信号
/// </summary>
public static bool SRV_ON(string portName, short slvAddr)
{
if (!serialBeanMap.ContainsKey(portName))
{
return false;
}
PreReadCoilAddr = ACCMDManager.SRV_ON;
byte[] dataArray = ACCMDManager.GetWriteData(slvAddr, ACCMDManager.CMD_ReadCoil, PreReadCoilAddr, "0000", 1);
//SendData(portName,dataArray);
byte[] reviceData = SendCommand(portName, dataArray, ReviceOutTimeMS, 6);
int result = GetCoilData(portName, reviceData, PreReadCoilAddr);
//TODO
return result >= 1;
}
/// <summary> /// <summary>
/// 是否成功打开伺服 /// 是否成功打开伺服
/// </summary> /// </summary>
...@@ -237,7 +253,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -237,7 +253,7 @@ namespace OnlineStore.DeviceLibrary
int length = 2; int length = 2;
byte[] dataArray = ACCMDManager.GetWriteData(slvAddr, ACCMDManager.CMD_WriteRegisters, addr, data, length); byte[] dataArray = ACCMDManager.GetWriteData(slvAddr, ACCMDManager.CMD_WriteRegisters, addr, data, length);
SendData(portName, dataArray, 5); SendData(portName, dataArray, 5);
} }
public static void ServoOn(string portName, int slvAddr) public static void ServoOn(string portName, int slvAddr)
{ {
string addr = ACCMDManager.ServerOn_Addr; string addr = ACCMDManager.ServerOn_Addr;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!