Цитата Сообщение от nik9999 Посмотреть сообщение
Если плк 150 с индексом У ( аналоговые выходы ПЛК150/154 ЦАП 0...10 В)
то приблизительно как то так

1. В конфигурации плк определяем вход ( термодатчик) PV и аналоговый выход OUT
2. в глобальных переменных

VAR_GLOBAL RETAIN PERSISTENT
SP : REAL := 30; (* Уставка для температуры *)
KP : REAL := 1;
TN : REAL := 0;
TV : REAL := 0;

END_VAR

3. скачиваем с сайта oscat.de библиотеку , и добавляем ее в проект
4. В основной программе
PROGRAM PLC_PRG

VAR
CTRL : CTRL_PID;
PWR : REAL;
END_VAR

CTRL(
ACT:= PV,
SET:= SP,
M_I:= ,
MAN:= ,
RST:=,
KP:= KP,
TN:= TN,
TV:= TV,
Y=> PWR,
);

PWR := LIMIT(0,PWR,1000)/10;
OUT:=SCALE_R(PWR*10,0,1000,0,5);( * для выхода 0-5 в *)

5. В конфигурации задач, добавляем наш PLC_PRG, в циклически выполняемую ( на пр. раз в секунду)

6. Подбираем коэф. ПИД регулятора KP, TN, TV

PS
Писал по памяти, на вскидку, так что имеет смысл все самому еще раз проверить
вот это здорово! спасибо!!
только я совсем еще начинающий.
1) как определить входы-выходы в конфигурации ПЛК? как в программе указать, например, с какого физического входа принимать сигнал?
2) это всё на каком языке лучше писать?
3) про глобальные переменные понял
4) что в этой библиотеке нового? которую советуете скачать.
5) "CTRL_PID" - это из новой библиотеки?
6)"M_I:= , - этого, честно говоря, вообще не понял. для чего это?
MAN:= ,
RST:=,"
7) "PWR := LIMIT(0,PWR,1000)/10;
OUT:=SCALE_R(PWR*10,0,1000,0,5);( * для выхода 0-5 в *)"
что означают эти записи? вкратце.
8) и опять таки про конфигурацию задач. как добавить в цикл.выполняемую?
буду благодарен за подробный ответ.