コード例 #1
0
ファイル: MossnerBridge.cs プロジェクト: desla/AS
        /// <summary>
        /// Инициализация.
        /// </summary>
        protected override void DoInitialize()
        {
            try {
                Logger.Info("Инициализация MossnerBridge...");

                oracleConnection = new OracleConnectionHolder(configuration.OracleConfiguration);
                oracleConnection.SetHolderName(ORACLEHOLDER);
                oracleConnection.SetCallback(this);

                opcConnection = new OpcConnectionHolder(configuration.OpcConfiguration);
                opcConnection.SetHolderName(OPCHOLDER);
                opcConnection.SetCallback(this);

                its = new Its();
                its.SetOracleHolder(oracleConnection);

                liveBit = new LiveBit(configuration.OpcConfiguration.TopicName);
                liveBit.SetOpcConnection(opcConnection);

                controllerClient = new ControllerClient(configuration.OpcConfiguration.TopicName, opcConnection);
                controllerClient.SetCallback(this);

                oracleConnection.OpenConnection();
                opcConnection.OpenConnection();
                Logger.Info("Инициализация MossnerBridge завершена.");
            }
            catch (Exception ex) {
                Logger.Error(ex);
            }
        }
コード例 #2
0
ファイル: MossnerBridge.cs プロジェクト: desla/AS
        /// <summary>
        /// Работает при готовности тега проверки для входной области.
        /// </summary>
        /// <param name="aControllerClient">Соединение с контроллерами mossner.</param>
        /// <param name="aSlabId">Идентификатор слитка.</param>
        public void ReadSlabIdCheckForInputArea(ControllerClient aControllerClient, int aSlabId)
        {
            aControllerClient.WriteSlabIdForInputArea(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.CheckSlab(mixerNumber, meltNumber, slabNumber);
                if (result == 1) {
                    // Слиток не найден.
                    Logger.Debug("Cлиток " + aSlabId + " не существует. Можно создавать.");
                    // Добавляем.
                    its.AddSlab(mixerNumber, meltNumber, slabNumber);
                }
                else {
                    Logger.Debug("Cлиток " + aSlabId + " уже существует.");
                }
            }
            else {
                Logger.Debug("Плавка для слитка " + aSlabId + " не существует.");
            }

            aControllerClient.WriteResultForInputArea(result);
        }
コード例 #3
0
ファイル: MossnerBridge.cs プロジェクト: desla/AS
        /// <summary>
        /// Работает при готовности тега проверки для области обрези.
        /// </summary>
        /// <param name="aControllerClient">Соединение с контроллерами mossner.</param>
        /// <param name="aSlabId">Идентификтор слитка.</param>
        /// <param name="aSlabWeight">Вес слитка.</param>
        /// <param name="aSlabLength">Длина слитка.</param>
        public void ReadSlabIdCheckForScrabArea(ControllerClient aControllerClient, 
            int aSlabId, int aSlabWeight, int aSlabLength)
        {
            aControllerClient.WriteSlabIdForScrabArea(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.WriteResultForScrabArea(result);
        }