using System; using System.Collections.Generic; using System.Text; using CoreFS.CA06; using System.Windows.Forms; using System.Net; using Core.LgMes.Client.lgClassModel; using Core.Mes.Client.Common; using System.Collections; namespace Core.LgMes.Client.LgJobMgt { public class CommandClass { public CommandClass() { // // TODO: 在此处添加构造函数逻辑 // } public string heatProcessNumb = ""; public OpeBase obComm = null; //设置加热处理号 public void setHeatID(string id) { heatProcessNumb = id; } private bool IsFloat(string sVal) { try { Convert.ToDecimal(sVal); return true; } catch { return false; } } private bool IsDateTime(string sVal) { try { Convert.ToDateTime(sVal); return true; } catch { return false; } } /// /// 获取本地机器IP /// /// private string GetLocalMachineIP() { IPHostEntry myHost = new IPHostEntry(); //myHost = Dns.GetHostByName(Dns.GetHostName()); myHost = Dns.GetHostEntry(Dns.GetHostName()); string str = ""; str = myHost.AddressList[0].ToString(); return str; } /// /// 加载炉次计划命令 /// /// /// /// public void setChargingCommand(string objecttype, string objectPos, string smeltingid) { // objecttype: "MOLSTL" OR "MOLIRN" try { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_CHARGE"; realDataCommand.OBJECTPOS = objectPos; realDataCommand.OBJECTTYPE = objecttype; realDataCommand.OBJECTID = smeltingid; realDataCommand.OBJECTLINKKEY1 = smeltingid; realDataCommand.VALUETYPE = "STRTYPE"; realDataCommand.STR_VALUE = objectPos; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; string strErr = ""; ArrayList arry = new ArrayList(); CommonClientToServer ccTos = new CommonClientToServer(); ccTos.ob = obComm; arry.Add(realDataCommand.COMMANDTYPE); arry.Add(realDataCommand.OBJECTTYPE); arry.Add(realDataCommand.OBJECTID); arry.Add(realDataCommand.OBJECTLINKKEY1); arry.Add(realDataCommand.OBJECTPOS); arry.Add(realDataCommand.STR_VALUE); arry.Add(realDataCommand.DTT_VALUE); arry.Add(realDataCommand.OBJECTIP); arry.Add(realDataCommand.SENDTYPE); //查询作业手动操作配置信息 CoreClientParam ccp = ccTos.ExecuteClietnToServer("Core.LgMes.Server.LgJobMgt.SchedulingCommandMgt", "AddNewCommand", arry, out strErr); if (strErr.Length > 0) { MessageBox.Show("命令发送失败,请重新操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } //过程值命令发送函数,将指令写入数据库与后台交互 /// /// 使用 /// /// /// /// /// /// /// public string setProcValueCommand(string objPos, string linkTable, string fieldName, string valType, string val) { try { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_SET"; realDataCommand.OBJECTTYPE = "PROCVALUE"; realDataCommand.OBJECTPOS = objPos; realDataCommand.OBJECTID = heatProcessNumb; realDataCommand.OBJECTLINKTABLE = linkTable; realDataCommand.OBJECTLINKKEY1 = CStaticMethod.getSmeltingID(heatProcessNumb); realDataCommand.OBJECTLINKKEY2 = fieldName; realDataCommand.VALUETYPE = valType; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; switch (valType) { case "STRTYPE": realDataCommand.STR_VALUE = val; break; case "FLTTYPE": if (val.Length == 0 || !IsFloat(val)) val = "0"; realDataCommand.FLT_VALUE = Convert.ToDecimal(val); break; case "BOLTYPE": if (val.Length == 0 || val != "F" || val != "T") val = "F"; realDataCommand.BOL_VALUE = val; break; case "DTTTYPE": if (val.Length == 0 || !IsDateTime(val)) val = "2000"; realDataCommand.DTT_VALUE = Convert.ToDateTime(val); break; } string outErrStr = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); if (outErrStr.Length > 0) { MessageBox.Show("命令发送失败", "提示"); } return outErrStr; } catch (Exception ex) { Console.WriteLine(ex.Message); return "命令发送异常"; } } //浇注命令发送函数 /// /// 暂时没有使用 /// /// /// /// /// /// public void setCastValueCommand(string objPos, string linkTable, string fieldName, string valType, string val) { try { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_SET"; realDataCommand.OBJECTTYPE = "CASTINGNUM"; realDataCommand.OBJECTPOS = objPos; realDataCommand.OBJECTID = heatProcessNumb; realDataCommand.OBJECTLINKTABLE = linkTable; realDataCommand.OBJECTLINKKEY1 = CStaticMethod.getSmeltingID(heatProcessNumb); realDataCommand.OBJECTLINKKEY2 = fieldName; realDataCommand.VALUETYPE = valType; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; switch (valType) { case "STRTYPE": realDataCommand.STR_VALUE = val; break; case "FLTTYPE": if (val.Length == 0) val = "0"; realDataCommand.FLT_VALUE = Convert.ToDecimal(val); break; case "BOLTYPE": if (val.Length == 0) val = "F"; realDataCommand.BOL_VALUE = val; break; case "DTTTYPE": if (val.Length == 0) val = "2000"; realDataCommand.DTT_VALUE = Convert.ToDateTime(val); break; } string outErrStr = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); if (outErrStr.Length > 0) { MessageBox.Show("命令发送失败", "提示"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } //物料过程值命令发送函数(暂时没用) public void setMtrlProcCommand(string objPos, string linkTable, string hopperNo, string materialID, string materialType, string val, string strThrowType) { try { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_SET"; realDataCommand.OBJECTTYPE = materialType; realDataCommand.OBJECTNAME = strThrowType; realDataCommand.OBJECTPOS = objPos; realDataCommand.OBJECTID = materialID; realDataCommand.OBJECTLINKTABLE = linkTable; realDataCommand.OBJECTLINKKEY1 = heatProcessNumb; realDataCommand.OBJECTLINKKEY2 = hopperNo; realDataCommand.VALUETYPE = "FLTTYPE"; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; if (val.Length == 0 || !IsFloat(val)) val = "0"; realDataCommand.FLT_VALUE = Convert.ToDecimal(val); string outErrStr = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); if (outErrStr.Length > 0) { MessageBox.Show("命令发送失败", "提示"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } //物料添加命令发送(暂时没用) public void addMtrlCommand(string objPos, string materialID, string linkTable, string mtrlType, string strHopper, string strThrowType) { try { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_ADD"; realDataCommand.OBJECTTYPE = mtrlType; realDataCommand.OBJECTNAME = strThrowType; realDataCommand.OBJECTPOS = objPos; realDataCommand.OBJECTID = materialID; realDataCommand.OBJECTLINKTABLE = linkTable; realDataCommand.OBJECTLINKKEY1 = heatProcessNumb; realDataCommand.OBJECTLINKKEY2 = strHopper; realDataCommand.VALUETYPE = "STRTYPE"; realDataCommand.DTT_VALUE = DateTime.Now; realDataCommand.STR_VALUE = materialID; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; string outErrStr = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); if (outErrStr.Length > 0) { MessageBox.Show("命令发送失败", "提示"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } //物料删除命令发送(暂时没用) public void delMtrlCommand(string objPos, string materialID, string linkTable, string mtrlType, string strThrowType, string strHopper) { try { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_DELETE"; realDataCommand.OBJECTTYPE = mtrlType; realDataCommand.OBJECTPOS = objPos; realDataCommand.OBJECTNAME = strThrowType; realDataCommand.OBJECTID = materialID; realDataCommand.OBJECTLINKTABLE = linkTable; realDataCommand.OBJECTLINKKEY1 = heatProcessNumb; realDataCommand.OBJECTLINKKEY2 = strHopper; realDataCommand.VALUETYPE = "STRTYPE"; realDataCommand.DTT_VALUE = DateTime.Now; realDataCommand.STR_VALUE = materialID; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; string outErrStr = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); if (outErrStr.Length > 0) { MessageBox.Show("命令发送失败", "提示"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } //设备数据命令发送(暂时没用) public void setDevValueCommand(string objType, string linkTable, string fieldName, string valType, string val) { try { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_SET"; realDataCommand.OBJECTTYPE = objType; realDataCommand.OBJECTID = heatProcessNumb; realDataCommand.OBJECTLINKTABLE = linkTable; realDataCommand.OBJECTLINKKEY1 = CStaticMethod.getSmeltingID(heatProcessNumb); realDataCommand.OBJECTLINKKEY2 = fieldName; realDataCommand.VALUETYPE = valType; realDataCommand.DTT_VALUE = DateTime.Now; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; switch (valType) { case "STRTYPE": realDataCommand.STR_VALUE = val; break; case "FLTTYPE": if (val.Length == 0) val = "0"; realDataCommand.FLT_VALUE = Convert.ToDecimal(val); break; case "BOLTYPE": if (val.Length == 0) val = "F"; realDataCommand.BOL_VALUE = val; break; case "DTTTYPE": if (val.Length == 0) val = "2000"; realDataCommand.DTT_VALUE = Convert.ToDateTime(val); break; } string outErrStr = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); if (outErrStr.Length > 0) { MessageBox.Show("命令发送失败", "提示"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } //设备数据命令发送(reset命令)(暂时没用) public void resetDevValCommand(string linkTable, string fieldName, string valType, string val) { try { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_RESET"; realDataCommand.OBJECTTYPE = "DRAWLEN"; realDataCommand.OBJECTID = heatProcessNumb; realDataCommand.OBJECTLINKTABLE = linkTable; realDataCommand.OBJECTLINKKEY1 = CStaticMethod.getSmeltingID(heatProcessNumb); realDataCommand.OBJECTLINKKEY2 = fieldName; realDataCommand.VALUETYPE = valType; realDataCommand.DTT_VALUE = DateTime.Now; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; switch (valType) { case "STRTYPE": realDataCommand.STR_VALUE = val; break; case "FLTTYPE": if (val.Length == 0) val = "0"; realDataCommand.FLT_VALUE = Convert.ToDecimal(val); break; case "BOLTYPE": if (val.Length == 0) val = "F"; realDataCommand.BOL_VALUE = val; break; case "DTTTYPE": if (val.Length == 0) val = "2000"; realDataCommand.DTT_VALUE = Convert.ToDateTime(val); break; } string outErrStr = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); if (outErrStr.Length > 0) { MessageBox.Show("命令发送失败", "提示"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } //班组命令发送(暂时没用) public void setDutyCommand(string objType, string linkTable, string val) { try { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_DUTY"; realDataCommand.OBJECTTYPE = objType; realDataCommand.OBJECTID = heatProcessNumb; realDataCommand.OBJECTLINKTABLE = linkTable; realDataCommand.OBJECTLINKKEY1 = CStaticMethod.getSmeltingID(heatProcessNumb); realDataCommand.OBJECTLINKKEY2 = "DUTYNO"; realDataCommand.VALUETYPE = "STRTYPE"; realDataCommand.STR_VALUE = val; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; string outErrStr = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); if (outErrStr.Length > 0) { MessageBox.Show("命令发送失败", "提示"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } /// /// 作业管理手动操作包括:OUTSTEEL:出钢,GONEXT:出下道工序,ASSIGNPOS:指定位置,OVER:强制结束 /// /// 原始位置 /// 目标位置 public void goNextPosCvtCmmd(string currPos, string nextPos) { try { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_MOVE"; realDataCommand.OBJECTTYPE = "MOLSTL"; realDataCommand.OBJECTID = heatProcessNumb; if (currPos.Contains("HMP")) realDataCommand.OBJECTLINKKEY1 = CStaticMethod.getHudwIdID(heatProcessNumb); else realDataCommand.OBJECTLINKKEY1 = CStaticMethod.getSmeltingID(heatProcessNumb); realDataCommand.OBJECTPOS = currPos; realDataCommand.STR_VALUE = nextPos; realDataCommand.DTT_VALUE = DateTime.Now; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; string strErr = ""; ArrayList arry = new ArrayList(); CommonClientToServer ccTos = new CommonClientToServer(); ccTos.ob = obComm; arry.Add(realDataCommand.COMMANDTYPE); arry.Add(realDataCommand.OBJECTTYPE); arry.Add(realDataCommand.OBJECTID); arry.Add(realDataCommand.OBJECTLINKKEY1); arry.Add(realDataCommand.OBJECTPOS); arry.Add(realDataCommand.STR_VALUE); arry.Add(realDataCommand.DTT_VALUE); arry.Add(realDataCommand.OBJECTIP); arry.Add(realDataCommand.SENDTYPE); //查询作业手动操作配置信息 CoreClientParam ccp = ccTos.ExecuteClietnToServer("Core.LgMes.Server.LgJobMgt.SchedulingCommandMgt", "AddNewCommand", arry, out strErr); if (strErr.Length > 0) { MessageBox.Show("命令发送失败,请重新操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } //上台命令发送(使用) public void goOverCmmd(string sSrcPos) { string strMess = "确认清除本炉钢吗?"; try { string sDevPos = ""; if (sSrcPos.Length >= 3) { sDevPos = sSrcPos.Substring(0, 5); if (sSrcPos.Substring(0, 3) == "HMP") strMess = "确认清除本炉铁水吗?"; } if (MessageBox.Show(strMess, "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_MOVE"; realDataCommand.OBJECTTYPE = "MOLSTL"; realDataCommand.OBJECTID = heatProcessNumb; realDataCommand.OBJECTLINKKEY1 = heatProcessNumb; realDataCommand.OBJECTPOS = sSrcPos; realDataCommand.STR_VALUE = sDevPos + "_OVER"; realDataCommand.DTT_VALUE = DateTime.Now; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; string outErrStr = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); } } catch { } } //暂时没用 public void goDiscardCmmd(string sSrcPos) { try { string sDevPos = ""; if (sSrcPos.Length >= 3) { sDevPos = sSrcPos.Substring(0, 3); } if (MessageBox.Show("确认作废本炉钢吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_MOVE"; realDataCommand.OBJECTTYPE = "MOLSTL"; realDataCommand.OBJECTID = heatProcessNumb; realDataCommand.OBJECTLINKKEY1 = heatProcessNumb; realDataCommand.OBJECTPOS = sSrcPos; realDataCommand.STR_VALUE = sDevPos + "_WASTE"; realDataCommand.DTT_VALUE = DateTime.Now; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; string outErrStr = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); } } catch { } } //铸机使用 public void goNextPosCmmd(int ccmNo, int state) { try { string curentPos = "", nextPos = ""; string str = "CCM0" + ccmNo.ToString(); switch (state) { case 0: curentPos = str + "_FRONT"; nextPos = str + "_DEVICE"; break; case 1: curentPos = str + "_DEVICE"; nextPos = str + "_FRONT"; break; case 2: curentPos = str + "_DEVICE"; nextPos = str + "_BACK"; break; } RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_MOVE"; realDataCommand.OBJECTTYPE = "MOLSTL"; realDataCommand.OBJECTID = heatProcessNumb; realDataCommand.OBJECTLINKKEY1 = CStaticMethod.getSmeltingID(heatProcessNumb); realDataCommand.OBJECTPOS = curentPos; realDataCommand.STR_VALUE = nextPos; realDataCommand.DTT_VALUE = DateTime.Now; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; string outErrStr = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); if (outErrStr.Length > 0) { MessageBox.Show("命令发送失败", "提示"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } //开浇命令发送(暂时没用) public void startCastingCmmd(string position) { try { string str = position.Substring(position.Length - 6, 6); if (str != "DEVICE") return; RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_SET"; realDataCommand.OBJECTTYPE = "MOLSTL"; realDataCommand.OBJECTID = heatProcessNumb; realDataCommand.OBJECTLINKTABLE = "ZY_CCMZYXX"; realDataCommand.OBJECTLINKKEY1 = CStaticMethod.getSmeltingID(heatProcessNumb); realDataCommand.OBJECTLINKKEY2 = "DBKJSK";//"MOULDINGBEGINTIME"; realDataCommand.OBJECTPOS = position; realDataCommand.VALUETYPE = "DTTTYPE"; realDataCommand.DTT_VALUE = DateTime.Now; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; string outErrStr = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); if (outErrStr.Length > 0) { MessageBox.Show("命令发送失败", "提示"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } //停浇命令发送(暂时没用) public void stopCastingCmmd(string position) { try { string str = position.Substring(position.Length - 6, 6); if (str != "DEVICE") return; RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_SET"; realDataCommand.OBJECTTYPE = "MOLSTL"; realDataCommand.OBJECTID = heatProcessNumb; realDataCommand.OBJECTLINKTABLE = "ZY_CCMZYXX"; realDataCommand.OBJECTLINKKEY1 = CStaticMethod.getSmeltingID(heatProcessNumb); realDataCommand.OBJECTLINKKEY2 = "DBTJSK"; realDataCommand.OBJECTPOS = position; realDataCommand.VALUETYPE = "DTTTYPE"; realDataCommand.DTT_VALUE = DateTime.Now; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; string outErrStr = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); if (outErrStr.Length > 0) { MessageBox.Show("命令发送失败", "提示"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } //去下道工序命令发送(强制废除/回炉翻损)(使用) public void goNextProcCmmd(string position, string linkTable) { try { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_SET"; realDataCommand.OBJECTTYPE = "PROCVALUE"; realDataCommand.OBJECTID = heatProcessNumb; realDataCommand.OBJECTLINKTABLE = linkTable; realDataCommand.OBJECTLINKKEY1 = CStaticMethod.getSmeltingID(heatProcessNumb); realDataCommand.OBJECTLINKKEY2 = "DBLTSK";//"ONESTRADECLOSETIME"; realDataCommand.OBJECTPOS = position; realDataCommand.VALUETYPE = "DTTTYPE"; realDataCommand.DTT_VALUE = DateTime.Now; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; string outErrStr = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); if (outErrStr.Length > 0) { MessageBox.Show("命令发送失败", "提示"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } //下台命令(使用) public void goCcmOverCmmd(string position, int nNo) { try { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_MOVE"; realDataCommand.OBJECTTYPE = "MOLSTL"; realDataCommand.OBJECTID = heatProcessNumb; realDataCommand.OBJECTLINKKEY1 = CStaticMethod.getSmeltingID(heatProcessNumb); realDataCommand.OBJECTPOS = position; realDataCommand.VALUETYPE = "STRTYPE"; realDataCommand.STR_VALUE = "CCM0" + nNo.ToString() + "_OVER";//"CCM_OVER"; realDataCommand.DTT_VALUE = DateTime.Now; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; string outErrStr = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); if (outErrStr.Length > 0) { MessageBox.Show("命令发送失败", "提示"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } //去精炼炉(使用) public void goLfsCmmd(string srcPos, string lfsPos) { try { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_MOVE"; realDataCommand.OBJECTTYPE = "MOLSTL"; realDataCommand.OBJECTID = heatProcessNumb; realDataCommand.OBJECTLINKKEY1 = CStaticMethod.getSmeltingID(heatProcessNumb); realDataCommand.OBJECTPOS = srcPos; realDataCommand.STR_VALUE = lfsPos; realDataCommand.DTT_VALUE = DateTime.Now; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; string outErrStr = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); if (outErrStr.Length > 0) { MessageBox.Show("命令发送失败", "提示"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } //去VD炉(暂时没用) public void goVdsCmmd(string srcPos, string vdsPos) { try { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_MOVE"; realDataCommand.OBJECTTYPE = "MOLSTL"; realDataCommand.OBJECTID = heatProcessNumb; realDataCommand.OBJECTLINKKEY1 = CStaticMethod.getSmeltingID(heatProcessNumb); realDataCommand.OBJECTPOS = srcPos; realDataCommand.STR_VALUE = vdsPos; realDataCommand.DTT_VALUE = DateTime.Now; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; string outErrStr = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); if (outErrStr.Length > 0) { MessageBox.Show("命令发送失败", "提示"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } //去吹氩站(暂时没用) public void goCasCmmd(string CasPos, string srcPos) { try { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_MOVE"; realDataCommand.OBJECTTYPE = "MOLSTL"; realDataCommand.OBJECTID = heatProcessNumb; realDataCommand.OBJECTLINKKEY1 = CStaticMethod.getSmeltingID(heatProcessNumb); realDataCommand.OBJECTPOS = srcPos; realDataCommand.STR_VALUE = CasPos; realDataCommand.DTT_VALUE = DateTime.Now; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; string outErrStr = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); if (outErrStr.Length > 0) { MessageBox.Show("命令发送失败", "提示"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } //去连铸机(使用) public void goCcmCmmd(string srcPos, string ccmPos) { try { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_MOVE"; realDataCommand.OBJECTTYPE = "MOLSTL"; realDataCommand.OBJECTID = heatProcessNumb; realDataCommand.OBJECTLINKKEY1 = CStaticMethod.getSmeltingID(heatProcessNumb); realDataCommand.OBJECTPOS = srcPos; realDataCommand.STR_VALUE = ccmPos; realDataCommand.DTT_VALUE = DateTime.Now; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; string outErrStr = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); if (outErrStr.Length > 0) { MessageBox.Show("命令发送失败", "提示"); } } catch (Exception ex) { Console.WriteLine(ex.Message); } } //大包换包(使用) public void goReplaceOfCcm(string sSrcPos, string[] bufferArray) { if (bufferArray == null && sSrcPos.Length < 5) return; string sIdelID = bufferArray[0]; if (sIdelID.Length >= 13) sIdelID = sIdelID.Substring(0, 13); else sIdelID = ""; string sFrontID = bufferArray[1]; if (sFrontID.Length >= 13) sFrontID = sFrontID.Substring(0, 13); else sFrontID = ""; string sDeviceID = bufferArray[2]; if (sDeviceID.Length >= 13) sDeviceID = sDeviceID.Substring(0, 13); else sDeviceID = ""; string sSrcHeatNo, sDesHeatNo, sSrcSite, sDesSite, sDesPos = ""; sSrcHeatNo = sDesHeatNo = sSrcSite = sDesSite = ""; bool flag = false; if (sSrcPos.IndexOf("_IDLE") > -1) //IDEL->FRONT { sSrcHeatNo = sIdelID; sDesHeatNo = sFrontID; sDesPos = sSrcPos.Substring(0, 5) + "_FRONT"; sSrcSite = sSrcPos.Substring(4, 1) + "#连铸机缓冲位"; sDesSite = sDesPos.Substring(4, 1) + "#连铸机等待位"; flag = true; } else if (sSrcPos.IndexOf("_FRONT") > -1) //FRONT->IDEL { sSrcHeatNo = sFrontID; sDesHeatNo = sIdelID; sDesPos = sSrcPos.Substring(0, 5) + "_IDLE"; sSrcSite = sSrcPos.Substring(4, 1) + "#连铸机等待位"; sDesSite = sDesPos.Substring(4, 1) + "#连铸机缓冲位"; flag = true; // if(sIdelID != "") //FRONT->IDEL // { // sSrcHeatNo = sFrontID; // sDesHeatNo = sIdelID; // // sDesPos=sSrcPos.Substring(0, 5)+"_IDLE"; // sSrcSite = sSrcPos.Substring(4, 1)+"#连铸机等待位"; // sDesSite = sDesPos.Substring(4, 1)+"#连铸机缓冲位"; // flag=true; // // } // else //FRONT->DEVICE // { // sSrcHeatNo = sFrontID; // sDesHeatNo = sDeviceID; // if(sDesHeatNo.Length>1) // { // sDesPos = sSrcPos.Substring(0,5)+"_DEVICE"; // // sSrcSite = sSrcPos.Substring(4, 1)+"#连铸机等待位"; // sDesSite = sDesPos.Substring(4, 1)+"#连铸机在站位"; // flag=true; // } // } } else if (sSrcPos.IndexOf("_DEVICE") > -1) //DEVICE->FRONT { sSrcHeatNo = sDeviceID; sDesHeatNo = sFrontID; sDesPos = sSrcPos.Substring(0, 5) + "_FRONT"; sSrcSite = sSrcPos.Substring(4, 1) + "#连铸机在站位"; sDesSite = sDesPos.Substring(4, 1) + "#连铸机等待位"; flag = true; } //string strMsg = "炉号: " + sSrcHeatNo.Substring(5); //strMsg += " " + sSrcSite + "\r\n"; //strMsg += " 与 " + "\r\n"; //strMsg += "炉号: " + sDesHeatNo.Substring(5); //strMsg += " " + sDesSite + "\r\n"; //strMsg += "换钢水确认吗?"; if (flag == true) { try { //if (MessageBox.Show(strMsg, "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) //{ RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_TRANS"; realDataCommand.OBJECTTYPE = "MOLSTL"; realDataCommand.OBJECTID = sSrcHeatNo; realDataCommand.OBJECTLINKKEY1 = sDesHeatNo; realDataCommand.OBJECTPOS = sSrcPos; realDataCommand.STR_VALUE = sDesPos; realDataCommand.DTT_VALUE = DateTime.Now; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; string outErrStr = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); //} } catch { } } } //钢包换包(使用) public void goReplaceOfLfs(string sSrcPos, string[] bufferArray) { if (bufferArray == null && sSrcPos.Length < 5) return; string sIdleID = bufferArray[0]; if (sIdleID.Length >= (int)OBJLEN.nHeatProcessNo) sIdleID = sIdleID.Substring(0, (int)OBJLEN.nHeatProcessNo); else sIdleID = ""; string sFrontID = bufferArray[1]; if (sFrontID.Length >= (int)OBJLEN.nHeatProcessNo) sFrontID = sFrontID.Substring(0, (int)OBJLEN.nHeatProcessNo); else sFrontID = ""; string sDeviceID = bufferArray[2]; if (sDeviceID.Length >= (int)OBJLEN.nHeatProcessNo) sDeviceID = sDeviceID.Substring(0, (int)OBJLEN.nHeatProcessNo); else sDeviceID = ""; string sBackID = bufferArray[3]; if (sBackID.Length >= (int)OBJLEN.nHeatProcessNo) sBackID = sBackID.Substring(0, (int)OBJLEN.nHeatProcessNo); else sBackID = ""; string sDesPos = ""; string sSrcHeatNo, sDesHeatNo, sSrcSite, sDesSite; sSrcHeatNo = sDesHeatNo = sSrcSite = sDesSite = ""; if (sSrcPos.IndexOf("_FRONT") > -1) //FRONT->IDLE { if (sIdleID != "") //FRONT->IDLE { sSrcHeatNo = sFrontID; sDesHeatNo = sIdleID; sDesPos = sSrcPos.Substring(0, 5) + "_IDLE"; sSrcSite = sSrcPos.Substring(4, 1) + "#" + CStaticMethod.analysChineseName(sSrcPos) + CStaticMethod.analysPosName(sSrcPos); sDesSite = sDesPos.Substring(4, 1) + "#" + CStaticMethod.analysChineseName(sDesPos) + CStaticMethod.analysPosName(sDesPos); } else //FRONT->DEVICE { sSrcHeatNo = sFrontID; sDesHeatNo = sDeviceID; sDesPos = sSrcPos.Substring(0, 5) + "_DEVICE"; sSrcSite = sSrcPos.Substring(4, 1) + "#" + CStaticMethod.analysChineseName(sSrcPos) + CStaticMethod.analysPosName(sSrcPos); sDesSite = sDesPos.Substring(4, 1) + "#" + CStaticMethod.analysChineseName(sDesPos) + CStaticMethod.analysPosName(sDesPos); } } else if (sSrcPos.IndexOf("_DEVICE") > -1) //DEVICE->FRONT { sSrcHeatNo = sDeviceID; sDesHeatNo = sFrontID; sDesPos = sSrcPos.Substring(0, 5) + "_FRONT"; sSrcSite = sSrcPos.Substring(4, 1) + "#" + CStaticMethod.analysChineseName(sSrcPos) + CStaticMethod.analysPosName(sSrcPos); sDesSite = sDesPos.Substring(4, 1) + "#" + CStaticMethod.analysChineseName(sDesPos) + CStaticMethod.analysPosName(sDesPos); } else if (sSrcPos.IndexOf("_BACK") > -1) //BACK->DEVICE { sSrcHeatNo = sBackID; sDesHeatNo = sDeviceID; sDesPos = sSrcPos.Substring(0, 5) + "_DEVICE"; sSrcSite = sSrcPos.Substring(4, 1) + "#" + CStaticMethod.analysChineseName(sSrcPos) + CStaticMethod.analysPosName(sSrcPos); sDesSite = sDesPos.Substring(4, 1) + "#" + CStaticMethod.analysChineseName(sDesPos) + CStaticMethod.analysPosName(sDesPos); } string strMsg = "炉号: " + sSrcHeatNo; strMsg += " " + sSrcSite + "\r\n"; strMsg += " 与 " + "\r\n"; strMsg += "炉号: " + sDesHeatNo; strMsg += " " + sDesSite + "\r\n"; strMsg += "换钢水确认吗?"; try { if (MessageBox.Show(strMsg, "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_TRANS"; realDataCommand.OBJECTTYPE = "MOLSTL"; realDataCommand.OBJECTID = sSrcHeatNo; realDataCommand.OBJECTLINKKEY1 = sDesHeatNo; realDataCommand.OBJECTPOS = sSrcPos; realDataCommand.STR_VALUE = sDesPos; realDataCommand.DTT_VALUE = DateTime.Now; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; string strErr = ""; ArrayList arry = new ArrayList(); CommonClientToServer ccTos = new CommonClientToServer(); ccTos.ob = obComm; arry.Add(realDataCommand.COMMANDTYPE); arry.Add(realDataCommand.OBJECTTYPE); arry.Add(realDataCommand.OBJECTID); arry.Add(realDataCommand.OBJECTLINKKEY1); arry.Add(realDataCommand.OBJECTPOS); arry.Add(realDataCommand.STR_VALUE); arry.Add(realDataCommand.DTT_VALUE); arry.Add(realDataCommand.OBJECTIP); arry.Add(realDataCommand.SENDTYPE); //查询作业手动操作配置信息 CoreClientParam ccp = ccTos.ExecuteClietnToServer("Core.LgMes.Server.LgJobMgt.SchedulingCommandMgt", "AddNewCommand", arry, out strErr); if (strErr.Length > 0) { MessageBox.Show("命令发送失败,请重新操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } } } catch { } } //LFS 下个位置(使用) public void goNextPosition(string sSrcPos, string sDesPos) { try { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_MOVE"; realDataCommand.OBJECTTYPE = "MOLSTL"; realDataCommand.OBJECTID = heatProcessNumb; realDataCommand.OBJECTLINKKEY1 = heatProcessNumb; realDataCommand.OBJECTPOS = sSrcPos; realDataCommand.VALUETYPE = "STRTYPE"; realDataCommand.STR_VALUE = sDesPos; realDataCommand.DTT_VALUE = DateTime.Now; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; string outErrStr = "", str = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); str = outErrStr; } catch { } } //使用 public void goNextTechnics(string sSrcPos) { try { string err = ""; object obj; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.classTrackObjectInfo"; //par.MethodName = "GetNextPos"; //par.args = new object[] { heatProcessNumb }; obj = null;// RemotingHelp.ExecuteMethod(par, out err); // obj = this.RemotingHelp.ExecuteMethod("Craft", "Core.Sglg.CraftBusiness", "Core.Sglg.CraftBusiness.ReadDataClass", "GetNextPos", new object[]{heatProcessNumb}, out err); if (obj != null) { string sNextPos = (string)obj; string strMsg = "炉号: " + CStaticMethod.getSmeltingID(heatProcessNumb) + " 确认去" + err + "吗?"; if (MessageBox.Show(strMsg, "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_MOVE"; realDataCommand.OBJECTTYPE = "MOLSTL"; realDataCommand.OBJECTID = heatProcessNumb; realDataCommand.OBJECTLINKKEY1 = heatProcessNumb; realDataCommand.OBJECTPOS = sSrcPos; realDataCommand.STR_VALUE = sNextPos; realDataCommand.DTT_VALUE = DateTime.Now; realDataCommand.OBJECTIP = GetLocalMachineIP(); realDataCommand.SENDTYPE = "0"; //hengxing //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.SchedulingCommandMgt"; //par.MethodName = "AddNewCommand"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out err); } } else { MessageBox.Show(err, "提示",MessageBoxButtons.OK,MessageBoxIcon.Asterisk); } } catch { } } } public enum DeviceCode : int { MIS = 20, MIS01 = 1, MIS02 = 2, HMP = 21, HMP01 = 1, HMP02 = 2, HMP03 = 3, BOF = 22, BOF01 = 1, BOF02 = 2, BOF03 = 3, CAS = 23, CAS01 = 1, CAS02 = 2, CAS03 = 3, LFS = 24, LFS01 = 1, LFS02 = 2, LFS03 = 3, RHS = 25, RHS01 = 1, RHS02 = 2, RHS03 = 3, CCM = 26, CCM01 = 1, CCM02 = 2, CCM03 = 3, CCM04 = 4, CCB = 27, VDS = 28, VDS01 = 1, VDS02 = 2, VDS03 = 3, } }