Короче говоря, я пытаюсь запустить сценарий Python из другого сценария Python, но на заднем плане, позволяя родительскому скрипту продолжить выполнение, а затем передавать CTRL_C_EVENT в сценарий ребенка, чтобы вызвать окончательный набор команд без резкого завершения. Затем, чтобы родительский скрипт повторил эту операцию на произвольное количество раз. Первоначально этот сценарий был записан как автономная программа, которая: < /p>
[*] Пенгс-адрес ПЛК для проверки подключения < /li>
Сразу начинает вести значения тега каждые x (0,02) секунды < /li>
logring stocing stocing stocing teable exector-encrupt < /li>
Занимает. Окончательный набор инструкций в файл зарегистрированных данных (создание графиков и т. Д.) Перед сохранением и закрытием файла Excel < /li>
< /ol>
родительский скрипт, над которым я в настоящее время работаю, предназначен для автоматизации некоторого повторного сбора данных, используя сценарий ребенка. В частности, я бы хотел: < /p>
Проверьте адрес PLC для подключения, как указано выше (пропустить процесс в сценарии ребенка) < /li>
Начните сценарий ребенка и запустите его в фоновом режиме (предпочтительно молча, не позволяя его открыть более терминальные окна), пропустив строку с использованием в качестве сохраненного файлового наименования в качестве аргумента в качестве аргумента в качестве аргумента в качестве аргумента в качестве аргумента в качестве аргумента в качестве аргумента в виде аргумента в качестве аргумента в качестве аргумента в качестве аргумента в качестве аргумента в качестве аргумента в качестве аргумента. logging, start the first timer and send basically an 'ON' command to the PLC to start a process
[*]After the first timer finishes, send a second command to the PLC and then wait for a second timer to finish
After the second timer ends, pass a 'CTRL_C_EVENT' to the child script to properly end the logging and run the final set of commands for closing as Предполагается. 'Ctrl_c_event' в него, чтобы закончить его (или использовать внутреннюю функцию сценария hogging.py дочернего сценария, чтобы закончить цикл). На этом этапе я не могу сказать, будет ли здесь многопроцессорная или подпроцессорная модуль здесь более подходящим или как их реализовать.
Редактировать: я использовал подпроцесс для этого, но я также обнаружил, что сигнал Ctrl_c_event «ошибочно»/не работает, как и ожидалось в условиях Windows. Согласно документации Windows, группы процессов игнорируют команды клавиатуры, которые отправляются таким образом, поэтому прерывание клавиатуры, предпринимаемое таким конкретным способом, не сработает. Более подробную информацию и обходной путь/решение можно найти здесь: отправка ^C в Python Subprocess объекты в Windows
, если кто -нибудь еще столкнется с этим постом с аналогичной проблемой.
Подробнее здесь: https://stackoverflow.com/questions/796 ... d-it-after
Запуск сценария Python на заднем плане, а затем пропустить событие, чтобы закончить его после определенного количества в ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение