public clsWhileTcp(clsFaim3 v_faim3, DAL_CommData v_dao_comm, string vDevNo) { _CMD = ""; MaxAxisNum = Convert.ToInt32(v_faim3.dict_KV["cnt_Axis"]); _devNo = Convert.ToInt32(vDevNo); _flowName = string.Format("{0}_{1}", v_faim3.dict_DevCards[_devNo].Name, vDevNo); base.do_New(v_faim3, v_dao_comm, _flowName); _device = new clsTCP(_faim3, _dao_comm, _devNo); if (!_dao_comm.dict_DevIo.ContainsKey(_devNo.ToString())) { _dao_comm.dict_DevIo.Add(_devNo.ToString(), (IFaimIO)_device); } }
public static void Init_DictFlow_Dev(ref clsFaim3 _faim3, ref DAL_CommData _dao_comm) { //'0.isEnable 1.devNo 2.Name 3.cardType 4.card_num 5.port 6.mode 7.BoardID 8.isDebug 9.TryConn 10.thDelay // PCI_7432 TCP PCI_7230 204C RS485 RS232 //int _idev_debug50 = 50; foreach (var item in _faim3.dict_DevCards) { int _devNo = item.Key; if (item.Value.isEnable < 1) { continue; // } object _dev1_io = null; // 1设备 object _dog2_io = null; // 2看门狗 object _flow_3 = null; // 3流程 string _Name = item.Value.Name.Trim(); // 按类别处理 switch (_Name) { // 如有流程则会自动打开设备 case "RS485": _dev1_io = new cls485(_faim3, _dao_comm, _devNo); _dog2_io = new clsDog485(_faim3, _dao_comm, _devNo); if (item.Value.thDelay > 0) // 有流程延时参数 { _flow_3 = new clsWhile485(_faim3, _dao_comm, _devNo.ToString()); } break; case "RS232": _dev1_io = new clsSP(_faim3, _dao_comm, _devNo); _dog2_io = new clsDogSP(_faim3, _dao_comm, _devNo); break; case "TCP": _dev1_io = new clsTCP(_faim3, _dao_comm, _devNo); _dog2_io = new clsDogTcp(_faim3, _dao_comm, _devNo); if (item.Value.thDelay > 0) // 有流程延时参数 { _flow_3 = new clsWhileTcp(_faim3, _dao_comm, _devNo.ToString()); } break; case "PCI_7230": _dev1_io = new cls7230(_faim3, _dao_comm, _devNo); _dog2_io = new clsDog72x(_faim3, _dao_comm, _devNo); if (item.Value.thDelay > 0) // 有流程延时参数 { _flow_3 = new clsWhile74x(_faim3, _dao_comm, _devNo.ToString()); } break; case "PCI_7432": _dev1_io = new cls7432(_faim3, _dao_comm, _devNo); _dog2_io = new clsDog72x(_faim3, _dao_comm, _devNo); if (item.Value.thDelay > 0) // 有流程延时参数 { _flow_3 = new clsWhile74x(_faim3, _dao_comm, _devNo.ToString()); } break; case "204C": _dev1_io = new cls204C(_faim3, _dao_comm, _devNo); _dog2_io = new clsDog204C(_faim3, _dao_comm, _devNo); if (item.Value.thDelay > 0) // 有流程延时参数 { _flow_3 = new clsWhile204(_faim3, _dao_comm, _devNo.ToString()); } break; } if (_dev1_io != null) { // dict_DevIo 设备字典 if (!_dao_comm.dict_DevIo.ContainsKey(_devNo.ToString())) { _dao_comm.dict_DevIo.Add(_devNo.ToString(), (IFaimIO)_dev1_io); } } if (_dog2_io != null) { //dict_Flow 看门狗 流程字典 if (!_faim3.dict_Flow.ContainsKey("d_" + item.Value.devID)) // 使用设备ID,而不是设备号 { clsFlow _en = new clsFlow(); _en.FlowName = "d_" + item.Value.devID; _en.Remark = "d_" + item.Value.devID; _en.Delay = item.Value.dogDelay; _faim3.dict_Flow.Add(_en.FlowName, _en); // 加入到流程字典中 } } // 重复 if (_flow_3 != null) { // dict_Flow 流程字典 if (!_faim3.dict_Flow.ContainsKey(item.Value.devID)) { clsFlow _en = new clsFlow(); _en.FlowName = item.Value.devID; // 使用的是设备ID _en.Remark = item.Value.devID; _en.Delay = item.Value.thDelay; _faim3.dict_Flow.Add(_en.FlowName, _en); // 加入到流程中 } } } }