10.04.2018, 08:44
|
Интересующийся
|
|
Регистрация: 06.04.2018
Сообщений: 14
|
|
Цитата:
|
Я не понимаю причем тут цикл и проверкой if(xxx==0 && xx==0 ...)
|
Это не цикл проверки, а состояние телесигнала
|
|
10.04.2018, 09:45
|
Интересующийся
|
|
Регистрация: 06.04.2018
Сообщений: 14
|
|
Профессора своего дела помогите написать скрипт: Задача стоит в следующем
Есть три положения телесигнализации (откл/вкл) и при срабатывание всех трех ТС в положении откл должна подаваться команда телеуправления на четвертый ТС для его включения. При этом если команда телеуправления 4 ТС прошла успешно и включилась, последующие команды телеуправления 4 ТС не подавать. При изменении положения ТС, блок ТС автоматически передает его состояние, но в скрипте как то надо указать его контроль состояния.
Я уже весь запутался в написании скрипта и голову сломал. Если бы понимал в программировании, то мог бы сам написать скрипт
|
|
10.04.2018, 12:19
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
А чему равно состояние 4ТС до момента срабатывания?
Если знать надо ли, то это просто проверить
if(!TC1 && !TC2 && !TC3 && TC4) run TC4
PS. Кстати, а почему обычный счетчик, о чем ранее говорилось, не может служить признаком?
Последний раз редактировалось laimas, 10.04.2018 в 12:33.
|
|
10.04.2018, 12:38
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
laimas,
А не так?
if(!TC1 && !TC2 && !TC3 && !TC4) run TC4
т.е включить когда ВСЕ выключены.
Сообщение от rinat_n86
|
при срабатывание всех трех ТС в положении откл должна подаваться команда телеуправления на четвертый ТС для его включения. При этом если команда телеуправления 4 ТС прошла успешно и включилась, последующие команды телеуправления 4 ТС не подавать.
|
|
|
10.04.2018, 12:57
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Dilettante_Pro
|
А не так?
|
Понятия не имею, я так до сих пор и не выяснил, что есть подать команду и знать что она выполнена. По идее цикл в котором выполнять tmControl(X, Y, Z, 1);, если эта функция запускает команду и возвращает ее состояние. Сколько об это не говорили, получается мимо.
Судя по ранее сказанному, выполнено, это 0, а значит не выполнено еще, это либо 1, либо ... не знаю что. А значит запускать 4 или нет, это false && false && false && true.
Или если знать выполнены ли все и поступать от этого, то можно и так. Вроде бы очевидно, а вот почему проблемы при этом, я так и не смог понять.
Последний раз редактировалось laimas, 10.04.2018 в 13:01.
|
|
10.04.2018, 13:14
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
laimas,
Конечно, это гадание на кофейной гуще, но у меня сложилось впечатление, что анализируются не результаты выполнения команд, а состояния каналов -включен/выключен
|
|
10.04.2018, 13:29
|
Интересующийся
|
|
Регистрация: 06.04.2018
Сообщений: 14
|
|
Сообщение от Dilettante_Pro
|
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 - включить команда телеуправления
|
|
10.04.2018, 13:36
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
rinat_n86,
а если начитать с начала, когда еще не было команд. Подается первая команда, она выполняется функцией tmControl(X, Y, Z, 1) и от нее получает состояние? Если да и запуск первой команды вернул не 0, тогда что?
|
|
10.04.2018, 13:48
|
Интересующийся
|
|
Регистрация: 06.04.2018
Сообщений: 14
|
|
после выполнения команды телеуправления состояние телесигнализации не приходит. Вот здесь мне надо как то указать виде наверно переменной чтоб проводил опрос состояния ТС после команды ТУ. Если состояние ТС изменилосьс 0 на 1 то надо чтобы команда ТУ прекратилось
Последний раз редактировалось rinat_n86, 10.04.2018 в 13:50.
|
|
10.04.2018, 13:50
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Dilettante_Pro
|
у меня сложилось впечатление, что анализируются не результаты выполнения команд, а состояния каналов -включен/выключен
|
А это разве не есть результат запуска команды? Если к примеру, есть четыре порта, состояние которых надо изменить из начального 1, а состояние 0, то надо ли проверять, что порт изменил состояние?
Если проблема только проверить, то ее быть не должно, if(....) и все. В чем тогда суть проблемы?
|
|
|
|