Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите пожалуйста!!! (https://javascript.ru/forum/misc/67629-pomogite-pozhalujjsta.html)

rinat_n86 10.04.2018 08:44

Цитата:

Я не понимаю причем тут цикл и проверкой if(xxx==0 && xx==0 ...)
Это не цикл проверки, а состояние телесигнала

rinat_n86 10.04.2018 09:45

Профессора своего дела помогите написать скрипт: Задача стоит в следующем
Есть три положения телесигнализации (откл/вкл) и при срабатывание всех трех ТС в положении откл должна подаваться команда телеуправления на четвертый ТС для его включения. При этом если команда телеуправления 4 ТС прошла успешно и включилась, последующие команды телеуправления 4 ТС не подавать. При изменении положения ТС, блок ТС автоматически передает его состояние, но в скрипте как то надо указать его контроль состояния.
Я уже весь запутался в написании скрипта и голову сломал. Если бы понимал в программировании, то мог бы сам написать скрипт

laimas 10.04.2018 12:19

А чему равно состояние 4ТС до момента срабатывания?

Если знать надо ли, то это просто проверить

if(!TC1 && !TC2 && !TC3 && TC4) run TC4

PS. Кстати, а почему обычный счетчик, о чем ранее говорилось, не может служить признаком?

Dilettante_Pro 10.04.2018 12:38

laimas,
А не так?

if(!TC1 && !TC2 && !TC3 && !TC4) run TC4

т.е включить когда ВСЕ выключены.
Цитата:

Сообщение от rinat_n86
при срабатывание всех трех ТС в положении откл должна подаваться команда телеуправления на четвертый ТС для его включения. При этом если команда телеуправления 4 ТС прошла успешно и включилась, последующие команды телеуправления 4 ТС не подавать.


laimas 10.04.2018 12:57

Цитата:

Сообщение от Dilettante_Pro
А не так?

Понятия не имею, я так до сих пор и не выяснил, что есть подать команду и знать что она выполнена. По идее цикл в котором выполнять tmControl(X, Y, Z, 1);, если эта функция запускает команду и возвращает ее состояние. Сколько об это не говорили, получается мимо.

Судя по ранее сказанному, выполнено, это 0, а значит не выполнено еще, это либо 1, либо ... не знаю что. А значит запускать 4 или нет, это false && false && false && true.

Или если знать выполнены ли все и поступать от этого, то можно и так. Вроде бы очевидно, а вот почему проблемы при этом, я так и не смог понять.

Dilettante_Pro 10.04.2018 13:14

laimas,
Конечно, это гадание на кофейной гуще, но у меня сложилось впечатление, что анализируются не результаты выполнения команд, а состояния каналов -включен/выключен

rinat_n86 10.04.2018 13:29

Цитата:

Сообщение от Dilettante_Pro (Сообщение 482890)
laimas,
но у меня сложилось впечатление, что анализируются не результаты выполнения команд, а состояния каналов -включен/выключен

Да после прохождения успешной/не успешной команды телеуправления 4 телесигнала должно контролироваться его состояние для прекращения подачи телеуправления или повтор команды телеуправления на 4 телесигнал, если первая команду ТУ не успешная.

(TM('#TCX:Y:Z') == 0 && TM('#TCX:Y:Z') == 0 && TM('#TCX:Y:Z') == 0)

ТМ-телемеханика, ТС-телесигнал, Х-номер канала, Y-номер КП, Z- номер ТС, ==0/1 - состояние ТС (откл/вкл)

tmControl(X, Y, Z, 1)

1 - включить команда телеуправления

laimas 10.04.2018 13:36

rinat_n86,
а если начитать с начала, когда еще не было команд. Подается первая команда, она выполняется функцией tmControl(X, Y, Z, 1) и от нее получает состояние? Если да и запуск первой команды вернул не 0, тогда что?

rinat_n86 10.04.2018 13:48

после выполнения команды телеуправления состояние телесигнализации не приходит. Вот здесь мне надо как то указать виде наверно переменной чтоб проводил опрос состояния ТС после команды ТУ. Если состояние ТС изменилосьс 0 на 1 то надо чтобы команда ТУ прекратилось

laimas 10.04.2018 13:50

Цитата:

Сообщение от Dilettante_Pro
у меня сложилось впечатление, что анализируются не результаты выполнения команд, а состояния каналов -включен/выключен

А это разве не есть результат запуска команды? Если к примеру, есть четыре порта, состояние которых надо изменить из начального 1, а состояние 0, то надо ли проверять, что порт изменил состояние?

Если проблема только проверить, то ее быть не должно, if(....) и все. В чем тогда суть проблемы?


Часовой пояс GMT +3, время: 19:42.