Цитата Сообщение от capzap Посмотреть сообщение
у меня так рука не поднимется, я бы написал: pModule : ARRAY[1..247] OF DWORD := 0(247);
и то чтоб проверить
а на самом деле так проекты не пишутся, через бибку у меня вообще не встанет вопросов с адресацией, ООП в КДС2 не существует, поэтому ModuleBase это частный случай и универсальности от него ноль, полюбому писать реализацию каждый раз свою и под каждое устройство другого типа, про то чтобы держать в конфигураторе слейвы более 32 штук у меня сразу вопрос а тот ли контроллер выбрал человек
Если написать так: pModule : ARRAY[1..247] OF DWORD := 0(247);, то у Вас будет массив DWORD и как Вы будете обращаться к полям структуры ModuleBase не понятно. А я это делаю вот так:
if pModule[1]^.ReqForPooling then ....
Структура ModuleBase содержит поля, которые должны быть у любого модуля. Эти поля отвечают за организацию опроса. А вот остальная реализация модуля у каждого типа модулей, действительно, своя. Один обращается к регистрам хранения, другой к входным регистрам. Один читает 2 регистра, другой 8 и т.д. и т.п.
Одним словом ModuleBase - это базовый тип всех модулей. Конечно, организовать классическое ООП не получится, но писать в стиле приближенным к нему можно.