예제 #1
0
        /// <summary>
        /// Выполнить действия при запуске линии связи
        /// </summary>
        public override void OnCommLineStart()
        {
            // инициализация объекта для опроса КП
            InitModbusPoll();

            // выбор метода запроса
            request = modbusPoll.GetRequestMethod(transMode);
        }
예제 #2
0
        /// <summary>
        /// Выполнить действия при запуске линии связи
        /// </summary>
        public override void OnCommLineStart()
        {
            // инициализация запрашиваемых элементов и команд
            // располагается в OnCommLineStart, т.к. здесь Address окончательно определён
            if (deviceTemplate == null)
            {
                elemGroups   = null;
                elemGroupCnt = 0;
            }
            else
            {
                // получение активных групп элементов
                elemGroups   = deviceTemplate.GetActiveElemGroups();
                elemGroupCnt = elemGroups.Count;

                // формирование PDU и ADU
                devAddr = (byte)Address;
                foreach (ElemGroup elemGroup in elemGroups)
                {
                    elemGroup.InitReqPDU();
                    elemGroup.InitReqADU(devAddr, transMode);
                }

                foreach (ModbusCmd cmd in deviceTemplate.Cmds)
                {
                    cmd.InitReqPDU();
                    cmd.InitReqADU(devAddr, transMode);
                }
            }

            // инициализация объекта для опроса КП
            InitModbusPoll();

            // выбор метода запроса
            request = modbusPoll.GetRequestMethod(transMode);
        }