Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
ЛАБОРАТОРНА РОБОТА № 4.
Формування запитів MODBUS RTU.
Тривалість: 4 акад. години (2 пари).
Мета: ознайомитись з принципами функціонування протоколу MODBUS; ознайомитись з роботою адаптера-перетворювача інтерфейсів RS-232<->RS-485.
Лабораторна установка.
Лабораторна робота виконується на робочих місцях 2-5, 7-10. Одна бригада два робочі місця.
Апаратне забезпечення. Лабораторна установка складається з компютера підключеного до термінального порту ПЛК Twido за допомогою адаптера-перетворювача інтерфейсів RS-232 <-> RS-485. Схема установки показана на рис.4.1.
Програмне забезпечення. На компютері використовується прикладна програма для роботи з COM-портом компютера Compt.exe, а також програма для генерації циклічного перевірочного коду CRC16 crcdll.exe (знаходиться в папці Compt175). На ПЛК написана програма, яка змінює значення змінних відповідно до варіанту. Зєднання ПЛК та ПК реалізується за допомогою Modbus RTU, де ПЛК являється Slave, а ПК разом з Compt.exe являється Master.
Загальна постановка задачі. Лабораторна бригада реалізовує роботу MODBUS RTU Master, тобто формує запити для Slave (ПЛК) та обробляє його відповіді. Основні функції, можливі помилки та їх коди наведені в додатках 2.1 та 2.2. Контрольну суму необхідно вираховувати за допомогою програми crcdll.exe, яка в аргументах приймає байти кадру в 16-ковому вигляді, які розділені " " (пробілом), а результатом видає 2 байти суми CRC16.
Необхідно врахувати особливості роботи кабелю TSX PCX 1031 та його вплив на роботу Port1 в Twido. Принципи функціонування кабелю описана в додатку 2.3.
Послідовність виконання роботи.
Параметр |
робоче місце |
|||||||
2 |
3 |
4 |
5 |
7 |
8 |
9 |
10 |
|
Адреса Slave |
2 |
3 |
4 |
5 |
7 |
8 |
9 |
10 |
бітова швидкість |
19200 |
19200 |
19200 |
19200 |
9600 |
9600 |
9600 |
9600 |
паритет |
парн |
парн |
парн |
парн |
непар |
непар |
непар |
непар |
стоп біт |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Параметр |
робоче місце |
|||||||
2 |
3 |
4 |
5 |
7 |
8 |
9 |
10 |
|
номер регістру |
12310 |
6810 |
3410 |
17610 |
3410 |
1110 |
6710 |
9510 |
Параметр |
робоче місце |
|||||||
2 |
3 |
4 |
5 |
7 |
8 |
9 |
10 |
|
номер регістру |
210 |
310 |
410 |
510 |
710 |
810 |
910 |
1010 |
знач. регістр 1 |
3410 |
2210 |
4410 |
5610 |
6810 |
1210 |
1410 |
6810 |
знач. регістр 2 |
234510 |
123410 |
345610 |
456710 |
567810 |
911210 |
112310 |
765410 |
Оформлення роботи.
До захисту готовляться всі занотовані результати з поясненнями.
Перевірка виконання роботи та питання до захисту.
Викладачем вибірково перевіряється виконання всіх пунктів роботи та занотовані результати. Кожен результат студент повинен пояснити. У випадку виникнення помилок або запитань щодо проведення певного пункту, цей пункт необхідно буде повторити.
Додаток 2.1. Формат функцій MODBUS (MBAP)
Повний список кодів а також специфікацію протоколу можна знайти на офіційному Веб сайті MODBUS-IDA - www.MODBUS.org. В додатку детально розглянуто тільки найбільш вживані функції MODBUS для обміну даними процесу. Номер функції дається в шістнадцятковому форматі. Скорочення в дужках Hi та Lo вказують відповідно на старший та молодший байти. Тобто, якщо для вказівки адреси початкової змінної необхідно двобайтове слово, то значення старшого байта буде передаватись в полі з позначенням Hi, а молодшого відповідно Lo.
Д.2.1.1. Код функції 0116 − читання статусу Coils (дискретних вихідних бітів). Повідомлення-запит вміщує адресу початкового біту і кількість бітів для читання. Біти нумеруються починаючи з 0. У повідомленні-відповіді кожне значення змінної передається одним бітом, тобто в одному байті пакується статус 8 бітових змінних. Якщо кількість їх не кратно восьми, інші біти в байті заповнюються нулями. Лічильник вміщує кількість байт в полі даних.
Запит: Відповідь:
Код функції |
01 |
Адреса початкового біту (HI) |
0 до FFFF16 |
Адреса початкового біту (LO) |
|
Кількість біт (HI) |
1 до 7D016 (2000) |
Кількість біт (LO) |
|
код функції |
01 |
лічильник байт |
N |
Значення бітів (перші 8 біт) |
0 до FF16 |
Значення бітів (наступні 8 біт) |
0 до FF16 |
... |
|
Значення бітів (N-ні 8 біт) |
0 до FF16 |
Д.2.1.2. Код функції 0216 − читання статусу дискретних входів. Формат даного запиту такий же як попереднього, за винятком поля функції.
Д.2.1.3. Код функції 0316 − читання значення вихідних/внутрішніх регістрів. Повідомлення-запит вміщує адресу початкового вихідного/внутрішнього регістру (двохбайтове слово), і кількість регістрів для читання. Регістри нумеруються починаючи з 0.
Запит: Відповідь:
код функції |
03 |
Адреса початкового регістру (Hi) |
від 0 до FFFF16 |
Адреса початкового регістру (Lo) |
|
Кількість регістрів (Hi) |
від 1 до 7D16 (125) |
Кількість регістрів (Lo) |
|
код функції |
01 |
лічильник байт |
N*2 |
Значення 1-го регістру (Hi) |
0 до FFFF16 |
Значення 1-го регістру (Lo) |
|
... |
|
Значення N-го регістру (Hi) |
0 до FFFF16 |
Значення N-го регістру (Lo) |
У відповідному повідомленні в полі даних кожний регістр передається двома байтами.
Д.2.1.4. Код функції 0416 − читання значення вхідних регістрів. Формат даного запиту такий же як попереднього, за винятком поля функції.
Д.2.1.5. Код функції 0F16 − запис декількох вихідних/внутрішніх бітів. В запиті вказується початкова адреса біту, кількість біт для запису, лічильник байтів і безпосередньо значення. В широкомовній передачі біти записуються всім серверам. Розглянемо приклад для встановлення наступних бітових вихідних/внутрішніх змінних:
Байт 1 |
Байт 2 |
||||||||||||||
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
-- |
-- |
-- |
-- |
-- |
-- |
28 |
27 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
В таблиці показана відповідність адреси змінної, починаючи з 19-ї, і значення біту. Для зручності біти розміщені у тому порядку, що і передаються. В другому байті корисні тільки 2 перші біти, значення інших не буде прийнято до уваги, оскільки кількість бітів вказані у кадрі. Запит та відповідь будуть мати такий вигляд:
Запит: Відповідь:
Функція |
0F |
Адреса початкового біту (Hi) |
00 |
Адреса початкового біту (Lo) |
13 |
Кількість бітів (Hi) |
00 |
Кількість бітів (Lo) |
0А |
Лічильник байтів |
02 |
Дані(змінні 19-26) |
CD |
Дані(змінні 27-28) |
01 |
Функція |
0F |
Адреса початкового біту (Hi) |
00 |
Адреса початкового біту (Lo) |
13 |
Кількість бітів (Hi) |
00 |
Кількість бітів (Lo) |
0А |
Д.2.1.6. Код функції 1016 − запис декількох вихідних/внутрішніх регістрів.
Запит: Відповідь:
Функція |
1016 |
Адреса початкового регістру (Hi) |
0 до FFFF16 |
Адреса початкового регістру (Lo) |
|
Кількість регістрів (Hi) |
1 до 007B16 (123) |
Кількість регістрів (Lo) |
|
Лічильник байтів |
2*N |
Дані (1-й регістр Hi) |
0 до FFFF16 |
Дані (1-й регістр Lo) |
|
... |
|
Дані (N-й регістр Hi) |
0 до FFFF16 |
Дані (N-й регістр Lo) |
|
Функція |
10 |
Адреса початкового регістру (Hi) |
0 до FFFF16 |
Адреса початкового регістру Lo |
|
Кількість регістрів (Hi) |
1 до 007B16 (123) |
Кількість регістрів (Lo) |
Додаток 2.2. Повідомлення про помилки MODBUS (MBAP)
Ці повідомлення стосуються всіх типів MODBUS, але першопочатково були визначені для MODBUS Serial (RTU/ASCII).
При запиті Клієнта до Серверу, можуть мати місце наступні ситуації:
Повідомлення про помилку має два поля які відрізняються від полів нормальної відповіді:
ПОЛЕ КОДУ ФУНКЦІЇ: при нормальній відповіді сервер повертає в цьому полі той номер функції, який потребував Клієнт. У всіх кодах функції старший біт встановлений в 0. При поверненні повідомлень про помилку, Сервер встановлює цей біт в 1, по чому Клієнт може ідентифікувати наявність помилки.
ПОЛЕ ДАНИХ: В цьому полі при помилці повертається її код.
Таблиця Д2.1
Код |
Назва |
Опис |
01 |
ILLEGAL FUNCTION |
Прийнятий код функції не може бути оброблений на Сервері |
02 |
ILLEGAL DATA ADDRESS |
Адреса даних вказана в запиті не доступна даному Серверу . |
03 |
ILLEGAL DATA VALUE |
Величина, вміщена в полі даних запиту являється не допустимою величиною для Серверу . |
04 |
SLAVE DEVICE FAILURE |
Невиправна помилка мала місце поки Сервер намагався виконати дію запиту. |
05 |
ACKNOWLEDGE |
Сервер прийняв запит і обробляє його, але необхідний певний час. Ця відповідь захищає Клієнта від генерації помилки тайм-ауту. |
06 |
SLAVE DEVICE BUSY |
Сервер зайнятий обробкою команди, Клієнт повинен повторити запит пізніше. |
07 |
NEGATIVE ACKNOWLEDGE |
Невдалий програмний запит (для функцій 13 і 14). |
08 |
MEMORY PARITY ERROR |
Сервер хоче читати розширену память, але знайшов помилку паритету. |
Додаток 2.3. Робота адаптеру перетворювача TSX PCX 1031
Адаптер-перетворювач TSX PCX 1031 (див.рис.4.2) використовується для підключення пристроїв з RS-232C до термінального порту TSX Twido, TSX Micro, TSX Premium, або коробки підключення TSX P ACC01. Управління станом трансмітера RS-485 в адаптері-перетворювачі може управлятись одним із двох способів, які задаються перемикачем: зі сторони RS-232C сигналом RTS (позиція "MULTI"), або зі сторони термінального порту ПЛК (позиція "DIRECT"). Оскільки в стандарті RS-485 немає виділених ресурсів для режиму DIRECT, то він використовується тільки для підключення адаптера безпосередньо до термінального порту ПЛК , тобто у випадку зєднання точка-точка.
Враховуючи, що TSX PCX 1031 використовується в якості кабелю програмування вищезазначених контролерів, він надає можливість переводити підключений термінальний порт ПЛК в режим програмування. Перемикач кабелю в позиції "TER" переводить підключений порт ПЛК в режим програмування, не залежно від дійсної його конфігурації. Позиція "OTHER" переводить термінальний порт в той режим, який визначається його дійсною конфігурацією.
Додаток 2.4. Робота з програмою Compt.
Д1.1.1. Загальні відомості. Дана програма являється утилітою для роботи з COM-портами компютера. Серед її можливостей треба виділити наступні:
Після завантаження, як правило видається помилка доступу до COM-порту, на яку не слід зважати.
Д1.1.2. Основні команди. Якщо програма завантажилась в англомовному варіанті, перейдіть на російськомовний: Options->Language->Russian .
Настройка COM-порту: Настройка->COM-порт
Набрати і відправити послідовність символів: Сообщение->Отправить
Управління сигналом RTS відбувається за допомогою відповідних кнопок на панелі інструментів: кнопка вверх увімкнути, кнопка вниз вимкнути.
Як тільки програма завантажена і налаштований порт, вона прослуховує його і у випадку появи символів, записує їх у вікно "Принято".
УВАГА! Будь-які дві програми не можуть використовувати один і той же COM-порт одночасно (за певними винятками). Тому перед використанням Compt.exe необхідно закрити всі програми, які доступаються до COM1.
TER/OTHER DIRECT
DE
TER/OTHER MULTI
до TER порту
до RS-232
RS-485
RS-232
RTS
CG
G
R
B
A
RD
R
B
A
TD
G
Рис.4.2. Режими роботи адаптера перетворювача RS-232<->RS-485 TSX PCX 1031
УВАГА! Port1 ПЛК Twido і COM-порт ПК не ізольовані, тому для безпечного зєднання необхідно підключати перетворювачі при вимкнених ПЛК, з дозволу викладача.
Рис.4.1.
TSX PCX1031
Port1
ПЛК
сом1
PC