29. SCL-блоки
29 - 12 Automating with STEP 7 in STL and SCL
Автоматизация посредством STEP 7
с использованием STL и SCL
Функции FC с функциональным значением могут использоваться в любых
выражениях в качестве операндов с таким же типом данных, например, в
выражениях присваивания. В данном примере глобальной переменной
Result присваивается функциональное значение функции FC 292.
При вызове используется либо абсолютный, либо символьный адрес
блока, за которым в скобках следует список параме тров.
Все параметры должны быть инициализированы, при этом порядок их
следования может быть произвольным. Скобки должны быть указаны,
даже ес ли функция FC не имеет параметров.
Если функция имеет единственный входной параметр, то имя параметра
при инициализации может быть опущено.
Если Вы используете при вызове блока входной параметр EN, и если этот
вход имеет значение FALSE (ЛОЖЬ), то функциональное значение не
будет определено (функциональному значению не будет присвоено
никакой величины).
29.3.3 Функциональный блок со своим собственны м блоком
данных
Экземплярный блок данных специфицируется, когда производится вызов
функционального блока. Он может быть либо запрограммирован в
исходной программе (после функционального блока и перед его вызовом),
либо сгенерирован в среде программирования на SCL, если он еще
существует. Экземплярный блок данны х может быть запрограммирован
на SCL также и инкрементным способо м, без исходной программы, (см.
раздел 3.6.1 "Инкрементное программирование блоков данных").
Любой свободный блок данных может использоваться как экземплярный
блок данных. При этом пользователь свободен в выборе символьного
имени в допустимых пределах.
DATA_BLOCK DB291
FB291
BEGIN
END_DATA_BLOCK
Пример вызова функционального блока с экземплярным блоком данных:
FB291.DB291(IN := InputValue);
Result := DB291.OUT;
Вызов записывается как адрес функционального блока с последующим
адресом экземплярного блока, отделенные точкой, и далее - список
параметров в скобках. В качестве адресов могут использоваться либо
абсолютный, либо символьный адрес блока.
Инициализация параметров функционального блока необязательна. Так
как входные/выходные параметры сложных типов сохраняются как
указатели, они должны быть инициализированы значащими величинами
при первом вызове функционального блока. Если параметр блока не
инициализирован, то он сохраняет свое последнее определенное
значение. Скобки должны присутствовать в записи, даже если не
инициализированы никакие параметры.