using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization.Formatters.Soap;
using System.Data;
using System.Xml.Serialization;
namespace Mesnac.Action.Feeding
{
///
/// 上辅机系统全局常量和变量和方法
///
public class Global
{
#region 协议头常量
///
/// 协议头常量
///
public class ProtocalHeader
{
///
/// 计划执行协议头
/// 郑立兵于2013-8月添加
///
public const string ReceiveExecPlanNumber = "9101"; //计划执行协议头
///
/// 车数(计划数)修改协议头
/// 郑立兵于2013-9月添加
///
public const string ReceiveModifyPlanNumber = "9102"; //车数(计划数)修改协议头
///
/// Send计划协议头
///
public const string ReceivePlanIpNumber = "9990";//Send计划协议头
///
/// Send判断密炼及其秤状态提示
///
public const string ReceiveMixStatuIpNumber = "9991";//Send判断密炼及其秤状态提示
///
/// Send配方下传状态
///
public const string ReceiveRecipeDownLoadStatu = "9992";//Send配方下传状态
//{
// 0:正在下传基础配方......
// 18:正在下传炭黑称量配方......
// 36:正在下传油称量配方......
// 54:正在下传胶料称量配方......
// 72:正在下传密炼配方......
// 85:正在开始称量......
// 95:正在开始密炼......
// 100:下传完毕!
// 101:计划信息更新成功
//}
///
/// Send Plc A区
///
public const string ReceiveFirstPlcIpNumber = "9993"; //Send Plc A区
///
/// Send Plc B区
///
public const string ReceiveSecondPlcIpNumber = "9994"; //Send Plc B区
///
/// /Base Info
///
public const string ReceiveBaseStatu = "9995";//Base Info
///
/// Alam Data
///
public const string ReceiveAlarmDataIpNumber = "9997";//Alam Data
///
/// 接收到称量参数协议头
///
public const string ReceiveWeighParamIpNumber = "9998";//接收到称量参数协议头
///
/// rubset:...:|ruberror...:|ThSet:...:|Therror...:|YSet:...:|Yerror:...:|/
///
public const string ReceiveMixingIpNumber = "9999";
public const string ReceiveThirdStatusIpNumber = "5555";
///
/// 实时生产时,"条码生成打印表" 每插入一条记录,则发送此消息 格式:7002:架子条码/
///
public const string ReceiveJiepian = "7002"; //实时生产时,"条码生成打印表" 每插入一条记录,则发送此消息 格式:7002:架子条码/
///
/// 实时密炼曲线,用于向生产网络发送实时密炼曲线
///
public const string ReceiveCurveData = "6789";//实时密炼曲线,用于向生产网络发送实时密炼曲线
///
/// 新配方开始生产时,产生的"车条码"的基数
///
public const string ReceivePfbarcode = "9900"; //新配方开始生产时,产生的"车条码"的基数
///
/// 胶料存盘数据 格式:9996:XX:XX:/
///
public const string ReceiveSavePlyData = "9996";//胶料存盘数据 格式:9996:XX:XX:/
///
/// 计划号
///
public const string ReceivePlanIdIpNumber = "9100";//计划号
///
/// 增加对于小料当成胶料来处理,但混炼步骤中有加小药步骤(即小料和胶料分开加)的情况
///
public const string ReceiveHaveAddXLTag = "9300"; //2005-08-16 增加对于小料当成胶料来处理,但混炼步骤中有加小药步骤(即小料和胶料分开加)的情况
///
/// 上辅机定义的状态点的状态信息
///
public const string ReceiveSFJStatus = "9601"; //2005-10-14 上辅机定义的状态点的状态信息
///
/// 密炼机定义的状态点的状态信息
///
public const string ReceiveMixerStatus = "9602"; //2005-10-14 密炼机定义的状态点的状态信息
///
/// 密炼机定义的状态点的状态信息
///
public const string ReceiveXFJStatus = "9603"; //2005-10-14 下辅机定义的状态点的状态信息
///
/// 要求输送系统强制输送
///
public const string RecvSSReachBottom = "8848"; // 要求输送系统强制输送
//2006-2-10
///
/// 0:计划开始;1:计划终止或者计划完成
///
public const string ReceivePlanExecInfo = "8300"; //0:计划开始;1:计划终止或者计划完成
///
/// 当前生产的物料的累计车次号由上辅机发送
///
public const string ReceiveMonthId = "9255"; //2006-05-18 当前生产的物料的累计车次号由上辅机发送
///
/// 当扫描的条码追溯重量或数量使用完毕后,向胶料秤客户端发送报警提示信息
///
public const string ReceiveBarWarning = "9500"; //2006-12-18 当扫描的条码追溯重量或数量使用完毕后,向胶料秤客户端发送报警提示信息
///
/// 接收网络修改计划次数
///
public const string RecipeModifyPlanNum = "9501"; //接收网络修改计划次数
///
/// 接收网络修改计划次数并修改完成
///
public const string ModifyPlanNumFinish = "9502"; //接收网络修改计划次数并修改完成
///
/// 当班生产人员卡片
///
public const string ReceiveWorkerBarcode = "8100"; //当班生产人员卡片
///
/// 修改车数
///
public const string SendModifyNum = "8000";
///
/// Receive要显示的计划协议头 格式:date|shfit
///
public const string SelectPlanIpNumber = "8001";//Receive要显示的计划协议头 格式:date|shfit
///
/// Receive计划协议头 格式:date|shift|Name+code+set+finish~Name+code+set+finish........~
///
public const string SendPlanIpNumber = "8002";//Receive计划协议头 格式:date|shift|Name+code+set+finish~Name+code+set+finish........~
///
/// Receive确认协议头
///
public const string SendEnterIpNumber = "8003"; //Receive确认协议头
///
/// Receive取消协议头
///
public const string SendESCIpNumber = "8004"; //Receive取消协议头
///
/// 0 Or 1;0:单个下传1:连续运行
///
public const string SendExcPlanIpNumber = "8005"; //0 Or 1;0:单个下传1:连续运行
///
/// Receive Stop Plan
///
public const string SendStopPlanIpNumber = "8006"; //Receive Stop Plan
///
/// Reset
///
public const string SendResetInNumber = "8007"; //Reset
///
/// 子系统增加计划 格式:8008+":"+配方编码(14位)+":"+计划数
///
public const string SendAddPlanIpNumbar = "8008"; //子系统增加计划 格式:8008+":"+配方编码(14位)+":"+计划数
//2005-06-07
///
/// 当班生产人员卡片
///
public const string SendWorkerBarcode = "8100"; //当班生产人员卡片
//2005-06-09
///
/// 扫描的架子条码
///
public const string SendMaterBarcode = "8200"; //扫描的架子条码
//2005-07-11 //网络新下达的计划提示协议头
///
/// 网络新下达的计划提示协议头
///
public const string SendNetNewPlan = "7771";
//2011-03-18 //网络新下达的计划提示协议头
public const string SendNewMessage = "7772";
//2006-4-18
///
/// 气力输送发送过来的日罐料位信息
///
public const string SendWareInfo = "8500"; //气力输送发送过来的日罐料位信息
///
/// 条码扫描错误信号
///
public const string SendBarRight = "8311"; //条码扫描错误信号 2006-05-18
///
/// 开始维修标志
///
public const string SendRepair = "8322"; //开始维修标志 2007-8-8
//2011-10-21
///
/// 网络罐设置变化
///
public const string SendWareChange = "8400"; //网络罐设置变化
///
/// 修改计划数
///
public const string SendModifyPlanNum = "9501"; //修改计划数
///
/// 锁定胶料秤输送
///
public const string SendLockRubWeigh = "5555"; //锁定胶料秤输送
///
/// 掺用胶料扫描
///
public const string SendChanYong = "3701"; //掺用胶料扫描
///
/// 掺用胶料扫描
///
public const string SendStopChanYong = "3702"; //掺用胶料扫描
}
#endregion
#region 系统全局变量
///
/// 系统全局变量
///
public class PublicVar
{
#region 单例实现
private static PublicVar instance;
public static PublicVar Instance
{
get
{
if (instance == null)
{
instance = new PublicVar();
}
return instance;
}
}
private PublicVar()
{
}
#endregion
///
/// 项目名称
///
public string ProjectWizardName { get; set; }
///
/// 当前生产车数取余等于1的车条码
///
public string FirstLotBarCode { get; set; }
///
/// 当前生产车数取余等于1的车的物料
///
public string FirstLotMaterCode { get; set; }
///
/// 当前架子的起始车次号
///
public int FirstLotSerialId { get; set; }
///
/// 当前架子的最后一车车次
///
public int LastLotNum { get; set; }
///
/// 当前架子的计划号
///
public string FirstLotPlanId { get; set; }
///
/// 炭黑扫描机台
///
public string G_CBEquip { get; set; }
}
#endregion
#region 业务辅助方法
///
/// 解析二进制位
///
/// 要解析的变量
/// 解析的长度
/// 返回解析的二进制值数组
public static int[] ParseBinaryValue(int x, int len)
{
int[] result = new int[len];
int b = 1;
for (int i = 0; i < len; i++)
{
result[i] = (x & b) == 0 ? 0 : 1;
b = b << 1;
}
return result;
}
///
/// 根据称重类型获取物料类型(根据上辅机业务,物料类型目前只分为:炭黑、油料、粉料、胶料)
///
/// 称重类型
/// 返回向物料表中添加的物料类型
public static string GetMaterialTypeByWeightType(string weightType)
{
string materialType = String.Empty;
switch (weightType.Trim())
{
case "0":
materialType = "炭黑";
break;
case "1":
materialType = "油1";
break;
case "2":
materialType = "胶料";
break;
case "3":
materialType = "小料";
break;
case "4":
materialType = "粉料";
break;
case "5":
materialType = "油2";
break;
default:
materialType = String.Empty;
break;
}
return materialType;
}
///
/// 根据称量类型获取罐的类型0-炭黑,1-油1,3-粉料,5-油2
///
/// 称量类型
/// 返回对应的罐的类型
public static string GetJarTypeByWeightType(string weightType)
{
string jarType = String.Empty;
switch (weightType.Trim())
{
case "0":
jarType = "炭黑";
break;
case "1":
jarType = "油1";
break;
case "2":
jarType = "胶料没有罐";
break;
case "3":
jarType = "粉料";
break;
case "4":
jarType = "小料没有罐";
break;
case "5":
jarType = "油2";
break;
default:
jarType = "获取失败";
break;
}
return jarType;
}
#endregion
}
}