Системи управління промисловим роботом на базі IBM-сумісного персонального комп’ютера

Загальна класифікація роботів. Проектування та розробка системи управління промисловим роботом "Електроніка НЦ ТМ-01" на базі IBM–сумісного персонального комп’ютера. Структурно функціональна схема взаємодії систем робота. Блок схема системи управління.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 25.10.2012
Размер файла 3,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

До типу Б.І віднесені стопо-ходячі апарати, що пересуваються , автоматично за допомогою штучних ніг, як, наприклад, розглянутий вище телекерований автономний робот "Odex-1". Роботи, що пересуваються автоматично, але за допомогою будь-яких інших рушіїв (колісних, гусеничних, гребних й ін.) віднесені до типу Б.ІІ; характерні представники таких роботів - гусеничний "Уілбарроу".

Таблиця 2.1 Загальна класифікація роботів

Клас

Тип

Різновид

Маніпуляційні

1. Автоматичні

1. Програмні (1-е покоління) 2. Адаптивні (2-е покоління) 3. Інтелектуальні (3-е покоління)

2. Біотехнічні

1. Командні 2. Що копіюють 3. Напівавтоматичні

3. Інтерактивні

1. Автоматизовані 2. Супервізорові 3. Діалогові

Мобільні

1. Крокуючі

1. Програмні 2. Біотехнічні 3. Інтелектуальні

2. Саморушні

1. Програмні 2. Адаптивні 3. Інтелектуальні

3. Екзоскелетони

1. Відкриті 2. Скафандрові 3. Стрибучі

Інформаційні

1. Дослідники

1. Безперервні 2. Нагромаджуючі 3. Адаптивні

2. Шукачі

1. Контактні 2. Дистанційно-пасивні 3. Дистанційно-активні

3. Визначники

1. Контактні 2. Дистанційно-пасивні 3. Дистанційно-активні

Творчо-гральні

1. Проектувальники

1. Програмні 2. Інтерактивні 3. Інтелектуальні

2. Ігрові

1. Позиційні ігри 2. Динамічні ігри 3. Визначники ефективності систем і заходів

3. Композиційні

1. Автоматичний перекладач 2. Референт, касир, бібліограф 3. Композитор, поет

Комплексні

-

-

У цей клас уведені екзоскелетони (тип Б. IІІ), саморушні робото-технічні пристрої, що надягають на тіло людини або функціонуючі разом з ним у безпосередньому контакті й фізичні можливості, що істотно збільшують його. Якщо такий пристрій виконується у вигляді геометричної конструкції, що утворить автономний простір життєзабезпечення (космос, підводні глибини й т.д.), то воно ставиться зі скафандровим (Б. III. 2).

Апарати, призначені для подолання перешкод, виділені " в окремий різновид - "стрибучих" (Б. III. 3).

Клас В - інформаційні роботи, призначені для пошуку й виявлення інформації про навколишнє середовище, різні явища й об'єкти, її вивчення, систематизації й подання в обробленому виді.

Роботи типу В. I - дослідники властивостей середовища й об'єктів, недоступних для безпосереднього вивчення людиною. Різновиду роботів цього типу, безперервні дослідники (B.I.I), видають інформацію постійно, без спеціальних на те команд, а нагромаджуючі - у міру необхідності по виклику оператора, запам'ятовуючи інформацію в проміжках між сеансами передачі й накопичуючи її в пам'яті. Роботи виду В. 1.3 адаптують своє поводження в процесі дослідження згідно встановленим параметрам і властивостям досліджуваного середовища й об'єктів.

Роботи-шукачі (тип В. II) призначені для пошуку й вивчення об'єктів (предметів) із заданими параметрами й властивостями різними способами: контактним (наприклад, обмацуванням) (В. II. 1) або дистанційним при відсутності (В. II. 2) або наявності (В. II. 3) власного випромінювання. Так, якщо дистанційний робот-шукач оснащені системою штучного зору, то він ставиться до пасивного (В. II. 2), а якщо постачено радіолокаційною системою - до активного різновиду (В. II. 3) робота.

І, нарешті, останній тип класу В - роботів-визначники, які служать для визначення й вивчення об'єктів з невідомими властивостями.

Роботи, що входять у клас Г, призначені насамперед для рішення інтелектуальних завдань, залежно від характеру яких вони підрозділяються на роботи-проектувальники (Г.1), ігрові - для творчості й забав (Г. II) і композиційні роботи (Г. Ill) для створення того або іншого інтелектуального продукту (переклад текстів, аналіз і систематизація мовної й текстової інформації, музична композиція, живопис, віршування й ін.). У більшості творчо-ігрові роботів повинні бути наділені зробленими інформаційно-керуючими системами й штучним інтелектом.

В останній клас Д включені робототехнічні пристрої, що поєднують у собі ті або інші ознаки й властивості інших класів, наприклад, рухливий робот з маніпулятором, призначений для дослідження океанських глибин.

У розглянутій загальній класифікації зроблена спроба охопити практично всі види роботів як існуючих, так і наукових розробок, що перебувають у стадії. Однак труднощі введення всіляких робототехнічних пристроїв у рамках твердої класифікаційної схеми породила її недоліки. Так, поділ на класи А, У и Г досить чітко відповідає поділу роботів по призначенню й розв'язуваному виду завдань, але клас Б випадає зі стрункої схеми, тому що більше відповідає ознаці конструктивного виконання, а не призначення. У результаті деякі класи й типи перетинаються, тобто ті самі роботи можуть бути віднесені до різних класів, у той час як інші погано вписуються в схему (наприклад, деякі спеціальні й побутові роботи). Очевидно, цим і викликана поява класу Д, у деякому змісті виправляюче положення, але включеного досить штучно й не одержало розкриття у класифікації.

У різновидах класу Г - II й III представлені не узагальнені види, а конкретні роботи-виконавці певних функцій, що порушує системність класифікації. Мабуть, умістніше тут було б установити для всіх типів творчо-ігрових роботів три різновиди (як і для роботів-проектувальників): програмні, інтерактивні, інтелектуальні.

Проте загальна класифікація роботів становить безсумнівний інтерес, відкриває напрямку подальшої систематизації й класифікування роботів і робототехнічних пристроїв.

персональний комп'ютер робот

3. УСТРІЙ І ФУНКЦІОНУВАННЯ РОБОТА «ЕЛЕКТРОНІКА НЦ ТМ - 01», ТА ЙОГО СКЛАДОВИХ

3.1 Устрій і функціонування робота «Електроніка НЦ ТМ - 01»

Роботи "Електроніка НЦ ТМ-01" складаються з маніпулятора електромеханічного і системи керування 5 (див. додаток А).

Маніпулятор електромеханічний має п'ять ступенів рухливості й два схвати, розташованих в одній площині під кутом 90° один до одного, один настроюється на захвата заготовки, інший на захват деталі.

Приводи по всіх ступенях рухливості електромеханічні, привод схвату пневматичний.

Система керування виконана на базі ЕОМ «Електроніка 60М» для виконання дем1.053,002, дем1.053.002-01

Система керування виконань постачена дисплеєм символьним 15 ИЭ-002 або дисплеєм 15ИЭ-00-013.

Система керування виконань постачена пристроєм послідовного обміну для зв'язку з керуючими пристроями вищого рівня.

Система керування запрограмована на стандартний цикл маніпулювання деталями, уводяться тільки змінні дані, що характеризують нову партію деталей: тип касети, число позицій у ряді касети, число деталей у касеті.

Інформація про партії деталей, що надійшли на обробку вводиться із клавіатури дисплея, або надходить у систему керування через пристрій керування від системи керування вищого рівня.

Програмне забезпечення роботів "Електроніка НЦ ТМ-01" забезпечує самонавчання по першій деталі, "дожим" заготовки в патрон верстата й припинення руху при наїзді на перешкоду.

3.2 Устрій і функціонування складових частин робота «Електроніка НЦ ТМ - 01»

Маніпулятор електромеханічний демз. Загальний вид маніпулятора електромеханічного наведений на малюнку (додаток Б).

Конструктивно маніпулятор електромеханічний складається з наступних вузлів:

· механізму горизонтального переміщення по осі X (див. додаток Б);

· механізму повороту (див. додаток Б);

· механізму горизонтального переміщення по осі У (див. додаток Б);

· механізму підйому по осі Z демз.778.028 2 (див. додаток Б);

· механізму захвата деталі демз.726.029 3 (див. додаток Б);

Механізм горизонтального переміщення по осі X (див. додаток Б);

· координата переміщення -X;

· позначення механізму -А;

· виконавчий орган - два двигуни постійного струму, з напругою живлення 27В - ДП 32-4-3-37-1М3682-Р09 ТУ 16-515.261-61;

· режим роботи - реверсивний;

· керування забезпечує два рівні швидкості;

· гальмування: динамічне, забезпечуване ключем релейним, статичне забезпечуване двома фрикційними електромагнітними гальмами ( див. додаток Б);

· датчики:

- датчик початкового положення 2 позначення ЬН;

- датчик кінцевого положення 3 позначення ЬК;

- імпульсний датчик шляху 4, позначення - З* дискретність - 0,4 мм/імпульс.

Механізм горизонтального переміщення 1 служить підставою робота й складається з корпуса, у якому закріплені циліндричні напрямні для переміщення каретки 5.

Переміщення каретки 5 здійснюється від привода 6 через зубчасту передачу й кулевинтову пару 7.

Гайка 8 служить для відключення гальма. (Перебуває в ЗИПе).

Механізм повороту

· координата переміщення - У

· позначення механізму - В

· виконавчий орган - двигун постійного струму ДП40-10-3-27-1М3681-Р09 ТУ16-515.261-81, напруга живлення 27 В

· режим роботи реверсивний

· гальмування: динамічне, забезпечуване ключем релейним., статичне - висувним фіксатором

· датчики: датчик початкового положення - 10 , позначення - ?н

датчик кінцевого положення - 11, позначення - вк

Механізм повороту закріплений на каретці 5 механізму горизонтального переміщення 1 і складається з корпуса, на якому закріплений привод 12, конічна зубчаста передача 13, 14, водило 15 і мальтійський хрест 16, на мальтійському хресті встановлена стакан 17. Обертання водила 15 здійснюється від привода 12 через конічну передачу. Для фіксації мальтійського хреста в крайніх положеннях використається висувний фіксатор, керований кулачком, кінематично жорстко пов'язаним з водилом 15.

Механізм горизонтального переміщення по осі У - 18

· координата переміщення - У

· позначення механізму - С

· виконавчі орган - два двигуни постійного типу ДП 40-10-3-27-ІМ368І-Р09 ТУ16-515.261-8, напруга живлення 27В.

· режим роботи - реверсивний

· керування забезпечує два рівні швидкості

· гальмування: динамічне, забезпечуване ключем релейним, статичне забезпечуване двома фрикційними електромагнітними гальмами

· атчики:

- датчики початкового положення 19, позначення - Сн;

- датчик кінцевого положення 20, позначення - Ск;

- імпульсний датчик шляху 21, позначення - З*, - дискретність ,04 мм/імпульс.

Механізм горизонтального переміщення 18 закріплений на верхньому фланці стакану 17 механізм повороту 9 і складається з корпуса 22, у якому розташований повзун 23 з напрямними.

Напрямні переміщаються на шарикопідшипниках, розташованих у корпуси 22.

Верхнє й два бічних підшипники змонтовані на ексцентрикових парах для усунення люфтів між повзуном й опорами кочення.

Переміщення повзуна здійснюється від привода 24 через зубчасту передачу 25 і кулевинтову пари 26.

Гайка 27 служить для відключення гальма (перебуває в ЗИПе).

Механізм підйому по осі Z

- координата переміщення - Z

- позначення механізму - Д

- виконавчий орган - два двигуни постійного струму типу ДП 40-10-3-27-ІМ3682-Р09 ТУ16-5151.261-81, напруга живлення 27В.

- режим роботи - реверсивний

- керування забезпечує два рівні швидкості

- гальмування динамічне, забезпечуване ключем релейним, статичне забезпечуване двома фрикційними електромагнітними гальмами.

- датчики: - датчик вихідного положення 29 позначення - dн;

- імпульсний датчик шляху позначення - d*; дискретність 0,4 мм/імпульс.

Механізм підйому 28 закріплений на передньому кінці повзуна 23 механізму горизонтального переміщення 18 і складається з корпуса 31 циліндричної форми, у якому розташована штанга 32, що переміщається в кульковій втулці 33, закріпленої на нижньому кінці механізму підйому.

Вертикальне переміщення штанга здійснюється від привода 34 через зубчасту передачу 35 і кулевинтову пари 36.

Гайка 37 служить для механічного відключення гальма (перебуває в ЗИПе).

Механізм захвату деталі, загальний вид якого наведений на мал. 4, складається із двох схватів 1,2 і пристрою ротації схватів 3.

Пристрій ротації схватів 3(див. додаток В).

- координата переміщення - ПРО

- позначення механізму - Е

- виконавчий орган - пневмоциліндр 4, керований розподільником електропневматичним, напруга 24 В.

- швидкість повороту регулюється дроселем 6,

- датчики: - датчик початкового положення 7 позначення - ен;

- датчик кінцевого положення 8 дЕМЗ.850. 095 позначення - ек;

Схват 1 (див. додаток В),

- позначення F

- виконавчий орган - пневмоциліндр 9, керований розподілом електропневматичним 38 (мдодаток Б) демз.856.335 напругою 24 В.

Схват 2 (див. додаток В)

- позначення - G

- виконавчий орган - пневмоциліндр, керований розподільником електропневматичним 39 (мал. 2) напругою 24 В.

-датчики, позначення - gн.

Механізм захвату деталі закріплений на нижньому кінці штанги 32 (див. додаток Б) механізму підйому 28 (див. додаток Б) і складається із двох схватів 1,2 (див. додаток В), розташованих під кутом 900 а рухливому корпусі 11. Ротація рухливого корпуса 11 відбувається навколо осі, розташованої під кутом 450 до вертикальної осі штанги 32 (див. додаток Б). Кут ротації схватів регулюється рухливими упорами 12, 13 (див. додаток В), які контряться після регулювання гвинтами 14, 15.

Механізм захвату деталі постачений пристроєм обдуву 41 (див. додаток Б), призначеним для видалення стружки з патрона верстата й схватів робота. Стиснене повітря, що входить із трьох трубок-сопів 42, направляють у потрібну зону, згинаючи трубки - сопла.

Швидкість повороту схватів регулюється дроселями 6 (див. мал. 4).

Ротація здійснюється пневмоциліндром 4, 16 через зубчасту рейку 17 і зубчасте колесо 18.

Кожен схват 1,2 постачений трьома рухливими кулачками 19, закріпленими на повзунах 20 із зубчастими рейками.

Переміщення кулачків 19 здійснюється від пневмоциліндра 9, шток якого через черв'яка 21 і черв'ячне колесо 22 пов'язаний із зубчастими рейками повзуна 20.

Пневморозподільники 39 (див. додаток Б) розташовані в корпусі механізму повороту 9 (див. додаток Б).

Гвинти 23 (див. додаток В) служать для настроювання кулачків 19 схватів 1,2 на заданий діаметр.

3.3 Устрій і функціонування блоку підготовки повітря

Блок підготовки повітря, загальний вид якого представлений на рис.3.1, призначений для очищення, насичення парами масла й регулювання тиску вступник з магістралі стисненого повітря. Для очищення повітря застосовується фільтр - вологовиділювач 1. Для насичення стисненого повітря маслом застосовується маслянка 2. Для регулювання тиску стисненого повітря застосовується регулятор тиску 3. Для візуального спостереження за величиною тиску стисненого повітря служить манометр 4. Для подачі стисненого повітря в пристрій обдуву 41 (див. додаток Б) застосовуються два пнемо-розподільники 5 (див. рис.3.1). Розподільники обдуву при необхідності підключають до система керування верстата. Вся пнемо-апаратура змонтована на металевому каркасі й з'єднана між собою трубопроводами.

Рис.3.1 Блок підготовки повітря

3.4 Блок керування

Блок керування який зображений на рис. 3.2, складається:

- блоку керування

- комірки стабілізації

- комірки інвертування

- ключів релейних

- комірки підсилювачів

- панелей

Блок трансформаторів призначений для подачі сіткової напруги на промисловий робот при приєднанні роз'єму ХТ1 блоку до мережі. При включенні вимикача автоматичного 17, подається напруга на пускач схеми захисту й запалюється лампа МЕРЕЖА - 16. Кнопкою РОБОТА - 18 подається напругу постійного струму 15 В и 27 В на схему керування. Тумблером на комірки стабілізації подається напруга 5В постійного струму на схему керування й загоряється лампа +5В МЕРЕЖА.

Комірка стабілізації призначена для подачі стабілізованої напруги 5В постійного струму на схему керування.

Комірки інвертування виконані на мікросхему серії ДО155 і призначені для інвертування інформаційних сигналів у системі керування. Комірка має 22 незалежних канали.

Рис.3.2 Блок керування

Ключі релейні призначені для комутації двигунів постійного струму напругою 27В, потужністю до 48 Вт із динамічним гальмуванням. На виході ключа релейного подаються сигнали TTL - логіки серії К155, на виході - контакти реле типу РЭС - 6.

Комірки підсилювачів призначені для комутації керуючих ланцюгів напругою 24В постійного струму, потужністю не більше 20 Вт. Осередок має 8 незалежних підсилювачів постійного струму, останній каскад яких виконаний на транзисторах з відкритим колектором. На лицьовій панелі є індикація роботи кожного підсилювача, виконана на світлодіодах.

Індикація інформаційних і керуючих сигналів на лицьовій панелі блоку керування наведена в таблиці 3.1-3.2.

Таблиця 3.1 Індикація інформаційних і керуючих сигналів на лицьовій панелі блоку керування

№ позиції

Світлодіод

Найменування керуючих сигналів

Комірка 13

1

Схват заготівлі затиснути

2

Схват заготівлі розтиснути

3

Схват деталі затиснути

4

Схват заготівлі розтиснути

5

Ротація схватів (деталь горизонтальна) Е0

6

Ротація схватів (деталь вертикальна) ЕП

Комірка 15

1

Команда верстату «деталь затиснути»

2

Команда верстату «деталь розтиснути»

3

Команда верстату «пуск програми»

4

Команда верстату «пуск шпинделя»

5

Відповідь верстата

Відлік умовного № світлодіоду на лицьовій панелі вести ліворуч зверху.

При експлуатації блоку керування дем3.857.891 необхідно користуватися документацією на відповідну модифікацію використання блоку.

Модифікації блоку керування по вхідних і вихідних електричних параметрах ідентичні.

Таблиця 3.2 Індикація інформаційних і керуючих сигналів на лицьовій панелі блоку керування

№ позиції

Світлодіод

Найменування інформаційних сигналів

Комірка 8

1

Датчик ан

2

Датчик ак

3

Датчик а* (рахунковий)

4

Датчик сн

5

Датчик ск

6

Датчик з* (рахунковий)

7

Датчик dн

8

Датчик d* (рахунковий)

9

Датчик вн

10

Датчик вл

15

Датчик ен

16

Датчик ек

19

Сигнал від верстата «патрон затиснутий»

20

Сигнал від верстата «патрон розціплений»

21

Сигнал від верстата «кінець обробки»

Комірка 9

1

Dп (м-м Д униз)

2

Dо (м-м Д нагору)

3

Cп (м-м Із уперед)

4

Cо (м-м назад)

5

Aп (м-м А вліво)

6

Aо (м-м А вправо)

Комірка 12

1

Схват заготівлі затиснути

2

Схват заготівлі розтиснути

3

Схват деталі затиснути

4

Схват заготівлі розтиснути

5

Ротація схватів (деталь горизонтальна) Е0

6

Ротація схватів (деталь вертикальна) Еп

Комірка 15

1

Команда верстату «деталь затиснути»

2

Команда верстату «деталь розтиснути»

3

Команда верстату «пуск програми»

4

Команда верстату «пуск шпинделя»

5

Відповідь верстата

№ позиції

Світлодіод

Найменування інформаційних сигналів

Комірка 11

1

Переключення швидкості А

2

Переключення швидкості З

3

Переключення швидкості Д

Комірка 1

1

Ап (механізм А вліво)

2

Ао (механізм А вправо)

3

Вп (механізм У к верстату)

4

В (механізм У від верстата)

Комірка 2

1

Сп (механізм Із уперед)

2

З (механізм із назад)

Комірка 3

1

Dп (механізм Д униз, 1 двигун)

2

Dо (механізм Д нагору, 1 двигун)

3

Dп (механізм Д униз, 2 двигун)

4

Dо (механізм Д нагору, 2 двигун)

Рис.3.3 Склад і схема складання мікропроцесорної керуючої обчислювальної системи на базі «Електроніка 60М» 15ВМ-16-012

Рис.3.4 Склад і схема мікропроцесорної керуючої обчислювальної системи на базі ЕОМ «Електроніка НМС 111001»

Плата паралельного обміну И2, розміщена в панелі субблоку ЕОМ на посадковому місці Е-3АБ, установлюється без зміни заводського стану перемичок.

Плата паралельного обміну И2, розміщена в панелі субблоку ЕОМ на посадковому місці Е-3ВГ, встановлюється з попередньою зміною заводського стану перемичок: адреса вхідного буфера 167764. Адреса вихідного буфера 167762.

Таблиця 3.3 Сигнали обміну ЕОМ з верстатом

Призначення сигналів

Виходи з ЕОМ

Вхід на ЕОМ

Еr

Eo

ек

Стоп у початковому положенні (вихідне положення

0

1

1

0

Таблиця 3.4 Сигнали обміну ЕОМ з маніпулятором

Призначення сигналів

Виходи з ЕОМ

Входи на ЕОМ

Fп(Gп)

Fо(Gо)

fп(gп)

Захват заготовки (деталі)

1

0

1

Заготовка (деталь) захоплена

1

0

0

Розхват заготовки (деталі)

0

1

0

Заготівля (деталь) розхвачена

0

1

1

Вихідне положення робота в точці А.

Траєкторія (Т) базового циклу алгоритму захвату заготовки являє собою послідовність переміщень по осі Х - Тав, по осі В - Твс, опускання по осі Z - Тcd, захват заготовки з касети, підйом по осі Z - Тcd, ротація механізму схватів, Z - Тcd опускання по осі залишення готове деталі, підйом по осі Z - Тcd, по осі В - Тсв, по осі Х - Тва. Далі з вихідного положення в точці А робот переміщається до патрона верстата.

Для обходу передньої бабки верстата робот переміщається по осі В - Тас, далі повертається на 900, одночасно роблячи ротацію схватів для того, щоб вісь схвату, що захоплює заготівлю, була горизонтальна, опускається по осі Z - Tpн для того, щоб вісь схвату з віссю патрона. Далі переміщається по осі Х- Тнк до патрона верстата, бере готову деталь, відходить по осі Х - Ткн робить ротацію схватів для того, щоб вісь заготівлі була горизонтальної, переміщається по осі Х - Ткн, залишає заготівлю в патроні верстата, по осі Х - Ткн, піднімається по осі Z - Tнf робить ротацію схватів, повертається від патрона верстата Тfe і по осі Теа доходить до вихідного положення.

Базовий цикл переміщень кінцевої ланки має дві модифікації для деталей висотою до 70 мм модифікація 0, для деталей висотою вище 70 мм модифікація 1.

Таблиця 3.5

Алгоритм переміщень виконавчих механізмів промислового робота

Униз до заготовки

Переміщення механізму (вертикального переміщення)

Вгору до вихідного положення

Над касетою

захват

Заготовки

відпускання

Заготовки

захват

Деталі

відпускання

Деталі

Униз до осі патрона верстата

Переміщення механізму D (вертикального переміщення )у зоні патрона верстата

Нагору до вихідного положення

An(j)

Уліво до j-го ряду

Переміщення механізму (горизонтального переміщення по осі Х) у зоні касети

Aо(j)

Вправо до вихідного положення

Уліво до патрона верстата

Переміщення механізму А (горизонтального переміщення по осі Х) у зоні патрона верстата

Вправо до вихідного положення

Bn

Переміщення механізму ротації схватів.

Механізм повороту В

Поворот у вихідне положення

Cn (i)

Уперед по i-ої позиції в ряді

Переміщення механізму З (горизонтального переміщення по осі В) у зоні касети

C`n

Уперед на 2h мм

Переміщення механізму З (горизонтального переміщення по осі В) у зоні касети

C`о

Назад до вихідного стану

Ротація, після якої схват заготівлі горизонтально

Переміщення механізму ротації схватів.

Ротація, після якої схват заготівлі вертикально

Умовні позначки операцій циклу:

Де j-число рядів у касеті

i-число позицій у ряді

h-висота заготівлі

Команди обміну з УЧПУ верстата

S1 - патрон затиснути

S2 - патрон затиснутий

S3 - патрон розтиснути

S4 - патрон розціплений

S5 - пуск програми

S6 - обробка кінчена

T - табло на екрані дисплея.

4. ПРАКТИЧНА РЕАЛІЗАЦІЯ СИСТЕМИ УПРАВЛІННЯ

Система управління промисловим роботом «Електроніка НЦ ТМ-01» була розроблена на базі IBM - сумісного персонального комп'ютера. Зв'язок між промисловим роботом і комп'ютером, встановлюється через спеціально спроектований електронний блок суміжності, який є невід'ємною частиною системи управління. Керування роботом виконується за допомогою спеціально розробленої програми, сигнали управління якої потрапляють в блок суміжності через паралельний порт - Centronic.

4.1 Блок схема системи управління

Блок схема системи управління приведена нижче на малюнку рис 4.1. Система управління складається з наступних елементів:

· IBM - сумісний персональний комп'ютер - є головним елементом системи управління, команди з якого подаються через паралельний порт LPT на вісім елементів гальванічної розв'язки каналу команд. Паралельній порт має п'ять входів, на чотири з яких подаються сигнали з датчиків робота.

· Монітор - виконує функцію відображення інтерфейсу програмного забезпечення системи управління.

· Органи управління - периферійні пристрої - клавіатура та мишка.

· Елементи гальванічної розв'язки каналу команд та каналу датчиків - виконують функції гальванічної розв'язки комп'ютера з роботом.

· Декодер команд - виконує функції декодування команд комп'ютера, перетворюючи їх з двійкового у десятковий код.

· Інвертор сигналів - виконує функції інвертування сигналів декодеру команд, а також команди зміни швидкості руху механізмів - А, С, D.

Рис 4.1 Блок схема системи управління

· Селектор-мультиплексор - виконує функції вибору необхідного каналу з сигналами з датчиків. Селектор-мультиплексор по команді з комп'ютера вмикає один з чотирьох каналів. В одному каналі міститься чотири лінії передачі даних з датчиків роботу, тобто комп'ютер одночасно може контролювати стан тільки чотирьох датчиків.

Всього на маніпулятор подається 15 команд, 5 команд подається на токарний верстат. Всього необхідно контролювати 12 датчиків маніпулятора, з яких від 1 до 3 максимум необхідно контролювати одночасно під час виконання конкретної команди, інші у цей час можна залишати без контролю. Також на систему управління подаються сигнали з 3-х датчиків токарного верстата.

4.2 Проектування та виготовлення блоку сполучення

Для того, щоб система управління на базі IBM - сумісного ПК могла функціонувати і керувати ПР «Електроніка НЦ ТМ - 01», необхідно було спроектувати та виготовити спеціальний пристрій, за допомогою якого встановлювався б зв'язок між ними. Завданням цього пристрою є декодування та передача команд роботу, які виробляє комп'ютер. Також у функції цього блоку входить передача сигналів необхідних комп'ютеру для слідкування за переміщеннями усіх механізмів робота, які надходять з його датчиків. Блок сполучення також виконує функцію гальванічної розв'язки між комп'ютером та роботом.

4.2.1 Проектування принципової схеми блоку сполучення

Перед тим як розпочати опис принципової схеми блоку сполучення, розглянемо устрій паралельного порту комп'ютера.

Порт Centronic, або паралельний - це промисловий стандарт для з'єднання принтера з комп'ютером. Комп'ютер має принаймні один такий порт, вбудований в материнську плату, або представляє собою окрему інтерфейсну карту вводу/виводу.

Роз'єм порту комп'ютера представляє собою 25-контактну розетку D - типу (рис 4.2) Призначення контактів роз'єму представлено в таблиці 4.1

Рис 4.2 Роз'єм паралельного порту комп'ютера

Таблиця 4.1 Призначення контактів роз'єму паралельного порту

Номери контактів на роз'їмі

Напрям відносно ПК

Найменування

Призначення

1

Вихід

STROBE

Строб даних

2

Вихід

DB0

Біт даних 0

3

Вихід

DB1

Біт даних 1

4

Вихід

DB2

Біт даних 2

5

Вихід

DB3

Біт даних 3

6

Вихід

DB4

Біт даних 4

7

Вихід

DB5

Біт даних 5

8

Вихід

DB6

Біт даних 6

9

Вихід

DB7

Біт даних 7

10

Вхід

ACK

Готовність принтера

11

Вхід

BUSY

Підтвердження зайнятості принтера

12

Вхід

PE

Немає паперу

13

Вхід

SLCT

Принтер підключений до лінії

14

Вихід

LF/CR

Автоматичний перехід строки після повернення коретки

15

Вхід

ERROR

Помилка у принтері

16

Вихід

INITIALIZE

Установка стандартних параметрів

17

Вихід

SLIN

Вибір принтера

18-25

GND

З'єднання з землею

Ми будемо використовувати слідуючи контакти роз'єму: 2-9 контакти для вихідних даних (посилання команд) і 10-13, 15 контакти для вхідних даних (для прийому сигналів з датчиків) та 18-25 земля.

Розглянемо принципову схему блоку сполучення (див. принципову схему)

Сигнал управління у вигляді 8 біт даних з контактів 2-9 роз'єму Х1 паралельного порту, потрапляють через обмежувальні резистори R1-R8 на оптрони U1-U8 відповідно. Кожна оптопара виконує роль гальванічної розв'язки і містить в середині світло випромінюючий діод та логічний елемент «Ні». У виключеному стані світло випромінюючого діода, на виході логічного елемента оптрона присутня логічна одиниця, і навпаки логічний нуль у випадку включення діода. Тобто у разі відсутності сигналу управління на контактах паралельного порту на виходах усіх оптопар присутня логічна 1. Перші 4 біти призначені виключно для задавання однієї необхідної команди з 19 можливих. Це 4-х бітне двійкове число далі інвертуються логічними елементами DD1.1 - DD1.4 для того, щоб воно співпадало з числом на паралельному порті.

Далі цей чотиризначний двійковий код команди подається на два двійково-десяткові дешифратори DD2 і DD3, входи яких паралельно з'єднані. Завданням цих дешифраторів є перетворення чотиризначного двійкового коду у десятковий, який ми отримуємо на їх виході. Нижче на малюнку приведено призначення виводів, цокольовка та таблиця істинності дешифраторів DD2 і DD3, що пояснює їх принцип дії (рис. 4.3). В схемі використовується два дешифратори тому, що необхідно декодувати 19 команд, в той час як один дешифратор може декодувати 16 чисел. Коли необхідно декодувати числа які лишились, вмикається другий дешифратор. Якщо поглянути на принципову схему (див. принципову схему ), то ми побачимо, що перший дешифратор DD2 декодує з 0 по 10 команди (нуль не використовується - це команда «стоп»), а DD3 декодує вже всі останні команди. Такий розподіл зумовлений лише зручністю монтажу мікросхем на платі.

Перемикання дешифраторів виконується програмно за допомогою п'ятого біту двійкового коду команди, який знімається з U5 і подається на з'єднані паралельно виводи 18, 19 дешифратора DD3, і через інвертор DD1.5 на ті ж самі виводи дешифратора DD2. Якщо на виході U5 знаходиться сигнал низького рівня (логічний 0), то вмикається дешифратор DD3, а якщо сигнал високого рівня (логічна 1), то вмикається дешифратор DD2.

Рис. 4.3 Двійково-десятковий дешифратор К155ИД3

Оскільки дешифратори DD2 і DD3 мають інверсні виходи, ми отримуємо інвертований сигнал на виході, який нам не підходить. Тому його необхідно знову інвертувати. Цю функцію виконують 8 - розрядні адресні регістри DD6 - DD8 з інверсними виходами, які працюють в режимі шинного формувача. Нижче на малюнку приведено цокольовку та призначення виводів мікросхем DD6 - DD8 (рис. 4.4, табл. 4.2). Для того, щоб мікросхеми DD6 - DD8 працювали в режимі інверторів необхідно на 11 вивід подати +5В, а 9 з'єднати з загальним проводом.

Рис. 4.4 КР580ИР83

Таблиця 4.2 Призначення виводів мікросхеми КР580ИР83

Вивід

Найменування виводу

Тип виводу

Функціональне призначення виводу

1-8

D0-D7

Вхід

Інформаційна шина

9

OE

Вхід

Дозвіл передачі(керування 3-ма станами)

10

GND

-

Загальний

11

STB

Вхід

Стробуючий сигнал

12-19

Q7-Q0

Вихід

Інформаційна шина

20

Ucc

-

Живлення +5В

Далі інвертовані сигнали команд управління потрапляють через роз'єм «механізмів» - Х2 в блок управління ПР «Електроніка НЦ ТМ - 01». Елементи HL1 - HL20 та R14 - R33 виконують функції індикації ввімкнення команд.

Шостий біт двійкового коду команди управління, який знімається з оптопари U6 - використовується для вибору однієї з двох швидкостей переміщення механізмів А, С і D. Цей сигнал інвертується мікросхемою DD8, після чого потрапляє на роз'єм «механізмів» - Х2. Якщо на виході U6 знаходиться сигнал низького рівня (логічний 0), то вмикається низька швидкість, а якщо сигнал високого рівня (логічна 1), то вмикається підвищена швидкість переміщення.

Сигнали з датчиків робота та токарного верстата приходять на роз'єм «датчиків» Х3, з якого далі потрапляють на входи мікросхем DD4 і DD5.

Ці мікросхеми представляють собою - чотири розрядний селектор-мультиплексор 1 із 2, без інверсії вхідної інформації і з трьома станами виходів. Нижче на малюнку приведено призначення виводів, цокольовка та таблиця істинності мікросхем DD4 і DD5, що пояснює їх принцип дії (рис. 4.5).

Рис. 4.5 К555КП11

При високому рівні на виводі управління третім станом W виходи переводяться у високоімпедансний стан, а при низькому рівні напруги - на виходи Y передається інформація з відповідних входів A/B, відповідно до стану вивода V.

Останніми двома бітами двійкового коду команди управління, які знімаються з оптопар U7 і U8, програмно обирається один мультиплексор з двох, та один канал з чотирьох можливих. Сигнал з U8 подається на вивід 1 мультиплексорів DD4 і DD5. Сигнал з U7 подається на вивід 15 DD5, а також після інвертування на DD8 подається на вивід 15 DD4. Необхідний мультиплексор і один з двох його каналів вмикається комбінацією сигналів на виводах W і V, відповідно до таблиці істинності приведеної на рис. 4.5

Виходи обох мультиплексорів з'єднані паралельно і підключаються до чотирьох оптотранзисторів U10 - U13 відповідно. Оптотранзистори виконують функції гальванічної розв'язки, та працюють у ключовому режимі. Колектори оптотранзисторів підключаються відповідно до 10 - 13 і 15 контактів Х1 паралельного порту ПК.

4.2.2 Проектування та виготовлення електронної плати блоку сполучення

Електронна плата блоку сполучення була виготовлена з двостороннього фальгованого міддю склотекстоліту, товщиною 1,5 мм. Малюнок доріжок і розташування усіх компонентів було розроблено за допомогою програми - Sprint-layout - версія 3.0. Малюнок доріжок плати наносився на склотекстоліт термічним способом. Спочатку малюнок лати був роздрукований на папері за допомогою лазерного принтера, а потім за допомогою утюга перенесений на склотекстоліт. Після чого плата була витравлена у розчині хлорного заліза. Всі мікросхеми встановлені на спеціальні панелі, для подальшої їх зручної і швидкої заміни у разі їх виходу із ладу.

Зовнішній вигляд внутрішньої сторони плати приведений на рис. 4.6, а вигляд лицьової сторони плати приведений на рис. 4.7.

Рис. 4.6 Зовнішній вигляд внутрішньої сторони плати сполучення

Рис. 4.7 Зовнішній вигляд лицьової сторони плати сполучення

Зовнішній вигляд готового блоку сполучення приведений на рис. 4.8, та зовнішній вигляд роз'ємів блоку сполучення на рис. 4.9.

Рис. 4.8 Зовнішній вигляд готового блоку сполучення

Рис. 4.9 Зовнішній вигляд роз'ємів блоку сполучення

4.3 Розробка програми управління

Програма управління була розроблена в програмному середовищі Delphi 7.0

Delphi - одна з найпотужніших систем, що дозволяють на найсучаснішому рівні створювати як окремі прикладні програми Windows, так і розгалужені комплекси, призначені для роботи в корпоративних мережах і в Інтернет. Візуальне програмування дозволило звести проектування призначеного для користувача інтерфейсу до простих і наочних процедур, які дають можливість за хвилини або годинник зробити те, на що раніше витрачали місяці роботи.

Оскільки в операційній системі Windows XP неможливо працювати з паралельним портом напряму, тому в програмі управління було використано драйвер - LPTWDMIO.sys. Драйвер LPTWDMIO.sys надає користувацьким програмам можливість керувати паралельними портами ПК. Звертання до драйвера з програми виконується через функцію DeviceIoControl( ). Драйвер підтримує два види операцій - зчитування з порту й запис у порт. За одне звернення до драйвера можливі декілька (від однієї і більше) акцій введення (виведення) даних в (із) регістрів порту. Це дозволяє легко реалізувати складні протоколи управління зовнішніми приладами. Драйвер може працювати на наступних платформах: Windows 98, Windows Me, Windows NT4, Windows 2000 Prof., Windows XP Home Edition, Windows XP Prof..

Зовнішній вигляд форми програми і використаних компонентів у програмі показано на рис. 4.10

Рис. 4.10 Зовнішній вигляд форми програми

Зовнішній вигляд робочої програми приведений на рис 4.11

Рис. 4.11 Зовнішній вигляд робочої програми

Програмний лістинг програми:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, LPTIO,

ExtCtrls, StdCtrls, Buttons;

type

TForm1 = class(TForm)

Panel1: TPanel;

ComboBox1: TComboBox;

Label1: TLabel;

Panel2: TPanel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

BitBtn5: TBitBtn;

BitBtn6: TBitBtn;

BitBtn7: TBitBtn;

BitBtn8: TBitBtn;

BitBtn9: TBitBtn;

BitBtn10: TBitBtn;

BitBtn11: TBitBtn;

BitBtn12: TBitBtn;

BitBtn13: TBitBtn;

BitBtn14: TBitBtn;

BitBtn15: TBitBtn;

BitBtn16: TBitBtn;

BitBtn17: TBitBtn;

BitBtn18: TBitBtn;

RadioGroup1: TRadioGroup;

Timer1: TTimer;

Timer2: TTimer;

Timer3: TTimer;

Timer4: TTimer;

Timer5: TTimer;

Timer6: TTimer;

Timer7: TTimer;

Timer8: TTimer;

Timer9: TTimer;

Panel3: TPanel;

Panel4: TPanel;

Panel5: TPanel;

Edit1: TEdit;

Label2: TLabel;

Label3: TLabel;

Edit2: TEdit;

Edit3: TEdit;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Bevel1: TBevel;

Bevel2: TBevel;

Bevel3: TBevel;

Timer10: TTimer;

procedure FormCreate(Sender: TObject);

procedure FormDestroy(Sender: TObject);

procedure BitBtn1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn1MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure RadioGroup1Click(Sender: TObject);

procedure BitBtn2MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn2MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn3MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn3MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn4MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn4MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn5MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn5MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn6MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn6MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn7MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn7MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn8MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn8MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn18Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure Timer2Timer(Sender: TObject);

procedure Timer3Timer(Sender: TObject);

procedure Timer4Timer(Sender: TObject);

procedure Timer5Timer(Sender: TObject);

procedure Timer6Timer(Sender: TObject);

procedure Timer7Timer(Sender: TObject);

procedure BitBtn9MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn9MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn10MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn10MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure Timer8Timer(Sender: TObject);

procedure Timer9Timer(Sender: TObject);

procedure BitBtn11MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn13MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn13MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn14MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn14MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn11MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn12MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure BitBtn12MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure FormShow(Sender: TObject);

procedure Timer10Timer(Sender: TObject);

procedure BitBtn17Click(Sender: TObject);

private

{ Private declarations }

Lpt : TLptPortConnection;

public

{ Public declarations }

function GetCurrentPort : byte; // Читает список ComboBox1 и возвращает соответствующий номер порта

// function GetCurrentRegister : byte; // Читает список ComboBox2 и возвращает соответствующий номер регистра

/*********************PIN*****************************************

function Pin2 : boolean;

function Pin3 : boolean ;

function Pin4 : boolean ;

function Pin5 : boolean ;

function Pin6 : boolean ;

function Pin7 : boolean ;

function Pin8 : boolean ;

function Pin9 : boolean ;

function Pin1 : boolean ;

function Pin14 : boolean ;

function Pin16 : boolean ;

function Pin17 : boolean ;

function InMode : boolean ;

function Pin11 : boolean ;

function Pin10 : boolean ;

function Pin12 : boolean ;

function Pin13 : boolean ;

function Pin15 : boolean ;

//****************************************************************

{----------------Встроены команды Pin клавиатуры-------------------------------}

procedure ButtonPin2;

procedure ButtonPin3;

procedure ButtonPin4;

procedure ButtonPin5;

procedure ButtonPin6;

procedure ButtonPin7;

procedure ButtonPin8;

procedure ButtonPin9;

procedure ButtonPin1;

procedure ButtonPin14;

procedure ButtonPin16;

procedure ButtonPin17;

procedure InOut; //-- EPP: вход / выход переключатель

//****************************************************************

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);

var msg : AnsiString;

begin

Lpt := TLptPortConnection.Create;

if not Lpt.Ready then

begin { объект не готов -- покажем код ошибки }

msg := 'Ошибка при создании объекта Lpt, драйвер ERROR, код = ' + IntToStr(GetLastError());

Application.MessageBox(PChar(msg),'ERROR',MB_OK);

Application.Terminate; // выход

end;

// Проверим наличие портов и заполним их список в ComboBox-e

ComboBox1.Items.Clear;

ComboBox1.Text := '';

if Lpt.IsPortPresent(LPT1) then ComboBox1.Items.Add('$3BC');

if Lpt.IsPortPresent(LPT2) then ComboBox1.Items.Add('$378');

if Lpt.IsPortPresent(LPT3) then ComboBox1.Items.Add('$278');

if 0<>ComboBox1.Items.Count then ComboBox1.ItemIndex := 0; end;

procedure TForm1.FormDestroy(Sender: TObject); // Обработчик разрушения

begin

Lpt.Destroy;

{ Здесь разместите все таймеры, которые должны быть отключены }

end;

function TForm1.GetCurrentPort : byte; // Читает список ComboBox1 и возвращает соответствующий номер порта

begin

if '$3BC' = ComboBox1.Text then

GetCurrentPort:=LPT1

else

if '$378' = ComboBox1.Text then

GetCurrentPort:=LPT2 else

GetCurrentPort:=LPT3; end;

{--------------- Регистр данных -------------------}

function TForm1.Pin2 : boolean ;

Var

d : boolean;

begin

d := true;

d := d and (1 = (1 and Lpt.ReadPort( (GetCurrentPort) ,0))) ;

Pin2 := d; end;

function TForm1.Pin3 : boolean ;

Var

d : boolean;

begin

d := true;

d := d and (2 = (2 and Lpt.ReadPort(GetCurrentPort,0))) ;

Pin3 := d; end;

function TForm1.Pin4 : boolean ;

Var

d : boolean;

begin

d := true;

d := d and (4 = (4 and Lpt.ReadPort(GetCurrentPort,0))) ;

Pin4 := d; end;

function TForm1.Pin5 : boolean ;

Var

d : boolean;

begin

d := true;

d := d and (8 = (8 and Lpt.ReadPort(GetCurrentPort,0))) ;

Pin5 := d; end;

function TForm1.Pin6 : boolean ;

Var

d : boolean;

begin

d := true;

d := d and (16 = (16 and Lpt.ReadPort(GetCurrentPort,0))) ;

Pin6 := d; end;

function TForm1.Pin7 : boolean ;

Var

d : boolean;

begin

d := true;

d := d and (32 = (32 and Lpt.ReadPort(GetCurrentPort,0))) ;

Pin7 := d; end;

function TForm1.Pin8 : boolean ;

Var

d : boolean;

begin

d := true;

d := d and (64 = (64 and Lpt.ReadPort(GetCurrentPort,0))) ;

Pin8 := d; end;

function TForm1.Pin9 : boolean ;

Var

d : boolean;

begin

d := true;

d := d and (128 = (128 and Lpt.ReadPort(GetCurrentPort,0))) ;

Pin9 := d; end;

{--------------- Регистр управления -------------------}

function TForm1.Pin1 : boolean ;

Var

d : boolean;

begin

d := true;

d := d xor (STROBE = (STROBE and Lpt.ReadPort(GetCurrentPort,2))) ;

Pin1 := d; end;

function TForm1.Pin14 : boolean ;

Var

d : boolean;

begin

d := true;

d := d xor (AUTOFEED = (AUTOFEED and Lpt.ReadPort(GetCurrentPort,2))) ;

Pin14 := d; end;

function TForm1.Pin16 : boolean ;

Var

d : boolean;

begin

d := true;

d := d and (INIT = (INIT and Lpt.ReadPort(GetCurrentPort,2))) ;

Pin16 := d; end;

function TForm1.Pin17 : boolean ;

Var

d : boolean;

begin

d := true;

d := d xor (SELECTIN = (SELECTIN and Lpt.ReadPort(GetCurrentPort,2))) ;

Pin17 := d; end;

{--------------- (EPP): На вход = true, выход = false -----------}

function TForm1.InMode : boolean ; //-- вход = true, выход = false

Var

d : boolean;

begin

d := true;

d := d and (DIRECTION = (DIRECTION and Lpt.ReadPort(GetCurrentPort,2))) ; //-- 32 (бит 5) он же DIRECTION

if Lpt.IsPortBidirectional(GetCurrentPort)= true then InMode := d else InMode := false;end;

{--------------- Регистр состояния (входы) ----------------------}

function TForm1.Pin11 : boolean ;

Var

d : boolean;

begin

d := true;

d := d xor(BUSY = (BUSY and Lpt.ReadPort(GetCurrentPort,1))) ;

Pin11 := d; end;

function TForm1.Pin10 : boolean ;

Var

d : boolean;

begin

d := true;

d := d and(ACK = (ACK and Lpt.ReadPort(GetCurrentPort,1))) ;

Pin10 := d; end;

function TForm1.Pin12 : boolean ;

Var

d : boolean;

begin

d := true;

d := d and(PAPEREND = (PAPEREND and Lpt.ReadPort(GetCurrentPort,1))) ;

Pin12 := d; end;

function TForm1.Pin13 : boolean ;

Var

d : boolean;

begin

d := true;

d := d and(SELECT = (SELECT and Lpt.ReadPort(GetCurrentPort,1))) ;

Pin13 := d; end;

function TForm1.Pin15 : boolean ;

Var

d : boolean;

begin

d := true;

d := d and(ERROR = (ERROR and Lpt.ReadPort(GetCurrentPort,1))) ;

Pin15 := d; end;

//-----------------------Команды Pin клавиатуры---------------------------------

{ ----------- регистр данных ----------------- }

procedure TForm1.ButtonPin2;

begin

Lpt.WritePort (GetCurrentPort,0,(1 xor Lpt.ReadPort( (GetCurrentPort) ,0) )); end;

procedure TForm1.ButtonPin3;

begin

Lpt.WritePort (GetCurrentPort,0,(2 xor Lpt.ReadPort( (GetCurrentPort) ,0) )); end;

procedure TForm1.ButtonPin4;

begin

Lpt.WritePort (GetCurrentPort,0,(4 xor Lpt.ReadPort( (GetCurrentPort) ,0) )); end;

procedure TForm1.ButtonPin5;

begin

Lpt.WritePort (GetCurrentPort,0,(8 xor Lpt.ReadPort( (GetCurrentPort) ,0) )); end;

procedure TForm1.ButtonPin6;

begin

Lpt.WritePort (GetCurrentPort,0,(16 xor Lpt.ReadPort( (GetCurrentPort) ,0) )); end;

procedure TForm1.ButtonPin7;

begin

Lpt.WritePort (GetCurrentPort,0,(32 xor Lpt.ReadPort( (GetCurrentPort) ,0) )); end;

procedure TForm1.ButtonPin8;

begin

Lpt.WritePort (GetCurrentPort,0,(64 xor Lpt.ReadPort( (GetCurrentPort) ,0) ));end;

procedure TForm1.ButtonPin9;

begin

Lpt.WritePort (GetCurrentPort,0,(128 xor Lpt.ReadPort( (GetCurrentPort) ,0) )); end;

{ -------------- регистр контроля ----------------- }

procedure TForm1.ButtonPin1;

begin

Lpt.WritePort (GetCurrentPort,2,(1 xor Lpt.ReadPort( (GetCurrentPort) ,2) )); end;

procedure TForm1.ButtonPin14;

begin

Lpt.WritePort (GetCurrentPort,2,(2 xor Lpt.ReadPort( (GetCurrentPort) ,2) )); end;

procedure TForm1.ButtonPin16;

begin

Lpt.WritePort (GetCurrentPort,2,(4 xor Lpt.ReadPort( (GetCurrentPort) ,2) )); end;

procedure TForm1.ButtonPin17;

begin

Lpt.WritePort (GetCurrentPort,2,(8 xor Lpt.ReadPort( (GetCurrentPort) ,2) )); end;

procedure TForm1.InOut; //--- переключ. направления в реж. EPP вход / выход

begin

if Lpt.IsPortBidirectional(GetCurrentPort)= true then

begin

Lpt.WritePort(GetCurrentPort,2, (DIRECTION xor Lpt.ReadPort(GetCurrentPort,2))) ; //-- 32 (бит 5 )

end else

MessageBox(Handle,PChar('Данный порт не является активным в EPP режиме. Для активации войдите в Bios, раздел INTEGRATED PERIPHERALS или др., найдите строку PARALLEL PORT MODE: измените режим работы порта на EPP или SPP/EPP.'),

PChar('Не доступен EPP режим '),MB_ICONINFORMATION + MB_OK +MB_DEFBUTTON2); end;

procedure TForm1.BitBtn1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

Timer1.Enabled:=true;

if RadioGroup1.ItemIndex = 0 then

Lpt.WritePort (GetCurrentPort,0,129) else

Lpt.WritePort (GetCurrentPort,0,161); end;

procedure TForm1.BitBtn1MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

if RadioGroup1.ItemIndex = 0 then

Lpt.WritePort (GetCurrentPort,0,128) else

Lpt.WritePort (GetCurrentPort,0,160);

Timer1.Enabled:=false; end;

procedure TForm1.RadioGroup1Click(Sender: TObject);

begin

if RadioGroup1.ItemIndex = 0 then

Lpt.WritePort (GetCurrentPort,0,0) else

Lpt.WritePort (GetCurrentPort,0,32); end;

procedure TForm1.BitBtn2MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

Timer2.Enabled:=true;

if RadioGroup1.ItemIndex = 0 then

Lpt.WritePort (GetCurrentPort,0,130) else

Lpt.WritePort (GetCurrentPort,0,162); end;

procedure TForm1.BitBtn2MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

if RadioGroup1.ItemIndex = 0 then

Lpt.WritePort (GetCurrentPort,0,128) else

Lpt.WritePort (GetCurrentPort,0,160);

Timer2.Enabled:=false; end;

procedure TForm1.BitBtn3MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

Timer3.Enabled:=true;

if RadioGroup1.ItemIndex = 0 then

Lpt.WritePort (GetCurrentPort,0,67) else

Lpt.WritePort (GetCurrentPort,0,99); end;

procedure TForm1.BitBtn3MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

if RadioGroup1.ItemIndex = 0 then

Lpt.WritePort (GetCurrentPort,0,64) else

Lpt.WritePort (GetCurrentPort,0,96);

Timer3.Enabled:=false; end;

procedure TForm1.BitBtn4MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

Timer4.Enabled:=true;

if RadioGroup1.ItemIndex = 0 then

Lpt.WritePort (GetCurrentPort,0,68) else

Lpt.WritePort (GetCurrentPort,0,100); end;

procedure TForm1.BitBtn4MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

if RadioGroup1.ItemIndex = 0 then

Lpt.WritePort (GetCurrentPort,0,64) else

Lpt.WritePort (GetCurrentPort,0,96);

Timer4.Enabled:=false; end;

procedure TForm1.BitBtn5MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

Timer5.Enabled:=true;

if RadioGroup1.ItemIndex = 0 then

Lpt.WritePort (GetCurrentPort,0,5) else

Lpt.WritePort (GetCurrentPort,0,37); end;

procedure TForm1.BitBtn5MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

if RadioGroup1.ItemIndex = 0 then

Lpt.WritePort (GetCurrentPort,0,0) else

Lpt.WritePort (GetCurrentPort,0,32);

Timer5.Enabled:=false; end;

procedure TForm1.BitBtn6MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

Timer10.Enabled:=true;

if RadioGroup1.ItemIndex = 0 then

Lpt.WritePort (GetCurrentPort,0,6) else

Lpt.WritePort (GetCurrentPort,0,38); end;

procedure TForm1.BitBtn6MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

if RadioGroup1.ItemIndex = 0 then

Lpt.WritePort (GetCurrentPort,0,0) else

Lpt.WritePort (GetCurrentPort,0,32);

Timer10.Enabled:=false; end;

procedure TForm1.BitBtn7MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

Timer6.Enabled:=true;

if RadioGroup1.ItemIndex = 0 then

Lpt.WritePort (GetCurrentPort,0,7) else

Lpt.WritePort (GetCurrentPort,0,39); end;

procedure TForm1.BitBtn7MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

if RadioGroup1.ItemIndex = 0 then

Lpt.WritePort (GetCurrentPort,0,0) else

Lpt.WritePort (GetCurrentPort,0,32);

Timer6.Enabled:=false; end;

procedure TForm1.BitBtn8MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

Timer7.Enabled:=true;

if RadioGroup1.ItemIndex = 0 then

Lpt.WritePort (GetCurrentPort,0,8) else

Lpt.WritePort (GetCurrentPort,0,40); end;

procedure TForm1.BitBtn8MouseUp(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

if RadioGroup1.ItemIndex = 0 then

Lpt.WritePort (GetCurrentPort,0,0) else

Lpt.WritePort (GetCurrentPort,0,32);

Timer7.Enabled:=false; end;

procedure TForm1.BitBtn18Click(Sender: TObject);

begin

if RadioGroup1.ItemIndex = 0 then

Lpt.WritePort (GetCurrentPort,0,0) else

Lpt.WritePort (GetCurrentPort,0,32); end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

if Pin12 = true then

begin

if RadioGroup1.ItemIndex = 0 then

Lpt.WritePort (GetCurrentPort,0,128) else

Lpt.WritePort (GetCurrentPort,0,160);

BitBtn1.Enabled:=false;

Timer1.Enabled:=false;


Подобные документы

  • Функції інформаційної системи. Аналіз функцій системи управління базами даних: управління транзакціями і паралельним доступом, підтримка цілісності даних. Аналіз системи MySQL. Елементи персонального комп’ютера: монітор, клавіатура, материнська плата.

    дипломная работа [1,2 M], добавлен 15.05.2012

  • Основні блоки персонального комп'ютера та їх значення. Варіанти організації внутрішньомашиного інтерфейсу. Функціональна схема мікропроцесору. Види запам'ятовуючих пристроїв. Послідовність роботи блоків комп'ютера. Основні зовнішні та внутрішні пристрої.

    курсовая работа [346,8 K], добавлен 05.01.2014

  • Системний блок як корпус, який містить основні компоненти персонального комп’ютера. Коротка характеристика головних зовнішніх та внутрішніх пристроїв персонального комп’ютера. Послідовність операцій при обтиску та обробленні роз'єму "витої пари".

    лабораторная работа [1,7 M], добавлен 02.06.2011

  • Загальна характеристика проблеми тепловиділення персональних комп'ютерів. Принципи і типи охолодження компонентів комп'ютера. Можливості модуля багатоканального контролера. Принципова схема і конструкція блоку контролю. Вимірювальна і сервісна апаратура.

    отчет по практике [5,7 M], добавлен 23.01.2016

  • Електронна база даних як послідовність даних заданої структури, записана на магнітний диск комп'ютера, її типи, основні та невід'ємні властивості. Призначення та оцінка можливостей системи управління. Моделі даних та головні принципи їх функціонування.

    презентация [352,2 K], добавлен 04.12.2014

  • "Критичні" комплектуючі комп'ютера. Процесор та оперативна пам'ять. Швидкість роботи комп'ютера. Порівняння швидкодії комплектуючих з роботою еталонних моделей. Стратегія і варіанти модернізації. Функціональні особливості побудови материнської плати.

    курсовая работа [4,6 M], добавлен 24.06.2013

  • Використання комп'ютерного моделювання. Особливості проектування моделі автоматичної системи управління технологічним процесом. Визначення кількості пропущених через відмову даних та часу знаходження системи в загальмованому стані. Опис алгоритму моделі.

    контрольная работа [501,7 K], добавлен 13.01.2014

  • Розробка структурної схеми системи управління, головні вимоги до основних елементів. Обґрунтування та вибір елементної бази. Блок-схема алгоритму і програми реалізації закону управління (лістинг програми). Зміст програми керування мікроконтроллером.

    курсовая работа [170,7 K], добавлен 28.08.2012

  • Характеристика програмної взаємодії людини з комп'ютером. Визначення функціональних та експлуатаційних потреб при голосовому управлінні. Реалізація програмного забезпечення. Розробка тестів та тестування системи. Аналіз ефективності даної програми.

    курсовая работа [2,8 M], добавлен 15.10.2014

  • Основні функціональні можливості програми для забезпечення комп'ютерної системи дистанційного управління приладами. Функція пульта дистанційного керування мартфонів. Реалізація пультів дистанційного управління на основі апаратно-програмного комплексу.

    дипломная работа [1,7 M], добавлен 09.07.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.