Код — жуть. Отступы, пустые строки и пробелы вокруг операторов от балды вообще расставлены. Как у вас: http://pastebin.com/zbe6EdWf, как надо: http://pastebin.com/EquvpVBB
Вот так нехорошо делать:
Код:
IF iNagruzka > 100 THEN
xMeoGazZacrytie := FALSE ;
xMeoGazBlok := TRUE;
END_IF
IF iNagruzka < 100 THEN
xMeoGazZacrytie := TRUE ;
xMeoGazBlok := FALSE;
END_IF
Можно же проще:
Код:
xMeoGazBlok := iNagruzka > 100;
xMeoGazZacrytie := iNagruzka < 100;
Есть фрагменты ещё забавнее:Зачем тут «= TRUE» вообще?
Очень много бесполезных и даже неправильных комментариев:
Reguljtor_Vozduxa(); (*Объявление программы регулятора воздуха*)
Не объявление, а вызов. Это комментарий типа наклейки «Руль» на руле автомобиля.
Многие переменные объявлены по два раза. Имена неудачные. Например, в PLC_PRG:
rVozduxVxod AT %ID6.0: REAL := 4; (*Давление воздуха перед горелкой 4..20 mA.*)
Во-первых, в конфигурации эта переменная уже привязана к %ID6.0. Во-вторых, если это давление, то почему не написать VozduxDavlenie4_20? А лучше и вовсе AirPressure4_20. И уж совсем прекрасно будет назвать его AirPressure, убрать блок Shcala_Vozdux и задать шкалу на вкладке Module Parameters в конфигурации. Или вот iZdnGaz... Почему, например, не HMI_GasSetpoint? И не надо было бы этих комментариев:
Задание нагрузки введённое с панели оператора имеющее тип WORD преобразуется в тип INT для подключения на вход модуля CHARCURVE
Было бы и так понятно по «HMI», что значение берётся с панели. И про эти преобразования в то да в сё — зачем? Это какой-то хитрый трюк, непонятный из кода? Это имеет непосредственное отношение к задаче управления?
Дальше. Константы должны быть константами. Такие переменные, как timPauzaGaz и timImpulsCaz следует объявлять в разделе VAR CONSTANT.
В программах Reguljtor_Nagruzki и Reguljtor_Vozduxa у вас велосипед гистерезиса и комментарий для восьмиклассника о том, как он работает. Почему-то CHARCURVE вы догадались использовать, а HYSTERESIS проигнорировали.
Двоичные операторы GT и LT
Это операторы сравнения, а не двоичные операторы. Двоичные — AND, OR, NOT, XOR.
Интерфейс терпимый, только цвета не такие буйные возьмите.
Ладно, хватит пока.