Показаны сообщения с ярлыком навчання. Показать все сообщения
Показаны сообщения с ярлыком навчання. Показать все сообщения

суббота, 3 июня 2017 г.

Створення лабораторного практикуму для Batch Control



Цього року я запланував створити і апробувати в навчальному процесі лабораторний практикум по Batch Control, відповідно до стандарту ISA-88. Якщо коротко – план в основному виконано. Хоч практикум не завершено до кінця (нижче напишу що саме і чому), в початковому плані цього і не було. Методичка доступна за посиланням  
Практикум базується на програмних середовищах: SCADA zenon та Unity PRO. Спочатку виникла ідея використати існуючий навчальний матеріал по Batch Control для zenon. Але вже з першої лабораторної роботи необхідно було повністю змінити тактику, так як оригінал базувався на використання SCADA без PLC а у багатьох випадках взагалі не мав конкретики виконання. Таким чином розроблений практикум зовсім відрізняється від початкового варіанту, запропонованого COPA DATA.   
Короткий зміст зроблених і апробованих лабораторних робіт.
Лабораторна №1. Інсталяція і підготовка робочого місця.
Враховуючи що починався курс дистанційною формою (3 перші лабораторні роботи), ця лабораторна робота була підготовчою. Інсталяція zenon інколи вимагає танців з бубнами протягом цілого дня. У деяких студентів танці не закінчувалися і на очній формі.

Лабораторна №2. Апарати та етапи. Основні ідеї керування майстер рецептами.
Основи роботи з Batch Control.
Ця лабораторна робота найпростіша, але дає початкові представлення про Batch-керування. Зв’язку з ПЛК немає, всі операції виконуються виключно в zenon. Вона дуже схожа на оригінальну версію від COPA DATA. У наступних лабораторних роботах схожості вже мало.

Лабораторна №3. Зв'язок рецептурного та апаратурного керування. Події та реакції на події. Команди та стани.
У даній лабораторній роботі вже відбувається зв'язок між SCADA і ПЛК. Для ПЛК підготовлений проект з імітатором об’єкта керування, як це прийнято для всіх наших курсів з програмування ПЛК та розробки проектів SCADA в НУХТ. Об’єкт начебто і простий - 2 бачка і система дозування. Але навіть для такого об’єкта необхідно вирішувати практично всі задачі, характерні для Batch control.    

Хоч зв'язок з ПЛК вже присутній, в даній лабораторній роботі вся логіка виконання етапів реалізовується тільки в zenon. ПЛК радше схожий на модуль віддаленого вводу/виводу. Тим не менше прослідковується зв'язок через команди та стани, які є також ключовими поняттями для розуміння Batch-керування.  

Лабораторна №4. Виконання процедур на рівні SCADA та ПЛК. Можливості рецептів в PFC. Режими виконання.
Коротко про зміст цієї лабораторної роботи написано в самому її початку "У минулій лабораторній роботі уся логіка виконання етапу була реалізована в SCADA, а на ПЛК виконувались тільки базові функції реалізації керування та збір даних. Така реалізація має багато обмежень і, як правило, не застосовується. У цій лабораторній роботі використовується інший принцип, за яким логіка виконання етапів реалізована в ПЛК. Таким чином, етапи будуть функціонувати як в SCADA так і в ПЛК, зв’язуючись через команди та стани."

Лабораторна №5. Реалізація Модулів Керування (Control Module).
У початковому варіанті практикуму від zenon, як і у самому zenon взагалі нічого немає про Control Modules. Але це важлива частина стандарту, яка стосується не тільки Batch Control. Уцій лабораторній роботі основна увага приділяється саме цим елементам. Більша частина робіт проводиться в ПЛК, в SCADA тільки її інтерфейс на частина.
   
Лабораторна №6. Модель апаратурних об’єктів. Координаційне керування.
У даній лабораторній роботі вирисовується повна модель апаратурних об’єктів, виділяються агрегати (Equipment Modules), використовується координаційне керування для виділення та розподілення ресурсів. Ця лабораторна робота вийшла дуже великою, студенти її робили десь 4 пари.   

Лабораторна №7. Робота з майстер рецептами та керівними рецептами. Обробка винятків.
Ця лабораторна робота є логічним завершенням попередніх в діяльностях Batch-керування. Кінцевий створений керівний рецепт готовиться у будь якому вільному танку, очікуючи їх вивільнення, якщо в тих готується інший рецепт.  Зачепили також операції, матричні рецепти. 
У лабораторній є також обробка винятків, дуже важлива частина Batch Control. Студенти її цього року не виконували, так як я добавив цей пункт пізніше. Це був один із каменів спотикання, бо в zenon ініціатором обробки винятків є SCADA, що значно ускладнило задачу. Для обробки аварійного переходу етапу ПЛК в стан "holding" прийшлося заходити через обробку помилки ПЛК.     

Не дивлячись на дуже насичені лабораторні роботи і великий обсяг матеріалу для розуміння, саме важке і саме цікаве залишилося не реалізованим. Хоч приблизно такі очікування на обсяг зробленої роботи я передбачав, мав сподівання що встигну довести все до самого кінця. Однак багато чого я не врахував, зокрема "фічі" вибраної платформи.  
З самого початку я довго вагався чи брати zenon, чи орієнтуватися на інший модуль іншої платформи. Поверхове ознайомлення з функціональністю Batch Control в zenon не давали особливих сподівань щодо відповідності його ISA-88. Побачена картинка не співпадала з намальованою в моїй голові, що склалася в результаті опрацювання стандарту. Тому я довго шукав рішення у інших брендів. Однак довгі очікування і перемовини з представниками цих брендів не залишили мені вибору. Чесно кажучи, я не шкодую, але певні нюанси реалізації внесли свої корективи і відтягнули другу частину на невизначений термін. У деяких місцях zenon навіть перевершив мої сподівання.  
Таким чином на майбутню реалізацію залишилося Batch-планування та звіти. Функціональність обох діяльностей досить просунута в zenon. Зокрема, мене дуже здивували круті Batch-звіти, в яких можна друкувати PFC-рецепти в графічному вигляді, однак … при цьому не видно послідовності спрацювання етапів в керівних рецептах та час закінчення рецепту. Можна робити планування створення та запуску керівних рецептів, однак… не пророблений механізм вибору (а не вписування) оператором майстер-рецепту на базі якого це робиться. Є механізм прив’язки трендів до текстової мітки, але немає механізму розділення цієї мітки для різних керівних рецептів.  Тобто для реалізації повної функціональності з Batch-керуванням необхідно скриптити. Це довга тема, але маю сподівання що її пріоритет підніметься і я закінчу цей практикум.           
Лабораторна №8 (план). Планування виготовлення партій.
Лабораторна №9 (план). Формування звітів по партіям.

Сподіваюсь, що далі буде…  




пятница, 27 января 2017 г.

Побував на I-й Всеукраїнській конференції «Цифрові комунікації у глобальному просторі. Змішана освіта».



Сьогодні був на I-й Всеукраїнській конференції «Цифрові комунікації у глобальному просторі. Змішана освіта». Програма з пошти:


Програма конференції:
10.00 – 11.00 – Зустріч гостей, реєстрація учасників
11.00 – 12.45 – Проведення першого пленарного засідання
• Співзасновник платформи масових відкритих онлайн-курсів «Prometheus» Іван Примаченко - Технологічна реформа навчання проти «трикутника смерті» української освіти
• Кандидат наук із соціальних комунікацій, доцент кафедри видавничої справи та редагування КПІ ім. І. Сікорського Радміла Сегол - Пілотний проект впровадження змішаного навчання: Досвід КПІ ім. І. Сікорського
• Кандидат технічних наук, доцент кафедри конструювання електронно-обчислювальної апаратури КПІ ім. І. Сікорського Євген Короткий - Досвід впровадження змішаного навчання в умовах скорочення аудиторного навантаження
12.45 – 13.30 – Кава-брейк
13.30 – 18.00 – Проведення другого пленарного засідання
• Кандидат юридичних наук, виконавчий директор Міждисциплінарного науково-освітнього центру протидії корупції в Україні НаУКМА Оксана Несторенко - Поєднання класичних та онлайн форм навчання в сфері протидії корупції
• Кандидат технічних наук, асистент кафедри комп’ютеризованих систем автоматики Національного університету «Львівська політехніка», Solution Architect компанії SoftServe Зеновій Верес - Використання змішаного навчання в рамках програми Інтернет речей
• Аспіранти факультету інформатики та обчислювальної техніки КПІ ім. І. Сікорського Артем Коротенко, Георгій Ісаченко - Особливості використання змішаного навчання у відкритих групах слухачів та в університетських групах


Відеозапис:

Поки я під важенням, запишу тут ці враження тезисно.
Я зрозумів, що термін "змішана освіта" доволі широкий, і відсоток і тип офлайн/онлайн може принципово відрізнятися.
Найбільш впроваджуваний курс в ВУЗи як основа змішаного навчання – це CS50. Результати показали ряд проблем (зокрема про це казав Зеновій Верес із Львівської Політехніки). Студенти не встигали все за один семестр, тому доганяли частину в іншому семестрі. Останній виступ (був доволі яскравим) від менторів змішаної версії цього ж курсу в Києві. Там теж не все так гладко.
На моє питання щодо англійської мови в Прометеусі, Примаченко відповів позитивно. Це радує.
На моє питання щодо можливості розміщення своїх власних курсів на Прометеусі – можливо, але вирішується в індивідуальному порядку. Зараз дам декілька пропозицій в приваті, так як персона Примаченка в офлайні дуже востребувана, вирішив не чіпати і додовбувати його в офлайн. Треба відмітити, що він вислуховує усіх дуже уважно і чемно, що дає привід зловживати комусь його часом, і не допускати інших.
Відчував багато скепсису в залі. Старі преподи не хочуть змін, це просто витає в повітрі. Деякі відверто показували свій негатив. Зокрема два препода, молодий та професор (якийсь поважний) сиділи на виступі Примаченка і тупо деякі фрази а також презентації приймали з обуренням і зневагою. Після його виступу покинули залу. Думаю таких багато. Особливо вони люблять пастися на "наукових" конференціях і поливати брудом молодих вчених, що не мають зірок. Багато таких є і у нас.
Деякі виступи частково прослухав. На те є причини, вони нижче. Але запис є, у випадку чого можна прослухати. Мене більш цікавлять зараз презентації. Буду чекати і якщо знайду оновлю пост тут.
Але саме вразило те, що на конференції мене впізнали колеги з НУХТ. Не те, що мене впізнали а я ні, вже якось починаю звикати. Я був у відвертому шоці, коли побачив, що їх там аж 6-ро (тих кого я побачив) і всі прийшли по добрій волі. НУХТ рулить! Усі дуже переймаються освітою і в мене знову виникла думка про формування НУХТівського колективу з таких людей, які хочуть щось рухати не для галочки а тому що … люблять свою роботу. Різноманітність компетенцій тут тільки на руку. Ще для мене було здивуванням, що ці люди вже давно (набагато раніше ніж я) приймають участь в таких заходах і знають усіх цих Примаченків, Молчановських і Романко персонально. Молодці, маю надію що будемо дружити і спільно працювати!        

       

понедельник, 27 июня 2016 г.

Закінчив виконання 6-го практичного завдання #CS50 від Прометеус


Закінчив виконання 6-го практичного завдання (8-й тиждень) #CS50 від Прометеус. Це був нелегкий крок до пізнання роботи з мережами в C під Linux та боротьбою між союзом "це необов’язково робити" з "це можна робити тільки в тому обсязі, який написано"  проти "треба зробити все і навіть більше". Нижче трохи роздумів, але для початку трохи про завдання.

У загальних рисах: треба було дописати ВЕБ-сервер реалізований на СІ щоб він виконував свою "мінімальну роботу" по поверненню запрошуваного статичного (сторінки, рисунки) та динамічного (результат виконання PHP) контентів. Окрім недоробленого вихідного коду ВЕБ-серверу давалася папка public з усіма необхідними файлами сайту:  cat.html, cat.jpg, hello.html, hello.php. HTML та PHP файли дуже прості, тільки для введення в практичні основи одного та іншого та виконання певного контенту на стороні клієнту та серверу.

Після ознайомлення зі змістом файлів, пропонувалося потренуватися в перевірці роботи існуючого (допиленого) скомпільованого серверного додатку. І тут дійсно були неважкі але цікаві і дуже потрібні вправи, зокрема:
- перевірка на Chrome з використанням вбудованих інструментів розробника
- перевірка через telnet в текстовому режимі, коли ти сам служиш движком HTTP-протоколу.

Далі необхідно було поверхово ознайомитися з недописаним вихідним кодом. Слово ПОВЕРХОВО виділяю жирним і курсивом, бо тут у мене нижче буде багато буковок з цього приводу. Після ознайомлення треба було добавити трохи коду, який би:
- повертав текстове значення типу MIME в залежності від шматка тексту в запиті
- перевіряв текстовий запит на коректність, парсив його (розбирав на шматки) та перевіряв/парсив ці шматки запиту
-    формував відповідь клієнту
Після цих маніпуляцій виправлений сервер повинен був працювати аналогічно тому, який приходив скомпільованим. Ось практично і все про завдання. А тепер … трохи емоцій і думок.

1. Завдання не перевіряється і не оцінюється!!! Це серйозний демотиватор виконання цього завдання! І це не тільки моя думка, так говорять і на форумі CS50 від Прометеус. Кажуть, що у версії 2016-го року перевірка і оцінка вже проводяться. Очевидно в 2014-му році оригінальний курс був на стадії становлення, таке буває, і це нормально (кажу як викладач). Тому це був серйозний психологічний бар'єр до вибору "треба" проти "може не треба?". Але подумавши над тим, чого я взагалі проходжу цей курс, лінь в кінцевому випадку доволі швидко програла. Тим не менше, факт наявності подібних емоційних бар'єрів буду враховувати при розробці своїх дистанційних курсів. Так що, в цьому є певний позитивний досвід для мене, як викладача.

2.Поверховий аналіз коду – це серйозний, як на мене, бар'єр іншого характеру. Тобто, "не засмучуйтесь, якщо вам щось не зрозуміло" звісно трохи заспокоює. Але залишається цілий шмат незрозумілих, але головне - потрібних речей! Хочеться сьомого з половиною тижня (тут загадав Гаррі Потера), в якому би дали основи роботи з сокетами, пайпами та "цілою купою таких речей, яких я не розумію, просто не розумію". А головне, щоб дали ще один приклад роботи саме в мережі під С в Linux. Зараз ера Інтернету Речей, а комунікації на низькорівневому рівні – це одна із важливих компетенцій. Тому, набравшись духу, я почав лупати цей код, і протягом декількох вечорів робив свої коменти до нього.  Результат виклав на загальний огляд, може кому знадобиться. Враховуючи що я новачок в цій темі, очевидно десь є помилки (https://drive.google.com/file/d/0B2FfwwwweBSVenRSVTU0bUU1blk/view ).  Якщо комусь захочеться кодити в CI (і не тільки) раджу Notepad++ (https://notepad-plus-plus.org/download/v6.9.2.html). У результаті таких потуг підняв шмат нових для себе речей, ба навіть більше – пришвидшив виконання для себе завдання (якщо не враховувати що аналіз коду зайняв десь 400-500% від часу виконання самого завдання).

3. Кінцевий видимий результат – кіт в браузері та привітання того, чиє ім'я було введене в формі. Кінцевий "невидимий" результат – набагато краще розуміння (трохи до цього було) які діяльності відбуваються на ВЕБ-серверах, як працюють сокети в Лінукс (до цього трохи грався з WinSock), черговий досвід роботи з рядками, вказівниками, пам’яттю, консольним виводом в СІ, певні навики в перевірці роботи мережних сервісів.                       

Отже, загальний висновок – робота проведена велика і не марно. Це я і про свою роботу і про команду Прометеус а також авторів CS50. Черговий раз висловлюю спасибі команді Прометеус за локалізацію CS50 і підтримку курсу. Хоч цей тиждень показав, що над оригінальним курсом дійсно ще треба працювати (я так розумію в 2016 році багато чого нового) він є хорошою основою для тих, кому просто треба вказувати шлях. Також, судячи по форуму, відчувається брак волонтерів для підтримки курсу на Прометеусі.
Вже починається 10-й тиждень, а в мене ще непаханий 9-й, який теж не оцінюється :(. Набираюся сил і вперед!    

Трохи гумору від CS50  про роботу через текстовий terminal "Проте не варто робити запит на cat.jpg (чи будь-який бінарний файл), бо у відповідь ви отримаєте повну кашу! (Але ж ви спробуєте, чи не так?)"