Интегрированная система CONT-Designer
Интегрированная система 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 в остальные § месяц равен 3, а число 31 § месяц равен 4, а число 30 § месяц равен 5, а число 31 § месяц равен 6, а число 30 § месяц равен 7, а число 31 § месяц равен 8, а число 31 § месяц равен 9, а число 30 § месяц равен 10, а число 31 § месяц равен 11, а число 30 § месяц равен 12, а число 31 - Переход на начало выполнения ядра программы.
Популярное: Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (252)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |