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

VAR_GENERIC CONSTANT у TwinCAT: нюанси, про які ніхто не пише

Результати експериментів з узагальненими масивами (generic arrays) в TwinCAT/CoDeSys та особливості їх підтримки компілятором.

Я провів серію експериментів і підготував відповіді на питання, які є далеко не очевидними. Мова йде про узагальнені масиви (generic arrays), як показано на скріншоті нижче.

1. Чи можна використовувати узагальнений масив у FB_Init?

Ні — компілятор цього не підтримує.

2. Чи можна вказати узагальнений масив як параметр методу?

Так — це працює.

3. Чи можна створити властивість (Property) типу узагальненого масиву?

Так — це можливо.

4. Чи можна викликати UPPER_BOUND для узагальненого масиву?

Ні — наразі з цим є баги.

5. Чи можна використовувати літерал (наприклад, [1, 2, 3, 4]) як значення узагальненого масиву, наприклад, у параметрі методу?

Ні — це не підтримується.

6. Чи можна передати узагальнений масив як масив змінної довжини (ARRAY [*] OF)?

Так — це працює.

7. Чи можна визначити узагальнену константу так, щоб масив не містив жодного елемента?

Так — це можливо.

Ілюстрація роботи VAR_GENERIC CONSTANT

#TwinCAT #CoDeSys #StructuredText