public clsWhile204(clsFaim3 v_faim3, DAL_CommData v_dao_comm, string vDevNo) { _CMD = ""; int _bit = 1; // 常数 int _use_Axis = Convert.ToInt32(v_faim3.dict_KV["use_Axis"]); for (int i = 0; i < 8; i++) { if ((_use_Axis & _bit) == _bit) { _lstAxisId.Add(i); } _bit = _bit << 1; } // 参数 _devNo = Convert.ToInt32(vDevNo); _flowName = string.Format("{0}_{1}", v_faim3.dict_DevCards[_devNo].Name, _devNo); // [2] // 初始化 基类 base.do_New(v_faim3, v_dao_comm, _flowName); _protocol = new clsProtocol(_faim3, _dao_comm); // 协议 if (!_dao_comm.dict_DevIo.ContainsKey(_devNo.ToString())) // 注册设备号 对应 设备对象 { _device = new cls204C(_faim3, _dao_comm, _devNo); // 设备 _dao_comm.dict_DevIo.Add(_devNo.ToString(), (IFaimIO)_device); } _dao_comm.OnEchoIO += new F_Delegate.delEcho(evt_comm_OnEchoIO); // 加消息 _dict_cmd.Add(_CMD01_Read_status, ""); // 第1命令 _dict_cmd.Add(_CMD02_Read_input, ""); // 第2命令 }
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); // 加入到流程中 } } } }