Commit 90fd6156 LN

1

1 个父辈 fe0f0af3
......@@ -9,12 +9,6 @@
AIOBOX操作类
</summary>
</member>
<member name="F:Asa.IOModule.AIOBOX._unrevdRemote">
<summary>
暂停次数
WriteDO 命令非常多时,暂停一次发送 ReadDI 或 ReadDO
</summary>
</member>
<member name="F:Asa.IOModule.AIOBOX.SEND_SLEEP">
<summary>
每条命令发送的间隔
......@@ -22,13 +16,12 @@
小于30时,会出现接收数据连包的情况
</summary>
</member>
<member name="F:Asa.IOModule.AIOBOX.LISTEN_SLEEP">
<member name="F:Asa.IOModule.AIOBOX.PORT">
<summary>
监听网络接收数据的间隔
必须小于SEND_SLEEP
ModBus端口
</summary>
</member>
<member name="T:Asa.IOModule.AIOBOX.DI_Changed">
<member name="T:Asa.IOModule.AIOBOX.DIO_Changed">
<summary>
自动读取DI委托
</summary>
......@@ -40,19 +33,12 @@
自动读取DI事件触发
</summary>
</member>
<member name="T:Asa.IOModule.AIOBOX.DO_Changed">
<summary>
自动读取DO委托
</summary>
<param name="box">AIOBOX</param>
<param name="sta">所有DO状态</param>
</member>
<member name="E:Asa.IOModule.AIOBOX.DO_Changed_Event">
<summary>
自动读取DO事件触发
</summary>
</member>
<member name="T:Asa.IOModule.AIOBOX.AI_Changed">
<member name="T:Asa.IOModule.AIOBOX.AIO_Changed">
<summary>
自动读取AI委托
</summary>
......@@ -64,13 +50,6 @@
自动读取AI事件触发
</summary>
</member>
<member name="T:Asa.IOModule.AIOBOX.AO_Changed">
<summary>
自动读取AO委托
</summary>
<param name="box">AIOBOX</param>
<param name="val">所有AO的值</param>
</member>
<member name="E:Asa.IOModule.AIOBOX.AO_Changed_Event">
<summary>
自动读取AO事件触发
......@@ -86,11 +65,6 @@
IP地址
</summary>
</member>
<member name="P:Asa.IOModule.AIOBOX.Port">
<summary>
ModBus端口
</summary>
</member>
<member name="P:Asa.IOModule.AIOBOX.IsConn">
<summary>
是否连接
......@@ -101,35 +75,11 @@
错误信息
</summary>
</member>
<member name="P:Asa.IOModule.AIOBOX.LogOutDir">
<summary>
日志输出目录
</summary>
</member>
<member name="P:Asa.IOModule.AIOBOX.LogOut">
<summary>
错误日志输出,默认true
</summary>
</member>
<member name="P:Asa.IOModule.AIOBOX.InputCount">
<summary>
输入总数
</summary>
</member>
<member name="P:Asa.IOModule.AIOBOX.OutputCount">
<summary>
输出总数
</summary>
</member>
<member name="P:Asa.IOModule.AIOBOX.InputReadSleep">
<summary>
自动读取DI间隔
</summary>
</member>
<member name="P:Asa.IOModule.AIOBOX.OutputReadSleep">
<member name="M:Asa.IOModule.AIOBOX.LogPath(System.String)">
<summary>
自动读取DO间隔
日志路径,连接前设置路径会自动保存日志
</summary>
<param name="path">文件夹路径</param>
</member>
<member name="M:Asa.IOModule.AIOBOX.SetInput(Asa.IOModule.Box_Type,System.Int32)">
<summary>
......@@ -197,6 +147,12 @@
<param name="sta"></param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReverseStatus(Asa.IOModule.Box_Sta@)">
<summary>
相反状态(ON/OFF)
</summary>
<param name="sta"></param>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadDI(System.Int32)">
<summary>
读取单个DI输入状态(ON/OFF)
......@@ -292,20 +248,17 @@
读取所有DO状态,功能码1
</summary>
<param name="buff"></param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadDI(System.Byte[])">
<summary>
读取所有DI状态,功能码2
</summary>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.ReadAI(System.Byte[])">
<summary>
读取所有AI的值,功能码4
</summary>
<param name="buff"></param>
<returns></returns>
</member>
<member name="M:Asa.IOModule.AIOBOX.Command">
<summary>
......@@ -373,5 +326,46 @@
闭合,打开,高电平
</summary>
</member>
<member name="T:Asa.IOModule.LogFile">
<summary>
日志操作类
</summary>
</member>
<member name="M:Asa.IOModule.LogFile.#ctor(System.String)">
<summary>
日志
</summary>
<param name="path">文件夹路径</param>
</member>
<member name="M:Asa.IOModule.LogFile.Close">
<summary>
关闭文件
</summary>
</member>
<member name="M:Asa.IOModule.LogFile.OutError(System.String)">
<summary>
输出错误
</summary>
<param name="s"></param>
</member>
<member name="M:Asa.IOModule.LogFile.OutInfo(System.String)">
<summary>
输出信息
</summary>
<param name="s"></param>
</member>
<member name="M:Asa.IOModule.LogFile.OutData(System.String,System.Byte[])">
<summary>
输出数据
</summary>
<param name="tr"></param>
<param name="buff"></param>
</member>
<member name="M:Asa.IOModule.LogFile.OutData(System.String)">
<summary>
输出数据
</summary>
<param name="s"></param>
</member>
</members>
</doc>
......@@ -22,7 +22,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
......
......@@ -21,9 +21,9 @@
<add key="Store_Position_Config" value="\StoreConfig\linePositions.csv"/>
<add key="BOX_ConfigPath" value="\StoreConfig\BoxConfig.csv"/>
<add key="Store_Type" value="RC_AC_PA"/>
<add key="Store_CID" value="line-ac"/>
<add key="Store_CID_1" value="line-ac1"/>
<add key="Store_CID_2" value="line-ac2"/>
<add key="Store_CID" value="packing-store"/>
<add key="Store_CID_1" value="packing-store1"/>
<add key="Store_CID_2" value="packing-store2"/>
<!--end one store config-->
<add key="ACBaudRate" value="115200" />
<add key="InOutDefaultPosition" value="8000"/>
......@@ -48,7 +48,7 @@
</appSettings>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logs/ACStore-line-ac1.log"/>
<file value="logs/Packing-store-1-2.log"/>
<param name="Encoding" value="UTF-8" />
<appendToFile value="true"/>
<rollingStyle value="Date"/>
......
......@@ -106,7 +106,7 @@ namespace OnlineStore.ACPackingStore
//txtUpDownP1.Text = ktkPosition.UpDownAxis_P1.ToString();
}
timer1.Enabled = true;
timer1.Start();
chbDebug.Checked = BoxBean.IsDebug;
this.ShowInTaskbar = true;
......@@ -139,9 +139,7 @@ namespace OnlineStore.ACPackingStore
if (!this.Visible)
{
return;
}
// button6_Click(null, null);
// timer1.Interval = 300;
}
if (chbDebug.Checked.Equals(BoxBean.IsDebug).Equals(false))
{
LoadOk = false;
......@@ -149,28 +147,22 @@ namespace OnlineStore.ACPackingStore
LoadOk = true;
}
lblTemp.Text = BoxBean.humBean.currTempStr;
// lblMoveEquipInfo.Text = "移栽状态:"+(LineConnect.CanStartOut() ? "可出库":"不可出库" )+" "+LineConnect.LastUpdateTime.ToLongTimeString() ;
//忙碌状态不读取状态
//if (!BoxBean.storeRunStatus.Equals(StoreRunStatus.Busy))
//{
// if (chbAutoRead.Checked)
// {
// string portName = GetPortName();
// int SlvAddr = GetSlaveAddr();
// //判断私服是否打开、
// if (ACServerManager.ServerOnStatus(portName, SlvAddr))
// {
// txtServoStatue.Text = "✔";
// int lCountPulse = ACServerManager.GetActualtPosition(portName, SlvAddr);
// lblCountPulse.Text = string.Format("{0:d}", lCountPulse);
// }
// else
// {
// txtServoStatue.Text = "✘";
// }
// }
//}
lblWarnMsg.Text = BoxBean.WarnMsg;
if (BoxBean.IOValue(IO_Type.DoorLimit).Equals(IO_VALUE.LOW))
{
lblWarnMsg.Text = lblWarnMsg.Text + " 前门未关";
}
if (BoxBean.IOValue(IO_Type.DoorLimit).Equals(IO_VALUE.LOW))
{
lblWarnMsg.Text = lblWarnMsg.Text + " 无门禁信号,请检查";
}
if (BoxBean.humBean.TempOrHumidityIsAlarm)
{
lblWarnMsg.Text = lblWarnMsg.Text + " 温湿度报警[" + BoxBean.humBean.TempAlarmTime.ToLongTimeString() + "]";
}
if (lblWarnMsg.Text.Equals(""))
{
}
//ReadPosistion();
if (BoxBean.storeRunStatus > StoreRunStatus.Wait)
......@@ -209,40 +201,7 @@ namespace OnlineStore.ACPackingStore
}
}
}
lblWarnMsg.Text = BoxBean.WarnMsg;
if (BoxBean.IOValue(IO_Type.DoorLimit).Equals(IO_VALUE.LOW))
{
lblWarnMsg.Text = lblWarnMsg.Text + " 前门未关";
}
////如果不在出入库中,且叉子上有信号,需要提示检查叉子
//if (BoxBean.storeRunStatus.Equals(StoreRunStatus.Runing) && BoxBean.IOValue(IO_Type.TrayCheck_Fixture).Equals(IO_VALUE.HIGH))
//{
// lblWarnMsg.Text = lblWarnMsg.Text + " 叉子料盘检测有料,请检查";
//}
if (BoxBean.IOValue(IO_Type.DoorLimit).Equals(IO_VALUE.LOW))
{
lblWarnMsg.Text = lblWarnMsg.Text + " 无门禁信号,请检查";
}
if (BoxBean.humBean.TempOrHumidityIsAlarm)
{
lblWarnMsg.Text = lblWarnMsg.Text + " 温湿度报警[" + BoxBean.humBean.TempAlarmTime.ToLongTimeString() + "]";
}
if (lblWarnMsg.Text.Equals(""))
{
//List<string> list = new List<string>(LineConnect.WaitInStoreList);
//if (list.Count > 0)
//{
// string msg = "等待入库:";
// foreach (string s in list)
// {
// msg += s + "\t";
// }
// lblWarnMsg.Text = msg;
//}
}
if (BoxBean.AutoInout.autoNext)
{
string msg = BoxBean.AutoInout.autoMsg;
......@@ -275,7 +234,7 @@ namespace OnlineStore.ACPackingStore
else
{
lblThisSta.Text = "等待启动";
lblWarnMsg.Text = "";
// lblWarnMsg.Text = "";
btnStartAuTo.Text = "开始自动出入库";
}
}
......@@ -622,19 +581,30 @@ namespace OnlineStore.ACPackingStore
private void btnStoreStart_Click(object sender, EventArgs e)
{
BoxBean.StartRun();
if (BoxBean.storeRunStatus >= StoreRunStatus.HomeMoving)
bool result= BoxBean.StartRun();
if (result)
{
StoreOpenStatus(true);
}
else
{
MessageBox.Show(BoxBean.WarnMsg);
}
}
private void 停止ToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
BoxBean.StopRun();
StoreOpenStatus(false);
if (BoxBean.storeRunStatus >= StoreRunStatus.HomeMoving)
{
BoxBean.StopRun();
StoreOpenStatus(false);
}
else
{
MessageBox.Show("请先启动料仓!");
}
}
catch (Exception ex)
{
......@@ -648,6 +618,10 @@ namespace OnlineStore.ACPackingStore
{
this.BoxBean.Reset();
btnSotreReset.Enabled = false;
}
else
{
MessageBox.Show("请先启动料仓!");
}
}
......@@ -847,7 +821,7 @@ namespace OnlineStore.ACPackingStore
ioIP = BoxBean.Config.DIList[IO_Type.TrayCheck_Fixture].DeviceName;
ioIndex = BoxBean.Config.DIList[IO_Type.TrayCheck_Fixture].GetIOAddr();
}
FrmPositionTool frm = new FrmPositionTool(PortName, slvAddr, ioIP, ioIndex, Text);
FrmPositionTool frm = new FrmPositionTool(PortName, slvAddr, ioIP, ioIndex, Text, BoxBean.DeviceID);
frm.ShowDialog();
}
......
......@@ -24,7 +24,7 @@ namespace OnlineStore.ACPackingStore
{
private int StoreId = 1;
private AC_BOX_Bean boxBean;
public static readonly ILog LOGGER = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public static readonly ILog LOGGER = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public FrmIOStatus()
{
Control.CheckForIllegalCrossThreadCalls = false;
......@@ -34,7 +34,7 @@ namespace OnlineStore.ACPackingStore
{
Control.CheckForIllegalCrossThreadCalls = false;
InitializeComponent();
this.boxBean = store;
this.StoreId = store.DeviceID;
LoadIOList();
......@@ -159,7 +159,7 @@ namespace OnlineStore.ACPackingStore
foreach (string key in DIControlList.Keys)
{
IOTextControl control = DIControlList[key];
int iov = (int)boxBean.IOValue(key);
int iov = (int)boxBean.IOValue(key );
if (iov != control.IOValue)
{
control.IOValue = iov;
......@@ -169,7 +169,7 @@ namespace OnlineStore.ACPackingStore
foreach (string key in this.DOControlList.Keys)
{
IOTextControl control = DOControlList[key];
int iov = (int)IOManager.DOValue(key);
int iov = (int)boxBean.IOValue(key );
if (iov != control.IOValue)
{
control.IOValue = iov;
......@@ -244,7 +244,7 @@ namespace OnlineStore.ACPackingStore
private void btnCloseAxisBreak_Click(object sender, EventArgs e)
{
IOManager.IOMove(IO_Type.Axis_Brake, IO_VALUE.LOW);
boxBean.IOMove(IO_Type.Axis_Brake, IO_VALUE.LOW);
}
private void button1_Click(object sender, EventArgs e)
......
......@@ -25,15 +25,17 @@ namespace OnlineStore.ACPackingStore
private string IoIp = "";
private int IoIndex = 0;
public string Axis_Brake = IO_Type.Axis_Brake;
private int subType = 0;
private System.Timers.Timer toolTimer = new System.Timers.Timer();
private string boxName = "";
public FrmPositionTool(string protName, int slvAddr, string ioIp, int ioIndex, string text)
public FrmPositionTool(string protName, int slvAddr, string ioIp, int ioIndex, string text,int ioSubType)
{
InitializeComponent();
this.PortName = protName;
this.SlvAddr = slvAddr;
this.IoIp = ioIp;
this.IoIndex = ioIndex;
this.subType = ioSubType;
boxName = text.Trim().Replace("料仓", "");
this.Text = boxName + "_升降轴位置调试";
LogName = boxName + "_升降轴调试:";
......@@ -122,7 +124,7 @@ namespace OnlineStore.ACPackingStore
try
{
IOManager.IOMove(Axis_Brake, IO_VALUE.HIGH);
IOManager.IOMove(Axis_Brake, IO_VALUE.HIGH,subType);
}catch(Exception ex)
{
......@@ -138,7 +140,7 @@ namespace OnlineStore.ACPackingStore
Thread.Sleep(100);
try
{
IOManager.IOMove(Axis_Brake, IO_VALUE.LOW);
IOManager.IOMove(Axis_Brake, IO_VALUE.LOW,subType);
}
catch (Exception ex)
{
......
......@@ -8,3 +8,13 @@
//机器未启动 灭 灭 灭
//机器设备故障(非温湿度)报警 亮 灭 闪
新建分支RC1250-ACPackingStore,作为佳世达流水线单台包装料料仓软件
同一个客户端有两个box软件。
位置重定义:
旋转轴(轴1)P1 :待机原位点/NG料口位置
新增料架位置配置:
旋转轴位置P101:料架库位旋转轴位置
升降轴低点P101:料架库位升降轴低点
升降轴高点P102:料架库位升降轴高点
进出轴位置P101:料架库位进出轴位置
\ No newline at end of file
......@@ -17,17 +17,12 @@ namespace OnlineStore.DeviceLibrary
public partial class AC_BOX_Bean : KTK_Store
{
private static bool IsIntSlvBlock = false;
public AutoInoutInfo AutoInout = new AutoInoutInfo();
public static bool IsRun = false;
public AutoInoutInfo AutoInout = new AutoInoutInfo();
public string CID = "";
public AC_BOX_Config Config;
/// <summary>
/// 记录最后一次 出库的posID,出库完成发送给服务器之后清除
/// </summary>
public AC_BOX_Config Config;
public string lastPosId = "";
public StoreStatus lastPosIdStatus = StoreStatus.StoreOnline;
public List<ConfigMoveAxis> moveAxisList = new List<ConfigMoveAxis>();
// private Dictionary<string, AxisAlarmInfo> AxisAlarmCodeMap = new Dictionary<string, AxisAlarmInfo>();
public List<ConfigMoveAxis> moveAxisList = new List<ConfigMoveAxis>();
public List<string> PositionNumList = new List<string>();
public List<string> ShelfPosList = new List<string>();
/// <summary>
......@@ -121,14 +116,7 @@ namespace OnlineStore.DeviceLibrary
moveAxisList.Add(Config.Middle_Axis);
moveAxisList.Add(Config.UpDown_Axis);
moveAxisList.Add(Config.InOut_Axis);
moveAxisList.Add(Config.Comp_Axis);
//this.AxisAlarmCodeMap = new Dictionary<string, AxisAlarmInfo>();
//this.AxisAlarmCodeMap.Add(Config.UpDown_Axis.GetNameStr(), new AxisAlarmInfo());
//this.AxisAlarmCodeMap.Add(Config.InOut_Axis.GetNameStr(), new AxisAlarmInfo());
//this.AxisAlarmCodeMap.Add(this.Config.Middle_Axis.GetNameStr(), new AxisAlarmInfo());
//this.AxisAlarmCodeMap.Add(this.Config.Comp_Axis.GetNameStr(), new AxisAlarmInfo());
moveAxisList.Add(Config.Comp_Axis);
}
/// <summary>
......@@ -138,6 +126,7 @@ namespace OnlineStore.DeviceLibrary
{
if (!StoreManager.Store.canStart)
{
WarnMsg = "启动失败:设备未初始化完成";
LogUtil.error(Name + "启动失败:设备未初始化完成");
return false;
}
......@@ -171,18 +160,20 @@ namespace OnlineStore.DeviceLibrary
mainTimer.Enabled = true;
IoCheckTimer.Enabled = true;
serverConnectTimer.Enabled = true;
IsRun = true;
return true;
}
else
{
if (suddenBtn.Equals(IO_VALUE.LOW))
{
LogUtil.error(" (" + Name + ")启动出现错误:急停没开 !启动失败!");
WarnMsg = "启动失败:急停没开";
LogUtil.error(" (" + Name + ")启动失败:急停没开!");
}
else
{
LogUtil.error(" (" + Name + ")启动出现错误:没有气压信号 !启动失败!");
WarnMsg = "启动失败:没有气压信号";
LogUtil.error(" (" + Name + ")启动失败:没有气压信号!");
}
return false;
}
......@@ -191,14 +182,9 @@ namespace OnlineStore.DeviceLibrary
#region 原点返回和复位处理
private void ReturnHome()
{
isNoAirCheck = false;
isInSuddenDown = false;
WarnMsg = "";
{
AutoInout.ClearCount();
IOMove(IO_Type.Alarm_HddLed, IO_VALUE.LOW);
IOMove(IO_Type.AutoRun_HddLed, IO_VALUE.HIGH);
IOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
storeRunStatus = StoreRunStatus.HomeMoving;
MoveInfo.NewMove(StoreMoveType.ReturnHome);
......@@ -208,7 +194,7 @@ namespace OnlineStore.DeviceLibrary
{
//压紧轴回原点,叉子回到P1,关闭门旋转轴和升降轴回到P1
MoveInfo.NewMove(StoreMoveType.StoreReset);
MoveInfo.NextMoveStep(StoreMoveStep.BOX_M_H_TOP1_InOutToP1);
MoveInfo.NextMoveStep(StoreMoveStep.BOX_H54_TOP1_InOutToP1);
LogInfo("到待机状态,进出轴到P1,判断叉子没有料盘");
ACAxisMove(Config.InOut_Axis, Config.InOutAxis_P1_Position, Config.InOutAxis_P1_Speed);
}
......@@ -216,42 +202,44 @@ namespace OnlineStore.DeviceLibrary
public override void Reset(bool isNeedClearAuto = true)
{
AutoInout.ClearCount();
IOMove(IO_Type.Alarm_HddLed, IO_VALUE.LOW);
IOMove(IO_Type.AutoRun_HddLed, IO_VALUE.HIGH);
IOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
//复位之前先停止运行
if (isNeedClearAuto)
{
AutoInout.StopAuto();
}
//ACServerManager.SuddenStop(Config.Middle_Axis.DeviceName, Config.Middle_Axis.GetAxisValue());
//ACServerManager.SuddenStop(Config.UpDown_Axis.DeviceName, Config.UpDown_Axis.GetAxisValue());
//ACServerManager.SuddenStop(Config.InOut_Axis.DeviceName, Config.InOut_Axis.GetAxisValue());
//ACServerManager.SuddenStop(Config.Comp_Axis.DeviceName, Config.Comp_Axis.GetAxisValue());
isInSuddenDown = false;
isNoAirCheck = false;
alarmType = StoreAlarmType.None;
}
storeRunStatus = StoreRunStatus.Reset;
storeStatus = StoreStatus.ResetMove;
MoveInfo.NewMove(StoreMoveType.StoreReset);
WarnMsg = "";
if (!RunAxis(true)) {
if (!RunAxis(true))
{
LogInfo("复位时打开轴失败,需要再次复位,直接报警停止复位");
return;
}
InoutStartReset();
}
InoutStartReset();
isInPro = false;
}
private void InoutStartReset()
{
MoveInfo.NextMoveStep(StoreMoveStep.BOX_H_InOutBack);
LogInfo(MoveInfo.MoveType+": ,进出轴开始原点返回");
ACAxisHomeMove(Config.InOut_Axis);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
{
//清理报警
WarnMsg = "";
isInSuddenDown = false;
isNoAirCheck = false;
alarmType = StoreAlarmType.None;
//重置灯
IOMove(IO_Type.Alarm_HddLed, IO_VALUE.LOW);
IOMove(IO_Type.AutoRun_HddLed, IO_VALUE.HIGH);
IOMove(IO_Type.RunSign_HddLed, IO_VALUE.LOW);
//开始复位动作
MoveInfo.NextMoveStep(StoreMoveStep.BOX_H01_DoorClose);
LogInfo(MoveInfo.MoveType+": 线体停止,入口移门关闭,NG升降门下降");
IOMove(IO_Type.Line_BackRun, IO_VALUE.LOW);
IOMove(IO_Type.Line_Run, IO_VALUE.LOW);
CylinderMove(MoveInfo, IO_Type.NGDoowCylinder_Up, IO_Type.NGDoorCylinder_Down);
CylinderMove(MoveInfo, IO_Type.EntranceDoor_Open, IO_Type.EntranceDoor_Close);
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(300));
}
/// <summary>
/// 复位处理
......@@ -268,18 +256,16 @@ namespace OnlineStore.DeviceLibrary
}
switch (MoveInfo.MoveStep)
{
case StoreMoveStep.BOX_H_LocationCylinderBack:
InoutStartReset();
break;
case StoreMoveStep.BOX_H_InOutMove:
MoveInfo.NextMoveStep(StoreMoveStep.BOX_H_InOutBack);
case StoreMoveStep.BOX_H01_DoorClose:
MoveInfo.NextMoveStep(StoreMoveStep.BOX_H03_InOutBack);
ACAxisHomeMove(Config.InOut_Axis);
LogInfo(MoveInfo.MoveType + ": 进出轴开始原点返回");
MoveInfo.WaitList.Add(WaitResultInfo.WaitTime(2000));
break;
case StoreMoveStep.BOX_H_InOutBack:
case StoreMoveStep.BOX_H03_InOutBack:
Thread.Sleep(200);
MoveInfo.NextMoveStep(StoreMoveStep.BOX_H_InOutToP1);
MoveInfo.NextMoveStep(StoreMoveStep.BOX_H04_InOutToP1);
LogInfo(MoveInfo.MoveType + ": 进出轴到待机点P1,关闭舱门");
//进出轴原点返回完成,将进出轴的位置设置=0
AxisCountClear(Config.InOut_Axis);
......@@ -287,7 +273,7 @@ namespace OnlineStore.DeviceLibrary
//判断叉子没有料盘
//StoreMove.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.TrayCheck_Fixture, IO_VALUE.LOW));
break;
case StoreMoveStep.BOX_H_InOutToP1:
case StoreMoveStep.BOX_H04_InOutToP1:
//如果此时轴三还在报警,需要提示错误并等待
if (ACServerManager.GetAlarmStatus(Config.InOut_Axis.DeviceName, Config.InOut_Axis.GetAxisValue()) > 0)
{
......@@ -295,21 +281,21 @@ namespace OnlineStore.DeviceLibrary
}
//复位和回原点要等轴3进出轴ORG亮了以后才能返回其他轴
LogInfo(MoveInfo.MoveType + ": 压紧轴,旋转轴,上下轴开始 原点返回");
MoveInfo.NextMoveStep(StoreMoveStep.BOX_H_OtherAxisBack);
MoveInfo.NextMoveStep(StoreMoveStep.BOX_H05_OtherAxisBack);
ACAxisHomeMove(Config.Comp_Axis);
ACAxisHomeMove(Config.Middle_Axis);
ACAxisHomeMove(Config.UpDown_Axis);
break;
case StoreMoveStep.BOX_H_OtherAxisBack:
case StoreMoveStep.BOX_H05_OtherAxisBack:
MoveInfo.NextMoveStep(StoreMoveStep.BOX_H_MiddleAxisToP1);
MoveInfo.NextMoveStep(StoreMoveStep.BOX_H06_MiddleAxisToP1);
LogInfo(MoveInfo.MoveType + ": 旋转轴运动到P1,上下轴走到P1,压紧轴到P1!");
ACAxisMove(Config.Middle_Axis, Config.MiddleAxis_P1, Config.MiddleAxis_P1_Speed);
ACAxisMove(Config.UpDown_Axis, Config.UpDownAxis_P1, Config.UpDownAxis_P1_Speed);
ACAxisMove(Config.Comp_Axis,Config.CompAxis_P1_Position, Config.CompAxis_P1_Speed);
break;
case StoreMoveStep.BOX_H_MiddleAxisToP1:
case StoreMoveStep.BOX_H06_MiddleAxisToP1:
LogInfo(MoveInfo.MoveType + ": 完成");
storeRunStatus = StoreRunStatus.Runing;
MoveInfo.EndMove();
......@@ -320,19 +306,19 @@ namespace OnlineStore.DeviceLibrary
}
break;
case StoreMoveStep.BOX_M_H_TOP1_InOutToP1:
MoveInfo.NextMoveStep(StoreMoveStep.BOX_M_H_TOP1_CompressHome);
case StoreMoveStep.BOX_H54_TOP1_InOutToP1:
MoveInfo.NextMoveStep(StoreMoveStep.BOX_H55_TOP1_CompressHome);
LogInfo("到待机状态,压紧轴回原点,关闭舱门");
ACAxisHomeMove(Config.Comp_Axis);
break;
case StoreMoveStep.BOX_M_H_TOP1_CompressHome:
MoveInfo.NextMoveStep(StoreMoveStep.BOX_M_H_TOP1_OtherAxisToP1);
case StoreMoveStep.BOX_H55_TOP1_CompressHome:
MoveInfo.NextMoveStep(StoreMoveStep.BOX_H56_TOP1_OtherAxisToP1);
LogInfo(MoveInfo.MoveType + ": 旋转轴运动到P1,上下轴走到P1,压紧轴到P1!");
ACAxisMove(Config.Middle_Axis, Config.MiddleAxis_P1, Config.MiddleAxis_P1_Speed);
ACAxisMove(Config.UpDown_Axis, Config.UpDownAxis_P1, Config.UpDownAxis_P1_Speed);
ACAxisMove(Config.Comp_Axis,Config.CompAxis_P1_Position, Config.CompAxis_P1_Speed);
break;
case StoreMoveStep.BOX_M_H_TOP1_OtherAxisToP1:
case StoreMoveStep.BOX_H56_TOP1_OtherAxisToP1:
LogInfo("到待机状态完成");
MoveInfo.EndMove();
storeStatus = StoreStatus.StoreOnline;
......@@ -457,7 +443,7 @@ namespace OnlineStore.DeviceLibrary
storeRunStatus = StoreRunStatus.Wait;
mainTimer.Enabled = false;
TimeSpan span = DateTime.Now - StartTime;
IsRun = false;
//LineConnect.StopConnect();
// IOManager.instance.CloseAllDO();
......@@ -720,8 +706,7 @@ namespace OnlineStore.DeviceLibrary
private void AutoResetProcess()
{
try
{
// bool noInStore = LineConnect.WaitInStoreList.Count <= 0;
{
bool noInStore = true;
if (AutoInout.CurrInOutACount >= this.Config.Box_ResetACount && noInStore)
{
......@@ -734,20 +719,8 @@ namespace OnlineStore.DeviceLibrary
LogInfo("已经累计出入库" + AutoInout.CurrInOutACount + "次,需要复位一下");
Reset();
}
}
//else if (AutoInout.CurrInOutCount >= this.Config.Box_ResetMCount && noInStore)
//{
// if (storeRunStatus < StoreRunStatus.Runing || MoveInfo.MoveType == StoreMoveType.InStore || MoveInfo.MoveType == StoreMoveType.OutStore)
// {
// LogInfo( "已经累计出入库" + AutoInout.CurrInOutCount + "次,当时当前正在忙碌中暂不复位旋转轴");
// }
// else
// {
// LogInfo( "已经累计出入库" + AutoInout.CurrInOutCount + "次,需要复位一下旋转轴");
// }
//}
//else if (LineConnect.CanStartOut() || IsDebug)
else
}
else if(CanStarInOut())
{
InOutParam param = null;
lock (waitOutListLock)
......@@ -893,11 +866,7 @@ namespace OnlineStore.DeviceLibrary
{
lineOperation.status = (int)StoreStatus.Warning;
lineOperation.msg = WarnMsg;
}
else if (IsRun)
{
lineOperation.status = (int)StoreStatus.StoreOnline;
}
}
lineOperation.status = (int)StoreStatus.StoreOnline;
BoxStatus boxStatus = new BoxStatus();
......
......@@ -128,6 +128,6 @@ PRO,每次吹气的时间(分钟),BlowAir_Time,10,,,,,,,
PRO,两次吹气间隔(分钟),BlowAir_Interval,10,,,,,,,
,,,,,,,,,,
PRO,温湿度端口号,Humiture_Port,COM2,,,,,,,
PRO,扫码的相机名称(多个用#分隔),CameraNameList,Name1#Name1,,,,,,,
PRO,扫码的相机名称(多个用#分隔),CameraNameList,,,,,,,,
PRO,RFID读卡器IP,RFID_IP,192.168.106.101,,,,,,,
PRO,是否是调试状态,IsInDebug,1,,,,,,,
......@@ -126,7 +126,7 @@ PRO,每次吹气的时间(分钟),BlowAir_Time,10,,,,,,,
PRO,两次吹气间隔(分钟),BlowAir_Interval,10,,,,,,,
PRO,温湿度端口号,Humiture_Port,COM2,,,,,,,
,,,,,,,,,,
PRO,扫码的相机名称(多个用#分隔),CameraNameList,Name1#Name1,,,,,
PRO,扫码的相机名称(多个用#分隔),CameraNameList,,,,,,
PRO,RFID读卡器IP,RFID_IP,192.168.106.102,,,,,,,
PRO,是否是调试状态,IsInDebug,1,,,,,,,
......@@ -121,7 +121,6 @@ namespace OnlineStore.DeviceLibrary
//DI主动上传
aioBox.AutoReadInput(true);
aioBox.AutoReadOutput(true, DOMS);
aioBox.LogOut = true;
aioBox.DI_Changed_Event += AioBox_DI_Changed_Event; ;
aioBox.DO_Changed_Event += AioBox_DO_Changed_Event;
......
......@@ -94,15 +94,21 @@ namespace OnlineStore.DeviceLibrary
}
public static void CloseCamera(string name)
{
//BaslerCamera.Instance.Close();
//HIKCamera.Instance.Close();
if (HIKCManager.CameraName.Contains(name))
try
{
HIKCManager.Close(name);
}
else
//BaslerCamera.Instance.Close();
//HIKCamera.Instance.Close();
if (HIKCManager.CameraName.Contains(name))
{
HIKCManager.Close(name);
}
else
{
BaslerCManager.Close(name);
}
}catch(Exception ex)
{
BaslerCManager.Close(name);
LogUtil.error("CloseCamera[" + name + "]出错:" + ex.ToString());
}
}
public static void CloseAllCamera()
......
......@@ -117,61 +117,41 @@ namespace OnlineStore.DeviceLibrary
Wait = 0,
#region 料仓原点返回和重置步骤 010开始
/// <summary>
/// 料仓原点返回和重置步骤,,定位气缸下降
/// BOX复位:线体停止,入料移门关闭,NG料口关闭
/// </summary>
BOX_H_LocationCylinderBack = 010,
BOX_H01_DoorClose = 010,
/// <summary>
/// 料仓原点返回和重置步骤,轴三先相对走3000
/// </summary>
BOX_H_InOutMove = 011,
/// <summary>
/// 料仓原点返回和重置步骤,,轴三进出轴先返回原点
/// </summary>
BOX_H_InOutBack = 012,
/// <summary>
/// 料仓原点返回和重置步骤,,轴三返回P1点
/// </summary>
BOX_H_InOutToP1 = 013,
/// <summary>
/// 料仓原点返回和重置步骤,,升降轴,旋转轴,压紧轴原点返回
/// BOX复位:轴三进出轴先返回原点
/// </summary>
BOX_H_OtherAxisBack = 014,
///// <summary>
///// 清理轴位置
///// </summary>
//BOX_H_WaitAxisCountClear = 015,
/// <summary>
/// 旋转轴返回P1
/// </summary>
BOX_H_MiddleAxisToP1 = 016,
BOX_H03_InOutBack = 012,
/// <summary>
/// 叉子先退回P1
/// BOX复位:轴三返回P1点
/// </summary>
BOX_M_H_InOutToP1 = 018,
BOX_H04_InOutToP1 = 013,
/// <summary>
/// 旋转轴回原点
/// BOX复位:升降轴,旋转轴,压紧轴原点返回
/// </summary>
BOX_M_H_MiddleAxisHome = 019,
BOX_H05_OtherAxisBack = 014,
/// <summary>
/// 旋转轴等待清理位置
///BOX复位: 旋转轴返回P1
/// </summary>
BOX_M_H_MiddleWait = 020,
BOX_H06_MiddleAxisToP1 = 016,
/// <summary>
/// 叉子走到P1
/// BOX回待机点:叉子走到P1
/// </summary>
BOX_M_H_TOP1_InOutToP1 = 030,
BOX_H54_TOP1_InOutToP1 = 54,
/// <summary>
/// 压紧轴回原点
/// BOX回待机点:压紧轴回原点
/// </summary>
BOX_M_H_TOP1_CompressHome = 031,
BOX_H55_TOP1_CompressHome = 55,
/// <summary>
/// 关闭门,旋转轴到P1,升降轴到P1
///BOX回待机点: 关闭门,旋转轴到P1,升降轴到P1
/// </summary>
BOX_M_H_TOP1_OtherAxisToP1 = 032,
BOX_H56_TOP1_OtherAxisToP1 = 56,
#endregion
......
......@@ -24,7 +24,7 @@ namespace OnlineStore.LoadCSVLibrary
}
}
return TypeList;
}
}
/// <summary>
......@@ -34,60 +34,18 @@ namespace OnlineStore.LoadCSVLibrary
/// <summary>
/// DI 复位 Reset_BTN 1 X02 DI-02
/// </summary>
public static string Reset_BTN = "Reset_BTN";
public static string Reset_BTN = "Reset_BTN";
/// <summary>
/// DI 气压检测 Airpressure_Check 2 X03 DI-03
/// </summary>
public static string Airpressure_Check = "Airpressure_Check";
///// <summary>
///// DI 料仓门口料盘检测 TrayCheck_1
///// </summary>
//public static string TrayCheck_Door = "TrayCheck_Door";
///// <summary>
///// DI 叉子料盘检测 TrayCheck_Fixture
///// </summary>
//public static string TrayCheck_Fixture = "TrayCheck_Fixture";
///// <summary>
///// 料仓IO。定位气缸上升端(料仓) LocationCylinder_Up
///// </summary>
//public static string LocationCylinder_Up = "LocationCylinder_Up";
///// <summary>
/////料仓IO。 定位气缸下降端(料仓) LocationCylinder_Down
///// </summary>
//public static string LocationCylinder_Down = "LocationCylinder_Down";
///// <summary>
///// 料仓IO。定位气缸上升端(料仓) LocationCylinder2_Up
///// </summary>
//public static string LocationCylinder2_Up = "LocationCylinder2_Up";
///// <summary>
/////料仓IO。 定位气缸下降端(料仓) LocationCylinder2_Down
///// </summary>
//public static string LocationCylinder2_Down = "LocationCylinder2_Down";
///// <summary>
///// 料仓DO 。料仓运转ON Run_Signal
///// </summary>
//public static string Run_Signal = "Run_Signal";
///// <summary>
///// 料仓DO 。料仓轴2刹车ON Axis_Brake
///// </summary>
//public static string Axis_Brake = "Axis_Brake";
///// <summary>
///// 料仓DO 。料仓吹气SOL ON StartOrStopBlow
///// </summary>
//public static string StartOrStopBlow = "StartOrStopBlow";
/// <summary>
/// DI L侧门禁 DoorLimit 3 X04 DI-04
/// </summary>
/// <summary>
/// DI L侧门禁 DoorLimit 3 X04 DI-04
/// </summary>
public static string DoorLimit = "DoorLimit";
/// <summary>
/// DI L侧料盘检测1(识别区) TrayCheck_1 0 X21 DI-21
......@@ -141,7 +99,7 @@ namespace OnlineStore.LoadCSVLibrary
/// DI L侧顶升装置上升端 TopCylinder_Up 12 X33 DI-33
/// </summary>
public static string TopCylinder_Up = "TopCylinder_Up";
/// <summary>
/// DI L侧顶升装置下降端 TopCylinder_Down 13 X34 DI-34
......@@ -155,11 +113,11 @@ namespace OnlineStore.LoadCSVLibrary
/// DI L侧定位装置下降端 LocationCylinder_Down 15 X36 DI-36
/// </summary>
public static string LocationCylinder_Down = "LocationCylinder_Down";
/// <summary>
/// DO 自动指示灯 AutoRun_HddLed 0 Y01 DO-01
/// </summary>
public static string AutoRun_HddLed = "AutoRun_HddLed";
public static string AutoRun_HddLed = "AutoRun_HddLed";
/// <summary>
/// DO 故障指示灯 Alarm_HddLed 1 Y02 DO-02
/// </summary>
......@@ -177,11 +135,11 @@ namespace OnlineStore.LoadCSVLibrary
///DO NG料线体电机运转 NGLine_Run 4 Y05 DO-05
/// </summary>
public static string NGLine_Run = "NGLine_Run";
/// <summary>
/// DO L侧料仓运转ON Run_Signal 0 Y21 DO-21
/// </summary>
/// <summary>
/// DO L侧料仓运转ON Run_Signal 0 Y21 DO-21
/// </summary>
public static string Run_Signal = "Run_Signal";
/// <summary>
/// DO L侧轴2刹车电源ON Axis_Brake 1 Y22 DO-22
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!