Что означает запись #fc0


Содержание

Общие сведения о FC

Функциональные блоки (FC) поставляются со стандартным пакетом STEP 7. Следующий список содержит номера блоков при их поставке. При желании их можно изменить.

Номер блока Название FC
1 DP_SEND
2 DP_RECV
3 DP_DIAG
4 DP_CTRL
5 AG_SEND
6 AG_RECV
50 AG_LSEND*
60 AG_LRECV*

Примечание:
Функции FC50 (AG_LSEND) и FC60 (AG_LRECV) могут использоваться с коммуникационным процессором PROFIBUS как альтернатива для FC5 и FC6. Разницы в интерфейсе или функционировании нет. При использовании сети Industrial Ethernet, функциональные блоки AG_LSEND и AG_LRECV могут пересылать большие блоки данных (от 240 байт до 8 килобайт). Если при помощи этих FC вы передаете большие объемы данных по Ind. Ethernet, вы также можете использовать их и для работы с PROFIBUS. Однако для PROFIBUS, при использовании этих же FC, вы сможете передавать блоки не более 240 байт.

Указание адреса CP

При вызове FC, в качестве параметра CPLADDR или LADDR вы должны передать начальный адрес коммуникационного процессора PROFIBUS CP. Начальный адрес коммуникационного процессора вы можете найти в диалоговом окне «Hardware Configuration» (конфигурация аппаратуры) (детальный режим – параметр «Address/Input» (адрес/вход)), появляющимся при установке коммуникационного процессора.

Запрос адреса CP

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

Указание области данных в CPU

При вызове FC, вы передаете начальный адрес передачи и размер передаваемой области CPU. Помните, что размер передаваемой области ограничен 240 байтами.

Возвращаемые параметры FC при инициализации CP

При перезапуске системы или перезапуске коммуникационного процессора (после активации переключателя на модуле), выходным параметрам FC присваиваются следующие значения:
• DONE = 0
• NDR = 0
• ERROR = 0
• STATUS = 8180H или 8181H

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

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

Причина Реакция / Код
Адрес CP указывает на несуществующий модуль CP или дискретный модуль. CPU остается в режиме STOP по причине системной ошибки.
Адрес CP указывает на модуль с аналоговыми I/O. Возможные коды ошибок в переменной STATUS:
8184H — Ошибка системы
80B0H — Модуль не распознает запись данных.
80C0H — Данные не могут быть прочитаны.
80C3H — Ресурсы недоступны (память).
80D2H — Неправильный локальный базовый адрес.

Функции режима DP для S7-300

Следующие функциональные блоки используются для режимов DP-мастер и DP-ВУ в S7–300

FC FC
может использоваться:
Назначение
DP-мастер DP-ВУ
DP_SEND X X передача данных
DP_RECV X X получение данных
DP_DIAG X диагностика, запускаемая с
DP-мастер
DP_CTRL X управляющие функции

Следующая диаграмма иллюстрирует использование функций DP_SEND и DP_RECV на DP-мастер и DP-ВУ.

Функциональный блок DP_SEND

Функция DP_SEND посылает данные в коммуникационный процессор (PROFIBUS CP). В зависимости от режима процессора, функция выполняет следующие действия:

  • В DP-мастер
    Блок передает данные из указанной области вывода в коммуникационный процессор для рассылки по распределенной системе I/O.
  • В DP-ВУ
    Блок передает данные из указанной области CPU в буфер PROFIBUS CP для посылки в DP-мастере (ведущий модуль).

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

Примечания call fc 1
CPLADDR:=
SEND :=
DONE :=
ERROR :=
STATUS := W#16#0120
P#db17.dbx0.0 byte 103
M 99.1
M 99.0
MW 104 //Вызов функции DP_SEND

Принцип работы блока

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

Гарантия передачи данных
Диаграмма показывает, что возвращаемые параметры DONE=1, ERROR=0 и STATUS=0000, о правильном функционировании связи между партнерами. В данном контексте это означает следующее: данные текущего вызова DP_SEND приняты PROFIBUS CP. Данные предыдущего вызова DP_SEND переданы по сети PROFIBUS.

  • В режиме DP-ВУ для надежной передачи:
    Бит 1 в слове DPSTATUS для функции DP_RECV должен быть равен «0».
    Для гарантирования надежного получения данных, DP-мастер должен по-
    лучать данные от DP-ВУ не реже чем раз в 200 мс. В противном случае
    через 200 мс FC подтвердит передачу данных выводом DONE=1,
    ERROR=0 и STATUS=0000, хотя на самом деле передача данных не была
    совершена (см. также Раздел 5.3.1).
  • В режиме DP-мастер для надежной передачи:
    Выбрать режим RUN при помощи бит 4 и 5 в слове DPSTATUS функции
    DP_RECV.

Описание формальных параметров
Следующая таблица описывает все формальные параметры функции DP_SEND:

Параметр Объявле-ние Тип Принимаемые
значения
Комментарии
CPLADDR INPUT WORD Начальный адрес модуля При конфигурировании CP при помощи ПО STEP, начальный адрес модуля задается в таблице параметров. Укажите этот адрес здесь.
SEND INPUT ANY Адрес и размер получаемой информации: Возможные области памяти:
— Образ процесса
– Меркерная память
– Блок данных
Длина может варьироваться для:
— DP-мастер: от 1 до 240
– DP-ВУ: от 1 до 86
DONE OUTPUT BOOL 0: —
1: новые данные
Этот параметр определяет, был ли последний вызов завершен без ошибок. Значение параметров DONE, ERROR и STATUS см. таблицу ниже.
ERROR OUTPUT BOOL 0: —
1: ошибка
Код ошибки
Значение параметров DONE, ERROR и
STATUS см. таблицу ниже.
STATUS OUTPUT WORD см. таблицу ниже. Код состояния
Значение параметров DONE, ERROR и
STATUS см. таблицу ниже.

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

Табл. 7–1 Возвращаемые значения функции DP_SEND
8180 H Запуск: Служба DP запущена, но работа с данными еще не возможна Обычное функционирование: Выполняется передача данных.
1 0000 H Новые данные получены без ошибок.
1 8183 H Конфигурация не загружена или еще не запущен сервер DP в PROFIBUS CP.
1 8184 H Ошибка системы.
1 8F22 H Неправильная длина области (чтение) (напр. DB слишком мал).
1 8F23 H Неправильная длина области (запись) (напр. DB слишком мал).
1 8F24 H Неправильная область чтения параметра.
1 8F25 H Неправильная область записи параметра.
1 8F28 H Ошибка выравнивания при чтении параметра.
1 8F29 H Ошибка выравнивания при записи параметра.
1 8F30 H Параметр в защищенном от записи первом активном блоке данных.
1 8F31 H Параметр в защищенном от записи втором активном блоке данных.
1 8F32 H Слишком большой номер DB.
1 8F33 H Неправильный номер DB.
1 8F3A H Область назначения не загружена (DB).
1 8F42 H Превышение времени чтения параметра из области I/O.
1 8F43 H Превышение времени записи параметра в область I/O.
1 8F44 H Адрес считываемого параметра блокирован в треке доступа.
1 8F45 H Адрес записываемого параметра блокирован в треке доступа.
1 8F7F H Внутренняя ошибка, напр. неправильная ссылка ANY.
1 8090 H Не существует модуля с заданным адресом.
1 8091 H Логический базовый адрес не выровнен по двойному слову.
1 80A1 H Невозможно писать в модуль.
1 80B0 H Модуль не распознает данные.
1 80B1 H Указанная длина записи не верна.
Режим мастера: Размер области, указанный в SEND, данных больше максимального значения для отправляемых данных в CP.
Режим ВУ:
Размер области данных, указанный в SEND, больше максимального значения.
1 80C0 H Данные не могут быть считаны.
1 80C1 H Указанная область данных в данный момент обрабатывается.
1 80C2 H Слишком много незавершенных задач.
1 80C3 H Ресурсы (память) недоступны.
1 80C4 H Коммуникационная ошибка (иногда встречается, обычно необходимо просто повторить вызов из пользовательской программы).
1 80D2 H Неправильный логический адрес.

Функциональный блок DP_RECV

Функциональный блок DP_RECV используется для получения данных по се ти PROFIBUS. В зависимости от режима коммуникационного процессора блок DP_RECV используется:

  • В DP-мастере
    DP_RECV получает информацию с распределенных I/O и записывает ее в определенную область памяти DP или считывает байт состояния.
  • В DP-ВУ
    DP_RECV получает данные DP, передаваемые ведущим модулем из буфера коммуникационного процессора и помещает их в DP область CPU.

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

Дополнительная задача: ввод байта состояния

Функция DP_RECV используется для следующих операций:

  • Обновление байта состояния DP — DPSTATUS. При этом функция DP_RECV выполняет операции для DP_DIAG (функции диагностики). Если нет получаемой информации, DP_RECV должен быть вызван с длиной области 255 для обновления байта DPSTATUS (эта функция работает только для ведущих модулей; для ВУ байт состояния не может быть прочитан без получения данных).
  • Разрешение списка станций (см. DP_DIAG, Раздел 7.2.3).

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

Гарантии получения данных
Из диаграммы видно, что значения выходных переменных NDR=1, ERROR=0 и STATUS=0000 соответствуют правильному получению данных. Условие: мастер и ВУ находятся в фазе передачи данных. Примите во внимание следующее:

  • Для ведущего модуля:
    Если ВУ не находится в фазе передачи данных, область получения данных обнуляется.
    Если ведущий модуль не находится в состоянии RUN или CLEAR (биты 4 и 5 в DPSTATUS), все принимаемые данные обнуляются.
    Если со времени последнего вызова DP_RECV данные были посланы ВУ несколько раз, то при следующем вызове DP_RECV будет считан только последний пакет. Такое переполнение получаемых данных будет отображено битом 6 в DPSTATUS.
  • Для ВУ:
    Если ВУ не находится в фазе передачи (бит 1 в DPSTATUS) или ведущий модуль находится в состоянии CLEAR (бит 2 в DPSTATUS), все получаемые данные сбрасываются в 0.
    Если со времени последнего вызова DP_RECV данные были получены от ведущего модуля несколько раз, то при следующем вызове DP_RECV будет считан только последний пакет. Такое переполнение получаемых данных будет отображено битом 4 в DPSTATUS.

Описание формальных параметров

Следующая таблица содержит описание всех формальных параметров функции DP_RECV:

CPLADDR INPUT WORD Начальный адрес модуля. При конфигурировании CP при помощи ПО STEP, начальный адрес модуля задается в таблице параметров. Укажите этот адрес здесь. RECV INPUT ANY Адрес и размер получаемой информации: Возможные области памяти:
— Образ процесса
– Маркерная память
– Блок данных
Длина может варьироваться для:
— DP-мастер: от 1 до 240
— DP-ВУ: от 1 до 86
— DP-мастер; получение байта состояния: 255 NDR OUTPUT BOOL 0: —
1: получены новые данные Параметр выставляется, только если получены новые данные. Значение параметров NDR, ERROR и STATUS см. в соответствующей таблице. ERROR OUTPUT BOOL 0: —
1: ошибка Код ошибки Значение параметров NDR, ERROR и STATUS см. в соответствующей таблице. STATUS OUTPUT WORD см. след. табл. Значение параметров NDR, ERROR и STATUS см. в соответствующей таблице. DPSTATUS OUTPUT BYTE Для программирования.
См. ниже DPSTATUS Код состояния DP.

Возвращаемые значения

Таблица, приведенная ниже, содержит расшифровку информации возвращаемой в параметрах NDR, ERROR и STATUS, которая должна обрабатываться пользователем.

Табл. 7–2 Возвращаемые значения функции DP_RECV
NDR ERROR STATUS Значение
8180 H Запуск:
Служба DP запущена, но работа с данными еще не возможна. Обычное функционирование: Выполняется получение данных.
1 0000 H Новые данные получены без ошибок.
1 8183 H Конфигурация не загружена или еще не запущен сервер DP в PROFIBUS CP.
1 8184 H Ошибка системы.
1 8F22 H Неправильная длина области (чтение) (напр. DB слишком мал).
1 8F23 H Неправильная длина области (запись) (напр. DB слишком мал).
1 8F24 H Неправильная область чтения параметра.
1 8F25 H Неправильная область записи параметра.
1 8F28 H Ошибка выравнивания при чтении параметра.
1 8F29 H Ошибка выравнивания при записи параметра.
1 8F30 H Параметр находится в защищенном от записи первом активном блоке данных.
1 8F31 Н Параметр находится в защищенном от записи втором активном блоке данных.
1 8F32 H Слишком большой номер DB.
1 8F33 H Неправильный номер DB.
1 8F3A H Область назначения не загружена (DB).
1 8F42 H Превышение времени чтения параметра из области I/O.
1 8F43H Превышение времени записи параметра в область I/O.
1 8F44 H Адрес считываемого параметра блокирован в треке доступа.
1 8F45 H Адрес записываемого параметра блокирован в треке доступа.
1 8F7F H Внутренняя ошибка, напр. неправильная ссылка ANY.
1 8090 H Не существует модуля с заданным адресом.
1 8091 H Логический базовый адрес не выровнен по двойному слову.
1 80A0 H Невозможно писать в модуль.
1 80B0 H Модуль не распознает данные.
1 80B1 H Указанная длина записи не верна. Режим ВУ: Размер области приема больше максимального значения, указанного в информации о продукте.
Режим мастера: Размер области приема больше размера принимаемой информации, настроенного в данном CP.
1 80C0 H Данные не могут быть считаны.
1 80C1 H Указанная область данных в данный момент обрабатывается.
1 80C2 H Слишком много незавершенных задач.
1 80C3 H Ресурсы (память) недоступны.
1 80C4 H Коммуникационная ошибка (иногда встречается, обычно необходимо просто повторить вызов из пользовательской программы).
1 80D2 H Неправильный логический адрес.

Значения DPSTATUS

Кодировка байта состояния DPSTATUS отличается для мастера и ВУ:
• DP-мастер:

Табл. 7–3 Значения бит DPSTATUS для DP-мастера
Бит Значение
не используется
1: переполнение полученных данных ВУ посылает данные быстрее, чем они могут быть обработаны мастером в вызове блока из CPU. Модуль всегда считывает последние данные из всех, посланных ВУ со времени последнего вызова функции.
Состояние DP-мастера:
00 RUN
01 CLEAR
10 STOP
11 OFFLINE
1: Активная циклическая синхронизация.
0: Новых диагностических данных нет.
1: По крайней мере, одна станция содержит новую диагностическую информацию.
0: Все ВУ находятся в фазе передачи данных.
1: Просмотр списка станций.
Режим DP
0: Режим мастера (ведущего модуля) Остальные биты имеют описанное выше значение только, когда
этот бит сброшен.
Табл. 7–4 Значения DPSTATUS для DP-ВУ
Бит Значение
7-5 не используется
4 1: переполнение полученных данных
Мастер посылает входные данные быстрее, чем они могут быть обработаны модулем в вызове блока из CPU. Модуль всегда считывает последние данные из всех, посланных мастером со времени последнего вызова функции.
3 1: Модуль не получил специального сигнала от мастера за определенный промежуток времени(watchdog time). Если этот бит установлен, то бит 1 также установлен.
2 1: DP-мастер 1 находится в состоянии CLEAR. ВУ получает 0 для всей входной информации. Это не отражается на передаваемых данных.
1 1: Конфигурирование/назначение параметров не завершено.
Режим DP
1: ВУ DP.
Остальные биты имеют указанное выше значение только, когда этот бит установлен.

Функциональный блок DP_DIAG

Назначение блока

Функциональный блок DP_DIAG используется для получения диагностической информации. Возможны следующие операции:

  • Запрос списка DP станций
  • Запрос диагностического списка DP
  • Запрос диагностики одного DP
  • Ациклическое считывание I/O DP-ВУ
  • Считывание состояния DP.


Диагностическая информация также может быть запрошена для конкретного ВУ по указанному адресу станции.
Для передачи диагностической информации в CPU вы должны зарезервировать область памяти в CPU и указать ее адрес при вызове функции. Область может располагаться в маркерной памяти или блоке данных. При вызове функции помимо начального адреса необходимо указывать и ее размер.

Отсутствие новой входной информации
В процессе выполнения блока информация на его входах не должна меняться. Исключение: Запрос списка станций или диагностического списка.

STL Коментарий
call fc 3 //Вызов функции DP_DIAG
CPLADDR:= W#16#0120
DTYPE := B#16#00
STATION:= B#16#03
DIAG := P#db18.dbx0.0 byte 16
NDR := M 70.0
ERROR := M 70.1
STATUS := MW 72
DIAGLNG:= MB 20

Работа с интерфейсом вызова (последовательность действий)

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

Обозначения:
1) Передача параметров NDR, ERROR, STATUS

После вызова функции DP_DIAG, вы получите информацию, описывающую одну из следующих ситуаций:

  • NDR=0, ERROR=0, STATUS=8181
    Пока выходные значения равны NDR=0, ERROR=0 и STATUS=8181, входные параметры блока изменять нельзя.
  • NDR=1
    Значение NDR=1 выставляется, когда диагностическая информация получена. Дополнительные данные содержатся в переменной STATUS.
  • NDR=0, ERROR=1
    Произошла ошибка и диагностическая информация не верна. Переменная STATUS содержит код ошибки.

Описание формальных параметров

Следующая таблица содержит описание всех формальных параметров функции DP_DIAG:

Параметр Объявление Тип Принимаемые
значения
Комментарии
CPLADDR INPUT WORD Начальный адрес модуля При конфигурировании CP при помощи ПО STEP, начальный адрес модуля задается в таблице параметров. Укажите этот адрес здесь.
DTYPE INPUT BYTE 0: список станций
1: диагностический список
2: текущ. диагностика
3: старая диагностика
7: чтение входной информации (ацикл.)
8: чтение выходной информации (ацикл.)
Тип диагностики
STATION INPUT BYTE Адрес станции DP-ВУ
DIAG INPUT ANY Размер может изменяться от 1 до 240 Указывает адрес и длину области памяти для получения данных. Может указывать на
– образ процесса
– маркерную память или
– блок данных
Примечание: Если диагностическая информация не помещается в указанной области, будет получены только первые n байт. Размер полной диагностической информации содержится в DIAGLNG.
NDR OUTPUT BOOL 0: —
1: новые данные
Параметр показывает, была ли получена новая информация. Значение параметров NDR, ERROR и STATUS см. в соответствующей таблице.
ERROR OUTPUT BOOL 0: —
1: ошибка
Код ошибки Значение параметров NDR, ERROR и STATUS см. в соответствующей таблице.
STATUS OUTPUT WORD см. список Код ошибки Значение параметров NDR, ERROR и STATUS см. в соответствующей таблице.
DIAGLNG OUTPUT BYTE см. список Содержит длину (в байтах) данных, доступных из PROFIBUS CP, вне зависимости от размера буфера, указанного параметре DIAG.

Типы операций

Следующий обзор содержит возможные комбинации входных параметров DTYPE, STATION и DIAGLNG и их назначение.

Табл. 7–5 Типы операций функции DP_DIAG
DTYPE Соответствует операции Параметр STATION DIAGLNG Код подтверждения
содержится в переменной STATUS;
описан в Табл. 7–6)
Считать список станций DP >=16 Начальный адрес модуля При конфигурировании CP при помощи STEP 7, задается его начальный адрес. Укажите этот адрес здесь.
Считать диагностический список DP >=16 Диагностический список сообщает программе CPU о DP-ВУ с новой диагностической информацией. (см. Разделы 4.2.3, 4.2.4)
Считать диагн. информацию с одного DP от 0 до
126
>=6 Получение текущей диагностической
информации с DP-ВУ (см. Раздел 4.2.5).
Считать старую диагн. информацию с одного DP от 0 до
126
>=6 Получение более старой диагностической информации с DP-ВУ (см. Раздел 4.2.5). Эта информация хранится в PROFIBUS CP и считывается по принципу: последним вошел — первым вышел из кольцевого буфера. Структура буфера описана ниже. Если диагностическая информация меняется очень быстро, эта функция позволяет мастеру получить и обработать все сообщения ВУ.
Считать операционный режим, запрошенный операцией DPCTRL (CYTPE=4). >=0 С помощью этой операции вы можете получить состояние DP. Возможны следующие состояния
– RUN
– CLEAR
– STOP
– OFFLINE
См. также Раздел 3.10
Считать состояние DP для CPU в режиме STOP >=0 Эта операция позволяет получить состояние, в которое перейдет PROFIBUS CP, если CPU перевести в режим STOP:
— RUN
– CLEAR
– STOP
– OFFLINE
По умолчанию PROFIBUS CP переходит в состояние CLEAR, если CPU переводится в STOP. см. также Раздел 3.10
Считать состояние DP для CP в режиме STOP >=0 Эта операция позволяет получить состояние, в которое перейдет PROFIBUS CP, если CP перевести в режим STOP:
— RUN
– CLEAR
– STOP
– OFFLINE
По умолчанию PROFIBUS CP переходит в состояние OFFLINE, если CPU переводится в STOP. см. также Раздел 3.10
Считать входную информацию 0. 126 >=1 С помощью этой операции DP-мастер (класс 2) считывает входные данные ВУ. Эта функция также известна как распределенный ввод.
0. 126 >=1 С помощью этой операции DP-мастер (класс 2) считывает выходные данные ВУ. Эта функция также известна как распределенный вывод.
0. 126 >=0 Эта операция считывает текущее состояние ВУ. Возможны следующие варианты:
• Циклический обмен данными с мастером.
• Циклическое чтение входных данных.
• Циклическое чтение выходных данных.
• Отсутствие циклической обработки.

Кольцевой буфер диагностической информации

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

Когда текущая диагностическая информация считана, позиция чтения перемещается на предыдущую запись.

Возвращаемые значения
Таблица, приведенная ниже, содержит комбинации возвращаемых параметров NDR, ERROR и STATUS, которые должны обрабатываться пользовательской программой.

Табл. 7–6 Возвращаемые значения функции DP_DIAG
NDR ERROR STATUS Возможно вместе с DTYPE Значение
8181 H 2-10 Операция активна.
8182 H Операция нецелесообразна.
8182 H 1 Отсутствует новая диагностическая информация.
1 0000 H 1-10 Операция завершена без ошибок.
1 8222 H 7,8 Операция завершена без ошибок. Длина считанной из DP информации не соответствует ожидаемой мастером на основании списка ВУ в базе данных CP.
1 8227 H 7,8 Операция завершена без ошибок. Сообщение: информация отсутствует.
1 8131 H 4,5,6 Операция завершена без ошибок. Сообщение: DP уже находится в состоянии «RUN»
1 8132 H 4,5,6 Операция завершена без ошибок. Сообщение: DP уже находится в состоянии «CLEAR»
1 8133 H 4,5,6 Операция завершена без ошибок. Сообщение: DP уже находится в состоянии «STOP»
1 8134 H 4,5,6 Операция завершена без ошибок. Сообщение: DP уже находится в состоянии «OFFLINE»
1 823A H 2,3,7,8 Операция завершена без ошибок. Сообщение: Прочитано 241 или 242 байта данных. 240 байт доступно.
1 8241 H 2,3,10 Операция завершена без ошибок. Сообщение: Указанное ВУ не отконфигурировано.
1 8243 H 2,3,10 Операция завершена без ошибок. Сообщение: список ВУ в базе CP содержит только пустые модули.
1 8245 H 2,3,10 Операция завершена без ошибок. Сообщение: ВУ находится в состоянии «циклическое чтение входных данных»
1 8246 H 2,3,10 Операция завершена без ошибок. Сообщение: ВУ находится в состоянии «циклическое чтение выходных данных»
1 8248 H 2,3,10 Операция завершена без ошибок. Сообщение: список модулей DP-ВУ в базе CP содержит I/О модули.
1 8249 H 2,3,10 Операция завершена без ошибок.Сообщение: ВУ пассивно из-за изменения режима DP (напр. переключатель режима CP установлен в STOP)
1 824A H 2,3,10 Операция завершена без ошибок. Сообщение: ВУ пассивно из-за выполнения в CPU функции DP_CTRL.
1 8090 H 0-10 Неправильный логический базовый адрес модуля
1 80B0 H 0-10 Модуль не распознает данные или выполняет переход RUN STOP.
1 80B1 H 0-10 Указанная длина записи данных не верна.
1 80C0 H 0-10 Невозможно считать данные.
1 80C1 H 0-10 Указанная запись данных уже обрабатывается.
1 80C2 H 0-10 Слишком много незавершенных операций.
1 80C3 H Ресурсы (память) недоступны.
1 80C4 H 0-10 Коммуникационная ошибка (иногда встречается,
обычно необходимо просто повторить вызов из поль-
зовательской программы).
1 80D2 H 0-10 Неправильный логический базовый адрес.
1 8183 H 0-10 DP-мастер не отконфигурирован.
1 8184 H Ошибка системы.
1 8311 H 2-10 Неправильное значение параметра DTYPE.
1 8313 H 2,3,7,8,10 Неправильное значение параметра STATION.
1 8313 H 2-10 ВУ предоставляет только неправильные данные.
1 8326 H 7-8 ВУ содержит более 242 байт информации. PROFIBUS CP поддерживает не более 242 байт.
1 8335 H 7-8 PROFIBUS CP находится в состоянии PROFIBUS: станция вне кольца.
1 8341 H 2,3,10 Указанное ВУ не отконфигурировано.
1 8342 H 7,8 ВУ с адресом, указанным в STATION не доступно.
1 8F22 H 0-10 Неправильная длина области (чтение) (напр. DB слишком мал).
1 8F23 H 0-10 Неправильная длина области (запись) (напр. DB слишком мал).
1 8F24 H 0-10 Неправильная область чтения параметра.
1 8F25 H 0-10 Неправильная область записи параметра.
1 8F28 H 0-10 Ошибка выравнивания при чтении параметра.
1 8F29 H 0-10 Ошибка выравнивания при записи параметра.
1 8F30 H 0-10 Параметр принадлежит защищенному от записи первому активному блоку данных.
1 8F31 H 0-10 Параметр принадлежит защищенному от записи второму активному блоку данных.
1 8F32 H 0-10 Слишком большой номер DB.
1 8F33 H 0-10 Неправильный номер DB.
1 8F3A H 0-10 Область не загружена (DB).
1 8F42 H 0-10 Превышение времени чтения параметра из области I/O.
1 8F43 H 0-10 Превышение времени записи параметра в область I/O.
1 8F44 H 0-10 Адрес считываемого параметра блокирован в треке доступа.
1 8F45 H 0-10 Адрес записываемого параметра блокирован в треке доступа.
1 8F7F H 0-10 Внутренняя ошибка, напр. неправильная ссылка ANY.

Функциональный блок DP_CTRL

Функциональный блок DP_CTRL передает управление PROFIBUS CP. Можно использовать поле операции (параметр CONTROL) для более конкретного указания операции. Существуют следующие типы операции:

  • Глобальное управление циклическое/ациклическое
  • Удаление старой диагностической информации
  • Установка текущего режима DP
  • Установка режима DP для состояния STOP у PLC или CP
  • Циклическое чтение входной/выходной информации
  • Установка операционного режима DP-ВУ.

Отсутствие новой информации
В процессе выполнения блока информация на его входах не должна меняться.

STL Коментарий
call fc 4 //Вызов функции DP_CTRL
CPLADDR:= W#16#0120
CONTROL:= P#db14.dbx0.0 byte 30 // Буфер для управляющей операции
// занимает первые 30 байт в DB 14.
DONE := M 70.0
ERROR := M 70.1
STATUS := MW 72

Работа с интерфейсом вызова (последовательность действий)

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

После вызова функции DP_CTRL, вы получите информацию, описывающую одну из следующих ситуаций:

  • DONE=0, ERROR=0, STATUS=8181
    Пока выходные значения равны DONE=0, ERROR=0 и STATUS=8181, входные параметры блока изменять нельзя.
  • DONE=1
    Значение DONE=1 выставляется, когда операция завершена. Дополнительные данные содержатся в переменной STATUS.
  • DONE=0, ERROR=1
    Произошла ошибка. Переменная STATUS содержит код ошибки.

Следующая таблица содержит описание всех формальных параметров функции DP_CTRL.

Параметр Объявление Тип Принимаемые значения Комментарии
CPLADDR INPUT WORD Начальный адрес модуля При конфигурировании CP при помощи ПО STEP, начальный адрес модуля задается в таблице параметров. Укажите этот адрес здесь.
CONTROL INPUT ANY Размер может варьироваться от 1 до 240 Указывает адрес и длину области памяти для управляющей операции. Может указывать на
– образ процесса
– маркерную память или
– блок данных
Размер должен быть не меньше количества параметров.
DONE OUTPUT BOOL 0: —
1: Операция завершена без ошибок.
Отражает безошибочное завершение операции.
Значение параметров DONE, ERROR и STATUS см. в соответствующей таблице.
ERROR OUTPUT BOOL 0: —
1: ошибка
Код ошибки Значение параметров DONE, ERROR и STATUS см. в соответствующей таблице.
STATUS OUTPUT WORD см. Табл. Возвращаемые значения Код состояния Значение параметров DONE, ERROR и STATUS см. в соответствующей таблице.

Управляющее поле имеет следующую структуру:

Пример поля операции
Поле операции, представленное ниже, синхронизирует глобальное циклическое управление и посылает сигнал «unfreeze» (разморозка) без опции автоматической очистки группам 4 и 5.

Длина указателя ANY Должна быть не менее 4 байт (в примере было выбрано значение 30).

Описания возможных операций сгруппированы в зависимости от значения CTYPE и помещены в таблицу ниже.

Отмена циклического чтения информации. Начать передачу данных DP-мастером класса 1.

Табл. 7–7 Типы операций функции DP_CTRL
CTYPE Соответствует операции Параметры в поле операции Название Кол-во Значение
Запустить
глобальное управление
1ый байт:
командный режим
2ой байт: выбор группы
(см. Раздел после табл.)
2 Глобальная управляющая операция посылается DP-ВУ, выбранным 2ым байтом (см.Раздел 3.2). Командный режим указывает на одну из следующих глобальных операций:
— SYNC (синхронизация)
– UNSYNC (рассинхронизация)
– FREEZE (блокирование)
– UNFREEZE (разблокирование)
– CLEAR (очистка)
Можно указать более одной операции в командном режиме.
1 Запустить циклическое глобальное управление 1ый байт: командный режим
2ой байт: выбор группы
3ий байт: автоочистка (см. след.Раздел)
3 Глобальная циклическая управляющая операция посылается DP-ВУ, выбранным 2ым байтом (см. Раздел 3.2). Параметр «автоочистка» обрабатывается совместно с глобальной операцией SYNC. Если хотя бы одно из ВУ в выбранной группе не находится в фазе передачи данных и автоочистка=1, активируется операция CLEAR и выходные данные DP-ВУ сбрасываются в «0». Следующие глобальные операции могут быть активированы:
— SYNC
– FREEZE
— CLEAR (CLEAR бит = 1)
или отменены:
— UNSYNC
– UNFREEZE
— UNCLEAR (CLEAR бит = 0)
Можно указать более одной операции в командном режиме. Активная глобальная циклическая операция может быть прервана только другой глобальной операцией (циклической или нет). Для завершения операции, указанной в командном режиме, она должна быть отменена. Например, операция SYNC отменяется операцией UNSYNC.
3 Удалить старую диагностическую информацию 1ый адрес ВУ 0 — 126
127 = все ВУ
1 Старая диагностическая информация PROFIBUS CP удаляется для одного или всех ВУ.
4 Установить текущий режим DP 1.RUN=00H
1.CLEAR=01H
1.STOP=02H
1.OFFLINE=03H
1. RUN с autoclear=04H
1.RUN без autoclear=05H
1 Этой операцией можно установить один из следующих режимов DP:
— RUN
— CLEAR
— STOP
— OFFLINE
(см. также Раздел 3.10) Параметр autoclear означает, что DP-мастер первого класса автоматически переходит в режим CLEAR когда хотя бы одно из ВУ, с которым происходит обмен информацией, не находится в фазе передачи данных. RUN без autoclear отменяет автоочистку.
5 Установить режим DP для состояния CPU stop 1.RUN =00H
1.CLEAR =01H
1.STOP =02H
1.OFFLINE=03H
1 Этой операцией можно установить режим DP, в который переходит PROFIBUS CP, когда CPU переходит в stop.
— RUN
— CLEAR
— STOP
— OFFLINE
По умолчанию PROFIBUS CP переходит в режим CLEAR при остановке CPU. Этот режим сохраняется, когда CP переходит RUN STOP RUN. (см. также Р. 3.10)
6 Установить режим DP для состояния CP stop 1.STOP =02H
1.OFFLINE =03H
1 Этой операцией можно установить режим DP, в который переходит PROFIBUS CP, когда CP переходит в stop.
— STOP
— OFFLINE
По умолчанию PROFIBUS CP переходит в режим OFFLINE при остановке CP. Этот режим сохраняется, когда CP переходит RUN STOP RUN. (см. также Р 3.10)
7 Циклическое чтение входной информации 1ый байт: адрес ВУ
0 — 125
1 Эта операция активирует циклическое чтение входных данных DP-ВУ в коммуникационный процессор, работающий как DP-мастер (класс2). Обычно, DP-ВУ назначен другому DP-мастеру (класс 1). Данные сохраняются в конфигурированной области DP-ВУ и могут быть получены пользователем с помощью функции DP_RECV. Эта функция также известна как распределенный ввод.
8 Циклическое чтение выходной информации 1ый байт: адрес ВУ
0 — 125
1 Эта операция активирует циклическое чтение выходных данных DP-ВУ в коммуникационный процессор, работающий как DP-мастер (класс 2). Обычно, DP-ВУ назначено другому DP-мастеру (класс 1). Данные сохраняются в конфигурированной области DP-ВУ и могут быть получены пользователем с помощью функции DP_RECV. Эта функция также известна как распределенный ввод.
9 Отмена циклического чтения информации. 1ый байт: адрес ВУ
0 — 125
1 Эта операция прерывает циклическое чтение входных или выходных данных DP-ВУ или передачу данных (DP-мастер класс 1). В таком случае DP-ВУ больше не обрабатывается PROFIBUS CP в качестве DP-мастер класс 2. Это переводит DP-ВУ в пассивное состояние.
10 1ый байт: адрес ВУ
0 — 125
1 Операция начинает передачу данных (DP-мастер класс 1). Предыдущая операция (пассивное состояние или циклическое чтение) завершается. Коммуникационный процессор, работающий как DP-мастер (класс 1) назначает параметры ВУ и начинает передачу данных Эта операция принадлежит режиму DP-мастер класс 1.

Структура переменной «командный режим»

Переменная «командный режим» позволяет вам указать режим ввода и вывода данных для циклических и ациклических глобальных операций.
Значение:
1 = активный
0 = пассивный

Структура переменной «выбор группы»

Переменная «выбор группы» содержит группу адресуемую операцией, указанной в командном режиме. Она расположена во втором байте поля операции. Каждый бит определяет группу DP-ВУ.
Значение:
1 = назначена
0 = не назначена

Номер бита:
Группа:

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

Табл. 7–8 Возвращаемые значения функции DP_CTRL
DONE ERROR STATUS Возможные
значения
CTYPE
Значение
8181 H 0-10 Операция активна
1 0000 H 0-10 Операция завершена без ошибок
1 8214 H 1 Операция завершена без ошибок.
Сообщение: циклическая глобальная операция послана как ациклическая
1 8215 H 0,1 Операция завершена без ошибок.
Все указанные в команде ВУ пассивны.
1 8219 H 0,1 Операция завершена без ошибок.
Была сделана попытка послать уже выполняющуюся глобальную циклическую операцию. Глобальное управление осталось неизменным.
1 8228 H 0,1 Операция завершена без ошибок.
Сообщение: адресуемые DP-ВУ не содержат входных модулей.
1 8229 H 0,1 Операция завершена без ошибок.
Сообщение: адресуемые DP-ВУ не содержат выходных модулей.
1 8231 H 4,5,6 Операция завершена без ошибок.
Сообщение: DP уже находится в режиме «RUN»
1 8232 H 4,5,6 Операция завершена без ошибок.
Сообщение: DP уже находится в режиме «CLEAR»
1 8233 H 4,5,6 Операция завершена без ошибок.
Сообщение: DP уже находится в режиме «STOP»
1 8234 H 4,5,6 Операция завершена без ошибок.
Сообщение: DP уже находится в режиме «OFFLINE»
1 8235 H 4 Операция завершена без ошибок.
Сообщение: DP уже находится в состоянии «RUN» с автоматической очисткой (autoclear)
1 8236 H 4 Операция завершена без ошибок.
Сообщение: DP уже находится в состоянии «RUN» с автоматической очисткой (autoclear)
1 8241 H 7-10 Операция завершена без ошибок.
Сообщение: указанное DP-ВУ не отконфигурировано.
1 8243 H 7-10 Операция завершена без ошибок.
Сообщение: DP-ВУ уже пассивно, так как список ВУ в базе CP содержит только пустые модули.
1 8245 H 7-10 Операция завершена без ошибок.
Сообщение: DP-ВУ уже находится в режиме циклического чтения входных данных
1 8246 H 7-10 Операция завершена без ошибок.
Сообщение: DP-ВУ уже находится в режиме циклического чтения выходных данных
1 8248 H 7-10 Операция завершена без ошибок.
Сообщение: список DP-ВУ в базе CP содержит входные, выходные или I/O модули.
1 8249 H 7-10 Операция завершена без ошибок.
Сообщение: ВУ пассивно из-за изменения режима DP.
1 824A H 7-10 Операция завершена без ошибок.
Сообщение: DP-ВУ уже пассивно вследствие выполнения DP_CTRL
1 8090 H 0-10 Не существует модуля с заданным адресом.
1 8091 H 0-10 Логический базовый адрес не выровнен по двойному
слову.
1 80B0 H 0-10 Модуль не распознает данные.
1 80B1 H 0-10 Указанная длина записи не верна.
1 80C0 H 0-10 Данные не могут быть считаны.
1 80C1 H 0-10 Указанная область данных в данный момент обрабатывается.
1 80C2 H 0-10 Слишком много незавершенных задач.
1 80C3 H Ресурсы (память) недоступны.
1 8311 H 0-10 Неправильное значение параметра CTYPE.
1 8312 H 0-10 Размер области памяти параметра CONTROL слишком мал.
1 8313 H 3,7,8,10 Адрес ВУ находится за пределами допустимых значений.
1 8315 H 0,1 Все DP-ВУ указанной группы пассивны (происходит всегда, если группа пуста).
1 8317 H 8 Размер посылаемых данных больше настроенной области приема на DP-ВУ. Активирование ВУ режима чтения выходной информации не возможно.
1 8318 H 0,1,4,5,6 Первый байт поля операции содержит недопустимое значение. Для глобального управления CLEAR использован с SYNC или глобальное управление с CLEAR назначено группе 0.
1 831А H 0,1 По крайней мере, одно DP-ВУ не поддерживает FREEZE.
1 831B H 0,1 По крайней мере, одно DP-ВУ не поддерживает SYNC.
1 8333 H 0,1 Операция не разрешена в режиме STOP.
1 8334 H 0,1 Операция не разрешена в режиме OFFLINE.
1 8335 H 0,1 PROFIBUS CP находится в состоянии PROFIBUS: станция вне кольца.
1 8339 H 0,1 Хотя бы одно DP-ВУ в выбранной группе не находится в фазе передачи данных.
1 833С H 1 Циклическое глобальное управление не должно использоваться в режиме «PLC CP free running» (свободное выполнение). Эта ошибка не может случиться в CP 3425 поскольку такой режим не поддерживается данным CP (для передачи данных всегда используются записи PBUS).
1 8341 H 7-10 Указанное DP-ВУ не отконфигурировано.
1 8183 H 0-10 DP-мастер не отконфигурирован.
1 8184 H Ошибка системы.
1 8F22 H 0-10 Неправильная длина области (чтение) (напр. DB слишком мал).
1 8F23 H 0-10 Неправильная длина области (запись) (напр. DB слишком мал).
1 8F24 H 0-10 Неправильная область чтения параметра.
1 8F25 H 0-10 Неправильная область записи параметра.
1 8F28 H 0-10 Ошибка выравнивания при чтении параметра.
1 8F29 H 0-10 Ошибка выравнивания при записи параметра.
1 8F30 H 0-10 Параметр лежит в первом текущем блоке, защищенном от записи.
1 8F31 H 0-10 Параметр лежит во втором текущем блоке, защищенном от записи.
1 8F32 H 0-10 Слишком большой номер DB.
1 8F33 H 0-10 Неправильный номер DB.
1 8F3A H 0-10 Область назначения не загружена (DB).
1 8F42 H 0-10 Превышение времени чтения параметра из области I/O.
1 8F43 H 0-10 Превышение времени ожидания при записи в область I/O.
1 8F44 H 0-10 ХЗ*
1 8F45 H 0-10 ХЗ*
1 8F7F H 0-10 Внутренняя ошибка, напр. неправильная ссылка ANY.
1 80C4 H 0-10 Коммуникационная ошибка (иногда встречается, обычно необходимо просто повторить вызов из пользовательской программы).
1 80C4 H 0-10 Неправильный логический базовый адрес.

Функции FDL-соединения (интерфейс SEND/RECEIVE)

Следующие функциональные блоки используются для интерфейса SEND/RECEIVE при передаче данных по установленному FDL соединению:

AG_SEND / AG_LSEND Для передачи данных AG_RECV / AG_LRECV Для получения данных

Следующая схема иллюстрирует способы использования блоков AG_SEND /AG_LSEND и
AG_RECV /AG_LRECV для двунаправленной передачи данных по одному FDL соединению. Некоторые типы соединений включают заголовок операции в пользовательскую область данных.

Приложения без заголовка операции
Для определенного FDL соединения адрес и заголовок операции указаны в настройках соединения. Пользовательская программа лишь копирует данные в область FDL при их посылке с помощью
AG_SEND /AG_LSEND или считывает данные с помощью AG_RECV / AG_LRECV. При этом может быть передано до 240 байт пользовательской информации. Это применимо к PROFIBUS для AG_SEND и AG_LSEND функций.

Приложения с заголовком операции
Следующие типы соединений требуют заголовок операции в FDL (пользовательской) области:

  • Неопределенное FDL-соединение со свободным доступом к уровню 2
  • FDL соединение с всеобщей рассылкой (broadcast)
  • FDL соединение с множественной рассылкой

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

Размер блока данных не может превышать 240 байт. При этом можно использовать лишь 236 байт для собственно пользовательских данных. 4 байта резервируются для операционного заголовка.

Функциональный блок AG_SEND / AG_LSEND

AG_SEND / AG_LSEND функция пересылает данные в PROFIBUS CP для передачи по FDL соединению.
Данные могут находиться в области образа процесса, меркерной памяти или блоке данных. Успешное завершение работы функции индицируется когда весь FDL блок данных может быть послан по PROFIBUS.
Примечание: Информация, приведенная ниже, относится как к AG_SEND так и к AG_LSEND.

STL Коментарий
call fc 5 //Вызов функции AG_SEND
ACT := M 10.0
> MB 10
LADDR := W#16#0100 //=LADDR 256dec. в настройках оборудования
SEND := P#db99.dbx10.0 byte 240
LEN := MW 12
DONE := M 10.0
ERROR := M 10.7
STATUS := MW 14


Вызовы с операционным заголовком

Таблица ниже содержит типы соединений и операции для которых должны быть определены параметры в операционном заголовке. Операционный заголовок расположен в начале FDL области данных. Он за-
нимает 4 байта и должен быть прибавлен к длине, указываемой в параметре LEN. Максимальная длина пользовательских данных для операций с заголовком, таким образом, уменьшена до 236 байт.

Табл. 7–9 Добавление операционного заголовка в пользовательской области данных
Параметр Свободный уровень 2 Всеобщая рассылка Множественная рассылка
адрес PB Адрес станции-приемника Значения: 0..126 в зависимости от станции / 127
для всеобщей /множественной рассылки
Не важно, но должно быть зарезервировано. Не важно, но должно быть зарезервировано
LSAP LSAP станции-приемника Значения: 0..62 в зависимости от станции / 63
для множественной рассылки
Не важно, но должно быть зарезервировано. Не важно, но должно быть зарезервировано.
Службы SDA (Посылка с подтверждением): Значение: 00 H
SDN (Посылка без подтверждения): Значение: 01 H
Не важно, но должно быть зарезервировано. Не важно, но должно быть зарезервировано.

Диаграмма ниже иллюстрирует обычную последовательность при передаче данных, активированной использованием в программе функции AG_SEND. Каждая операция AG_SEND в пользовательской программе подтверждается PROFIBUS CP заданием выходных параметров DONE, ERROR и STATUS.

Для обновления возвращаемого слова состояния без использования операции, параметр ACT должен быть сброшен в 0.
Следующая таблица содержит описание всех формальных параметров функции AG_SEND.

Параметр Объявление Тип Принимаемые значения Комментарии
ACT INPUT BOOL 0,1 Если ACT=1, то посылается LEN байт из области FDL, определяемой параметром SEND.
Если ACT=0, обновляются коды состояния DONE, ERROR и STATUS.
ID INPUT INT 1,2. 16 Переменная ID содержит номер FDL- соединения (см. настройку в Разделе 2)
LADDR INPUT WORD Начальный адрес модуля При конфигурировании CP при помощи ПО STEP, начальный адрес модуля задается в таблице параметров. Укажите этот адрес здесь.
SEND INPUT ANY Адрес и размер FDL блока: Возможные области памяти:
— Образ процесса
– Меркерная память
– Блок данных
При вызове с операционным заголовком область FDL должна содержать сам заголовок и пользовательскую информацию.
LEN INPUT INT 1,2, до 240 (или длины, указанной в параметре SEND) Количество байт посылаемых из области FDL текущей операцией. Принимаемые значения варьируются от 1 до длины, указанной в параметре SEND. При вызове с операционным заголовком LEN>= 4 из-за учета длины заголовка.
DONE OUTPUT BOOL 0: —
1: новые дан-
ные
Параметр свидетельствует о безошибочном окончании операции. Значения параметров DONE, ERROR и
STATUS см. в соответствующей таблице.
ERROR OUTPUT BOOL 0: —
1: ошибка
Код ошибки Значения параметров DONE, ERROR и
STATUS см. в соответствующей таблице.
STATUS OUTPUT WORD см. таблицу
ниже
Код состояния Значения параметров DONE, ERROR и
STATUS см. в соответствующей таблице.

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

Табл. 7–10 Возвращаемые значения функции AG_SEND
DONE ERROR STATUS Значение
1 0000 H Операция завершена без ошибок.
1 7000 H Код возможен только для S7–400; FC был вызван с ACT=0; однако операция не выполняется.
8181 H Операция активна.
1 8183 H Отсутствие настроек или служба FDL не запущена в PROFIBUS CP.
1 8184 H FDL соединение без операционного буфера: системная ошибка FDL соединение с операционным буфером: параметр LEN H Параметр LEN длиннее, чем область, указанная в SEND.
1 8186 H Неправильное значение >
1 8301 H SAP не активна на станции-приемнике.
1 8302 H Недостаточно ресурсов на приемнике: станция-приемник не может достаточно быстро обработать принимаемые данные или ресурсы приемника не подготовлены.
1 8303 H Служба PROFIBUS (SDA SendDatawithAcknowledge) (посылка данных с подтверждением) не поддерживается SAP на станции-приемнике.
1 8304 H FDL соединение не установлено.
1 8311 H Станция-приемник не доступна по указанному адресу PROFIBUS.
1 8312 H Ошибка PROFIBUS в CP; например, короткое замыкание на шине, выпадение станции из кольца.
1 8315 H Внутренняя ошибка параметра в FDL соединении с операционным заголовком: параметр LEN H Некорректная исходная область, например: область не существует в DB, параметр LEN H Неправильная область чтения параметра.
1 8F28 H Ошибка выравнивания при чтении параметра.
1 8F32 H Номер DB слишком велик.
1 8F33 H Неправильный номер DB.
1 8F3A H Область не загружена (DB).
1 8F42 H Превышение времени чтения параметра из области I/O.
1 8F44 H Адрес считываемого параметра блокирован в треке доступа.
1 8F7F H Внутренняя ошибка, напр. неправильная ссылка ANY. Например, LEN=0
1 8090 H Не существует модуля с заданным адресом.
1 8091 H Логический базовый адрес не выровнен по двойному слову.
1 80B0 H Модуль не распознает данные.
1 80B1 H Некорректная область приема, например, ее размер > 240 байт.
1 80B2 H Не возможно установить соединение по шине между CPU и CP.
1 80C0 H Данные не могут быть считаны.
1 80C1 H Указанная область данных в данный момент обрабатывается
1 80C2 H Слишком много незавершенных задач.
1 80C3 H Ресурсы (память) недоступны.
1 80C4 H Коммуникационная ошибка (иногда встречается, обычно необходимо просто повторить вызов из пользовательской программы).
1 80D2 H Неправильный начальный адрес модуля.

Функциональный блок AG_RECV / AG_LRECV

Функциональные блоки AG_RECV / AG_LRECV используются для получения данных по установленному FDL соединению через PROFIBUS CP. Область данных, указанная для приема может лежать в образе процесса,
меркерной памяти или блоке данных. Успешное завершение работы функции индицируется когда блок данных может быть получен из PROFIBUS CP.
Примечание: Информация, приведенная ниже, относится как к FC AG_RECV так и к AG_LRECV.

STL Коментарий
call fc 5 //Вызов функции AG_SEND
ACT := M 10.0
> MB 10
LADDR := W#16#0100 //=LADDR 256dec. в настройках оборудования
SEND := P#db99.dbx10.0 byte 240
LEN := MW 12
DONE := M 10.0
ERROR := M 10.7
STATUS := MW 14

Вызовы с операционным заголовком

Таблица ниже содержит типы соединений и операции, для которых должны быть определены параметры в операционном заголовке. Операционный заголовок расположен в начале FDL области данных. Он занимает 4 байта и должен быть прибавлен к длине, указываемой в параметре LEN. Максимальная длина пользовательских данных для операций с заголовком, таким образом, уменьшена до 236 байт.

Табл. 7–11 Возвращаемые параметры операционного заголовка в области FDL
Параметр Свободный уровень 2 Всеобщая рассылка Множественная рассылка
адрес PB Адрес отправителя Значения: 0..126 в зависимости от станции
LSAP LSAP отправителя 0..63 в зависимости от станции
Службы Отображение SDN ( Посылка без подтверждения — индикация): Значение: 01 H
или
Отображение SDA (Посылка с подтверждением индикация):
Значение: 00 H
Отображение SDN ( Посылка без подтверждения — индикация):
Значение: 7F H
Отображение SDN ( Посылка без подтверждения — индикация):
Значение: 01 H

Диаграмма ниже иллюстрирует обычную последовательность при передаче данных, активированной использованием в программе функции AG_RECV. Каждая операция AG_RECV в пользовательской программе подтверждается выходными параметрами NDR, ERROR и STATUS.

Следующая таблица содержит описание всех формальных параметров функции AG_RECV.

Параметр Объявление Тип Принимаемые значения Комментарии
ID INPUT INT 1,2. 16 (S7–300)
1,2. 32 (S7–400)
Переменная ID содержит номер FDL- соединения (см. настройку в Разделе 2)
LADDR INPUT WORD Начальный адрес модуля. При конфигурировании CP при помощи ПО STEP, начальный адрес модуля задается в таблице параметров. Укажите этот адрес здесь.
RECV INPUT ANY Адрес и размер FDL блока: Возможные области памяти:
— Образ процесса
– Меркерная память
– Блок данных
При вызове с операционным заголовком область FDL содержит заголовок и пользовательскую информацию.
LEN OUTPUT INT 1,2. 240 Количество получаемой в область FDL информации из PROFIBUS CP. При вызове с операционным заголовком LEN >= 4 из-за учета длины заголовка.
NDR OUTPUT BOOL 0: —
1: новые данные
Параметр свидетельствует о получении новых данных. Значения параметров NDR, ERROR и STATUS см. в соответствующей таблице.
ERROR OUTPUT BOOL 0: —
1: ошибка
Код ошибки
Значения параметров NDR, ERROR и STATUS см. в соответствующей таблице.
STATUS OUTPUT WORD см. таблицу ниже Код состояния
Значения параметров NDR, ERROR и STATUS см. в соответствующей таблице.

Возвращаемые значения

Таблица, приведенная ниже, содержит расшифровку информации возвращаемой в параметрах NDR, ERROR и STATUS, которая должна обрабатываться пользователем.

Экспоненциальная запись чисел

Онлайн калькулятор для перевода чисел в экспоненциальный вид и обратно, другим языком для вычисления чисел с буквой E.
На компьютере (в частности в тексте компьютерных программ) экспоненциальную запись записывают в виде MEp (пример 1e-10), где:

M — мантисса,
E (exponent) — буква E в числе, означающая «*10^» («…умножить на десять в степени…»),
p — порядок.
Это необходимо для представлении очень больших и очень малых чисел, а также для унификации их написания.

Многие пользователи калькуляторов столкнулись с вопросом: Что означает буква «E» в цифровом калькуляторе?
Это Экспоненциа́льная за́пись— представление действительных чисел в виде мантиссы и порядка. Удобна для записи очень больших и очень малых чисел.

Например, расшифруем эти числа:
Е — это 10, цифры после Е — показатель степени, в который возводится 10.
0.66E004 = 0,66 * 10^4 = 0.66*10000 = 6600
0.66E-007 = 0.66 * 10^(-7) = 0.66 * 0.0000001 = 0.000000066
0.66E11 = 0.66 * 10^11 = 0.66 * 100000000000 = 66000000000

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

Вычислим числа с буквой «е«:
1e-10 = 0.0000000001 — ноль целых одна десятимиллиардная
6e+17 = -600000000000000000000
Есть число 2.6E3. Что означает буква Е = 2 600 — две тысячи шестьсот
1Е+6 = равен миллиону 1 000 000

BSOD или Синий экран

Синий экран смерти коды ошибок с расшифровкой или по другому коды ошибок Windows (Blue Screen of Death или BSOD), которые также называются как STOP ошибки, которые появляются, когда проблема настолько серьезна, что работа Windows полностью останавливается.

Рекомендуем Вам при появлении синего экрана воспользоваться универсальными методами для его устранения в нашей статье Решение Bsod

Чтобы получить сведения об ошибки введите её код в текстовое поле чуть ниже в следующем формате: 7е или 0x0000007e

Ошибка на уровне ядра (kernel). Вероятно, это связано с несоответствием числа KeEnterCriticalRegion с KeLeaveCriticalRegion в файловой системе, из-за чего система может быть повреждена.

В Windows 7 и Server 2008 R2:

Эта проблема возникает из-за ошибки в драйвере Compositebus.sys.

Когда MTP (мультимедийные) или WPD (переносное) устройство подключается к компьютеру в первый раз и пытается установить драйвер, приложение может выполнить команду сброса устройства USB. Происходит синхронное обращение к драйверу Compositebus.sys, вследствие чего и происходит ошибка.

    BSoD 0x00000001 появляется в ОС Windows Server 2008 и Windows 7 при установке сторонних приложений для MTP и WPD устройств. Также при их первой установке.

Ошибка происходит из-за противоречивого состояния драйвера Compositebus.sys. Когда MTP или MPD устройства впервые подключаются к компьютеру перечислитель составной шины обнаруживает их и пытается установить драйвер данного устройства. Во время процесса установки стороннее приложение может выполнить команду сброса USB-устройства, что и вызывает ошибку.

Для устранения ошибки загрузите и установите последние обновления на вашу операционную систему.

STOP 0x00000001 появляется в ОС Windows Vista из-за обнаружения ошибке в системном файле Win32k.sys. При этом поле CombinedApcDisable имеет значение 0x0000FFFF.

Обновление операционной системы устранит эту ошибку. http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2203330&kbln=ru

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

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

Это указывает, что очередь устройства, как ожидали, должна быть занята, но этого не случилось.

Вероятнее всего, это ошибка связана с аппаратными средствами или проблемами в драйверах устройств.

  1. Обновите драйвера.
  2. Проверьте на вирусы.
  3. Почистите реестр.
  4. Проверьте жесткий диск на ошибки.

Загрузите и установите последние обновления на вашу операционную систему.

Это пустой указатель близости ненадлежащего подмножества.

Вероятнее всего, это ошибка связана с аппаратными средствами или проблемами в драйверах устройств.

  1. Обновите драйвера.
  2. Проверьте на вирусы.
  3. Почистите реестр.
  4. Проверьте жесткий диск на ошибки.

Загрузите и установите последние обновления на вашу операционную систему.

Индикатор недопустимой исключительной ситуации при доступе к данным.

Вероятнее всего, это ошибка связана с аппаратными средствами или проблемами в драйверах устройств.

  1. Обновите драйвера.
  2. Проверьте на вирусы.
  3. Почистите реестр.

Загрузите и установите последние обновления на вашу операционную систему.

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

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

Эта проблема происходит при ошибке кодирования в файле Http.sys, что в свою очередь вызывает повреждение стека.

Для устранения BSoD загрузите и установите последние обновления на вашу операционную систему. В частности для Windows Xp KB887742, для Windows Server необходимо установить Windows Server 2003 Service Pack 1.

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

Это обычно указывает, что поток был присоединен к процессу в ситуации, где это не разрешено. Например, эта ошибка могла произойти, если бы KeAttachProcess был запущен, когда поток уже был присоединен к процессу (который недопустим), или если поток возвратился из определенных вызовов функции в присоединенном состоянии (который недопустим).

Эта ошибка также может произойти, если драйвер вызывает функцию KeAttachProcess, и поток уже присоединен к другому процессу. Лучше использовать функцию KeStackAttachProcess. Если текущий поток уже был присоединен к другому процессу, функция KeStackAttachProcess сохраняет текущее состояние APC прежде, чем это присоединит текущий поток к новому процессу.

Вероятнее всего, это ошибка связана с аппаратными средствами или проблемами в драйверах устройств.

Также причиной могут быть:

1. Проблемы с памятью.

2. Плохой блок питания.

  1. Обновите драйвера.
  2. Проверьте компьютер на вирусы.
  3. Проверьте жесткий диск на ошибки.
  4. Протестируйте память на ошибки.
  5. Проверьте блок питания.

Загрузите и установите последние обновления на вашу операционную систему.


Это указывает, что уровень не в пределах программного диапазона.

Вероятнее всего, это ошибка связана с программными средствами или проблемами в драйверах устройств.

  1. Обновите драйвера.
  2. Проверьте компьютер на вирусы.
  3. Проверьте жесткий диск на ошибки..

Загрузите и установите последние обновления на вашу операционную систему.

Попытка удалить устройство не на уровне организатора.

Вероятнее всего, это ошибка связана с аппаратными средствами или проблемами в драйверах устройств.

  1. Обновите драйвера.
  2. Проверьте компьютер на вирусы.
  3. Проверьте жесткий диск на ошибки..
  4. Загрузите и установите последние обновления на вашу операционную систему.

Если это возникоает при установке ОС, то попробуйте обновить биос.

Это указывает, что IRQL (уровень запроса на прерывание), меньше требуемого.

Вероятнее всего, это ошибка связана с аппаратными средствами или проблемами в драйверах устройств.

  1. Обновите драйвера.
  2. Проверьте компьютер на вирусы.
  3. Проверьте жесткий диск на ошибки.

Загрузите и установите последние обновления на вашу операционную систему.

Была сделана попытка затронуть виртуальную память (файл подкачки) на внутреннем процессе IRQ уровня высокого уровня. Если доступен kernel debugger, вы можете проследить, где именно система зациклилась.

Наиболее частая причина возникновения – драйвер устройства использует неверный адрес.

В Windows 7 и Server 2008:

Эта проблема возникает, если диспетчер питания открывает порт вызова (ALPC) дополнительно локальной процедуры. Однако диспетчер питания закрывает другой порт, вместо того, чтобы закрыть порт ALPC. При каждом запросе питания возникает утечка памяти. Когда потерянная память накапливается до определенного уровня, компьютер аварийно завершает работу.

Более подробно посмотрите здесь:

Рекомендации по устранению данной ошибки:

для Windows Server 2003:

для Windows 7 и Server 2008:

Компания Microsoft выпустила специальное обновление, так что достаточно просто обновить Windows.

Проверте память на ошибки.

Во время установки Windows XP

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

Шаг 1. Определим уровень абстрагирования от оборудования. Во время установки системы в момент определения конфигурацию компьютера нажмите F5. В появившемся окне убедитесь, что спецификация соответствует действительности. Попытайтесь переустановить Windows XP.

Шаг 2. Выключите следующие функции в настройках CMOS:

все кэширование, включая (L2, BIOS, внутреннее/внешнее);

любые средства антивирусной защиты BIOS.

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

Шаг 3. Проверка оперативной памяти. Если в компьютере несколько планок оперативной памяти, то необходимо поочередно установить по одной планке памяти и наблюдать за процессом установки. В случае исчезновения BSoD становиться понятно, что виновником является планка памяти, находящаяся вне системного блока компьютера. При использовании одной планки памяти, необходимо её протестировать специализирующей программой, например memtest.

Шаг 4. Извлечение всех адаптеров и устройств, не нужных для установки операционной системы. А именно:

дополнительные жесткие диски (для установки системы достаточно одного жесткого диска);

CD-привод или DVD-привод (если устанавливаете от локального жесткого диска).

Попытайтесь переустановить Windows XP. Если синий экран смерти все равно продолжает появляться, то переходите к 5-му шагу. В противном случае, необходимо определить какой же из изъятых адаптеров является причиной появления ошибки. Для этого необходимо поочередно устанавливать по одному устройству в системный блок и перегружать компьютер. В случае появления синего экрана последнее добавленное устройство и является его виновником. Его следует заменить.

Шаг 5: Обновление драйвера SCSI и удаление SCSI устройств. Загрузите последний драйвер от поставщика адаптера. Выключите синхронизацию на контроллере SCSI. Удалите все устройства SCSI за исключением одного жесткого диска, на который устанавливается операционная система.

Шаг 6: Изменение настроек и устранение IDE-устройств. С помощью перемычки устанавливаем жёсткий диск IDE в режим Master и отключаем все IDE-устройства за исключением жесткого диска, на который устанавливается Windows XP.

Шаг 7: Обратитесь к производителю компьютера или материнской платы. Производитель может помочь выполнить программу диагностики и обновить BIOS.

Во время работы Windows XP

Рассмотрим 3 шага решения BSoD 0x0000000A при появлении в уже работающей операционной системе.

Шаг 1: Рассмотрите недавно установленное программное обеспечение. Если Вы установили стороннюю программу (драйвер), попытайтесь удалить или отключить её так, чтобы она не загружалось. Затем, перезапустите компьютер, чтобы понять это программное обеспечение или драйвер вызвал ошибку.

Шаг 2: Рассмотрите недавно добавленные устройства. Если Вы добавили какие-либо устройства или драйвера после того, как Windows был установлен, демонтируйте их и затем перезапустите компьютер, чтобы понять, в этом ли причина синего экрана. Если удаление недавно установленных аппаратных средств устранило ошибку, необходимо установить проблемное устройство и установить свежие драйвера с сайта производителя устройства. Продиагностируйте устройство.

Шаг 3: Восстановите Windows.

Windows 7 и Windows Server 2008

Stop 0x0000000A появляется при входе в спящий режим. Это происходит, потому что драйвер Diskdump.sys неправильно устанавливает размер ввода/вывода в 0. Когда система вводит в спящий режим, драйвер Diskdump.sys ответственен за запись содержания памяти в файл Hiberfil.sys. Если устройство хранения, которое содержит файл Hiberfil.sys, занято, когда устройство получает запрос ввода/вывода от драйвера Diskdump.sys, он пытается отправить запрос ввода/вывода позже. Однако, драйвер Diskdump.sys неправильно устанавливает размер ввода/вывода в 0, когда снова посылает запрос. Поэтому, система получает доступ к недопустимому адресу памяти, и получаете сообщение об ошибке.

Для устранения ошибки загрузите и установите последние обновления на вашу операционную систему.

Это указывает, что обработка исключения не была поддержана.

Обычно, этот стоп вызван ошибками в одном из драйверов.

Можно попробовать обновить драйвера до последних версии и установить последние обновления ОС.

Исполняемая программа превысила ограничение на максимальное количество объектов в статусе ожидания.

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

Попробуйте проверить память и установить последние обновления.

Это указывает на попытку получить взаимное исключение на низшем уровни.

Попытайтесь установить взаимоисключения, используя файл заголовков NTOSEXEXLEVELS.H

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

1 – связь уровня взаимодействия

2 – уровень взаимодействия пытающийся получить доступ

Это указывает на попытку ввести пользовательский режим без контекста.

Это указывает на попытку получить находящуюся в собственности спин-блокировку.

Эта ошибка означает, что произошло непредвиденное прерывание в режиме ядра, или вид прерывания, которое ядро не разрешает иметь или получить (захват (a bound trap)), или вид прерывания, которое влечет за собой немедленную «смерть» (двойная ошибка (double fault)). Первое число в интервалах кода бага — число прерывания (8 = double fault). Использование отладчика ядра (kernel debugger), KB и !TRAP в подходящем фрейме (который будет EBP, что идет вместе с процедурой KiTrap–at минимум на x86 машинах) покажет, откуда прерывание взялось. В общем, баг появляется, когда процессор допускает ошибку, с которой ядро не может справиться. Чаще всего она возникает из-за плохого RAM, а также из-за разгона процессора. Попробуйте отменить в BIOS sync negotiation (синхронная передача данных).

Убедитесь, что Вы рекурсивно не получаете блокировку. И, для потоков, которые содержат spin-блокировку, убедитесь, что Вы не уменьшаете IRQL потока к уровню ниже IRQL spin-блокировки, которую он содержит.

Ошибка ввода вывода (I/O) для жестких дисков.

При значительных ввода/вывода велика для жестких дисков, драйвер Scsiport завершения процедуры DPC освобождает спин-блокировки устройства расширения и поток затем заново получает блокировку, если поле номер логического устройства (LUN) ReadyLogicalUnit текущего жесткий диск не имеет значение null. Такое поведение вызывает сообщение об ошибке «Stop 0x00000010», так как поток не синхронизованы. Другой поток может обновлять поля ReadyLogicalUnit после владеющий поток проверяет поле, но до владеющий поток запускается следующей итерации цикла. Циклический тест выполняется успешно, поскольку поле ReadyLogicalUnit не равен null, а поле GetNextLuRequest не вызывается при удерживании спин-блокировки.

Повторно Scsiport драйвера не получают безусловно spinlock адаптера в нижней части цикла. Драйвер Scsiport условно поток заново получает адаптера спин-блокировки и освобождает спин-блокировки, при выходе из цикла.

  1. Обновите ОС.
  2. Обновите драйвера.
  3. Проверьте жесткий диск на ошибки.

Попытка выпустить поток не имеющего источника.

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

Рекомендации по устранению:


1. Перезагрузите компьютер

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

3. Обновите вашу операционную систему, для получения последних обновлений на сайте Microsoft.

4. В случае если вы не устанавливали новое оборудование, то следует проверить напряжение сети. Оно должно быть не менее 210В.

5. Проверьте оперативную память на работоспособность и ошибки. Проверить на ошибки можно программой Memtest++. Если в компьютере имеются несколько модулей памяти, то попробуйте работать вытащив один модуль, затем другой, для выявления неисправного. Оперативная память очень часто ломается, но сразу несколько модулей ломаются крайне редко.

6. Проверьте наличие свободного места на жестком диске. Если места не хватает, то удалите часть данных.

7. Проверьте жесткий диск на наличие битых секторов и ошибок. По возможности восстановите ошибки и битые сектора стандартными средствами (Свойства диска – сервис – выполнить проверку).

8. Попробуйте восстановить систему из точки восстановления системы.

9. Если не удается войти в Windows, то попробуйте загрузиться с последней удачной конфигурации.

10. В случае самостоятельной настройки BIOS, попробуйте сбросить настройки по умолчанию.

11. Проверьте систему на наличие вирусов. Поверить можно бесплатной утилитой от DrWeb.

12. В крайнем случае переустановите Windows.

13. Если эта стоп ошибка появляется при установке системы, то возможно не хватает оперативной памяти. Добавьте.

Возможные причины возникновения:

1. Нехваткой напряжения

2. Большим количеством оперативной памяти

3. При установке системы – малым количеством памяти

4. Несовместимым оборудованием

5. Неподходящими драйверами

6. Неисправность оперативной памяти

7. Битый жестком диске

8. Нехватка места на жестком диске

9. Может возникнуть с добавлением аппаратных устройств

10. При использовании цветовой схемы Windows Aero

11. При блокировке операционной системы

12. Неправильно настроенный Bios

13. Воздействие вирусов

Повреждение списка потоков. Т.е. был вызван поток который в списке не присутствовал.

Эта ошибка появляется очень редко.

Это исключение было вызвано из ядра ОС.

Отказ произошел, создавая дескриптор для предоставления клиента.

Отказ произошел, удаляя дескриптор для предоставления клиента.

Отказ произошел при ссылке на объект. Должен быть указатель, на который он ссылается.

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

Драйверы должны вызывать подпрограммы, которые увеличивают (ссылка), и уменьшают (разыменовывание) счетчик ссылок. Эта ошибка возникает при несоответствии значения счетчика ссылок объекта. Как правило, несогласованность вызвана драйвером, который уменьшает счетчик ссылок объекта слишком много раз, выполняя дополнительные вызовы, которые разыменовывают объект. Эта ошибка может произойти при нулевом значении счетчика ссылок, в то время как все еще есть открытые дескрипторы к объекту.

Эта шибка, чаще всего происходит по двум виновникам:

  1. Попробуйте Восстановить Систему.
  2. Обновить драйвера.
  3. Переустановить либо удалить антивирус.

Недопустимый заголовок пула.

Эта проблема возникает из-за ошибки в файлах NTFS системы.

  1. Проверьте жесткий диск на ошибки.
  2. Обновите ОС.

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

  1. Обновите драйвера.
  2. Обновите Windows.
  3. Проверьте компьютер на вирусы.
  4. Проверьте жесткий дик на ошибки.
  5. Проверьте память на ошибки.

Для устранения Stop 0x0000001A необходимо установить рекомендуемое обновление системы защиты 931784 или KB929338.

Windows Server 2008 SP2 и Windows Server 2008 R2

BSoD происходит, потому что у процессоров Intel Westmere появилась новая возможность кэширования Virtual Machine Control Structure (VMCS). Эта опция добавлена, чтобы обеспечить помощь виртуализации, для увеличения производительности гипервизора. Поскольку эта функция была представлена после выпуска Windows 2008 SP2 и после Windows 2008 R2, гипервизор не обрабатывает кеширование VMCS правильно. Вследствие чего приводит повреждение памяти.

Для решения данной ошибки обновите Вашу операционную систему.

Для решения Stop 0x0000001A необходимо установить пакет обновлений Service Pack 3.

Страница памяти имеет поврежденный элемент базы данных.

  1. Обновите драйвера.
  2. Обновите Windows.
  3. Проверьте компьютер на вирусы.
  4. Проверьте жесткий дик на ошибки.
  5. Проверьте память на ошибки.

Страница памяти имеет поврежденный элемент базы данных.

  1. Обновите драйвера.
  2. Обновите Windows.
  3. Проверьте компьютер на вирусы.
  4. Проверьте жесткий дик на ошибки.
  5. Проверьте память на ошибки.

Это указывает, что никакие спин-блокировки не доступны, чтобы выделить.

Если изменить тип кадра IPX для подключения к сети из Автовыбор для любой другой тип кадра IPX, может появиться ошибка «STOP 0x0000001D» или «STOP 0x000000A» Stop-ошибка, возникающая в Ndis.sys.

Эта проблема может возникнуть, если на компьютере установлен протокол NWLink IPX/SPX/NetBIOS-совместимый транспортный протокол.

  1. Обновите ОС либо переустановите.
  2. Попробуйте обновить BIOS.

Сообщение указывает на то, что ядро (kernel) Windows XP Professional обнаружило запрещённую операцию или неизвестную инструкцию процессора. Проблема, которая вызывает сбой такого рода, схожа с той, которая вызывает ошибку 0x0000000A. Так же причиной может быть повреждённая память или нарушенный доступ. Windows XP Professional умеет сам справляться с этой проблемой, если только проблема не захватила и саму поддержку системы в аварийной ситуации

= 0x0000001E стоп-сообщения обычно появляются после установления неисправных драйверов или системных сервисов, или они могут указывать на проблемы оборудования, такие как память и IRQ конфликты. Если в стоп сообщении указывается список драйверов, удалите/ликвидируйте их. Если удаление программного обеспечения или драйверов решат проблему, то свяжитесь с производителем и выясните на счёт обновлений. Обновлённое ПО особенно важно при использовании мультимедийного ПО, антивирусных программ и СД-записывающих мастеров.

Если в стоп-ошибке упоминается Win32k.sys, проблемой может быть программы удалённого доступа третьей стороны. Если такая программа установлена, Вы можете удалить её загрузившись в Безопасном режиме. Если нет, то используя консоль восстановления (Recovery Console) удалите неисправный системный файл.

Проблема может возникнуть из-за несовместимости микропрограммного обеспечения. Многие Advanced Configuration and Power Interface (ACPI) проблемы могут решиться с обновлением микропрограммного обеспечения (BIOS).

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

И проверьте также память на ошибки.

Это указывает на общие проблемы преобразования ресурсов.

Данная проблема возникает, если в модуле Win32k.sys неправильно управляет объектами шрифта. В результате утечки асинхронных процедур (APC) вызов. Когда система обнаруживает APC утечек памяти, система сообщает о Stop-ошибки.

Этот симптом указывает на серьёзную проблему в драйверах третьей стороны.

Известно, что подобная проблема существует на серверах, на которых работает Symantec pcAnywhere 11.5 с антивирусным сканером Symantec AntiVirus 8.x или Symantec AntiVirus 9.0. Ошибку вызывает обновленный драйвер Symantec Event Handler (Symevent.sys), который устанавливается вместе с программой pcAnywhere 11.5. В связи с работой драйвера Symevent.sys драйверы защиты в реальном времени Symantec выдают ошибку «Stop 0x00000020».

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

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

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

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


Для отключения драйверов зашиты в реальном времени сканера Symantec AntiVirus 8.x выполните следующие действия:

1. Выберите в меню Пуск пункт Выполнить, введите команду regedit и нажмите кнопку ОК.

2. Найдите и выделите следующий раздел реестра:

3. Выберите раздел Navap.

4. На правой панели окна редактора реестра дважды щелкните параметр Start.

5. В поле Значение измените значение на 4 и нажмите кнопку OK.

6. В разделе Services выберите подраздел Navapel.

7. На правой панели окна редактора реестра дважды щелкните параметр Start.

8. В поле Значение измените значение на 4 и нажмите кнопку OK.

9. Закройте редактор реестра.

10. Отключите сервер от сети.

11. Перезагрузите сервер.

Для отключения драйверов защиты в реальном времени сканера Symantec AntiVirus 9.0 выполните следующие действия:

1. Выберите в меню Пуск пункт Выполнить, введите команду regedit и нажмите кнопку ОК.

2. Найдите и выделите следующий раздел реестра:

3. Выберите раздел Savrt.

4. На правой панели окна редактора реестра дважды щелкните параметр Start.

5. В поле Значение измените значение на 4 и нажмите кнопку OK.

6. В разделе Services выберите подраздел Savrtpel.

7. На правой панели окна редактора реестра дважды щелкните параметр Start.

8. В поле Значение измените значение на 4 и нажмите кнопку OK.

9. Закройте редактор реестра.

10. Отключите сервер от сети.

11. Перезагрузите сервер.

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

Ошибка указывает, что квота была возвращена в процесс, но этот процесс не использовал такое количество квот.

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

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

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

Если до появления BSOD синего экрана смерти, вы устанавливали на компьютер какое то новое оборудование, то проверьте его совместимость с вашей операционной системой.

* Если оборудование не прошло проверку совместимости, то попробуйте заменить оборудование на другое.

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

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

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

* Или обратитесь к продавцу оборудования за советом.

* Обновите ваш Windows. Загрузите последние обновления с сайта Microsoft.

Если ошибка появилась без вашего вмешательства с установкой нового оборудования, следует:

* Проверить работоспособность оперативной памяти. Проверить можно с помощью программы Memtest++ (ищите в Google). При ошибках памяти, замените планку. Если планок оперативной памяти несколько, то попробуйте работать с ними по отдельности вытаскивая одну за одной. Чаще всего память не портиться сразу в нескольких планках. И вы найдете неисправную. Не забудьте почистить контакты на модуле и на материнской плате, так как из-за пыли часто встречается эта проблема.

* Проверьте наличие свободного места на жестком диске. при малом объеме памяти, удалите часть данных.

* Проверьте жесткий диск на наличие битых секторов и ошибок.

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

* Если не удается войти в Windows, то попробуйте загрузиться с последней удачной конфигурации.

* Если до появления этой ошибки вы пытались как то настроить BIOS, то восстановите их в значение по умолчанию.

* Проверьте ваш компьютер на наличие вирусов.

* В крайнем случае переустановите Windows.

* Если эта стоп ошибка появляется при установкеWindows, попробуйте увеличить оперативную память или почистите ее от пыли.

Основы Fibre Channel

Продолжаю вещать на тему прояснения основных представлений об FC SAN. В комментариях к первому посту меня попрекнули тем, что копнул недостаточно глубоко. В частности — мало сказал о непосредственно FC и ничего о BB credits, IP и multipathing. Multipathing и IP — темы для отдельных публикаций, а про FC, пожалуй, продолжу. Или начну, как посмотреть.

Для начала, небольшое терминологическое отступление (навеянное опять же комментарием к предыдущему посту).

Fibre or Fiber?: Изначально технология Fibre Channel предполагала поддержку только волоконно-оптических линий (fiber optic). Однако, когда добавилась поддержка меди, было принято решение название в принципе сохранить, но для отсылки на стандарт использовать британское слово Fibre. Американское Fiber сохраняется преимущественно для отсылки на оптоволокно.

IBM Redbook «Introduction to SAN and System Networking»

Начало

По аналогии с сетевой моделью OSI, Fibre Channel состоит из пяти уровней. Каждый уровень обеспечивает определённый набор функций.

FC-0 — уровень физических интерфейсов и носителей. Описывает физическую среду: кабели, коннекторы, HBA, трансиверы, электрические и оптические параметры.

FC-1 — уровень передачи и кодирования. Здесь описывается как данные будут кодироваться перед передачей и декодироваться после. На этом уровне определяются три основные функции:

  • Кодирование / декодирование
  • Ordered sets
  • Инициализация соединения (link initialization)

FC-2 — уровень кадрирования и сигналов. Определяет структуру и организацию передаваемой информации, а также контроль и управление её передачей. Функции, осуществляемые на этом уровне:

  • Кадрирование (определение структуры кадра / фрейма).
  • Управление последовательностями (Sequence management)
  • Управление обменом (Exchange management)
  • Класс обслуживания (Class of Service)
  • Управление потоком (Flow control)

FC-3 — уровень базовых служб. Уровень заложен, для новых функций, которые могут быть внедерены в Fibre Channel в будущем. На этом уровне обеспечивается шифрование и сжатие данных перед отправкой, а также такие вещи как расщепление потока данных (striping) по нескольким путям. Но я не сталкивался с реализациями таких штук пока.

FC-4 — уровень отображения протоколов. Описывает протоколы, которые могут использовать FC в качестве транспорта и, собственно, порядок использования (маппинг этих протоколов на нижние уровни FC0-3). Применительно к SAN это могут быть:

  • Fibre Channel Protocol for SCSI-3 (SCSI-FCP) — проброс SCSI
  • Fibre Channel Link Encapsulation (FC-LE) — проброс TCP/IP

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

Я, пожалуй не буду приводить сложных таблиц разновидностей кабелей, передатчиков и их характеристик. Во-первых, потому что неудобно тут вставлять таблицы, во-вторых, потому что эти таблицы есть везде, где хоть что-то написано про FC (русская википедия, нерусская википедия), в-третьих (и ключевое), — на мой взгляд, главное понять суть, а справочные данные найти не проблема.
А суть в том, что есть два типа волокна: многомодовое и одномодовое.
Многомодовое (Multimode Fiber, MMF) — относительно широкое в сечении (50-62,5 микрон), предназначенное для коротковолновых лазерных лучей. «Многомодовое» значит, что свет по каналу может проходить разными путями — множественно отражаясь от стенок волокна. Это делает кабель менее чувствительным к перегибу, но снижает силу и качество сигнала, что ограничивает данный тип только небольшими дистанциями — до 500 м.
Одномодовое (Singlemode Fiber, SMF) — волокно малого диаметра (8-10 микрон), сигнал по которому передаётся длинноволновым лазером, свет которого не виден человеческому глазу. Тут свет может перемещаться единственным путём — по прямой, соответственно сигнал передаётся быстрее и точнее, но оборудование для обеспечения такого рода сигналов стоит значительно дороже, так что используется, в основном, для связи на больших расстояниях (до 50 км). К перегибам и вообще любым искривлениям одномодовое волокно куда чувствительнее.
Тут рядом есть более подробная статья про типы волокна.
Стоит иметь ввиду, что для соединения двух устройств используется два кабеля. Один используется для передачи, другой для приёма. Потому важно подключить их корректно (Tx одной стороны к Rx другой).

Отдельно хочу упомянуть про такой термин как тёмная оптика (dark fiber). Сей термин не значит, что она как-то специальным образом тонирована. Это просто выделенные оптические линии связи, как правило, для связи на больших расстояниях (между городами или далеко отстоящими зданиями), которые берутся в аренду, и для использования которых не требуется дополнительное оборудования усиления сигнала (его обеспечивает владелец). Однако, так как это просто оптический кабель, отданный в ваше полновластное распоряжение, до тех пор пока вы не пустите по нему свой световой сигнал, он остаётся «тёмным».

ASIC (аббревиатура от англ. application-specific integrated circuit, «интегральная схема специального назначения») — интегральная схема, специализированная для решения конкретной задачи. В отличие от интегральных схем общего назначения, специализированные интегральные схемы применяются в конкретном устройстве и выполняют строго ограниченные функции, характерные только для данного устройства; вследствие этого выполнение функций происходит быстрее и, в конечном счёте, дешевле. Примером ASIC может являться микросхема, разработанная исключительно для управления мобильным телефоном, микросхемы аппаратного кодирования/декодирования аудио- и видео-сигналов (сигнальные процессоры).

В оборудовании Fibre Channel ASIC состоит из следующих функциональных элементов:

  • Encoder / Decoder — обеспечивает кодирование каждых 8 бит передаваемых данных в 10-битное представление. И декодирование обратно принимаемых данных.
  • SERDES (Serializer / Deserializer) — преобразует параллельный поток 10-битных порций данных в последовательный поток 10-битных порций данных.
  • Transceiver — преобразует электрические импульсы в световые сигналы.

ASIC

Transceivers, трансиверы или SFP — в случае FC-коммутаторов это отдельные модули, необходимые для подключения кабеля к порту. Различаются на коротковолновые (Short Wave, SW, SX) и длинноволновые (Long Wave, LW, LX). LW-трансиверы совместимы с многомодовым и одномодовым волокном. SW-трансиверы — только с многомодовым. И к тем и к другим кабель подключается разъёмом LC.
Есть ещё SFP xWDM (Wavelenght Division Multiplexing), предназначенные для передачи данных из нескольких источников на дальние расстояния единым световым пучком. Для подключения кабеля к ним используется разъём SC.

8/10 и 64/66

Первое, что происходит на этом уровне — кодирование / декодирование информации. Это довольно мудрёный процесс, в ходе которого каждые 8 бит поступающей информации преобразуются в 10-битное представление. Делается это с целью повышения контроля целостности данных, отделения данных от служебных сигналов и возможности восстановления тактового сигнала из потока данных (сохранение баланса нулей и единиц).
Это ведёт к заметному снижению полезной пропускной способности, ибо как можно подсчитать, 20% потока данных является избыточной служебной информацией. А ведь кроме всего прочего, немалую часть этого потока может занимать служебный трафик.
Однако хорошая новость в том, что кодирование 8/10 используется в оборудовании 1G, 2G, 4G и 8G. В части реализаций 10G и начиная с 16G кодирование осуществляется по принципу 64/66, что существенно увеличивает полезную нагрузку (до 97% против 80% в случае 8/10).

Ordered sets

В русской википедии этот термин переведён как «упорядоченные наборы». В то время как на мой взгляд, слово order тут стоит понимать не в значении «порядок», а в значении «приказ, команда».
Для начала стоит упомянуть ещё один термин, используемый в контексте FC — transmission word — минимальная порция данных для передачи, равная 4 байтам. Если передаваемая информация меньше по объёму, то transmission word дополняется специальными заполняющими байтами (fill bytes), которые вырезаются на приёмнике.
Так вот, ordered sets — это специальные служебные transmission words. Делятся на три категории:

  1. Разделители фреймов (Start-of-Frame, SOF и End-of-Frame, EOF).
  2. Два базовых сигнала — IDLE (порт готов принимать или передавать данные) и R_RDY (receiver ready — порт освободил буфер для приёма очередной порции данных)
  3. Базовые последовательности (primitive sequences):
    • NOS (Not Operational) — порт обнаружил разрыв / отсутствие соединения
    • OLS (Offline State) — порт инициирует установление соединения, или порт получил NOS, или порт переходит в состояние off-line
    • LR (Link Reset) — инициализация сброса соединения. Отправляется в случае получения OLS или каких-то ошибок приёма-передачи (как правило, на уровне Flow Control). Отправивший порт очищает свои буферы и их счётчики
    • LRR (Link Reset Response) — ответ на LR. Отправивший порт очищает свои буферы и их счётчики


Инициализация соединения (Link initialization)

При установлении физического соединения между портами A и B, между ними происходит следующий «обмен веществ»:

Фреймы (Кадры, Frames)

Все данные, передаваемые в среде Fiber Channel разбиваются на фреймы (кадры). Структура фрейма следующая:

  • SoF — 4 байта (1 tw) — идентификатор начала фрейма.
  • Header — 24 байта (6 tw) — заголовок. Содержит такую информацию как адрес источника и приёмника, тип фрейма (FT-0 — управляющий или FT-1 — данные), номер последовательности и порядковый номер фрейма в ней и прочая служебно-контрольная информация.
  • Data — 0-2112 байт (0-528 tw) — непосредственно данные (например, SCSI-команды).
  • CRC — 4 байта (1 tw) — контрольная сумма.
  • EoF — 4 байта (1 tw) — идентификатор конца фрейма.

Промежутки между фреймами заполняются специальными «заполняющими словами» — fill word. Как правило, это IDLE, хотя начиная с FC 8G было стандартизовано использование ARB(FF) вместо IDLE, в целях снижения электрических помех в медном оборудовании (но по-умолчанию коммутаторами используется IDLE).

Последовательности (Sequences)

Чаще всего источник стремится передать приёмнику гораздо больше информации, чем 2112 байт (максимальный объём данных одного фрейма). В этом случае информация разбивается на несколько фреймов, а набор этих фреймов называется последовательностью (sequence). Чтобы в логическую последовательность фреймов не вклинилось что-то лишнее при параллельной передаче, заголовок каждого фрейма имеет поля SEQ_ID (идентификатор последовательности) и SEQ_CNT (номер фрейма в последовательности).

Обмен (Exchange)

Одна или несколько последовательностей, отвечающих за какую-то одиночную операцию, называется обменом. Источник и приёмник могут иметь несколько параллельных обменов, но каждый обмен в единицу времени может содержать только одну последовательность. Пример обмена: инициатор запрашивает данные (последовательность 1), таргет возвращает данные инициатору (последовательность 2) и затем сообщает статус (последовательность 3). В этот набор последовательностей не может вклиниться какой-то посторонний набор фреймов.
Для контроля этого процесса заголовок каждого фрейма включает поля OX_ID (Originator Exchange ID — заполняется инициатором обмена) и RX_ID (Responder Exchange ID — заполняется получателем в ответных фреймах, путём копирования значения OX_ID).

Классы обслуживания (Classes of Services)

Различные приложения предъявляют разные требования к уровню сервиса, гарантии доставки, продолжительности соединения и пропускной способности. Некоторым приложениям требуется гарантированная пропускная способность в течение их работы (бэкап). Другие имеют переменную активность и не требуют постоянной гарантированной пропускной способности канала, но им нужно подтверждение в получении каждого отправленного пакета. Для удовлетворения таких потребностей и обеспечения гибкости, FC определяет следующие 6 классов обслуживания.

Class 1

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

Class 2

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

Class 3

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

Class 4

Требует постоянного соединения, подтверждение и порядок фреймов как и класс 1. Главное отличие — он резервирует не всю полосу пропускания, а только её часть. Это гарантирует определённое QoS. Подходит для мультимедиа и Enterprise-приложений, требующих гарантированного качества соединения.

Class 5

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

Class 6

Вариант класса 1, но мультикастовый. То есть от одного порта к нескольким источникам.

Class F

Класс F определён в стандарте FC-SW для использования в межкоммутаторных соединениях (Interswitch Link, ISL). Это сервис без постоянного соединения с уведомлениями о сбое доставки, использующийся для контроля, управления и конфигурирования фабрики. Принцип похож на класс 2, но тот используется для взаимодейтсвия между N-портами (порты нод), а класс F — для общения E-портов (межкоммутаторных).

Flow Control

В целях предотвращения ситуации, когда отправитель перегрузит получателя избыточным количеством фреймов так, что они начнут отбрасываться получателем, FC использует механизмы управления потоком передаваемых данных (Flow Control). Их два — Buffer-to-Buffer flow control и End-to-End flow control. Их использование регламентируется классом обслуживания. Например, класс 1 использует только механизм End-to-End, класс 3 — Buffer-to-Buffer, а класс 2 — оба эти механизма.

Buffer-to-Buffer flow control

Принцип технологии — кредит в каждый дом отправка любого фрейма должна быть обеспечена наличием кредита на отправку.
Все поступающие на вход порта фреймы помещаются в специальную очередь — буферы. Количество этих буферов определяется физическими характеристиками порта. Один буфер (место в очереди) соответствует одному кредиту. Каждый порт имеет два счётчика кредитов:
TX BB_Credit — счётчик кредитов передачи. После отправки каждого фрейма, уменьшается на 1. Если значение счётчика стало равным нулю — передача невозможна. Как только от порта-приёмника получено R_RDY, счётчик увеличивается на 1.
RX BB_Credit — счётчик кредитов приёма. Как только фрейм принят и помещён в буфер, уменьшается на 1. Когда фрейм обрабатывается или пересылается дальше, счётчик увеличивается на 1, а отправителю отправляется R_RDY. Если значение счётчика падает до 0, то в принципе, приём новых фреймов должен быть прекращён. На практике, из-за ошибок синхронизации кредитов может возникнуть ситуация, что источник прислал ещё один-несколько фреймов уже после того как RX BB_credit стал равен нулю. Данная ситуация называется buffer overflow. В большинстве реализаций порт обрабатывает такие ситуации «по-доброму» — за счёт резервных буферов. Хотя некоторое оборудование в таких случаях может сынициировать Link Reset.

Отсюда исходит сильное влияние расстояния между портами на производительность. Чем выше расстояние и больше пропускная способность, тем больше фреймов будет отправлено (читай кредитов передачи потрачено) ещё до того как получатель получит хотя бы первый. Ситуацию облегчает особенность архитектуры FC-коммутаторов. Дело в том, что количество буферов не закреплено жёстко за каждым портом (кроме восьми обязательных), а является общим для всех. И в случае определения «дальних линков» (автоматически или вручную) количество выделяемых коммутатором буферов для этого порта увеличивается. Другой плюс общей памяти — не требуется гонять буферы от одного порта к другому внутри коммутатора.

End-to-End flow control

Реализуется счётчиком EE_Credit, который определяет максимум фреймов, которые источник может отправить приёмнику без получения подтверждения (Acknowledge, ACK). В отличие от BB_Credit распространяется только на фреймы с данными, а обмен/учёт происходит между конечными нодами.

Конец

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

Были использованы материалы из следующих источников:
IBM Redbook «Introduction to SAN and System Networking»
EMC «Network Storage Concepts and Protocols»
Brocade «SAN Fabric Administration Best Practices Guide»

Что такое WMPNSCFG.EXE-FC0D39BF.pf и как его исправить?

Совместима с Windows XP, Vista, 7, 8 и 10

Обзор WMPNSCFG.EXE-FC0D39BF.pf

Что такое WMPNSCFG.EXE-FC0D39BF.pf?

WMPNSCFG.EXE-FC0D39BF.pf представляет собой разновидность файла PF, связанного с Microsoft Windows, который разработан Microsoft Corporation для ОС Windows. Последняя известная версия WMPNSCFG.EXE-FC0D39BF.pf: 6.1.7600.16385, разработана для Windows 7. Данный файл PF имеет рейтинг популярности 1 звезд и рейтинг безопасности «Неизвестно».

Почему у меня наблюдаются ошибки в файлах типа PF?

Если Windows не может нормально загрузить файл WMPNSCFG.EXE-FC0D39BF.pf, или файл PF заражен вирусом или вредоносным ПО, вы увидите сообщение об ошибке. Для получения дополнительной информации см. «Причины ошибок WMPNSCFG.EXE-FC0D39BF.pf» ниже.

В каких случаях появляются ошибки в файлах типа PF?

Ошибки PF, например, связанные с WMPNSCFG.EXE-FC0D39BF.pf, чаще всего появляются во время запуска компьютера, запуска программы или при попытке использования специфических функций в вашей программе (например, печать).

Распространенные сообщения об ошибках в WMPNSCFG.EXE-FC0D39BF.pf

Наиболее распространенные ошибки WMPNSCFG.EXE-FC0D39BF.pf, которые могут возникнуть на компьютере под управлением Windows, перечислены ниже:

  • «Ошибка в файле WMPNSCFG.EXE-FC0D39BF.pf.»
  • «Отсутствует файл WMPNSCFG.EXE-FC0D39BF.pf.»
  • «WMPNSCFG.EXE-FC0D39BF.pf не найден.»
  • «Не удалось загрузить WMPNSCFG.EXE-FC0D39BF.pf.»
  • «Не удалось зарегистрировать WMPNSCFG.EXE-FC0D39BF.pf.»
  • «Ошибка выполнения: WMPNSCFG.EXE-FC0D39BF.pf.»
  • «Ошибка загрузки WMPNSCFG.EXE-FC0D39BF.pf.»

Такие сообщения об ошибках PF могут появляться в процессе установки программы, когда запущена программа, связанная с WMPNSCFG.EXE-FC0D39BF.pf (например, Microsoft Windows), при запуске или завершении работы Windows, или даже при установке операционной системы Windows. Отслеживание момента появления ошибки WMPNSCFG.EXE-FC0D39BF.pf является важной информацией при устранении проблемы.

Причины ошибок в файле WMPNSCFG.EXE-FC0D39BF.pf

Проблемы WMPNSCFG.EXE-FC0D39BF.pf могут быть отнесены к поврежденным или отсутствующим файлам, содержащим ошибки записям реестра, связанным с WMPNSCFG.EXE-FC0D39BF.pf, или к вирусам / вредоносному ПО.

Более конкретно, данные ошибки WMPNSCFG.EXE-FC0D39BF.pf могут быть вызваны следующими причинами:

  • Поврежденные ключи реестра Windows, связанные с WMPNSCFG.EXE-FC0D39BF.pf / Microsoft Windows.
  • Вирус или вредоносное ПО, которые повредили файл WMPNSCFG.EXE-FC0D39BF.pf или связанные с Microsoft Windows программные файлы.
  • Другая программа злонамеренно или по ошибке удалила файлы, связанные с WMPNSCFG.EXE-FC0D39BF.pf.
  • Другая программа находится в конфликте с Microsoft Windows и его общими файлами ссылок.
  • Поврежденная загрузка или неполная установка программного обеспечения Microsoft Windows.

Как исправить ошибки в WMPNSCFG.EXE-FC0D39BF.pf

Ниже описана последовательность действий по устранению ошибок, призванная решить проблемы WMPNSCFG.EXE-FC0D39BF.pf. Данная последовательность приведена в порядке от простого к сложному и от менее затратного по времени к более затратному, поэтому мы настоятельно рекомендуем следовать данной инструкции по порядку, чтобы избежать ненужных затрат времени и усилий.

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

Шаг 1: Исправить записи реестра, связанные с Microsoft Windows

Иногда ошибки WMPNSCFG.EXE-FC0D39BF.pf и другие системные ошибки PF могут быть связаны с проблемами в реестре Windows. Несколько программ может использовать файл WMPNSCFG.EXE-FC0D39BF.pf, но когда эти программы удалены или изменены, иногда остаются «осиротевшие» (ошибочные) записи реестра PF.

В принципе, это означает, что в то время как фактическая путь к файлу мог быть изменен, его неправильное бывшее расположение до сих пор записано в реестре Windows. Когда Windows пытается найти файл по этой некорректной ссылке (на расположение файлов на вашем компьютере), может возникнуть ошибка WMPNSCFG.EXE-FC0D39BF.pf. Кроме того, заражение вредоносным ПО могло повредить записи реестра, связанные с Microsoft Windows. Таким образом, эти поврежденные записи реестра PF необходимо исправить, чтобы устранить проблему в корне.

Редактирование реестра Windows вручную с целью удаления содержащих ошибки ключей WMPNSCFG.EXE-FC0D39BF.pf не рекомендуется, если вы не являетесь специалистом по обслуживанию ПК. Ошибки, допущенные при редактировании реестра, могут привести к неработоспособности вашего ПК и нанести непоправимый ущерб вашей операционной системе. На самом деле, даже одна запятая, поставленная не в том месте, может воспрепятствовать загрузке компьютера!

В связи с подобным риском мы настоятельно рекомендуем использовать надежные инструменты очистки реестра, такие как WinThruster (разработанный Microsoft Gold Certified Partner), чтобы просканировать и исправить любые проблемы, связанные с WMPNSCFG.EXE-FC0D39BF.pf. Используя очистку реестра, вы сможете автоматизировать процесс поиска поврежденных записей реестра, ссылок на отсутствующие файлы (например, вызывающих ошибку WMPNSCFG.EXE-FC0D39BF.pf) и нерабочих ссылок внутри реестра. Перед каждым сканированием автоматически создается резервная копия, позволяющая отменить любые изменения одним кликом и защищающая вас от возможного повреждения компьютера. Самое приятное, что устранение ошибок реестра может резко повысить скорость и производительность системы.

Предупреждение: Если вы не являетесь опытным пользователем ПК, мы НЕ рекомендуем редактирование реестра Windows вручную. Некорректное использование Редактора реестра может привести к серьезным проблемам и потребовать переустановки Windows. Мы не гарантируем, что неполадки, являющиеся результатом неправильного использования Редактора реестра, могут быть устранены. Вы пользуетесь Редактором реестра на свой страх и риск.

Перед тем, как вручную восстанавливать реестр Windows, необходимо создать резервную копию, экспортировав часть реестра, связанную с WMPNSCFG.EXE-FC0D39BF.pf (например, Microsoft Windows):

  1. Нажмите на кнопку Начать.
  2. Введите «command» в строке поиска. ПОКА НЕ НАЖИМАЙТЕENTER!
  3. Удерживая клавиши CTRL-Shift на клавиатуре, нажмите ENTER.
  4. Будет выведено диалоговое окно для доступа.
  5. Нажмите Да.
  6. Черный ящик открывается мигающим курсором.
  7. Введите «regedit» и нажмите ENTER.
  8. В Редакторе реестра выберите ключ, связанный с WMPNSCFG.EXE-FC0D39BF.pf (например, Microsoft Windows), для которого требуется создать резервную копию.
  9. В меню Файл выберите Экспорт.
  10. В списке Сохранить в выберите папку, в которую вы хотите сохранить резервную копию ключа Microsoft Windows.
  11. В поле Имя файла введите название файла резервной копии, например «Microsoft Windows резервная копия».
  12. Убедитесь, что в поле Диапазон экспорта выбрано значение Выбранная ветвь.
  13. Нажмите Сохранить.
  14. Файл будет сохранен с расширением .reg.
  15. Теперь у вас есть резервная копия записи реестра, связанной с WMPNSCFG.EXE-FC0D39BF.pf.

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

Мы не несем никакой ответственности за результаты действий, совершенных по инструкции, приведенной ниже — вы выполняете эти задачи на свой ​​страх и риск.


Шаг 2: Проведите полное сканирование вашего компьютера на вредоносное ПО

Есть вероятность, что ошибка WMPNSCFG.EXE-FC0D39BF.pf может быть связана с заражением вашего компьютера вредоносным ПО. Эти вредоносные злоумышленники могут повредить или даже удалить файлы, связанные с PF. Кроме того, существует возможность, что ошибка WMPNSCFG.EXE-FC0D39BF.pf связана с компонентом самой вредоносной программы.

Совет: Если у вас еще не установлены средства для защиты от вредоносного ПО, мы настоятельно рекомендуем использовать Emsisoft Anti-Malware (скачать). В отличие от других защитных программ, данная программа предлагает гарантию удаления вредоносного ПО.

Шаг 3: Очистить систему от мусора (временных файлов и папок) с помощью очистки диска (cleanmgr)

Со временем ваш компьютер накапливает ненужные файлы в связи с обычным интернет-серфингом и повседневным использованием компьютера. Если такие ненужные файлы иногда не удалять, они могут привести к снижению быстродействия Microsoft Windows или к ошибке WMPNSCFG.EXE-FC0D39BF.pf, возможно вследствие конфликтов файлов или перегрузки жесткого диска. Удаление таких временных файлов при помощи утилиты Очистка диска может не только устранить ошибку WMPNSCFG.EXE-FC0D39BF.pf, но и существенно повысить быстродействие вашего компьютера.

Совет: Хотя утилита Очистки диска является прекрасным встроенным инструментом, она удаляет не все временные файлы с вашего компьютера. Другие часто используемые программы, такие как Microsoft Office, Firefox, Chrome, Live Messenger, а также сотни других программ не поддаются очистке при помощи программы Очистка диска (включая некоторые программы Microsoft Corporation).

Из-за недостатков утилиты Windows Очистка диска (cleanmgr) мы настоятельно рекомендуем использовать специализированное программное обеспечение очистки жесткого диска / защиты конфиденциальности, например WinSweeper (разработано Microsoft Gold Partner), для очистки всего компьютера. Запуск WinSweeper раз в день (при помощи автоматического сканирования) гарантирует, что ваш компьютер всегда будет чист, будет работает быстро и без ошибок WMPNSCFG.EXE-FC0D39BF.pf, связанных с временными файлами.

Как запустить Очистку диска (cleanmgr) (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите на кнопку Начать.
  2. Введите «command» в строке поиска. ПОКА НЕ НАЖИМАЙТЕENTER!
  3. Удерживая клавиши CTRL-Shift на клавиатуре, нажмите ENTER.
  4. Будет выведено диалоговое окно для доступа.
  5. Нажмите Да.
  6. Черный ящик открывается мигающим курсором.
  7. Введите «cleanmgr» и нажмите ENTER.
  8. Программа Очистка диска приступит к подсчету занятого места на диске, которое вы можете освободить.
  9. Будет открыто диалоговое окно Очистка диска, содержащее флажки, которые вы можете выбрать. В большинстве случаев категория «Временные файлы» занимает большую часть дискового пространства.
  10. Установите флажки напротив категорий, которые вы хотите использовать для очистки диска, и нажмите OK.

Шаг 4: Обновите драйверы устройств на вашем компьютере

Ошибки WMPNSCFG.EXE-FC0D39BF.pf могут быть связаны с повреждением или устареванием драйверов устройств. Драйверы с легкостью могут работать сегодня и перестать работать завтра по целому ряду причин. Хорошая новость состоит в том, что чаще всего вы можете обновить драйверы устройства, чтобы устранить проблему с PF.

В связи с временными затратами и общей сложностью обновления драйверов мы настоятельно рекомендуем использовать утилиту обновления драйверов, например DriverDoc (разработана Microsoft Gold Partner), для автоматизации этого процесса.

Пожалуйста, учтите: Ваш файл WMPNSCFG.EXE-FC0D39BF.pf может и не быть связан с проблемами в драйверах устройств, но всегда полезно убедиться, что на вашем компьютере установлены новейшие версии драйверов оборудования, чтобы максимизировать производительность вашего ПК.

Шаг 5: Используйте Восстановление системы Windows, чтобы «Отменить» последние изменения в системе

Восстановление системы Windows позволяет вашему компьютеру «отправиться в прошлое», чтобы исправить проблемы WMPNSCFG.EXE-FC0D39BF.pf. Восстановление системы может вернуть системные файлы и программы на вашем компьютере к тому времени, когда все работало нормально. Это потенциально может помочь вам избежать головной боли от устранения ошибок, связанных с PF.

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

Чтобы использовать Восстановление системы (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите на кнопку Начать.
  2. В строке поиска введите «Восстановление системы» и нажмите ENTER.
  3. В окне результатов нажмите Восстановление системы.
  4. Введите пароль администратора (при появлении запроса).
  5. Следуйте инструкциям Мастера для выбора точки восстановления.
  6. Восстановить ваш компьютер.

Шаг 6: Удалите и установите заново программу Microsoft Windows, связанную с WMPNSCFG.EXE-FC0D39BF.pf

Инструкции для Windows 7 и Windows Vista:

  1. Откройте «Программы и компоненты», нажав на кнопку Пуск.
  2. Нажмите Панель управления в меню справа.
  3. Нажмите Программы.
  4. Нажмите Программы и компоненты.
  5. Найдите Microsoft Windows в столбце Имя.
  6. Нажмите на запись Microsoft Windows.
  7. Нажмите на кнопку Удалить в верхней ленте меню.
  8. Следуйте инструкциям на экране для завершения удаления Microsoft Windows.

Инструкции для Windows XP:

  1. Откройте «Программы и компоненты», нажав на кнопку Пуск.
  2. Нажмите Панель управления.
  3. Нажмите Установка и удаление программ.
  4. Найдите Microsoft Windows в списке Установленные программы.
  5. Нажмите на запись Microsoft Windows.
  6. Нажмите на кнопку Удалить справа.
  7. Следуйте инструкциям на экране для завершения удаления Microsoft Windows.

Инструкции для Windows 8:

  1. Установите указатель мыши в левой нижней части экрана для показа изображения меню Пуск.
  2. Щелкните правой кнопкой мыши для вызова Контекстного меню Пуск.
  3. Нажмите Программы и компоненты.
  4. Найдите Microsoft Windows в столбце Имя.
  5. Нажмите на запись Microsoft Windows.
  6. Нажмите Удалить/изменить в верхней ленте меню.
  7. Следуйте инструкциям на экране для завершения удаления Microsoft Windows.

После того, как вы успешно удалили программу, связанную с WMPNSCFG.EXE-FC0D39BF.pf (например, Microsoft Windows), заново установите данную программу, следуя инструкции Microsoft Corporation.

Совет: Если вы абсолютно уверены, что ошибка PF связана с определенной программой Microsoft Corporation, удаление и повторная установка программы, связанной с WMPNSCFG.EXE-FC0D39BF.pf с большой вероятностью решит вашу проблему.

Шаг 7: Запустите проверку системных файлов Windows («sfc /scannow»)

Проверка системных файлов представляет собой удобный инструмент, включаемый в состав Windows, который позволяет просканировать и восстановить поврежденные системные файлы Windows (включая те, которые имеют отношение к WMPNSCFG.EXE-FC0D39BF.pf). Если утилита проверки системных файлов обнаружила проблему в PF или другом важном системном файле, она предпримет попытку заменить проблемные файлы автоматически.

Чтобы запустить проверку системных файлов (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите на кнопку Начать.
  2. Введите «command» в строке поиска. ПОКА НЕ НАЖИМАЙТЕENTER!
  3. Удерживая клавиши CTRL-Shift на клавиатуре, нажмите ENTER.
  4. Будет выведено диалоговое окно для доступа.
  5. Нажмите Да.
  6. Черный ящик открывается мигающим курсором.
  7. Введите «sfc /scannow» и нажмите ENTER.
  8. Проверка системных файлов начнет сканирование на наличие проблем WMPNSCFG.EXE-FC0D39BF.pf и других системных файлов (проявите терпение — проверка может занять длительное время).
  9. Следуйте командам на экране.

Шаг 8: Установите все доступные обновления Windows

Microsoft постоянно обновляет и улучшает системные файлы Windows, связанные с WMPNSCFG.EXE-FC0D39BF.pf. Иногда для решения проблемы PF нужно просто напросто обновить Windows при помощи последнего пакета обновлений или другого патча, которые Microsoft выпускает на постоянной основе.

Чтобы проверить наличие обновлений Windows (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите на кнопку Начать.
  2. Введите «update» в строке поиска и нажмите ENTER.
  3. Будет открыто диалоговое окно Обновление Windows.
  4. Если имеются доступные обновления, нажмите на кнопку Установить обновления.

Шаг 9: Произведите чистую установку Windows

Предупреждение: Мы должны подчеркнуть, что переустановка Windows займет очень много времени и является слишком сложной задачей, чтобы решить проблемы WMPNSCFG.EXE-FC0D39BF.pf. Во избежание потери данных вы должны быть уверены, что вы создали резервные копии всех важных документов, изображений, программ установки программного обеспечения и других персональных данных перед началом процесса. Если вы сейчас е создаете резервные копии данных, вам стоит немедленно заняться этим (скачать рекомендованное решение для резервного копирования), чтобы защитить себя от безвозвратной потери данных.

Пожалуйста, учтите: Если проблема WMPNSCFG.EXE-FC0D39BF.pf не устранена после чистой установки Windows, это означает, что проблема PF ОБЯЗАТЕЛЬНО связана с аппаратным обеспечением. В таком случае, вам, вероятно, придется заменить соответствующее оборудование, вызывающее ошибку WMPNSCFG.EXE-FC0D39BF.pf.

Имя файла: WMPNSCFG.EXE-FC0D39BF.pf Последняя известная версия: 6.1.7600.16385
Разработчик: Microsoft Corporation Размер файла (байтов): 27574
Программное обеспечение: Microsoft Windows Операционная система: Windows 7
MD5: 9ff8eab2d085f3eaa49be0f13922db7c
SHA1: 1d2102ea53b38f3d88127d2d84cd3f9244e6ddc2
SHA256: 09772aa94930b4c5df233cd76133311e8a58fa80bdaf0f5eb75abbc47dd21452

Информация об операционной системе

Сообщения об ошибках WMPNSCFG.EXE-FC0D39BF.pf могут появляться в любых из нижеперечисленных операционных систем Microsoft Windows:

  • Windows 10
  • Windows 8
  • Windows 7
  • Windows Vista
  • Windows XP
  • Windows ME
  • Windows 2000

Проблема с WMPNSCFG.EXE-FC0D39BF.pf все еще не устранена?

Обращайтесь к нам в любое время в социальных сетях для получения дополнительной помощи:

Об авторе: Джей Гитер (Jay Geater) является президентом и генеральным директором корпорации Solvusoft — глобальной компании, занимающейся программным обеспечением и уделяющей основное внимание новаторским сервисным программам. Он всю жизнь страстно увлекался компьютерами и любит все, связанное с компьютерами, программным обеспечением и новыми технологиями.

Отобразить файлы PF в алфавитном порядке:

Вы загружаете пробное программное обеспечение. Подписка на один год стоимостью $39,95 необходима для разблокировки всех функций приложения. Подписка обновляется автоматически по завершению (Узнать больше). Нажав на кнопку «Начать загрузку» и установив «Софт»», я подтверждаю, что прочитал(а) и согласен(на) с Пользовательским соглашением и Политикой конфиденциальности Solvusoft.

Что означает запись #fc0?

Что означает в математике запись у = f(x)

Изучая какой-либо реальный процесс, обычно обращают внимание на две величины, участвующие в процессе (в более сложных процессах участвуют не две величины, а три, четыре и т.д., но мы пока такие процессы не рассматриваем): одна из них меняется как бы сама по себе, независимо ни от чего (такую переменную мы обозначили буквой х), а другая величина принимает значения, которые зависят от выбранных значений переменной х (такую зависимую переменную мы обозначили буквой у). Математической моделью реального процесса как раз и является запись на математическом языке зависимости у от х, т.е. связи между переменными х и у. Еще раз напомним, что к настоящему моменту мы изучили следующие математические модели: у = b, у = kx, y = kx + m, у = х 2 .

Есть ли у этих математических моделей что-либо общее? Есть! Их структура одинакова: у = f(x).

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

Математики предпочитают запись у = f(x) не случайно. Пусть, например, f(x) = х 2 , т. е. речь идет о функции у = х 2 . Пусть нам надо выделить несколько значений аргумента и соответствующих значений функции. До сих пор мы писали так:

если х = 1, то у = I 2 = 1;
если х = — 3, то у = (- З) 2 = 9 и т. д.

Если же использовать обозначение f(x) = х 2 , то запись становится более экономной:

f(1) = 1 2 =1;
f(-3) = (-3) 2 = 9.

Итак, мы познакомились еще с одним фрагментом математического языка: фраза «значение функции у = х 2 в точке х = 2 равно 4» записывается короче:

«если у = f(x), где f(x) = x 2 , то f(2) = 4».

А вот образец обратного перевода:

Если у = f(x), где f(x) = x 2 , то f(- 3) = 9. По-другому — значение функции у = х 2 в точке х = — 3 равно 9.

П р и м е р 1. Дана функция у = f(x), где f(x) = х 3 . Вычислить:

а) f(1); б) f(- 4); в) f(о); г) f(2а);
д) f(а-1); е) f(3х); ж) f(-х).


Решение. Во всех случаях план действий один и тот же: нужно в выражении f(x) подставить вместо х то значение аргумента, которое указано в скобках, и выполнить соответствующие вычисления и преобразования. Имеем:

Замечание. Разумеется, вместо буквы f можно использовать любую другую букву (в основном, из латинского алфавита): g(x), h (х), s (х) и т. д.

Пример 2. Даны две функции: у = f(x), где f(x) = х 2 , и у = g (х), где g (х) = х 3 . Доказать, что:

Р е ш е н и е. а) Так как f(x) = х 2 , то f(- х) = (- х) 2 = х 2 . Итак, f(x) = х 2 , f(- х) = х 2 , значит, f(- x) =f (x)

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

а) Вычислить: f(- 5), f(- 2), f(1,5),f(4), f(0).

б) Построить график функции у = f(x).

а) Что такое f-5)? Это значение заданной функции в точке х = -5. Но функция задана не одним выражением, а двумя: 2х и х 2 . Каким из них воспользоваться? Это зависит от выбранного значения аргумента. Мы выбрали х = -5, а число -5 удовлетворяет неравенству х 0, и, следовательно, функция задается выражением, стоящим во второй строке, т. е. f

Аналогично находим f(4): если х = 4, то х > 0 и, значит, f(x) = х 2 , т.е.f(4) = 4 2 = 16.
Осталось вычислить f(0). Значение х = 0, удовлетворяет условию х>0, следовательно, f(x) = х 2 , т.е. f(О) = О 2 = 0.

б) Мы умеем строить графики функций у = 2х (рис. 62) и у = х 2 (рис. 63). Заданная функция y = f(x) совпадает с функцией у = 2х при х 2 при х > 0 — эта часть графика выделена на рисунке 63. Если мы теперь изобразим обе выделенные части в одной системе координат, то получим требуемый график функции у = f(x) (рис. 64).

Конечно, математики не строят подобные графики так долго. Обычно все делается сразу в одной системе координат. Только, естественно, прямая у = 2х берется не целиком, а лишь при условии х 2 берется не целиком, а лишь при условии х > 0, т. е. на
промежутке [0, +оо). Вот так, «по кусочкам» и воспроизводится весь график. Поэтому функции такого типа, как в примере 3, называют кусочными.

Пример 4. Дана функция у = f(x), где

а) Вычислить: f(- 4), f(- 2),f(-0,5), f(0), f(1A);

б) построить график функции у = f(x).

Решение. а) Значение x = -4 удовлетворяет условию -4 2 . Следовательно, f( — 0,5) = (-0.5) 2 = 0,25.

Значение х = 0 удовлетворяет условию -1 2 . Тогда f(0) = О2 = 0.

Значение х = 1 удовлетворяет условию 0 2 , где х є [-1, 0]. На рисунке 67 изображен график функции у = 4, где x є[ 0, 4].

Наконец, на рисунке 68 все «кусочки» воссоединены в одно целое — в график функции у = f(x).

Вот так с помощью известных графиков «по кусочкам» можно строить графики на координатной плоскости.

Опишем с помощью построенного на рисунке 68 графика некоторые свойства функции у — f(x) — такое описание свойств обычно называют чтением графика.

Чтение графика — это своеобразный переход от геометрической модели (от графической модели) к словесной модели (к описанию свойств функции). А
построение графика — это переход от аналитической модели (она представлена в условии примера 4) к геометрической модели.

Итак, приступаем к чтению графика функции у = f(x) (см. рис. 68).

1. Независимая переменная х пробегает все значения от — 4 до 4. Иными словами, для каждого значения х из отрезка [- 4, 4] можно вычислить значение функции f(x). Говорят так: [-4, 4] — область определения функции.

Почему при решении примера 4 мы сказали, что найти f(5) нельзя? Да потому, что значение х = 5 не принадлежит области определения функции.

2. yнаим= -2 (этого значения функция достигает при х = -4); Унанб. = 2 (этого значения функция достигает в любой точке полуинтервала (0, 4].

3. у = 0, если 1 = -2 и если х = 0; в этих точках график функции y = f(x) пересекает ось х.

4. у > 0, если х є (-2, 0) или если x є (0, 4]; на этих промежутках график функции y = f(x) расположен выше оси х.

5. у 2
будем рассматривать функцию у = х 2 , где Построим на координатной плоскости хОу параболу у = х 2 .
Прямая х = 2 пересекает ее в точке (2; 4). Но по условию , значит, точку (2; 4) параболы мы должны исключить из рассмотрения, для чего на чертеже отметим эту точку светлым кружком.

Таким образом, график функции построен — это парабола у = х 2 с «выколотой» точкой (2; 4) (рис. 69).

Перейдем к описанию свойств функции у = f (x), т. е. к чтению ее графика:

1. Независимая переменная х принимает любые значения, кроме х = 2. Значит, область определения функции состоит из двух открытых лучей (- о, 2) и

2. унаим = 0 (достигается при х = 0), унаиб_ не существует.

3. Функция не является непрерывной, она претерпевает разрыв при х = 2 (в точке х = 2).

4. у = 0, если х = 0.

5. у > 0, если х є (-оо, 0), если х є (0, 2) и если х є (B,+оо).
6. Функция убывает на луче (- со, 0], возрастает на полуинтервале [0, 2) и на открытом луче(2, +оо].

Календарно-тематическое планирование по математике, видео по математике онлайн, Математика в школе скачать

А. В. Погорелов, Геометрия для 7-11 классов, Учебник для общеобразовательных учреждений

Если у вас есть исправления или предложения к данному уроку, напишите нам.

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

Форматированный ввод и вывод

Форматированный вывод

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

Функция форматированного вывода printf получает в качестве аргументов строку формат и аргументы, которые необходимо вывести в соответствии с форматом, и возвращает число выведенных символов. В случае ошибки возвращает отрицательное значение и устанавливает значение ferror. Если произошло несколько ошибок, errno равно EILSEQ.
int printf (const char * format, . );

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

Общий синтаксис спецификатора формата
%[флаги][ширина][.точность][длина]спецификатор
Спецификатор – это самый важный компонент. Он определяет тип переменной и способ её вывода.

Таб. 1 Спецификатор типа.

Спецификатор Что хотим вывести Пример
d или i Целое со знаком в в десятичном виде 392
u Целое без знака в десятичном виде 7235
o Беззнаковое в восьмеричном виде 657
x Беззнаковое целое в шестнадцатеричном виде 7fa
X Беззнаковое целое в шестнадцатеричном виде, верхний регистр 7FA
f или F Число с плавающей точкой 3.4563745
e Экспоненциальная форма для числа с плавающей точкой 3.1234e+3
E Экспоненциальная форма для числа с плавающей точкой, верхний регистр 3.1234E+3
g Кратчайшее из представлений форматов f и e 3.12
G Кратчайшее из представлений форматов F и E 3.12
a Шестнадцатеричное представление числа с плавающей точкой -0xc.90fep-2
A Шестнадцатеричное представление числа с плавающей точкой, верхний регистр -0xc.90FEP-2
c Буква a
s Строка (нуль-терминированный массив букв) Hello World
p Адрес указателя b8000000
n Ничего не пачатает. Аргументом должен быть указатель на signed int. По этому адресу будет сохранено количество букв, которое было выведено до встречи %n
% Два идущих друг за другом процента выводят знак процента %

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

Таб. 2 Флаги.

Флаг Описание
Выключка влево на заданное шириной значение
+ Явно указывать знак у числа, даже для положительных чисел
(пробел) Если знак не будет выведен, то вставляет пробел перед выводимым числом
# Когда используется вместе с o, x или X, вставляет перед числом 0, 0x или 0X
Когда используется со спецификаторами a, A, e, E, f, F, g или G, вставляет десятичную точку, даже если после неё нет десятичных знаков.
Вставляет нули, когда объявлен спецификатор ширины
Таб. 3 Ширина.
Ширина Описание
(число) Минимальное количество знаков, которое необходимо вывести. Если в числе меньше знаков, то вставляет пробелы (или нули)
* Ширина не указана в строке формата, она передаётся отдельно в виде аргумента, который должен предшествовать выводимому числу
Таб. 4 Точность.
.Точность Описание
.число Для спецификаторов целых (d, i, o, u, x, X) точность определяет минимальное количество знаков, которое необходимо вывести. Если значение короче, то выводятся нули перед числом. Значение не обрезается, даже если оно длиннее. Точночть 0 означает, что для значения 0 ничего не выводится.
Для спецификаторов чисел с плавающей точкой (a, A, e, E, f, F) это число знаков, которые необходимо вывести после десятичной точки (по умолчанию 6).
Для g и G — это число значащих разрядов, которые необходимо вывести.
Для s — выводится указанное число символов. По умолчанию выводятся все символы до первого нулевого.
Если число не стоит, то по умолчанию точность равна 0
.* Точность не указана в строке формата, она передаётся отдельно в виде аргумента, который должен предшествовать выводимому числу

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

Таб. 5 Длина.

спецификаторы
Длина d, i u o x X f F e E g G a A c s p n
(none) int unsigned int double int char* void* int*
hh signed char unsigned char signed char*
h short int unsigned short int short int*
l long int unsigned long int wint_t wchar_t* long int*
ll long long int unsigned long long int long long int*
j intmax_t uintmax_t intmax_t*
z size_t size_t size_t*
t ptrdiff_t ptrdiff_t ptrdiff_t*
L long double

Форматированный ввод

Рассмотрим форматированный ввод функцией scanf.
int scanf(const char*, . )
Функция принимает строку формата ввода (она похожа на строку формата printf) и адреса, по которым необходимо записать считанные данные. Возвращает количество успешно проинициализированных аргументов.
Формат спецификатора ввода
%[*][ширина][длинна]спецификатор

Таб. 6 Спецификатор типа.

Спецификатор Описание Выбранные символы
i, u Целые Произвольное число цифр (0-9), возможно, начинающихся с + или -. Если число начинается с 0, то считывается в восьмеричном формате, если с 0x, то в шестнадцатеричном.
d Десятичное целое Произвольное число цифр (0-9), возможно, начинающихся с + или -.
o восьмеричное целое Произвольное число цифр (0-7), возможно, начинающихся с + или -.
x Шестнадцатеричное целое Произвольное число цифр (0-F), возможно, начинающихся с + или — и префикса 0x или 0X.
f, e, g Число с плавающей точкой Число, состоящее из набора цифр 0-9, возможно с десятичным разделителем (точкой). Возможно также представление в экспоненциальной форме. C99 позволяет также вводить число в шестнадцатеричном формате.
a
c Символ Если ширина не передана, то считывает один символ. Если ширина передана, то считывает нужное количество символов и размещает их в массиве БЕЗ терминального символа на конце.
s Строка Считывает все не пробельные символы. Если указана ширина, то не более n символов. Ставит на место n+1 символа терминальный.
p Адрес указателя Последовательность символов, трактуемая как адрес указателя. Формат зависит от реализации, но совпадает с тем, как выводит printf с ключом p
[символы] Множество символов Считывает только те символы, которые записаны в квадратных скобках, С99
[^символы] Множество символов Считывает только те символы, которые не указаны в квадратных скобках, С99
n Ничего не считывает Сохраняет число уже считанных символов по указанному адресу

Как и в printf, ширина, заданная символом * ожидает аргумента, который будт задавать ширину. Флаг длина совпадает с таким флагом функции printf.

Кроме функций scanf и printf есть ещё ряд функций, которые позволяют получать вводимые данные

int getch() [aka _getch(), getchar()] — возвращает введённый символ, при этом не выводит его на консоль.

char * fgets ( char * str, int num, FILE * stream ) — функция позволяет считывать строку с пробельными символами. Несмотря на то, что она работает с файлом, можно с её помощью считывать и из стандартного потока ввода. Её преимущество относительно gets в том, что она позволяет указать максимальный размер считываемой строки и заканчивает строку терминальным символом.

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

Непечатные символы

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

Свойство RecordSource (Источник записей)

Применение

Свойство RecordSource (Источник записей) задает источник данных для формы или отчета. Возвращает доступное для чтения и записи значение типа String.

выражение (обязательно). Выражение, возвращающее один из объектов из списка «Применение».

Замечания

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

Имя таблицы, указывающее в качестве источника данных таблицу Employees.

SELECT Orders!OrderDate FROM Orders;

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

Примечание: Свойство RecordSource можно задать с помощью страницы свойств формы или отчета, макроса или кода Visual Basic для приложений (VBA).


В VBA для задания значения свойства используется строковое выражение.

Примечание: Изменение источника записи открытой формы или отчета приводит к автоматическому повторному запросу исходных данных. Если свойство Recordset задается в процессе выполнения, свойство RecordSource обновляется.

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

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

Пример

В следующем примере в качестве значения свойства RecordSource формы задана таблица Customers.

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

Q TC FC VC MC AC AFC AVC

1 17 10 7 7 17 10 7

2 21 10 11 4 10.5 5 5.5

3 24 10 14 3 8 3.3 4.7

4 28 10 18 4 7 2.5 4.5

5 34 10 24 6 6.8 2 4.8

6 44 10 34 10 7.3 1.7 5.7

7 59 10 49 15 8.4 1.4 7.0

1. Валовые (общие) издержки TC рассчитываются как сумма постоянных издержек FC и переменных издержек VC, то есть: TC = FC+VC.

При Q = 0 переменные издержки VC = 0, значит, TC = FC при Q = 0.

FC являются постоянной величиной при любом объеме производства, в том числе при нулевом объеме, то есть FC=TCо =10дол = const при любом объеме Q.

2. Переменные издержки определяются как разница между общими и постоянными издержками при каждом объеме производства: VC=TC — FC.

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

4. Средние издержки – это издержки в расчете на одну единицу продукции:

5. на основе таблицы нарисуем графики всех видов издержек.

1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Сдача сессии и защита диплома — страшная бессонница, которая потом кажется страшным сном. 8771 — | 7143 — или читать все.

188.64.174.135 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Архитектура

Среда распространения

Любое устройство (компьютер, сервер, принтер, накопитель и т. д.), имеющее возможность обмениваться данными с использованием технологии Fibre Channel, называется N_порт (Node port) или просто узел. В настоящее время межузловой обмен происходит по полнодуплексным последовательным соединениям со скоростью 1.0625 GBit/s.

Множество связанных между собой N_портов Fibre Channel образуют среду распространения сигнала. Во избежание смешения с устоявшимися понятиями разработчики данной технологии решили не использовать для ее обозначения слово «network», и предпочли ввести новый термин «fabric». Учитывая, что нам до сих пор ни разу не попадались удачные примеры перевода этого слова на русский язык, предлагаем хотя бы в рамках данной статьи называть такую среду распространения «решеткой».

Понятие решетки аппаратно независимо и не рассматривает топологию физических межсоединений между ее отдельными узлами. Единственное ограничение заключается в максимально допустимом размере адресного пространства 2 24 , т. е. более 16 миллионов узлов (эквивалентно сети класса A).

Архитектурная модель Fibre Channel в деталях описывает параметры соединений и протоколы обмена между отдельными узлами решетки. Примерно как и в случае сетевых протоколов, эта модель может быть представлена в виде многослойного стека функциональных уровней, хотя и без непосредственного соответствия с OSI. Пять функциональных уровней архитектуры Fibre Channel определяют физический интерфейс, схему кодировки, сигнальный протокол, общие процедуры и связь с приложениями. Нумерация идет от самого низкого аппаратного уровня FC-0, отвечающего за параметры физического соединения до верхнего программного FC-4, взаимодействующего с приложениями более высокого уровня.

Среда передачи и физические интерфейсы (fc-0)

На данном уровне задаются физические параметры полнодуплексного последовательного соединения между портами. В качестве среды передачи может быть использована витая пара, коаксиальный или твинаксиальный кабели, а также многомодовое или одномодовое волокно. Источниками света могут служить как мощные длинноволновые OFC лазеры, так и менее дорогие non-OFC. Для снижения задержек и уменьшения электрических и температурных перепадов по соединению идет постоянная и равномерная передача и прием сигнала. Кроме того, в целях предотвращения низкочастотных токов структура передаваемого сигнала должна быть сбалансирована постоянным чередованием 0 и 1 вне зависимости от присутствия в нем полезных данных, что упрощает точное распознавание сигнала и снижает количество ошибок. Упрощенно говоря, в FC-0 определяется способ передачи полученных с более высокого уровня бинарных последовательностей. Нелишне также отметить, что именно данный уровень позволяет изменять скорости передачи от 250 Mbit/s до 8 Gbit/s, не затрагивая остальные более высокие уровни.

Протокол передачи (fc-1)

Протокол передачи определяет, как «вплести» данные в нижележащие сигналы FC-0, как установить соединения между портами и как, в случае необходимости, исправить обнаруженную ошибку. На этом уровне с помощью кодировки IBM 8b/10b 8-битовые порции данных преобразуются в 10-битовые сбалансированные по количеству 0 и 1 последовательности, что требуется для корректной работы FC-0. Для этого каждый планируемый к передаче байт (любой из 256 символов ASCII) преобразуется в четыре возможных комбинации для 10-битового представления, после чего выбираются две наиболее сбалансированные. Здесь действуют два простых правила — не менее 4 нулей и единиц в 10-битовой последовательности и не более четырех 0 или 1 подряд. В итоге, из двух предложенных ему на выбор 10-битовых последовательностей уровень FC-0 передает ту, первый символ которой отличается от последнего символа предыдущей. Таким образом, кодировка 8b/10b выполняет функцию НЧ фильтра, не пропуская низкочастотную составляющую и существенно облегчая работу приемника.

На этом уровне также используется символ K28.5 (только не спрашивайте нас, что означает K28.5, лучше сразу звоните на IBM :-). Эта 10-битовая последовательность не может быть получена из символов ASCII путем преобразования 8b/10b, поэтому может смело применяться в качестве служебной. Разумеется, для соответствия объявленным правилам передачи и этот символ существует как в виде позитива (1100000101), так и негатива (0011111010). В соответствии с теми же правилами последовательность из пяти 0 или 1 не может встретиться при передаче данных и однозначно определяется, как служебный сигнал.

В результате применяемых на уровнях FC-0/1 алгоритмов вероятность возникновения ошибки на переданный бит (BER — Bit Error Rate) составляет ничтожную величину 10 -12 , что на три порядка лучше, чем для применяемых в SCSI или Ethernet асинхронных способов передачи.

Сигнальный протокол (fc-2)

Вот мы и дошли до самого интересного, составляющего основное ядро Fibre Channel. Сигнальный протокол определяет иерархическую структуру посылок для установления связей между работающими через FC-AL приложениями. Основными объектами этого уровня являются слова (words), кадры (frames), пакеты (sequences) и обмены (exchanges).

Базовым элементом и минимальной единицей передачи является слово, но пересылка данных между узлами FC-AL требует помещения слов в некий контейнер. Ничего удивительного, что такой контейнер назван кадром.

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

Набор пакетов, которыми обмениваются узлы для обслуживания работающего через них приложения, называется обменом. Обмен, понимаемый как диалог между двумя приложениями высокого уровня, является двунаправленным, и после своего начала может оставаться открытым сколь угодно долго. Такая синтаксическая конструкция является отличительной чертой Fibre Channel и позволяет ему поддерживать огромное количество протоколов одновременно.
Здесь нужно обратить внимание, что сама решетка Fiber Channel умеет работает исключительно с кадрами, доставляя их между отправляющим и получающим узлами. Она даже не подозревает о более сложных синтаксических конструкциях в виде пакетов или обменов, которые создаются и разбираются самими узлами.

Слова (words)

Передача в Fibre Channel идет строго 4-байтовыми словами, т. е. 40-битовыми последовательностями на уровне FC-0. Слова идут слитно и постоянно вне зависимости от наличия информации для передачи, когда передающий порт генерирует слова-пустышки (IDLE) в соответствии с требованиями уровня FC-0.

Для пересылки данных все байты представлены в виде символов ASCI. Если первый байт слова, вернее даже, его первые 10 бит на уровне FC-1 замещаются на служебный символ K28.5, то оно распознается, как служебное (ordered set) и, в зависимости от содержимого трех остальных байт, приобретает различную смысловую нагрузку. Примерами служебных слов могут быть IDLE (постоянная передача, когда все равно больше нечем заняться), ARB (запрос на арбитраж в петле), SOF (начало кадра) и EOF (конец кадра).

Кадры (frames)

Служат «транспортными контейнерами» для пересылок между отдельными узлами решетки. Начало кадра определяется служебным словом SOF (Start Of Frame), структуру которого мы рассматривали ранее. Непосредственно за SOF располагаются шесть слов заголовка и от 0 до 528 смысловых слов. Кадр завершается контрольным словом CRC (Cyclic Redundancy Check) и EOF (End Of Frame). Другими словами, размер каждого кадра может варьировать от 9 до 537 слов, что позволяет его гибко подстраивать под объем передаваемой информации.

Следующее сразу за SOF первое слово заголовка (header word 0) содержит адрес маршрутизации по решетке Fibre Channel. Остальные пять слов заголовка содержат уникальные идентификаторы последовательностей (header word 1), обменов (header word 2), определяют номер кадра в этих конструкциях (header word 3), относительное смещение в оперативной памяти (header word 4) и тип сообщений (header word 5) — SCSI, IP, AV, VI etc.

Далее размещаются смысловые слова, ради которых все это и затевалось. Их количество в кадре может варьировать от 0 до 528 и определяется передающим портом с учетом собственных возможностей и возможностей остальных портов, информацию о чем он получает во время процедуры подключения (log-in).

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

Как уже все догадались, кадр закрывается с помощью слова EOF. И только после получения EOF порт опознает предыдущее слово, как CRC, ведь в нем все 4 байта являются контрольными и служебному символу K28.5 попросту не хватило места.

После столь детального разбора структуры кадра пришло время рассказать про одну маленькую деталь, о которой обычно умалчивают разработчики Fibre Channel в публикациях, рассчитанных на массовую аудиторию потенциальных пользователей. Ее некоторая скандальность заключается в том, что после завершения кадра N_порт обязан также передать не меньше 6 слов IDLE.

В основе требования передачи шести слов IDLE между кадрами заложена та же самая идея, что и при выборе кодировки 8b/10b — пожертвовать некоторой частью полосы канала для получения простого, недорогого и вместе с тем надежного механизма передачи. Кодировка 8b/10b «съедает» 20% пропускной способности канала в обмен на простой и надежный механизм распознавания слов. Шесть слов IDLE между кадрами делают примерно то же самое для обработки самих кадров. Дело в том, что в процессе передвижения кадра по решетке все встречающиеся ему на пути узлы имеют слегка отличающиеся собственные опорные частоты. В итоге, узел с несколько меньшей собственной частотой посылает кадры несколько медленнее, чем принимает, поэтому во избежание «наползания» кадров друг на друга он просто время от времени выкидывает слова IDLE между ними. C той же целью более «быстрый» узел также время от времени может вставлять недостающие IDLE, чтобы «не наступать на пятки» своему соседу.

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

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

Если вспомнить о 20% избыточности 8b/10b, то в данном случае 1 Gbit/s = 100 MBytes/s. А чтобы иметь возможность обеспечить поток пользовательских данных 100 MBytes/s с учетом избыточности CRC, адресных заголовков и других служебных слов, сейчас на уровне FC-0 используется скорость аппаратной передачи 1.0625 Gbit/s.

Таким образом, учитывая полнодуплексную реализацию Fibre Channel, можно говорить о представлении пользователю 200 MBytes/s в случае симметичности потоков данных, т. е. в контексте технологии FC-AL 1.0625 Gbit/s = 200 MBytes/s.

Пакеты (sequences)

Синтаксическая конструкция пакетов FC-AL определяется как серия из одного или нескольких кадров, несущих отдельные порции единого блока информации. К примеру, SCSI команда вполне помещается в один кадр и, в данном случае, рассматривается, как пакет. Совершенно такая же ситуация и с 2 GB блоком данных, только пакет в этом случае будет состоять из 960 млн кадров. Блок данных всегда передается последовательно, что определяется протоколами более высокого уровня. Тем не менее, если при движении по решетке некоторые кадры будут задержаны, принимающий порт способен корректно собрать принятые кадры в блок данных на основании содержащихся в заголовке SEQ_ID (идентификатор последовательности) и SEQ_CNT (порядковый номер кадра в последовательности).

Обмены (exchanges)

Каждое взаимодействие между приложениями через Fibre Channel происходит в контексте обмена. Каждый обмен имеет инициатора (originator) и ответчика (responder). Для начала обмена инциатор посылает первый кадр первого пакета обмена ответчику. Содержимое кадра может составлять, к примеру, SCSI команду. В заголовке этого кадра инициатор присваивает значение OX_ID (exchange originator identification). После этого все кадры данного обмена будут возвращаться от ответчика с этим же OX_ID, что позволит инициатору получать контекстную информацию о приложениях и протоколах более высокого уровня из собственной таблицы соответствий. Одновременно с этим ответчик приваивает собственное значение RX_ID (exchange responder identification) в первом кадре своего первого пакета в пределах данного обмена. После получения этого кадра инициатором все дальнейшие кадры содержат уникальные идентификаторы сторон в контексте данного обмена, что позволяет точно установить принадлежность кадров при нескольких одновременных обменах. К примеру, кадры пакетов обмена SCSI командами могут приходить вперемешку с кадрами пакетов обмена IP, но порт сможет рассортировать их «на лету», отделив мух от котлет. Когда обмен завершен, соответствующие значения OX_ID и RX_ID освобождаются для использования в будущих обменах. Таким образом N_порт FC-AL может рассматриваться, как многопротокольный маршрутизатор.

Каждый порт способен начать и поддерживать до 64 тыс. конкурентных обменов. Одновременно с этим он способен отвечать еще на 64 тыс. обменов с их поддержкой.

Оригинальность синтаксической структуры Fiber Channel, поддерживаемая словами 1-5 заголовка, разительно отличает его от остальных протоколов передачи. Во-первых, порт имеет возможность конкурентной поддержки различных протоколов высокого уровня. Во-вторых, управление типами передачи выполняется на аппаратном уровне с минимальными микросекундными задержками. И, самое главное, все это происходит без участия системной шины, центрального процессора и операционной системы, т. е. не создавая потенциально узкие места.

Общие процедуры (fc-3)

Этот уровень зарезервирован под описание общих процедур при наличии двух или более N_портов в хосте. Одним из примеров такой процедуры является образование «группы захвата» (hunt group), когда два или более N_портов объединяются под единым адресом, что позволяет увеличить пропускную способность канала от порта до Fibre Channel решетки.

Отображение протоколов (fc-4)

Как и все предыдущие уровни, FC-4 также является чисто аппаратным и отвечает за преобразование различных протоколов в сигнальный протокол FC-AL и обратно. На основании заголовка пришедшего кадра содержащиеся в нем данные преобразуются и помещаются в область оперативной памяти, выделенную для приложения. Понятно, что вряд-ли эта функция может быть реализована программно при скоростях обмена 200 Mbytes/s, вследствие чего на этом уровне хранится аппаратный набор логических матриц (profiles), определяющих бинарное соответствие FC-AL и наследуемых протоколов высокого уровня.

По нашему глубокому убеждению, именно качество стандартизации логических матриц данного уровня будет определять коммерческий успех технологии Fibre Channel в целом. Дело в том, что преобразование одного протокола в другой может производиться различными методами и на первых порах производителям не всегда удавалось договориться, чей же метод эффективнее и быстрее, особенно когда каждый из них уже потратил деньги на разработку собственного набора микросхем. Тем не менее, на сегодняшний день методы преобразования SCSI (для жестких дисков) и IP уже определены и приняты в виде стандарта. В ближайшее время будет завершена работа по принятию таких же единых методов преобразования для недисковых устройств SCSI, а также FDDI, Token Ring, ATM, AV, VI, IBM SBCCS, HIPPI и многих других. После того, как метод преобразования конкретного протокола принимается, его алгоритм становится доступным для любого производителя, что делает бессмысленным использование собственного метода и гарантирует совместимость различных устройств.

Илон Маск рекомендует:  Что такое код ifxus_write_slob
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL