Цитата Сообщение от inp Посмотреть сообщение
Спасибо! А где фрагмент кода? Или я не там смотрю?
Ошибочка вышла. Вставлял файл, но его точно нет.
Вот текст фрагмента кода.
//Открытие порта, канала и т.д.
resPort:=OpenPort(intPort,intSpeed_Kod,0,1,0,0);
if resPort < 0 then
begin
res:=ClosePort;
resPort:=OpenPort(intPort,intSpeed_Kod,0,1,0,0);
end;
//В resPort сохранятся все виды ошибок обмена - сетевые, прибора
if resPort >=0 then
begin
if (strAdapter='АС3-М')or (strAdapter='АС3') or (strAdapter='АС4') then //АС3-М , АС3 , АС4 на Русском
begin
//Приборы подключенные к АС3 или АС3-М или АС4
index:=-1; //-1 задается для неиндексированных оперативных параметров.
n:=0;
res:=-1;
//Число опросов установил равным 1 т.к. сам прибор похоже
//делает N попыток сосчитать параметр
while ((n<1) and (res<0)) do
begin
//Считывание температуры в зависимости от типа прибора
case StrToInt(Copy(StrPribor,4,3)) of
101: begin
res:=ReadFloat24(dwAdres,0,'Pv ',R_Temp,-1);
resPort:=res
end;
200: begin
res:=ReadFloat24(dwAdres+(intKanal-1),0,'Pv ',R_Temp,-1);
resPort:=res
end;
201: begin
res:=ReadFloat24(dwAdres,0,'Pv ',R_Temp,-1);
resPort:=res
end;
202: begin
res:=ReadFloat24(dwAdres+(intKanal-1),0,'Pv ',R_Temp,-1);
resPort:=res
end;
210: begin
res:=ReadFloat24(dwAdres,0,'Pv ',R_Temp,-1);
resPort:=res
end;
138: begin
//Анализ канала на приборе Включен или нет
dwCin:=0; //Гипотеза, канал не подключен к датчику
res_Cin:=ReadUInt(dwAdres+(intKanal-1),0,'C.in ',dwCin,-1);
if res_Cin >=0 then
begin
if dwCin > 0 then
begin
res:=ReadIEEE32(dwAdres+(intKanal-1),0,'rEAd',R_Temp,intTM,-1);
resPort:=res
end
else resPort:=-555; //Выдача сообщения Канал не задействован и т.д.
end
else resPort:=res_Cin;
end;
148: begin
res:=ReadIEEE32(dwAdres+(intKanal-1),0,'rEAd',R_Temp,intTM,-1);
resPort:=res
end;
251: begin
if intKanal = 0 then intKanal:=1;
//Считывание с основного канала. Основным можно сделать
//и резервный канал в настройке печи
res:=ReadIEEE32(dwAdres+(intKanal-1),0,'rEAd',R_Temp,intTM,-1);
if (res < 0) and (intKanal=1) then
begin
//Считывание с резервного канала
intKanal:=2;
res:=ReadIEEE32(dwAdres+(intKanal-1),0,'rEAd',R_Temp,intTM,-1);
end;
res_Cin:=ReadUInt(dwAdres,0,'r.St ',intRST,-1); //Считывание режима работы прибора
//Действия при завершении программы технолога
С уважением, Николай Митюхин