Commit a4931ab7 几米阳光

改为伺服串联兼容模式

1 个父辈 351b7603
此文件类型无法预览
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<!--二维码参数文件所在路径,文件名与二维码类型名一样--> <!--二维码参数文件所在路径,文件名与二维码类型名一样-->
<add key="CodeParamPath" value="\CodeParam\" /> <add key="CodeParamPath" value="\CodeParam\" />
<add key ="AI_ConvertPosition" value ="55"/> <add key ="AI_ConvertPosition" value ="55"/>
<add key ="InOutDefaultPosition" value ="80000"/> <add key ="InOutDefaultPosition" value ="8000"/>
<add key ="Config_Pwd" value ="123456"/> <add key ="Config_Pwd" value ="123456"/>
<!--出库等待料盘拿走的时间,秒--> <!--出库等待料盘拿走的时间,秒-->
<add key ="OutStoreWaitSeconds" value ="600"/> <add key ="OutStoreWaitSeconds" value ="600"/>
......
...@@ -319,7 +319,7 @@ namespace OnlineStore.ACSingleStore ...@@ -319,7 +319,7 @@ namespace OnlineStore.ACSingleStore
int lCountPulse1 = ACServerManager.GetActualtPosition(store.Config.Middle_Axis.DeviceName, store.Config.Middle_Axis.GetAxisValue()); int lCountPulse1 = ACServerManager.GetActualtPosition(store.Config.Middle_Axis.DeviceName, store.Config.Middle_Axis.GetAxisValue());
lblCountPulse1.Text = string.Format("{0:d}", lCountPulse1); lblCountPulse1.Text = string.Format("{0:d}", lCountPulse1);
txtMiddleTarget.Text = store.Config.Middle_Axis.TargetPosition.ToString(); txtMiddleTarget.Text = store.Config.Middle_Axis.TargetPosition.ToString();
if (deviceName.Equals(store.Config.Middle_Axis.DeviceName)) if ( store.Config.Middle_Axis.IsSameAxis(portName,SlvAddr))
{ {
lblOutPulse.Text = lblOutPulse1.Text; lblOutPulse.Text = lblOutPulse1.Text;
lblCountPulse.Text = lblCountPulse1.Text; lblCountPulse.Text = lblCountPulse1.Text;
...@@ -334,7 +334,7 @@ namespace OnlineStore.ACSingleStore ...@@ -334,7 +334,7 @@ namespace OnlineStore.ACSingleStore
int lCountPulse2 = ACServerManager.GetActualtPosition(store.Config.UpDown_Axis.DeviceName, store.Config.UpDown_Axis.GetAxisValue()); int lCountPulse2 = ACServerManager.GetActualtPosition(store.Config.UpDown_Axis.DeviceName, store.Config.UpDown_Axis.GetAxisValue());
lblCountPulse2.Text = string.Format("{0:d}", lCountPulse2); lblCountPulse2.Text = string.Format("{0:d}", lCountPulse2);
txtInoutTarget.Text = store.Config.InOut_Axis.TargetPosition.ToString(); txtInoutTarget.Text = store.Config.InOut_Axis.TargetPosition.ToString();
if (deviceName.Equals(store.Config.UpDown_Axis.DeviceName)) if ( store.Config.UpDown_Axis.IsSameAxis(portName, SlvAddr))
{ {
lblOutPulse.Text = lblOutPulse2.Text; lblOutPulse.Text = lblOutPulse2.Text;
lblCountPulse.Text = lblCountPulse2.Text; lblCountPulse.Text = lblCountPulse2.Text;
...@@ -348,7 +348,7 @@ namespace OnlineStore.ACSingleStore ...@@ -348,7 +348,7 @@ namespace OnlineStore.ACSingleStore
int lCountPulse3 = ACServerManager.GetActualtPosition(store.Config.InOut_Axis.DeviceName, store.Config.InOut_Axis.GetAxisValue()); int lCountPulse3 = ACServerManager.GetActualtPosition(store.Config.InOut_Axis.DeviceName, store.Config.InOut_Axis.GetAxisValue());
lblCountPulse3.Text = string.Format("{0:d}", lCountPulse3); lblCountPulse3.Text = string.Format("{0:d}", lCountPulse3);
txtUpdownTarget.Text = store.Config.UpDown_Axis.TargetPosition.ToString(); txtUpdownTarget.Text = store.Config.UpDown_Axis.TargetPosition.ToString();
if (deviceName.Equals(store.Config.InOut_Axis.DeviceName)) if ( store.Config.InOut_Axis.IsSameAxis(portName, SlvAddr))
{ {
lblOutPulse.Text = lblOutPulse3.Text; lblOutPulse.Text = lblOutPulse3.Text;
lblCountPulse.Text = lblCountPulse3.Text; lblCountPulse.Text = lblCountPulse3.Text;
...@@ -512,12 +512,12 @@ namespace OnlineStore.ACSingleStore ...@@ -512,12 +512,12 @@ namespace OnlineStore.ACSingleStore
// MessageBox.Show("位置超出" + axisC.Explain + "上下限(" + axisC.PositionMin + "-" + axisC.PositionMax + ")"); // MessageBox.Show("位置超出" + axisC.Explain + "上下限(" + axisC.PositionMin + "-" + axisC.PositionMax + ")");
// return; // return;
//} //}
if (portName.Equals(store.Config.InOut_Axis.DeviceName) && (store.InOutAxisCanMove().Equals(false))) if ( store.Config.InOut_Axis.IsSameAxis(portName, SlvAddr) && (store.InOutAxisCanMove().Equals(false)))
{ {
MessageBox.Show("定位气缸不在下降端,不能移动进出轴", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); MessageBox.Show("定位气缸不在下降端,不能移动进出轴", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return; return;
} }
else if (portName.Equals(store.Config.Middle_Axis.DeviceName) || portName.Equals(store.Config.UpDown_Axis.DeviceName)) else if ( store.Config.Middle_Axis.IsSameAxis(portName, SlvAddr) || store.Config.UpDown_Axis.IsSameAxis(portName, SlvAddr))
{ {
if (!InOutIsIsP1()) if (!InOutIsIsP1())
{ {
...@@ -533,12 +533,12 @@ namespace OnlineStore.ACSingleStore ...@@ -533,12 +533,12 @@ namespace OnlineStore.ACSingleStore
string portName = txtAxisDeviceName.Text; string portName = txtAxisDeviceName.Text;
short SlvAddr = FormUtil.GetShortValue(txtAxisValue); short SlvAddr = FormUtil.GetShortValue(txtAxisValue);
int speed = FormUtil.GetIntValue(txtASpeed); int speed = FormUtil.GetIntValue(txtASpeed);
if (portName.Equals(store.Config.InOut_Axis.DeviceName) && (store.InOutAxisCanMove().Equals(false))) if (store.Config.InOut_Axis.IsSameAxis(portName, SlvAddr) && (store.InOutAxisCanMove().Equals(false)))
{ {
MessageBox.Show("定位气缸不在下降端,不能移动进出轴", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); MessageBox.Show("定位气缸不在下降端,不能移动进出轴", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return; return;
} }
else if (portName.Equals(store.Config.Middle_Axis.DeviceName) || portName.Equals(store.Config.UpDown_Axis.DeviceName)) else if (store.Config.Middle_Axis.IsSameAxis(portName, SlvAddr) || store.Config.UpDown_Axis.IsSameAxis(portName, SlvAddr))
{ {
if (!InOutIsIsP1()) if (!InOutIsIsP1())
{ {
...@@ -564,12 +564,12 @@ namespace OnlineStore.ACSingleStore ...@@ -564,12 +564,12 @@ namespace OnlineStore.ACSingleStore
// return; // return;
//} //}
if (portName.Equals(store.Config.InOut_Axis.DeviceName) && (store.InOutAxisCanMove().Equals(false))) if (store.Config.InOut_Axis.IsSameAxis(portName, SlvAddr) && (store.InOutAxisCanMove().Equals(false)))
{ {
MessageBox.Show("定位气缸不在下降端,不能移动进出轴", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); MessageBox.Show("定位气缸不在下降端,不能移动进出轴", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return; return;
} }
else if (portName.Equals(store.Config.Middle_Axis.DeviceName) || portName.Equals(store.Config.UpDown_Axis.DeviceName)) else if (store.Config.Middle_Axis.IsSameAxis(portName, SlvAddr) || store.Config.UpDown_Axis.IsSameAxis(portName, SlvAddr))
{ {
if (!InOutIsIsP1()) if (!InOutIsIsP1())
{ {
...@@ -1168,12 +1168,12 @@ namespace OnlineStore.ACSingleStore ...@@ -1168,12 +1168,12 @@ namespace OnlineStore.ACSingleStore
{ {
string portName = txtAxisDeviceName.Text; string portName = txtAxisDeviceName.Text;
short SlvAddr = FormUtil.GetShortValue(txtAxisValue); short SlvAddr = FormUtil.GetShortValue(txtAxisValue);
if (portName.Equals(store.Config.InOut_Axis.DeviceName) && (store.InOutAxisCanMove().Equals(false))) if (store.Config.InOut_Axis.IsSameAxis(portName, SlvAddr) && (store.InOutAxisCanMove().Equals(false)))
{ {
MessageBox.Show("定位气缸不在下降端,不能移动进出轴", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); MessageBox.Show("定位气缸不在下降端,不能移动进出轴", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return; return;
} }
else if (portName.Equals(store.Config.Middle_Axis.DeviceName) || portName.Equals(store.Config.UpDown_Axis.DeviceName)) else if (store.Config.Middle_Axis.IsSameAxis(portName, SlvAddr) || store.Config.UpDown_Axis.IsSameAxis(portName, SlvAddr))
{ {
if (!InOutIsIsP1()) if (!InOutIsIsP1())
{ {
......
...@@ -19,13 +19,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -19,13 +19,14 @@ namespace OnlineStore.DeviceLibrary
private static Dictionary<string, Dictionary<string, int>> ComAddrValue = new Dictionary<string, Dictionary<string, int>>(); private static Dictionary<string, Dictionary<string, int>> ComAddrValue = new Dictionary<string, Dictionary<string, int>>();
private static string mapObj = ""; private static string mapObj = "";
private static int GetAddrValue(string portName, string addr) private static int GetAddrValue(string portName, int slvAddr, string addr)
{ {
int value = -1; int value = -1;
try try
{ {
string name = portName + "_" + slvAddr;
Dictionary<string, int> map = null; Dictionary<string, int> map = null;
ComAddrValue.TryGetValue(portName, out map); ComAddrValue.TryGetValue(name, out map);
if (map == null) if (map == null)
{ {
return -1; return -1;
...@@ -41,27 +42,28 @@ namespace OnlineStore.DeviceLibrary ...@@ -41,27 +42,28 @@ namespace OnlineStore.DeviceLibrary
} }
return value; return value;
} }
private static void UpdateAddrValue(string portName, string addr, int value) private static void UpdateAddrValue(string portName, int slvAddr, string addr, int value)
{ {
try try
{ {
lock (mapObj) lock (mapObj)
{ {
string name = portName + "_" + slvAddr;
Dictionary<string, int> map = null; Dictionary<string, int> map = null;
ComAddrValue.TryGetValue(portName, out map); ComAddrValue.TryGetValue(name, out map);
if (map == null) if (map == null)
{ {
map = new Dictionary<string, int>(); map = new Dictionary<string, int>();
ComAddrValue.Add(portName, map); ComAddrValue.Add(name, map);
} }
if (map.ContainsKey(addr)) if (map.ContainsKey(addr))
{ {
ComAddrValue[portName][addr] = value; ComAddrValue[name][addr] = value;
} }
else else
{ {
ComAddrValue[portName].Add(addr, value); ComAddrValue[name].Add(addr, value);
} }
} }
} }
...@@ -339,7 +341,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -339,7 +341,7 @@ namespace OnlineStore.DeviceLibrary
public static void SpeedMove(string portName, int slvAddr, int speed) public static void SpeedMove(string portName, int slvAddr, int speed)
{ {
int preSpeed = GetAddrValue(portName, ACCMDManager.Speed_Addr); int preSpeed = GetAddrValue(portName,slvAddr, ACCMDManager.Speed_Addr);
if ((preSpeed.Equals(-1)) || (!preSpeed.Equals(Math.Abs(speed)))) if ((preSpeed.Equals(-1)) || (!preSpeed.Equals(Math.Abs(speed))))
{ {
//byte[] data = ACCMDManager.GetWriteData(slvAddr, ACCMDManager.CMD_WriteRegisters, "4601", string.Format("{0:X2}", Math.Abs(speed)), 2); //byte[] data = ACCMDManager.GetWriteData(slvAddr, ACCMDManager.CMD_WriteRegisters, "4601", string.Format("{0:X2}", Math.Abs(speed)), 2);
...@@ -349,7 +351,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -349,7 +351,7 @@ namespace OnlineStore.DeviceLibrary
string v1 = slvAddr + "064601 " + ACServerManager.SpeedToStr(speed, 4) + " ffff"; string v1 = slvAddr + "064601 " + ACServerManager.SpeedToStr(speed, 4) + " ffff";
LogUtil.debug("轴【" + portName + "】更新速度为【" + speed + "】,发送数据【" + v1 + "】"); LogUtil.debug("轴【" + portName + "】更新速度为【" + speed + "】,发送数据【" + v1 + "】");
SendStrAndSleep(portName, v1, SleepMSendons); SendStrAndSleep(portName, v1, SleepMSendons);
UpdateAddrValue(portName, ACCMDManager.Speed_Addr, Math.Abs(speed)); UpdateAddrValue(portName,slvAddr, ACCMDManager.Speed_Addr, Math.Abs(speed));
Thread.Sleep(SleepMSendons); Thread.Sleep(SleepMSendons);
} }
if (speed > 0) if (speed > 0)
...@@ -373,13 +375,13 @@ namespace OnlineStore.DeviceLibrary ...@@ -373,13 +375,13 @@ namespace OnlineStore.DeviceLibrary
//先更新速度 //先更新速度
string slvAddrStr = string.Format(strFromat, slvAddr); string slvAddrStr = string.Format(strFromat, slvAddr);
int preSpeed = GetAddrValue(portName, ACCMDManager.Speed_Addr); int preSpeed = GetAddrValue(portName,slvAddr, ACCMDManager.Speed_Addr);
if ((preSpeed.Equals(-1)) || (!preSpeed.Equals(targetSpeed))) if ((preSpeed.Equals(-1)) || (!preSpeed.Equals(targetSpeed)))
{ {
//速度 V1 =100 //速度 V1 =100
string v1 = slvAddrStr + "064601 " + SpeedToStr(targetSpeed, 4) + " ffff"; string v1 = slvAddrStr + "064601 " + SpeedToStr(targetSpeed, 4) + " ffff";
SendStrAndSleep(portName, v1, SleepMSendons); SendStrAndSleep(portName, v1, SleepMSendons);
UpdateAddrValue(portName, ACCMDManager.Speed_Addr, targetSpeed); UpdateAddrValue(portName, slvAddr, ACCMDManager.Speed_Addr, targetSpeed);
} }
//绝对运动 //绝对运动
AbsMove(portName, slvAddr, targetPosition); AbsMove(portName, slvAddr, targetPosition);
......
...@@ -264,6 +264,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -264,6 +264,7 @@ namespace OnlineStore.DeviceLibrary
else else
{ {
bean.SendCommand(data, ref returnData, outTime, reviceLength); bean.SendCommand(data, ref returnData, outTime, reviceLength);
System.Threading.Thread.Sleep(2);
} }
} }
catch (Exception ex) catch (Exception ex)
...@@ -327,6 +328,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -327,6 +328,7 @@ namespace OnlineStore.DeviceLibrary
OnlyOpenSTB(portName, slvAddr); OnlyOpenSTB(portName, slvAddr);
System.Threading.Thread.Sleep(100); System.Threading.Thread.Sleep(100);
CloseSTB(portName, slvAddr); CloseSTB(portName, slvAddr);
System.Threading.Thread.Sleep(100);
} }
public static void OnlyOpenSTB(string portName, int slvAddr) public static void OnlyOpenSTB(string portName, int slvAddr)
...@@ -348,13 +350,13 @@ namespace OnlineStore.DeviceLibrary ...@@ -348,13 +350,13 @@ namespace OnlineStore.DeviceLibrary
public static void UpdateBlock(string portName, int slvAddr, string blockNum) public static void UpdateBlock(string portName, int slvAddr, string blockNum)
{ {
int preNum = GetAddrValue(portName, ACCMDManager.BlockNo); int preNum = GetAddrValue(portName, slvAddr, ACCMDManager.BlockNo);
if (preNum.Equals(-1) || (!preNum.ToString().Equals(blockNum))) if (preNum.Equals(-1) || (!preNum.ToString().Equals(blockNum)))
{ {
byte[] data = ACCMDManager.GetWriteData(slvAddr, ACCMDManager.CMD_WriteRegisters, ACCMDManager.BlockNo, blockNum , 2); byte[] data = ACCMDManager.GetWriteData(slvAddr, ACCMDManager.CMD_WriteRegisters, ACCMDManager.BlockNo, blockNum , 2);
SendData(portName, data); SendData(portName, data);
int value = Convert.ToInt16(blockNum); int value = Convert.ToInt16(blockNum);
UpdateAddrValue(portName, ACCMDManager.BlockNo, value); UpdateAddrValue(portName, slvAddr, ACCMDManager.BlockNo, value);
Thread.Sleep(SleepMSendons); Thread.Sleep(SleepMSendons);
} }
} }
......
...@@ -146,9 +146,9 @@ namespace OnlineStore.DeviceLibrary ...@@ -146,9 +146,9 @@ namespace OnlineStore.DeviceLibrary
moveAxisList.Add(Config.UpDown_Axis); moveAxisList.Add(Config.UpDown_Axis);
moveAxisList.Add(Config.InOut_Axis); moveAxisList.Add(Config.InOut_Axis);
this.AxisAlarmCodeMap = new Dictionary<string , AxisAlarmInfo>(); this.AxisAlarmCodeMap = new Dictionary<string , AxisAlarmInfo>();
this.AxisAlarmCodeMap.Add(Config.UpDown_Axis.DeviceName, new AxisAlarmInfo()); this.AxisAlarmCodeMap.Add(Config.UpDown_Axis.GetNameStr(), new AxisAlarmInfo());
this.AxisAlarmCodeMap.Add(Config.InOut_Axis.DeviceName, new AxisAlarmInfo()); this.AxisAlarmCodeMap.Add(Config.InOut_Axis.GetNameStr(), new AxisAlarmInfo());
this.AxisAlarmCodeMap.Add(this.Config.Middle_Axis.DeviceName, new AxisAlarmInfo()); this.AxisAlarmCodeMap.Add(this.Config.Middle_Axis.GetNameStr(), new AxisAlarmInfo());
} }
......
...@@ -128,7 +128,18 @@ namespace OnlineStore.LoadCSVLibrary ...@@ -128,7 +128,18 @@ namespace OnlineStore.LoadCSVLibrary
/// 最大位置 /// 最大位置
/// </summary> /// </summary>
public int PositionMax { get; set; } public int PositionMax { get; set; }
public string GetNameStr()
{
return DeviceName + "_" + GetAxisValue();
}
public bool IsSameAxis(string portName, int slv)
{
if (DeviceName.Equals(portName) && slv.Equals(GetAxisValue()))
{
return true;
}
return false;
}
public bool PositionIsHasLimit(){ public bool PositionIsHasLimit(){
if (PositionMin.Equals(PositionMax)) if (PositionMin.Equals(PositionMax))
{ {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!