Example #1
0
        /// <summary>
        /// Работает при готовности тега проверки для выходной области.
        /// </summary>
        /// <param name="aControllerClient">Соединение с контроллерами mossner.</param>
        /// <param name="aSlabId">Идентификатор слитка.</param>
        /// <param name="aSlabWeight">Вес слитка.</param>
        /// <param name="aSlabLength">Длина слитка.</param>
        public void ReadSlabIdCheckForOutputArea(ControllerClient aControllerClient, 
            int aSlabId, int aSlabWeight, int aSlabLength)
        {
            aControllerClient.WriteSlabIdForOutputArea(aSlabId);

            // Ищем слиток в ИТС...
            var mixerNumber = IdHelper.MixerNumber(aSlabId);
            var meltNumber = IdHelper.MeltNumber(aSlabId);
            var slabNumber = IdHelper.SlabNumber(aSlabId);
            // Ищем плавку.
            var result = its.CheckMelt(mixerNumber, meltNumber);
            if (result == 1) {
                // Плавка найдена.
                // Ищем слиток.
                result = its.CheckProd(mixerNumber, meltNumber, slabNumber);
                if (result == 1) {
                    // Слиток не найден.
                    // Добавляем.
                    its.AddProd(mixerNumber, meltNumber, slabNumber, aSlabWeight, aSlabLength);
                    Logger.Debug("Создан слиток=" + aSlabId + ", Вес=" + aSlabWeight + ", Длина=" + aSlabLength);
                }
                else {
                    Logger.Debug("Cлиток " + aSlabId + " уже существует.");
                }
            }
            else {
                Logger.Debug("Плавка для слитка " + aSlabId + " не существует.");
            }
            // Для контроллера всегда возвращаем 3!
            result = 3;

            aControllerClient.WriteResultForOutputArea(result);
        }