222
schangxiang@126.com
2024-11-21 81c361a3fab7d43fc14ad46777a18a1ab9215c06
222
已添加1个文件
已修改4个文件
325 ■■■■ 文件已修改
SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvComm.cs 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Devices/4-Station/StationModel/Station_CacheEntity.cs 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Model/StationLocationEnum.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/iWareSda.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SDA/iWareSda/Devices/4-Station/StationModel/DB/RgvComm.cs
@@ -150,11 +150,16 @@
        public string W_Destination_In { get; set; }
        /// <summary>
        /// ä»»åŠ¡å·
        /// å…¥åº“任务号
        /// </summary>
        [Description("任务号")]
        public string W_TaskID { get; set; }
        [Description("入库任务号")]
        public string W_Inbound_TaskID { get; set; }
        /// <summary>
        /// å‡ºåº“任务号
        /// </summary>
        [Description("出库任务号")]
        public string W_Outbound_TaskID { get; set; }
        /// <summary>
        /// æ¥æ–™é•¿åº¦
@@ -186,6 +191,12 @@
        /// </summary>
        [Description("分配出库库位号")]
        public string W_Destination_Out { get; set; }
        /// <summary>
        /// æ¨¡å¼ï¼ˆ1:入库, 2:出库   3:强制出库)
        /// </summary>
        [Description("模式(1:入库, 2:出库   3:强制出库)")]
        public string W_Mode { get; set; }
        /// <summary>
        /// æ˜¯å¦æ—‹è½¬
@@ -231,6 +242,20 @@
        /// </summary>
        [Description("放料Y偏移")]
        public string W_Y_Offset { get; set; }
        /// <summary>
        /// å…¥åº“完成已确认
        /// </summary>
        [Description("入库完成已确认")]
        public string W_InboundFinishConfirm { get; set; }
        ///// <summary>
        ///// ä»»åŠ¡å·
        ///// </summary>
        //[Description("任务号")]
        //public string W_TaskID { get; set; }
    }
@@ -357,57 +382,28 @@
        public String R_ReadCodeResult { get; set; }
        /// <summary>
        /// å…‰ç”µ1状态
        /// æœºå™¨äººå…¥åº“完成
        /// </summary>
        [Description("光电1状态")]
        public string R_PH_1 { get; set; }
        [Description("机器人入库完成")]
        public string R_InboundFinish { get; set; }
        /// <summary>
        /// å…‰ç”µ2状态
        /// æœºå™¨äººå…¥åº“库位号
        /// </summary>
        [Description("光电2状态")]
        public string R_PH_2 { get; set; }
        [Description("机器人入库库位号")]
        public string R_InboundNumber { get; set; }
        /// <summary>
        /// æ”¶åˆ°ä»»åŠ¡ä¸‹å‘åé¦ˆ
        /// æœºå™¨äººå‡ºåº“完成
        /// </summary>
        [Description("收到任务下发反馈")]
        public string R_ACK { get; set; }
        [Description("机器人出库完成")]
        public string R_OutboundFinish { get; set; }
        /// <summary>
        /// æ¨¡å¼
        /// æœºå™¨äººå‡ºåº“库位号
        /// </summary>
        [Description("模式")]
        public string R_Model { get; set; }
        [Description("机器人出库库位号")]
        public string R_OutboundNumber { get; set; }
        /// <summary>
        /// è¿è¡ŒçŠ¶æ€
        /// </summary>
        [Description("运行状态")]
        public string R_State { get; set; }
        /// <summary>
        /// æŠ¥è­¦ä»£ç 
        /// </summary>
        [Description("报警代码")]
        public string R_AlarmCode { get; set; }
        /// <summary>
        /// å½“前目标地址
        /// </summary>
        [Description("当前目标地址")]
        public string R_Destination { get; set; }
        /// <summary>
        /// å¤–形检测
        /// </summary>
        [Description("外形检测")]
        public string R_Shape { get; set; }
        /// <summary>
        /// å½“前任务号
        /// </summary>
        [Description("当前任务号")]
        public string R_TaskID { get; set; }
    }
}
SDA/iWareSda/Devices/4-Station/StationModel/StationEntity.cs
@@ -92,56 +92,58 @@
        /// <returns></returns>
        public bool SendTask(int deviceId, int taskId, string sourcePlce, string toPlace, out string msg)
        {
            try
            {
                msg = "";
                if (!CanSendTask(deviceId, out msg))
                {
                    return false;
                }
            //try
            //{
            //    msg = "";
            //    if (!CanSendTask(deviceId, out msg))
            //    {
            //        return false;
            //    }
                //这里特殊转换一下
                if (toPlace == ((int)EDevice.出库口1012).ToString())
                {
                    toPlace = ((int)EDevice.提升机1030).ToString();
                }
            //    //这里特殊转换一下
            //    if (toPlace == ((int)EDevice.出库口1012).ToString())
            //    {
            //        toPlace = ((int)EDevice.提升机1030).ToString();
            //    }
                StationDBForWriteComm w_db_source = this.DBBlockForWrite.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == sourcePlce);
                StationDB2ObjForWriteComm w_dbObj_source = this.View.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == sourcePlce);
            //    StationDBForWriteComm w_db_source = this.DBBlockForWrite.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == sourcePlce);
            //    StationDB2ObjForWriteComm w_dbObj_source = this.View.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == sourcePlce);
                //StationDBForWriteComm w_db_to = this.DBBlockForWrite.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == toPlace);
                //StationDB2ObjForWriteComm w_dbObj_to = this.View.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == toPlace);
                //如果ACK为true,表示不能发任务
                var readObj = this.View.R_StationForReadCommList.FirstOrDefault(x => x.StationCode == sourcePlce);
                if (readObj.R_ACK == true)
                {
                    msg = "ACK为TRUE,不允许发任务";
                    return false;
                }
            //    //StationDBForWriteComm w_db_to = this.DBBlockForWrite.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == toPlace);
            //    //StationDB2ObjForWriteComm w_dbObj_to = this.View.W_StationForWriteCommList.FirstOrDefault(x => x.StationCode == toPlace);
            //    //如果ACK为true,表示不能发任务
            //    var readObj = this.View.R_StationForReadCommList.FirstOrDefault(x => x.StationCode == sourcePlce);
            //    if (readObj.R_ACK == true)
            //    {
            //        msg = "ACK为TRUE,不允许发任务";
            //        return false;
            //    }
                MessageModel b2 = null;
                if (!b2.result)
                {
                    msg = string.Format("向Station{0},起点{1}发送任务{2},写入目标站点{3}失败,返回结果:" + b2.resMsg, this.View.DeviceName, sourcePlce, taskId, toPlace);
                    return false;
                }
                b2 = this.plcService.WriteValuePoint(w_db_source.W_TaskID, Convert.ToInt32(taskId), w_dbObj_source.W_TaskID);
                if (!b2.result)
                {
                    msg = string.Format("向Station{0},起点{1},目标点{2},写入任务号{3}失败,返回结果:" + b2.resMsg, this.View.DeviceName, sourcePlce, toPlace, taskId);
                    return false;
                }
            //    MessageModel b2 = null;
            //    if (!b2.result)
            //    {
            //        msg = string.Format("向Station{0},起点{1}发送任务{2},写入目标站点{3}失败,返回结果:" + b2.resMsg, this.View.DeviceName, sourcePlce, taskId, toPlace);
            //        return false;
            //    }
            //    b2 = this.plcService.WriteValuePoint(w_db_source.W_TaskID, Convert.ToInt32(taskId), w_dbObj_source.W_TaskID);
            //    if (!b2.result)
            //    {
            //        msg = string.Format("向Station{0},起点{1},目标点{2},写入任务号{3}失败,返回结果:" + b2.resMsg, this.View.DeviceName, sourcePlce, toPlace, taskId);
            //        return false;
            //    }
                return true;
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, "发送任务出现异常:" + ex.Message, ex);
                return false;
            }
            //    return true;
            //}
            //catch (Exception ex)
            //{
            //    msg = ex.Message;
            //    Log4NetHelper.WriteErrorLog(Station_CacheEntity.curLogType, "发送任务出现异常:" + ex.Message, ex);
            //    return false;
            //}
        }
SDA/iWareSda/Devices/4-Station/StationModel/Station_CacheEntity.cs
@@ -19,7 +19,9 @@
        /// <summary>
        /// å†™å…¥DB
        /// </summary>
        public static string W_DBHeaderWithSeparate = "610" + WareSdaStruct.PLCDBADDRESS_SEPARATE;
        public static string W_DBHeaderWithSeparate_BZ39 = "3002" + WareSdaStruct.PLCDBADDRESS_SEPARATE;
        public static string W_DBHeaderWithSeparate_BZ01 = "3001" + WareSdaStruct.PLCDBADDRESS_SEPARATE;
        /// <summary>
        /// è¯»å–DB
        /// </summary>
@@ -133,35 +135,45 @@
            {
                //TODO:这里写配置的DB地址
                #region å†™å…¥
                W_HandShake = W_DBHeaderWithSeparate + "0.0",
                W_1015_ReScan = R_DBHeader_ScanWithSeparate + "302.0", //1015位置重新扫码 ã€EditBy shaocx,2022-05-02】
                W_1019_ReScan = R_DBHeader_ScanWithSeparate + "368.0", //1019位置重新扫码, ã€EditBy shaocx,2022-05-02】
                W_Station_FinishACK = W_DBHeaderWithSeparate + "146.0",
                // W_HandShake = W_DBHeaderWithSeparate + "0.0",
                W_1002_ScanFailACK = R_DBHeader_ScanWithSeparate + "66.1",
                W_1004_ScanFailACK = R_DBHeader_ScanWithSeparate + "126.1",
                W_1006_ScanFailACK = R_DBHeader_ScanWithSeparate + "186.1",
                W_1007_ScanFailACK = R_DBHeader_ScanWithSeparate + "246.1",
                W_1002_ScanSuccessACK = R_DBHeader_ScanWithSeparate + "66.0",
                W_1004_ScanSuccessACK = R_DBHeader_ScanWithSeparate + "126.0",
                W_1006_ScanSuccessACK = R_DBHeader_ScanWithSeparate + "186.0",
                W_1007_ScanSuccessACK = R_DBHeader_ScanWithSeparate + "246.0",
                W_Out_MaterialModel = W_DBHeaderForXigangGetDataWithSeparate + "0.0",
                W_Out_OrderNo = W_DBHeaderForXigangGetDataWithSeparate + "18.0",
                W_Out_SerialNumber = W_DBHeaderForXigangGetDataWithSeparate + "36.0",
                #endregion
            };
            //写入地址
            _dbBlockForWrite.W_StationForWriteCommList = new List<StationDBForWriteComm>();
            _dbBlockForWrite.W_StationForWriteCommList.Add(new StationDBForWriteComm() { StationCode = "1001", W_TaskID = W_DBHeaderWithSeparate + "6.0" });
            _dbBlockForWrite.W_StationForWriteCommList.Add(new StationDBForWriteComm() { StationCode = "1002", W_TaskID = W_DBHeaderWithSeparate + "14.0" });
            _dbBlockForWrite.W_StationForWriteCommList.Add(new StationDBForWriteComm() { StationCode = "1003", W_TaskID = W_DBHeaderWithSeparate + "22.0" });
            _dbBlockForWrite.W_StationForWriteCommList.Add(new StationDBForWriteComm()
            {
                StationCode = StationLocationEnum.首次扫码工位.ToString(),
            });
            _dbBlockForWrite.W_StationForWriteCommList.Add(new StationDBForWriteComm()
            {
                StationCode = StationLocationEnum.BZ01.ToString(),
                W_DataFinish = W_DBHeaderWithSeparate_BZ01 + "0.0",
                W_KittingInfo = W_DBHeaderWithSeparate_BZ01 + "2.0",
            });
            _dbBlockForWrite.W_StationForWriteCommList.Add(new StationDBForWriteComm()
            {
                StationCode = StationLocationEnum.BZ39.ToString(),
                W_DataFinish = W_DBHeaderWithSeparate_BZ39 + "0.0",
                W_InboundFinishConfirm = W_DBHeaderWithSeparate_BZ39 + "0.1",
                W_Destination_In = W_DBHeaderWithSeparate_BZ39 + "2.0",
                W_Length = W_DBHeaderWithSeparate_BZ39 + "6.0",
                W_Width = W_DBHeaderWithSeparate_BZ39 + "8.0",
                W_Height = W_DBHeaderWithSeparate_BZ39 + "10.0",
                //出库
                W_ReqOut = W_DBHeaderWithSeparate_BZ39 + "12.0",
                W_Destination_Out = W_DBHeaderWithSeparate_BZ39 + "14.0",
                W_Mode = W_DBHeaderWithSeparate_BZ39 + "18.0",
            });
            return _dbBlockForWrite;
        }
@@ -244,67 +256,26 @@
                #endregion
            };
            //读取地址
            double default_PH_1 = 2.0;
            double default_PH_2 = 2.1;
            double default_ACK = 2.2;
            double default_Model = 4.0;
            double default_State = 6.0;
            double default_AlarmCode = 8.0;
            double default_Destination = 10.0;
            double default_Shape = 12.0;
            double default_TaskID = 14.0;
            int addValue = 16;
            _dbBlockForRead.R_StationForReadCommList = new List<StationDBForReadComm>();
            for (int i = 0; i < WareSdaStruct.StationStationList.Count; i++)
            {
                var stationCode = WareSdaStruct.StationStationList[i];
                if (stationCode == "1019")
                {
                    _dbBlockForRead.R_StationForReadCommList.Add(new StationDBForReadComm()
                    {
                        StationCode = stationCode,
                        R_PH_1 = R_DBHeaderWithSeparate + "350.0",
                        R_PH_2 = R_DBHeaderWithSeparate + "350.1",
                        R_ACK = R_DBHeaderWithSeparate + "350.2",
                        R_Model = R_DBHeaderWithSeparate + ("352.0"),
                        R_State = R_DBHeaderWithSeparate + ("354.0"),
                        R_AlarmCode = R_DBHeaderWithSeparate + ("356.0"),
                        R_Destination = R_DBHeaderWithSeparate + ("358.0"),
                        R_Shape = R_DBHeaderWithSeparate + ("360.0"),
                        R_TaskID = R_DBHeaderWithSeparate + ("362.0")
                StationCode = StationLocationEnum.BZ01.ToString(),
                R_ReqParseData = W_DBHeaderWithSeparate_BZ01 + "50.0",
                R_ReadCodeResult = W_DBHeaderWithSeparate_BZ01 + "52.0",
                    });
                }
                else
                {
                    if (i > 0)
                    {
                        default_PH_1 += addValue;
                        default_PH_2 += addValue;
                        default_ACK += addValue;
                        default_Model += addValue;
                        default_State += addValue;
                        default_AlarmCode += addValue;
                        default_Destination += addValue;
                        default_Shape += addValue;
                        default_TaskID += addValue;
                    }
                    _dbBlockForRead.R_StationForReadCommList.Add(new StationDBForReadComm()
                    {
                        StationCode = stationCode,
                        R_PH_1 = R_DBHeaderWithSeparate + default_PH_1.ToString("0.0"),
                        R_PH_2 = R_DBHeaderWithSeparate + default_PH_2.ToString("0.0")
                        ,
                        R_ACK = R_DBHeaderWithSeparate + default_ACK.ToString("0.0"),
                        R_Model = R_DBHeaderWithSeparate + default_Model.ToString("0.0"),
                        R_State = R_DBHeaderWithSeparate + default_State.ToString("0.0"),
                        R_AlarmCode = R_DBHeaderWithSeparate + default_AlarmCode.ToString("0.0"),
                        R_Destination = R_DBHeaderWithSeparate + default_Destination.ToString("0.0"),
                        R_Shape = R_DBHeaderWithSeparate + default_Shape.ToString("0.0"),
                        R_TaskID = R_DBHeaderWithSeparate + default_TaskID.ToString("0.0")
                StationCode = StationLocationEnum.BZ39.ToString(),
                R_ReqParseData = W_DBHeaderWithSeparate_BZ39 + "0.0",
                R_InboundFinish = W_DBHeaderWithSeparate_BZ39 + "50.1",
                R_OutboundFinish = W_DBHeaderWithSeparate_BZ39 + "50.2",
                R_ReadCodeResult = W_DBHeaderWithSeparate_BZ39 + "52.0",
                R_InboundNumber = W_DBHeaderWithSeparate_BZ39 + "104.0",
                R_OutboundNumber = W_DBHeaderWithSeparate_BZ39 + "108.0"
                    });
                }
            }
            return _dbBlockForRead;
SDA/iWareSda/Model/StationLocationEnum.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace iWareModel
{
    /// <summary>
    /// ç«™ç‚¹æžšä¸¾
    /// </summary>
    public enum StationLocationEnum
    {
        /// <summary>
        /// 269工位
        /// </summary>
        é¦–次扫码工位 = 100,
        /// <summary>
        /// æ¸…灰,洗板后工位
        /// </summary>
        BZ01 = 101,
        /// <summary>
        /// è¡¥æ¿åŽå·¥ä½
        /// </summary>
        BZ39 = 102,
        BZ12 = 103,
        BZ21 = 104
    }
}
SDA/iWareSda/iWareSda.csproj
@@ -139,6 +139,7 @@
    <Compile Include="Interface\IDevice.cs" />
    <Compile Include="Model\DeviceWarningInfo.cs" />
    <Compile Include="Model\SdaResEntity.cs" />
    <Compile Include="Model\StationLocationEnum.cs" />
    <Compile Include="PLCService\Default\AB_HslCommunicationService.cs" />
    <Compile Include="PLCService\Default\Siemens_HslCommunicationService.cs" />
    <Compile Include="PLCService\Models\BasePlcParam.cs" />