Улучшенная техника программирования

Эта глава содержит больше информации об ISaGRAF Workbench и целевой системе. Рекомендуется, чтобы пользователь был знаком со средствами и методами ISaGRAF перед чтением этого раздела.

Немного больше о средствах ISaGRAF

Заблокированный В/В и виртуальный В/В

Проверка достоверности связи PC-PLC

Каталоги ISaGRAF

Символы приложения

Ограничения ISaGRAF LARGE (WDL) workbench


Немного больше о средствах ISaGRAF

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

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

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


Заблокированный В/В и виртуальный В/В

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

Общие положения главных свойств управления В/В

Виртуальный атрибут	Команда блокировки

средство выбора	соединение платы В/В	отладчик

определение	статичный	динамичный

режим выбора	плата	переменная

приложение	проверка достоверности и тесты	обслуживание

Следующая схема объясняет поток данных В/В между задачами ISaGRAF:

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

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

Когда устанавливается виртуальный атрибут для входа, входная база данных и соответствующие входные устройства не соединены. Виртуальный драйвер В/В заменяет реальный драйвер.

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

Обобщим все возможности:


Проверка достоверности связи PC-PLC

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

Язык С, используемый для описания функций преобразования и С функций, разрешает прямой доступ к целевой системе. Ошибки программирования в таком программном компоненте могут вызывать системные ошибки или некорректное поведение системы ISaGRAF. Такие проблемы могут случаться, когда драйверы В/В разрабатываются с Опцией ISaGRAF IO development tool. Системные ошибки, например, могут произойти, если плата В/В подключена на неправильный адрес шины. Следующая таблица дает синтетическое обобщение диагностики ошибок:

статус	контекст	диагностика

нет связи 	- цель не запущена

(перед загрузкой)	- нет кабеля / плохой кабель

- неправильные параметры связи

- цель ISaGRAF плохо установлена

нет связи 	цикл за циклом 	неправильная конфигурация В/В

(после загрузки)	режим запуска	- сбой системы

реальное время	- неправильная конфигурация В/В

режим запуска	- сбой системы (из-за С программирования)

 нет приложения	- приложение не загружено

- приложение не запущено (из-за С

программирования)

- несовпадение Intel/Motorola

- неправильная целевая версия


Каталоги ISaGRAF

ISaGRAF Workbench работает со специализированной структурой каталога диска. Корневой каталог в этой архитектуре определяется пользователем во время установки ISaGRAF. Имя по умолчанию для корневого каталога - ISAWIN. Это стандартная архитектура диска, созданная программой установки:

Это стандартные подкаталоги ISaGRAF

КАТАЛОГ	СОДЕРЖИМОЕ
APL	корневой каталог для проектов ISaGRAF каждый проект соответствует одному подкаталогу, который содержит все данные проекта
COM	данные из разряда общие Данные могут быть использованы любым проектом
EXE	программы ISaGRAF и файлы подсказок
LIB	библиотеки IsaGRAF: - списки элементов - параметры или интерфейс для каждого элемента - технические замечания
LIB\IOC	исходные коды для конфигураций В/В
LIB\FNC	исходные коды функций, написанных на языке IEC
LIB\FBL	исходные коды функциональных блоков , написанных на языке IEC
LIB\SRC	исходные коды для преобразований и С функций
LIB\DEFS	исходные заголовки для преобразований и С функций
LIB\RELS	объектные коды преобразований и С функций
LIB\DEV	командные файлы для разработки С библиотек makefiles, списков связей и т.д.
TMP	временные файлы: TMP подкаталоги зарезервированы для Генератора Кодов ISaGRAF и не может быть уничтожен.

Подкаталоги могут быть перенесены на другое место на диске. Когда у пользователя нестандартная архитектура, пути к подкаталогам должны быть определены в разделе WS001 в файле инициализации ISA.ini, в подкаталоге EXE. Здесь даны вхождения в разделе WS001:

Isa	корневой каталог для архитектуры ISaGRAF
IsaExe	корневой каталог для программ и файлов подсказок ISaGRAF
IsaApl	корневой каталог для проектов ISaGRAF
IsaTmp	каталог для временных файлов
IsaSrc	каталог для библиотечных исходных кодов
IsaDefs	каталог для библиотечных исходных заголовков

Заметьте, что если вы меняете IsaTmp вхождение на другой каталог, то вы должны создать подкаталоги OBJS, RELS и DATA в новом каталоге.

Следующий пример использует вхождения раздела WS001 для переопределения стандартной дисковой архитектуры ISaGRAF:

;file c:\ISAWIN\EXE\ISA.ini

[WS001]

Isa=c:\isawin

IsaExe=c:\isawin\exe

IsaApl=c:\isawin\apl

IsaTmp=c:\isawin\tmp

IsaSrc=c:\isawin\lib\src

IsaDefs=c:\isawin\lib\defs

Когда вы хотите добавить функцию С или функциональный блок в целевое приложение ISaGRAF, то каталог \ISAWIN\LIB\DEV используется для сохранения файлов разработки: командных файлов, мейкфайлов, карт и т.д. \ISAWIN\LIB\RELS используется для сохранения объектных файлов, генерируемых во время С компиляции, и для ISaGRAF С библиотек, требуемых для операции LINK.


Символы приложения

 К каждому объекту приложения ISaGRAF ссылаются по имени (введенному во время объявления переменной	) и по внутреннему виртуальному адресу, вычисленному генератором кодов. Виртуальный адрес переменной - это не ее сетевой адрес, введенный во время объявления переменной. Виртуальные адреса используются для связной работы, и специальных С приложений, использующих опцию IO development tool. Когда генератор кодов ISaGRAF запущен, он создает ASCII файл с логическим соответствием между именами и виртуальными адресами для всех объектов (переменные, программы, шаги…) проекта. Этот файл может быть легко запрошен из любого приложения пользователя для получения информации о статической базе данных ISaGRAF. Файл называется APPLI.TST и располагается в каталоге проекта ISaGRAF: \ISAWIN\APL\proname (proname - имя проекта). Этот раздел описывает детальный формат файла APPLI.TST. Основные нотации, используемые для последующего описания, показаны ниже:

VA	виртуальный адрес

ATTR	атрибут переменной

USR	С функция

Возможные значения для атрибутов переменной показаны ниже. Такие значения содержатся в полях атрибутов (attributes):

+X	внутренняя переменная

+C	внутренняя переменная только на чтение

+I	входная переменная

+O	выходная переменная

Все числа, исключая виртуальные адреса, выражаются как десятичные целые. Виртуальные адреса (VA) выражаются как шестнадцатеричные числа их 4 цифр, и предваряются символом !. Например:

123	это десятичное значение

!А003	это шестнадцатеричный виртуальный адрес

Основная структура файла APPLI.TST показана ниже. Файл структурирован как список блоков. Блок - это список записей. Каждая запись описывается на одной строке текста. Каждый блок начинается с заголовка, помещенного на одной строке текста.

начало блока

описание блока

конец блока

Основной синтаксис одного блока показан ниже:

@ <block_name> <arguments>

#record...

#record...

...

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

@ISA_SYMBOLS,<appli_crc>

#NAME,<appli_name>,<version>

#DATE,<creation_date>

#SIZE,G=<nbprg>,S=<nbstep>,T=<nbtra>,L=0,P=<nbpro>,V=<nbvar>

#COMMENT,cj international

appli_crc	контрольная сумма символов приложения

appli_name	имя приложения

version	номер версии ISaGRAF

creation_date	дата генерации приложения

nbprg	число программ

nbstep	число шагов SFC

nbtra	число транзакций SFC

nbpro	число используемых функций "C"

nbvar	общее число переменных

Структура последнего блока, который указывает конец файла, показана ниже:

@END_SYMBOLS

Структура блока, используемого для описания программ приложения, показана ниже:

@PROGRAMS,<nbprg>

#<va>,<name>

#...

nbprg	число программ, определенных в этом блоке

va	виртуальный адрес программы

name	имя программы

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

@STEPS,<nbsteps>

#<va>,<name>,<father>

#...

nbsteps	число шагов, определенных в этом блоке

va	виртуальный адрес шага

name	имя шага

father	виртуальный адрес родителя

Структура блока, используемого для описания SFC транзакций приложения, показана ниже:

@TRANSITIONS,<nbtrans>

#<va>,<name>,<father>

#...

nbtrans	число транзакций, определенных в этом блоке

va	виртуальный адрес транзакции

name	имя транзакции

father	виртуальный адрес родителя

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

@BOOLEANS,<nb_boo>

#<va>,<name>,<attr>,<program>,<eq_false>,<eq_true>

#...

и если число переменных превосходит 4095:

X#(1.<varno>),<name>,<attr>,<program>,<eq_false>,<eq_true>

nb_boo	число переменных в этом блоке

va	виртуальный адрес переменной

varno	диапазон адреса

name	имя переменной

attr	атрибут переменной

program	виртуальный адрес программы родителя

или !0000 для глобальной переменной

eq_false	строка, используемая для значения ложь (false)

eq_true	строка, используемая для значения истина (true)

Структура блока, используемого для описания аналоговых переменных приложения, показана ниже:

@ANALOGS,<nb_ana>

#<va>,<name>,<attr>,<program>,<format>,<unit>

#...

и если число переменных превосходит 4095:

X#(2.<varno>),<name>,<attr>,<program>,<eq_false>,<eq_true>

nb_ana	число переменных в этом блоке

va	виртуальный адрес переменной

varno	диапазон адреса

name	имя переменной

attr	атрибут переменной

program	виртуальный адрес программы родителя

или !0000 для глобальной переменной

format	= "I" для целой переменной

= "F" для вещественной переменной

unit	строка блока

Структура блока, используемого для описания переменных таймера приложения, показана ниже:

@TIMERS,<nb_tmr>

#<va>,<name>,<attr>,<program>

#...

и если число переменных превосходит 4095:

X#(3.<varno>),<name>,<attr>,<program>,<eq_false>,<eq_true>

nb_tmr	количество переменных в этом блоке

va	виртуальный адрес переменной

varno	диапазон адреса

name	имя переменной

attr	атрибут переменной (всегда +Х: внутренняя)

program	виртуальный адрес программы родителя

или !0000 для глобальной переменной

Структура блока, используемого для описания переменных сообщения приложения, показана ниже:

@MESSAGES,<nb_msg>

#<va>,<name>,<attr>,<program>,< max_len>

#...

и если число переменных превосходит 4095:

X#(4.<varno>),<name>,<attr>,<program>,<eq_false>,<eq_true>

nb_msg	число переменных в этом блоке

va	виртуальный адрес переменной

varno	диапазон адреса

name	имя переменной

attr	атрибут переменной

program	виртуальный адрес программы родителя

или !0000 для глобальной переменной

max_len	максимальная длина (объявленный диапазон)

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

@USP,<nb_usp>

#<va>,<name>

#...

nb_usp	число С функций в этом блоке

va	виртуальный адрес С функции

name	имя С функции

Структура блока, используемого для описания экземпляров функционального блока С, примененных в приложении, показана ниже:

@FBINSTANCES,<nb_fb>

#<va>,<inst_name>,<fb_name>

#...

nb_fb	число экземпляров функционального блока С в этом 	блоке

va	виртуальный адрес экземпляра функционального блока 	С

inst_name	имя экземпляра функционального блока С

fb_name	имя ссылки функционального блока С


Ограничения ISaGRAF LARGE (WDL) workbench

Здесь даны некоторые ограничения для объектов, используемых в ISaGRAF workbench. Конечно, имеется много других практических ограничений из-за конфигурации используемого компьютера (доступной памяти и дискового пространства), и возможностей целевой системы ISaGRAF (доступной памяти, доступных аппаратных и программных ресурсов…). Данные ниже числа - это абсолютные ограничения, которые не могут быть превышены.

 Для проекта:

Объект 	Максимум	Замечания

Программы	255	группируя основную,

подпрограммы и дочерние

Уровни иерархии	20

Число проектов, установленных на Workbench, ограничивается только доступным пространством на жестком диске

Для имен:

Имя для:	Максимум	Замечания

Проект	8 символов

Программа	8 символов

Переменная	16 символов	+60 символов на комментарий

Определенная метка слова	16 символов

Определенная эквивалентность	255 символов	+60 символов на комментарий

Таблица преобразования	16 символов

Список переменных	16 символов

функция / функц.блок (lib)	8 символов	налагается на функции C,

функциональные блоки C

или функции написанные на языках

IEC

Параметр функции (lib)16 символов	налагается на функции C,

функциональные блоки C

или функции написанные на языках

IEC

Плата В/В	8 символов

Конфигурация В/В	8 символов

оем параметр платы	16 символов

Функция преобразования	8 символов

Редактирование (для одной программы):

Объект	Максимум	Замечания

Строки SFC	600

Колонки SFC	20

Шаги SFC	4095	для всего проекта, группируя шаги,

инициирующие шаги, начальные и

завершающие шаги

Транзакции SFC	4095	для всего приложения

LD/FBD редактирование	200 кол

2000 ряд	это размер области редактирования

в ячейках.

Quick LD редактирование	без ограничен	ограничения налагаются мощностью

PC

IL метки	251	в той же программе IL

Редактирование текста	40KBytes

Для словаря (для одного проекта):

Объект	Максимум	Замечания
Логические переменные	65535
Аналоговые переменные	65535	группируя целые и вещественные переменные
Таймеры	65535
Переменные сообщения	65535
Определенные слова	4095	в том же списке (том же блоке)
Определенные слова	255	используемые в той же программе
Таблицы преобразования	127	используемые в приложении
Точки в одной таблице	32	определенные в той же самой таблице преобразования

Ограничения даны для максимального количества булевских, аналоговых и строковых групп переменных, строковых, входных и выходных переменных. Они также включают все скрытые временные или размещенные компилятором переменные.  Количество переменных редактируемых вместе (одного типа, одной области действия), в редакторе словаря не может превышать 16000. В зависимости от конфигурации PC, ограничение может быть меньше 16000. Приложение не может идти на целевой задаче ISaGRAF V1.21 или ранее если суммарное количество переменных одного типа больше 4095. Стандартная связь по "Modbus" использующая сетевые адреса не может быть использована если количество переменных одного типа превосходит 4095.

Соединения В/В:

Объект	Максимум	Замечание

Платы ВВ	256	определены для одного приложения

(платы сложного оборудования)

Количество плат В/В включая одиночные платы и сложное оборудование не превышает 256.

Каналы ВВ	128	на одной плате

Для библиотек:

Объект	Максимум	Замечания
Функции (язык IEC)	255	Установленных вместе в библиотеке
Функциональные блоки (язык IEC)	255	Установленных вместе в библиотеке
Функции С	255	Установленных вместе в библиотеке
Функциональные блоки С	255	Установленных вместе в библиотеке
Экземпляры функциональных блоков	4095	Для того же типа функционального блока в том же приложении
Входные параметры функции	31	Это применимо к функциям С и к функциям, написанным на языке IEC
Параметры функционального блока	32	свободно распределяются между входными и выходными параметрами. По меньшей мере требуется 1 выходной параметр
Функция преобразования	128	Установленных вместе в библиотеке
Конфигурации В/В	255	Установленных вместе в библиотеке
Платы В/В	255	Установленных вместе в библиотеке
Сложное оборудование В/В	255	Установленных вместе в библиотеке
оем параметры платы	16