В этом плк можно зайти в консоль, набрать скрипт на питоне и проверить доходить ли команда до абонента, если все нормально то можно из проекта через sysexecute запускать этот скрипт по мере необходимости.
Это если другие способы не помогают
Код:
import socket
import sys
def send_command(arg1, arg2):
try:
# Создаем сокет
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Устанавливаем таймаут на 3 секунды
client.settimeout(3)
# Параметры подключения
host = "192.168.0.120"
port = 1470
# Формируем команду с переданными аргументами
command = f"sr {arg1} {arg2} \r\n"
# Подключаемся к серверу
client.connect((host, port))
# Отправляем команду в ASCII формате
client.sendall(command.encode('ascii'))
# Получаем ответ
response = client.recv(1024).decode('ascii')
# Проверяем наличие ACK в начале ответа
if response.startswith("ACK"):
print(f"Успешный ответ от сервера: {response}")
else:
print(f"Ошибка: неверный ответ сервера: {response}")
except socket.timeout:
print("Ошибка: истекло время ожидания ответа")
except Exception as e:
print(f"Произошла ошибка: {str(e)}")
finally:
# Закрываем соединение
client.close()
if __name__ == "__main__":
# Проверяем количество переданных аргументов
if len(sys.argv) != 3:
print("Использование: python script.py <аргумент1> <аргумент2>")
sys.exit(1)
# Получаем аргументы из командной строки
try:
arg1 = int(sys.argv[1]) # Преобразуем в целое число
arg2 = int(sys.argv[2]) # Преобразуем в целое число
except ValueError:
print("Ошибка: аргументы должны быть целыми числами")
sys.exit(1)
# Вызываем функцию с переданными аргументами
send_command(arg1, arg2)
Запустите скрипт из командной строки, передав два числовых аргумента: python script.py 3 1