- прикладная программа подсистемы учета готовой продукции.
TRACE MODE является программным продуктом фирмы ADASRTA и предназначен для разработки, настройки и запуска в реальном времени автоматизированных систем управления технологическими процессами. Все программы, входящие в TRACE MODE, делятся на три группы:
• инструментальная система разработки АСУ;
• система реального времени (runtime);
• вспомогательные программы.
Инструментальная система разработки АСУ включает в себя четыре редактора. В этих редакторах осуществляется разработка математической основы АСУ и графических экранных фрагментов для представления данных о состоянии автоматизируемого технологического процесса и управления им. Система разработки TRACE MODE включает в себя следующие редакторы:
• редактор базы каналов;
• редактор графических примитивов;
• редактор рисунка;
• редактор представления данных.
Кроме того, в систему разработки также входит Редактор установки МРВ. В этой программе система настраивается для запуска в реальном времени.
Интегрированная система UniOP-Designer предназначена для разработки средств визуализации и управления технологическими процессами реализуемых на панелях оператора UniOP.
UniOP-Designer представляет собой интегрированную среду состоящею из графического редактора экранов, редактора цифровых и динамических полей, редактора макросов клавиатуры, редактор реакции панели на различные ситуации возникающие в технологическом процессе. С помощью этих редакторов разрабатываются проект с экранными формами отображения, алгоритмами управления этими формами, алгоритмами управления технологическим процессом. Разработанный проект загружаются в панель UniOP.
Интегрированная система CONT-Designer разработана и реализована фирмой ЭМИКОН и предназначена для разработки прикладного программного обеспечения контроллеров серии ЭК-2000. Она включает в себя пользовательский язык программирования Turbo-CONT, библиотеку прикладных функций, набор сервисных программ, а также интегрированную среду, содержащую текстовый редактор, транслятор языка программирования и систему отладки.
Turbo-CONT является проблемно-ориентированным текстовым языком высокого уровня, то есть содержит специальные операторы и структуры данных, отражающие специфику задач управления технологическими процессами.
Для задания конфигурации контроллера, описания переменных и символических констант в интегрированной среде используется сервисная программа "Конфигуратор". Она значительно упрощает этот процесс, снижает временные затраты и исключает вероятность допущения ряда ошибок.
Функциональные возможности CONT-Designer значительно расширяются благодаря включению набора библиотек, содержащих объектные коды наиболее часто используемых в технологических программах стандартных функций и драйверов.
Транслятор языка Turbo-CONT, а также редактор исходных текстов и система отладки объединены в единую интегрированную среду, что заметно упрощает и ускоряет процесс создания прикладных программ. Для ускорения написания исходного текста программы в редакторе предусмотрена возможность работы с шаблонами.
Соединение ПЭВМ с контроллером при загрузке и отладке программы может быть двухточечным и осуществляться через последовательный интерфейс RS-232, а также сетевым. В последнем случае связь осуществляется по интерфейсу RS-485 через специальные сетевые модули и к ПЭВМ может быть подключено несколько контроллеров, удаленных от нее на значительное расстояние.
При отладке программы пользователю доступны такие стандартные возможности, как исполнение в непрерывном и пошаговом режимах, с остановом на контрольных точках; отображение и модификация переменных. Отображение значений выбранных переменных возможно во всех режимах исполнения программы, в том числе и в непрерывном.
Прикладная программа подсистемы учета готовой продукции написана на языке Turbo-CONT и предназначена для реализации поставленной задачи. Текст программы приведен в приложении.
Программа состоит из четырех функционально связанных частей:
1) Инициализация.
2) Ядро программы.
3) Подпрограммы обработки прерываний.
4) Процедуры, вызываемые ядром программы.
Структура программы представлена на рисунке 19.
Инициализация является стартовой частью программы и выполняется только один раз после включения контроллера или после его перезапуска. В этой части программы происходят следующие действия:
- Инициализация сетевого модуля драйвером D3C02 и разрешение прерывания от этого модуля для организации сетевого обмена.
- Инициализация модулей счетчиков функцией FINIQC01 для подсчета импульсов приходящих от тахогенераторов и драйвером DQC01_A для измерения частоты преобразователей сигналов тензометрических датчиков.
- Инициализация часов драйвером D3RTC для реализации часов с реальным масштабом времени.
- Инициализация фильтров функцией INI_FTR для фильтрации значений веса.
- Инициализация буферов необходимых для выполнения процедур тарирования и юстирования.
- Инициализация прерываний по таймерам необходимым для фильтрации значений веса, чтения значений тахогенераторов, функционирования процедур динамического тарирования и юстирования.
- Инициализация таймеров необходимых для организации импульсных выходов.
Ядро программы выполняется после инициализации в бесконечном цикле. Оно в процессе выполнения вызывает необходимые процедуры и прерывается по инициативе операционной системы на обработку прерываний. Ядро программы выполняет следующие действия:
- Деблокирует дискретные выходы и сбрасывает флаги защиты, сигнализирующие о наличии короткого замыкания на выходе, если таковое имеются.
- Если взведен флаг установки часов, производит установку текущих даты и времени.
- Пересылает значение веса в кодах АЦП в параметр веса.
- Если флаг фильтрации взведен, пересылает фильтрованное значение веса в параметр брутто. Иначе пересылает в него параметр веса.
- Проверяет регистры флагов тарирования, юстирования и если они не равны нулю, вызывает соответствующую процедуру тарирования, юстирования.
- Рассчитывает статический и динамический вес нетто в кодах АЦП и масштабирует их в реальные единицы веса.
- Проверяет наличие массы на весовом столе и выдает дискетный сигнал «конвейер пустой» при ее отсутствии.
- Рассчитывает скорость конвейера, выражаемую в миллиметрах за секунду, его производительность в граммах за час, количества материала пошедшего по конвейеру за одну секунду в граммах.
Причиной вызывающей необходимость расчета в этих единицах измерения является выполнение математических операций в целочисленном формате, а также необходимость выполнения расчетов с точностью не более 0,001 %. Для получения этой точности разработаны функции математических операций использующих в качестве входных и выходных значений параметры в 32-х разрядном двоичном формате.
- Масштабирует производительность конвейера в коды ЦАП и пересылает их модулю аналогового вывода. Аналоговый сигнал с модуля подается на самопишущий прибор, регистрирующий производительность конвейера в тоннах за час.
- Если ручной счетчик не запущен и если значение времени счета больше ноля, взводит флаг запуска ручного счетчика, обнуляет ручной счетчик, рассчитывает число необходимых измерений.
- Если ручной счетчик запущен, производит сложение содержимого ручного счетчика с количеством материала прошедшего по конвейеру за секунду, уменьшает количество измерений на единицу. Если количество измерений равно нолю, сбрасывает флаг работы ручного счетчика и обнуляет время счета.
- Если на экран панели оператора вызвана страница настройки весов, блокируется работа счетчика материала, технологического счетчика, импульсного счетчика.
- Иначе производится увеличение счетчика материала, технологического счетчика, импульсного счетчика на количество материала прошедшего по конвейеру за одну секунду. Если таймер импульсов равен нолю и если содержимое импульсного счетчика больше 10 килограмм, из импульсно счетчика вычитается 10 килограмм и перезапускается таймер импульсов.
- Если таймер импульса больше 0,1 секунды, включается дискретный выход импульсов. Иначе дискретный выход выключается.
- Если минуты встроенных часов равны нолю и если флаг часа равен нолю, значение счетчика материала пересылается в регистр количества материала за предыдущий час, увеличивается содержимое счетчиков количества материала за смену, за сутки, за месяц на значение счетчика материала, обнуляется счетчик материала, взводится флаг часа.
- Иначе сбрасывается флаг часа.
- Если часы встроенных часов равны 8 и если флаг смены 1 равен нолю, значение счетчика материала за смену пересылается в регистр количества материала за предыдущую смену, обнуляется счетчик материала за смену, взводится флаг смены 1.
- Иначе сбрасывается флаг смены 1.
- Если часы встроенных часов равны 20 и если флаг смены 2 равен нолю, значение счетчика материала за смену пересылается в регистр количества материала за предыдущую смену, значение счетчика материала за сутки пересылается в регистр количества материала за предыдущие сутки, обнуляется счетчик материала за смену, обнуляется счетчик материала за сутки, взводится флаг смены 2.
- Иначе сбрасывается флаг смены 2.
- Вызов процедуры обработки счетчика за месяц если:
- месяц равен 1, а число 31
- месяц равен 2, а число 29 в високосный год или 28 в остальные