Проблема в том, что почему то начинают выскакивать некоторые значения, бывает что это даже те значения которые являются в программе константами. Происходит как будто зависание а потом продолжение работы программы. Не могли подсказать в чем могут быть проблемы.
скорее всего это ошибки не кодесиса, как такового, а транспорта. При загрузке проекта, и даже маленьких файлов, довольно часто происходят ошибки, а это значит что в качестве транспорта используются UDP-сессии, без подтверждения правильности передачи данных.
THEN
IF B=0
THEN
out_val_ten2:=0;
PID_REG_TEN1(PV:=TEMP1_FIL, PV_TIME:=Time1, SP:=yst_temp, PB:=0.22, Ti_:=8, Td_:=1, _IMIN:=-1, _IMAX:=1);
out_val_ten1:=PID_REG_TEN1.OUT_VAL;
IF C=0
THEN
IF out_val_ten1>0
THEN
Heather:=REAL_TO_WORD(MAX(0, out_val_ten1)*655.35);
cooler:=0;
ELSE
heather:=0;
cooler:=0;
END_IF
ELSE
IF out_val_ten1>0
THEN
Heather:=REAL_TO_WORD(MAX(0, out_val_ten1)*655.35);
cooler:=0;
ELSE
heather:=0;
cooler:=REAL_TO_WORD(MAX(0, out_val_ten1*(-1))*655.35);
END_IF
END_IF
END_IF
ELSE
IF B=1
THEN
out_val_ten1:=0;
PID_REG_TEN2(PV:=TEMP1_FIL, PV_TIME:=Time1, SP:=yst_temp, PB:=0.22, Ti_:=8, Td_:=1, _IMIN:=-1, _IMAX:=1);
out_val_ten2:=PID_REG_TEN2.OUT_VAL;
IF C=0
THEN
IF out_val_ten2>0
THEN
Heather:=REAL_TO_WORD(MAX(0, out_val_ten2)*655.35);
cooler:=0;
ELSE
heather:=0;
cooler:=0;
END_IF
ELSE
IF out_val_ten2>0
THEN
Heather:=REAL_TO_WORD(MAX(0, out_val_ten2)*655.35);
cooler:=0;
ELSE
heather:=0;
cooler:=REAL_TO_WORD(MAX(0, out_val_ten2*(-1))*655.35);
END_IF
END_IF
ELSE
cooler:=0;
heather:=0;
END_IF
THEN
tim1(IN:=1, PT:=t#2s);
tim2(IN:=0, PT:=t#2s);
D:=tim1.Q;
IF
D=1
THEN
Yvlazhnitel:=REAL_TO_WORD(MAX(0, out_val_vl)*655.35);
END_IF
Osyshitel:=0;
ELSE
tim2(IN:=1, PT:=t#2s);
tim1(IN:=0, PT:=t#2s);
g:=tim2.Q;
IF
g=1
THEN
Osyshitel:=REAL_TO_WORD(MAX(0,out_val_vl*-1)*655.35);
END_IF
Yvlazhnitel:=0;
Не знаю, может это как-то взаимосвязано, но у нас такие скачки начали появляться после того как у нас перестало соединяться с контроллером по RS-232. Может быть внутри что-то полетело. А произошло это так, мы проверяли работу контроллер на камере, и в одно время у нас пропала связь по RS-232 и мы больше не могли подсоединиться. Решили просто начать соединяться через Ethernet.
Последний раз редактировалось DimaSik; 06.07.2009 в 13:34.
Мы тоже столкнулись с такой проблеммой, а при анализе выяснилась закономерность, что это не скачки, а данные с соседних входных каналов т.е. происходил "сдвиг данных". Через какое-то время ПЛК-154, перестал программироваться и перепрошиваться, нам посоветовали "в ремонт".
А вот у нас после того как начались эти "скачки", перестало соединяться с контроллером по RS-232. И чтобы допрограммировать его, нам пришлось подсоединяться через Ethernet.