их міститься зажадав інформація. Якщо сталася помилка, то код функції модифікується, і в полі даних передається код причини помилки. p align="justify"> У будь посилці присутній полі перевірки помилок.
При використанні MODBUS необхідно вибрати один з двох режимів послідовної передачі даних: ASCII або RTU. При використанні ASCII режиму кожен байт повідомлення передається як два ASCII символу. Істотною відмінністю між режимами є те, як підлеглий пристрій визначає, приналежність чергового прийшов символу до тієї чи іншої посилці. У ASCII режимі пакети розділяються певним символом, а в режимі RTU необхідно відміряти проміжки часу, що пройшов з прийому попереднього символу. p align="justify"> Вміст поля перевірки помилок визначається за алгоритмом, вибір якого залежить від обраного режиму Modbus (ASCII або RTU).
При написанні Modbus для мікроконтролерів сімейства Intel 8051, розміри RAM яких не перевищують 256 байт, було б неоптимально реалізовувати режим ASCII, тому що знадобилося б збереження всіх тих, хто прийшов символів до моменту приходу символу В«:В», що розділяє посилки. Таким чином, оптимальніше використовувати режим RTU (Мал. 4). br/>В
Рис. 4 Структура пакета Modbus RTU
Створення бібліотеки Modbus slave
Враховуючи те, що в автоматизації роботи установки ГДЛ використовується велика кількість контролерів сімейства MCS-51, виникло бажання створити бібліотеку для уніфікації роботи контролерів сімейства Intel MCS-51 за стандартним промисловому протоколом. В якості протоколу був обраний Modbus, роботу з яким можна реалізувати для обраного сімейства. p align="justify"> Специфіка роботи полягає в крайній обмеженості ресурсів мікроконтролера MSC-51 (зокрема RAM), які діляться між основною програмою і програмою роботи з Modbus.
Розглядаючи основні параметри контролерів у всьому сімействі MSC-51, відзначимо, що обсяг пам'яті RAM для різних моделей змінюється від 128 байт до 256 байт. Довжина пакета Modbus обмежена зверху 256 байтами [6], тобто slave зможе обробити не всяку посилку. Також, специфікація Modbus дозволяє використовувати до 255 різних кодів функцій, але для роботи кожного slave, потрібні далеко не всі. p align="justify"> Необхідно створити інтерфейс до даної бібліотеці, що дозволяє запускати на контролері Modbus slave з певними обмеженнями. Наприклад, необхідно програмно відслідковувати занадто довгі пакети й непідтримувані коди функцій, а потім реагувати на них згідно специфікації протоколу. p align="justify"> Дана бібліотека, що знаходиться зараз в розробці, повинна дозволяти запустити на певному контролері сімейства Intel 8051 протокол Modbus з урахуванням значень наступних параметрів:
Послідовна швидкість передачі (9600 біт/c, 19200 біт/c і т.п.)
Обсяг RAM
Адреса початку в оперативн...