Контрольна робота №2. " Побудова запиту та розрахунок часу транзакції Modbus RTU."

Формат MSWord

Формат PDF

Практичне завдання №2. " Побудова запиту та розрахунок часу транзакції Modbus RTU."

Практичне завдання полягає в формуванні студентом Modbus RTU кадрів та розрахунку часу транзакції, для зчитування та/або запису змінних з/на Ведучого ПЛК на/в Ведені ПЛК.

Теоретичні відомості.

Розв’язок задачі пропонується поділити на 3 частини:

  1. Формування часової діаграми передачі.
  2. Формування кадрів запитів та кадрів відповідей.
  3. Розрахунок часу транзакції.

Розглянемо основні принципи на прикладі. Треба побудувати кадри форматів повідомлень запитів та відповідей для MODBUS RTU та розрахувати загальний час опитування 10-ти аналогових 16-бітних змінних для 4-х Ведених (рис.5.2). Швидкість передачі даних 19200 біт/с. Клієнтський Процес Ведучого (TSX Premium) та серверні Процеси Ведених (ПЛК TSX Micro ) приймають повідомлення на початку циклу, а відправляють - в кінці циклу. Час циклу Ведучого = 10 мс, Ведених - 5с. 

Доступ до внутрішніх аналогових змінних TSX Micro проводиться через 03 або 04 функцію, тому формат кадрів буде мати вигляд як на рис.5.3. 

Враховуючи, що структура інших кадрів – аналогічна, наводити їх формат немає сенсу.

Побудуємо часову діаграму обміну (рис.5.4) в горизонтальній площині, де по осі абсцис відкладений час а по осі ординат умовно зображені ПЛК. З боку клієнтської програми повідомлення-запит формується за допомогою комунікаційної функції, відправка даних якої через комунікаційний порт проводиться в кінці циклу задачі, а отримування з порту – на початку циклу. Така поведінка клієнтської сторони цілком відповідає багатьом реалізаціям для різних ПЛК.

У TSX Micro MODBUS-Сервер реалізований на рівні операційної системи. Специфіка реалізації заключається в тому, що прийом MODBUS-запитів з комунікаційного порту системою проводиться на початку циклу, а відправка повідомлень-відповідей – вкінці.

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

На рис.5.4  показано, що надходження кадру приходить десь всередині циклу. Це значить, що їх обробка та генерація відповіді пройде приблизно через 1,5 циклу. Слід розуміти, що це усереднене значення, для найгіршої оцінки краще резервувати 2 часу циклу (тобто коли кадр прийшов відразу після опитування комунікаційного порту). Таким чином час транзакції для одного ПЛК, наприклад PLC1 (ТТ1),  буде дорівнювати:

ТТ1=С5+T1.req+2*C1+T1.res+C5*2                                          (2)

ТТ1 розрахований з урахуванням 2 циклів затрачених Веденим на генерацію відповіді на повідомлення-запит. Якби транзакція проводилась не періодично, як по умові задачі, а по виникненню події, то в час транзакції необхідно б було включити також ще один цикл Ведучого. Нескладно вивести час опитування всіх Ведених:

ТТall=C5*9+C1*2+C2*2+C3*2+C4*2+T1.req+T1.res+ T2.req+T2.res+ T3.req+T3.res+ T4.req+T4.res      (3)

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

ТТall= C5*9 + C1*8 + (T1.req+T2.req)*4                                (4)

Розрахуємо час T1.req та T2.req. Час передачі кадру (Тframe) можна орієнтовно розрахувати по кількості символів (Nsymb) в кадрі та часу передачі одного символу (Tsymb):

Tframe=Nsymb*Tsymb                                         (5)

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

час передачі одного символу = кількість біт в символі / бітова швидкість;

Час передачі кадрів буде  дорівнювати:

T1.req=8*(11/19200)=4,58 мс

T1.res=25*(11/19200)=14,33 мс

TTall=90+40+ (4,58+14,33)*4= 206 мс.

Таким чином, для опитування 10-ти змінних з 4-х Ведених зі швидкістю 19200 біт/с необхідно затратити приблизно 206 мс. Якщо необхідне періодичне опитування бажано зарезервувати певний час, наприклад ще додатково 100 мс.

Приклад завдання.

Побудувати запити та розрахувати час транзакції на MODBUS RTU між ПЛК Ведучого (Master) та двома Веденими ПЛК при умові:

БІТОВА ШВИДКІСТЬ, біт/с

Час циклу, мс

1 запит  Slave1

2 запит Slave2

Master

Slave1

Slave2

9600

10

10

15

читання 18 внутрішніх регістрів, з 16 

запис 27 внутрішніх регістрів, з 17

 

Обробку вхідних повідомлень ПЛК проводить на початку циклу, відправку вихідних повідомлень – в кінці циклу. Вважати всі відповіді від Веденого позитивними (без помилок). Адресація регістрів починається з 0. Тайм-аути не враховувати.  

Приклад рішення.

  1. Часова діаграма стану показана на рис.5.5
  2. Формування кадрів для даної задачі показаний на рис.5.6.
  3. Розрахунок часу транзакції:

 T1.req=8*(11/9600)=9,17 мс

T1.res=41*(11/9600)=46,97 мс

T2.req=63*(11/9600)=72,18 мс

T2.res=8*(11/9600)=9.17 мс

Загальний час транзакції:

TTall=CM*5+C1*2+C2*2+ T1.req + T1.res + T2.req + T2.res = 50 + 20 + 30 + 9,17 + 46,97 + 72,18 + 9.17 = 254.32 мc

Завдання.

Побудувати запити та розрахувати час транзакції на MODBUS RTU між ПЛК Ведучого (Master) та двома Веденими ПЛК при умові, відповідно до варіанту (див. табл.). Обробку вхідних повідомлень ПЛК проводить на початку циклу, відправку вихідних повідомлень – в кінці циклу. Вважати всі відповіді від Веденого позитивними (без помилок). Адресація регістрів починається з 0. Тайм-аути не враховувати.  

 

№ варіанту

Прізвище та   ім’я

БІТОВА   ШВИДКІСТЬ, біт/с

Час циклу, мс

1 запит  Slave1

2 запит   Slave2

Master

Slave1

Slave2

АКС-4-2

1

АЛЬОХІН Максим

9600

10

10

15

читання 10 внутрішніх регістрів,   з 101 

запис 83   внутрішніх регістрів, з 21

2

АНДРІЙЧУК Дмитрій

19200

5

10

5

запис 11 внутрішніх регістрів,   з 12

запис 82   внутрішніх регістрів, з 202

3

БЄЛЬСЬКИЙ Богдан

9600

10

10

15

читання 12 внутрішніх регістрів,   з 103 

читання 81   внутрішніх регістрів, з 23

4

БОРИСЕНКО Микола

19200

5

10

5

читання 13 внутрішніх   регістрів, з 14

запис 80   внутрішніх регістрів, з 204

5

БРЕЗІЦЬКИЙ Олександр

9600

10

10

15

запис 14 внутрішніх регістрів,   з 105 

запис 79   внутрішніх регістрів, з 25

6

БУТКО Дмитро

19200

5

10

5

читання 15 внутрішніх   регістрів, з 16 

читання 78   внутрішніх регістрів, з 206

7

ВІТРУК Михайло

9600

10

10

15

читання 16 внутрішніх   регістрів, з 107 

запис 77   внутрішніх регістрів, з 27

8

ВОВЧУК Олексій

19200

5

10

5

запис 17 внутрішніх регістрів,   з 18 

запис 76   внутрішніх регістрів, з 208

9

ВОРОНЦОВ Олександр

9600

10

10

15

читання 18 внутрішніх   регістрів, з 109 

читання 75   внутрішніх регістрів, з 29

10

ДОНЧЕНКО Ірина

19200

5

10

5

читання 19 внутрішніх   регістрів, з 20 

запис 74   внутрішніх регістрів, з 210

11

ІЛЬЄНКО Олексій

9600

10

10

15

запис 20 внутрішніх регістрів,   з 111 

запис 73   внутрішніх регістрів, з 31

12

КАРПЮК Марина

19200

5

10

5

читання 21 внутрішніх   регістрів, з 22 

читання 72   внутрішніх регістрів, з 212

13

КАРТАВИХ Дмитро

9600

10

10

15

читання 22 внутрішніх   регістрів, з 113 

запис 71   внутрішніх регістрів, з 33

14

КУЦИЙ Олександр

19200

5

10

5

запис 23 внутрішніх регістрів,   з 24

запис 70   внутрішніх регістрів, з 214

15

ЛАЗЕБНОВ Владислав

9600

10

10

15

читання 24 внутрішніх регістрів, з 115

читання 69   внутрішніх регістрів, з 35

16

МАРЧУК Олексій

19200

5

10

5

читання 25 внутрішніх   регістрів, з 26 

запис 68   внутрішніх регістрів, з 216

17

МИХАЙЛЕНКО Богдан

9600

10

10

15

запис 26 внутрішніх регістрів,   з 117

запис 67   внутрішніх регістрів, з 37

18

МИХНО Дмитро

19200

5

10

5

читання 27 внутрішніх   регістрів, з 28

читання 66   внутрішніх регістрів, з 218

19

ПОДЛЄСНИЙ Денис

9600

10

10

15

читання 28 внутрішніх   регістрів, з 119 

запис 65   внутрішніх регістрів, з 39

20

ПОЖАР Віталій

19200

5

10

5

запис 29 внутрішніх регістрів,   з 30 

запис 64   внутрішніх регістрів, з 220

21

ПОПОВИЧ Андрій

9600

10

10

15

читання 30 внутрішніх   регістрів, з 121 

читання 63   внутрішніх регістрів, з 41

22

ПРОТОКОВИЛО Сергій

19200

5

10

5

читання 31 внутрішніх   регістрів, з 32

запис 62   внутрішніх регістрів, з 222

23

ШЕЙКО Олександр

9600

10

10

15

запис 32 внутрішніх регістрів,   з 123 

запис 61   внутрішніх регістрів, з 33

74

Хичій Кристина

9600

5

10

5

читання 83 внутрішніх   регістрів, з 83

читання 10   внутрішніх регістрів, з 273

75

Рура Вікторія

9600

5

5

5

читання 84 внутрішніх   регістрів, з 174

запис 9   внутрішніх регістрів, з 94

АКС-4-3

24

АНДРЄЄВА Оксана

19200

10

10

15

читання 33 внутрішніх   регістрів, з 34 

запис 60   внутрішніх регістрів, з 224

25

БЛИЗНЮК Владислав

9600

5

10

5

запис 34 внутрішніх регістрів,   з 125 

запис 59   внутрішніх регістрів, з 35

26

БОКОЧ Іван

19200

10

10

15

читання 35 внутрішніх   регістрів, з 36 

читання 58   внутрішніх регістрів, з 226

27

БОНДАРЕНКО Костянтин

9600

5

10

5

читання 36 внутрішніх   регістрів, з 127 

запис 57   внутрішніх регістрів, з 47

28

ЗАЇЧЕНКО Олексій

19200

10

10

15

запис 37 внутрішніх регістрів,   з 38 

запис 56   внутрішніх регістрів, з 228

29

КАРАЦЮПА Олександр

9600

5

10

5

читання 38 внутрішніх   регістрів, з 129 

читання 55   внутрішніх регістрів, з 49

30

КІРІЛКОВ Олександр

19200

10

10

15

читання 39 внутрішніх   регістрів, з 40 

запис 54   внутрішніх регістрів, з 230

31

КЛІМНІЧЕНКО Володимир

9600

5

10

5

запис 40 внутрішніх регістрів,   з 131 

запис 53   внутрішніх регістрів, з 51

32

КРАМАР Владислав

19200

10

10

15

читання 41 внутрішніх   регістрів, з 42 

читання 52   внутрішніх регістрів, з 232

33

МЕЛЬНИЧУК Ярослав

9600

5

10

5

читання 42 внутрішніх   регістрів, з 133 

запис 51   внутрішніх регістрів, з 53

34

ПОНОМАРЕНКО Сергій

19200

10

10

15

запис 43 внутрішніх регістрів,   з 44 

запис 50   внутрішніх регістрів, з 234

35

ПУХЛЯКОВА Маргарита

9600

5

10

5

читання 44 внутрішніх   регістрів, з 135 

читання 49   внутрішніх регістрів, з 55

36

РОМАНЮК Богдан

19200

10

10

15

читання 45 внутрішніх   регістрів, з 46 

запис 48   внутрішніх регістрів, з 236

37

РУБАН Андрій

9600

5

10

5

запис 46 внутрішніх регістрів,   з 138 

запис 47   внутрішніх регістрів, з 57

38

СОКОЛОВА Ганна

19200

10

10

15

читання 47 внутрішніх   регістрів, з 48 

читання 46   внутрішніх регістрів, з 238

39

ТИМОХІН Денис

9600

5

10

5

читання 48 внутрішніх   регістрів, з 139 

запис 45   внутрішніх регістрів, з 59

40

ТИХОНОВ Олександр

19200

10

10

15

запис 49 внутрішніх регістрів,   з 50 

запис 44   внутрішніх регістрів, з 240

41

ФЕДІЄНКО Антон

9600

5

10

5

читання 50 внутрішніх   регістрів, з 141 

читання 43   внутрішніх регістрів, з 61

42

ХВОРОСТЕНКО Ростислав

19200

10

10

15

читання 51 внутрішніх   регістрів, з 52 

запис 42   внутрішніх регістрів, з 242

43

ЦИРУЛЬНИК Денис

9600

5

10

5

запис 52 внутрішніх регістрів,   з 143 

запис 41   внутрішніх регістрів, з 63

44

ЧЕРКАСОВ Дмитро

19200

10

10

15

читання 53 внутрішніх   регістрів, з 56 

читання 40   внутрішніх регістрів, з 244

45

ЧОРНОЙВАН Марина

9600

10

10

15

читання 54 внутрішніх   регістрів, з 145 

запис 39   внутрішніх регістрів, з 66

46

ЧУХНО Олег

19200

5

10

5

запис 55 внутрішніх регістрів,   з 56 

запис 38   внутрішніх регістрів, з 246

47

ШИШАК Альона

9600

10

10

15

читання 56 внутрішніх   регістрів, з 147 

читання 37   внутрішніх регістрів, з 67

48

ШКОЛЬНИЙ Дмитро

19200

5

10

5

читання 57 внутрішніх   регістрів, з 58 

запис 36   внутрішніх регістрів, з 248

49

ЯНКО Олександр

9600

10

10

15

запис 58 внутрішніх регістрів,   з 149 

запис 35   внутрішніх регістрів, з 69

АКС-4-4

50

БОЙКО Назар

19200

10

10

15

читання 59 внутрішніх   регістрів, з 60 

запис 34   внутрішніх регістрів, з 250

51

ВАРИЧЕВ Андрій

9600

5

10

5

запис 60 внутрішніх регістрів,   з 151 

запис 33   внутрішніх регістрів, з 71

52

ВОЛОШИН Ярослав

19200

10

10

15

читання 61 внутрішніх   регістрів, з 62 

читання 32   внутрішніх регістрів, з 252

53

ГАВРИЛЮК Ігор

9600

5

10

5

читання 62 внутрішніх   регістрів, з 153 

запис 31   внутрішніх регістрів, з 73

54

ГУМІН Руслан

19200

10

10

15

запис 63 внутрішніх регістрів,   з 64 

запис 30   внутрішніх регістрів, з 254

55

ЄЛЕЦЬКИХ Андрій

9600

5

10

5

читання 64 внутрішніх   регістрів, з 155 

читання 29   внутрішніх регістрів, з 75

56

ЄЛЕЦЬКИХ Сергій

19200

10

10

15

читання 65 внутрішніх   регістрів, з 66 

запис 28   внутрішніх регістрів, з 256

57

КЛИМЧУК Євгеній

9600

5

10

5

запис 66 внутрішніх регістрів,   з 157 

запис 27   внутрішніх регістрів, з 77

58

КУЦИХ Михайло

19200

10

10

15

читання 67 внутрішніх   регістрів, з 68 

читання 26   внутрішніх регістрів, з 258

59

ЛОГВИНЕНКО Олександр

9600

5

10

5

читання 68 внутрішніх   регістрів, з 159 

запис 25   внутрішніх регістрів, з 79

60

ЛОГВИНЕНКО Роман

19200

10

10

15

запис 69 внутрішніх регістрів,   з 70 

запис 24   внутрішніх регістрів, з 260

61

МОСКАЛЕНКО Олександр

9600

5

10

5

читання 70 внутрішніх   регістрів, з 161 

читання 23   внутрішніх регістрів, з 81

62

ОДНОРОГ Юрій

19200

10

10

15

читання 71 внутрішніх   регістрів, з 72 

запис 22   внутрішніх регістрів, з 262

63

ПАРОВЕНКО Максим

9600

5

10

5

запис 72 внутрішніх регістрів,   з 163 

запис 21   внутрішніх регістрів, з 83

64

ПЮРО Павло

19200

10

10

15

читання 73 внутрішніх   регістрів, з 74 

читання 20   внутрішніх регістрів, з 264

65

РЕДЧИЦЬ Богдан

9600

10

10

15

читання 74 внутрішніх регістрів,   з 165 

запис 19   внутрішніх регістрів, з 85

66

РЕМЕЗ Роман

19200

5

10

5

запис 75 внутрішніх регістрів,   з 76 

запис 18   внутрішніх регістрів, з 266

67

САМОЙЛЕНКО Дмитро

9600

10

10

15

читання 76 внутрішніх   регістрів, з 167 

читання 17   внутрішніх регістрів, з 87

68

СУРЖЕНКО Павло

19200

5

10

5

читання 77 внутрішніх   регістрів, з 78 

запис 16   внутрішніх регістрів, з 268

69

ТІЩЕНКО Олександр

9600

10

10

15

запис 78 внутрішніх регістрів,   з 169 

запис 15   внутрішніх регістрів, з 89

70

ШАЛЮТА Олег

19200

5

10

5

читання 79 внутрішніх   регістрів, з 80 

читання 14   внутрішніх регістрів, з 270

71

ШЕВЧЕНКО Дмитро

9600

10

10

15

читання 80 внутрішніх   регістрів, з 171 

запис 13   внутрішніх регістрів, з 91

72

ЯКОВЕНКО Антон

19200

5

10

5

запис 81 внутрішніх регістрів,   з 82 

запис 12 внутрішніх   регістрів, з 272

73

ЯНЮК Олександр

9600

10

10

15

читання 82 внутрішніх   регістрів, з 173 

читання 11   внутрішніх регістрів, з 93