Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1
  • 2

TOPIC: Скрипт и цикл while

Скрипт и цикл while 1 year 8 months ago #2314

  • dunivivi
  • dunivivi's Avatar
  • Offline
  • New Member
  • Posts: 4
  • Karma: 0
Здраствуйте! У меня вот такой цикл в скрипте
while(Tags.StatePump == 1) {

if(Tags.Liters < 100) {
Tags.Liters = Tags.Liters + 0.00001;
Tags.PumpSpeed = 1450;
} else {
Tags.PumpSpeed = 0;
Tags.StatePump = 0;
}
}

while(Tags.StatePump == 0 && Tags.Liters > 0) {
Tags.Liters = Tags.Liters - 0.00001;

if(Tags.StatePump == 0 && Tags.Liters < 90) {
Tags.StatePump = 1;
}

}

Когда во время второго while Tags.StatePump = 1, он уже не заходит в первый цикл...только если я вручную дам этогому тагу 1. Возможно через функий сработает, но у меня вылезает ошибка при любой функций. M1 Mac, TeslaScada IDE
Attachments:
The administrator has disabled public write access.

Скрипт и цикл while 1 year 8 months ago #2315

  • dunivivi
  • dunivivi's Avatar
  • Offline
  • New Member
  • Posts: 4
  • Karma: 0
Если можете написать пример функций тоже, буду благодарен!
The administrator has disabled public write access.

Скрипт и цикл while 1 year 8 months ago #2318

  • fatkhrus
  • fatkhrus's Avatar
  • Offline
  • Administrator
  • Posts: 861
  • Thank you received: 126
  • Karma: -108
Добрые день,

Так как вы написали скрипт, он и не сработает два раза. Если вы сделали отработку скрипта по изменению тега. То он отрабатывает следующим образом:
1. Если значение тега содержащегося в скрипте изменилось тогда взводится флажок (условно update). Который говорит что нужно выполнить скрипт.
2. Скрипт отрабатывается до конца.
3. Флажок сбрасывается. И то что у него внутри тег изменился никак не влияет, вне зависимости от того используется функция или нет.

Как использовать функции можно посмотреть здесь: teslascada.com/HTMLRU/user-dened-functions.html

С уважением,
Руслан
The administrator has disabled public write access.

Скрипт и цикл while 1 year 8 months ago #2319

  • dunivivi
  • dunivivi's Avatar
  • Offline
  • New Member
  • Posts: 4
  • Karma: 0
А как мне поступить в таком случае? Я хочу чтобы когда флажок меняется на 1 из скрипта, выполнить Х строки.
The administrator has disabled public write access.

Скрипт и цикл while 1 year 8 months ago #2320

  • fatkhrus
  • fatkhrus's Avatar
  • Offline
  • Administrator
  • Posts: 861
  • Thank you received: 126
  • Karma: -108
Скрипт и будет отрабатывать когда вы меняете состояние на 1. Но если внутри того что скрипта сначала меняете на 0, а потом на 1 то он уже не отработает снова на 1.
И если честно смысла вашего скрипта не понимаю. Зачем в тег Litres прибавлять по 0.0001. Почему сразу нельзя довести до нужного значения, а забирать ресурсы у процессора в цикле while, прибавляя по 0.0001. Если хотите чтобы скрипт отрабатывал при переходе на 0 и на 1, вам лучше написать 2 скрипта. Один выполняется при условии когда значение 1, другой при 0.

С уважением,
Руслан
The administrator has disabled public write access.

Скрипт и цикл while 1 year 8 months ago #2321

  • dunivivi
  • dunivivi's Avatar
  • Offline
  • New Member
  • Posts: 4
  • Karma: 0
А как можно задать двум скриптам один и тот же триггер тег ? Типо в Тэг меню там скрипт PV == Value (1==1), тут он срабатывает как я понимаю...а для 0 как ?
The administrator has disabled public write access.
  • Page:
  • 1
  • 2
Go to top