
SFC для связи с помощью г лобальных данных
17-2 Системные и стандартные функции для S7-300 и S7-400
C79000-G7076-C567-01
17.1 Передача GD–пакет а с помощью SFC60 "GD_SND"
Описание
С помощью SFC 60 ”GD_SND” (global data send [передача глобальных
данных]) данные пакета глобальных да нн ых (GD–пакета) собираются и затем
передаются по маршруту, указанному в GD–пакете. Перед этим GD–пакет
должен быть сконфигурирован с помощью STEP 7.
SFC60 "GD_SND" может быть вызван лю бом месте программы пользователя.
Вызовы SFC60 не влияют на скорость сканирования, а также сбор и передачу
данных системой в точке контроля цикла.
Возможность прерывания
SFC60 "GD_SND" может прерываться более высокими классами приоритет а.
Возможно также, что SFC60 вновь вызывается для того же GD-пакета в более
высоком классе приоритета .
Тогда данные собираются и передаются в более высо ком классе приоритета.
Когда программа возвращается в прерванную SFC, последняя немедленно
завершается, а уже собранные данные отбрасываются.
Эта процедура означает , что при обработке самого высокого класса
приоритета передаются консистентные данные (в смы сле консистентности,
определенной для гло бальных данны х).
Консистентность данных в GD
Для обеспечения консистентн ости данных , собранных из различных областей
памяти, и пере данных данных применяются следующие правила.
Консистентными данными могут быть:
• данные простых типов (бит, байт, слово и двойное слово)
• массив данных типа байт, слово и двойное слово длиной, не
превышающей максимума, завис ящего от конкретного CPU.
Обеспечение консистентности для всего GD–пакета
GD-па кет в CPU, передающем данные, имеет структуру, кот орая не
гарантирует автоматически, что собранные данные будут консистентными.
Это, например, имеет место, когда пакет состоит из массива байтов, и
количество байтов превы шает максимальную длину для кон кретного CPU.
Если, одна ко, Вам нужна консистентность для всего GD-пакета, то след уйте в
своей програм ме п роцедуре, описанной ниже:
• Заблокируйте или заде ржите появлен ие более приоритетны х прерываний
и асинхронных ошибок, вызвав SFC 39 ”DIS_IRT” или SFC 41 ”DIS_AIRT”.
• Вызовите SFC60 "GD_SND".
• Вновь разб локируйте более приоритетные прерывания и асинхронные
ошибки, вызвав SFC 40 ”EN_IRT” или SFC 42 ”EN_AIRT”.