тип String
При таком коде, каналы, в которые должны записываться названия ингредиентов постоянно "пролистываются", всегда отображается название последнего
Var Strok: String; //выбор раствора из выпадающего списка
Jid1: String; //переменная в которую записывается 1 ингредиент
Jid2: String; //переменная в которую записывается 2 ингредиент
Begin
Strok:= ReadValue('Список растворов');
If Strok='1' then
Jid1:='Вода';
Jid2:='Ацетат свинца';
WriteValue('1 жидкость',Jid1);
WriteValue('2 жидкость',Jid2);
If Strok='2' then
Jid1:='Вода';
Jid2:='Сульфат алюминия';
WriteValue('1 жидкость',Jid1);
WriteValue('2 жидкость',Jid2);
end.
end
Если выбрать тип Jid1 и Jid2 Integer, и записать в них числа, то все работает как надо, а со строковыми не получается, при этом код одинаков в обоих случаях.В чем проблема?
К сожалению проекта не осталось, я переписал все на С++, там все работает.
Но столкнулся с новой проблемой. Мне необходимо контролировать задержку открытия клапана, написал вот это
{
double speed=ReadValue("скорость истечения жидкости");
double konc=ReadValue("концентрация раствора");
double massa=ReadValue("необходимая масса раствора");
double i;
double j;
integer tv1;
integer tx1;
double koncn=konc/100;
double speedv=speed*1000.0;
double massav=massa*(1-koncn);
double tv=massav/speedv;
while (i!=tv) {i++; tv1++;};
WriteValue("1 клапан",1);
delay(tv1);
WriteValue("1 клапан",0);
double massax=massa*koncn;
double tx=massax/speedv;
while (i!=tx) {i++; tx1++;};
WriteValue("3 клапан",1);
delay(tx1);
WriteValue("3 клапан",0);
}
А проблема в том, что если стоит знак "/"(как сейчас) то ничего не выполняется(наверное), при нажатии на кнопку "выполнить" в окне скрипта, оно даже не появляется, иногда моргнет на миллисекунду и все. А вот если эти 2 знака поменять на "*", то все прекрасно работает, только мне делить нужно, а не умножать.
Если есть другой способ контролировать задержку, буду рад взять на вооружение.