Commit 20ae38b0 LN

有开关门的才需要检测气压信号,无舱门的不需要检测气压信号

1 个父辈 1c9af478
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<add key="Store_ConfigPath" value="\StoreConfig\AC\StoreConfig.csv"/> <add key="Store_ConfigPath" value="\StoreConfig\AC\StoreConfig.csv"/>
<add key="Store_Type" value="RC_AC_SA"/> <add key="Store_Type" value="RC_AC_SA"/>
<add key="Store_CID" value="rc1246ac-1"/> <add key="Store_CID" value="rc1246ac-1"/>
<add key ="Store_ID" value ="1"/> <add key ="Store_ID" value ="3"/>
<!--end one store config--> <!--end one store config-->
<add key="ACBaudRate" value="115200" /> <add key="ACBaudRate" value="115200" />
<add key="InOutDefaultPosition" value="8000"/> <add key="InOutDefaultPosition" value="8000"/>
......
...@@ -47,6 +47,7 @@ namespace OnlineStore.ACSingleStore ...@@ -47,6 +47,7 @@ namespace OnlineStore.ACSingleStore
} }
private void FrmAxisDebug_Load(object sender, EventArgs e) private void FrmAxisDebug_Load(object sender, EventArgs e)
{ {
ACServerManager.ClearSpeed();
txtMiddleSpeed.Text = (middle.TargetSpeed / 5).ToString(); txtMiddleSpeed.Text = (middle.TargetSpeed / 5).ToString();
txtInOutSpeed.Text = (inout.TargetSpeed / 5).ToString(); txtInOutSpeed.Text = (inout.TargetSpeed / 5).ToString();
txtUpDownSpeed.Text = (updown.TargetSpeed / 5).ToString(); txtUpDownSpeed.Text = (updown.TargetSpeed / 5).ToString();
......
...@@ -1332,9 +1332,6 @@ ...@@ -1332,9 +1332,6 @@
this.cmbPosition.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cmbPosition.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbPosition.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.cmbPosition.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.cmbPosition.FormattingEnabled = true; this.cmbPosition.FormattingEnabled = true;
this.cmbPosition.Items.AddRange(new object[] {
"料仓0",
"料仓1"});
this.cmbPosition.Location = new System.Drawing.Point(76, 31); this.cmbPosition.Location = new System.Drawing.Point(76, 31);
this.cmbPosition.Name = "cmbPosition"; this.cmbPosition.Name = "cmbPosition";
this.cmbPosition.Size = new System.Drawing.Size(189, 28); this.cmbPosition.Size = new System.Drawing.Size(189, 28);
......
...@@ -91,4 +91,7 @@ ...@@ -91,4 +91,7 @@
去掉测高,测高在流水线处处理. 去掉测高,测高在流水线处处理.
料仓ID改为配置,方便与流水线通信。 料仓ID改为配置,方便与流水线通信。
20190724调试修改
有开关门的才需要检测气压信号,无舱门的不需要检测气压信号
\ No newline at end of file \ No newline at end of file
...@@ -19,7 +19,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -19,7 +19,7 @@ namespace OnlineStore.DeviceLibrary
private static int ReviceOutTimeMS = 100; private static int ReviceOutTimeMS = 100;
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, int slvAddr, string addr) private static int GetAddrValue(string portName, int slvAddr, string addr)
{ {
int value = -1; int value = -1;
...@@ -74,6 +74,12 @@ namespace OnlineStore.DeviceLibrary ...@@ -74,6 +74,12 @@ namespace OnlineStore.DeviceLibrary
} }
} }
public static void ClearSpeed()
{
LogUtil.info("清理之前设置保存的速度列表");
ComAddrValue = new Dictionary<string, Dictionary<string, int>>();
}
public static bool OpenPort(string portName) public static bool OpenPort(string portName)
{ {
if (serialBeanMap.ContainsKey(portName)) if (serialBeanMap.ContainsKey(portName))
...@@ -362,16 +368,28 @@ namespace OnlineStore.DeviceLibrary ...@@ -362,16 +368,28 @@ namespace OnlineStore.DeviceLibrary
} }
public static void SetSpeed(string portName, int slvAddr, int speed) public static void SetSpeed(string portName, int slvAddr, int speed)
{ {
int preSpeed = GetAddrValue(portName,slvAddr, 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))))
{ {
string v1 = slvAddr + "064601 " + ACServerManager.SpeedToStr(speed, 4) + " ffff"; string v1 = slvAddr + "064601 " + ACServerManager.SpeedToStr(speed, 4) + " ffff";
LogUtil.debug("轴【" + portName + "_" + slvAddr + "】更新速度为【" + speed + "】,发送数据【" + v1 + "】"); LogUtil.debug("轴【" + portName + "_" + slvAddr + "】更新速度为【" + speed + "】,发送数据【" + v1 + "】");
SendStrAndSleep(portName, v1, SleepMSendons);
UpdateAddrValue(portName,slvAddr, ACCMDManager.Speed_Addr, Math.Abs(speed));
Thread.Sleep(SleepMSendons); Thread.Sleep(SleepMSendons);
} for (int i = 1; i <= 3; i++)
{
bool result = SendStrAndSleep(portName, v1, SleepMSendons);
if (result)
{
break;
}
else
{
LogUtil.error("轴【" + portName + "_" + slvAddr + "】更新速度为【" + speed + "】,发送数据【" + v1 + "】,第【" + i + "】次失败");
Thread.Sleep(SleepMSendons);
}
}
UpdateAddrValue(portName, slvAddr, ACCMDManager.Speed_Addr, Math.Abs(speed));
Thread.Sleep(SleepMSendons);
}
} }
public static void SpeedMove(string portName, int slvAddr, int speed) public static void SpeedMove(string portName, int slvAddr, int speed)
{ {
......
...@@ -27,15 +27,16 @@ namespace OnlineStore.DeviceLibrary ...@@ -27,15 +27,16 @@ namespace OnlineStore.DeviceLibrary
} }
return null; return null;
} }
public static void SendStrAndSleep(string portName, string str, int sleepS) public static bool SendStrAndSleep(string portName, string str, int sleepS)
{ {
byte[] data = AcSerialBean.StringToByte(str); byte[] data = AcSerialBean.StringToByte(str);
data[data.Length - 1] = 0x00; data[data.Length - 1] = 0x00;
data[data.Length - 2] = 0x00; data[data.Length - 2] = 0x00;
data = ACCMDManager.buildCheckData(data, data.Length - 2); data = ACCMDManager.buildCheckData(data, data.Length - 2);
SendData(portName, data); bool result = SendData(portName, data);
System.Threading.Thread.Sleep(sleepS); System.Threading.Thread.Sleep(sleepS);
return result;
} }
public static void SaveData(string portName, byte slvAddr, string regAddr, int value) public static void SaveData(string portName, byte slvAddr, string regAddr, int value)
...@@ -88,13 +89,14 @@ namespace OnlineStore.DeviceLibrary ...@@ -88,13 +89,14 @@ namespace OnlineStore.DeviceLibrary
LogUtil.info( "串口" + portName + " 收到数据:" + strSend + ""); LogUtil.info( "串口" + portName + " 收到数据:" + strSend + "");
} }
} }
public static void SendData(string portName, byte[] data) public static bool SendData(string portName, byte[] data)
{ {
if (data == null) if (data == null)
{ {
return; return false;
} }
byte[] returnData = SendCommand(portName, data, ReviceOutTimeMS, 8); bool result = false;
byte[] returnData = SendCommand(portName, data, ReviceOutTimeMS, 8, out result);
if (returnData != null) if (returnData != null)
{ {
string strSend = ""; string strSend = "";
...@@ -107,6 +109,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -107,6 +109,7 @@ namespace OnlineStore.DeviceLibrary
LogUtil.info("串口" + portName + " 收到数据:" + strSend + ""); LogUtil.info("串口" + portName + " 收到数据:" + strSend + "");
} }
} }
return result;
} }
/// <summary> /// <summary>
/// 发送数据并获取返回值 /// 发送数据并获取返回值
...@@ -162,7 +165,64 @@ namespace OnlineStore.DeviceLibrary ...@@ -162,7 +165,64 @@ namespace OnlineStore.DeviceLibrary
} }
return returnData; return returnData;
} }
/// <summary>
/// 发送数据并获取返回值
/// </summary>
/// <param name="data">发送的数据</param>
/// <param name="outTime">超时时间</param>
/// <param name="result">返回结果,是否发送成功</param>
/// <returns>返回值的长度</returns>
public static byte[] SendCommand(string portName, byte[] data, int outTime, int reviceLength,out bool result)
{
if (outTime < 100)
{
outTime = 100;
}
byte[] returnData = null;
result = false;
try
{
if (data == null)
{
return returnData;
}
string strSend = "";
for (int i = 0; i < data.Length; i++)
{
strSend += string.Format("{0:X2} ", data[i]);
}
if (strSend.Equals(""))
{
return returnData;
}
if (IsShowMsg)
{
LogUtil.info("串口" + portName + " 写入数据:" + strSend + "");
}
AcSerialBean bean = GetSerialBean(portName);
if (bean == null)
{
LogUtil.debug("ACServerManager SendCommand 试图向未打开串口【" + portName + "】写入数据:" + strSend + "。");
}
else
{
int ret = bean.SendCommand(data, ref returnData, outTime, reviceLength);
if (!ret.Equals(reviceLength))
{
LogUtil.error("串口" + portName + " 写入数据:" + strSend + ",预计返回字节数【" + reviceLength + "】实际返回【" + ret + "】");
}else
{
result = true ;
}
System.Threading.Thread.Sleep(2);
}
}
catch (Exception ex)
{
LogUtil.info(ex.ToString());
}
return returnData;
}
public static void WriteData(string portName, int slvAddr, string addr, string data, byte cmd, int length) public static void WriteData(string portName, int slvAddr, string addr, string data, byte cmd, int length)
{ {
......
...@@ -158,7 +158,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -158,7 +158,7 @@ namespace OnlineStore.DeviceLibrary
IO_VALUE airCheck = IOManager.IOValue(IO_Type.Airpressure_Check); IO_VALUE airCheck = IOManager.IOValue(IO_Type.Airpressure_Check);
//if (suddenBtn == IO_VALUE.HIGH) //if (suddenBtn == IO_VALUE.HIGH)
if (suddenBtn == IO_VALUE.HIGH && airCheck == IO_VALUE.HIGH) if (suddenBtn.Equals(IO_VALUE.HIGH) && (airCheck.Equals(IO_VALUE.HIGH) || Config.HasDoor.Equals(0)))
{ {
//lastAirValue = airCheck; //lastAirValue = airCheck;
lastAirCloseTime = DateTime.Now; lastAirCloseTime = DateTime.Now;
...@@ -184,7 +184,7 @@ namespace OnlineStore.DeviceLibrary ...@@ -184,7 +184,7 @@ namespace OnlineStore.DeviceLibrary
} }
else else
{ {
if (suddenBtn.Equals(IO_VALUE.LOW)) if (Config.HasDoor.Equals(1) && suddenBtn.Equals(IO_VALUE.LOW))
{ {
LogUtil.error(LOGGER, " (" + StoreName + ")启动出现错误:急停没开 !启动失败!"); LogUtil.error(LOGGER, " (" + StoreName + ")启动出现错误:急停没开 !启动失败!");
} }
...@@ -721,6 +721,10 @@ namespace OnlineStore.DeviceLibrary ...@@ -721,6 +721,10 @@ namespace OnlineStore.DeviceLibrary
private IO_VALUE preAirValue = IO_VALUE.HIGH; private IO_VALUE preAirValue = IO_VALUE.HIGH;
private void AirCheckProcess() private void AirCheckProcess()
{ {
if (Config.HasDoor.Equals(0))
{
return;
}
IO_VALUE currAirValue = IOManager.IOValue(IO_Type.Airpressure_Check); IO_VALUE currAirValue = IOManager.IOValue(IO_Type.Airpressure_Check);
if (isInSuddenDown) if (isInSuddenDown)
{ {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!