Інженерні нотатки TwinCAT
← Всі записи

Властивість типу REFERENCE TO у TwinCAT 3 / CoDeSys

Ключові нюанси роботи з PROPERTY типу REFERENCE TO: оператори `REF=` та `:=`, геттери, сеттери та онлайн-моніторинг складних типів.

Властивість (PROPERTY) типу REFERENCE TO — це корисна можливість, яка має кілька важливих особливостей:

1️⃣ Геттер і оператор REF=

Геттер має завжди використовувати оператор REF=. Треба бути уважним, щоб не переплутати його з :=, інакше ви отримаєте виключення і зупинку контролера.

2️⃣ Сеттер і передача посилання

Сеттер дозволяє призначити інше посилання у властивість. Передбачається, що сеттер так само має використовувати оператор REF=, хоча ви можете написати там й іншу логіку. Головне - це розуміти що у сеттер вам вам прихдить посилання і воно може бути порожнім (null).

3️⃣ Присвоєння значення через :=

Присвоєння значення у властивість за допомогою оператора := не залежить і ніяк не пов’язане з наявністю сеттера.

4️⃣ Неможливість захисту від запису (Read-Only)

На жаль, заблокувати присвоєння значення у таку властивість (тобто зробити її тільки для читання) наразі неможливо.

5️⃣ Моніторинг складних типів даних

Такі властивості дозволяють бачити дані складних типів у поєднанні з атрибутом {attribute 'monitoring' := 'call'}. Прикладами складних даних є масиви, структури та інші класи.

Властивість типу REFERENCE TO

#TwinCAT3 #CoDeSys #PLC #StructuredText #IndustrialAutomation #Beckhoff #OOP