№4 Modbus RTU/TCP PLC<->PLC

ЛАБОРАТОРНА РОБОТА4.

 

Використання шини MODBUS RTU та MODBUS TCP/IP для зв’язку між ПЛК. Перевірка розрахованого часу транзакції.

 

ЧАСТИНА 1.

 

Тривалість: 1 акад. година (0.5 пари).

Мета: Навчитись реалізовувати комунікаційний обмін між ПЛК з використанням комунікаційних функцій; дослідна перевірка розрахованого часу транзакції по мережі MODBUS RTU.   

 

Лабораторна установка.
 
Лабораторна робота виконується на робочих місцях 4 та 7. Одна бригада – одне робоче місце. Інші дві бригади в цей час виконують частину 2.
Апаратне забезпечення. Лабораторна установка складається з: контролерів M340 та Twido, які з’єднані між собою по MODBUS RTU на базі інтерфейсу RS-485; комп’ютера, підключеного до М340 через USB-інтерфейс (Рис.4.1).

Підключення М340 до MODBUS RTU проводиться через інтегрований в CPU P341000 послідовний порт з позначенням Modbus. Даний порт реалізує інтерфейси RS-232/RS-485 з підтримкою протоколів MODBUS RTU/ASCII Master/Slave та символьного режиму. Підключення до ліній інтерфейсу проводиться через RJ-45 з’єднувач.  

Підключення Twido до MODBUS RTU проводиться через адаптер TWD NAC 485T, який включений в модуль TWD XCP ODM. Цей адаптер являється другим комунікаційним портом контролера (Port2) і реалізовує інтерфейс RS-485 з підтримкою протоколів MODBUS RTU/ASCII Master/Slave, Remote Link та символьного режиму. Підключення до ліній інтерфейсу проводиться через клемну колодку на адаптері.

Фізичне з’єднання портів контролерів М340 та Twido проводиться через клемну колодку.

Програмне забезпечення. На комп’ютері використовується середовище UNITY PRO для програмування М340. З’єднання ПК та М340 проводиться через драйвер USB. У Twido записана програма, яка змінює значення змінних відповідно до завдання.

Загальна постановка задачі. Цілі роботи:

1)      реалізувати поставлену задачу, оформлену у вигляді схеми інформаційних потоків (рис.4.2); ця задача передбачає обмін даними між М340 та Twido;

2)      перевірити розрахований час транзакції з отриманими в експерименті.  

Деталізований опис постановки задачі. Реалізація клієнтських запитів в М340 для читання вихідних/внутрішніх регістрів по протоколу MODBUS проводиться через функцію READ_VAR, яка описана в додатку 4.1. Постановка задачі передбачає виконання запиту по ініціації користувача. Необхідно створити таку програму, яка б розраховувала час між моментом ініціації клієнтського запиту та повернення відповіді. Загальна методика розрахунку такого часу наведена в додатку 4.2.
 

Послідовність виконання роботи.

 

1.      Зібрати лабораторну установку.  

 

1.      Завантажити UNITY PRO. Створити новий проект: при виборі контролера виставити опцію  "Show All Version"; вибрати BMX P34 1000 (OS.2.0).  

2.      Створити конфігурацію для послідовного порту (в Project Browser в розділі Configuration -> BMX P34 1000 ->Serial Port):

-         Function=Modbus link;

-         Type = Master;

-         Transmission Speed = 19200;

-         DATA=RTU;

-         Stop=1 bit;

-         Parity=Even;

-         Phisical=RS485;

3.      Створити або імпортувати секцію з програмою та змінними (див.рис.4.6 та рис.4.7).

4.      Для імпорту виділити в Project Browser в розділі Program->Tasks->Mast->Sections-> контекстне_меню->Import…, вказати файл PKIS4_RTU.XST. Після імпорту необхідно перевірити створення змінних в розділі Variables & FB instances згідно з рис.4.7. Необхідно також виставити опції:  Tools->Project Settings -> Variables -> Directly represented array variables = так; Tools->Project Settings -> Variables -> Allow dynamic arrays (ANY_ARRAY_XXX) = так.

5.      Скомпілювати проект (Build->Rebuild All Project). При виникненні помилок повторити правильність виконання пунктів 2-4.

6.      Завантажити проект в ПЛК М340 та запустити контролер на виконання:

-        в меню PLC виставити Standard Mode;

-        в меню PLC->Set Address вибрати: Media=USB; Address=SYS

-        перевірити зв’язок кнопкою Test Connection, якщо зв’язок відсутній – перевірити з’єднання;

-        провести з’єднання UNITY PRO з M340: PLC->Connect;

-        завантажити проект в ПЛК: PLC->Transfer Project to PLC;

-        запустити контролер на виконання (PLC->RUN)

7.      Створити таблицю анімацій відповідно рис.4.8: виділити всю секцію програми і в контекстному меню вибрати Initialize Animation Table.   

8.      Зчитати 100 змінних з ПЛК Twido (%MW0-%MW99) шляхом зміни змінної send_cmd в 1. Результат роботи комунікаційної функції перевірити в змінних para, а зчитані змінні в масиві result. При позитивному результаті (відсутність помилок в para) перейти до наступних пунктів.

9.      Занотувати значення Tm_c1, Tm_c2, Tm_c3, Tsl_c1 та trans_time в таблицю формату Таб.4.1.

10.  Повторити пункти 8-9 ще 9 разів.

11.  Змінити кількість регістрів читання на 50 (%MW0-%MW49). Повторити пункти 8-10.

12.  Розрахувати Tsend та Trecv відповідно до формату запитів MODBUS та швидкісних характеристик мережі, занотувати результати в поле "кільк.регістрів/Tsend/Trecv" для 100 та 50 регістрів. Вибрати зі створеної таблиці записи з найбільшим, найменшим та середнім (орієнтовно) значеннями trans_time для 100 та 50 регістрів (всього 6 записів). Розрахувати для цих записів Trans_timemin та Trans_timemax по формулам відповідно (4.1) та (4.2) та занотувати у відповідні поля, при умові що Tsl_c2=Tsl_c1.      

 

Оформлення роботи.

До захисту готовиться таблиця типу Таб.4.1.

Таб.4.1.

№ досліду

кільк. регістрів / Tsend/

Trecv

Tm_c1

мс

Tsl_c1

мс

Tm_c2

мс

Tm_c3

мс

trans_time

мс

Trans_timemin

мс

Trans_timemax

мс

1

100/ Tsend/ Trecv

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

11

50/ Tsend/ Trecv

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20

 

 

 

 

 

 

 

 

Перевірка виконання роботи та питання до захисту.

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

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

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

2.      Яким чином в програмі для лабораторної роботи визначається час циклів Ведучого та Веденого?

3.      Яким чином реалізуються комунікаційні функції читання та запису внутрішніх регістрів по протоколу MODBUS в контролерах Premium та M340? Поясніть призначення кожного параметру в цих функціях.

4.      Яким чином контролюється результат виконання комунікаційних функцій? Що таке біт активності?

5.      Прокоментуйте результати з таблиці 4.1? Поясніть чому вони відрізняються? Що змінилося при зменшенні кількості регістрів, які читаються, і чому?

 

ЧАСТИНА 2.

 

Тривалість: 1 акад. година (0.5 пари).

Мета: Навчитись реалізовувати комунікаційний обмін між ПЛК з використанням комунікаційних функцій; дослідна перевірка розрахованого часу транзакції по мережі MODBUS/TCP.   

 

 Лабораторна установка.

 

Лабораторна робота виконується на робочих місцях 3 та 8. Одна бригада – одне робоче місце. Інші дві бригади в цей час виконують частину 1.

Апаратне забезпечення. Лабораторна установка складається з: контролерів Premium (Premium1 та Premium2), які з’єднані між собою по Ethernet з використанням MODBUS/TCP;  комп’ютера, підключеного до Premium1 через адаптер-перетворювач TSX PCX1031 та протоколу UNI-TELWAY (Рис.4.3).  

Підключення Premium до Ethernet проводиться через інтегрований Ethernet порт з позначенням ETY PORT Ethernet 10/100.  Даний порт реалізовує мережу EthernetII/802.3 з підтримкою багатьох протоколів, зокрема MODBUS/TCP Клієнт та Сервер (MODBUS/TCP Сервер є інтегрованим на рівні операційної системи). Фізичне з’єднання між контролерами відбувається через Ethernet Switch.    

Програмне забезпечення. На комп’ютері використовується середовище UNITY PRO для програмування Premium1. З’єднання ПК та Premium1 проводиться через драйвер UNITELWAY. У Premium2 записана програма, яка змінює значення змінних відповідно до завдання.

Загальна постановка задачі. Цілі роботи:

1)      реалізувати поставлену задачу, оформлену у вигляді схеми інформаційних потоків (рис.4.4); ця задача передбачає обмін даними між Premium1 та Premium2;

2)      перевірити розрахований час транзакції з отриманими в експерименті.  

Деталізований опис постановки задачі. MODBUS/TCP Сервер реалізований в Premium на рівні операційної системи (достатньо тільки сконфігурувати порт Ethernet). Реалізація клієнтських запитів в Premium для читання вихідних/внутрішніх регістрів по протоколу MODBUS проводиться через функцію READ_VAR, яка описана в додатку 4.1. Постановка задачі передбачає виконання запиту по ініціації користувача. Необхідно створити таку програму, яка б розраховувала час між моментом ініціації клієнтського запиту та повернення відповіді. Загальна методика розрахунку такого часу наведена в додатку 4.3.

Послідовність виконання роботи.

 

1.      Зібрати лабораторну установку.  

2.      Завантажити UNITY PRO. Створити новий проект: при виборі контролера виставити опцію  "Show All Version"; вибрати TSX P57 2634M (OS.2.0).  

3.      Створити конфігурацію для мережі Ethernet:

3.1.   Створити нову мережу: в Project Browser в розділі Communication->Networks -> контекстне меню->New Network-> вибрати Ethernet.

3.2.   Для створеної мережі налаштувати:

-        Model Family=TCP/IP Regular Connection.

-        IP адресу Premium1 відповідно до робочого місця (вкладка IP Configuration), маска підмережі 255.255.255.0;

-        відповідність логічних адрес типу Network.Station реальним фізичним адресам IP (див.Д.4.1.5);

3.3.   Прив’язати створену конфігурацію до реального порту:  в Project Browser в розділі Configuration -> TSX RKY  6EX -> TSX ETY Port

-        Channel0->Function = ETH TCP/IP

-        Channel0->Net Link = "назва створеної мережі в п.3.1." (наприклад Ethernet_1)

3.4.   Закінчити конфігурацію: меню Edit->Validate

4.      Створити або імпортувати секцію з програмою та змінними (див.рис.4.10 та рис.4.7).

Для імпорту виділити в Project Browser в розділі Program->Tasks->Mast->Sections-> контекстне_меню->Import…, вказати файл PKIS4_TCP.XST. Після імпорту необхідно перевірити створення змінних в розділі Variables & FB instances згідно з рис.4.7. Необхідно також виставити опції:  Tools->Project Settings -> Variables -> Directly represented array variables = так; Tools->Project Settings -> Variables -> Allow dynamic arrays (ANY_ARRAY_XXX) = так.   

5.      Скомпілювати проект (Build->Rebuild All Project). При виникненні помилок повторити правильність виконання пунктів 2-4.

6.      Завантажити проект в ПЛК Premium1 та запустити контролер на виконання:

-        в меню PLC виставити Standard Mode;

-        в меню PLC->Set Address вибрати: Media= UNTLW01; Address=SYS

-        перевірити зв’язок кнопкою Test Connection, якщо зв’язок відсутній – перевірити з’єднання;

-        провести з’єднання UNITY PRO з Premium1: PLC->Connect;

-        завантажити проект в ПЛК: PLC->Transfer Project to PLC;

-        запустити контролер на виконання (PLC->RUN)

7.      Створити таблицю анімацій відповідно до рис.4.8: виділити всю секцію програми і в контекстному меню вибрати Initialize Animation Table.   

8.      Зчитати 100 змінних з ПЛК Premium2 (%MW0-%MW99) шляхом зміни змінної send_cmd в 1. Результат роботи комунікаційної функції перевірити в змінних para, а зчитані змінні в масиві result. При позитивному результаті (відсутність помилок в para) перейти до наступних пунктів.

9.      Занотувати значення Tm_c1, Tm_c2, Tm_c3, Tsl_c1 та trans_time в таблицю формату Таб.4.2.

10.  Повторити пункти 8-9 ще 9 разів.

11.  Змінити кількість регістрів читання на 50 (%MW0-%MW49). Повторити пункти 8-10.

12.  Вибрати зі створеної таблиці записи з найбільшим, найменшим та середнім (орієнтовно) значеннями trans_time для 100 та 50 регістрів (всього 6 записів). Розрахувати для цих записів Trans_timemin та Trans_timemax по формулам відповідно (4.4) та (4.5) та занотувати у відповідні поля, при умові що:

-         для Trans_timemin - NAT1=NAT2=1 мс;

-         для Trans_timemax - NAT1=NAT2=10 мс,

-        Tsl_c2=Tsl_c3.      

 

Оформлення роботи.

До захисту готовиться таблиця типу Таб.4.2.

Таб.4.2.

№ досліду

кількість регістрів

Tm_c1

мс

Tsl_c1

мс

Tm_c2

мс

Tm_c3

мс

trans_time

мс

Trans_timemin

мс

Trans_timemax

мс

1

100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

11

50

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20

 

 

 

 

 

 

 

 

Перевірка виконання роботи та питання до захисту.

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

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

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

2.      Яким чином реалізуються комунікаційні функції читання та запису внутрішніх регістрів по протоколу MODBUS в контролерах Premium та M340? Поясніть призначення кожного параметру в цих функціях.

3.      Яким чином контролюється результат виконання комунікаційних функцій? Що таке біт активності?

Прокоментуйте результати з таблиці 4.2? Поясніть чому вони відрізняються? Що змінилося при зменшенні кількості регістрів, які читаються, і чому?
 

Додаток 4.1.  Комунікаційні функції UNITY для читання/запису внутрішніх/вихідних регістрів.

           

          Д.4.1.1. Використання комунікаційних функцій в UNITY. Для роботи з комунікаціями в контролерах Quantum, Premium та M340, які програмуються в середовищі UNITY PRO використовуються комунікаційні функції. Для зчитування внутрішніх/вихідних  регістрів MODBUS в М340 та Premium використовується функція READ_VAR, для запису - WRITE_VAR.

Д.4.1.2. Функція READ_VAR. Для зчитування внутрішніх/вихідних регістрів або бітів MODBUS в М340 та Premium використовується функція READ_VAR. Синтаксис функції в ST:

READ_VAR(Address, Object_Type, First_Object, Object_Number, Management_Param, Receiving_Array); 

Address

ARRAY [0.. 5] OF INT для Premium

 

ARRAY [0.. 7] OF INT для M340

Адреса вузла отримувача запиту; для отримання цього масиву в М340  використовується функція ADDM (див.Д.4.1.4) а в Premium функція ADDR (див.Д.4.1.5).

Object_Type

STRING

Тип об’єкта зчитування: ’%M’ або ’%MW’

First_Object

DINT

Адреса початкового об’єкту

Object_Number

INT

Кількість об’єктів

Management_Param

ARRAY [0.. 3] OF INT

Таблиця управління обміном (див.Д.4.1.6)

 

Receiving_Array

ARRAY [n... m] OF INT

Масив, який вміщує значення прочитаних змінних 

 

Д.4.1.3. Функція WRITE_VAR. Для запису внутрішніх/вихідних регістрів або бітів MODBUS в М340 та Premium використовується функція WRITE_VAR. Синтаксис функції в ST:

WRITE_VAR(Address, Object_Type, First_Object, Object_Number, Data_to_Write, Management_Param);

Address

ARRAY [0.. 5] OF INT для Premium

 

ARRAY [0.. 7] OF INT для M340

Адреса вузла отримувача запиту; для отримання цього масиву в М340  використовується функція ADDM (див.Д.4.1.4) а в Premium функція ADDR (див.Д.4.1.5).

Object_Type

STRING

Тип об’єкта запису: ’%M’ або ’%MW’

First_Object

DINT

Адреса початкового об’єкту

Object_Number

INT

Кількість об’єктів

Data_to_Write

 

ARRAY [n... m] OF INT

Масив, який вміщує значення даних, які треба записати   

Management_Param

 

ARRAY [0.. 3] OF INT

Таблиця управління обміном (див.Д.4.1.6)

 

 

Д.4.1.4. Функція ADDM (для М340). Функція ADDM призначена для перетворення символьної строки в адресу (у вигляді масиву), яка використовується у ряді комунікаційних функцій контролерів М340, зокрема READ_VAR та WRITE_VAR.

 

Addr_Array := ADDM(Addr_String);

Addr_String

STRING

Адреса вузла отримувача в символьному форматі:

для протоколу MODBUS:

’r.m.c.e’

де:

-  r:  номер шасі з комунікаційним модулем (для інтегрованого порту Modbus завжди = 0)

-  m: номер комунікаційного модуля (для інтегрованого порту Modbus завжди = 0)

-  c: номер каналу  (для інтегрованого порту Modbus завжди = 0)

-  e: адреса Веденого (від 1-го до 247)

Addr_Array

ARRAY [0.. 7] OF INT

Адреса вузла отримувача запиту у вигляді масиву;

 

Д.4.1.5. Функція ADDR (для Premium). Функція ADDR призначена для перетворення символьної строки в адресу (у вигляді масиву), яка використовується у ряді комунікаційних функцій контролерів Premium, зокрема READ_VAR та WRITE_VAR.

 
Д.4.1.6. Таблиця управління обміном (Managenent_Parameter). 
Таблиця управління обміном (іншими словами комунікаційні параметри обміну) 
потрібні для управління та контролю за роботою комунікаційної функції. Ця таблиця включає 4-ри слова:
 
Номер слова в таблиці
Старший байт слова
Молодший байт слова
1

номер обміну (Exchange number)

0-й біт – біт активності (Activity Bit), переводиться системою в 1 при початку обробки, в 0 – при поверненні результату
2
operation report
00 – немає помилок при  обробці;
FF – повідомлення помилки; 
communication report:
00 – немає помилок при  обробці;
xx – номер помилки (додаткова інформація в довідковій системі UNITY PRO);
3
Time-out: дозволений тайм-аут для очікування відповіді, задається в 100 мс (10 = 1с), 0 – нескінченне очікування
4
Length: для READ_VAR – кількість отриманих байтів
 
 

Додаток 4.2. Методика та програма розрахунку часу транзакції в мережі MODBUS RTU з контролерами М340 та Twido.

 

Д.4.2.1. Методика розрахунку. Методика розрахунку часу транзакції, яка використовується в даній роботі аналогічна як для інших систем, в яких обмін з мережею MODBUS RTU прив’язаний до циклу контролера, тобто обробка вхідних повідомлень проходить на початку циклу, а відправка вихідних – в кінці (рис.4.5). Час транзації (Trans_time) залежить від: тривалості циклів Ведучого (Tm_c1, Tm_c2, Tm_c3); тривалості циклів Веденого (Tsl_c1, Tsl_c2); часу передачі по мережі запиту (Tsend) та відповіді (Trecv); часу надходження запиту до Веденого та відповіді до Ведучого, який буде впливати на Tsl_dev та Tm_dev. Таким чином, загальний час транзакції  при тих саме Tm_c1, Tm_c2, Tm_c3, Tsl_c1 та Tsl_c2, але при  різних Tsl_dev та Tm_dev може приймати значення:

1)      мінімальне – при Tsl_dev=Tsl_c1 та Tm_dev=Tm_c2, тобто кадри приходять перед зчитуванням входів циклів sl_c2 та m_c3:

Trans_timemin=Tm_c1 + Tsend + Tsl_c2 + Trecv + Tm_c3; (4.1)

2)      максимальне – при Tsl_dev=0 та Tm_dev=0, тобто кадри приходять відразу після зчитування входів sl_c1 та m_c2:

Trans_timemax=Tm_c1 + Tsend + Tsl_c1 + Tsl_c2 + Trecv + Tm_c2 + Tm_c3; (4.2)

3)      між максимальним та мінімальним:

Trans_timemin < Trans_time < Trans_timemax (4.3)
 
 

Д.4.2.2. Варіант програми для відправки запиту на читання, з фіксацією часу транзакції.  На рис. 4.6 представлений лістинг програми для М340, яка відправляє запит на читання 100 регістрів (%MW0-%MW99) у Веденого з адресою 2. Виклик комунікаційної функції, що формує даний запит (READ_VAR) проводиться шляхом зведення змінної send_cmd в логічну "1", скидання значення даної змінної в 0 проводиться програмно.

Фіксація часу транзакції проводиться шляхом використання таймеру (Timer). Час початку передачі запиту позначається міткою start_transaction а кінець транзакції - end_transaction (див. рис.4.5). Загальний час транзакції розраховується як час між командою send_cmd та міткою end_transaction (рис.4.5). Останнє значення часу циклу Веденого записується в його 0-вий регістр (%MW0).  Змінні які використовуються в програмі наведені на рис. 4.7.
 
 
 
Для перевірки роботи програми слід створити таблицю анімацій, як на рис.4.8. Для можливості зміни значення змінних в таблиці анімацій необхідно нажати кнопку Modification. Зведення змінної send_cmd в "1", приведе до виклику функції READ_VAR. Результат обробки функції можна проконтролювати через змінну para[1] (див. Д.4.1.6).
 

Додаток 4.3. Методика та програма розрахунку часу транзакції в мережі MODBUS/TCP з контролерами Premium.

 

Д.4.3.1. Методика розрахунку. Методика розрахунку часу транзакції, яка використовується в даній частині роботи аналогічна як для інших систем, в яких обмін з мережею MODBUS TCP прив’язаний до циклу контролера, тобто обробка вхідних повідомлень проходить на початку циклу, а відправка вихідних – в кінці (рис.4.6). Час транзації (Trans_time) залежить від: тривалості циклів Клієнта (Tm_c1, Tm_c2, Tm_c3); тривалості циклів Серверу (Tsl_c1, Tsl_c2); часу доступу комунікаційного модуля до мережі (NAT, для інтегрованого ETY порту Premium NAT<10мс); часу надходження запиту до Серверу та відповіді до Клієнта, який буде впливати на Tsl_dev та Tm_dev. Таким чином, загальний час транзакції  при тих саме Tm_c1, Tm_c2, Tm_c3, Tsl_c1 та Tsl_c2, але при  різних Tsl_dev та Tm_dev може приймати значення:

1)      мінімальне – при Tsl_dev=Tsl_c1 та Tm_dev=Tm_c2, тобто пакети приходять перед зчитуванням входів циклів sl_c2 та m_c3:

Trans_timemin=Tm_c1 + NAT1 + Tsl_c2 + NAT2+ Tm_c3; (4.4)

2)      максимальне – при Tsl_dev=0 та Tm_dev=0, тобто пакети приходять відразу після зчитування входів sl_c1 та m_c2:

Trans_timemax=Tm_c1 + NAT1 + Tsl_c1 + Tsl_c2 + NAT2 + Tm_c2 + Tm_c3; (4.5)

3)      між максимальним та мінімальним:

Trans_timemin < Trans_time < Trans_timemax (4.6)

 

 

 

Д.4.2.2. Варіант програми для відправки запиту на читання, з фіксацією часу транзакції.  На рис. 4.10 представлений лістинг програми для Premium1, яка відправляє запит на читання 100 регістрів (%MW0-%MW99) у Клієнта з логічною адресою 9.132 (відповідне призначення адреси IP див. Д.4.1.5).Виклик комунікаційної функції, що формує даний запит (READ_VAR) проводиться шляхом зведення змінної send_cmd в логічну "1", скидання значення даної змінної в 0 проводиться автоматично.

Фіксація часу транзакції проводиться шляхом використання таймеру (Timer). Час початку передачі запиту позначається міткою start_transaction а кінець транзакції - end_transaction (див. рис.4.9). Загальний час транзакції розраховується як час між командою send_cmd та міткою end_transaction (рис.4.9). Останнє значення часу циклу Сервера  записується в його 0-вий регістр (%MW0).  Змінні які використовуються в програмі наведені на рис. 4.7.
 
 
 
 
Для перевірки роботи програми слід створити таблицю анімацій, як на рис.4.8. Для можливості зміни значення змінних в таблиці анімацій необхідно нажати кнопку Modification. Зведення змінної send_cmd в "1", приведе до виклику функції READ_VAR. Результат обробки функції можна проконтролювати через змінну para[1] (див. Д.4.1.6).
 
Оставить комментарии Вы можете здесь http://pupena-san.blogspot.com
 
Comments