Автор | Сообщение |
---|---|
admin | |
Решил тряхнуть стариной (лишь бы не отвалилась) ..или.. немного о переходе на новую технику #automation4food #божественныйсименс #миграция Году эдак в 2011 я на правах фрилансера написал и внедрил ПО для управления водонапорной станцией. По итогам система получилась распределенной и даже немного сложной, но начиналось все с локальной станции управления одной насосной установкой. Проектная организация заложила CPU Simatic S7-313C. Аппаратный релиз был еще с 64 килобайтами рабочей памяти, тогда как актуальные сегодня версии оборудованы аж 128 килобайтами. Контроллер управлял двумя задвижками с приводами Auma Matic AM01.1 по профибасу и, по профибасу же, частотным преобразователем Robicon (модель не помню, здоровенная хреновина как минимум в мегаватт полезной мощности). То есть, тут у нас технологически несложная насосная установка - задвижка на напоре, задвижка на всасе, датчики давления, насос, обвязанный датчиками вибрации и температуры, вакуумный выключатель для частотника, лампочки/кнопочки на шкафу, панель оператора. Неожиданно мне стало интересно, как это будет выглядеть на новой линейке Simatic? Влезет ли прикладная программа, легко ли она портируется? Сколько стоит решение - внедренное ранее и выбранное мной сейчас? С моей точки зрения такую несложную систему надо сегодня делать на S7-1200, поэтому она и была выбрана в качестве целевой системы. Портировать прикладную программу оказалось несложно. Повозиться пришлось лишь в нескольких местах. Во-первых, в классическом Step 7 (версии 5.5 SP4) провел замену оборудования до актуальных заказных номеров. Это Step 7 знает всё своё железо с момента выхода в свет. TIA Portal (V14 SP1) ограничен более-менее актуальными релизами. А мигрировать прикладное ПО со «старого» Степа на «новый» решил полностью, включая аппаратную конфигурацию. Второй источник боли - это прикладная программа в части вставок кода на языке STL. Дело в том, что S7-1200 не поддержкивает STL от слова вообще. А я его применял. Для копирования переменных, для несложных рассчетов и т.д. Ну, на не LADe же городить ветки с блоком MOVE. К слову, исходная программа написана на языке LAD с этими самыми вставками на STL. В конечном итоге это превратилось в программу на языке LAD с нетворками на языке SCL. Третье затруднение - это системные вызовы для обмена ЛСУ с вышестоящим мастер-контроллером, как профинет-подчиненнное устройство. В S7-300 через CP 343-1 LEAN для этого применялись отдельные функции. Тут я не стал заморачиваться и внедрил обмен через область процесса. Удобнее. А для контроля качества связи в обоих направлениях соорудил счетчик. В общем, никаких системных функций. Работа с профибас-подчиненными устройствами осталась такой же. То есть, через функции DPRD_DAT и DPWR_DAT. В принципе, ничего не мешало использовать ту же область процесса. Только вот как контролировать качество связи - я при таком подходе не придумал. Поэтому оставил, как было. Ну, а теперь немного картинок. И, конечно же, про деньги. Так выглядит исходная (и внедренная) конфигурация Новая сборка на базе S7-1214 Пришло время посмотреть, что получилось с прикладной программой. Исходный вариант: Итого, примерно 24 килобайта рабочей памяти и 35 килобайт — загрузочной. Портированный на S7-1200 вариант: 14 килобайт рабочей памяти. Почти в два раза меньше. Частично это достигается отказом от функций PNIO_SEND, PNIO_RECV. Частично — некоторой оптимизацией кода. Не смог я просто скопировать наработки семилетней давности, ряд вещей переработал. Напоминаю, что сейчас сравниваются программы с абсолютно идентичным функционалом. И в новой линейке для того же функционала требуется меньше памяти. Удивительно, я ожидал обратного. А теперь, конечно же, про деньги. Стоимость исходной конфигурации Интересно, а что же получилось на S7-1200? Стомость новой конфигурации От так-то! Источник: https://vk.com/@akcount-reshil-tryahnut-starinoi |
|
Сообщения: 463 |