Как найти смещение в процессе

Анализ памяти процесса

Организация памяти процессов ОС Windows рассмотрена во многих книгах и статьях. Мы изучим только те аспекты этого вопроса, которые имеют отношение к поиску переменных в памяти, а также чтению и записи их значений.

Адресное пространство процесса

Исполняемый EXE-файл и запущенный процесс ОС – это не одно и то же. Файл – это некоторые данные, записанные на устройство хранения информации (например жёсткий диск). Исполняемый файл содержит инструкции (или машинный код), которые выполняет процессор без каких либо дополнительных преобразований.

Когда вы запускаете EXE-файл, для его исполнения ОС нужно выполнить несколько шагов. Во-первых, прочитать его содержимое с устройства хранения и записать в

оперативную память

(random-access memory или RAM). Благодаря этому процессор получает намного более быстрый доступ к инструкциям из файла, поскольку скорость его интерфейса с RAM на несколько порядков выше чем с любым диском.

Когда содержимое файла записано в оперативную память, ОС загружает туда же все необходимые для его работы динамические библиотеки. После этого шага, процесс готов к выполнению. Поскольку все современные ОС для компьютеров и телефонов многозадачные, несколько процессов могут исполняться параллельно. Параллельность в данном случае не означает одновременность. То есть если у компьютера один процессор с одним ядром, он будет переключаться между процессами. В таком случае говорят о распределении процессорного времени. В многозадачных ОС этим занимается специальная программа

планировщик

(scheduler). Благодаря ей каждый процесс получает единицы времени (тики или секунды) в зависимости от своего приоритета.

Чем занимается запущенный процесс? Чтобы ответить на этот вопрос, заглянем в типичный исполняемый файл. В основном он содержит алгоритмы обработки и интерпретации каких-то данных. Следовательно, большая часть работы процесса заключается в манипуляции данными.

Где процесс хранит свои данные? Мы уже знаем, что ОС всегда загружает исполняемые инструкции в оперативную память. В случае данных, сам процесс может свободно выбрать место их хранения: жесткий диск, оперативная память или даже удалённый компьютер (например игровой сервер подключённый по сети). Большая часть данных, необходимых во время работы процесса копируются в оперативную память для ускорения доступа к ней. Поэтому, именно в RAM мы можем прочитать состояния игровых объектов. Они будут доступны на протяжении всего времени выполнения (runtime) процесса.

Иллюстрация 3-2 демонстрирует элементы типичного процесса. Как правило, он состоит из нескольких модулей. Обязательным из них является EXE, который содержит все инструкции и данные, загруженные из исполняемого файла. Другие модули (обозначенные DLL_1 и DLL_2) соответствуют библиотекам, функции которых вызываются из EXE.

Иллюстрация 3-2. Элементы типичного процесса Windows

Все Windows приложения используют как минимум одну системную библиотеку, которая предоставляет доступ к WinAPI функциям. Даже если вы не пользуетесь WinAPI явно в своей программе, компилятор вставляет вызовы ExitProcess и VirtualQuery автоматически в ходе компиляции. Они отвечают за корректное завершение процесса и управление его памятью.

Мы рассмотрели исполняемый файл и запущенный процесс. Теперь поговорим о библиотеках с функциями. Они делятся на два типа: динамически подключаемые (dynamic-link libraries или DLL) и статически подключаемые (static libraries). Главное различие между ними заключается во времени разрешения зависимостей. Когда исполняемый файл использует функцию библиотеки, говорят, что он от неё зависит.

Статически подключаемые библиотеки должны быть доступны в момент компиляции. Программа

компоновщик

собирает их и исполняемый файл в единый выходной файл. Таким образом, EXE модуль на иллюстрации 3-2 содержит машинный код и статических библиотек, и исполняемого файла.

Динамически подключаемые библиотеки также должны быть доступны в момент компиляции. Однако, результирующий файл на выходе компоновщика не содержит их машинный код. Вместо этого ОС ищет и загружает эти DLL библиотеки в момент запуска приложения. Если найти их не удалось, приложение завершает свою работу с ошибкой. На иллюстрации 3-2 у процесса есть два DLL модуля, соответствующие динамическим библиотекам.

Рассмотрим, как CPU выполняет инструкции процесса. Эти инструкции – элементарные шаги более сложных высокоуровневых алгоритмов. Результат выполнения каждого шага сохраняется в регистрах (или ячейках памяти) процессора и используется в дальнейшем или выгружается в оперативную память.

Запущенное приложение может использовать несколько алгоритмов в ходе своей работы. Некоторые из них могут выполняться параллельно (так же как процессы в многозадачной ОС).

Поток

(thread) – это часть машинного кода процесса, которая может выполняться независимо от других частей. Потоки взаимодействуют друг с другом (обмениваются информацией) через разделяемые ресурсы, например файл или область RAM. За выбор потока для исполнения в данный момент отвечает уже знакомый нам планировщик ОС. Как правило, число одновременно работающих потоков определяется числом ядер процессора. Но есть технологии (например hyper-threading от Intel), позволяющие более эффективно использовать мощности процессора и исполнять сразу два потока на одном ядре.

Иллюстрация 3-2 демонстрирует, что модули процесса могут содержать несколько потоков, а могут не содержать ни одного. EXE модуль всегда имеет главный поток (main thread), который первым получает управление при старте приложения.

Рассмотрим структуру памяти типичного процесса. Иллюстрация 3-3 демонстрирует адресное пространство процесса, состоящего из двух модулей: EXE и DLL библиотеки. Адресное пространство – это множество всех доступных процессу адресов памяти. Оно разделено на блоки, называемые сегментами. У каждого из них есть базовый адрес, длина и набор прав доступа (на запись, чтение и исполнение). Разделение на сегменты упрощает задачу контроля доступа к памяти. С их помощью ОС может оперировать блоками памяти, а не отдельными адресами.

Иллюстрация 3-3. Адресное пространство типичного процесса

Процесс на иллюстрации 3-3 имеет три потока (включая главный). У каждого потока есть свой сегмент стека. Стек – это область памяти, организованная по принципу «последним пришёл — первым вышел» («last in — first out» или LIFO). Она инициализируется ОС при старте приложения и используется для хранения переменных и вызова функций. В стеке сохраняется адрес инструкции, следующей за вызовом. После возврата из функции процесс продолжает свое выполнение с этой инструкции. Также через стек передаются входные параметры функций.

Кроме сегментов стека, у процесса есть несколько сегментов динамической памяти (heap), к которым имеет доступ каждый поток.

У всех модулей процесса есть обязательные сегменты: .text, .data и .bss. Кроме обязательных могут быть и дополнительные сегменты (например .rsrc). Они не представлены на схеме 3-3.

Таблица 3-1 кратко описывает каждый сегмент из иллюстрации 3-3. Во втором столбце приведены их обозначения в отладчике OllyDbg.

Таблица 3-1. Описание сегментов

Сегмент

Обозначение в OllyDbg

Описание

Стек главного потока

Stack of main thread

Содержит автоматические переменные (память под которые выделяется при входе в блок области видимости и освобождается при выходе из него), стек вызовов с адресами возврата из функций и их входные параметры.

Динамическая память ID 1

Heap

Дополнительный сегмент памяти, который создаётся при переполнении сегмента динамической памяти ID 0.

Динамическая память ID 0

Default heap

ОС всегда создает этот сегмент при запуске процесса. Он используется по умолчанию для хранения переменных.

Стек потока 2

Stack of thread 2

Выполняет те же функции, что и стек главного потока, но используется только потоком 2.

.text EXE модуля

Code

Содержит машинный код модуля EXE.

.data EXE модуля

Data

Содержит статические и не константные глобальные переменные модуля EXE, которые инициализируются значениями при создании.

.bss EXE модуля

Содержит статические и не константные глобальные переменные модуля EXE, которые не инициализируются при создании.

Стек потока 3

Stack of thread 2

То же самое, что и стек потока 2, только используется потоком 3.

Динамическая память ID 2

Дополнительный сегмент памяти, расширяющий сегмент динамической памяти ID 1 при его переполнении.

.text DLL модуля

Code

Содержит машинный код модуля DLL.

.data DLL модуля

Data

Содержит статические и не константные глобальные переменные модуля DLL, которые инициализируются значениями при создании.

.bss DLL модуля

Содержит статические и не константные глобальные переменные модуля DLL, которые не инициализируются при создании.

Динамическая память ID 3

Дополнительный сегмент памяти, расширяющий сегмент динамической памяти ID 2 при его переполнении.

TEB потока 3

Data block of thread 3

Содержит блок информации о потоке (Thread Information Block или TIB), также известный как блок контекста потока (Thread Environment Block или TEB). Он представляет собой структуру с информацией о потоке 3.

TEB потока 2

Data block of thread 2

Содержит TEB структуру потока 2.

TEB главного потока

Data block of main thread

Содержит TEB структуру главного потока.

PEB

Process Environment Block

Содержит блок контекста процесса (Process Environment Block или PEB). Эта структура данных с информацией о процессе в целом.

Пользовательские данные

User Share Data

Содержит данные, которые доступны и совместно используются текущим процессом и другим.

Память ядра

Kernel memory

Область памяти, зарезервированная для нужд ОС.

Предположим, что на иллюстрации 3-3 приведено адресное пространство процесса игрового приложения. В этом случае состояние игровых объектов может находится в сегментах, отмеченных красным цветом.

ОС назначает базовые адреса этих сегментов в момент старта приложения. Эти адреса могут отличаться от запуска к запуску. Кроме того, последовательность сегментов в памяти может также меняться. В то же время некоторые из сегментов, отмеченных синим цветом на иллюстрации 3-3 (например PEB, User Share Data и Kernel memory), имеют неизменный адрес при каждом старте приложения.

Отладчик OllyDbg позволяет прочитать структуру памяти (memory map) запущенного процесса. Иллюстрации 3-4 и 3-5 демонстрируют вывод OllyDbg для приложения, адресное пространство которого приведено на схеме 3-3.

Структура памяти процесса в OllyDbg

Иллюстрация 3-4. Структура памяти процесса в OllyDbg

Структура памяти процесса в OllyDbg

Иллюстрация 3-5. Структура памяти процесса в OllyDbg (продолжение)

Таблица 3-2 демонстрирует соответствие между схемой 3-3 и сегментами настоящего процесса из иллюстраций 3-4 и 3-5.

Таблица 3-2. Сегменты процесса

Базовый адрес

Сегмент

Обозначение в OllyDbg

001ED000

Стек главного потока

Stack of main thread

004F0000

Динамическая память ID 1

Heap

00530000

Динамическая память ID 0

Default heap

00ACF000
00D3E000
0227F000

Стеки вспомогательных потоков

Stack of thread N

00D50000-00D6E000

Сегменты EXE модуля «ConsoleApplication1»

02280000-0BB40000
0F230000-2BC70000

Дополнительные сегменты динамической памяти

0F0B0000-0F217000

Сегменты DLL модуля «ucrtbased»

7EFAF000
7EFD7000
7EFDA000

TEB вспомогательных потоков

Data block of thread N

7EFDD000

TEB главного потока

Data block of main thread

7EFDE000

PEB главного потока

Process Environment Block

7FFE0000

Пользовательские данные

User shared data

80000000

Память ядра

Kernel memory

Возможно, вы обратили внимание, что OllyDbg не может автоматически идентифицировать все сегменты динамической памяти. С этой задачей лучше справляются отладчик WinDbg и инструмент HeapMemView.

Поиск переменной в памяти

Внутриигровые боты читают состояния объектов из памяти процесса игрового приложения. Эти состояния могут храниться в нескольких переменных, находящихся в разных сегментах. Базовые адреса этих сегментов и смещение переменных внутри них могут меняться от запуска к запуску. Это означает, что абсолютные адреса переменных непостоянны. К сожалению, бот может читать данные из памяти только по абсолютным адресам. Следовательно, он должен уметь искать нужные ему переменные самостоятельно.

Термин «абсолютный адрес» неточен, если мы говорим о

модели сегментации памяти x86

. x86 – это архитектура процессора, впервые реализованная компанией Intel. Сегодня практически все настольные компьютеры имеют процессоры этой архитектуры. Правильный термин, который следует употреблять – «линейный адрес». Он вычисляется по следующей формуле:

линейный адрес = базовый адрес сегмента + смещение в сегменте

В этой главе мы продолжим использовать термин «абсолютный адрес», поскольку он интуитивно понятен.

Задачу поиска переменной в памяти процесса можно разделить на три этапа. В результате получится следующий алгоритм:

  1. 1.

    Найти сегмент, который содержит искомую переменную.

  2. 2.

    Определить базовый адрес сегмента.

  3. 3.

    Определить смещение переменной внутри сегмента.

Очень высока вероятность того, что переменная будет храниться в одном и том же сегменте при каждом старте приложения. Это правило не выполняется для сегментов динамической памяти, что связано с особенностью её организации. Если мы установили, что переменная не находится в сегменте динамической памяти, первый шаг алгоритма может быть выполнен вручную. Полученный результат можно закодировать в боте без каких-либо дополнительных условий и проверок. В противном случае бот должен искать сегмент самостоятельно.

Второй шаг алгоритма бот должен всегда выполнять сам. Как мы упоминали ранее, адреса сегментов меняются при старте приложения.

Последний шаг алгоритма – найти смещение переменной в сегменте. Нет никаких гарантий, что оно не будет меняться при каждом старте приложения. Однако, смещение может оставаться тем же в некоторых случаях. Это зависит от типа сегмента, как демонстрирует таблица 3-3. Таким образом, в некоторых случаях мы можем выполнить третий шаг алгоритма вручную и закодировать результат в боте.

Таблица 3-3. Смещение переменных в различных типах сегментов

Смещение переменной не меняется при перезапуске приложения.

В большинстве случаев смещение переменной не меняется. Но оно зависит от порядка выполнения инструкций (control flow). Если этот порядок меняется, смещение, скорее всего, тоже изменится.

Смещение переменной меняется при перезапуске приложения.

Поиск переменной в 32-битном приложении

Применим алгоритм поиска переменной на практике. Выполним все его шаги вручную для приложения ColorPix, которым мы пользовались в прошлой главе для чтения цветов и координат пикселей экрана. Это поможет лучше понять и запомнить все необходимые действия.

Приложение ColorPix является 32-битным. Скриншот его окна приведён на иллюстрации 3-6. Попробуем найти в памяти переменную, которая соответствует координате X выделенного на экране пикселя. На иллюстрации 3-6 она подчеркнута красной линией.

Иллюстрация 3-6. Окно приложения ColorPix

В ходе дальнейших действий вы не должны закрывать уже запущенное приложение ColorPix. Иначе, вам придется начать поиск переменной сначала.

Для начала найдём сегмент памяти, в котором хранится переменная. Эту задачу можно разделить на два этапа:

  1. 1.

    Найти абсолютный адрес переменной с помощью сканера памяти Cheat Engine.

  2. 2.

    Сравнить найденный адрес с базовыми адресами всех сегментов. Таким образом мы узнаем сегмент, в котором хранится переменная.

Чтобы найти переменную с помощью Cheat Engine, выполните следующие действия:

  1. 1.

    Запустите 32-битную версию сканера с правами администратора.

  2. 2.

    Выберите пункт главного меню «File» ➤ «Open Process». Вы увидите диалог со списком запущенных процессов (см. иллюстрацию 3-7).

Диалог выбора процесса Cheat Engine

Иллюстрация 3-7. Диалог выбора процесса Cheat Engine

  1. 1.

    Выберите процесс с именем «ColorPixel.exe» и нажмите кнопку «Open». В результате имя этого процесса отобразится в верхней части окна Cheat Engine.

  2. 2.

    Введите значение координаты X, которое вы видите в данный момент в окне ColorPixel, в поле «Value» окна Cheat Engine.

  3. 3.

    Нажмите кнопку «First Scan», чтобы найти абсолютный адрес указанного значения координаты X в памяти процесса ColorPixel.

Когда вы нажимаете кнопку «First Scan», значение в поле «Value» окна Cheat Engine, должно соответствовать тому, что отображает ColorPixel. Координата X изменится, если вы переместите курсор мыши по экрану, поэтому нажать на кнопку будет затруднительно. Воспользуйтесь комбинацией клавиш Shift+Tab, чтобы переключиться на неё и Enter, чтобы нажать.

В левой части окна Cheat Engine вы увидите результаты поиска, как на иллюстрации 3-8.

Результаты поиска Cheat Engine

Иллюстрация 3-8. Результаты поиска в окне Cheat Engine

Если в момент сканирования процесса несколько переменных имеют то же самое значение что и координата X, найденных переменных будет больше чем две. В этом случае вам надо отфильтровать ошибочные результаты. Для этого выполните следующие шаги:

  1. 1.

    Переместите курсор мыши, чтобы значение координаты X в окне ColorPixel изменилось.

  2. 2.

    Введите новую координату X в поле «Value» окна Cheat Engine.

  3. 3.

    Нажмите кнопку «Next Scan».

После этого в окне результатов должны остаться только две переменные, как на иллюстрации 3-8. В моём случае их абсолютные адреса равны 0018FF38 и 0025246C. У вас они могут отличаться, но это не существенно для нашего примера.

Мы нашли абсолютные адреса двух переменных, хранящих значение координаты X. Теперь определим сегменты, в которых они находятся. Для этой цели воспользуемся отладчиком OllyDbg. Для поиска сегментов выполните следующие шаги:

  1. 1.

    Запустите отладчик OllyDbg с правами администратора. Путь к нему по умолчанию:
    C:Program Files (x86)odbg201ollydbg.exe.

  2. 2.

    Выберите пункт главного меню «File» ➤ «Attach». Вы увидите диалог со списком запущенных 32-битных процессов (см. иллюстрацию 3-9).

Диалог выбора процесса OllyDbg

Иллюстрация 3-9. Диалог выбора процесса в отладчике OllyDbg

  1. 1.

    Выберите процесс «ColorPix» в списке и нажмите кнопку «Attach». Когда отладчик подключится к нему, вы увидите состояние «Paused» в правом нижнем углу окна OllyDbg.

  2. 2.

    Нажмите комбинацию клавиш Alt+M, чтобы открыть окно, отображающее структуру памяти процесса ColorPix. Это окно «Memory Map» приведено на иллюстрации 3-10.

Иллюстрация 3-10. Окно «Memory Map» со структурой памяти процесса

Переменная с абсолютным адресом 0018FF38 хранится в сегменте стека главного процесса («Stack of main thread»), который занимает адреса с 0017F000 по 00190000.

OllyDbg отображает только адрес начала сегмента и его размер. Чтобы вычислить конечный адрес, вы должны сложить два эти числа. Результат будет равен адресу начала следующего сегмента.

Вторая найденная нами переменная с адресом 0025246C находится в сегменте с базовым адресом 00250000, тип которого неизвестен. Найти его будет труднее чем сегмент стека. Поэтому мы продолжим работу с первой переменной.

Последний шаг поиска – расчёт смещения переменной в сегменте стека. Стек в архитектуре x86 растёт вниз. Это означает, что он начинается с больших адресов и расширяется в сторону меньших. Следовательно, базовый адрес стека равен его верхней границе (в нашем случае это 00190000). Нижняя границе стека может меняться по ходу его увеличения.

Смещение переменной равно разности базового адреса сегмента, в котором она находится, и её абсолютного адреса. В нашем случае мы получим:

Для сегментов динамической памяти, .bss и .data это вычисление выглядело бы иначе. Все они растут вверх (в сторону больших адресов), поэтому их базовый адрес соответствует нижней границе.

Теперь у нас есть вся необходимая информация, чтобы найти и прочитать координату X в любом запущенном процессе ColorPix. Алгоритм бота, который бы это делал, выглядит следующим образом:

  1. 1.

    Прочитать базовый адрес сегмента стека главного потока. Этот адрес хранится в TEB сегменте.

  2. 2.

    Вычесть смещение переменной (всегда равное C8) из базового адреса сегмента стека. В результате получим её абсолютный адрес.

  3. 3.

    Прочитать значение переменной из памяти процесса ColorPix по её абсолютному адресу.

Корректность первого шага алгоритма мы можем проверить вручную с помощью отладчика OllyDbg. Он позволяет прочитать информацию сегмента TEB в удобном виде. Для этого дважды щелкните по сегменту, который называется «Data block of main thread», в окне «Memory Map» отладчика. Вы увидите окно как на иллюстрации 3-11.

Иллюстрация 3-11. Окно OllyDbg с информацией TEB

Базовый адрес сегмента стека 00190000 указан во второй строчке открывшегося окна. Учтите, что этот адрес может меняться при каждом запуске приложения.

Поиск переменной в 64-битном приложении

Применим наш алгоритм поиска переменной для 64-битного приложения.

Отладчик OllyDbg не поддерживает 64-битные приложения, поэтому вместо него воспользуемся WinDbg.

Resource Monitor (монитор ресурсов) Windows 7 будет нашим приложением для анализа. Он распространяется вместе с ОС и доступен сразу после её установки. Разрядность Resource Monitor совпадает с разрядностью Windows. Чтобы запустить приложение, откройте меню Пуск (Start) Windows и введите следующую команду в строку поиска:

Иллюстрации 3-12 демонстрирует окно Resource Monitor.

Иллюстрация 3-12. Окно приложения Resource Monitor

Найдём переменную, хранящую размер свободной памяти системы. На иллюстрации её значение подчёркнуто красной линией.

Прежде всего найдём сегмент, содержащий искомую переменную. Для этого воспользуемся 64-битной версией сканера Cheat Engine. Интерфейс его 64 и 34-битных версий одинаков, поэтому вам нужно выполнить те же действия, что и при анализе приложения ColorPixel.

В моем случае сканер нашёл две переменные с адресами 00432FEC и 00433010. Определим сегменты, в которых они хранятся. Чтобы прочитать структуру памяти процесса с помощью отладчика WinDbg, выполните следующие действия:

  1. 1.

    Запустите 64-битную версию WinDbg с правами администратора. Путь к нему по умолчанию:
    C:Program Files (x86)Windows ­Kits8.1Debuggersx64windbg.exe.

  2. 2.

    Выберите пункт главного меню «File» ➤ «Attach to a Process…». Откроется окно диалога со списком запущенных 64-разрядных процессов, как на иллюстрации 3-13.

Диалог выбора процесса WinDbg

Иллюстрация 3-13. Диалог выбора процесса в отладчике WinDbg

  1. 1.

    Выберите в списке процесс «perfmon.exe» и нажмите кнопку «OK».

  2. 2.

    В командной строке отладчика, расположенной в нижней части окна «Command», введите текст !address и нажмите Enter. Структура памяти процесса отобразится в окне «Command», как на иллюстрации 3-14.

Структура памяти в WinDbg

Иллюстрация 3-14. Вывод структуры памяти процесса в окне «Command»

Обе переменные с абсолютными адресами 00432FEC и 00433010 находятся в сегменте динамической памяти с ID 2. Границы этого сегмента: с 003E0000 по 00447000. Смещение первой переменной в сегменте равно 52FEC:

00432FEC — 003E0000 = 52FEC

Для бота алгоритм поиска переменной, хранящей размер свободной памяти ОС в приложении Resource Monitor, выглядит следующим образом:

  1. 1.

    Прочитать базовый адрес сегмента динамической памяти с ID 2. Чтобы получить доступ к этим сегментам, надо воспользоваться следующими WinAPI функциями:

  2. 2.

    Добавить смещение переменной (в моем случае равное 52FEC) к базовому адресу сегмента. В результате получится её абсолютный адрес.

  3. 3.

    Прочитать значение переменной из памяти процесса.

Как вы помните, смещение переменной в сегменте динамической памяти обычно меняется при перезапуске приложения. В случае если приложение достаточно простое (как рассматриваемый нами Resource Monitor), порядок выделения динамической памяти может быть одним и тем же при каждом старте программы.

Попробуйте перезапустить Resource Monitor и найти переменную еще раз. Вы получите то же самое её смещение в сегменте, равное 52FEC.

Мы рассмотрели адресное пространство Windows процесса. Затем составили алгоритм поиска переменной в памяти и применили его к 32 и 64-разрядному приложениям. В ходе этого мы познакомились с функциями отладчиков OllyDbg и WinDbg для анализа структуры памяти процесса.

Обратимые и необратимые реакции

Химическое равновесие присуще обратимым реакциям и не характерно для необратимых химических реакций.

Часто, при осуществлении химического процесса, исходные реагирующие вещества полностью переходят в продукты реакции. Например:

Cu + 4HNO3 = Cu(NO3)2 + 2NO2↑ + 2H2O

Невозможно получить металлическую медь, проводя реакцию в обратном направлении, т.к. данная реакция необратима. В таких процессах реагенты полностью переходят в продукты, т.е. реакция протекает до конца.

Но основная часть химических реакций обратима, т.е. вероятно параллельное протекание реакции в прямом и обратном направлениях. Иначе говоря, реагенты лишь частично переходят в продукты и реакционная система будет состоять как из реагентов, так и из продуктов. Система в данном случае находится в состоянии химического равновесия.

При обратимых процессах, вначале прямая реакция имеет максимальную скорость, которая постепенно снижается, в связи с уменьшением количества реагентов.

Обратная реакция, наоборот, вначале имеет минимальную скорость, которая увеличивается по мере накапливания продуктов.

В конце концов, наступает момент, когда скорости обоих реакций становятся равными – система приходит в состояние равновесия.

При наступлении состояния равновесия, концентрации компонентов остаются неизменными, но химическая реакция при этом не прекращается.

Т.о. химическое равновесие – это динамичное (подвижное) состояние.

Для наглядности, приведем следующий рисунок:

химическое равновесие
химическое равновесие

Допустим, протекает некая обратимая химическая реакция:

а А + b В = с С + d D

тогда, исходя из закона действующих масс, запишем выражения для скорости прямой υ1 и обратной υ2 реакций:

υ1 = k1·[A]a·[B]b

υ2 = k2·[C]c·[D]d

В состоянии химического равновесия, скорости прямой и обратной реакции равны, т.е.:

υ1 = υ2

k1·[A]a·[B]b = k2·[C]c·[D]d

получаем

К = k1/ k2 = [C]c·[D]d ̸ [A]a·[B]b

Где К = k1/ k2константа равновесия.

Для любого обратимого процесса, при заданных условиях константа равновесия K является величиной постоянной. Она не зависит от концентраций веществ, т.к. при изменении количества одного из веществ, количества других компонентов также меняются.

При изменении условий протекания химического процесса, возможно смещение равновесия.

Принцип Ле-Шателье

Все вышеперечисленные факторы влияют на смещение химического равновесия, которое подчиняется принципу Ле-Шателье:

если изменить одно из условий, при котором система находится в состоянии равновесия – концентрацию, давление или температуру, — то равновесие сместится в направлении той реакции, которая противодействует этому изменению.

Т.е. равновесие стремится к смещению в направлении, приводящему к уменьшению влияния воздействия, которое привело к нарушению состояния равновесия.

Итак, рассмотрим отдельно влияние каждого их факторов на состояние равновесия.

Факторы, влияющие на смещение химического равновесия:

  • изменение концентраций реагентов или продуктов,
  • изменение давления,
  • изменение температуры,
  • внесение катализатора в реакционную среду.

Рассмотрим каждый фактор, влияющий на смещение равновесия подробнее:

Влияние изменения концентраций реагентов или продуктов

покажем на примере процесса Габера:

N2(г) + 3H2(г) = 2NH3(г)

Если в равновесную систему, состоящую из  N2(г), H2(г) и NH3(г), добавить, например, азот, то химическое равновесие должно сместиться в направлении, которое способствовало бы уменьшению количества водорода в сторону его исходного значения, т.е. в направлении образования дополнительного количества аммиака (вправо). При этом одновременно произойдет и уменьшение количества водорода.

При добавлении в систему водорода, также произойдет смещение равновесия в сторону образования нового количества аммиака (вправо). Тогда как внесение в равновесную систему аммиака, согласно принципу Ле-Шателье, вызовет смещение равновесия в сторону того процесса, который благоприятен для образования исходных веществ (влево), т.е. концентрация аммиака должна уменьшится посредством разложения некоторого его количества на азот и водород.

Уменьшение концентрации одного из компонентов, сместит равновесное состояние системы в сторону образования этого компонента.

Влияние изменения давления

Влияние изменения давления имеет смысл, если в исследуемом процессе принимают участие газообразные компоненты и при этом имеет место изменение общего числа молекул. Если общее число молекул в системе остается постоянным, то изменение давления не влияет на ее равновесие, например:

 I2(г) + H2(г) = 2HI(г)

Если полное давление равновесной системы увеличивать посредством уменьшения ее объема, то равновесие сместится в сторону уменьшения объема. Т.е. в сторону уменьшения числа молей газа в системе. В реакции:

N2(г) + 3H2(г) = 2NH3(г)

из 4 молеул газа (1 N2(г) и 3 H2(г)) образуется 2 молекулы газа (2 NH3(г)), т.е. давление в системе уменьшается. Вследствие чего, рост давления будет способствовать образованию дополнительного количества аммиака, т.е. химическое равновесие сместится в сторону его образования (вправо).

Если температура системы постоянна, то изменение полного давления системы не приведет к изменению константы равновесия К.

Влияние изменения температуры системы

Изменение температуры влияет не только на смещение ее равновесия, но также и на константу равновесия К.

Если равновесной системе, при постоянном давлении, сообщать дополнительную теплоту, то химическое равновесие сместится в сторону поглощения теплоты.

Рассмотрим экзотермическую реакцию:

N2(г) + 3H2(г) = 2NH3(г) + 22 ккал

Итак, как видно, прямая реакция протекает с выделением теплоты, а обратная – с поглощением.

При увеличении температуры, равновесие этой реакции смещается в сторону реакции разложения аммиака (влево), т.к. она является эндотермической и ослабляет внешнее воздействие – повышение температуры.

Напротив, охлаждение приводит к смещению равновесия в направлении синтеза аммиака (вправо), т.к. реакция является экзотермической и противодействует охлаждению.

Таким образом, повышение температуры благоприятствует смещению химического равновесия в сторону эндотермической реакции, а падение температуры – в направлении экзотермического процесса.

Константы равновесия всех экзотермических процессов при росте температуры уменьшаются, а эндотермических процессов – увеличиваются.

Влияние катализатора

Внесение катализатора в систему приводит к тому, что скорости как прямой, так и обратной реакций увеличиваются. Изменяется скорость приближения к  состоянию равновесия, но k при этом не меняется.

Принцип Ле-Шателье также применим к таким реакциям, в которых компоненты находятся в различных фазовых состояниях, т.е. к гетерогенным реакциям. Тогда речь будет идти о гетерогенном равновесии, например:

CaCO3(тв) → CaO(тв) + CO2(г)

В этой реакции газ и два твердых вещества находятся между собой в равновесии, и «концентрации» твердых компонентов остаются неизменными. Обычно «концентрации» твердых и жидких компонентов включаются в значение К, что позволяет не учитывать их при написании выражения для константы равновесия:

К = [CO2]

Это выражение показывает нам, что не важно, какое количество CaCO3(тв) и CaO(тв) содержится в равновесной системе, пока в ней присутствует хотя бы незначительное количество любого из этих веществ.

1.4.4. Обратимые и необратимые химические реакции. Химическое равновесие. Смещение химического равновесия под действием различных факторов.

Обратимые и необратимые химические реакции

Химические реакции бывают обратимые и необратимые.

Необратимыми реакциями называют такие реакции, которые идут только в одном (прямом →) направлении:

т.е. если некоторая реакция A + B = C + D необратима, это значит, что обратная реакция C + D = A + B не протекает.

Обратимые реакции – это такие реакции, которые идут как в прямом, так и в обратном направлении (⇄):

т.е., например, если некая реакция A + B = C + D обратима, это значит, что одновременно протекает как реакция A + B → C + D (прямая), так и реакция С + D → A + B (обратная).

По сути, т.к. протекают как прямая, так и обратная реакции, реагентами (исходными веществами) в случае обратимых реакций могут быть названы как вещества левой части уравнения, так и вещества правой части уравнения. То же самое касается и продуктов.

Однако, условно принято считать, что реагентами в каждом конкретном уравнении обратимой реакции являются те вещества, которые записаны в его левой части, а продуктами – те, что записаны в правой, т.е.:

обратимая реакция продукты реагенты

Для любой обратимой реакции возможна ситуация, когда скорость прямой и обратной реакций равны. Такое состояние называют состоянием равновесия.

В состоянии равновесия концентрации как всех реагентов, так и всех продуктов неизменны. Концентрации продуктов и реагентов в состоянии равновесия называют равновесными концентрациями.

Смещение химического равновесия под действием различных факторов

Вследствие таких внешних воздействий на систему, как изменение температуры, давления или концентрации исходных веществ или продуктов, равновесие системы может быть нарушено. Однако после прекращения этого внешнего воздействия система через некоторое время перейдет в новое состояние равновесия. Такой переход системы из одного равновесного состояния в другое равновесное состояние называют смещением (сдвигом) химического равновесия.

Для того чтобы уметь определять, каким образом сдвигается  химическое равновесие при том или ином типе воздействия, удобно пользоваться принципом Ле Шателье:

Если на систему в состоянии равновесия оказать какое-либо внешнее воздействие, то направление смещения химического равновесия будет совпадать с направлением той реакции, которая ослабляет эффект от оказанного воздействия.

Влияние температуры на состояние равновесия

При изменении температуры равновесие любой химической реакции смещается. Связано это с тем, что любая реакция имеет тепловой эффект. При этом тепловые эффекты прямой и обратной реакции всегда прямо противоположны. Т.е. если прямая реакция является экзотермической и протекает с тепловым эффектом, равным +Q, то обратная реакция всегда эндотермична и имеет тепловой эффект, равный –Q.

Таким образом, в соответствии с принципом Ле Шателье, если мы повысим температуру некоторой системы, находящейся в состоянии равновесия, то равновесие сместится в сторону той реакции, при протекании которой температура понижается, т.е. в сторону эндотермической реакции. И аналогично, в случае, если мы понизим температуру системы в состоянии равновесия, равновесие сместится в сторону той реакции, в результате протекания которой температура будет повышаться, т.е. в сторону экзотермической реакции.

Например, рассмотрим следующую обратимую реакцию и укажем, куда сместится ее равновесие при понижении температуры:

Как видно из уравнения выше, прямая реакция является экзотермической, т.е. в результате ее протекания выделяется тепло. Следовательно, обратная реакция будет эндотермической, то есть протекает с поглощением тепла. По условию температуру понижают, следовательно, смещение равновесия будет происходить вправо, т.е. в сторону прямой реакции.

Влияние концентрации на химическое равновесие

Повышение концентрации реагентов в соответствии с принципом Ле Шателье должно приводить к смещению равновесия в сторону той реакции, в результате которой реагенты расходуются, т.е. в сторону прямой реакции.

И наоборот, если концентрацию реагентов понижают, то равновесие будет смещаться в сторону той реакции, в результате которой реагенты образуются, т.е. сторону обратной реакции (←).

Аналогичным образом влияет и изменение концентрации продуктов реакции. Если повысить концентрацию продуктов, равновесие будет смещаться в сторону той реакции, в результате которой продукты расходуются, т.е. в сторону обратной реакции (←). Если же концентрацию продуктов, наоборот, понизить, то равновесие сместится в сторону прямой реакции (→), для того чтобы концентрация продуктов возросла.

Влияние давления на химическое равновесие

В отличие от температуры и концентрации, изменение давления оказывает влияние на состояние равновесия не каждой реакции. Для того чтобы изменение давления приводило к смещению химического равновесия, суммы коэффициентов перед газообразными веществами в левой и в правой частях уравнения должны быть разными.

Т.е. из двух реакций:

N2(г) + O2(г) ⇄ 2NO(г) и N2(г) + 3Н2(г) ⇄ 2NН3(г)

изменение давления способно повлиять на состояние равновесия только в случае второй реакции. Поскольку сумма коэффициентов перед формулами газообразных веществ в случае первого уравнения слева и справа одинаковая (равна 2), а в случае второго уравнения – различна (4 слева и 2 справа).

Отсюда, в частности, следует, что если среди и реагентов, и продуктов отсутствуют газообразные вещества, то изменение давления никак не повлияет на текущее состояние равновесия. Например, давление никак не повлияет на состояние равновесия реакции:

Na2O(тв.) + ZnO(тв.) ⇄ Na2ZnO2(тв.)

Если же слева и справа количество газообразных веществ различается, то повышение давления будет приводить к смещению равновесия в сторону той реакции, при протекании которой объем газов уменьшается, а понижение давления – в сторону той реакции, в результате которой объем газов увеличивается.

Влияние катализатора на химическое равновесие

Поскольку катализатор в равной мере ускоряет как прямую, так и обратную реакции, то его наличие или отсутствие никак не влияет на состояние равновесия.

Единственное, на что может повлиять катализатор, — это на скорость перехода системы из неравновесного состояния в равновесное.

Воздействие всех указанных выше факторов на химическое равновесие сведено ниже в таблицу-шпаргалку, в которую поначалу можно подглядывать при выполнении заданий на равновесия. Однако же пользоваться на экзамене ей не будет возможности, поэтому после разбора нескольких примеров с ее помощью, ее следует выучить и тренироваться решать задания на равновесия, уже не подглядывая в нее:

Обозначения: T – температура, p – давление, с – концентрация, ↑ — повышение, ↓ — понижение

T

↑Т — равновесие смещается в сторону эндотермической реакции
↓Т — равновесие смещается в сторону экзотермической реакции

p

↑p — равновесие смещается в сторону реакции с меньшей суммой коэффициентов перед газообразными веществами
↓p — равновесие смещается в сторону реакции с большей суммой коэффициентов перед газообразными веществами

c

↑c(реагента) – равновесие смещается в сторону прямой реакции (вправо)
↓c(реагента) – равновесие смещается в сторону обратной реакции (влево)
↑c(продукта) – равновесие смещается в сторону обратной реакции (влево)
↓c(продукта) – равновесие смещается в сторону прямой реакции (вправо)
Катализатор На равновесие не влияет!!!

Поиск потерь в процессах может начинаться с анализа диаграмм. С точки зрения управления бизнес-процессами, потеря – то, что не создает ценности для внешнего или внутреннего клиента. Потери приводят к нерациональному использованию ресурсов и, как следствие, снижают эффективность процессов.

Я подготовила список потерь, которые легко можно обнаружить при анализе диаграмм бизнес-процессов.

Ожидания

В определенных ситуациях, невозможно выполнить действия в процессе до тех пор, пока не произойдет определенное событие. А так, как событие является результатом действия, даже если мы его не видим, такая ситуация формирует ожидание. Еще раз — если развитие процесса зависит от события, которое является следствием другого процесса, или операции внутри процесса, формируется ожидание. 

Поиск потерь, типа «ожидание» происходит через поиск событий, наступление которых не зависит от действий исполнителя. Например: завершение действия программы, наступление определенной даты, действия другого человека. 

В представленном ниже примере, администратор не может составить отчет, до тех пор, пока не получены данные. При этом, данные будут получены не сразу после запроса. С точки зрения управления бизнес-процессами, такая ситуация является ожиданием и является потенциальной потерей, так как снижает непрерывность процесса. 

Диаграммы и поиск потерь в бизнес-процессах - Иллюстрация ожидания в схеме процесса.jpg

Ожидание в процессе

Незавершенное окончание

Каждый сценарий процесса должен иметь логическое завершение — результат, который будет использован дальше. Однако, бывает и так, что действия выполнены, ресурсы потрачены, а результат никому не нужен. Незавершенное окончание появляется тогда, когда вы не можете ответить на вопрос, что делать дальше. 

Для того чтобы найти незавершенное окончание, необходимо проверить все сценарии на наличие событий окончания. Если вы нашли сценарий без события окончания, вы нашли незавершенное окончание. 

Диаграммы и поиск потерь в бизнес-процессах - Иллюстрация незавершенного окончания в процессе.jpg

Незавершенное окончание в процессе

Пример. При изготовлении детали, могут остаться отходы и сотрудник выполняет их переработку. Но что происходит с переработанными отходами? Куда процесс движется дальше? Если ответа на этот вопрос, ситуация потенциально говорит о незавершенном окончании.

Бесполезные операции

Бесполезные операции – операции которые не имеют пользы, т.е. не создают ценности ни для клиента, ни для компании. Например: формальное согласование. Когда согласующий, который не имеет отношения к работе, ставит подпись. 

Для поиска бесполезной операции, придется внимательно пройти по всем операциям и к каждой задать следующие вопросы:

  • Приносит ли операция пользу внешнему клиенту?
  • Приносит ли операция пользу какому-то внутреннему клиенту?
  • Приносит ли операция пользу компании?

И если на все вопросы вы ответили «нет», значит операция является бесполезной. Да, поиск потерь может быть весьма простым. В примере ниже, под вопросы попала операция «Внести информацию о несогласованном предложении в журнал». 

Диаграммы и поиск потерь в бизнес-процессах - Иллюстрация бесполезных операции.jpg

Бесполезная операция

 Возможно неочевидно, но данная операция не приносит пользы внешним и внутренним клиентам, да и компании от нее нет пользы. В таком случае операция может считаться бесполезной и необходимо рассмотреть возможность ее исключения из процесса.

Неправильный порядок операций

Иногда, для более эффективной работы процесса, требуется поменять операции местами. От того, где стоит операция, может зависеть длительность и стоимость процесса. Попробуйте изменить порядок выполнения операций. Если одна из комбинаций приводит к уменьшению длительности, или стоимости процесса, вероятно вы нашли возможность сделать процесс эффективнее. Пример. Обычный процесс согласования закупки. Для покупки необходимо найти поставщика, составить договор и согласовать его со специалистом внутреннего контроля. 

Диаграммы и поиск потерь в бизнес-процессах - Иллюстрация неправильного порядка операции в процессе.jpg

Неправильный порядок операций в процессе

На диаграмме видно, что согласование поставщика происходит после выяснения информации и составления договора. Если специалист внутреннего контроля не согласует поставщика, то предыдущая работа была выполнена зря. Придется вернуться в начало. Этого не произойдет, если произвести согласование сразу после выбора поставщика.

Лишние перемещения

Чем меньше перемещений в процессе, тем лучше. Каждое перемещение увеличивает риск повреждения, задержки и т.д. На перемещения тратятся ресурсы. 

Чтобы найти лишние, необходимо определить все места в процессе, где происходят перемещения. Это может быть передача документов, передвижение товаров и т.д. Потом нужно выяснить, кто является изначальным отправителем, а кто конечным адресатом. Далее определить, есть ли промежуточные передвижения. Если да, то оценить его целесообразность. Если перемещений можно избежать, то они являются лишними. 

Например. Сотрудник создает документ и отправляет его начальнику отдела. Начальник отдела пересылает документ руководителю подразделения. 

Диаграммы и поиск потерь в бизнес-процессах - Иллюстрация лишних перемещении.jpg

Лишнее перемещение

Зачем в данной цепочке начальник отдела? Сотрудник может напрямую отправить документ руководителю подразделения. Типичный пример лишнего перемещения.

Дублирование операций

Очень часто, поиск потерь сводится к поиску дублирующих операций. Дублирование возникает, когда операция выполняется несколько раз в разных местах. Причем у операций может быть, разное название, их могут выполнять разные сотрудники, но у таких операций будет общая цель и смысл. 

Для того чтобы найти дублирование, необходимо сравнить операции друг с другом. Если операции выполняются ради одного и того же результата, то, скорее всего, они являются дублирующими. 

К примеру, в процессе «Контроль выполнения стандартов обслуживания», контролер повторно выполняет одну и ту же операцию: «Выложить аналитическую справку на ресурс» и «Передача аналитической справки зам. начальнику, лично». 

Диаграммы и поиск потерь в бизнес-процессах - Иллюстрация дублирования операции.jpg

Дублирование операции

Зам. начальника может зайти на корпоративный ресурс и увидеть справку, зачем передавать её лично?

Отклонения

При выполнении процесса, могут возникать поломки, ошибки, недоработки и т.д. Это ситуации, которые препятствуют выполнению процесса. Возникают в случае: низкой квалификации работника, плохой работы оборудования, некачественных материалов и т.д. 

Отклонение – нарушение нормальной работы процесса. Поиск потерь такого типа может быть весьма затруднительным. Чтобы найти отклонение в процессе, необходимо найти события, которые формируют ответвления от основных сценариев. То есть, они формируют сценарии, в которых часть операций не имеет отношения к получению продуктов процесса. Можно сказать, что это события, которые создают «проблемы» процессу. 

Например, поломка принтера. Конструкция типа «компенсация», также может служить хорошим индикатором потенциального отклонения. 

Диаграммы и поиск потерь в бизнес-процессах - Иллюстрация отклонения 1.jpg

Отклонение в процессе. Пример 1

В данном примере, есть событие на границе операций «Не указан номер телефона». Это событие является отклонением, так как порождает дополнительные, нежелательные операции для процесса, и для его устранения понадобятся компенсирующие действие «Связаться с клиентом по электронной почте». 

Еще пример. Специалист ежемесячно готовит отчет и отправляет руководителю на проверку. Руководитель проверяет и возвращает на корректировку по необходимости. 

Диаграммы и поиск потерь в бизнес-процессах - Иллюстрация отклонения 2.jpg

Отклонение в процессе. Пример 2

В процессе присутствует ветвление. У него два варианта «Отчет принят» и «Необходима корректировка». Событие «Необходима корректировка» мешает завершить процесс, оно возвращает процесс назад. В данной ситуации, это является отклонением. 

Поиск потерь необходимо производить периодически. Старайтесь уменьшать время выполнения процессов, количество бесполезных операций, отклонений. Убирайте повторы и лишние перемещения. 

Эти простые примеры помогут вам найти потери, без сложных аналитических подходов, а лишь с помощью диаграмм процессов.

Индексы,
характеризующие величину смещения
процесса относительно середины интервала
допуска, обозначают как (Срк
нижн.)
и (Срк
верх.).


Показатель Срк
можно получить из уравнения для Ср,
скорректировав его на смещение с
использованием критерия смещения
процесса k:

(4а)

Далее, принимая,
что номинал равен середине интервала
ВГД-НГД и равен, соответственно,
НГД+0,5(ВГД-НГД) или, что то же самое,
ВГД-0,5(НГД-ВГД), подставляем эти значения
в 4а, и, используя уравнение

(
4б)

Получаем выражения
2.3 и 2.4 для Срк верх
и Срк нижн
. Иногда эти индексы называют «индексы
работоспособности процесса» или «индексы
возможности процесса».

На
рисунке 2.1. — 2.7

представлены примеры, на которых
приведены процессы с одинаковой величиной
рассеяния (за исключением рисунков
2.3b,
2.5d
и 2.5e),
но разным смещением. За основу взят
процесс 1.3.

В
рассмотренных примерах смещение
происходит в сторону нижней границы
(исключение – рис.2.2b).
При этом значение Сркнижн
по мере увеличения смещения уменьшается.

Как следует из
рисунка 2.2b,
в случае смещения в сторону верхней
границы уменьшаться будет Сркверх.

На рисунках 2.5a
– 2.5
e
представлены процессы, в которых величина
смещения достигла такой величины, при
которой Сркнижн=0
и величина брака по НГД составляет 50%..
Из рисунков 2.5a
– 2.5d
(Cp≤0,5)
видно, что в этих процессах доля событий
за пределами границ допуска равна 50%, а
в случае рисунка 2.5e
9 (Ср<0,5) доля брака составляет более
50% за счет того, что появился брак и по
ВГД за счет того, что ширина диапазона
рассеяния стала более, чем в 2 раза шире
границ допуска (количество брака по НГД
равно 50%, по ВГД <50%, всего количество
брака больше 50%, но меньше 100%).

Из рисунков 2.5a
— 2.5
e
следует
, что
при Ср≥0,5, что если один из показателей
Срк (в данном случае Сркнижн)
равен 0, то количество брака в процессе
равно 50%, в том числе по нижней границе
допуска 50%, а по верхней границе допуска
– 0%.

Если же Ср<0,5
(рис. 2.5e),
то за счет большой ширины области
рассеяния количество брака в процессе
будет больше 50%, но меньше 100%, в том числе
50% по нижней оси, и больше 0%, но меньше
50% — по верхней границе допуска.

На рисунках 2.6 и
2.7 приведены процессы , в которых величина
смещения достигла такой величины, что
количество брака по НГД стало больше
50%, в том числе на рисунке 2.7 – более
100%.

Связь индексов
Ср,
Срк(верх)
и Срк(нижн)
описывается
выражением

2Ср = Срк(верх)+
Срк(нижн) (5)

Для того, чтобы
получить эту формулу из уравнений (2) и
(3) находят значения ВГД и НГД

ВГД=3σ
Срк(верх)
+ Х; НГД = Х —
3σ
Срк(нижн)
(6)

Затем (6) подставляют
в (1), в результате после сокращений и
получаем уравнение связи показателей
возможностей процессов (5).

ВЫВОДЫ ПО
ПОКАЗАТЕЛЯМ Срк

  1. Показатели
    Срк(нижн)
    и Срк(верх)
    характеризуют смещение процесса
    относительно центра границ допуска.

  2. Если в процессе
    нет смещения (процесс центросимметричен
    относительно границ допуска), то все
    три показателя (Ср, Срк(нижн)
    и Срк(верх))
    равны между собой (рис. 2.1, 1.1, 1.4, 1.5) .

  3. При смещении
    процесса в сторону НГД, показатель
    Срк(нижн)
    уменьшается относительно значения
    Ср, а показатель Срк(верх)
    – увеличивается на ту же величину. При
    смещении в сторону ВГД уменьшается
    Срк(верх),
    а Срк(нижн)
    увеличивается (рис.2.b).

  4. Если известен Ср
    и один из показателей Срк(верх)
    или Срк(нижн),
    то неизвестный показатель Срк
    можно
    вычислить по формуле 2Ср=Сркнижн
    +Сркверх,
    либо по правилу: «насколько
    один из показателей Ср
    к)
    уменьшился относительно значения Ср,
    настолько другой показатель Ср
    к)
    увеличился относительно Ср»
    .

  5. Если показатель
    Срк(нижн)
    =1 или Срк(верх)=1,
    то это означает, что смещение процесса
    достигло такой величины, при которой
    дальнейшее смещение в направлении
    данной границы допуска приведет к
    появлению брака в процессе (рис.2.3 –
    дальнейшее смещение в сторону НГД
    приведет к появлению брака; 1.1 – на этом
    рисунке дальнейшее смещение в любом
    направлении приведет к появлению
    брака).

  6. Если один из
    показателей Срк_
    меньше 1,
    то это означает, что по данной границе
    допуска имеет место брак (рис. 2.4 – 2.7,
    1.5, 1.6). Если оба показателя Срк(нижн)
    и Срк(верх)
    меньше 1, то это означает, что брак есть
    как по нижней, так и по верхней границам
    допуска (рис. 1.5, 1.6, 2.5e).
    Причем брака больше по той из границ
    допуска, по которой показатель Срк
    имеет наименьшее значение.

  7. Если один из
    показателей Срк=0,
    то это означает, что

    1. брак по границе
      допуска, Срк
      которой равен 0, составляет 50% от общего
      числа событий.

    2. общий брак в
      процессе составляет 50% если Ср ≥0,5
      (рис. 2.5a
      1.5d),
      и больше 50%, но меньше 100%, если Ср < 0,5
      (рис.2.5e).

  8. Если Срк
    меньше 0, то это означает, что брак по
    данной границе допуска больше 50% (рис.
    2.6 и 2.7).

  9. Если Срк
    меньше (-1), то это означает, что брак по
    данной границе допуска составляет 100%
    (РИС. 2.7).

Таблица показателей возможности
процессов (рисунки 1 и 2)

Номер

процесса

Ср

Сркнижн.

Сркверх.

2.1 (1.3)

2

2

2

1.1

1

1

1

1.2

1,33

1,33

1,33

1.4

4

4

4

2.2a

2

1,33

2,67

2.2b

2

2,67

1,33

2.3a

2

1

4

2.3b

4

1

7

2.4

2

0,33

3,67

2.5a

2

0

4

2.5b

1,33

0

2,66

2.5c

1

0

2

2.5d

0,5

0

1

2.5c

0,33

0

0,66

2.6

2

-0,33

4,33

2.7

2

-1

5

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Понравилась статья? Поделить с друзьями:
  • Как найти экономическую целесообразность
  • Как найти выключенный блютуз наушники xiaomi
  • Ошибка в реквизитах налоговой как исправить
  • Как составить таблицу расходов за день
  • Телефонный справочник как найти человека