Commit 7ff6809b ke.sun

伺服485通信修改

1 个父辈 4d3f3c12
...@@ -141,22 +141,22 @@ namespace OnlineStore.ACSingleStore ...@@ -141,22 +141,22 @@ namespace OnlineStore.ACSingleStore
//验证运动是否完成 //验证运动是否完成
//CheckWait(); //CheckWait();
string portName = GetPortName(); //string portName = GetPortName();
int SlvAddr = GetSlaveAddr(); //int SlvAddr = GetSlaveAddr();
//判断私服是否打开、 // //判断私服是否打开、
if (ACServerManager.ServerOnStatus(portName, SlvAddr) ) //if (ACServerManager.ServerOnStatus(portName, SlvAddr) )
{ //{
lblServerOn.Text = "伺服ON"; // lblServerOn.Text = "伺服ON";
int lOutPulse = ACServerManager.GetTargetPosition(portName, SlvAddr); // int lOutPulse = ACServerManager.GetTargetPosition(portName, SlvAddr);
lblOutPulse.Text = string.Format("{0:d}", lOutPulse); // lblOutPulse.Text = string.Format("{0:d}", lOutPulse);
int lCountPulse = ACServerManager.GetActualtPosition(portName, SlvAddr); // int lCountPulse = ACServerManager.GetActualtPosition(portName, SlvAddr);
lblCountPulse.Text = string.Format("{0:d}", lCountPulse); // lblCountPulse.Text = string.Format("{0:d}", lCountPulse);
} //}
else //else
{ //{
lblServerOn.Text = "伺服OFF"; // lblServerOn.Text = "伺服OFF";
} //}
//ReadPosistion(); //ReadPosistion();
if (store.storeRunStatus > StoreRunStatus.Wait) if (store.storeRunStatus > StoreRunStatus.Wait)
......
...@@ -339,7 +339,7 @@ namespace OnlineStore.Common ...@@ -339,7 +339,7 @@ namespace OnlineStore.Common
if (_serialPort.IsOpen) if (_serialPort.IsOpen)
{ {
lock (lockObj) lock (_serialPort)
{ {
try try
{ {
...@@ -351,13 +351,18 @@ namespace OnlineStore.Common ...@@ -351,13 +351,18 @@ namespace OnlineStore.Common
{ {
ReceiveData = new byte[ReceiveLength]; ReceiveData = new byte[ReceiveLength];
} }
int i = 0;
while (num++ < Overtime) while (num++ < Overtime)
{ {
i++;
if (_serialPort.BytesToRead >= ReceiveData.Length) if (_serialPort.BytesToRead >= ReceiveData.Length)
break; break;
System.Threading.Thread.Sleep(1); System.Threading.Thread.Sleep(1);
} }
if (i >= 100)
{
LogUtil.info("等待超时");
}
if (_serialPort.BytesToRead >= ReceiveData.Length) if (_serialPort.BytesToRead >= ReceiveData.Length)
{ {
......
...@@ -13,7 +13,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -13,7 +13,7 @@ namespace OnlineStore.DeviceLibrary
/// </summary> /// </summary>
public partial class ACServerManager public partial class ACServerManager
{ {
private static bool IsShowMsg = false; private static bool IsShowMsg = false ;
private static int SleepMSendons = 100; private static int SleepMSendons = 100;
public static bool OpenPort(string portName) public static bool OpenPort(string portName)
{ {
...@@ -155,7 +155,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -155,7 +155,7 @@ namespace OnlineStore.DeviceLibrary
string data = "6173"; string data = "6173";
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); SendData(portName, dataArray, 5);
} }
public static void ServoOn(string portName, int slvAddr) public static void ServoOn(string portName, int slvAddr)
{ {
......
...@@ -34,11 +34,11 @@ namespace OnlineStore.DeviceLibrary ...@@ -34,11 +34,11 @@ namespace OnlineStore.DeviceLibrary
byte[] data = ACCMDManager.GetWriteData(slvAddr, ACCMDManager.CMD_WriteRegisters, ACCMDManager.BlockNo, index.ToString(), 2); byte[] data = ACCMDManager.GetWriteData(slvAddr, ACCMDManager.CMD_WriteRegisters, ACCMDManager.BlockNo, index.ToString(), 2);
SendData(portName, data); SendData(portName, data);
Thread.Sleep(100); Thread.Sleep(100);
CloseSTB(portName,slvAddr); CloseSTB(portName, slvAddr);
Thread.Sleep(100); Thread.Sleep(100);
OnlyOpenSTB(portName,slvAddr); OnlyOpenSTB(portName, slvAddr);
} }
public static void SendStrAndSleep(string portName, string str,int sleepS) public static void SendStrAndSleep(string portName, string str, int sleepS)
{ {
byte[] data = SerialBean.StringToByte(str); byte[] data = SerialBean.StringToByte(str);
data[data.Length - 1] = 0x00; data[data.Length - 1] = 0x00;
...@@ -64,7 +64,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -64,7 +64,7 @@ namespace OnlineStore.DeviceLibrary
} }
if (IsShowMsg) if (IsShowMsg)
{ {
LogUtil.info(DateTime.Now.ToLongTimeString() + " 收到数据:" + strSend + "\r\n"); LogUtil.info( "串口" + portName + " 收到数据:" + strSend + "");
} }
string str = ""; string str = "";
string strFromat = "{0:X2}"; string strFromat = "{0:X2}";
...@@ -100,8 +100,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -100,8 +100,8 @@ namespace OnlineStore.DeviceLibrary
} }
str = str.Replace(" ", ""); str = str.Replace(" ", "");
int value = Convert.ToInt32(str, 16); int value = Convert.ToInt32(str, 16);
LogUtil.info("转换后结果:" + value + "\r\n"); LogUtil.info("转换后结果:" + value + "");
//this.richTextBox1.AppendText("转换后结果:" + value + "\r\n"); //this.richTextBox1.AppendText("转换后结果:" + value + "");
//Console.WriteLine("转换后结果:" + value); //Console.WriteLine("转换后结果:" + value);
} }
//MessageBox.Show("收到数据:"+value); //MessageBox.Show("收到数据:"+value);
...@@ -181,36 +181,65 @@ namespace OnlineStore.DeviceLibrary ...@@ -181,36 +181,65 @@ namespace OnlineStore.DeviceLibrary
{ {
return LastDataMap[slvAddr][regAddr]; return LastDataMap[slvAddr][regAddr];
} }
} return null; }
return null;
} }
public static void SendData(string portName, byte[] data) public static void SendData(string portName, byte[] data, int reviceLength)
{ {
if (data == null) if (data == null)
{ {
return; return;
} }
byte[] returnData = SendCommand(portName, data, 100, reviceLength);
string strSend = ""; string strSend = "";
for (int i = 0; i < data.Length; i++) for (int i = 0; i < returnData.Length; i++)
{ {
strSend += string.Format("{0:X2} ", data[i]); strSend += string.Format("{0:X2} ", returnData[i]);
} }
if (strSend.Equals("")) if (IsShowMsg)
{
LogUtil.info( "串口" + portName + " 收到数据:" + strSend + "");
}
}
public static void SendData(string portName, byte[] data)
{
if (data == null)
{ {
return; return;
} }
if (IsShowMsg) //string strSend = "";
//for (int i = 0; i < data.Length; i++)
//{
// strSend += string.Format("{0:X2} ", data[i]);
//}
//if (strSend.Equals(""))
//{
// return;
//}
//if (IsShowMsg)
//{
// LogUtil.info( " 写入数据:" + strSend + "");
//}
//AcSerialBean bean = GetSerialBean(portName);
//if (bean == null)
//{
// LogUtil.debug("ACServerManager SendData 试图向未打开串口【" + portName + "】写入数据:" + strSend + "。");
// return;
//}
//bean.SendData(data, 0, data.Length);
byte[] returnData = SendCommand(portName, data, 100, 8);
string strSend = "";
for (int i = 0; i < returnData.Length; i++)
{ {
LogUtil.info(DateTime.Now.ToLongTimeString() + " 写入数据:" + strSend + "\r\n"); strSend += string.Format("{0:X2} ", returnData[i]);
} }
AcSerialBean bean = GetSerialBean(portName); if (IsShowMsg)
if (bean == null)
{ {
LogUtil.debug("ACServerManager SendData 试图向未打开串口【" + portName + "】写入数据:" + strSend + "。"); LogUtil.info( "串口" + portName + " 收到数据:" + strSend + "");
return;
} }
bean.SendData(data, 0, data.Length);
} }
/// <summary> /// <summary>
/// 发送数据并获取返回值 /// 发送数据并获取返回值
...@@ -239,7 +268,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -239,7 +268,7 @@ namespace OnlineStore.DeviceLibrary
} }
if (IsShowMsg) if (IsShowMsg)
{ {
LogUtil.info(DateTime.Now.ToLongTimeString() + " 写入数据:" + strSend + "\r\n"); LogUtil.info( "串口" + portName + " 写入数据:" + strSend + "");
} }
AcSerialBean bean = GetSerialBean(portName); AcSerialBean bean = GetSerialBean(portName);
if (bean == null) if (bean == null)
...@@ -374,7 +403,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -374,7 +403,7 @@ namespace OnlineStore.DeviceLibrary
} }
if (IsShowMsg) if (IsShowMsg)
{ {
LogUtil.info(DateTime.Now.ToLongTimeString() + " 收到数据:" + strSend + "\r\n"); LogUtil.info( "串口" + portName + " 收到数据:" + strSend + "");
} }
string strFromat = "{0:X2}"; string strFromat = "{0:X2}";
byte slvAddrR = reviceData[0]; byte slvAddrR = reviceData[0];
...@@ -388,7 +417,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -388,7 +417,8 @@ namespace OnlineStore.DeviceLibrary
SaveData(portName, slvAddrR, Address, value); SaveData(portName, slvAddrR, Address, value);
return value; return value;
} }
} return -1; }
return -1;
} }
public static int GetTargetPosition(string portName, int slvAddr) public static int GetTargetPosition(string portName, int slvAddr)
{ {
...@@ -421,7 +451,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -421,7 +451,7 @@ namespace OnlineStore.DeviceLibrary
if (IsShowMsg) if (IsShowMsg)
{ {
LogUtil.info(DateTime.Now.ToLongTimeString() + " 收到数据:" + strSend + "\r\n"); LogUtil.info( "串口" + portName + " 收到数据:" + strSend + "");
} }
string strFromat = "{0:X2}"; string strFromat = "{0:X2}";
byte slvAddrR = reviceData[0]; byte slvAddrR = reviceData[0];
...@@ -435,7 +465,8 @@ namespace OnlineStore.DeviceLibrary ...@@ -435,7 +465,8 @@ namespace OnlineStore.DeviceLibrary
SaveData(portName, slvAddrR, Address, value); SaveData(portName, slvAddrR, Address, value);
return value; return value;
} }
} return -1; }
return -1;
} }
public static int GetAlarmStatus(string portName, int slvAddr) public static int GetAlarmStatus(string portName, int slvAddr)
{ {
......
...@@ -29,12 +29,12 @@ AXIS,(轴二)升降轴轴,UpDown_Axis,1,COM4,0,,,, ...@@ -29,12 +29,12 @@ AXIS,(轴二)升降轴轴,UpDown_Axis,1,COM4,0,,,,
AXIS,(轴三)进出轴,InOut_Axis,1,COM5,0,,,, AXIS,(轴三)进出轴,InOut_Axis,1,COM5,0,,,,
PRO,温湿度传感器地址,Temperate_ServerAddress,192.168.200.14,,,,,, PRO,温湿度传感器地址,Temperate_ServerAddress,192.168.200.14,,,,,,
PRO,升降轴 进料口取料点 P1,UpDownAxis_DoorOPosition_P1,700000,,,,,, PRO,升降轴 进料口取料点 P1,UpDownAxis_DoorOPosition_P1,700000,,,,,,
PRO,升降轴 进料口出料前点 P2,UpDownAxis_DoorIPosition_P2,702000,,,,,, PRO,升降轴 进料口出料前点 P2,UpDownAxis_DoorIPosition_P2,705000,,,,,,
PRO,升降轴 进料口取料缓冲点 P7,UpDownAxis_DoorOBPosition_P7,702000,,,,,, PRO,升降轴 进料口取料缓冲点 P7,UpDownAxis_DoorOBPosition_P7,705000,,,,,,
PRO,升降轴 进料口出料缓冲点 P8,UpDownAxis_DoorIBPosition_P8,700000,,,,,, PRO,升降轴 进料口出料缓冲点 P8,UpDownAxis_DoorIBPosition_P8,700000,,,,,,
,进出轴进料口取料点 P2,InOutAxis_DoorPosition_P2,4000,,,,,, ,进出轴进料口取料点 P2,InOutAxis_DoorPosition_P2,6000,,,,,,
PRO,旋转轴(轴1)P1 待机原位点,MiddleAxis_P1_Position,230000,,,,,, PRO,旋转轴(轴1)P1 待机原位点,MiddleAxis_P1_Position,230000,,,,,,
PRO,进出轴(轴3)P1待机原位点,InOutAxis_P1_Position,1000,,,,,, PRO,进出轴(轴3)P1待机原位点,InOutAxis_P1_Position,2000,,,,,,
PRO,押金轴(轴4)P1待机原位点,CompressAxis_P1_Position,360,,,,,, PRO,押金轴(轴4)P1待机原位点,CompressAxis_P1_Position,360,,,,,,
,,,,,,,,, ,,,,,,,,,
PRO,是否使用压紧轴(1=使用),IsHasCompress_Axis,0,,,,, , PRO,是否使用压紧轴(1=使用),IsHasCompress_Axis,0,,,,, ,
...@@ -43,37 +43,37 @@ PRO,气压检测IO关闭需要持续的时间,AirCheckSeconds,3,,,,,, ...@@ -43,37 +43,37 @@ PRO,气压检测IO关闭需要持续的时间,AirCheckSeconds,3,,,,,,
PRO,温湿度传感器地址,TemperateServer_Port,9001,,,,,, PRO,温湿度传感器地址,TemperateServer_Port,9001,,,,,,
PRO,预警温度,WarnTemperate,80,,,,,, PRO,预警温度,WarnTemperate,80,,,,,,
PRO,预警湿度,WarnHumidity,80,,,,,, PRO,预警湿度,WarnHumidity,80,,,,,,
PRO,(轴一)旋转轴目标速度,MiddleAxis_TargetSpeed,300,,,,,, PRO,(轴一)旋转轴目标速度,MiddleAxis_TargetSpeed,100,,,,,,
PRO,(轴一)旋转轴加速度,MiddleAxis_AddSpeed,5000,,,,,, PRO,(轴一)旋转轴加速度,MiddleAxis_AddSpeed,3000,,,,,,
PRO,(轴一)旋转轴减速度,MiddleAxis_DelSpeed,5000,,,,,, PRO,(轴一)旋转轴减速度,MiddleAxis_DelSpeed,3000,,,,,,
PRO,(轴一)旋转轴原点低速度,MiddleAxis_HomeLowSpeed,10,,,,,, PRO,(轴一)旋转轴原点低速度,MiddleAxis_HomeLowSpeed,10,,,,,,
PRO,(轴一)旋转轴原点高速,MiddleAxis_HomeHighSpeed,60,,,,,, PRO,(轴一)旋转轴原点高速,MiddleAxis_HomeHighSpeed,60,,,,,,
PRO,(轴一)旋转轴原点加速度,MiddleAxis_HomeAddSpeed,500,,,,,, PRO,(轴一)旋转轴原点加速度,MiddleAxis_HomeAddSpeed,500,,,,,,
PRO,(轴二)升降轴轴目标速度,UpdownAxis_TargetSpeed,200,,,,,, PRO,(轴二)升降轴轴目标速度,UpdownAxis_TargetSpeed,100,,,,,,
PRO,(轴二)升降轴轴加速度,UpdownAxis_AddSpeed,100,,,,,, PRO,(轴二)升降轴轴加速度,UpdownAxis_AddSpeed,3000,,,,,,
PRO,(轴二)升降轴轴减速度,UpdownAxis_DelSpeed,100,,,,,, PRO,(轴二)升降轴轴减速度,UpdownAxis_DelSpeed,3000,,,,,,
PRO,(轴二)升降轴轴原点低速度,UpdownAxis_HomeLowSpeed,100,,,,,, PRO,(轴二)升降轴轴原点低速度,UpdownAxis_HomeLowSpeed,100,,,,,,
PRO,(轴二)升降轴轴原点高速,UpdownAxis_HomeHighSpeed,200,,,,,, PRO,(轴二)升降轴轴原点高速,UpdownAxis_HomeHighSpeed,200,,,,,,
PRO,(轴二)升降轴轴原点加速度,UpdownAxis_HomeAddSpeed,200,,,,,, PRO,(轴二)升降轴轴原点加速度,UpdownAxis_HomeAddSpeed,200,,,,,,
PRO,(轴三)进出轴目标速度,InoutAxis_TargetSpeed,200,,,,,, PRO,(轴三)进出轴目标速度,InoutAxis_TargetSpeed,100,,,,,,
PRO,(轴三)进出轴加速度,InoutAxis_AddSpeed,3000,,,,,, PRO,(轴三)进出轴加速度,InoutAxis_AddSpeed,5000,,,,,,
PRO,(轴三)进出轴减速度,InoutAxis_DelSpeed,3000,,,,,, PRO,(轴三)进出轴减速度,InoutAxis_DelSpeed,5000,,,,,,
PRO,(轴三)进出轴原点低速,InoutAxis_HomeLowSpeed,20,,,,,, PRO,(轴三)进出轴原点低速,InoutAxis_HomeLowSpeed,20,,,,,,
PRO,(轴三)进出轴原点高速,InoutAxis_HomeHighSpeed,60,,,,,, PRO,(轴三)进出轴原点高速,InoutAxis_HomeHighSpeed,60,,,,,,
PRO,(轴三)进出轴原点加速度,InoutAxis_HomeAddSpeed,200,,,,,, PRO,(轴三)进出轴原点加速度,InoutAxis_HomeAddSpeed,200,,,,,,
PRO,升降轴(轴2)P1速度,UpDownAxis_P1_Speed,200,,,,,, PRO,升降轴(轴2)P1速度,UpDownAxis_P1_Speed,600,,,,,,
PRO,升降轴(轴2)P2速度,UpDownAxis_P2_Speed,150,,,,,, PRO,升降轴(轴2)P2速度,UpDownAxis_P2_Speed,500,,,,,,
PRO,升降轴(轴2)P3速度,UpDownAxis_P3_Speed,150,,,,,, PRO,升降轴(轴2)P3速度,UpDownAxis_P3_Speed,500,,,,,,
PRO,升降轴(轴2)P4速度,UpDownAxis_P4_Speed,80,,,,,, PRO,升降轴(轴2)P4速度,UpDownAxis_P4_Speed,200,,,,,,
PRO,升降轴(轴2)P5速度,UpDownAxis_P5_Speed,150,,,,,, PRO,升降轴(轴2)P5速度,UpDownAxis_P5_Speed,500,,,,,,
PRO,升降轴(轴2)P6速度,UpDownAxis_P6_Speed,80,,,,,, PRO,升降轴(轴2)P6速度,UpDownAxis_P6_Speed,200,,,,,,
PRO,升降轴(轴2)P7速度,UpDownAxis_P7_Speed,80,,,,,, PRO,升降轴(轴2)P7速度,UpDownAxis_P7_Speed,200,,,,,,
PRO,升降轴(轴2)P8速度,UpDownAxis_P8_Speed,80,,,,,, PRO,升降轴(轴2)P8速度,UpDownAxis_P8_Speed,200,,,,,,
PRO,旋转轴(轴1)P1速度,MiddleAxis_P1_Speed,200,,,,,, PRO,旋转轴(轴1)P1速度,MiddleAxis_P1_Speed,400,,,,,,
PRO,旋转轴(轴1)P2速度,MiddleAxis_P2_Speed,100,,,,,, PRO,旋转轴(轴1)P2速度,MiddleAxis_P2_Speed,400,,,,,,
PRO,进出轴(轴3)P1速度,InOutAxis_P1_Speed,100,,,,,, PRO,进出轴(轴3)P1速度,InOutAxis_P1_Speed,150,,,,,,
PRO,进出轴(轴3)P2速度,InOutAxis_P2_Speed,80,,,,,, PRO,进出轴(轴3)P2速度,InOutAxis_P2_Speed,100,,,,,,
PRO,进出轴(轴3)P3速度,InOutAxis_P3_Speed,80,,,,,, PRO,进出轴(轴3)P3速度,InOutAxis_P3_Speed,100,,,,,,
PRO,(轴一)旋转轴停止时可误差的脉冲数的最小值,MiddleAxis_ErrorCountMin,10,,,,,, PRO,(轴一)旋转轴停止时可误差的脉冲数的最小值,MiddleAxis_ErrorCountMin,10,,,,,,
PRO,(轴二)升降轴轴停止时可误差的脉冲数的最小值,UpdownAxis_ErrorCountMin,10,,,,,, PRO,(轴二)升降轴轴停止时可误差的脉冲数的最小值,UpdownAxis_ErrorCountMin,10,,,,,,
PRO,(轴三)进出轴停止时可误差的脉冲数的最小值,InoutAxis_ErrorCountMin,10,,,,,, PRO,(轴三)进出轴停止时可误差的脉冲数的最小值,InoutAxis_ErrorCountMin,10,,,,,,
......
位置,优先级,高度,宽度,料仓ID,中轴位置P2,升降轴库位出料前点P5,升降轴库位出料缓冲点P6,升降轴库位入料前点P3,升降轴库位入料缓冲点P4,进出轴库位点取料点P3,压紧轴压紧点P2,压紧轴压紧前点P3,进出轴进料口取料点P2,升降轴进料口出料前点P2,升降轴进料口取料缓冲点P7 位置,优先级,高度,宽度,料仓ID,中轴位置P2,升降轴库位出料前点P5,升降轴库位出料缓冲点P6,升降轴库位入料前点P3,升降轴库位入料缓冲点P4,进出轴库位点取料点P3,压紧轴压紧点P2,压紧轴压紧前点P3,进出轴进料口取料点P2,升降轴进料口出料前点P2,升降轴进料口取料缓冲点P7
1#AC1_1_2_2,149,65,325,1,165000,720000,723000,723000,720000,5000, ,0,4000,703000,703000 1#AC1_1_2_2,149,65,325,1,165000,1400000,1410000,1410000,1400000,20000,0,0,10000,703000,703000
1#AC1_1_2_3,148,65,325,1,165000,1020000,1023000,1023000,1020000,5000,0,0,4000,703000,703000 1#AC1_1_2_3,148,65,325,1,165000,1020000,1023000,1023000,1020000,5000,0,0,4000,703000,703000
1#AC1_1_2_4,147,65,325,1,165000,720000,723000,723000,720000,5000,0,0,4000,703000,703000 1#AC1_1_2_4,147,65,325,1,165000,720000,723000,723000,720000,5000,0,0,4000,703000,703000
1#AC1_1_2_5,146,65,325,1,165000,720000,723000,723000,720000,5000,0,0,4000,703000,703000 1#AC1_1_2_5,146,65,325,1,165000,720000,723000,723000,720000,5000,0,0,4000,703000,703000
......
...@@ -152,6 +152,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -152,6 +152,10 @@ namespace OnlineStore.DeviceLibrary
wait.IsEnd = true; wait.IsEnd = true;
} }
} }
else
{
}
} }
} }
else if (wait.WaitType == 2) else if (wait.WaitType == 2)
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!