Beispiel #1
0
        //вызывается при появления флага ошибки в слове состояния
        private void ErrorHandler()
        {
            PLC.ReadDword(110, out uint ErrorWord);
            if (GetBitState(ErrorWord, 0))
            {
                addAlarm("Нажата кнопка аварийной остановки");
            }
            if (GetBitState(ErrorWord, 1))
            {
                addAlarm("Одновременное включение контакторов");
            }
            if (GetBitState(ErrorWord, 2))
            {
                addAlarm("Попытка загрузки на занятый кран");
            }
            if (GetBitState(ErrorWord, 3))
            {
                addAlarm("Ячейка для установки ящика занята");
            }
            if (GetBitState(ErrorWord, 4))
            {
                addAlarm("Обнаружена помеха вертикальному перемещению крана");
            }
            if (GetBitState(ErrorWord, 5))
            {
                addAlarm("Ошибка преобразователя частоты №1");
            }
            if (GetBitState(ErrorWord, 6))
            {
                addAlarm("Ошибка преобразователя частоты №2");
            }
            if (GetBitState(ErrorWord, 7))
            {
                addAlarm("Попытка установить большой ящик не на первый этаж");
            }
            if (GetBitState(ErrorWord, 8))
            {
                addAlarm("Попытка установить средний ящик выше седьмого этажа");
            }
            if (GetBitState(ErrorWord, 9))
            {
                addAlarm("Ошибка перемещения платформы");
            }
            if (GetBitState(ErrorWord, 10))
            {
                addAlarm("Ошибка позиционирования крана");
            }
            if (GetBitState(ErrorWord, 11))
            {
                addAlarm("Помеха движению по горизонтали");
            }
            if (GetBitState(ErrorWord, 12))
            {
                addAlarm("Превышен максимальный вес груза");
            }
            ErrorAppeared.Invoke(this, null);

            void addAlarm(string alarmText)
            {
                string str = DateTime.Now.ToString() + " : " + alarmText;

                App.Current.Dispatcher.Invoke(() => ErrorList.Add(str));
                try
                {
                    //записываем в лог
                    File.AppendAllText("Errors.log", str + '\r' + '\n', System.Text.Encoding.Default);
                }
                catch (Exception ex)
                { MessageBox.Show(ex.Message, caption: "ErrorHandler"); }
            }
        }
Beispiel #2
0
 protected virtual void OnErrorAppeared(CommonEventArgs args)
 {
     ErrorAppeared?.Invoke(this, args);
 }