PACFramework

Класи LVL0 (CLSID=16#000x – 16#07FF)

Перелік класів LVL0 та їх призначення

LVL0 – рівень абстрагування від обладнання, канали контролеру. Призначений для діагностування каналу, прив’язки логічних каналів до фізичних:

CH_CFG

Структура CH_HMI

Структура CH_BUF

Структура MODULS

| Атрибут | Тип | Опис | | ——- | ————————– | ———————————————————— | | STRTNMB | UINT | номер початкового каналу для відображення | | CNT | UINT | LOBYTE: кількість каналів (залежить від модуля), не більше 16
HIBYTE: тип каналу (1- DICH, 2- DOCH, 3- AICH, 4 – AOCH) | | CH | ARRAY [1 to 16] of CHHMI | значення відповідно до CH_HMI | | STA1 | INT | стани BAD модулів 1 (16 шт) | | STA2 | INT | стани BAD модулів 2 (16 шт) | | … | | | | STAn | INT | стани BAD модулів 3 (16 шт) |

Алгоритм визначення факту прив’язки до каналу технологічної змінної

Каркас передбачає гнучку прив’язку технологічних змінних до каналів. Для зручності визначення вільних каналів на карті ПЛК, канал повинен контролювати факт прив’язки (задіяння) та знати яка саме змінна ним користується.

Факт задіяння сигналізується в біті ULNK (Uplink STA.5). Цей біт переприсвоює значення біту PNG (Ping-Pong STA.4) на початку функції CH_FN, після чого PNG:= FALSE. Технологічна змінна, що використовує канал (володар) з кожним викликом VAR_FN виставляє CH_CFG.STA.PNG:=TRUE та вказує свій ID (CH_CFG.VARID:=VAR_CFG.ID). Таким чином, якщо жодна змінна не заволодіває каналом, значення PNG а за ним і значення ULNK для цього каналу стає рівним FALSE. Алгоритм отримав робочу назву “Пінг-Понг”.