Функция используется как стандартный функциональный
Вот пример вызова “C” функции в операторе присвоения:
result := ProcName (par1, par2, ... parN);
Программа FBD может вызывать любую “C” функцию. Функция используется как стандартный функциональный ящик. Ее параметры вызова соединяются с левой стороной функционального ящика. Возвращаемый параметр соединяется с правой стороной ящика. Вот стандартный вид такого функционального ящика:
“C” функция может быть вызвана из любого блока действия SFC или любого блока действия, прикрепленного к переходу.
Определение интерфейса “C” функции
Команда “Параметры”
меню “Редактировать” используется для определения параметров вызова и возврата новой функции. Функция может иметь до 31 параметра вызова, и всегда имеет один параметр возврата. Следующий диалог используется для описания параметров “C” функции:
Список в верхней части окна показывает параметры “C” функции, в соответствии с порядком прототипа: сначала параметры вызова, в конце параметр возврата. Нижняя часть окна показывает детальное описание параметров выбранных в списке:
- имя параметра
- направление параметра (вызов/возврат)
- тип параметра
Для параметра может быть использован любой тип данных: булевский, целый аналоговый, действительный аналоговый, таймер или сообщение. Целый или аналоговый действительный должны различаться.
Ниже представлено соответствие между типами ISaGRAF и “C”:
BOOLEAN
unsigned long
32 битное беззнаковое слово: 1=true / 0=false
ANALOG
long
32 битное знаковое целое слово
REAL
float
плавающее значение с одиночной точностью
TIMER
unsigned long
32 битное беззнаковое слово (единица - это 1 миллисекунда)
MESSAGE
char *
строка символов
Когда значение сообщения приходит в “C” функцию, оно не может содержать нулевого символа. Строка, приходящая в “C” код заканчивается нулем. Не забывайте, что возвращаемый параметр должен быть последним в списке. Имена параметров должны удовлетворять следующим правилам: