コード例 #1
0
ファイル: clsWhile204.cs プロジェクト: 12025143/Faim_WF
        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命令
        }
コード例 #2
0
        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); // 加入到流程中
                    }
                }
            }
        }